@imgly/plugin-ai-apps-web 0.1.7 → 0.1.9
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 +15 -0
- package/dist/index.mjs +27 -27
- package/dist/index.mjs.map +4 -4
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Ul=
|
|
1
|
+
var Ul=typeof global=="object"&&global&&global.Object===Object&&global,qn=Ul,Vl=typeof self=="object"&&self&&self.Object===Object&&self,Bl=qn||Vl||Function("return this")(),z=Bl,Fl=z.Symbol,J=Fl,Qn=Object.prototype,Gl=Qn.hasOwnProperty,Rl=Qn.toString,Be=J?J.toStringTag:void 0;function ql(e){var t=Gl.call(e,Be),n=e[Be];try{e[Be]=void 0;var r=!0}catch{}var a=Rl.call(e);return r&&(t?e[Be]=n:delete e[Be]),a}var Ql=ql,Hl=Object.prototype,Yl=Hl.toString;function Zl(e){return Yl.call(e)}var Wl=Zl,Kl="[object Null]",Jl="[object Undefined]",Tn=J?J.toStringTag:void 0;function Xl(e){return e==null?e===void 0?Jl:Kl:Tn&&Tn in Object(e)?Ql(e):Wl(e)}var qe=Xl;function es(e){return e!=null&&typeof e=="object"}var hr=es,Iw=Array.isArray;function ts(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Hn=ts,rs="[object AsyncFunction]",ns="[object Function]",is="[object GeneratorFunction]",os="[object Proxy]";function as(e){if(!Hn(e))return!1;var t=qe(e);return t==ns||t==is||t==rs||t==os}var ls=as,ss=z["__core-js_shared__"],cr=ss,$n=function(){var e=/[^.]+$/.exec(cr&&cr.keys&&cr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function us(e){return!!$n&&$n in e}var cs=us,ds=Function.prototype,gs=ds.toString;function ps(e){if(e!=null){try{return gs.call(e)}catch{}try{return e+""}catch{}}return""}var R=ps,ms=/[\\^$.*+?()[\]{}|]/g,fs=/^\[object .+?Constructor\]$/,ys=Function.prototype,bs=Object.prototype,hs=ys.toString,vs=bs.hasOwnProperty,ks=RegExp("^"+hs.call(vs).replace(ms,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ws(e){if(!Hn(e)||cs(e))return!1;var t=ls(e)?ks:fs;return t.test(R(e))}var Cs=ws;function Ms(e,t){return e?.[t]}var Is=Ms;function xs(e,t){var n=Is(e,t);return Cs(n)?n:void 0}var X=xs,As=X(z,"WeakMap"),pr=As;function Ss(e,t){return e===t||e!==e&&t!==t}var Es=Ss,js=9007199254740991;function Ls(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=js}var Ts=Ls,xw=Object.prototype,$s="[object Arguments]";function Ns(e){return hr(e)&&qe(e)==$s}var Nn=Ns,Yn=Object.prototype,Ds=Yn.hasOwnProperty,Os=Yn.propertyIsEnumerable,Aw=Nn(function(){return arguments}())?Nn:function(e){return hr(e)&&Ds.call(e,"callee")&&!Os.call(e,"callee")},Zn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dn=Zn&&typeof module=="object"&&module&&!module.nodeType&&module,_s=Dn&&Dn.exports===Zn,On=_s?z.Buffer:void 0,Sw=On?On.isBuffer:void 0,Ps="[object Arguments]",zs="[object Array]",Us="[object Boolean]",Vs="[object Date]",Bs="[object Error]",Fs="[object Function]",Gs="[object Map]",Rs="[object Number]",qs="[object Object]",Qs="[object RegExp]",Hs="[object Set]",Ys="[object String]",Zs="[object WeakMap]",Ws="[object ArrayBuffer]",Ks="[object DataView]",Js="[object Float32Array]",Xs="[object Float64Array]",eu="[object Int8Array]",tu="[object Int16Array]",ru="[object Int32Array]",nu="[object Uint8Array]",iu="[object Uint8ClampedArray]",ou="[object Uint16Array]",au="[object Uint32Array]",A={};A[Js]=A[Xs]=A[eu]=A[tu]=A[ru]=A[nu]=A[iu]=A[ou]=A[au]=!0;A[Ps]=A[zs]=A[Ws]=A[Us]=A[Ks]=A[Vs]=A[Bs]=A[Fs]=A[Gs]=A[Rs]=A[qs]=A[Qs]=A[Hs]=A[Ys]=A[Zs]=!1;function lu(e){return hr(e)&&Ts(e.length)&&!!A[qe(e)]}var su=lu;function uu(e){return function(t){return e(t)}}var cu=uu,Wn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fe=Wn&&typeof module=="object"&&module&&!module.nodeType&&module,du=Fe&&Fe.exports===Wn,dr=du&&qn.process,gu=function(){try{var e=Fe&&Fe.require&&Fe.require("util").types;return e||dr&&dr.binding&&dr.binding("util")}catch{}}(),_n=gu,Pn=_n&&_n.isTypedArray,Ew=Pn?cu(Pn):su,pu=Object.prototype,jw=pu.hasOwnProperty;function mu(e,t){return function(n){return e(t(n))}}var fu=mu,Lw=fu(Object.keys,Object),yu=Object.prototype,Tw=yu.hasOwnProperty,bu=X(Object,"create"),Ge=bu;function hu(){this.__data__=Ge?Ge(null):{},this.size=0}var vu=hu;function ku(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var wu=ku,Cu="__lodash_hash_undefined__",Mu=Object.prototype,Iu=Mu.hasOwnProperty;function xu(e){var t=this.__data__;if(Ge){var n=t[e];return n===Cu?void 0:n}return Iu.call(t,e)?t[e]:void 0}var Au=xu,Su=Object.prototype,Eu=Su.hasOwnProperty;function ju(e){var t=this.__data__;return Ge?t[e]!==void 0:Eu.call(t,e)}var Lu=ju,Tu="__lodash_hash_undefined__";function $u(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ge&&t===void 0?Tu:t,this}var Nu=$u;function ee(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ee.prototype.clear=vu;ee.prototype.delete=wu;ee.prototype.get=Au;ee.prototype.has=Lu;ee.prototype.set=Nu;var zn=ee;function Du(){this.__data__=[],this.size=0}var Ou=Du;function _u(e,t){for(var n=e.length;n--;)if(Es(e[n][0],t))return n;return-1}var _t=_u,Pu=Array.prototype,zu=Pu.splice;function Uu(e){var t=this.__data__,n=_t(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():zu.call(t,n,1),--this.size,!0}var Vu=Uu;function Bu(e){var t=this.__data__,n=_t(t,e);return n<0?void 0:t[n][1]}var Fu=Bu;function Gu(e){return _t(this.__data__,e)>-1}var Ru=Gu;function qu(e,t){var n=this.__data__,r=_t(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Qu=qu;function te(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}te.prototype.clear=Ou;te.prototype.delete=Vu;te.prototype.get=Fu;te.prototype.has=Ru;te.prototype.set=Qu;var Pt=te,Hu=X(z,"Map"),Re=Hu;function Yu(){this.size=0,this.__data__={hash:new zn,map:new(Re||Pt),string:new zn}}var Zu=Yu;function Wu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ku=Wu;function Ju(e,t){var n=e.__data__;return Ku(t)?n[typeof t=="string"?"string":"hash"]:n.map}var zt=Ju;function Xu(e){var t=zt(this,e).delete(e);return this.size-=t?1:0,t}var ec=Xu;function tc(e){return zt(this,e).get(e)}var rc=tc;function nc(e){return zt(this,e).has(e)}var ic=nc;function oc(e,t){var n=zt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var ac=oc;function re(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}re.prototype.clear=Zu;re.prototype.delete=ec;re.prototype.get=rc;re.prototype.has=ic;re.prototype.set=ac;var Kn=re;function lc(){this.__data__=new Pt,this.size=0}var sc=lc;function uc(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var cc=uc;function dc(e){return this.__data__.get(e)}var gc=dc;function pc(e){return this.__data__.has(e)}var mc=pc,fc=200;function yc(e,t){var n=this.__data__;if(n instanceof Pt){var r=n.__data__;if(!Re||r.length<fc-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Kn(r)}return n.set(e,t),this.size=n.size,this}var bc=yc;function Qe(e){var t=this.__data__=new Pt(e);this.size=t.size}Qe.prototype.clear=sc;Qe.prototype.delete=cc;Qe.prototype.get=gc;Qe.prototype.has=mc;Qe.prototype.set=bc;var hc=Object.prototype,$w=hc.propertyIsEnumerable,vc=X(z,"DataView"),mr=vc,kc=X(z,"Promise"),fr=kc,wc=X(z,"Set"),yr=wc,Un="[object Map]",Cc="[object Object]",Vn="[object Promise]",Bn="[object Set]",Fn="[object WeakMap]",Gn="[object DataView]",Mc=R(mr),Ic=R(Re),xc=R(fr),Ac=R(yr),Sc=R(pr),K=qe;(mr&&K(new mr(new ArrayBuffer(1)))!=Gn||Re&&K(new Re)!=Un||fr&&K(fr.resolve())!=Vn||yr&&K(new yr)!=Bn||pr&&K(new pr)!=Fn)&&(K=function(e){var t=qe(e),n=t==Cc?e.constructor:void 0,r=n?R(n):"";if(r)switch(r){case Mc:return Gn;case Ic:return Un;case xc:return Vn;case Ac:return Bn;case Sc:return Fn}return t});var Nw=z.Uint8Array,Ec="__lodash_hash_undefined__";function jc(e){return this.__data__.set(e,Ec),this}var Lc=jc;function Tc(e){return this.__data__.has(e)}var $c=Tc;function br(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Kn;++t<n;)this.add(e[t])}br.prototype.add=br.prototype.push=Lc;br.prototype.has=$c;var Rn=J?J.prototype:void 0,Dw=Rn?Rn.valueOf:void 0,Nc=Object.prototype,Ow=Nc.hasOwnProperty,Dc=Object.prototype,_w=Dc.hasOwnProperty,Pw=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),zw=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Uw=new RegExp(/[A-Fa-f0-9]{2}/,"g");var Oc="ly.img.ai";function Ut(e){return`${Oc}/${e}`}var gr="@imgly/plugin-ai-generation",Vw=`
|
|
2
2
|
<svg>
|
|
3
3
|
<symbol
|
|
4
4
|
fill="none"
|
|
@@ -16,7 +16,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
16
16
|
fill="none"
|
|
17
17
|
xmlns="http://www.w3.org/2000/svg"
|
|
18
18
|
viewBox="0 0 24 24"
|
|
19
|
-
id="${
|
|
19
|
+
id="${gr}/image"
|
|
20
20
|
>
|
|
21
21
|
<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"/>
|
|
22
22
|
<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"/>
|
|
@@ -28,7 +28,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
28
28
|
fill="none"
|
|
29
29
|
xmlns="http://www.w3.org/2000/svg"
|
|
30
30
|
viewBox="0 0 24 24"
|
|
31
|
-
id="${
|
|
31
|
+
id="${gr}/video"
|
|
32
32
|
>
|
|
33
33
|
<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"/>
|
|
34
34
|
<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"/>
|
|
@@ -39,7 +39,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
39
39
|
fill="none"
|
|
40
40
|
xmlns="http://www.w3.org/2000/svg"
|
|
41
41
|
viewBox="0 0 24 24"
|
|
42
|
-
id="${
|
|
42
|
+
id="${gr}/audio"
|
|
43
43
|
>
|
|
44
44
|
<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"/>
|
|
45
45
|
<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"/>
|
|
@@ -59,8 +59,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
59
59
|
|
|
60
60
|
</symbol>
|
|
61
61
|
</svg>
|
|
62
|
-
`;function yi(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function Ze(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=yi(e,t.$ref),a={...Ze(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Ze(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>Ze(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=Ze(e,t[a],r));return n}return t}function _c(e){return Ze(e,{...e})}function Pc(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function zc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return Uc(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function Uc(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var bi=zc,Vc="ly.img.ai",kn="ly.img.ai/temp";async function Bc(e,t){return e.engine.asset.findAllSources().includes(kn)||e.engine.asset.addLocalSource(kn),e.engine.asset.apply(kn,t)}function hi(e){return`${Vc}/${e}`}function Fc(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Gc(){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 Rc(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function vi(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function $n(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 oe(e){return e instanceof Error&&e.name==="AbortError"}function ki(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?qc(e,t,r,n,a,o):Ci(e,t,r,n,a,o);case"boolean":return Mi(e,t,r,n,a,o);case"number":case"integer":return xi(e,t,r,n,a,o);case"object":return wi(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Qc(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function wi(e,t,r,n,a,o){let i=bi(t.schema??{},n).reduce((l,u)=>{let s=ki(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ci(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=Hc(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function qc(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??vi(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function Mi(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function xi(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Qc(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??vi(M),icon:C[M]})}):(f[y]=()=>Ci(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Mi(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>xi(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>wi(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function Hc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Yc=ki,Zc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ii=Zc;function Wc(e,t,r){switch(t){case"image":return Kc(e,r[t]);case"video":return Jc(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Kc(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:Ii,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function Jc(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:Ii,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var Xc=Wc;async function e1(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return t1(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return n1(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return r1(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function t1(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function n1(e,t,r){let n=t.width,a=t.height,o=await Rc(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function r1(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}var Jr=e1;function Ai(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,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 i1(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Ei=i1,o1=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),n=new Set;ie(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ie(t,n=>{this.removeBlob(n)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ie(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),ie(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ie(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=ie(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=ie(a,t,o)}return e}var a1=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)}},Si=a1,l1=typeof global=="object"&&global&&global.Object===Object&&global,ji=l1,s1=typeof self=="object"&&self&&self.Object===Object&&self,u1=ji||s1||Function("return this")(),U=u1,c1=U.Symbol,ae=c1,Li=Object.prototype,d1=Li.hasOwnProperty,g1=Li.toString,He=ae?ae.toStringTag:void 0;function p1(e){var t=d1.call(e,He),r=e[He];try{e[He]=void 0;var n=!0}catch{}var a=g1.call(e);return n&&(t?e[He]=r:delete e[He]),a}var m1=p1,f1=Object.prototype,y1=f1.toString;function b1(e){return y1.call(e)}var h1=b1,v1="[object Null]",k1="[object Undefined]",Xr=ae?ae.toStringTag:void 0;function w1(e){return e==null?e===void 0?k1:v1:Xr&&Xr in Object(e)?m1(e):h1(e)}var et=w1;function C1(e){return e!=null&&typeof e=="object"}var Nn=C1,zw=Array.isArray;function M1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ti=M1,x1="[object AsyncFunction]",I1="[object Function]",A1="[object GeneratorFunction]",E1="[object Proxy]";function S1(e){if(!Ti(e))return!1;var t=et(e);return t==I1||t==A1||t==x1||t==E1}var j1=S1,L1=U["__core-js_shared__"],wn=L1,ei=function(){var e=/[^.]+$/.exec(wn&&wn.keys&&wn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function T1(e){return!!ei&&ei in e}var $1=T1,N1=Function.prototype,O1=N1.toString;function D1(e){if(e!=null){try{return O1.call(e)}catch{}try{return e+""}catch{}}return""}var q=D1,_1=/[\\^$.*+?()[\]{}|]/g,P1=/^\[object .+?Constructor\]$/,z1=Function.prototype,U1=Object.prototype,V1=z1.toString,B1=U1.hasOwnProperty,F1=RegExp("^"+V1.call(B1).replace(_1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function G1(e){if(!Ti(e)||$1(e))return!1;var t=j1(e)?F1:P1;return t.test(q(e))}var R1=G1;function q1(e,t){return e?.[t]}var Q1=q1;function H1(e,t){var r=Q1(e,t);return R1(r)?r:void 0}var le=H1,Y1=le(U,"WeakMap"),An=Y1;function Z1(e,t){return e===t||e!==e&&t!==t}var W1=Z1,K1=9007199254740991;function J1(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=K1}var X1=J1,Uw=Object.prototype,ed="[object Arguments]";function td(e){return Nn(e)&&et(e)==ed}var ti=td,$i=Object.prototype,nd=$i.hasOwnProperty,rd=$i.propertyIsEnumerable,Vw=ti(function(){return arguments}())?ti:function(e){return Nn(e)&&nd.call(e,"callee")&&!rd.call(e,"callee")},Ni=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ni=Ni&&typeof module=="object"&&module&&!module.nodeType&&module,id=ni&&ni.exports===Ni,ri=id?U.Buffer:void 0,Bw=ri?ri.isBuffer:void 0,od="[object Arguments]",ad="[object Array]",ld="[object Boolean]",sd="[object Date]",ud="[object Error]",cd="[object Function]",dd="[object Map]",gd="[object Number]",pd="[object Object]",md="[object RegExp]",fd="[object Set]",yd="[object String]",bd="[object WeakMap]",hd="[object ArrayBuffer]",vd="[object DataView]",kd="[object Float32Array]",wd="[object Float64Array]",Cd="[object Int8Array]",Md="[object Int16Array]",xd="[object Int32Array]",Id="[object Uint8Array]",Ad="[object Uint8ClampedArray]",Ed="[object Uint16Array]",Sd="[object Uint32Array]",E={};E[kd]=E[wd]=E[Cd]=E[Md]=E[xd]=E[Id]=E[Ad]=E[Ed]=E[Sd]=!0;E[od]=E[ad]=E[hd]=E[ld]=E[vd]=E[sd]=E[ud]=E[cd]=E[dd]=E[gd]=E[pd]=E[md]=E[fd]=E[yd]=E[bd]=!1;function jd(e){return Nn(e)&&X1(e.length)&&!!E[et(e)]}var Ld=jd;function Td(e){return function(t){return e(t)}}var $d=Td,Oi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ke=Oi&&typeof module=="object"&&module&&!module.nodeType&&module,Nd=Ke&&Ke.exports===Oi,Cn=Nd&&ji.process,Od=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||Cn&&Cn.binding&&Cn.binding("util")}catch{}}(),ii=Od,oi=ii&&ii.isTypedArray,Fw=oi?$d(oi):Ld,Dd=Object.prototype,Gw=Dd.hasOwnProperty;function _d(e,t){return function(r){return e(t(r))}}var Pd=_d,Rw=Pd(Object.keys,Object),zd=Object.prototype,qw=zd.hasOwnProperty,Ud=le(Object,"create"),Je=Ud;function Vd(){this.__data__=Je?Je(null):{},this.size=0}var Bd=Vd;function Fd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Gd=Fd,Rd="__lodash_hash_undefined__",qd=Object.prototype,Qd=qd.hasOwnProperty;function Hd(e){var t=this.__data__;if(Je){var r=t[e];return r===Rd?void 0:r}return Qd.call(t,e)?t[e]:void 0}var Yd=Hd,Zd=Object.prototype,Wd=Zd.hasOwnProperty;function Kd(e){var t=this.__data__;return Je?t[e]!==void 0:Wd.call(t,e)}var Jd=Kd,Xd="__lodash_hash_undefined__";function eg(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Je&&t===void 0?Xd:t,this}var tg=eg;function se(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}se.prototype.clear=Bd;se.prototype.delete=Gd;se.prototype.get=Yd;se.prototype.has=Jd;se.prototype.set=tg;var ai=se;function ng(){this.__data__=[],this.size=0}var rg=ng;function ig(e,t){for(var r=e.length;r--;)if(W1(e[r][0],t))return r;return-1}var Ft=ig,og=Array.prototype,ag=og.splice;function lg(e){var t=this.__data__,r=Ft(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ag.call(t,r,1),--this.size,!0}var sg=lg;function ug(e){var t=this.__data__,r=Ft(t,e);return r<0?void 0:t[r][1]}var cg=ug;function dg(e){return Ft(this.__data__,e)>-1}var gg=dg;function pg(e,t){var r=this.__data__,n=Ft(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var mg=pg;function ue(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ue.prototype.clear=rg;ue.prototype.delete=sg;ue.prototype.get=cg;ue.prototype.has=gg;ue.prototype.set=mg;var Gt=ue,fg=le(U,"Map"),Xe=fg;function yg(){this.size=0,this.__data__={hash:new ai,map:new(Xe||Gt),string:new ai}}var bg=yg;function hg(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var vg=hg;function kg(e,t){var r=e.__data__;return vg(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rt=kg;function wg(e){var t=Rt(this,e).delete(e);return this.size-=t?1:0,t}var Cg=wg;function Mg(e){return Rt(this,e).get(e)}var xg=Mg;function Ig(e){return Rt(this,e).has(e)}var Ag=Ig;function Eg(e,t){var r=Rt(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var Sg=Eg;function ce(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ce.prototype.clear=bg;ce.prototype.delete=Cg;ce.prototype.get=xg;ce.prototype.has=Ag;ce.prototype.set=Sg;var Di=ce;function jg(){this.__data__=new Gt,this.size=0}var Lg=jg;function Tg(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $g=Tg;function Ng(e){return this.__data__.get(e)}var Og=Ng;function Dg(e){return this.__data__.has(e)}var _g=Dg,Pg=200;function zg(e,t){var r=this.__data__;if(r instanceof Gt){var n=r.__data__;if(!Xe||n.length<Pg-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Di(n)}return r.set(e,t),this.size=r.size,this}var Ug=zg;function tt(e){var t=this.__data__=new Gt(e);this.size=t.size}tt.prototype.clear=Lg;tt.prototype.delete=$g;tt.prototype.get=Og;tt.prototype.has=_g;tt.prototype.set=Ug;var Vg=Object.prototype,Qw=Vg.propertyIsEnumerable,Bg=le(U,"DataView"),En=Bg,Fg=le(U,"Promise"),Sn=Fg,Gg=le(U,"Set"),jn=Gg,li="[object Map]",Rg="[object Object]",si="[object Promise]",ui="[object Set]",ci="[object WeakMap]",di="[object DataView]",qg=q(En),Qg=q(Xe),Hg=q(Sn),Yg=q(jn),Zg=q(An),re=et;(En&&re(new En(new ArrayBuffer(1)))!=di||Xe&&re(new Xe)!=li||Sn&&re(Sn.resolve())!=si||jn&&re(new jn)!=ui||An&&re(new An)!=ci)&&(re=function(e){var t=et(e),r=t==Rg?e.constructor:void 0,n=r?q(r):"";if(n)switch(n){case qg:return di;case Qg:return li;case Hg:return si;case Yg:return ui;case Zg:return ci}return t});var Hw=U.Uint8Array,Wg="__lodash_hash_undefined__";function Kg(e){return this.__data__.set(e,Wg),this}var Jg=Kg;function Xg(e){return this.__data__.has(e)}var ep=Xg;function Ln(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Di;++t<r;)this.add(e[t])}Ln.prototype.add=Ln.prototype.push=Jg;Ln.prototype.has=ep;var gi=ae?ae.prototype:void 0,Yw=gi?gi.valueOf:void 0,tp=Object.prototype,Zw=tp.hasOwnProperty,np=Object.prototype,Ww=np.hasOwnProperty,Kw=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Jw=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Xw=new RegExp(/[A-Fa-f0-9]{2}/,"g");function rp(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function _i(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Tn(e,t){let r=await _i(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function ip(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return _i(n,t)}function op(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await up(2e3),await ap(t,e,r))}async function ap(e,t,r){switch(t.kind){case"image":return lp(e,t,r);case"video":return sp(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function lp(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await ip(l,r),s=await Tn(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
63
|
-
`,"+")}`}}async function
|
|
62
|
+
`;var _c=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;ie(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{ie(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return ie(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ie(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ie(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=ie(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=ie(a,t,o)}return e}var Pc=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)}},yi=Pc,zc=typeof global=="object"&&global&&global.Object===Object&&global,bi=zc,Uc=typeof self=="object"&&self&&self.Object===Object&&self,Vc=bi||Uc||Function("return this")(),U=Vc,Bc=U.Symbol,oe=Bc,hi=Object.prototype,Fc=hi.hasOwnProperty,Gc=hi.toString,He=oe?oe.toStringTag:void 0;function Rc(e){var t=Fc.call(e,He),n=e[He];try{e[He]=void 0;var r=!0}catch{}var a=Gc.call(e);return r&&(t?e[He]=n:delete e[He]),a}var qc=Rc,Qc=Object.prototype,Hc=Qc.toString;function Yc(e){return Hc.call(e)}var Zc=Yc,Wc="[object Null]",Kc="[object Undefined]",Jn=oe?oe.toStringTag:void 0;function Jc(e){return e==null?e===void 0?Kc:Wc:Jn&&Jn in Object(e)?qc(e):Zc(e)}var et=Jc;function Xc(e){return e!=null&&typeof e=="object"}var Tr=Xc,Fw=Array.isArray;function e1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var vi=e1,t1="[object AsyncFunction]",r1="[object Function]",n1="[object GeneratorFunction]",i1="[object Proxy]";function o1(e){if(!vi(e))return!1;var t=et(e);return t==r1||t==n1||t==t1||t==i1}var a1=o1,l1=U["__core-js_shared__"],vr=l1,Xn=function(){var e=/[^.]+$/.exec(vr&&vr.keys&&vr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function s1(e){return!!Xn&&Xn in e}var u1=s1,c1=Function.prototype,d1=c1.toString;function g1(e){if(e!=null){try{return d1.call(e)}catch{}try{return e+""}catch{}}return""}var q=g1,p1=/[\\^$.*+?()[\]{}|]/g,m1=/^\[object .+?Constructor\]$/,f1=Function.prototype,y1=Object.prototype,b1=f1.toString,h1=y1.hasOwnProperty,v1=RegExp("^"+b1.call(h1).replace(p1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function k1(e){if(!vi(e)||u1(e))return!1;var t=a1(e)?v1:m1;return t.test(q(e))}var w1=k1;function C1(e,t){return e?.[t]}var M1=C1;function I1(e,t){var n=M1(e,t);return w1(n)?n:void 0}var le=I1,x1=le(U,"WeakMap"),xr=x1;function A1(e,t){return e===t||e!==e&&t!==t}var S1=A1,E1=9007199254740991;function j1(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=E1}var L1=j1,Gw=Object.prototype,T1="[object Arguments]";function $1(e){return Tr(e)&&et(e)==T1}var ei=$1,ki=Object.prototype,N1=ki.hasOwnProperty,D1=ki.propertyIsEnumerable,Rw=ei(function(){return arguments}())?ei:function(e){return Tr(e)&&N1.call(e,"callee")&&!D1.call(e,"callee")},wi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=wi&&typeof module=="object"&&module&&!module.nodeType&&module,O1=ti&&ti.exports===wi,ri=O1?U.Buffer:void 0,qw=ri?ri.isBuffer:void 0,_1="[object Arguments]",P1="[object Array]",z1="[object Boolean]",U1="[object Date]",V1="[object Error]",B1="[object Function]",F1="[object Map]",G1="[object Number]",R1="[object Object]",q1="[object RegExp]",Q1="[object Set]",H1="[object String]",Y1="[object WeakMap]",Z1="[object ArrayBuffer]",W1="[object DataView]",K1="[object Float32Array]",J1="[object Float64Array]",X1="[object Int8Array]",ed="[object Int16Array]",td="[object Int32Array]",rd="[object Uint8Array]",nd="[object Uint8ClampedArray]",id="[object Uint16Array]",od="[object Uint32Array]",S={};S[K1]=S[J1]=S[X1]=S[ed]=S[td]=S[rd]=S[nd]=S[id]=S[od]=!0;S[_1]=S[P1]=S[Z1]=S[z1]=S[W1]=S[U1]=S[V1]=S[B1]=S[F1]=S[G1]=S[R1]=S[q1]=S[Q1]=S[H1]=S[Y1]=!1;function ad(e){return Tr(e)&&L1(e.length)&&!!S[et(e)]}var ld=ad;function sd(e){return function(t){return e(t)}}var ud=sd,Ci=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ke=Ci&&typeof module=="object"&&module&&!module.nodeType&&module,cd=Ke&&Ke.exports===Ci,kr=cd&&bi.process,dd=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||kr&&kr.binding&&kr.binding("util")}catch{}}(),ni=dd,ii=ni&&ni.isTypedArray,Qw=ii?ud(ii):ld,gd=Object.prototype,Hw=gd.hasOwnProperty;function pd(e,t){return function(n){return e(t(n))}}var md=pd,Yw=md(Object.keys,Object),fd=Object.prototype,Zw=fd.hasOwnProperty,yd=le(Object,"create"),Je=yd;function bd(){this.__data__=Je?Je(null):{},this.size=0}var hd=bd;function vd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kd=vd,wd="__lodash_hash_undefined__",Cd=Object.prototype,Md=Cd.hasOwnProperty;function Id(e){var t=this.__data__;if(Je){var n=t[e];return n===wd?void 0:n}return Md.call(t,e)?t[e]:void 0}var xd=Id,Ad=Object.prototype,Sd=Ad.hasOwnProperty;function Ed(e){var t=this.__data__;return Je?t[e]!==void 0:Sd.call(t,e)}var jd=Ed,Ld="__lodash_hash_undefined__";function Td(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Je&&t===void 0?Ld:t,this}var $d=Td;function se(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}se.prototype.clear=hd;se.prototype.delete=kd;se.prototype.get=xd;se.prototype.has=jd;se.prototype.set=$d;var oi=se;function Nd(){this.__data__=[],this.size=0}var Dd=Nd;function Od(e,t){for(var n=e.length;n--;)if(S1(e[n][0],t))return n;return-1}var Ft=Od,_d=Array.prototype,Pd=_d.splice;function zd(e){var t=this.__data__,n=Ft(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Pd.call(t,n,1),--this.size,!0}var Ud=zd;function Vd(e){var t=this.__data__,n=Ft(t,e);return n<0?void 0:t[n][1]}var Bd=Vd;function Fd(e){return Ft(this.__data__,e)>-1}var Gd=Fd;function Rd(e,t){var n=this.__data__,r=Ft(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var qd=Rd;function ue(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ue.prototype.clear=Dd;ue.prototype.delete=Ud;ue.prototype.get=Bd;ue.prototype.has=Gd;ue.prototype.set=qd;var Gt=ue,Qd=le(U,"Map"),Xe=Qd;function Hd(){this.size=0,this.__data__={hash:new oi,map:new(Xe||Gt),string:new oi}}var Yd=Hd;function Zd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Wd=Zd;function Kd(e,t){var n=e.__data__;return Wd(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Rt=Kd;function Jd(e){var t=Rt(this,e).delete(e);return this.size-=t?1:0,t}var Xd=Jd;function eg(e){return Rt(this,e).get(e)}var tg=eg;function rg(e){return Rt(this,e).has(e)}var ng=rg;function ig(e,t){var n=Rt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var og=ig;function ce(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ce.prototype.clear=Yd;ce.prototype.delete=Xd;ce.prototype.get=tg;ce.prototype.has=ng;ce.prototype.set=og;var Mi=ce;function ag(){this.__data__=new Gt,this.size=0}var lg=ag;function sg(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var ug=sg;function cg(e){return this.__data__.get(e)}var dg=cg;function gg(e){return this.__data__.has(e)}var pg=gg,mg=200;function fg(e,t){var n=this.__data__;if(n instanceof Gt){var r=n.__data__;if(!Xe||r.length<mg-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Mi(r)}return n.set(e,t),this.size=n.size,this}var yg=fg;function tt(e){var t=this.__data__=new Gt(e);this.size=t.size}tt.prototype.clear=lg;tt.prototype.delete=ug;tt.prototype.get=dg;tt.prototype.has=pg;tt.prototype.set=yg;var bg=Object.prototype,Ww=bg.propertyIsEnumerable,hg=le(U,"DataView"),Ar=hg,vg=le(U,"Promise"),Sr=vg,kg=le(U,"Set"),Er=kg,ai="[object Map]",wg="[object Object]",li="[object Promise]",si="[object Set]",ui="[object WeakMap]",ci="[object DataView]",Cg=q(Ar),Mg=q(Xe),Ig=q(Sr),xg=q(Er),Ag=q(xr),ne=et;(Ar&&ne(new Ar(new ArrayBuffer(1)))!=ci||Xe&&ne(new Xe)!=ai||Sr&&ne(Sr.resolve())!=li||Er&&ne(new Er)!=si||xr&&ne(new xr)!=ui)&&(ne=function(e){var t=et(e),n=t==wg?e.constructor:void 0,r=n?q(n):"";if(r)switch(r){case Cg:return ci;case Mg:return ai;case Ig:return li;case xg:return si;case Ag:return ui}return t});var Kw=U.Uint8Array,Sg="__lodash_hash_undefined__";function Eg(e){return this.__data__.set(e,Sg),this}var jg=Eg;function Lg(e){return this.__data__.has(e)}var Tg=Lg;function jr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Mi;++t<n;)this.add(e[t])}jr.prototype.add=jr.prototype.push=jg;jr.prototype.has=Tg;var di=oe?oe.prototype:void 0,Jw=di?di.valueOf:void 0,$g=Object.prototype,Xw=$g.hasOwnProperty,Ng=Object.prototype,eC=Ng.hasOwnProperty,tC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),rC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),nC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Dg(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 n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function Lr(e,t){let n=await Ii(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function Og(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return Ii(r,t)}function xi(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function Ze(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=xi(e,t.$ref),a={...Ze(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Ze(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>Ze(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=Ze(e,t[a],n));return r}return t}function _g(e){return Ze(e,{...e})}function Pg(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`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 n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`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 n(`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 n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'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 n(`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 n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`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 n(`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 n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`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 n(`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 n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`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 n(`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 n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function zg(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=e.properties,r=[];return Ug(e,t).forEach(a=>{let o=a,i=n[a]??void 0;r.push({id:o,schema:i})}),r}function Ug(e,t){let n=t.order;if(n!=null&&Array.isArray(n))return n;if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,a=Object.keys(r),o=Vg(e,t)??a;return n!=null&&typeof n=="function"&&(o=n(o)),[...new Set(o)]}function Vg(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 n=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return n==null?void 0:e[n]}var Ai=zg,Bg="ly.img.ai",wr="ly.img.ai/temp";async function Fg(e,t){return e.engine.asset.findAllSources().includes(wr)||e.engine.asset.addLocalSource(wr),e.engine.asset.apply(wr,t)}function Si(e){return`${Bg}/${e}`}function Gg(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function Rg(){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 qg(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function Ei(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function $r(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 ae(e){return e instanceof Error&&e.name==="AbortError"}function ji(e,t,n,r,a,o){if(t.schema==null)return r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null?r.renderCustomProperty[t.id](e,t):void 0;let i=t,l=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(l){case"string":return t.schema.enum!=null?Qg(e,i,n,r,a,o):Ti(e,i,n,r,a,o);case"boolean":return $i(e,i,n,r,a,o);case"number":case"integer":return Ni(e,i,n,r,a,o);case"object":return Li(e,i,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Hg(e,i,n,r,a,o);break}default:console.error(`Unsupported property type: ${l}`)}}function Li(e,t,n,r,a,o){let i=Ai(t.schema??{},r).reduce((l,u)=>{let s=ji(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ti(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=Yg(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Qg(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??Ei(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function $i(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Ni(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Hg(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??Ei(M),icon:C[M]})}):(f[y]=()=>Ti(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>$i(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>Ni(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>Li(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function Yg(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Zg=ji,Wg="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Di=Wg;function Kg(e,t,n){switch(t){case"image":return Jg(e,n[t]);case"video":return Xg(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Jg(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Di,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Xg(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Di,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var ep=Kg;async function tp(e,t,n,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 rp(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return np(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return ip(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function rp(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function np(e,t,n){let r=t.width,a=t.height,o=await qg(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function ip(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var gi=tp;function Oi(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};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 op(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var _i=op;function ap(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await cp(2e3),await lp(t,e,n))}async function lp(e,t,n){switch(t.kind){case"image":return sp(e,t,n);case"video":return up(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function sp(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await Og(l,n),s=await Lr(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
63
|
+
`,"+")}`}}async function up(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function cp(e){return new Promise(t=>{setTimeout(t,e)})}var Pi=ap;async function dp(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Rg(),v;if(u){if(v=ep(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Fg(l,v),c!=null&&r.kind==="video"){let h=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,h),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(Vt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let w=Oi([...r.output.middleware??[],o.debug?_i():void 0,o.dryRun?Pi({kind:r.kind,blockInputs:g}):void 0]),{result:b}=await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if($r(b))throw new Error("Streaming generation is not supported yet from a panel");if(Vt(l,i,c))return{status:"aborted"};if(b==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(b,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await gi(f,e,g,b),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),Vt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await gi(f,e,g,b),Vt(l,i,c)))return{status:"aborted"};let h={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,h)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:b}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(ae(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Vt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var gp=dp;function pp(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),mp(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Gg(e)}))}function mp(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var We=pp;function Bt(e){return`${e}.generating`}function fp(e){return`${e}.abort`}function yp(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(fp(c),()=>{}),f=l.global(Bt(c),!1),v,w=f.value&&d,b=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let h=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),h.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),u.ui.closeDialog(y),h.setValue(void 0)}}});h.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let k=await gp(t.kind,n,r,t,a,o,m);if(k.status==="aborted")return;let C=t.output.notification;bp(u,C,()=>({input:n().input,output:k.output}))}catch(k){if(ae(k))return;We(k,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),h.value!=null&&(u.ui.closeDialog(h.value),h.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:b}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function bp(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var zi=yp;async function hp(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=_g(t.document),l=xi(i,t.inputReference);if(!Pg(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Ai(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let h=Zg(d,p,e,t,n,r);h!=null&&(Array.isArray(h)?f.push(...h):f.push(h))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((h,[m,y])=>(h[m]=w(y),h),{}):p.value,b=v.reduce((p,h)=>(p[h.id]=w(h),p),{});zi(d,e,()=>({input:b}),()=>t.getBlockInput(b),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Si(o),c),c}var vp=hp;async function kp(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Bt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return zi(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Si(o),l),l}var wp=kp,Cr="@imgly/plugin-ai-generation",Cp=`
|
|
64
64
|
<svg>
|
|
65
65
|
<symbol
|
|
66
66
|
fill="none"
|
|
@@ -78,7 +78,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
78
78
|
fill="none"
|
|
79
79
|
xmlns="http://www.w3.org/2000/svg"
|
|
80
80
|
viewBox="0 0 24 24"
|
|
81
|
-
id="${
|
|
81
|
+
id="${Cr}/image"
|
|
82
82
|
>
|
|
83
83
|
<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"/>
|
|
84
84
|
<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"/>
|
|
@@ -90,7 +90,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
90
90
|
fill="none"
|
|
91
91
|
xmlns="http://www.w3.org/2000/svg"
|
|
92
92
|
viewBox="0 0 24 24"
|
|
93
|
-
id="${
|
|
93
|
+
id="${Cr}/video"
|
|
94
94
|
>
|
|
95
95
|
<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"/>
|
|
96
96
|
<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"/>
|
|
@@ -101,7 +101,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
101
101
|
fill="none"
|
|
102
102
|
xmlns="http://www.w3.org/2000/svg"
|
|
103
103
|
viewBox="0 0 24 24"
|
|
104
|
-
id="${
|
|
104
|
+
id="${Cr}/audio"
|
|
105
105
|
>
|
|
106
106
|
<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"/>
|
|
107
107
|
<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"/>
|
|
@@ -121,7 +121,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
121
121
|
|
|
122
122
|
</symbol>
|
|
123
123
|
</svg>
|
|
124
|
-
`,Cp=wp,pi="ly.img.ai.quickAction.order",Ye="ly.img.ai.quickAction.actions";function Mp(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${pi}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${pi}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ye}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{})[r]}}var xp=Mp,xn="ly.img.ai.inference.editMode",Ui="ly.img.ai.inference.metadata";function Vi(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Ip(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function Ap({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var Ep=Ap;function Sp({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var jp=Sp;function Lp({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=Tp(n.engine,o,e),await a(r,n)}catch(l){throw oe(l)&&i(),l}finally{t&&i()}}}function Tp(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var $p=Lp;function Np(e,t){switch(t.kind){case"text":return Op(e,t);case"image":return Dp(e,t);case"video":return _p(e,t);case"audio":return Pp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Op(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if($n(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Dp(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await Tn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),w=r.engine.block.getCropTranslationX(o),b=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),h=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,w),r.engine.block.setCropTranslationY(o,b),r.engine.block.setCropRotation(o,p)};if($n(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),k=await zp(r,m,y),C=await Tn(k,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",$):(r.engine.block.setString(i,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(i,"fill/image/sourceSet",I)),x?r.engine.block.setContentFillMode(o,"Cover"):h();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",$)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function _p(e,t){throw new Error("Function not implemented.")}async function Pp(e,t){throw new Error("Function not implemented.")}async function zp(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${rp(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Up=Np;function Vp({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Bp(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw oe(u)&&l(),u}finally{t&&l()}}}function Bp(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Fp=Vp;async function Gp(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:xn});let s=new Si(r.engine,Ui);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=Ai([...o.output.middleware??[],t.debug?Ei():void 0,jp({}),...i.confirmation?[i.lockDuringConfirmation?$p({editMode:xn}):Fp({editMode:xn}),i.confirmation&&Ep({})]:[],t.dryRun?Pi({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:w}=await Up(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var mi=Gp;function Rp(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new Si(r.engine,Ui),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=n.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=n.getQuickAction(m);if(y==null||!r.feature.isEnabled(Vi({quickActionId:m,quickActionMenuId:n.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=Ip(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=n.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{We(C,{cesdk:r,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:x,applyCallbacks:I,dispose:$}=await mi({input:C,quickAction:k,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=I,x}catch(x){throw oe(x)||We(x,{cesdk:r,provider:a},t),x}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{We(k,{cesdk:r,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await mi({input:k,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw oe(M)||We(M,{cesdk:r,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var qp=Rp;async function Qp(e,t,r){await e.initialize?.(t);let n=await Yp(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Hp(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Cp),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Zp(e,o,r)}}function Hp(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Yp(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new o1(n,e)),n}return r}}async function Zp(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await Wp(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Kp(e,e.input.quickActions,t,r)),n}async function Wp(e,t,r,n){switch(t.type){case"custom":return kp(e,t,r,n);case"schema":return hp(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Kp(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=xp(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Vi({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=qp({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var fi=Qp;function Jp(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai/")&&console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai/" \u2013 "${r}" was provided.`);let n=`${r}.dock`;t.ui.registerComponent(n,({builder:a})=>{let o=t.ui.isPanelOpen(r);a.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Xp=Jp,em="@imgly/plugin-ai-image-generation",tm=`
|
|
124
|
+
`,Mp=Cp,pi="ly.img.ai.quickAction.order",Ye="ly.img.ai.quickAction.actions";function Ip(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${pi}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${pi}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ye}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{})[n]}}var xp=Ip,Mr="ly.img.ai.inference.editMode",Ui="ly.img.ai.inference.metadata";function Vi(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Ap(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function Sp({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var Ep=Sp;function jp({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var Lp=jp;function Tp({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=$p(r.engine,o,e),await a(n,r)}catch(l){throw ae(l)&&i(),l}finally{t&&i()}}}function $p(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Np=Tp;function Dp(e,t){switch(t.kind){case"text":return Op(e,t);case"image":return _p(e,t);case"video":return Pp(e,t);case"audio":return zp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Op(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if($r(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function _p(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await Lr(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),w=n.engine.block.getCropTranslationX(o),b=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,w),n.engine.block.setCropTranslationY(o,b),n.engine.block.setCropRotation(o,p)};if($r(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),k=await Up(n,m,y),C=await Lr(k,t.cesdk.engine),M=C.width/C.height,I=Math.abs(g-M)>.001,x=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;x==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):(n.engine.block.setString(i,"fill/image/imageFileURI",""),n.engine.block.setSourceSet(i,"fill/image/sourceSet",x)),I?n.engine.block.setContentFillMode(o,"Cover"):h();let D=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},O=()=>{if(x==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",x);I?n.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:D,onAfter:O,onCancel:()=>{D()},onApply:()=>{O(),t.cesdk.engine.editor.addUndoStep()}}}}async function Pp(e,t){throw new Error("Function not implemented.")}async function zp(e,t){throw new Error("Function not implemented.")}async function Up(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${Dg(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Vp=Dp;function Bp({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Fp(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw ae(u)&&l(),u}finally{t&&l()}}}function Fp(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Gp=Bp;async function Rp(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:Mr});let s=new yi(n.engine,Ui);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Oi([...o.output.middleware??[],t.debug?_i():void 0,Lp({}),...i.confirmation?[i.lockDuringConfirmation?Np({editMode:Mr}):Gp({editMode:Mr}),i.confirmation&&Ep({})]:[],t.dryRun?Pi({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await Vp(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var mi=Rp;function qp(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new yi(n.engine,Ui),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=r.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=r.getQuickAction(m);if(y==null||!n.feature.isEnabled(Vi({quickActionId:m,quickActionMenuId:r.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=Ap(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=r.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{We(C,{cesdk:n,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:I,applyCallbacks:x,dispose:$}=await mi({input:C,quickAction:k,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=x,I}catch(I){throw ae(I)||We(I,{cesdk:n,provider:a},t),I}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{We(k,{cesdk:n,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:I,dispose:x}=await mi({input:k,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=I,M}catch(M){throw ae(M)||We(M,{cesdk:n,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var Qp=qp;async function Hp(e,t,n){await e.initialize?.(t);let r=await Zp(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Yp(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Mp),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Wp(e,o,n)}}function Yp(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Zp(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new _c(r,e)),r}return n}}async function Wp(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Kp(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Jp(e,e.input.quickActions,t,n)),r}async function Kp(e,t,n,r){switch(t.type){case"custom":return wp(e,t,n,r);case"schema":return vp(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Jp(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=xp(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Vi({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=Qp({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var fi=Hp;function Xp(e){let{cesdk:t,panelId:n}=e;n.startsWith("ly.img.ai/")&&console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai/" \u2013 "${n}" was provided.`);let r=`${n}.dock`;t.ui.registerComponent(r,({builder:a})=>{let o=t.ui.isPanelOpen(n);a.Button(`${n}.dock.button`,{label:`${n}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(n):t.ui.openPanel(n)}})})}var em=Xp,tm="@imgly/plugin-ai-image-generation",rm=`
|
|
125
125
|
<svg>
|
|
126
126
|
<symbol
|
|
127
127
|
fill="none"
|
|
@@ -135,8 +135,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
135
135
|
|
|
136
136
|
</symbol>
|
|
137
137
|
</svg>
|
|
138
|
-
`,nm=tm,rm="@imgly/plugin-ai-image-generation-web",_="ly.img.ai/image-generation",In="ly.img.ai.image-generation.fromType";function im(e){return{async initialize({cesdk:t}){if(t==null)return;let r={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.ui.addIconSet(em,nm),t.setTranslations({en:{[`panel.${_}`]:"Image Generation","ly.img.ai.image-generation.success":"Image Generation Successful","ly.img.ai.image-generation.success.action":"Show"}});let n=e?.text2image,a=e?.image2image,o=await n?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(_),g=t.ui.experimental.getGlobalStateValue(In,"fromText")===c;return!d||!g},message:"ly.img.ai.image-generation.success",action:{label:"ly.img.ai.image-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(In,c),t.ui.openPanel(_)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await fi(o,{cesdk:t,engine:t.engine},r):void 0,s=i!=null?await fi(i,{cesdk:t,engine:t.engine},r):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){r.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(_,c=>{let{builder:d,experimental:g}=c,f=g.global(In,"fromText");switch(d.Section(`${_}.fromType.section`,{children:()=>{d.ButtonGroup(`${_}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${_}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Bt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${_}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Bt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(_,c),t.i18n.setTranslations({en:{[`${_}.dock.label`]:"AI Image"}}),Xp({cesdk:t,panelId:_})}}}}var om=im,am=e=>({name:rm,version:"0.1.7",...om(e)}),Bi=am;function ao(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function it(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=ao(e,t.$ref),a={...it(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=it(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>it(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=it(e,t[a],r));return n}return t}function lm(e){return it(e,{...e})}function sm(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function um(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return cm(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function cm(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var lo=um,dm="ly.img.ai",On="ly.img.ai/temp";async function gm(e,t){return e.engine.asset.findAllSources().includes(On)||e.engine.asset.addLocalSource(On),e.engine.asset.apply(On,t)}function so(e){return`${dm}/${e}`}function pm(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function mm(){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 fm(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function uo(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function Qn(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 pe(e){return e instanceof Error&&e.name==="AbortError"}function co(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?ym(e,t,r,n,a,o):po(e,t,r,n,a,o);case"boolean":return mo(e,t,r,n,a,o);case"number":case"integer":return fo(e,t,r,n,a,o);case"object":return go(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return bm(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function go(e,t,r,n,a,o){let i=lo(t.schema??{},n).reduce((l,u)=>{let s=co(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function po(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=hm(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function ym(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??uo(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function mo(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function fo(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function bm(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??uo(M),icon:C[M]})}):(f[y]=()=>po(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>mo(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>fo(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>go(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function hm(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var vm=co,km="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yo=km;function wm(e,t,r){switch(t){case"image":return Cm(e,r[t]);case"video":return Mm(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Cm(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:yo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function Mm(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:yo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var xm=wm;async function Im(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return Am(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return Em(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return Sm(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Am(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function Em(e,t,r){let n=t.width,a=t.height,o=await fm(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function Sm(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}var Fi=Im;function bo(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,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 jm(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var ho=jm,Lm=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),n=new Set;ge(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ge(t,n=>{this.removeBlob(n)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ge(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),ge(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ge(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=ge(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=ge(a,t,o)}return e}var Tm=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)}},vo=Tm,$m=typeof global=="object"&&global&&global.Object===Object&&global,ko=$m,Nm=typeof self=="object"&&self&&self.Object===Object&&self,Om=ko||Nm||Function("return this")(),V=Om,Dm=V.Symbol,me=Dm,wo=Object.prototype,_m=wo.hasOwnProperty,Pm=wo.toString,nt=me?me.toStringTag:void 0;function zm(e){var t=_m.call(e,nt),r=e[nt];try{e[nt]=void 0;var n=!0}catch{}var a=Pm.call(e);return n&&(t?e[nt]=r:delete e[nt]),a}var Um=zm,Vm=Object.prototype,Bm=Vm.toString;function Fm(e){return Bm.call(e)}var Gm=Fm,Rm="[object Null]",qm="[object Undefined]",Gi=me?me.toStringTag:void 0;function Qm(e){return e==null?e===void 0?qm:Rm:Gi&&Gi in Object(e)?Um(e):Gm(e)}var ut=Qm;function Hm(e){return e!=null&&typeof e=="object"}var Hn=Hm,rC=Array.isArray;function Ym(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Co=Ym,Zm="[object AsyncFunction]",Wm="[object Function]",Km="[object GeneratorFunction]",Jm="[object Proxy]";function Xm(e){if(!Co(e))return!1;var t=ut(e);return t==Wm||t==Km||t==Zm||t==Jm}var e2=Xm,t2=V["__core-js_shared__"],Dn=t2,Ri=function(){var e=/[^.]+$/.exec(Dn&&Dn.keys&&Dn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function n2(e){return!!Ri&&Ri in e}var r2=n2,i2=Function.prototype,o2=i2.toString;function a2(e){if(e!=null){try{return o2.call(e)}catch{}try{return e+""}catch{}}return""}var Q=a2,l2=/[\\^$.*+?()[\]{}|]/g,s2=/^\[object .+?Constructor\]$/,u2=Function.prototype,c2=Object.prototype,d2=u2.toString,g2=c2.hasOwnProperty,p2=RegExp("^"+d2.call(g2).replace(l2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m2(e){if(!Co(e)||r2(e))return!1;var t=e2(e)?p2:s2;return t.test(Q(e))}var f2=m2;function y2(e,t){return e?.[t]}var b2=y2;function h2(e,t){var r=b2(e,t);return f2(r)?r:void 0}var fe=h2,v2=fe(V,"WeakMap"),Vn=v2;function k2(e,t){return e===t||e!==e&&t!==t}var w2=k2,C2=9007199254740991;function M2(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=C2}var x2=M2,iC=Object.prototype,I2="[object Arguments]";function A2(e){return Hn(e)&&ut(e)==I2}var qi=A2,Mo=Object.prototype,E2=Mo.hasOwnProperty,S2=Mo.propertyIsEnumerable,oC=qi(function(){return arguments}())?qi:function(e){return Hn(e)&&E2.call(e,"callee")&&!S2.call(e,"callee")},xo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qi=xo&&typeof module=="object"&&module&&!module.nodeType&&module,j2=Qi&&Qi.exports===xo,Hi=j2?V.Buffer:void 0,aC=Hi?Hi.isBuffer:void 0,L2="[object Arguments]",T2="[object Array]",$2="[object Boolean]",N2="[object Date]",O2="[object Error]",D2="[object Function]",_2="[object Map]",P2="[object Number]",z2="[object Object]",U2="[object RegExp]",V2="[object Set]",B2="[object String]",F2="[object WeakMap]",G2="[object ArrayBuffer]",R2="[object DataView]",q2="[object Float32Array]",Q2="[object Float64Array]",H2="[object Int8Array]",Y2="[object Int16Array]",Z2="[object Int32Array]",W2="[object Uint8Array]",K2="[object Uint8ClampedArray]",J2="[object Uint16Array]",X2="[object Uint32Array]",S={};S[q2]=S[Q2]=S[H2]=S[Y2]=S[Z2]=S[W2]=S[K2]=S[J2]=S[X2]=!0;S[L2]=S[T2]=S[G2]=S[$2]=S[R2]=S[N2]=S[O2]=S[D2]=S[_2]=S[P2]=S[z2]=S[U2]=S[V2]=S[B2]=S[F2]=!1;function ef(e){return Hn(e)&&x2(e.length)&&!!S[ut(e)]}var tf=ef;function nf(e){return function(t){return e(t)}}var rf=nf,Io=typeof exports=="object"&&exports&&!exports.nodeType&&exports,at=Io&&typeof module=="object"&&module&&!module.nodeType&&module,of=at&&at.exports===Io,_n=of&&ko.process,af=function(){try{var e=at&&at.require&&at.require("util").types;return e||_n&&_n.binding&&_n.binding("util")}catch{}}(),Yi=af,Zi=Yi&&Yi.isTypedArray,lC=Zi?rf(Zi):tf,lf=Object.prototype,sC=lf.hasOwnProperty;function sf(e,t){return function(r){return e(t(r))}}var uf=sf,uC=uf(Object.keys,Object),cf=Object.prototype,cC=cf.hasOwnProperty,df=fe(Object,"create"),lt=df;function gf(){this.__data__=lt?lt(null):{},this.size=0}var pf=gf;function mf(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ff=mf,yf="__lodash_hash_undefined__",bf=Object.prototype,hf=bf.hasOwnProperty;function vf(e){var t=this.__data__;if(lt){var r=t[e];return r===yf?void 0:r}return hf.call(t,e)?t[e]:void 0}var kf=vf,wf=Object.prototype,Cf=wf.hasOwnProperty;function Mf(e){var t=this.__data__;return lt?t[e]!==void 0:Cf.call(t,e)}var xf=Mf,If="__lodash_hash_undefined__";function Af(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=lt&&t===void 0?If:t,this}var Ef=Af;function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=pf;ye.prototype.delete=ff;ye.prototype.get=kf;ye.prototype.has=xf;ye.prototype.set=Ef;var Wi=ye;function Sf(){this.__data__=[],this.size=0}var jf=Sf;function Lf(e,t){for(var r=e.length;r--;)if(w2(e[r][0],t))return r;return-1}var Ht=Lf,Tf=Array.prototype,$f=Tf.splice;function Nf(e){var t=this.__data__,r=Ht(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():$f.call(t,r,1),--this.size,!0}var Of=Nf;function Df(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var _f=Df;function Pf(e){return Ht(this.__data__,e)>-1}var zf=Pf;function Uf(e,t){var r=this.__data__,n=Ht(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Vf=Uf;function be(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}be.prototype.clear=jf;be.prototype.delete=Of;be.prototype.get=_f;be.prototype.has=zf;be.prototype.set=Vf;var Yt=be,Bf=fe(V,"Map"),st=Bf;function Ff(){this.size=0,this.__data__={hash:new Wi,map:new(st||Yt),string:new Wi}}var Gf=Ff;function Rf(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qf=Rf;function Qf(e,t){var r=e.__data__;return qf(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=Qf;function Hf(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Yf=Hf;function Zf(e){return Zt(this,e).get(e)}var Wf=Zf;function Kf(e){return Zt(this,e).has(e)}var Jf=Kf;function Xf(e,t){var r=Zt(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var e0=Xf;function he(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}he.prototype.clear=Gf;he.prototype.delete=Yf;he.prototype.get=Wf;he.prototype.has=Jf;he.prototype.set=e0;var Ao=he;function t0(){this.__data__=new Yt,this.size=0}var n0=t0;function r0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var i0=r0;function o0(e){return this.__data__.get(e)}var a0=o0;function l0(e){return this.__data__.has(e)}var s0=l0,u0=200;function c0(e,t){var r=this.__data__;if(r instanceof Yt){var n=r.__data__;if(!st||n.length<u0-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ao(n)}return r.set(e,t),this.size=r.size,this}var d0=c0;function ct(e){var t=this.__data__=new Yt(e);this.size=t.size}ct.prototype.clear=n0;ct.prototype.delete=i0;ct.prototype.get=a0;ct.prototype.has=s0;ct.prototype.set=d0;var g0=Object.prototype,dC=g0.propertyIsEnumerable,p0=fe(V,"DataView"),Bn=p0,m0=fe(V,"Promise"),Fn=m0,f0=fe(V,"Set"),Gn=f0,Ki="[object Map]",y0="[object Object]",Ji="[object Promise]",Xi="[object Set]",eo="[object WeakMap]",to="[object DataView]",b0=Q(Bn),h0=Q(st),v0=Q(Fn),k0=Q(Gn),w0=Q(Vn),de=ut;(Bn&&de(new Bn(new ArrayBuffer(1)))!=to||st&&de(new st)!=Ki||Fn&&de(Fn.resolve())!=Ji||Gn&&de(new Gn)!=Xi||Vn&&de(new Vn)!=eo)&&(de=function(e){var t=ut(e),r=t==y0?e.constructor:void 0,n=r?Q(r):"";if(n)switch(n){case b0:return to;case h0:return Ki;case v0:return Ji;case k0:return Xi;case w0:return eo}return t});var gC=V.Uint8Array,C0="__lodash_hash_undefined__";function M0(e){return this.__data__.set(e,C0),this}var x0=M0;function I0(e){return this.__data__.has(e)}var A0=I0;function Rn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ao;++t<r;)this.add(e[t])}Rn.prototype.add=Rn.prototype.push=x0;Rn.prototype.has=A0;var no=me?me.prototype:void 0,pC=no?no.valueOf:void 0,E0=Object.prototype,mC=E0.hasOwnProperty,S0=Object.prototype,fC=S0.hasOwnProperty,yC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function j0(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Eo(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function qn(e,t){let r=await Eo(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function L0(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return Eo(n,t)}function T0(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await D0(2e3),await $0(t,e,r))}async function $0(e,t,r){switch(t.kind){case"image":return N0(e,t,r);case"video":return O0(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function N0(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await L0(l,r),s=await qn(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
139
|
-
`,"+")}`}}async function
|
|
138
|
+
`,nm=rm,im="@imgly/plugin-ai-image-generation-web",_="ly.img.ai/image-generation",Ir="ly.img.ai.image-generation.fromType";function om(e){return{async initialize({cesdk:t}){if(t==null)return;let n={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.ui.addIconSet(tm,nm),t.setTranslations({en:{[`panel.${_}`]:"Image Generation","ly.img.ai.image-generation.success":"Image Generation Successful","ly.img.ai.image-generation.success.action":"Show"}});let r=e?.text2image,a=e?.image2image,o=await r?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(_),g=t.ui.experimental.getGlobalStateValue(Ir,"fromText")===c;return!d||!g},message:"ly.img.ai.image-generation.success",action:{label:"ly.img.ai.image-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(Ir,c),t.ui.openPanel(_)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await fi(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await fi(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(_,c=>{let{builder:d,experimental:g}=c,f=g.global(Ir,"fromText");switch(d.Section(`${_}.fromType.section`,{children:()=>{d.ButtonGroup(`${_}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${_}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Bt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${_}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Bt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(_,c),t.i18n.setTranslations({en:{[`${_}.dock.label`]:"AI Image"}}),em({cesdk:t,panelId:_})}}}}var am=om,lm=e=>({name:im,version:"0.1.9",...am(e)}),Bi=lm;var sm=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;ge(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{ge(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return ge(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ge(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ge(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=ge(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=ge(a,t,o)}return e}var um=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)}},ao=um,cm=typeof global=="object"&&global&&global.Object===Object&&global,lo=cm,dm=typeof self=="object"&&self&&self.Object===Object&&self,gm=lo||dm||Function("return this")(),V=gm,pm=V.Symbol,pe=pm,so=Object.prototype,mm=so.hasOwnProperty,fm=so.toString,rt=pe?pe.toStringTag:void 0;function ym(e){var t=mm.call(e,rt),n=e[rt];try{e[rt]=void 0;var r=!0}catch{}var a=fm.call(e);return r&&(t?e[rt]=n:delete e[rt]),a}var bm=ym,hm=Object.prototype,vm=hm.toString;function km(e){return vm.call(e)}var wm=km,Cm="[object Null]",Mm="[object Undefined]",Fi=pe?pe.toStringTag:void 0;function Im(e){return e==null?e===void 0?Mm:Cm:Fi&&Fi in Object(e)?bm(e):wm(e)}var ut=Im;function xm(e){return e!=null&&typeof e=="object"}var qr=xm,lC=Array.isArray;function Am(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var uo=Am,Sm="[object AsyncFunction]",Em="[object Function]",jm="[object GeneratorFunction]",Lm="[object Proxy]";function Tm(e){if(!uo(e))return!1;var t=ut(e);return t==Em||t==jm||t==Sm||t==Lm}var $m=Tm,Nm=V["__core-js_shared__"],Nr=Nm,Gi=function(){var e=/[^.]+$/.exec(Nr&&Nr.keys&&Nr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Dm(e){return!!Gi&&Gi in e}var Om=Dm,_m=Function.prototype,Pm=_m.toString;function zm(e){if(e!=null){try{return Pm.call(e)}catch{}try{return e+""}catch{}}return""}var Q=zm,Um=/[\\^$.*+?()[\]{}|]/g,Vm=/^\[object .+?Constructor\]$/,Bm=Function.prototype,Fm=Object.prototype,Gm=Bm.toString,Rm=Fm.hasOwnProperty,qm=RegExp("^"+Gm.call(Rm).replace(Um,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Qm(e){if(!uo(e)||Om(e))return!1;var t=$m(e)?qm:Vm;return t.test(Q(e))}var Hm=Qm;function Ym(e,t){return e?.[t]}var Zm=Ym;function Wm(e,t){var n=Zm(e,t);return Hm(n)?n:void 0}var fe=Wm,Km=fe(V,"WeakMap"),Ur=Km;function Jm(e,t){return e===t||e!==e&&t!==t}var Xm=Jm,ef=9007199254740991;function tf(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ef}var rf=tf,sC=Object.prototype,nf="[object Arguments]";function of(e){return qr(e)&&ut(e)==nf}var Ri=of,co=Object.prototype,af=co.hasOwnProperty,lf=co.propertyIsEnumerable,uC=Ri(function(){return arguments}())?Ri:function(e){return qr(e)&&af.call(e,"callee")&&!lf.call(e,"callee")},go=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qi=go&&typeof module=="object"&&module&&!module.nodeType&&module,sf=qi&&qi.exports===go,Qi=sf?V.Buffer:void 0,cC=Qi?Qi.isBuffer:void 0,uf="[object Arguments]",cf="[object Array]",df="[object Boolean]",gf="[object Date]",pf="[object Error]",mf="[object Function]",ff="[object Map]",yf="[object Number]",bf="[object Object]",hf="[object RegExp]",vf="[object Set]",kf="[object String]",wf="[object WeakMap]",Cf="[object ArrayBuffer]",Mf="[object DataView]",If="[object Float32Array]",xf="[object Float64Array]",Af="[object Int8Array]",Sf="[object Int16Array]",Ef="[object Int32Array]",jf="[object Uint8Array]",Lf="[object Uint8ClampedArray]",Tf="[object Uint16Array]",$f="[object Uint32Array]",E={};E[If]=E[xf]=E[Af]=E[Sf]=E[Ef]=E[jf]=E[Lf]=E[Tf]=E[$f]=!0;E[uf]=E[cf]=E[Cf]=E[df]=E[Mf]=E[gf]=E[pf]=E[mf]=E[ff]=E[yf]=E[bf]=E[hf]=E[vf]=E[kf]=E[wf]=!1;function Nf(e){return qr(e)&&rf(e.length)&&!!E[ut(e)]}var Df=Nf;function Of(e){return function(t){return e(t)}}var _f=Of,po=typeof exports=="object"&&exports&&!exports.nodeType&&exports,at=po&&typeof module=="object"&&module&&!module.nodeType&&module,Pf=at&&at.exports===po,Dr=Pf&&lo.process,zf=function(){try{var e=at&&at.require&&at.require("util").types;return e||Dr&&Dr.binding&&Dr.binding("util")}catch{}}(),Hi=zf,Yi=Hi&&Hi.isTypedArray,dC=Yi?_f(Yi):Df,Uf=Object.prototype,gC=Uf.hasOwnProperty;function Vf(e,t){return function(n){return e(t(n))}}var Bf=Vf,pC=Bf(Object.keys,Object),Ff=Object.prototype,mC=Ff.hasOwnProperty,Gf=fe(Object,"create"),lt=Gf;function Rf(){this.__data__=lt?lt(null):{},this.size=0}var qf=Rf;function Qf(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Hf=Qf,Yf="__lodash_hash_undefined__",Zf=Object.prototype,Wf=Zf.hasOwnProperty;function Kf(e){var t=this.__data__;if(lt){var n=t[e];return n===Yf?void 0:n}return Wf.call(t,e)?t[e]:void 0}var Jf=Kf,Xf=Object.prototype,e2=Xf.hasOwnProperty;function t2(e){var t=this.__data__;return lt?t[e]!==void 0:e2.call(t,e)}var r2=t2,n2="__lodash_hash_undefined__";function i2(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=lt&&t===void 0?n2:t,this}var o2=i2;function ye(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ye.prototype.clear=qf;ye.prototype.delete=Hf;ye.prototype.get=Jf;ye.prototype.has=r2;ye.prototype.set=o2;var Zi=ye;function a2(){this.__data__=[],this.size=0}var l2=a2;function s2(e,t){for(var n=e.length;n--;)if(Xm(e[n][0],t))return n;return-1}var Ht=s2,u2=Array.prototype,c2=u2.splice;function d2(e){var t=this.__data__,n=Ht(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():c2.call(t,n,1),--this.size,!0}var g2=d2;function p2(e){var t=this.__data__,n=Ht(t,e);return n<0?void 0:t[n][1]}var m2=p2;function f2(e){return Ht(this.__data__,e)>-1}var y2=f2;function b2(e,t){var n=this.__data__,r=Ht(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var h2=b2;function be(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}be.prototype.clear=l2;be.prototype.delete=g2;be.prototype.get=m2;be.prototype.has=y2;be.prototype.set=h2;var Yt=be,v2=fe(V,"Map"),st=v2;function k2(){this.size=0,this.__data__={hash:new Zi,map:new(st||Yt),string:new Zi}}var w2=k2;function C2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var M2=C2;function I2(e,t){var n=e.__data__;return M2(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Zt=I2;function x2(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var A2=x2;function S2(e){return Zt(this,e).get(e)}var E2=S2;function j2(e){return Zt(this,e).has(e)}var L2=j2;function T2(e,t){var n=Zt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var $2=T2;function he(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}he.prototype.clear=w2;he.prototype.delete=A2;he.prototype.get=E2;he.prototype.has=L2;he.prototype.set=$2;var mo=he;function N2(){this.__data__=new Yt,this.size=0}var D2=N2;function O2(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var _2=O2;function P2(e){return this.__data__.get(e)}var z2=P2;function U2(e){return this.__data__.has(e)}var V2=U2,B2=200;function F2(e,t){var n=this.__data__;if(n instanceof Yt){var r=n.__data__;if(!st||r.length<B2-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new mo(r)}return n.set(e,t),this.size=n.size,this}var G2=F2;function ct(e){var t=this.__data__=new Yt(e);this.size=t.size}ct.prototype.clear=D2;ct.prototype.delete=_2;ct.prototype.get=z2;ct.prototype.has=V2;ct.prototype.set=G2;var R2=Object.prototype,fC=R2.propertyIsEnumerable,q2=fe(V,"DataView"),Vr=q2,Q2=fe(V,"Promise"),Br=Q2,H2=fe(V,"Set"),Fr=H2,Wi="[object Map]",Y2="[object Object]",Ki="[object Promise]",Ji="[object Set]",Xi="[object WeakMap]",eo="[object DataView]",Z2=Q(Vr),W2=Q(st),K2=Q(Br),J2=Q(Fr),X2=Q(Ur),de=ut;(Vr&&de(new Vr(new ArrayBuffer(1)))!=eo||st&&de(new st)!=Wi||Br&&de(Br.resolve())!=Ki||Fr&&de(new Fr)!=Ji||Ur&&de(new Ur)!=Xi)&&(de=function(e){var t=ut(e),n=t==Y2?e.constructor:void 0,r=n?Q(n):"";if(r)switch(r){case Z2:return eo;case W2:return Wi;case K2:return Ki;case J2:return Ji;case X2:return Xi}return t});var yC=V.Uint8Array,ey="__lodash_hash_undefined__";function ty(e){return this.__data__.set(e,ey),this}var ry=ty;function ny(e){return this.__data__.has(e)}var iy=ny;function Gr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new mo;++t<n;)this.add(e[t])}Gr.prototype.add=Gr.prototype.push=ry;Gr.prototype.has=iy;var to=pe?pe.prototype:void 0,bC=to?to.valueOf:void 0,oy=Object.prototype,hC=oy.hasOwnProperty,ay=Object.prototype,vC=ay.hasOwnProperty,kC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),CC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function ly(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function fo(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function Rr(e,t){let n=await fo(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function sy(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return fo(r,t)}function yo(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function it(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=yo(e,t.$ref),a={...it(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=it(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>it(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=it(e,t[a],n));return r}return t}function uy(e){return it(e,{...e})}function cy(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`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 n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`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 n(`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 n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'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 n(`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 n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`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 n(`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 n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`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 n(`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 n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`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 n(`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 n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function dy(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=e.properties,r=[];return gy(e,t).forEach(a=>{let o=a,i=n[a]??void 0;r.push({id:o,schema:i})}),r}function gy(e,t){let n=t.order;if(n!=null&&Array.isArray(n))return n;if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,a=Object.keys(r),o=py(e,t)??a;return n!=null&&typeof n=="function"&&(o=n(o)),[...new Set(o)]}function py(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 n=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return n==null?void 0:e[n]}var bo=dy,my="ly.img.ai",Or="ly.img.ai/temp";async function fy(e,t){return e.engine.asset.findAllSources().includes(Or)||e.engine.asset.addLocalSource(Or),e.engine.asset.apply(Or,t)}function ho(e){return`${my}/${e}`}function yy(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function by(){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 hy(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function vo(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function Qr(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 me(e){return e instanceof Error&&e.name==="AbortError"}function ko(e,t,n,r,a,o){if(t.schema==null)return r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null?r.renderCustomProperty[t.id](e,t):void 0;let i=t,l=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(l){case"string":return t.schema.enum!=null?vy(e,i,n,r,a,o):Co(e,i,n,r,a,o);case"boolean":return Mo(e,i,n,r,a,o);case"number":case"integer":return Io(e,i,n,r,a,o);case"object":return wo(e,i,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return ky(e,i,n,r,a,o);break}default:console.error(`Unsupported property type: ${l}`)}}function wo(e,t,n,r,a,o){let i=bo(t.schema??{},r).reduce((l,u)=>{let s=ko(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Co(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=wy(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function vy(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??vo(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function Mo(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Io(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function ky(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??vo(M),icon:C[M]})}):(f[y]=()=>Co(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Mo(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>Io(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>wo(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function wy(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Cy=ko,My="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",xo=My;function Iy(e,t,n){switch(t){case"image":return xy(e,n[t]);case"video":return Ay(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function xy(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:xo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Ay(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:xo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Sy=Iy;async function Ey(e,t,n,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 jy(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return Ly(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return Ty(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function jy(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function Ly(e,t,n){let r=t.width,a=t.height,o=await hy(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function Ty(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var ro=Ey;function Ao(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};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 $y(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var So=$y;function Ny(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Py(2e3),await Dy(t,e,n))}async function Dy(e,t,n){switch(t.kind){case"image":return Oy(e,t,n);case"video":return _y(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Oy(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await sy(l,n),s=await Rr(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
139
|
+
`,"+")}`}}async function _y(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Py(e){return new Promise(t=>{setTimeout(t,e)})}var Eo=Ny;async function zy(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=by(),v;if(u){if(v=Sy(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await fy(l,v),c!=null&&r.kind==="video"){let h=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,h),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(qt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let w=Ao([...r.output.middleware??[],o.debug?So():void 0,o.dryRun?Eo({kind:r.kind,blockInputs:g}):void 0]),{result:b}=await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(Qr(b))throw new Error("Streaming generation is not supported yet from a panel");if(qt(l,i,c))return{status:"aborted"};if(b==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(b,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await ro(f,e,g,b),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),qt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await ro(f,e,g,b),qt(l,i,c)))return{status:"aborted"};let h={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,h)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:b}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(me(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function qt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var Uy=zy;function Vy(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),By(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:yy(e)}))}function By(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var ot=Vy;function Qt(e){return`${e}.generating`}function Fy(e){return`${e}.abort`}function Gy(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(Fy(c),()=>{}),f=l.global(Qt(c),!1),v,w=f.value&&d,b=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let h=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),h.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),u.ui.closeDialog(y),h.setValue(void 0)}}});h.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let k=await Uy(t.kind,n,r,t,a,o,m);if(k.status==="aborted")return;let C=t.output.notification;Ry(u,C,()=>({input:n().input,output:k.output}))}catch(k){if(me(k))return;ot(k,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),h.value!=null&&(u.ui.closeDialog(h.value),h.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:b}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Ry(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var jo=Gy;async function qy(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=uy(t.document),l=yo(i,t.inputReference);if(!cy(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=bo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let h=Cy(d,p,e,t,n,r);h!=null&&(Array.isArray(h)?f.push(...h):f.push(h))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((h,[m,y])=>(h[m]=w(y),h),{}):p.value,b=v.reduce((p,h)=>(p[h.id]=w(h),p),{});jo(d,e,()=>({input:b}),()=>t.getBlockInput(b),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(ho(o),c),c}var Qy=qy;async function Hy(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Qt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return jo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(ho(o),l),l}var Yy=Hy,_r="@imgly/plugin-ai-generation",Zy=`
|
|
140
140
|
<svg>
|
|
141
141
|
<symbol
|
|
142
142
|
fill="none"
|
|
@@ -154,7 +154,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
154
154
|
fill="none"
|
|
155
155
|
xmlns="http://www.w3.org/2000/svg"
|
|
156
156
|
viewBox="0 0 24 24"
|
|
157
|
-
id="${
|
|
157
|
+
id="${_r}/image"
|
|
158
158
|
>
|
|
159
159
|
<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"/>
|
|
160
160
|
<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"/>
|
|
@@ -166,7 +166,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
166
166
|
fill="none"
|
|
167
167
|
xmlns="http://www.w3.org/2000/svg"
|
|
168
168
|
viewBox="0 0 24 24"
|
|
169
|
-
id="${
|
|
169
|
+
id="${_r}/video"
|
|
170
170
|
>
|
|
171
171
|
<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"/>
|
|
172
172
|
<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"/>
|
|
@@ -177,7 +177,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
177
177
|
fill="none"
|
|
178
178
|
xmlns="http://www.w3.org/2000/svg"
|
|
179
179
|
viewBox="0 0 24 24"
|
|
180
|
-
id="${
|
|
180
|
+
id="${_r}/audio"
|
|
181
181
|
>
|
|
182
182
|
<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"/>
|
|
183
183
|
<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"/>
|
|
@@ -197,8 +197,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
197
197
|
|
|
198
198
|
</symbol>
|
|
199
199
|
</svg>
|
|
200
|
-
`,Y0=H0,ro="ly.img.ai.quickAction.order",rt="ly.img.ai.quickAction.actions";function Z0(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${ro}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ro}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${rt}.${t}`))e.ui.experimental.setGlobalStateValue(`${rt}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${rt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${rt}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${rt}.${t}`,{})[r]}}var W0=Z0,zn="ly.img.ai.inference.editMode",Lo="ly.img.ai.inference.metadata";function To(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function K0(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function J0({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var X0=J0;function ey({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var ty=ey;function ny({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=ry(n.engine,o,e),await a(r,n)}catch(l){throw pe(l)&&i(),l}finally{t&&i()}}}function ry(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var iy=ny;function oy(e,t){switch(t.kind){case"text":return ay(e,t);case"image":return ly(e,t);case"video":return sy(e,t);case"audio":return uy(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function ay(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if(Qn(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function ly(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await qn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),w=r.engine.block.getCropTranslationX(o),b=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),h=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,w),r.engine.block.setCropTranslationY(o,b),r.engine.block.setCropRotation(o,p)};if(Qn(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),k=await cy(r,m,y),C=await qn(k,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",$):(r.engine.block.setString(i,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(i,"fill/image/sourceSet",I)),x?r.engine.block.setContentFillMode(o,"Cover"):h();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",$)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function sy(e,t){throw new Error("Function not implemented.")}async function uy(e,t){throw new Error("Function not implemented.")}async function cy(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${j0(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var dy=oy;function gy({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=py(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw pe(u)&&l(),u}finally{t&&l()}}}function py(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var my=gy;async function fy(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:zn});let s=new vo(r.engine,Lo);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=bo([...o.output.middleware??[],t.debug?ho():void 0,ty({}),...i.confirmation?[i.lockDuringConfirmation?iy({editMode:zn}):my({editMode:zn}),i.confirmation&&X0({})]:[],t.dryRun?So({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:w}=await dy(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var io=fy;function yy(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new vo(r.engine,Lo),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=n.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=n.getQuickAction(m);if(y==null||!r.feature.isEnabled(To({quickActionId:m,quickActionMenuId:n.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=K0(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=n.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{ot(C,{cesdk:r,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:x,applyCallbacks:I,dispose:$}=await io({input:C,quickAction:k,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=I,x}catch(x){throw pe(x)||ot(x,{cesdk:r,provider:a},t),x}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{ot(k,{cesdk:r,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await io({input:k,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw pe(M)||ot(M,{cesdk:r,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var by=yy;async function hy(e,t,r){await e.initialize?.(t);let n=await ky(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:vy(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Y0),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await wy(e,o,r)}}function vy(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function ky(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new Lm(n,e)),n}return r}}async function wy(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await Cy(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),My(e,e.input.quickActions,t,r)),n}async function Cy(e,t,r,n){switch(t.type){case"custom":return Q0(e,t,r,n);case"schema":return R0(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function My(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=W0(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(To({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=by({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var oo=hy;function xy(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai/")&&console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai/" \u2013 "${r}" was provided.`);let n=`${r}.dock`;t.ui.registerComponent(n,({builder:a})=>{let o=t.ui.isPanelOpen(r);a.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Iy=xy,Ay="@imgly/plugin-ai-video-generation-web",P="ly.img.ai/video-generation",Un="ly.img.ai.video-generation.fromType";function Ey(e){return{async initialize({cesdk:t}){if(t==null)return;let r={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${P}`]:"Video Generation","ly.img.ai.video-generation.success":"Video Generation Successful","ly.img.ai.video-generation.success.action":"Show"}});let n=e?.text2video,a=e?.image2video,o=await n?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(P),g=t.ui.experimental.getGlobalStateValue(Un)===c;return!d||!g},message:"ly.img.ai.video-generation.success",action:{label:"ly.img.ai.video-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(Un,c),t.ui.openPanel(P)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await oo(o,{cesdk:t,engine:t.engine},r):void 0,s=i!=null?await oo(i,{cesdk:t,engine:t.engine},r):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){r.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(P,c=>{let{builder:d,experimental:g}=c,f=g.global(Un,"fromText");switch(d.Section(`${P}.fromType.section`,{children:()=>{d.ButtonGroup(`${P}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${P}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Qt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${P}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Qt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(P,c),t.i18n.setTranslations({en:{[`${P}.dock.label`]:"AI Video"}}),Iy({cesdk:t,panelId:P})}}}}var Sy=Ey,jy=e=>({name:Ay,version:"0.1.7",...Sy(e)}),$o=jy;function Ko(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function mt(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=Ko(e,t.$ref),a={...mt(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=mt(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>mt(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=mt(e,t[a],r));return n}return t}function Ly(e){return mt(e,{...e})}function Ty(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function $y(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return Ny(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function Ny(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var Jo=$y,Oy="ly.img.ai",Yn="ly.img.ai/temp";async function Dy(e,t){return e.engine.asset.findAllSources().includes(Yn)||e.engine.asset.addLocalSource(Yn),e.engine.asset.apply(Yn,t)}function Xo(e){return`${Oy}/${e}`}function _y(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Py(){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 zy(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function ea(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function or(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 we(e){return e instanceof Error&&e.name==="AbortError"}function ta(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?Uy(e,t,r,n,a,o):ra(e,t,r,n,a,o);case"boolean":return ia(e,t,r,n,a,o);case"number":case"integer":return oa(e,t,r,n,a,o);case"object":return na(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Vy(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function na(e,t,r,n,a,o){let i=Jo(t.schema??{},n).reduce((l,u)=>{let s=ta(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function ra(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=By(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Uy(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??ea(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function ia(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function oa(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Vy(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??ea(M),icon:C[M]})}):(f[y]=()=>ra(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>ia(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>oa(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>na(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function By(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Fy=ta,Gy="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",aa=Gy;function Ry(e,t,r){switch(t){case"image":return qy(e,r[t]);case"video":return Qy(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qy(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:aa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function Qy(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:aa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var Hy=Ry;async function Yy(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return Zy(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return Wy(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return Ky(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Zy(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function Wy(e,t,r){let n=t.width,a=t.height,o=await zy(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function Ky(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}var No=Yy;function la(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,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 Jy(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var sa=Jy,Xy=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),n=new Set;ke(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ke(t,n=>{this.removeBlob(n)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ke(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),ke(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ke(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=ke(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=ke(a,t,o)}return e}var eb=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)}},ua=eb,tb=typeof global=="object"&&global&&global.Object===Object&&global,ca=tb,nb=typeof self=="object"&&self&&self.Object===Object&&self,rb=ca||nb||Function("return this")(),B=rb,ib=B.Symbol,Ce=ib,da=Object.prototype,ob=da.hasOwnProperty,ab=da.toString,dt=Ce?Ce.toStringTag:void 0;function lb(e){var t=ob.call(e,dt),r=e[dt];try{e[dt]=void 0;var n=!0}catch{}var a=ab.call(e);return n&&(t?e[dt]=r:delete e[dt]),a}var sb=lb,ub=Object.prototype,cb=ub.toString;function db(e){return cb.call(e)}var gb=db,pb="[object Null]",mb="[object Undefined]",Oo=Ce?Ce.toStringTag:void 0;function fb(e){return e==null?e===void 0?mb:pb:Oo&&Oo in Object(e)?sb(e):gb(e)}var vt=fb;function yb(e){return e!=null&&typeof e=="object"}var ar=yb,CC=Array.isArray;function bb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ga=bb,hb="[object AsyncFunction]",vb="[object Function]",kb="[object GeneratorFunction]",wb="[object Proxy]";function Cb(e){if(!ga(e))return!1;var t=vt(e);return t==vb||t==kb||t==hb||t==wb}var Mb=Cb,xb=B["__core-js_shared__"],Zn=xb,Do=function(){var e=/[^.]+$/.exec(Zn&&Zn.keys&&Zn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ib(e){return!!Do&&Do in e}var Ab=Ib,Eb=Function.prototype,Sb=Eb.toString;function jb(e){if(e!=null){try{return Sb.call(e)}catch{}try{return e+""}catch{}}return""}var H=jb,Lb=/[\\^$.*+?()[\]{}|]/g,Tb=/^\[object .+?Constructor\]$/,$b=Function.prototype,Nb=Object.prototype,Ob=$b.toString,Db=Nb.hasOwnProperty,_b=RegExp("^"+Ob.call(Db).replace(Lb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Pb(e){if(!ga(e)||Ab(e))return!1;var t=Mb(e)?_b:Tb;return t.test(H(e))}var zb=Pb;function Ub(e,t){return e?.[t]}var Vb=Ub;function Bb(e,t){var r=Vb(e,t);return zb(r)?r:void 0}var Me=Bb,Fb=Me(B,"WeakMap"),Xn=Fb;function Gb(e,t){return e===t||e!==e&&t!==t}var Rb=Gb,qb=9007199254740991;function Qb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qb}var Hb=Qb,MC=Object.prototype,Yb="[object Arguments]";function Zb(e){return ar(e)&&vt(e)==Yb}var _o=Zb,pa=Object.prototype,Wb=pa.hasOwnProperty,Kb=pa.propertyIsEnumerable,xC=_o(function(){return arguments}())?_o:function(e){return ar(e)&&Wb.call(e,"callee")&&!Kb.call(e,"callee")},ma=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Po=ma&&typeof module=="object"&&module&&!module.nodeType&&module,Jb=Po&&Po.exports===ma,zo=Jb?B.Buffer:void 0,IC=zo?zo.isBuffer:void 0,Xb="[object Arguments]",e4="[object Array]",t4="[object Boolean]",n4="[object Date]",r4="[object Error]",i4="[object Function]",o4="[object Map]",a4="[object Number]",l4="[object Object]",s4="[object RegExp]",u4="[object Set]",c4="[object String]",d4="[object WeakMap]",g4="[object ArrayBuffer]",p4="[object DataView]",m4="[object Float32Array]",f4="[object Float64Array]",y4="[object Int8Array]",b4="[object Int16Array]",h4="[object Int32Array]",v4="[object Uint8Array]",k4="[object Uint8ClampedArray]",w4="[object Uint16Array]",C4="[object Uint32Array]",j={};j[m4]=j[f4]=j[y4]=j[b4]=j[h4]=j[v4]=j[k4]=j[w4]=j[C4]=!0;j[Xb]=j[e4]=j[g4]=j[t4]=j[p4]=j[n4]=j[r4]=j[i4]=j[o4]=j[a4]=j[l4]=j[s4]=j[u4]=j[c4]=j[d4]=!1;function M4(e){return ar(e)&&Hb(e.length)&&!!j[vt(e)]}var x4=M4;function I4(e){return function(t){return e(t)}}var A4=I4,fa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yt=fa&&typeof module=="object"&&module&&!module.nodeType&&module,E4=yt&&yt.exports===fa,Wn=E4&&ca.process,S4=function(){try{var e=yt&&yt.require&&yt.require("util").types;return e||Wn&&Wn.binding&&Wn.binding("util")}catch{}}(),Uo=S4,Vo=Uo&&Uo.isTypedArray,AC=Vo?A4(Vo):x4,j4=Object.prototype,EC=j4.hasOwnProperty;function L4(e,t){return function(r){return e(t(r))}}var T4=L4,SC=T4(Object.keys,Object),$4=Object.prototype,jC=$4.hasOwnProperty,N4=Me(Object,"create"),bt=N4;function O4(){this.__data__=bt?bt(null):{},this.size=0}var D4=O4;function _4(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var P4=_4,z4="__lodash_hash_undefined__",U4=Object.prototype,V4=U4.hasOwnProperty;function B4(e){var t=this.__data__;if(bt){var r=t[e];return r===z4?void 0:r}return V4.call(t,e)?t[e]:void 0}var F4=B4,G4=Object.prototype,R4=G4.hasOwnProperty;function q4(e){var t=this.__data__;return bt?t[e]!==void 0:R4.call(t,e)}var Q4=q4,H4="__lodash_hash_undefined__";function Y4(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=bt&&t===void 0?H4:t,this}var Z4=Y4;function xe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}xe.prototype.clear=D4;xe.prototype.delete=P4;xe.prototype.get=F4;xe.prototype.has=Q4;xe.prototype.set=Z4;var Bo=xe;function W4(){this.__data__=[],this.size=0}var K4=W4;function J4(e,t){for(var r=e.length;r--;)if(Rb(e[r][0],t))return r;return-1}var Jt=J4,X4=Array.prototype,e5=X4.splice;function t5(e){var t=this.__data__,r=Jt(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():e5.call(t,r,1),--this.size,!0}var n5=t5;function r5(e){var t=this.__data__,r=Jt(t,e);return r<0?void 0:t[r][1]}var i5=r5;function o5(e){return Jt(this.__data__,e)>-1}var a5=o5;function l5(e,t){var r=this.__data__,n=Jt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var s5=l5;function Ie(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ie.prototype.clear=K4;Ie.prototype.delete=n5;Ie.prototype.get=i5;Ie.prototype.has=a5;Ie.prototype.set=s5;var Xt=Ie,u5=Me(B,"Map"),ht=u5;function c5(){this.size=0,this.__data__={hash:new Bo,map:new(ht||Xt),string:new Bo}}var d5=c5;function g5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p5=g5;function m5(e,t){var r=e.__data__;return p5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var en=m5;function f5(e){var t=en(this,e).delete(e);return this.size-=t?1:0,t}var y5=f5;function b5(e){return en(this,e).get(e)}var h5=b5;function v5(e){return en(this,e).has(e)}var k5=v5;function w5(e,t){var r=en(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var C5=w5;function Ae(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ae.prototype.clear=d5;Ae.prototype.delete=y5;Ae.prototype.get=h5;Ae.prototype.has=k5;Ae.prototype.set=C5;var ya=Ae;function M5(){this.__data__=new Xt,this.size=0}var x5=M5;function I5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var A5=I5;function E5(e){return this.__data__.get(e)}var S5=E5;function j5(e){return this.__data__.has(e)}var L5=j5,T5=200;function $5(e,t){var r=this.__data__;if(r instanceof Xt){var n=r.__data__;if(!ht||n.length<T5-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ya(n)}return r.set(e,t),this.size=r.size,this}var N5=$5;function kt(e){var t=this.__data__=new Xt(e);this.size=t.size}kt.prototype.clear=x5;kt.prototype.delete=A5;kt.prototype.get=S5;kt.prototype.has=L5;kt.prototype.set=N5;var O5=Object.prototype,LC=O5.propertyIsEnumerable,D5=Me(B,"DataView"),er=D5,_5=Me(B,"Promise"),tr=_5,P5=Me(B,"Set"),nr=P5,Fo="[object Map]",z5="[object Object]",Go="[object Promise]",Ro="[object Set]",qo="[object WeakMap]",Qo="[object DataView]",U5=H(er),V5=H(ht),B5=H(tr),F5=H(nr),G5=H(Xn),ve=vt;(er&&ve(new er(new ArrayBuffer(1)))!=Qo||ht&&ve(new ht)!=Fo||tr&&ve(tr.resolve())!=Go||nr&&ve(new nr)!=Ro||Xn&&ve(new Xn)!=qo)&&(ve=function(e){var t=vt(e),r=t==z5?e.constructor:void 0,n=r?H(r):"";if(n)switch(n){case U5:return Qo;case V5:return Fo;case B5:return Go;case F5:return Ro;case G5:return qo}return t});var TC=B.Uint8Array,R5="__lodash_hash_undefined__";function q5(e){return this.__data__.set(e,R5),this}var Q5=q5;function H5(e){return this.__data__.has(e)}var Y5=H5;function rr(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ya;++t<r;)this.add(e[t])}rr.prototype.add=rr.prototype.push=Q5;rr.prototype.has=Y5;var Ho=Ce?Ce.prototype:void 0,$C=Ho?Ho.valueOf:void 0,Z5=Object.prototype,NC=Z5.hasOwnProperty,W5=Object.prototype,OC=W5.hasOwnProperty,DC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_C=new RegExp(/[A-Fa-f0-9]{1}/,"g"),PC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function K5(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function ba(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ir(e,t){let r=await ba(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function J5(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return ba(n,t)}function X5(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await rh(2e3),await eh(t,e,r))}async function eh(e,t,r){switch(t.kind){case"image":return th(e,t,r);case"video":return nh(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function th(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await J5(l,r),s=await ir(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
201
|
-
`,"+")}`}}async function
|
|
200
|
+
`,Wy=Zy,no="ly.img.ai.quickAction.order",nt="ly.img.ai.quickAction.actions";function Ky(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${no}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${no}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${nt}.${t}`))e.ui.experimental.setGlobalStateValue(`${nt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${nt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${nt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${nt}.${t}`,{})[n]}}var Jy=Ky,Pr="ly.img.ai.inference.editMode",Lo="ly.img.ai.inference.metadata";function To(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Xy(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function e0({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var t0=e0;function r0({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var n0=r0;function i0({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=o0(r.engine,o,e),await a(n,r)}catch(l){throw me(l)&&i(),l}finally{t&&i()}}}function o0(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var a0=i0;function l0(e,t){switch(t.kind){case"text":return s0(e,t);case"image":return u0(e,t);case"video":return c0(e,t);case"audio":return d0(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function s0(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(Qr(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function u0(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await Rr(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),w=n.engine.block.getCropTranslationX(o),b=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,w),n.engine.block.setCropTranslationY(o,b),n.engine.block.setCropRotation(o,p)};if(Qr(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),k=await g0(n,m,y),C=await Rr(k,t.cesdk.engine),M=C.width/C.height,I=Math.abs(g-M)>.001,x=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;x==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):(n.engine.block.setString(i,"fill/image/imageFileURI",""),n.engine.block.setSourceSet(i,"fill/image/sourceSet",x)),I?n.engine.block.setContentFillMode(o,"Cover"):h();let D=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},O=()=>{if(x==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",x);I?n.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:D,onAfter:O,onCancel:()=>{D()},onApply:()=>{O(),t.cesdk.engine.editor.addUndoStep()}}}}async function c0(e,t){throw new Error("Function not implemented.")}async function d0(e,t){throw new Error("Function not implemented.")}async function g0(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${ly(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var p0=l0;function m0({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=f0(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw me(u)&&l(),u}finally{t&&l()}}}function f0(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var y0=m0;async function b0(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:Pr});let s=new ao(n.engine,Lo);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ao([...o.output.middleware??[],t.debug?So():void 0,n0({}),...i.confirmation?[i.lockDuringConfirmation?a0({editMode:Pr}):y0({editMode:Pr}),i.confirmation&&t0({})]:[],t.dryRun?Eo({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await p0(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var io=b0;function h0(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new ao(n.engine,Lo),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=r.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=r.getQuickAction(m);if(y==null||!n.feature.isEnabled(To({quickActionId:m,quickActionMenuId:r.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=Xy(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=r.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{ot(C,{cesdk:n,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:I,applyCallbacks:x,dispose:$}=await io({input:C,quickAction:k,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=x,I}catch(I){throw me(I)||ot(I,{cesdk:n,provider:a},t),I}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{ot(k,{cesdk:n,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:I,dispose:x}=await io({input:k,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=I,M}catch(M){throw me(M)||ot(M,{cesdk:n,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var v0=h0;async function k0(e,t,n){await e.initialize?.(t);let r=await C0(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:w0(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Wy),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await M0(e,o,n)}}function w0(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function C0(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new sm(r,e)),r}return n}}async function M0(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await I0(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),x0(e,e.input.quickActions,t,n)),r}async function I0(e,t,n,r){switch(t.type){case"custom":return Yy(e,t,n,r);case"schema":return Qy(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function x0(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=Jy(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(To({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=v0({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var oo=k0;function A0(e){let{cesdk:t,panelId:n}=e;n.startsWith("ly.img.ai/")&&console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai/" \u2013 "${n}" was provided.`);let r=`${n}.dock`;t.ui.registerComponent(r,({builder:a})=>{let o=t.ui.isPanelOpen(n);a.Button(`${n}.dock.button`,{label:`${n}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(n):t.ui.openPanel(n)}})})}var S0=A0,E0="@imgly/plugin-ai-video-generation-web",P="ly.img.ai/video-generation",zr="ly.img.ai.video-generation.fromType";function j0(e){return{async initialize({cesdk:t}){if(t==null)return;let n={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${P}`]:"Video Generation","ly.img.ai.video-generation.success":"Video Generation Successful","ly.img.ai.video-generation.success.action":"Show"}});let r=e?.text2video,a=e?.image2video,o=await r?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(P),g=t.ui.experimental.getGlobalStateValue(zr)===c;return!d||!g},message:"ly.img.ai.video-generation.success",action:{label:"ly.img.ai.video-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(zr,c),t.ui.openPanel(P)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await oo(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await oo(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(P,c=>{let{builder:d,experimental:g}=c,f=g.global(zr,"fromText");switch(d.Section(`${P}.fromType.section`,{children:()=>{d.ButtonGroup(`${P}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${P}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Qt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${P}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Qt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(P,c),t.i18n.setTranslations({en:{[`${P}.dock.label`]:"AI Video"}}),S0({cesdk:t,panelId:P})}}}}var L0=j0,T0=e=>({name:E0,version:"0.1.9",...L0(e)}),$o=T0;var $0=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;ke(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{ke(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return ke(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ke(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ke(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=ke(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=ke(a,t,o)}return e}var N0=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)}},Ko=N0,D0=typeof global=="object"&&global&&global.Object===Object&&global,Jo=D0,O0=typeof self=="object"&&self&&self.Object===Object&&self,_0=Jo||O0||Function("return this")(),B=_0,P0=B.Symbol,we=P0,Xo=Object.prototype,z0=Xo.hasOwnProperty,U0=Xo.toString,dt=we?we.toStringTag:void 0;function V0(e){var t=z0.call(e,dt),n=e[dt];try{e[dt]=void 0;var r=!0}catch{}var a=U0.call(e);return r&&(t?e[dt]=n:delete e[dt]),a}var B0=V0,F0=Object.prototype,G0=F0.toString;function R0(e){return G0.call(e)}var q0=R0,Q0="[object Null]",H0="[object Undefined]",No=we?we.toStringTag:void 0;function Y0(e){return e==null?e===void 0?H0:Q0:No&&No in Object(e)?B0(e):q0(e)}var vt=Y0;function Z0(e){return e!=null&&typeof e=="object"}var on=Z0,AC=Array.isArray;function W0(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ea=W0,K0="[object AsyncFunction]",J0="[object Function]",X0="[object GeneratorFunction]",eb="[object Proxy]";function tb(e){if(!ea(e))return!1;var t=vt(e);return t==J0||t==X0||t==K0||t==eb}var rb=tb,nb=B["__core-js_shared__"],Hr=nb,Do=function(){var e=/[^.]+$/.exec(Hr&&Hr.keys&&Hr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function ib(e){return!!Do&&Do in e}var ob=ib,ab=Function.prototype,lb=ab.toString;function sb(e){if(e!=null){try{return lb.call(e)}catch{}try{return e+""}catch{}}return""}var H=sb,ub=/[\\^$.*+?()[\]{}|]/g,cb=/^\[object .+?Constructor\]$/,db=Function.prototype,gb=Object.prototype,pb=db.toString,mb=gb.hasOwnProperty,fb=RegExp("^"+pb.call(mb).replace(ub,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yb(e){if(!ea(e)||ob(e))return!1;var t=rb(e)?fb:cb;return t.test(H(e))}var bb=yb;function hb(e,t){return e?.[t]}var vb=hb;function kb(e,t){var n=vb(e,t);return bb(n)?n:void 0}var Me=kb,wb=Me(B,"WeakMap"),Jr=wb;function Cb(e,t){return e===t||e!==e&&t!==t}var Mb=Cb,Ib=9007199254740991;function xb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ib}var Ab=xb,SC=Object.prototype,Sb="[object Arguments]";function Eb(e){return on(e)&&vt(e)==Sb}var Oo=Eb,ta=Object.prototype,jb=ta.hasOwnProperty,Lb=ta.propertyIsEnumerable,EC=Oo(function(){return arguments}())?Oo:function(e){return on(e)&&jb.call(e,"callee")&&!Lb.call(e,"callee")},ra=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_o=ra&&typeof module=="object"&&module&&!module.nodeType&&module,Tb=_o&&_o.exports===ra,Po=Tb?B.Buffer:void 0,jC=Po?Po.isBuffer:void 0,$b="[object Arguments]",Nb="[object Array]",Db="[object Boolean]",Ob="[object Date]",_b="[object Error]",Pb="[object Function]",zb="[object Map]",Ub="[object Number]",Vb="[object Object]",Bb="[object RegExp]",Fb="[object Set]",Gb="[object String]",Rb="[object WeakMap]",qb="[object ArrayBuffer]",Qb="[object DataView]",Hb="[object Float32Array]",Yb="[object Float64Array]",Zb="[object Int8Array]",Wb="[object Int16Array]",Kb="[object Int32Array]",Jb="[object Uint8Array]",Xb="[object Uint8ClampedArray]",eh="[object Uint16Array]",th="[object Uint32Array]",j={};j[Hb]=j[Yb]=j[Zb]=j[Wb]=j[Kb]=j[Jb]=j[Xb]=j[eh]=j[th]=!0;j[$b]=j[Nb]=j[qb]=j[Db]=j[Qb]=j[Ob]=j[_b]=j[Pb]=j[zb]=j[Ub]=j[Vb]=j[Bb]=j[Fb]=j[Gb]=j[Rb]=!1;function rh(e){return on(e)&&Ab(e.length)&&!!j[vt(e)]}var nh=rh;function ih(e){return function(t){return e(t)}}var oh=ih,na=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yt=na&&typeof module=="object"&&module&&!module.nodeType&&module,ah=yt&&yt.exports===na,Yr=ah&&Jo.process,lh=function(){try{var e=yt&&yt.require&&yt.require("util").types;return e||Yr&&Yr.binding&&Yr.binding("util")}catch{}}(),zo=lh,Uo=zo&&zo.isTypedArray,LC=Uo?oh(Uo):nh,sh=Object.prototype,TC=sh.hasOwnProperty;function uh(e,t){return function(n){return e(t(n))}}var ch=uh,$C=ch(Object.keys,Object),dh=Object.prototype,NC=dh.hasOwnProperty,gh=Me(Object,"create"),bt=gh;function ph(){this.__data__=bt?bt(null):{},this.size=0}var mh=ph;function fh(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var yh=fh,bh="__lodash_hash_undefined__",hh=Object.prototype,vh=hh.hasOwnProperty;function kh(e){var t=this.__data__;if(bt){var n=t[e];return n===bh?void 0:n}return vh.call(t,e)?t[e]:void 0}var wh=kh,Ch=Object.prototype,Mh=Ch.hasOwnProperty;function Ih(e){var t=this.__data__;return bt?t[e]!==void 0:Mh.call(t,e)}var xh=Ih,Ah="__lodash_hash_undefined__";function Sh(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bt&&t===void 0?Ah:t,this}var Eh=Sh;function Ie(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ie.prototype.clear=mh;Ie.prototype.delete=yh;Ie.prototype.get=wh;Ie.prototype.has=xh;Ie.prototype.set=Eh;var Vo=Ie;function jh(){this.__data__=[],this.size=0}var Lh=jh;function Th(e,t){for(var n=e.length;n--;)if(Mb(e[n][0],t))return n;return-1}var Jt=Th,$h=Array.prototype,Nh=$h.splice;function Dh(e){var t=this.__data__,n=Jt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Nh.call(t,n,1),--this.size,!0}var Oh=Dh;function _h(e){var t=this.__data__,n=Jt(t,e);return n<0?void 0:t[n][1]}var Ph=_h;function zh(e){return Jt(this.__data__,e)>-1}var Uh=zh;function Vh(e,t){var n=this.__data__,r=Jt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Bh=Vh;function xe(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xe.prototype.clear=Lh;xe.prototype.delete=Oh;xe.prototype.get=Ph;xe.prototype.has=Uh;xe.prototype.set=Bh;var Xt=xe,Fh=Me(B,"Map"),ht=Fh;function Gh(){this.size=0,this.__data__={hash:new Vo,map:new(ht||Xt),string:new Vo}}var Rh=Gh;function qh(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Qh=qh;function Hh(e,t){var n=e.__data__;return Qh(t)?n[typeof t=="string"?"string":"hash"]:n.map}var er=Hh;function Yh(e){var t=er(this,e).delete(e);return this.size-=t?1:0,t}var Zh=Yh;function Wh(e){return er(this,e).get(e)}var Kh=Wh;function Jh(e){return er(this,e).has(e)}var Xh=Jh;function e4(e,t){var n=er(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var t4=e4;function Ae(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ae.prototype.clear=Rh;Ae.prototype.delete=Zh;Ae.prototype.get=Kh;Ae.prototype.has=Xh;Ae.prototype.set=t4;var ia=Ae;function r4(){this.__data__=new Xt,this.size=0}var n4=r4;function i4(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var o4=i4;function a4(e){return this.__data__.get(e)}var l4=a4;function s4(e){return this.__data__.has(e)}var u4=s4,c4=200;function d4(e,t){var n=this.__data__;if(n instanceof Xt){var r=n.__data__;if(!ht||r.length<c4-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ia(r)}return n.set(e,t),this.size=n.size,this}var g4=d4;function kt(e){var t=this.__data__=new Xt(e);this.size=t.size}kt.prototype.clear=n4;kt.prototype.delete=o4;kt.prototype.get=l4;kt.prototype.has=u4;kt.prototype.set=g4;var p4=Object.prototype,DC=p4.propertyIsEnumerable,m4=Me(B,"DataView"),Xr=m4,f4=Me(B,"Promise"),en=f4,y4=Me(B,"Set"),tn=y4,Bo="[object Map]",b4="[object Object]",Fo="[object Promise]",Go="[object Set]",Ro="[object WeakMap]",qo="[object DataView]",h4=H(Xr),v4=H(ht),k4=H(en),w4=H(tn),C4=H(Jr),ve=vt;(Xr&&ve(new Xr(new ArrayBuffer(1)))!=qo||ht&&ve(new ht)!=Bo||en&&ve(en.resolve())!=Fo||tn&&ve(new tn)!=Go||Jr&&ve(new Jr)!=Ro)&&(ve=function(e){var t=vt(e),n=t==b4?e.constructor:void 0,r=n?H(n):"";if(r)switch(r){case h4:return qo;case v4:return Bo;case k4:return Fo;case w4:return Go;case C4:return Ro}return t});var OC=B.Uint8Array,M4="__lodash_hash_undefined__";function I4(e){return this.__data__.set(e,M4),this}var x4=I4;function A4(e){return this.__data__.has(e)}var S4=A4;function rn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ia;++t<n;)this.add(e[t])}rn.prototype.add=rn.prototype.push=x4;rn.prototype.has=S4;var Qo=we?we.prototype:void 0,_C=Qo?Qo.valueOf:void 0,E4=Object.prototype,PC=E4.hasOwnProperty,j4=Object.prototype,zC=j4.hasOwnProperty,UC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),VC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),BC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function L4(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function oa(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function nn(e,t){let n=await oa(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function T4(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return oa(r,t)}function aa(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function mt(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=aa(e,t.$ref),a={...mt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=mt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>mt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=mt(e,t[a],n));return r}return t}function $4(e){return mt(e,{...e})}function N4(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`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 n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`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 n(`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 n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'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 n(`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 n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`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 n(`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 n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`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 n(`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 n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`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 n(`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 n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function D4(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=e.properties,r=[];return O4(e,t).forEach(a=>{let o=a,i=n[a]??void 0;r.push({id:o,schema:i})}),r}function O4(e,t){let n=t.order;if(n!=null&&Array.isArray(n))return n;if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,a=Object.keys(r),o=_4(e,t)??a;return n!=null&&typeof n=="function"&&(o=n(o)),[...new Set(o)]}function _4(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 n=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return n==null?void 0:e[n]}var la=D4,P4="ly.img.ai",Zr="ly.img.ai/temp";async function z4(e,t){return e.engine.asset.findAllSources().includes(Zr)||e.engine.asset.addLocalSource(Zr),e.engine.asset.apply(Zr,t)}function sa(e){return`${P4}/${e}`}function U4(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function V4(){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 B4(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function ua(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function an(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 Ce(e){return e instanceof Error&&e.name==="AbortError"}function ca(e,t,n,r,a,o){if(t.schema==null)return r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null?r.renderCustomProperty[t.id](e,t):void 0;let i=t,l=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(l){case"string":return t.schema.enum!=null?F4(e,i,n,r,a,o):ga(e,i,n,r,a,o);case"boolean":return pa(e,i,n,r,a,o);case"number":case"integer":return ma(e,i,n,r,a,o);case"object":return da(e,i,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return G4(e,i,n,r,a,o);break}default:console.error(`Unsupported property type: ${l}`)}}function da(e,t,n,r,a,o){let i=la(t.schema??{},r).reduce((l,u)=>{let s=ca(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function ga(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=R4(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function F4(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??ua(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function pa(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function ma(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function G4(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??ua(M),icon:C[M]})}):(f[y]=()=>ga(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>pa(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>ma(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>da(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function R4(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var q4=ca,Q4="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fa=Q4;function H4(e,t,n){switch(t){case"image":return Y4(e,n[t]);case"video":return Z4(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Y4(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:fa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Z4(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:fa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var W4=H4;async function K4(e,t,n,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 J4(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return X4(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return e5(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function J4(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function X4(e,t,n){let r=t.width,a=t.height,o=await B4(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function e5(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var Ho=K4;function ya(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};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 t5(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var ba=t5;function r5(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await a5(2e3),await n5(t,e,n))}async function n5(e,t,n){switch(t.kind){case"image":return i5(e,t,n);case"video":return o5(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function i5(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await T4(l,n),s=await nn(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
201
|
+
`,"+")}`}}async function o5(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function a5(e){return new Promise(t=>{setTimeout(t,e)})}var ha=r5;async function l5(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=V4(),v;if(u){if(v=W4(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await z4(l,v),c!=null&&r.kind==="video"){let h=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,h),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(Wt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let w=ya([...r.output.middleware??[],o.debug?ba():void 0,o.dryRun?ha({kind:r.kind,blockInputs:g}):void 0]),{result:b}=await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(an(b))throw new Error("Streaming generation is not supported yet from a panel");if(Wt(l,i,c))return{status:"aborted"};if(b==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(b,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Ho(f,e,g,b),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),Wt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Ho(f,e,g,b),Wt(l,i,c)))return{status:"aborted"};let h={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,h)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:b}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(Ce(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Wt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var s5=l5;function u5(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),c5(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:U4(e)}))}function c5(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var ft=u5;function va(e){return`${e}.generating`}function d5(e){return`${e}.abort`}function g5(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(d5(c),()=>{}),f=l.global(va(c),!1),v,w=f.value&&d,b=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let h=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),h.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),u.ui.closeDialog(y),h.setValue(void 0)}}});h.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let k=await s5(t.kind,n,r,t,a,o,m);if(k.status==="aborted")return;let C=t.output.notification;p5(u,C,()=>({input:n().input,output:k.output}))}catch(k){if(Ce(k))return;ft(k,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),h.value!=null&&(u.ui.closeDialog(h.value),h.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:b}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function p5(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var ka=g5;async function m5(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=$4(t.document),l=aa(i,t.inputReference);if(!N4(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=la(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let h=q4(d,p,e,t,n,r);h!=null&&(Array.isArray(h)?f.push(...h):f.push(h))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((h,[m,y])=>(h[m]=w(y),h),{}):p.value,b=v.reduce((p,h)=>(p[h.id]=w(h),p),{});ka(d,e,()=>({input:b}),()=>t.getBlockInput(b),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(sa(o),c),c}var f5=m5;async function y5(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(va(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return ka(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(sa(o),l),l}var b5=y5,Wr="@imgly/plugin-ai-generation",h5=`
|
|
202
202
|
<svg>
|
|
203
203
|
<symbol
|
|
204
204
|
fill="none"
|
|
@@ -216,7 +216,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
216
216
|
fill="none"
|
|
217
217
|
xmlns="http://www.w3.org/2000/svg"
|
|
218
218
|
viewBox="0 0 24 24"
|
|
219
|
-
id="${
|
|
219
|
+
id="${Wr}/image"
|
|
220
220
|
>
|
|
221
221
|
<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"/>
|
|
222
222
|
<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"/>
|
|
@@ -228,7 +228,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
228
228
|
fill="none"
|
|
229
229
|
xmlns="http://www.w3.org/2000/svg"
|
|
230
230
|
viewBox="0 0 24 24"
|
|
231
|
-
id="${
|
|
231
|
+
id="${Wr}/video"
|
|
232
232
|
>
|
|
233
233
|
<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"/>
|
|
234
234
|
<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"/>
|
|
@@ -239,7 +239,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
239
239
|
fill="none"
|
|
240
240
|
xmlns="http://www.w3.org/2000/svg"
|
|
241
241
|
viewBox="0 0 24 24"
|
|
242
|
-
id="${
|
|
242
|
+
id="${Wr}/audio"
|
|
243
243
|
>
|
|
244
244
|
<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"/>
|
|
245
245
|
<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"/>
|
|
@@ -259,7 +259,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
259
259
|
|
|
260
260
|
</symbol>
|
|
261
261
|
</svg>
|
|
262
|
-
`,yh=fh,Yo="ly.img.ai.quickAction.order",gt="ly.img.ai.quickAction.actions";function bh(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${Yo}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yo}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${gt}.${t}`))e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{})[r]}}var wa=bh,Jn="ly.img.ai.inference.editMode",Ca="ly.img.ai.inference.metadata";function Ma(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function hh(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function vh({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var kh=vh;function wh({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var Ch=wh;function Mh({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=xh(n.engine,o,e),await a(r,n)}catch(l){throw we(l)&&i(),l}finally{t&&i()}}}function xh(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Ih=Mh;function Ah(e,t){switch(t.kind){case"text":return Eh(e,t);case"image":return Sh(e,t);case"video":return jh(e,t);case"audio":return Lh(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Eh(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if(or(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Sh(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await ir(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),w=r.engine.block.getCropTranslationX(o),b=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),h=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,w),r.engine.block.setCropTranslationY(o,b),r.engine.block.setCropRotation(o,p)};if(or(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),k=await Th(r,m,y),C=await ir(k,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",$):(r.engine.block.setString(i,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(i,"fill/image/sourceSet",I)),x?r.engine.block.setContentFillMode(o,"Cover"):h();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",$)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function jh(e,t){throw new Error("Function not implemented.")}async function Lh(e,t){throw new Error("Function not implemented.")}async function Th(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${K5(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var $h=Ah;function Nh({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Oh(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw we(u)&&l(),u}finally{t&&l()}}}function Oh(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Dh=Nh;async function _h(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:Jn});let s=new ua(r.engine,Ca);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=la([...o.output.middleware??[],t.debug?sa():void 0,Ch({}),...i.confirmation?[i.lockDuringConfirmation?Ih({editMode:Jn}):Dh({editMode:Jn}),i.confirmation&&kh({})]:[],t.dryRun?ha({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:w}=await $h(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var Zo=_h;function Ph(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new ua(r.engine,Ca),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=n.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=n.getQuickAction(m);if(y==null||!r.feature.isEnabled(Ma({quickActionId:m,quickActionMenuId:n.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=hh(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=n.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{ft(C,{cesdk:r,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:x,applyCallbacks:I,dispose:$}=await Zo({input:C,quickAction:k,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=I,x}catch(x){throw we(x)||ft(x,{cesdk:r,provider:a},t),x}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{ft(k,{cesdk:r,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Zo({input:k,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw we(M)||ft(M,{cesdk:r,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var zh=Ph;async function Uh(e,t,r){await e.initialize?.(t);let n=await Bh(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Vh(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",yh),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Fh(e,o,r)}}function Vh(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Bh(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new Xy(n,e)),n}return r}}async function Fh(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await Gh(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Rh(e,e.input.quickActions,t,r)),n}async function Gh(e,t,r,n){switch(t.type){case"custom":return mh(e,t,r,n);case"schema":return gh(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Rh(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=wa(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Ma({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=zh({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var Wo=Uh,qh="@imgly/plugin-ai-audio-generation-web",pt="ly.img.ai/audio-generation/speech",Kt="ly.img.ai/audio-generation/sound";function Qh(e){return{async initialize({cesdk:t}){if(t==null)return;let r={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${pt}`]:"AI Voice",[`panel.${Kt}`]:"Sound Generation","ly.img.ai.audio-generation.speech.success":"Generation Successful","ly.img.ai.audio-generation.speech.success.action":"Show","ly.img.ai.audio-generation.sound.success":"Sound Generation Successful","ly.img.ai.audio-generation.sound.success.action":"Show"}});let n=e?.text2speech,a=e?.text2sound,o=await n?.({cesdk:t}),i=await a?.({cesdk:t});o!=null&&(o.output.notification={success:{show:()=>!t?.ui.isPanelOpen(pt),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(pt)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Kt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Kt)}}}});let l=o!=null?await Wo(o,{cesdk:t,engine:t.engine},r):void 0,u=i!=null?await Wo(i,{cesdk:t,engine:t.engine},r):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Kt,u.renderBuilderFunctions.panel),l?.renderBuilderFunctions?.panel!=null&&(Hh(t,s=>{t.ui.openPanel(pt),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,s)}),t.ui.registerPanel(pt,l.renderBuilderFunctions.panel))}}}function Hh(e,t){let r=wa(e,"text"),n="generateSpeech";r.registerQuickAction({id:n,version:"1",confirmation:!1,enable:({engine:a})=>{let o=a.block.findAllSelected();if(o.length!==1)return!1;let[i]=o;return a.block.getType(i)==="//ly.img.ubq/text"},render:({builder:a},o)=>{a.Button(n,{icon:"@imgly/Audio",variant:"plain",labelAlignment:"left",label:"AI Voice...",onClick:()=>{let[i]=e.engine.block.findAllSelected(),l=e.engine.block.getString(i,"text/text");t(l),o.closeMenu()}})}}),r.setQuickActionMenuOrder([...r.getQuickActionMenuOrder(),"ly.img.separator",n])}var Yh=Qh,Zh=e=>({name:qh,version:"0.1.7",...Yh(e)}),xa=Zh;var Wh="@imgly/plugin-ai-text-generation",Kh=`
|
|
262
|
+
`,v5=h5,Yo="ly.img.ai.quickAction.order",gt="ly.img.ai.quickAction.actions";function k5(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Yo}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yo}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${gt}.${t}`))e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{})[n]}}var wa=k5,Kr="ly.img.ai.inference.editMode",Ca="ly.img.ai.inference.metadata";function Ma(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function w5(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function C5({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var M5=C5;function I5({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var x5=I5;function A5({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=S5(r.engine,o,e),await a(n,r)}catch(l){throw Ce(l)&&i(),l}finally{t&&i()}}}function S5(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var E5=A5;function j5(e,t){switch(t.kind){case"text":return L5(e,t);case"image":return T5(e,t);case"video":return $5(e,t);case"audio":return N5(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function L5(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(an(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function T5(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await nn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),w=n.engine.block.getCropTranslationX(o),b=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,w),n.engine.block.setCropTranslationY(o,b),n.engine.block.setCropRotation(o,p)};if(an(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),k=await D5(n,m,y),C=await nn(k,t.cesdk.engine),M=C.width/C.height,I=Math.abs(g-M)>.001,x=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;x==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):(n.engine.block.setString(i,"fill/image/imageFileURI",""),n.engine.block.setSourceSet(i,"fill/image/sourceSet",x)),I?n.engine.block.setContentFillMode(o,"Cover"):h();let D=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},O=()=>{if(x==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",x);I?n.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:D,onAfter:O,onCancel:()=>{D()},onApply:()=>{O(),t.cesdk.engine.editor.addUndoStep()}}}}async function $5(e,t){throw new Error("Function not implemented.")}async function N5(e,t){throw new Error("Function not implemented.")}async function D5(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${L4(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var O5=j5;function _5({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=P5(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw Ce(u)&&l(),u}finally{t&&l()}}}function P5(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var z5=_5;async function U5(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:Kr});let s=new Ko(n.engine,Ca);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=ya([...o.output.middleware??[],t.debug?ba():void 0,x5({}),...i.confirmation?[i.lockDuringConfirmation?E5({editMode:Kr}):z5({editMode:Kr}),i.confirmation&&M5({})]:[],t.dryRun?ha({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await O5(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var Zo=U5;function V5(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new Ko(n.engine,Ca),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=r.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=r.getQuickAction(m);if(y==null||!n.feature.isEnabled(Ma({quickActionId:m,quickActionMenuId:r.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=w5(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=r.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{ft(C,{cesdk:n,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:I,applyCallbacks:x,dispose:$}=await Zo({input:C,quickAction:k,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=x,I}catch(I){throw Ce(I)||ft(I,{cesdk:n,provider:a},t),I}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{ft(k,{cesdk:n,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:I,dispose:x}=await Zo({input:k,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=I,M}catch(M){throw Ce(M)||ft(M,{cesdk:n,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var B5=V5;async function F5(e,t,n){await e.initialize?.(t);let r=await R5(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:G5(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",v5),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await q5(e,o,n)}}function G5(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function R5(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new $0(r,e)),r}return n}}async function q5(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Q5(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),H5(e,e.input.quickActions,t,n)),r}async function Q5(e,t,n,r){switch(t.type){case"custom":return b5(e,t,n,r);case"schema":return f5(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function H5(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=wa(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Ma({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=B5({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var Wo=F5,Y5="@imgly/plugin-ai-audio-generation-web",pt="ly.img.ai/audio-generation/speech",Kt="ly.img.ai/audio-generation/sound";function Z5(e){return{async initialize({cesdk:t}){if(t==null)return;let n={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${pt}`]:"AI Voice",[`panel.${Kt}`]:"Sound Generation","ly.img.ai.audio-generation.speech.success":"Generation Successful","ly.img.ai.audio-generation.speech.success.action":"Show","ly.img.ai.audio-generation.sound.success":"Sound Generation Successful","ly.img.ai.audio-generation.sound.success.action":"Show"}});let r=e?.text2speech,a=e?.text2sound,o=await r?.({cesdk:t}),i=await a?.({cesdk:t});o!=null&&(o.output.notification={success:{show:()=>!t?.ui.isPanelOpen(pt),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(pt)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Kt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Kt)}}}});let l=o!=null?await Wo(o,{cesdk:t,engine:t.engine},n):void 0,u=i!=null?await Wo(i,{cesdk:t,engine:t.engine},n):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Kt,u.renderBuilderFunctions.panel),l?.renderBuilderFunctions?.panel!=null&&(W5(t,s=>{t.ui.openPanel(pt),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,s)}),t.ui.registerPanel(pt,l.renderBuilderFunctions.panel))}}}function W5(e,t){let n=wa(e,"text"),r="generateSpeech";n.registerQuickAction({id:r,version:"1",confirmation:!1,enable:({engine:a})=>{let o=a.block.findAllSelected();if(o.length!==1)return!1;let[i]=o;return a.block.getType(i)==="//ly.img.ubq/text"},render:({builder:a},o)=>{a.Button(r,{icon:"@imgly/Audio",variant:"plain",labelAlignment:"left",label:"AI Voice...",onClick:()=>{let[i]=e.engine.block.findAllSelected(),l=e.engine.block.getString(i,"text/text");t(l),o.closeMenu()}})}}),n.setQuickActionMenuOrder([...n.getQuickActionMenuOrder(),"ly.img.separator",r])}var K5=Z5,J5=e=>({name:Y5,version:"0.1.9",...K5(e)}),Ia=J5;var X5="@imgly/plugin-ai-text-generation",e9=`
|
|
263
263
|
<svg>
|
|
264
264
|
<symbol
|
|
265
265
|
fill="none"
|
|
@@ -335,8 +335,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
335
335
|
<path d="M3.72318 6.44728C3.63105 6.26302 3.3681 6.26302 3.27597 6.44728L3.03684 6.92554C3.01265 6.97392 2.97343 7.01314 2.92505 7.03733L2.44677 7.27652C2.26252 7.36866 2.26254 7.63161 2.44681 7.72373L2.92503 7.9628C2.97342 7.98699 3.01266 8.02622 3.03685 8.07461L3.27597 8.55285C3.3681 8.73711 3.63105 8.73711 3.72318 8.55285L3.96231 8.0746C3.9865 8.02622 4.02573 7.98699 4.07411 7.9628L4.55236 7.72367C4.73663 7.63154 4.73663 7.36859 4.55236 7.27646L4.07411 7.03733C4.02573 7.01314 3.9865 6.97391 3.96231 6.92553L3.72318 6.44728Z" fill="currentColor"/>
|
|
336
336
|
</symbol>
|
|
337
337
|
</svg>
|
|
338
|
-
`,Jh=Kh;function Fa(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function Mt(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=Fa(e,t.$ref),a={...Mt(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Mt(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>Mt(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=Mt(e,t[a],r));return n}return t}function Xh(e){return Mt(e,{...e})}function e9(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function t9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return n9(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function n9(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var Ga=t9,r9="ly.img.ai",lr="ly.img.ai/temp";async function i9(e,t){return e.engine.asset.findAllSources().includes(lr)||e.engine.asset.addLocalSource(lr),e.engine.asset.apply(lr,t)}function Ra(e){return`${r9}/${e}`}function o9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function a9(){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 l9(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function qa(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function hr(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 je(e){return e instanceof Error&&e.name==="AbortError"}function Qa(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?s9(e,t,r,n,a,o):Ya(e,t,r,n,a,o);case"boolean":return Za(e,t,r,n,a,o);case"number":case"integer":return Wa(e,t,r,n,a,o);case"object":return Ha(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return u9(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Ha(e,t,r,n,a,o){let i=Ga(t.schema??{},n).reduce((l,u)=>{let s=Qa(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ya(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=c9(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function s9(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??qa(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function Za(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Wa(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function u9(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??qa(M),icon:C[M]})}):(f[y]=()=>Ya(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Za(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>Wa(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>Ha(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function c9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var d9=Qa,g9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ka=g9;function p9(e,t,r){switch(t){case"image":return m9(e,r[t]);case"video":return f9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m9(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:Ka,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function f9(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:Ka,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var y9=p9;async function b9(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return h9(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return v9(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return k9(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function v9(e,t,r){let n=t.width,a=t.height,o=await l9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function k9(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}var Ia=b9;function Ja(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,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 w9(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Xa=w9,C9=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),n=new Set;Se(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Se(t,n=>{this.removeBlob(n)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Se(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),Se(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function Se(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=Se(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=Se(a,t,o)}return e}var M9=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)}},el=M9,x9=typeof global=="object"&&global&&global.Object===Object&&global,tl=x9,I9=typeof self=="object"&&self&&self.Object===Object&&self,A9=tl||I9||Function("return this")(),F=A9,E9=F.Symbol,Le=E9,nl=Object.prototype,S9=nl.hasOwnProperty,j9=nl.toString,wt=Le?Le.toStringTag:void 0;function L9(e){var t=S9.call(e,wt),r=e[wt];try{e[wt]=void 0;var n=!0}catch{}var a=j9.call(e);return n&&(t?e[wt]=r:delete e[wt]),a}var T9=L9,$9=Object.prototype,N9=$9.toString;function O9(e){return N9.call(e)}var D9=O9,_9="[object Null]",P9="[object Undefined]",Aa=Le?Le.toStringTag:void 0;function z9(e){return e==null?e===void 0?P9:_9:Aa&&Aa in Object(e)?T9(e):D9(e)}var St=z9;function U9(e){return e!=null&&typeof e=="object"}var vr=U9,BC=Array.isArray;function V9(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var rl=V9,B9="[object AsyncFunction]",F9="[object Function]",G9="[object GeneratorFunction]",R9="[object Proxy]";function q9(e){if(!rl(e))return!1;var t=St(e);return t==F9||t==G9||t==B9||t==R9}var Q9=q9,H9=F["__core-js_shared__"],sr=H9,Ea=function(){var e=/[^.]+$/.exec(sr&&sr.keys&&sr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Y9(e){return!!Ea&&Ea in e}var Z9=Y9,W9=Function.prototype,K9=W9.toString;function J9(e){if(e!=null){try{return K9.call(e)}catch{}try{return e+""}catch{}}return""}var Y=J9,X9=/[\\^$.*+?()[\]{}|]/g,e3=/^\[object .+?Constructor\]$/,t3=Function.prototype,n3=Object.prototype,r3=t3.toString,i3=n3.hasOwnProperty,o3=RegExp("^"+r3.call(i3).replace(X9,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a3(e){if(!rl(e)||Z9(e))return!1;var t=Q9(e)?o3:e3;return t.test(Y(e))}var l3=a3;function s3(e,t){return e?.[t]}var u3=s3;function c3(e,t){var r=u3(e,t);return l3(r)?r:void 0}var Te=c3,d3=Te(F,"WeakMap"),gr=d3;function g3(e,t){return e===t||e!==e&&t!==t}var p3=g3,m3=9007199254740991;function f3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=m3}var y3=f3,FC=Object.prototype,b3="[object Arguments]";function h3(e){return vr(e)&&St(e)==b3}var Sa=h3,il=Object.prototype,v3=il.hasOwnProperty,k3=il.propertyIsEnumerable,GC=Sa(function(){return arguments}())?Sa:function(e){return vr(e)&&v3.call(e,"callee")&&!k3.call(e,"callee")},ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ja=ol&&typeof module=="object"&&module&&!module.nodeType&&module,w3=ja&&ja.exports===ol,La=w3?F.Buffer:void 0,RC=La?La.isBuffer:void 0,C3="[object Arguments]",M3="[object Array]",x3="[object Boolean]",I3="[object Date]",A3="[object Error]",E3="[object Function]",S3="[object Map]",j3="[object Number]",L3="[object Object]",T3="[object RegExp]",$3="[object Set]",N3="[object String]",O3="[object WeakMap]",D3="[object ArrayBuffer]",_3="[object DataView]",P3="[object Float32Array]",z3="[object Float64Array]",U3="[object Int8Array]",V3="[object Int16Array]",B3="[object Int32Array]",F3="[object Uint8Array]",G3="[object Uint8ClampedArray]",R3="[object Uint16Array]",q3="[object Uint32Array]",L={};L[P3]=L[z3]=L[U3]=L[V3]=L[B3]=L[F3]=L[G3]=L[R3]=L[q3]=!0;L[C3]=L[M3]=L[D3]=L[x3]=L[_3]=L[I3]=L[A3]=L[E3]=L[S3]=L[j3]=L[L3]=L[T3]=L[$3]=L[N3]=L[O3]=!1;function Q3(e){return vr(e)&&y3(e.length)&&!!L[St(e)]}var H3=Q3;function Y3(e){return function(t){return e(t)}}var Z3=Y3,al=typeof exports=="object"&&exports&&!exports.nodeType&&exports,It=al&&typeof module=="object"&&module&&!module.nodeType&&module,W3=It&&It.exports===al,ur=W3&&tl.process,K3=function(){try{var e=It&&It.require&&It.require("util").types;return e||ur&&ur.binding&&ur.binding("util")}catch{}}(),Ta=K3,$a=Ta&&Ta.isTypedArray,qC=$a?Z3($a):H3,J3=Object.prototype,QC=J3.hasOwnProperty;function X3(e,t){return function(r){return e(t(r))}}var e7=X3,HC=e7(Object.keys,Object),t7=Object.prototype,YC=t7.hasOwnProperty,n7=Te(Object,"create"),At=n7;function r7(){this.__data__=At?At(null):{},this.size=0}var i7=r7;function o7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var a7=o7,l7="__lodash_hash_undefined__",s7=Object.prototype,u7=s7.hasOwnProperty;function c7(e){var t=this.__data__;if(At){var r=t[e];return r===l7?void 0:r}return u7.call(t,e)?t[e]:void 0}var d7=c7,g7=Object.prototype,p7=g7.hasOwnProperty;function m7(e){var t=this.__data__;return At?t[e]!==void 0:p7.call(t,e)}var f7=m7,y7="__lodash_hash_undefined__";function b7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=At&&t===void 0?y7:t,this}var h7=b7;function $e(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}$e.prototype.clear=i7;$e.prototype.delete=a7;$e.prototype.get=d7;$e.prototype.has=f7;$e.prototype.set=h7;var Na=$e;function v7(){this.__data__=[],this.size=0}var k7=v7;function w7(e,t){for(var r=e.length;r--;)if(p3(e[r][0],t))return r;return-1}var nn=w7,C7=Array.prototype,M7=C7.splice;function x7(e){var t=this.__data__,r=nn(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():M7.call(t,r,1),--this.size,!0}var I7=x7;function A7(e){var t=this.__data__,r=nn(t,e);return r<0?void 0:t[r][1]}var E7=A7;function S7(e){return nn(this.__data__,e)>-1}var j7=S7;function L7(e,t){var r=this.__data__,n=nn(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var T7=L7;function Ne(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ne.prototype.clear=k7;Ne.prototype.delete=I7;Ne.prototype.get=E7;Ne.prototype.has=j7;Ne.prototype.set=T7;var rn=Ne,$7=Te(F,"Map"),Et=$7;function N7(){this.size=0,this.__data__={hash:new Na,map:new(Et||rn),string:new Na}}var O7=N7;function D7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _7=D7;function P7(e,t){var r=e.__data__;return _7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var on=P7;function z7(e){var t=on(this,e).delete(e);return this.size-=t?1:0,t}var U7=z7;function V7(e){return on(this,e).get(e)}var B7=V7;function F7(e){return on(this,e).has(e)}var G7=F7;function R7(e,t){var r=on(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var q7=R7;function Oe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Oe.prototype.clear=O7;Oe.prototype.delete=U7;Oe.prototype.get=B7;Oe.prototype.has=G7;Oe.prototype.set=q7;var ll=Oe;function Q7(){this.__data__=new rn,this.size=0}var H7=Q7;function Y7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z7=Y7;function W7(e){return this.__data__.get(e)}var K7=W7;function J7(e){return this.__data__.has(e)}var X7=J7,e8=200;function t8(e,t){var r=this.__data__;if(r instanceof rn){var n=r.__data__;if(!Et||n.length<e8-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ll(n)}return r.set(e,t),this.size=r.size,this}var n8=t8;function jt(e){var t=this.__data__=new rn(e);this.size=t.size}jt.prototype.clear=H7;jt.prototype.delete=Z7;jt.prototype.get=K7;jt.prototype.has=X7;jt.prototype.set=n8;var r8=Object.prototype,ZC=r8.propertyIsEnumerable,i8=Te(F,"DataView"),pr=i8,o8=Te(F,"Promise"),mr=o8,a8=Te(F,"Set"),fr=a8,Oa="[object Map]",l8="[object Object]",Da="[object Promise]",_a="[object Set]",Pa="[object WeakMap]",za="[object DataView]",s8=Y(pr),u8=Y(Et),c8=Y(mr),d8=Y(fr),g8=Y(gr),Ee=St;(pr&&Ee(new pr(new ArrayBuffer(1)))!=za||Et&&Ee(new Et)!=Oa||mr&&Ee(mr.resolve())!=Da||fr&&Ee(new fr)!=_a||gr&&Ee(new gr)!=Pa)&&(Ee=function(e){var t=St(e),r=t==l8?e.constructor:void 0,n=r?Y(r):"";if(n)switch(n){case s8:return za;case u8:return Oa;case c8:return Da;case d8:return _a;case g8:return Pa}return t});var WC=F.Uint8Array,p8="__lodash_hash_undefined__";function m8(e){return this.__data__.set(e,p8),this}var f8=m8;function y8(e){return this.__data__.has(e)}var b8=y8;function yr(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ll;++t<r;)this.add(e[t])}yr.prototype.add=yr.prototype.push=f8;yr.prototype.has=b8;var Ua=Le?Le.prototype:void 0,KC=Ua?Ua.valueOf:void 0,h8=Object.prototype,JC=h8.hasOwnProperty,v8=Object.prototype,XC=v8.hasOwnProperty,eM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),nM=new RegExp(/[A-Fa-f0-9]{2}/,"g");function k8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function sl(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function br(e,t){let r=await sl(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function w8(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return sl(n,t)}function C8(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await A8(2e3),await M8(t,e,r))}async function M8(e,t,r){switch(t.kind){case"image":return x8(e,t,r);case"video":return I8(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function x8(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await w8(l,r),s=await br(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
339
|
-
`,"+")}`}}async function
|
|
338
|
+
`,t9=e9,r9=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.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="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;Ee(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{Ee(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return Ee(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),Ee(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function Ee(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=Ee(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=Ee(a,t,o)}return e}var n9=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)}},Fa=n9,i9=typeof global=="object"&&global&&global.Object===Object&&global,Ga=i9,o9=typeof self=="object"&&self&&self.Object===Object&&self,a9=Ga||o9||Function("return this")(),F=a9,l9=F.Symbol,je=l9,Ra=Object.prototype,s9=Ra.hasOwnProperty,u9=Ra.toString,wt=je?je.toStringTag:void 0;function c9(e){var t=s9.call(e,wt),n=e[wt];try{e[wt]=void 0;var r=!0}catch{}var a=u9.call(e);return r&&(t?e[wt]=n:delete e[wt]),a}var d9=c9,g9=Object.prototype,p9=g9.toString;function m9(e){return p9.call(e)}var f9=m9,y9="[object Null]",b9="[object Undefined]",xa=je?je.toStringTag:void 0;function h9(e){return e==null?e===void 0?b9:y9:xa&&xa in Object(e)?d9(e):f9(e)}var Et=h9;function v9(e){return e!=null&&typeof e=="object"}var hn=v9,qC=Array.isArray;function k9(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var qa=k9,w9="[object AsyncFunction]",C9="[object Function]",M9="[object GeneratorFunction]",I9="[object Proxy]";function x9(e){if(!qa(e))return!1;var t=Et(e);return t==C9||t==M9||t==w9||t==I9}var A9=x9,S9=F["__core-js_shared__"],ln=S9,Aa=function(){var e=/[^.]+$/.exec(ln&&ln.keys&&ln.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function E9(e){return!!Aa&&Aa in e}var j9=E9,L9=Function.prototype,T9=L9.toString;function $9(e){if(e!=null){try{return T9.call(e)}catch{}try{return e+""}catch{}}return""}var Y=$9,N9=/[\\^$.*+?()[\]{}|]/g,D9=/^\[object .+?Constructor\]$/,O9=Function.prototype,_9=Object.prototype,P9=O9.toString,z9=_9.hasOwnProperty,U9=RegExp("^"+P9.call(z9).replace(N9,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function V9(e){if(!qa(e)||j9(e))return!1;var t=A9(e)?U9:D9;return t.test(Y(e))}var B9=V9;function F9(e,t){return e?.[t]}var G9=F9;function R9(e,t){var n=G9(e,t);return B9(n)?n:void 0}var Te=R9,q9=Te(F,"WeakMap"),gn=q9;function Q9(e,t){return e===t||e!==e&&t!==t}var H9=Q9,Y9=9007199254740991;function Z9(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Y9}var W9=Z9,QC=Object.prototype,K9="[object Arguments]";function J9(e){return hn(e)&&Et(e)==K9}var Sa=J9,Qa=Object.prototype,X9=Qa.hasOwnProperty,e3=Qa.propertyIsEnumerable,HC=Sa(function(){return arguments}())?Sa:function(e){return hn(e)&&X9.call(e,"callee")&&!e3.call(e,"callee")},Ha=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ea=Ha&&typeof module=="object"&&module&&!module.nodeType&&module,t3=Ea&&Ea.exports===Ha,ja=t3?F.Buffer:void 0,YC=ja?ja.isBuffer:void 0,r3="[object Arguments]",n3="[object Array]",i3="[object Boolean]",o3="[object Date]",a3="[object Error]",l3="[object Function]",s3="[object Map]",u3="[object Number]",c3="[object Object]",d3="[object RegExp]",g3="[object Set]",p3="[object String]",m3="[object WeakMap]",f3="[object ArrayBuffer]",y3="[object DataView]",b3="[object Float32Array]",h3="[object Float64Array]",v3="[object Int8Array]",k3="[object Int16Array]",w3="[object Int32Array]",C3="[object Uint8Array]",M3="[object Uint8ClampedArray]",I3="[object Uint16Array]",x3="[object Uint32Array]",L={};L[b3]=L[h3]=L[v3]=L[k3]=L[w3]=L[C3]=L[M3]=L[I3]=L[x3]=!0;L[r3]=L[n3]=L[f3]=L[i3]=L[y3]=L[o3]=L[a3]=L[l3]=L[s3]=L[u3]=L[c3]=L[d3]=L[g3]=L[p3]=L[m3]=!1;function A3(e){return hn(e)&&W9(e.length)&&!!L[Et(e)]}var S3=A3;function E3(e){return function(t){return e(t)}}var j3=E3,Ya=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xt=Ya&&typeof module=="object"&&module&&!module.nodeType&&module,L3=xt&&xt.exports===Ya,sn=L3&&Ga.process,T3=function(){try{var e=xt&&xt.require&&xt.require("util").types;return e||sn&&sn.binding&&sn.binding("util")}catch{}}(),La=T3,Ta=La&&La.isTypedArray,ZC=Ta?j3(Ta):S3,$3=Object.prototype,WC=$3.hasOwnProperty;function N3(e,t){return function(n){return e(t(n))}}var D3=N3,KC=D3(Object.keys,Object),O3=Object.prototype,JC=O3.hasOwnProperty,_3=Te(Object,"create"),At=_3;function P3(){this.__data__=At?At(null):{},this.size=0}var z3=P3;function U3(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var V3=U3,B3="__lodash_hash_undefined__",F3=Object.prototype,G3=F3.hasOwnProperty;function R3(e){var t=this.__data__;if(At){var n=t[e];return n===B3?void 0:n}return G3.call(t,e)?t[e]:void 0}var q3=R3,Q3=Object.prototype,H3=Q3.hasOwnProperty;function Y3(e){var t=this.__data__;return At?t[e]!==void 0:H3.call(t,e)}var Z3=Y3,W3="__lodash_hash_undefined__";function K3(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=At&&t===void 0?W3:t,this}var J3=K3;function $e(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}$e.prototype.clear=z3;$e.prototype.delete=V3;$e.prototype.get=q3;$e.prototype.has=Z3;$e.prototype.set=J3;var $a=$e;function X3(){this.__data__=[],this.size=0}var e7=X3;function t7(e,t){for(var n=e.length;n--;)if(H9(e[n][0],t))return n;return-1}var rr=t7,r7=Array.prototype,n7=r7.splice;function i7(e){var t=this.__data__,n=rr(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():n7.call(t,n,1),--this.size,!0}var o7=i7;function a7(e){var t=this.__data__,n=rr(t,e);return n<0?void 0:t[n][1]}var l7=a7;function s7(e){return rr(this.__data__,e)>-1}var u7=s7;function c7(e,t){var n=this.__data__,r=rr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var d7=c7;function Ne(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ne.prototype.clear=e7;Ne.prototype.delete=o7;Ne.prototype.get=l7;Ne.prototype.has=u7;Ne.prototype.set=d7;var nr=Ne,g7=Te(F,"Map"),St=g7;function p7(){this.size=0,this.__data__={hash:new $a,map:new(St||nr),string:new $a}}var m7=p7;function f7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var y7=f7;function b7(e,t){var n=e.__data__;return y7(t)?n[typeof t=="string"?"string":"hash"]:n.map}var ir=b7;function h7(e){var t=ir(this,e).delete(e);return this.size-=t?1:0,t}var v7=h7;function k7(e){return ir(this,e).get(e)}var w7=k7;function C7(e){return ir(this,e).has(e)}var M7=C7;function I7(e,t){var n=ir(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var x7=I7;function De(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}De.prototype.clear=m7;De.prototype.delete=v7;De.prototype.get=w7;De.prototype.has=M7;De.prototype.set=x7;var Za=De;function A7(){this.__data__=new nr,this.size=0}var S7=A7;function E7(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var j7=E7;function L7(e){return this.__data__.get(e)}var T7=L7;function $7(e){return this.__data__.has(e)}var N7=$7,D7=200;function O7(e,t){var n=this.__data__;if(n instanceof nr){var r=n.__data__;if(!St||r.length<D7-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Za(r)}return n.set(e,t),this.size=n.size,this}var _7=O7;function jt(e){var t=this.__data__=new nr(e);this.size=t.size}jt.prototype.clear=S7;jt.prototype.delete=j7;jt.prototype.get=T7;jt.prototype.has=N7;jt.prototype.set=_7;var P7=Object.prototype,XC=P7.propertyIsEnumerable,z7=Te(F,"DataView"),pn=z7,U7=Te(F,"Promise"),mn=U7,V7=Te(F,"Set"),fn=V7,Na="[object Map]",B7="[object Object]",Da="[object Promise]",Oa="[object Set]",_a="[object WeakMap]",Pa="[object DataView]",F7=Y(pn),G7=Y(St),R7=Y(mn),q7=Y(fn),Q7=Y(gn),Se=Et;(pn&&Se(new pn(new ArrayBuffer(1)))!=Pa||St&&Se(new St)!=Na||mn&&Se(mn.resolve())!=Da||fn&&Se(new fn)!=Oa||gn&&Se(new gn)!=_a)&&(Se=function(e){var t=Et(e),n=t==B7?e.constructor:void 0,r=n?Y(n):"";if(r)switch(r){case F7:return Pa;case G7:return Na;case R7:return Da;case q7:return Oa;case Q7:return _a}return t});var eM=F.Uint8Array,H7="__lodash_hash_undefined__";function Y7(e){return this.__data__.set(e,H7),this}var Z7=Y7;function W7(e){return this.__data__.has(e)}var K7=W7;function yn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Za;++t<n;)this.add(e[t])}yn.prototype.add=yn.prototype.push=Z7;yn.prototype.has=K7;var za=je?je.prototype:void 0,tM=za?za.valueOf:void 0,J7=Object.prototype,rM=J7.hasOwnProperty,X7=Object.prototype,nM=X7.hasOwnProperty,iM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),oM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),aM=new RegExp(/[A-Fa-f0-9]{2}/,"g");function e8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Wa(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function bn(e,t){let n=await Wa(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function t8(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return Wa(r,t)}function Ka(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function Mt(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=Ka(e,t.$ref),a={...Mt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Mt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>Mt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=Mt(e,t[a],n));return r}return t}function r8(e){return Mt(e,{...e})}function n8(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`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 n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`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 n(`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 n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'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 n(`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 n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`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 n(`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 n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`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 n(`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 n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`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 n(`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 n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function i8(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=e.properties,r=[];return o8(e,t).forEach(a=>{let o=a,i=n[a]??void 0;r.push({id:o,schema:i})}),r}function o8(e,t){let n=t.order;if(n!=null&&Array.isArray(n))return n;if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,a=Object.keys(r),o=a8(e,t)??a;return n!=null&&typeof n=="function"&&(o=n(o)),[...new Set(o)]}function a8(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 n=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return n==null?void 0:e[n]}var Ja=i8,l8="ly.img.ai",un="ly.img.ai/temp";async function s8(e,t){return e.engine.asset.findAllSources().includes(un)||e.engine.asset.addLocalSource(un),e.engine.asset.apply(un,t)}function Xa(e){return`${l8}/${e}`}function u8(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function c8(){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 d8(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function el(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function vn(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 Le(e){return e instanceof Error&&e.name==="AbortError"}function tl(e,t,n,r,a,o){if(t.schema==null)return r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null?r.renderCustomProperty[t.id](e,t):void 0;let i=t,l=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(l){case"string":return t.schema.enum!=null?g8(e,i,n,r,a,o):nl(e,i,n,r,a,o);case"boolean":return il(e,i,n,r,a,o);case"number":case"integer":return ol(e,i,n,r,a,o);case"object":return rl(e,i,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return p8(e,i,n,r,a,o);break}default:console.error(`Unsupported property type: ${l}`)}}function rl(e,t,n,r,a,o){let i=Ja(t.schema??{},r).reduce((l,u)=>{let s=tl(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function nl(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=m8(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function g8(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(b=>({id:b,label:d[b]??el(b),icon:g[b]})),v=t.schema.default!=null?f.find(b=>b.id===t.schema.default)??f[0]:f[0],w=l(s,v);return i.Select(s,{inputLabel:c,values:f,...w}),()=>({id:t.id,type:"string",value:w.value.id})}function il(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function ol(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function p8(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,h)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${h}]`,k="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:k[M]??el(M),icon:C[M]})}):(f[y]=()=>nl(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>il(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>ol(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>rl(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:k[m]??m,icon:C[m]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],b=l(s,w);if(i.Select(s,{inputLabel:c,values:g,...b}),b.value.id in f){let p=f[b.value.id]();v[b.value.id]=p}return()=>{let p=v[b.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:b.value.id}}}function m8(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var f8=tl,y8="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",al=y8;function b8(e,t,n){switch(t){case"image":return h8(e,n[t]);case"video":return v8(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h8(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:al,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function v8(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:al,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var k8=b8;async function w8(e,t,n,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 C8(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return M8(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return I8(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function C8(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function M8(e,t,n){let r=t.width,a=t.height,o=await d8(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function I8(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var Ua=w8;function ll(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(w,b)=>l(s+1,w,b),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};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 x8(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var sl=x8;function A8(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await L8(2e3),await S8(t,e,n))}async function S8(e,t,n){switch(t.kind){case"image":return E8(e,t,n);case"video":return j8(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function E8(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await t8(l,n),s=await bn(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
339
|
+
`,"+")}`}}async function j8(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function L8(e){return new Promise(t=>{setTimeout(t,e)})}var ul=A8;async function T8(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=c8(),v;if(u){if(v=k8(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await s8(l,v),c!=null&&r.kind==="video"){let h=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,h),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(tr(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let w=ll([...r.output.middleware??[],o.debug?sl():void 0,o.dryRun?ul({kind:r.kind,blockInputs:g}):void 0]),{result:b}=await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(vn(b))throw new Error("Streaming generation is not supported yet from a panel");if(tr(l,i,c))return{status:"aborted"};if(b==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(b,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Ua(f,e,g,b),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),tr(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Ua(f,e,g,b),tr(l,i,c)))return{status:"aborted"};let h={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,h)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:b}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(Le(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function tr(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var $8=T8;function N8(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),D8(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:u8(e)}))}function D8(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var It=N8;function cl(e){return`${e}.generating`}function O8(e){return`${e}.abort`}function _8(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(O8(c),()=>{}),f=l.global(cl(c),!1),v,w=f.value&&d,b=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let h=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),h.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),u.ui.closeDialog(y),h.setValue(void 0)}}});h.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let k=await $8(t.kind,n,r,t,a,o,m);if(k.status==="aborted")return;let C=t.output.notification;P8(u,C,()=>({input:n().input,output:k.output}))}catch(k){if(Le(k))return;It(k,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),h.value!=null&&(u.ui.closeDialog(h.value),h.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:b}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function P8(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var dl=_8;async function z8(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=r8(t.document),l=Ka(i,t.inputReference);if(!n8(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Ja(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let h=f8(d,p,e,t,n,r);h!=null&&(Array.isArray(h)?f.push(...h):f.push(h))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((h,[m,y])=>(h[m]=w(y),h),{}):p.value,b=v.reduce((p,h)=>(p[h.id]=w(h),p),{});dl(d,e,()=>({input:b}),()=>t.getBlockInput(b),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Xa(o),c),c}var U8=z8;async function V8(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(cl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return dl(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Xa(o),l),l}var B8=V8,cn="@imgly/plugin-ai-generation",F8=`
|
|
340
340
|
<svg>
|
|
341
341
|
<symbol
|
|
342
342
|
fill="none"
|
|
@@ -354,7 +354,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
354
354
|
fill="none"
|
|
355
355
|
xmlns="http://www.w3.org/2000/svg"
|
|
356
356
|
viewBox="0 0 24 24"
|
|
357
|
-
id="${
|
|
357
|
+
id="${cn}/image"
|
|
358
358
|
>
|
|
359
359
|
<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"/>
|
|
360
360
|
<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"/>
|
|
@@ -366,7 +366,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
366
366
|
fill="none"
|
|
367
367
|
xmlns="http://www.w3.org/2000/svg"
|
|
368
368
|
viewBox="0 0 24 24"
|
|
369
|
-
id="${
|
|
369
|
+
id="${cn}/video"
|
|
370
370
|
>
|
|
371
371
|
<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"/>
|
|
372
372
|
<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"/>
|
|
@@ -377,7 +377,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
377
377
|
fill="none"
|
|
378
378
|
xmlns="http://www.w3.org/2000/svg"
|
|
379
379
|
viewBox="0 0 24 24"
|
|
380
|
-
id="${
|
|
380
|
+
id="${cn}/audio"
|
|
381
381
|
>
|
|
382
382
|
<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"/>
|
|
383
383
|
<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"/>
|
|
@@ -397,7 +397,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
|
|
|
397
397
|
|
|
398
398
|
</symbol>
|
|
399
399
|
</svg>
|
|
400
|
-
`,U8=z8,Va="ly.img.ai.quickAction.order",Ct="ly.img.ai.quickAction.actions";function V8(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${Va}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Va}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ct}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{})[r]}}var gl=V8,dr="ly.img.ai.inference.editMode",pl="ly.img.ai.inference.metadata";function ml(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function B8(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function F8({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var G8=F8;function R8({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var q8=R8;function Q8({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=H8(n.engine,o,e),await a(r,n)}catch(l){throw je(l)&&i(),l}finally{t&&i()}}}function H8(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Y8=Q8;function Z8(e,t){switch(t.kind){case"text":return W8(e,t);case"image":return K8(e,t);case"video":return J8(e,t);case"audio":return X8(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function W8(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if(hr(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function K8(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await br(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),w=r.engine.block.getCropTranslationX(o),b=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),h=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,w),r.engine.block.setCropTranslationY(o,b),r.engine.block.setCropRotation(o,p)};if(hr(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),k=await e6(r,m,y),C=await br(k,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",$):(r.engine.block.setString(i,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(i,"fill/image/sourceSet",I)),x?r.engine.block.setContentFillMode(o,"Cover"):h();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",$)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function J8(e,t){throw new Error("Function not implemented.")}async function X8(e,t){throw new Error("Function not implemented.")}async function e6(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${k8(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var t6=Z8;function n6({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=r6(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw je(u)&&l(),u}finally{t&&l()}}}function r6(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var i6=n6;async function o6(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:dr});let s=new el(r.engine,pl);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=Ja([...o.output.middleware??[],t.debug?Xa():void 0,q8({}),...i.confirmation?[i.lockDuringConfirmation?Y8({editMode:dr}):i6({editMode:dr}),i.confirmation&&G8({})]:[],t.dryRun?ul({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:w}=await t6(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var Ba=o6;function a6(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new el(r.engine,pl),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=n.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=n.getQuickAction(m);if(y==null||!r.feature.isEnabled(ml({quickActionId:m,quickActionMenuId:n.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=B8(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=n.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{xt(C,{cesdk:r,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:x,applyCallbacks:I,dispose:$}=await Ba({input:C,quickAction:k,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=I,x}catch(x){throw je(x)||xt(x,{cesdk:r,provider:a},t),x}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{xt(k,{cesdk:r,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Ba({input:k,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw je(M)||xt(M,{cesdk:r,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var l6=a6;async function s6(e,t,r){await e.initialize?.(t);let n=await c6(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:u6(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",U8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await d6(e,o,r)}}function u6(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function c6(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new C9(n,e)),n}return r}}async function d6(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await g6(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),p6(e,e.input.quickActions,t,r)),n}async function g6(e,t,r,n){switch(t.type){case"custom":return P8(e,t,r,n);case"schema":return D8(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function p6(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=gl(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(ml({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=l6({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var m6=s6,f6="@imgly/plugin-ai-text-generation-web",y6=e=>({async initialize({cesdk:t}){if(t==null)return;let r=await e.provider?.({cesdk:t});m6(r,{cesdk:t,engine:t.engine},{debug:e.debug??!1,dryRun:!1});let n=gl(t,"text");n.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...n.getQuickActionMenuOrder()]),t.ui.addIconSet(Wh,Jh),t.setTranslations({en:{"ly.img.ai.inference.apply":"Apply","ly.img.ai.inference.cancel":"Cancel","ly.img.ai.inference.improve":"Improve Writing","ly.img.ai.inference.improve.processing":"Improving Writing...","ly.img.ai.inference.fix":"Fix Spelling & Grammar","ly.img.ai.inference.fix.processing":"Fixing spelling & grammar...","ly.img.ai.inference.longer":"Make Longer","ly.img.ai.inference.longer.processing":"Making longer...","ly.img.ai.inference.shorter":"Make Shorter","ly.img.ai.inference.shorter.processing":"Making shorter...","ly.img.ai.inference.changeTone":"Change Tone","ly.img.ai.inference.changeTone.processing":"Changing tone...","ly.img.ai.inference.changeTone.type.professional":"Professional","ly.img.ai.inference.changeTone.type.casual":"Casual","ly.img.ai.inference.changeTone.type.friendly":"Friendly","ly.img.ai.inference.changeTone.type.serious":"Serious","ly.img.ai.inference.changeTone.type.humorous":"Humorous","ly.img.ai.inference.changeTone.type.optimistic":"Optimistic","ly.img.ai.inference.translate":"Translate","ly.img.ai.inference.translate.processing":"Translating...","ly.img.ai.inference.changeTextTo":"Change Text to...","ly.img.ai.inference.changeTextTo.processing":"Changing text..."}})}}),b6=e=>({name:f6,version:"0.1.7",...y6(e)}),fl=b6;var Er=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(c=>this.cesdk.engine.asset.findAssets(c,{...e,perPage:9999,page:0})),r=await Promise.all(t),n=[];r.forEach(c=>{c?.assets&&(n=n.concat(c.assets))}),n.sort((c,d)=>{let g=c.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:a,perPage:o}=e,i=a*o,l=i+o,u=n.slice(i,l),s=l<n.length?a+1:void 0;return{assets:u,currentPage:a,nextPage:s,total:n.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(n=>this.cesdk.engine.asset.getGroups(n)),t=await Promise.all(e),r=new Set;return t.forEach(n=>{n.forEach(a=>r.add(a))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}};var h6=typeof global=="object"&&global&&global.Object===Object&&global,Ll=h6,v6=typeof self=="object"&&self&&self.Object===Object&&self,k6=Ll||v6||Function("return this")(),G=k6,w6=G.Symbol,_e=w6,Tl=Object.prototype,C6=Tl.hasOwnProperty,M6=Tl.toString,Lt=_e?_e.toStringTag:void 0;function x6(e){var t=C6.call(e,Lt),r=e[Lt];try{e[Lt]=void 0;var n=!0}catch{}var a=M6.call(e);return n&&(t?e[Lt]=r:delete e[Lt]),a}var I6=x6,A6=Object.prototype,E6=A6.toString;function S6(e){return E6.call(e)}var j6=S6,L6="[object Null]",T6="[object Undefined]",yl=_e?_e.toStringTag:void 0;function $6(e){return e==null?e===void 0?T6:L6:yl&&yl in Object(e)?I6(e):j6(e)}var Ot=$6;function N6(e){return e!=null&&typeof e=="object"}var Sr=N6,aM=Array.isArray;function O6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $l=O6,D6="[object AsyncFunction]",_6="[object Function]",P6="[object GeneratorFunction]",z6="[object Proxy]";function U6(e){if(!$l(e))return!1;var t=Ot(e);return t==_6||t==P6||t==D6||t==z6}var V6=U6,B6=G["__core-js_shared__"],kr=B6,bl=function(){var e=/[^.]+$/.exec(kr&&kr.keys&&kr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function F6(e){return!!bl&&bl in e}var G6=F6,R6=Function.prototype,q6=R6.toString;function Q6(e){if(e!=null){try{return q6.call(e)}catch{}try{return e+""}catch{}}return""}var Z=Q6,H6=/[\\^$.*+?()[\]{}|]/g,Y6=/^\[object .+?Constructor\]$/,Z6=Function.prototype,W6=Object.prototype,K6=Z6.toString,J6=W6.hasOwnProperty,X6=RegExp("^"+K6.call(J6).replace(H6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ev(e){if(!$l(e)||G6(e))return!1;var t=V6(e)?X6:Y6;return t.test(Z(e))}var tv=ev;function nv(e,t){return e?.[t]}var rv=nv;function iv(e,t){var r=rv(e,t);return tv(r)?r:void 0}var Pe=iv,ov=Pe(G,"WeakMap"),Cr=ov;function av(e,t){return e===t||e!==e&&t!==t}var lv=av,sv=9007199254740991;function uv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sv}var cv=uv;var lM=Object.prototype;var dv="[object Arguments]";function gv(e){return Sr(e)&&Ot(e)==dv}var hl=gv,Nl=Object.prototype,pv=Nl.hasOwnProperty,mv=Nl.propertyIsEnumerable,sM=hl(function(){return arguments}())?hl:function(e){return Sr(e)&&pv.call(e,"callee")&&!mv.call(e,"callee")};var Ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vl=Ol&&typeof module=="object"&&module&&!module.nodeType&&module,fv=vl&&vl.exports===Ol,kl=fv?G.Buffer:void 0,uM=kl?kl.isBuffer:void 0;var yv="[object Arguments]",bv="[object Array]",hv="[object Boolean]",vv="[object Date]",kv="[object Error]",wv="[object Function]",Cv="[object Map]",Mv="[object Number]",xv="[object Object]",Iv="[object RegExp]",Av="[object Set]",Ev="[object String]",Sv="[object WeakMap]",jv="[object ArrayBuffer]",Lv="[object DataView]",Tv="[object Float32Array]",$v="[object Float64Array]",Nv="[object Int8Array]",Ov="[object Int16Array]",Dv="[object Int32Array]",_v="[object Uint8Array]",Pv="[object Uint8ClampedArray]",zv="[object Uint16Array]",Uv="[object Uint32Array]",T={};T[Tv]=T[$v]=T[Nv]=T[Ov]=T[Dv]=T[_v]=T[Pv]=T[zv]=T[Uv]=!0;T[yv]=T[bv]=T[jv]=T[hv]=T[Lv]=T[vv]=T[kv]=T[wv]=T[Cv]=T[Mv]=T[xv]=T[Iv]=T[Av]=T[Ev]=T[Sv]=!1;function Vv(e){return Sr(e)&&cv(e.length)&&!!T[Ot(e)]}var Bv=Vv;function Fv(e){return function(t){return e(t)}}var Gv=Fv,Dl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tt=Dl&&typeof module=="object"&&module&&!module.nodeType&&module,Rv=Tt&&Tt.exports===Dl,wr=Rv&&Ll.process,qv=function(){try{var e=Tt&&Tt.require&&Tt.require("util").types;return e||wr&&wr.binding&&wr.binding("util")}catch{}}(),wl=qv,Cl=wl&&wl.isTypedArray,cM=Cl?Gv(Cl):Bv;var Qv=Object.prototype,dM=Qv.hasOwnProperty;function Hv(e,t){return function(r){return e(t(r))}}var Yv=Hv,gM=Yv(Object.keys,Object);var Zv=Object.prototype,pM=Zv.hasOwnProperty;var Wv=Pe(Object,"create"),$t=Wv;function Kv(){this.__data__=$t?$t(null):{},this.size=0}var Jv=Kv;function Xv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ek=Xv,tk="__lodash_hash_undefined__",nk=Object.prototype,rk=nk.hasOwnProperty;function ik(e){var t=this.__data__;if($t){var r=t[e];return r===tk?void 0:r}return rk.call(t,e)?t[e]:void 0}var ok=ik,ak=Object.prototype,lk=ak.hasOwnProperty;function sk(e){var t=this.__data__;return $t?t[e]!==void 0:lk.call(t,e)}var uk=sk,ck="__lodash_hash_undefined__";function dk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=$t&&t===void 0?ck:t,this}var gk=dk;function ze(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ze.prototype.clear=Jv;ze.prototype.delete=ek;ze.prototype.get=ok;ze.prototype.has=uk;ze.prototype.set=gk;var Ml=ze;function pk(){this.__data__=[],this.size=0}var mk=pk;function fk(e,t){for(var r=e.length;r--;)if(lv(e[r][0],t))return r;return-1}var an=fk,yk=Array.prototype,bk=yk.splice;function hk(e){var t=this.__data__,r=an(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():bk.call(t,r,1),--this.size,!0}var vk=hk;function kk(e){var t=this.__data__,r=an(t,e);return r<0?void 0:t[r][1]}var wk=kk;function Ck(e){return an(this.__data__,e)>-1}var Mk=Ck;function xk(e,t){var r=this.__data__,n=an(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Ik=xk;function Ue(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ue.prototype.clear=mk;Ue.prototype.delete=vk;Ue.prototype.get=wk;Ue.prototype.has=Mk;Ue.prototype.set=Ik;var ln=Ue,Ak=Pe(G,"Map"),Nt=Ak;function Ek(){this.size=0,this.__data__={hash:new Ml,map:new(Nt||ln),string:new Ml}}var Sk=Ek;function jk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Lk=jk;function Tk(e,t){var r=e.__data__;return Lk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var sn=Tk;function $k(e){var t=sn(this,e).delete(e);return this.size-=t?1:0,t}var Nk=$k;function Ok(e){return sn(this,e).get(e)}var Dk=Ok;function _k(e){return sn(this,e).has(e)}var Pk=_k;function zk(e,t){var r=sn(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var Uk=zk;function Ve(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ve.prototype.clear=Sk;Ve.prototype.delete=Nk;Ve.prototype.get=Dk;Ve.prototype.has=Pk;Ve.prototype.set=Uk;var _l=Ve;function Vk(){this.__data__=new ln,this.size=0}var Bk=Vk;function Fk(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Gk=Fk;function Rk(e){return this.__data__.get(e)}var qk=Rk;function Qk(e){return this.__data__.has(e)}var Hk=Qk,Yk=200;function Zk(e,t){var r=this.__data__;if(r instanceof ln){var n=r.__data__;if(!Nt||n.length<Yk-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new _l(n)}return r.set(e,t),this.size=r.size,this}var Wk=Zk;function Dt(e){var t=this.__data__=new ln(e);this.size=t.size}Dt.prototype.clear=Bk;Dt.prototype.delete=Gk;Dt.prototype.get=qk;Dt.prototype.has=Hk;Dt.prototype.set=Wk;var Kk=Object.prototype,mM=Kk.propertyIsEnumerable;var Jk=Pe(G,"DataView"),Mr=Jk,Xk=Pe(G,"Promise"),xr=Xk,ew=Pe(G,"Set"),Ir=ew,xl="[object Map]",tw="[object Object]",Il="[object Promise]",Al="[object Set]",El="[object WeakMap]",Sl="[object DataView]",nw=Z(Mr),rw=Z(Nt),iw=Z(xr),ow=Z(Ir),aw=Z(Cr),De=Ot;(Mr&&De(new Mr(new ArrayBuffer(1)))!=Sl||Nt&&De(new Nt)!=xl||xr&&De(xr.resolve())!=Il||Ir&&De(new Ir)!=Al||Cr&&De(new Cr)!=El)&&(De=function(e){var t=Ot(e),r=t==tw?e.constructor:void 0,n=r?Z(r):"";if(n)switch(n){case nw:return Sl;case rw:return xl;case iw:return Il;case ow:return Al;case aw:return El}return t});var fM=G.Uint8Array;var lw="__lodash_hash_undefined__";function sw(e){return this.__data__.set(e,lw),this}var uw=sw;function cw(e){return this.__data__.has(e)}var dw=cw;function Ar(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new _l;++t<r;)this.add(e[t])}Ar.prototype.add=Ar.prototype.push=uw;Ar.prototype.has=dw;var jl=_e?_e.prototype:void 0,yM=jl?jl.valueOf:void 0;var gw=Object.prototype,bM=gw.hasOwnProperty;var pw=Object.prototype,hM=pw.hasOwnProperty;var vM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),kM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),wM=new RegExp(/[A-Fa-f0-9]{2}/,"g");var jr=class{constructor(t,r,n=[]){this.id=t,this.assets=[...n],this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}async findAssets(t){let{page:r,perPage:n,locale:a="en",sortActiveFirst:o,query:i,tags:l,groups:u,excludeGroups:s,sortingOrder:c,sortKey:d}=t,g=[...this.assets];if(u&&u.length>0&&(g=g.filter(m=>m.groups&&u.some(y=>m.groups?.includes(y)))),s&&s.length>0&&(g=g.filter(m=>!m.groups||!s.some(y=>m.groups?.includes(y)))),i){let m=i.toLowerCase();g=g.filter(y=>{let k=y.label?.[a]?.toLowerCase(),C=y.tags?.[a]||[];return k&&k.includes(m)||C.some(M=>M.toLowerCase().includes(m))})}if(l&&l.length>0){let m=Array.isArray(l)?l:[l];g=g.filter(y=>{let k=y.tags?.[a]||[];return m.some(C=>k.includes(C))})}o&&g.sort((m,y)=>{let k=this.activeAssetIds.has(m.id),C=this.activeAssetIds.has(y.id);return k&&!C?-1:!k&&C?1:0}),d&&d!=="id"?g.sort((m,y)=>{let k=m.meta?.[d],C=y.meta?.[d];return k===void 0?1:C===void 0?-1:typeof k=="string"&&typeof C=="string"?c==="Descending"?C.localeCompare(k):k.localeCompare(C):typeof k=="number"&&typeof C=="number"?c==="Descending"?C-k:k-C:0}):d==="id"&&g.sort((m,y)=>c==="Descending"?y.id.localeCompare(m.id):m.id.localeCompare(y.id));let f=g.length,v=r*n,w=v+n,p=g.slice(v,w).map(m=>({id:m.id,groups:m.groups,meta:m.meta,payload:m.payload,locale:a,label:m.label?.[a],tags:m.tags?.[a],active:this.activeAssetIds.has(m.id)})),h=w<f?r+1:void 0;return{assets:p,currentPage:r,nextPage:h,total:f}}updateLabel(t,r,n){this.assets.forEach(a=>{a.id===t&&(a.label=a.label||{},a.label[n]=r(a.label[n]))})}getLabel(t,r){let n=this.assets.find(a=>a.id===t);if(n!=null)return n.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let n=this.getLabel(t,"en")??"",a=mw(o=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${o} ${n}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>n,"en"),a()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){let r=this.assets.findIndex(n=>n.id===t.id);r>=0?this.assets[r]=t:this.assets.push(t)}removeAsset(t){let r=this.assets.findIndex(n=>n.id===t);r!==-1&&(this.assets.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.assets.forEach(r=>{r.groups&&r.groups.forEach(n=>t.add(n))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Pl(e,t,r=[]){return new jr(e,t,r)}function mw(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],n=0,a=setInterval(()=>{let o=r[n];n=(n+1)%r.length,e(o)||clearInterval(a)},t);return()=>{clearInterval(a)}}var Lr="ly.img.ai.apps";var N=_t("apps"),un=512,cn=128,zl=e=>({async initialize({cesdk:t}){if(t==null)return;let r=t.engine.scene.getMode()==="Video",{providers:n,baseURL:a="https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"}=e,{activeAssetSource:o}=await fw(t,{isVideoMode:r,baseURL:a,debug:e.debug}),i=await W(t,o,n.text2text),l=await W(t,o,n.text2image),u=await W(t,o,n.image2image),s,c,d,g;r&&(s=await W(t,o,n.text2video),c=await W(t,o,n.image2video),d=await W(t,o,n.text2speech),g=await W(t,o,n.text2sound),t.addPlugin($o({text2video:s,image2video:c,debug:e.debug,dryRun:e.dryRun})),t.addPlugin(xa({text2speech:d,text2sound:g,debug:e.debug,dryRun:e.dryRun}))),i!=null&&t.addPlugin(fl({provider:i,debug:e.debug})),t.addPlugin(Bi({text2image:l,image2image:u,debug:e.debug,dryRun:e.dryRun})),bw(t,{text2text:i,text2image:l,image2image:u,text2video:s,image2video:c,text2speech:d,text2sound:g},r),hw(t)}});async function W(e,t,r){if(r==null)return;let n=await r({cesdk:e});if(t!=null){let a=async(o,i,l)=>{let u=`${n.kind}-generation`;n.kind==="audio"&&(n.id.includes("sound")?u="audio-generation/sound":n.id.includes("speech")&&(u="audio-generation/speech")),e.ui.experimental.setGlobalStateValue(`${N}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged(N);try{return await l(o,i)}finally{e.engine.asset.assetSourceContentsChanged(N),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${N}.isGenerating`,!1)}};n.output.middleware=[...n.output.middleware??[],a]}return()=>Promise.resolve(n)}async function fw(e,t){let{isVideoMode:r,debug:n,baseURL:a}=t;yw(e);let o;r&&(o=Pl(N,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:un,height:cn}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:un,height:cn}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:un,height:cn}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:un,height:cn}}]),e.engine.asset.addSource(o),e.ui.registerPanel(N,({builder:l})=>{l.Library(N,{entries:[N],onSelect:async u=>{e.ui.openPanel(_t(u.id))}})}),e.ui.addAssetLibraryEntry({id:N,sourceIds:[N],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:l})=>l,cardLabelPosition:()=>"inside"}));let i=`${N}.dock`;return r?(n&&console.log("Registering AI App Dock Button",i),e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=e.ui.isPanelOpen(N),c=u.global(`${N}.isGenerating`,!1);l.Button(`${N}.dock.button`,{label:"AI",isSelected:s,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(d=>{d.startsWith("ly.img.ai/")&&e.ui.closePanel(d),!s&&d==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(d)}),s?e.ui.closePanel(N):e.ui.openPanel(N)}})})):e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=_t("image-generation"),c=u.global(`${N}.isGenerating`,!1),d=e.ui.isPanelOpen(s);l.Button(`${N}.dock.button`,{label:"AI",isSelected:d,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{d?e.ui.closePanel(s):e.ui.openPanel(s)}})}),{activeAssetSource:o}}function yw(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:n})=>{let a="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!n||n.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${a}`);return}let{id:o,key:i,label:l,icon:u,entries:s}=n;if(s==null||!Array.isArray(s)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${a}`);return}if(s.some(b=>typeof b!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${a}`);return}l!=null&&typeof l!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let c=r.scene.getMode(),d=s.filter(b=>{let p=e.ui.getAssetLibraryEntry(b);if(p==null)return!1;let h=p.sceneMode;return typeof h=="string"?p.sceneMode===c||p.sceneMode==="All":typeof h=="function"?p.sourceIds.some(m=>{let y=h(m);return y===c||y==="All"}):!0});if(d.length===0)return;let g=l;g==null&&(g=`libraries.${o}.label`);let f=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),v=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),w=u;w==null&&d.length===1&&(w=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:w,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(b=>{(b===N||b.startsWith("ly.img.ai/"))&&e.ui.closePanel(b)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function bw(e,t,r){let n=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new Er("ly.img.ai/image-generation.history",e,[n!=null?`${n.id}.history`:void 0,a!=null?`${a?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(o);let i=e.ui.getAssetLibraryEntry("ly.img.image");if(i!=null&&e.ui.updateAssetLibraryEntry("ly.img.image",{sourceIds:[...i.sourceIds,"ly.img.ai/image-generation.history"]}),!r)return;let l=await t.text2video?.({cesdk:e}),u=await t.image2video?.({cesdk:e}),s=new Er("ly.img.ai/video-generation.history",e,[l!=null?`${l.id}.history`:void 0,u!=null?`${u?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(s);let c=e.ui.getAssetLibraryEntry("ly.img.video");c!=null&&e.ui.updateAssetLibraryEntry("ly.img.video",{sourceIds:[...c.sourceIds,"ly.img.ai/video-generation.history"]});let d=await t.text2speech?.({cesdk:e}),g=await t.text2sound?.({cesdk:e}),f=e.ui.getAssetLibraryEntry("ly.img.audio"),v=[d!=null?`${d.id}.history`:void 0,g!=null?`${g.id}.history`:void 0].filter(Boolean);f!=null&&e.ui.updateAssetLibraryEntry("ly.img.audio",{sourceIds:[...f.sourceIds,...v]})}function hw(e){e.i18n.setTranslations({en:{"panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai/apps":"AI","panel.ly.img.ai/fal-ai/gemini-flash-edit.imageSelection":"Select Image To Change","panel.gpt-image-1.imageSelection":"Select Image To Change","panel.ly.img.ai/elevenlabs":"AI Voice","panel.ly.img.ai/demo.video":"Generate Video","panel.ly.img.ai/demo.image":"Generate Image","panel.fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.fal-ai/gemini-flash-edit.imageSelection":"Select Image To Generate","libraries.ly.img.ai/fal-ai/recraft-v3.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/gemini-flash-edit.history.label":"Generated From Image","libraries.ly.img.ai/fal-ai/pixverse/v3.5/text-to-video.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.history.label":"Generated From Image","libraries.elevenlabs/monolingual/v1.history.label":"AI Voice","libraries.elevenlabs/sound-generation.history.label":"Generated Sound","libraries.ly.img.ai/image-generation.history.label":"AI Generated Images","libraries.ly.img.ai/video-generation.history.label":"AI Generated Videos"}})}var vw=e=>({name:Lr,version:"0.1.7",...zl(e)}),VM=vw;export{VM as default};
|
|
400
|
+
`,G8=F8,Va="ly.img.ai.quickAction.order",Ct="ly.img.ai.quickAction.actions";function R8(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Va}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Va}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ct}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{})[n]}}var gl=R8,dn="ly.img.ai.inference.editMode",pl="ly.img.ai.inference.metadata";function ml(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function q8(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function Q8({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var H8=Q8;function Y8({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var Z8=Y8;function W8({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=K8(r.engine,o,e),await a(n,r)}catch(l){throw Le(l)&&i(),l}finally{t&&i()}}}function K8(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var J8=W8;function X8(e,t){switch(t.kind){case"text":return e6(e,t);case"image":return t6(e,t);case"video":return r6(e,t);case"audio":return n6(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function e6(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(vn(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function t6(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await bn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),w=n.engine.block.getCropTranslationX(o),b=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,w),n.engine.block.setCropTranslationY(o,b),n.engine.block.setCropRotation(o,p)};if(vn(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),k=await i6(n,m,y),C=await bn(k,t.cesdk.engine),M=C.width/C.height,I=Math.abs(g-M)>.001,x=u?[{uri:k,width:C.width,height:C.height}]:void 0,$=k;x==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):(n.engine.block.setString(i,"fill/image/imageFileURI",""),n.engine.block.setSourceSet(i,"fill/image/sourceSet",x)),I?n.engine.block.setContentFillMode(o,"Cover"):h();let D=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);h()},O=()=>{if(x==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",x);I?n.engine.block.setContentFillMode(o,"Cover"):h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:D,onAfter:O,onCancel:()=>{D()},onApply:()=>{O(),t.cesdk.engine.editor.addUndoStep()}}}}async function r6(e,t){throw new Error("Function not implemented.")}async function n6(e,t){throw new Error("Function not implemented.")}async function i6(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${e8(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var o6=X8;function a6({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=l6(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw Le(u)&&l(),u}finally{t&&l()}}}function l6(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var s6=a6;async function u6(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:dn});let s=new Fa(n.engine,pl);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=ll([...o.output.middleware??[],t.debug?sl():void 0,Z8({}),...i.confirmation?[i.lockDuringConfirmation?J8({editMode:dn}):s6({editMode:dn}),i.confirmation&&H8({})]:[],t.dryRun?ul({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await o6(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(w.onApply(),a.forEach(p=>{s.clear(p)}));let b=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",b),{dispose:b,returnValue:v,applyCallbacks:w}}var Ba=u6;function c6(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new Fa(n.engine,pl),b=w.get(v[0]);if(b==null)return null;let p=()=>{v.forEach(h=>{w.clear(h)})};switch(b.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${b.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let h=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,k=u.applyCallbacks?.onAfter;y!=null&&k!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:h.value==="before",onClick:()=>{y(),h.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:h.value==="after",onClick:()=>{k(),h.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:h.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=g.every(m=>d.engine.block.getState(m).type==="Ready"),v=r.getQuickActionMenuOrder().map(m=>{if(m==="ly.img.separator")return m;let y=r.getQuickAction(m);if(y==null||!n.feature.isEnabled(ml({quickActionId:m,quickActionMenuId:r.id}),{engine:d.engine}))return null;let k=y.scopes;return k!=null&&k.length>0&&!g.every(C=>k.every(M=>d.engine.block.isAllowedByScope(C,M)))?null:y}).filter(m=>m!=null);if(v=q8(v),v.length===0||v.every(m=>m==="ly.img.separator"))return null;let{builder:w,experimental:b,state:p}=d,h=p(`${o}.toggleExpandedState`,void 0);b.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,trailingIcon:null,children:({close:m})=>{w.Section(`${o}.popover.section`,{children:()=>{if(h.value!=null){let y=h.value,k=r.getQuickAction(y);if(k!=null&&k.renderExpanded!=null){k.renderExpanded(d,{blockIds:g,closeMenu:m,toggleExpand:()=>{h.setValue(void 0)},handleGenerationError:C=>{It(C,{cesdk:n,provider:a},t)},generate:async(C,M)=>{try{let{returnValue:I,applyCallbacks:x,dispose:$}=await Ba({input:C,quickAction:k,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:M?.blockIds??g,confirmationComponentId:l},t);return u.unlock=$,u.applyCallbacks=x,I}catch(I){throw Le(I)||It(I,{cesdk:n,provider:a},t),I}}});return}}b.builder.Menu(`${o}.menu`,{children:()=>{v.forEach(y=>{y==="ly.img.separator"?w.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:m,handleGenerationError:k=>{It(k,{cesdk:n,provider:a},t)},toggleExpand:()=>{h.setValue(y.id)},generate:async(k,C)=>{try{let{returnValue:M,applyCallbacks:I,dispose:x}=await Ba({input:k,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=I,M}catch(M){throw Le(M)||It(M,{cesdk:n,provider:a},t),M}}})})}})}})}})}),{canvasMenuComponentId:c}}var d6=c6;async function g6(e,t,n){await e.initialize?.(t);let r=await m6(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:p6(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",G8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await f6(e,o,n)}}function p6(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function m6(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new r9(r,e)),r}return n}}async function f6(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await y6(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),b6(e,e.input.quickActions,t,n)),r}async function y6(e,t,n,r){switch(t.type){case"custom":return B8(e,t,n,r);case"schema":return U8(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function b6(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=gl(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(ml({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=d6({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var h6=g6,v6="@imgly/plugin-ai-text-generation-web",k6=e=>({async initialize({cesdk:t}){if(t==null)return;let n=await e.provider?.({cesdk:t});h6(n,{cesdk:t,engine:t.engine},{debug:e.debug??!1,dryRun:!1});let r=gl(t,"text");r.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...r.getQuickActionMenuOrder()]),t.ui.addIconSet(X5,t9),t.setTranslations({en:{"ly.img.ai.inference.apply":"Apply","ly.img.ai.inference.cancel":"Cancel","ly.img.ai.inference.improve":"Improve Writing","ly.img.ai.inference.improve.processing":"Improving Writing...","ly.img.ai.inference.fix":"Fix Spelling & Grammar","ly.img.ai.inference.fix.processing":"Fixing spelling & grammar...","ly.img.ai.inference.longer":"Make Longer","ly.img.ai.inference.longer.processing":"Making longer...","ly.img.ai.inference.shorter":"Make Shorter","ly.img.ai.inference.shorter.processing":"Making shorter...","ly.img.ai.inference.changeTone":"Change Tone","ly.img.ai.inference.changeTone.processing":"Changing tone...","ly.img.ai.inference.changeTone.type.professional":"Professional","ly.img.ai.inference.changeTone.type.casual":"Casual","ly.img.ai.inference.changeTone.type.friendly":"Friendly","ly.img.ai.inference.changeTone.type.serious":"Serious","ly.img.ai.inference.changeTone.type.humorous":"Humorous","ly.img.ai.inference.changeTone.type.optimistic":"Optimistic","ly.img.ai.inference.translate":"Translate","ly.img.ai.inference.translate.processing":"Translating...","ly.img.ai.inference.changeTextTo":"Change Text to...","ly.img.ai.inference.changeTextTo.processing":"Changing text..."}})}}),w6=e=>({name:v6,version:"0.1.9",...k6(e)}),fl=w6;var Sn=class{constructor(e,t,n){this.id=e,this.cesdk=t,this.assetSourceIds=n}async findAssets(e){try{let t=this.assetSourceIds.map(c=>this.cesdk.engine.asset.findAssets(c,{...e,perPage:9999,page:0})),n=await Promise.all(t),r=[];n.forEach(c=>{c?.assets&&(r=r.concat(c.assets))}),r.sort((c,d)=>{let g=c.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:a,perPage:o}=e,i=a*o,l=i+o,u=r.slice(i,l),s=l<r.length?a+1:void 0;return{assets:u,currentPage:a,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),n=new Set;return t.forEach(r=>{r.forEach(a=>n.add(a))}),Array.from(n)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}};var C6=typeof global=="object"&&global&&global.Object===Object&&global,Ll=C6,M6=typeof self=="object"&&self&&self.Object===Object&&self,I6=Ll||M6||Function("return this")(),G=I6,x6=G.Symbol,_e=x6,Tl=Object.prototype,A6=Tl.hasOwnProperty,S6=Tl.toString,Lt=_e?_e.toStringTag:void 0;function E6(e){var t=A6.call(e,Lt),n=e[Lt];try{e[Lt]=void 0;var r=!0}catch{}var a=S6.call(e);return r&&(t?e[Lt]=n:delete e[Lt]),a}var j6=E6,L6=Object.prototype,T6=L6.toString;function $6(e){return T6.call(e)}var N6=$6,D6="[object Null]",O6="[object Undefined]",yl=_e?_e.toStringTag:void 0;function _6(e){return e==null?e===void 0?O6:D6:yl&&yl in Object(e)?j6(e):N6(e)}var Dt=_6;function P6(e){return e!=null&&typeof e=="object"}var En=P6,cM=Array.isArray;function z6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $l=z6,U6="[object AsyncFunction]",V6="[object Function]",B6="[object GeneratorFunction]",F6="[object Proxy]";function G6(e){if(!$l(e))return!1;var t=Dt(e);return t==V6||t==B6||t==U6||t==F6}var R6=G6,q6=G["__core-js_shared__"],kn=q6,bl=function(){var e=/[^.]+$/.exec(kn&&kn.keys&&kn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Q6(e){return!!bl&&bl in e}var H6=Q6,Y6=Function.prototype,Z6=Y6.toString;function W6(e){if(e!=null){try{return Z6.call(e)}catch{}try{return e+""}catch{}}return""}var Z=W6,K6=/[\\^$.*+?()[\]{}|]/g,J6=/^\[object .+?Constructor\]$/,X6=Function.prototype,ev=Object.prototype,tv=X6.toString,rv=ev.hasOwnProperty,nv=RegExp("^"+tv.call(rv).replace(K6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function iv(e){if(!$l(e)||H6(e))return!1;var t=R6(e)?nv:J6;return t.test(Z(e))}var ov=iv;function av(e,t){return e?.[t]}var lv=av;function sv(e,t){var n=lv(e,t);return ov(n)?n:void 0}var Pe=sv,uv=Pe(G,"WeakMap"),Cn=uv;function cv(e,t){return e===t||e!==e&&t!==t}var dv=cv,gv=9007199254740991;function pv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gv}var mv=pv;var dM=Object.prototype;var fv="[object Arguments]";function yv(e){return En(e)&&Dt(e)==fv}var hl=yv,Nl=Object.prototype,bv=Nl.hasOwnProperty,hv=Nl.propertyIsEnumerable,gM=hl(function(){return arguments}())?hl:function(e){return En(e)&&bv.call(e,"callee")&&!hv.call(e,"callee")};var Dl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vl=Dl&&typeof module=="object"&&module&&!module.nodeType&&module,vv=vl&&vl.exports===Dl,kl=vv?G.Buffer:void 0,pM=kl?kl.isBuffer:void 0;var kv="[object Arguments]",wv="[object Array]",Cv="[object Boolean]",Mv="[object Date]",Iv="[object Error]",xv="[object Function]",Av="[object Map]",Sv="[object Number]",Ev="[object Object]",jv="[object RegExp]",Lv="[object Set]",Tv="[object String]",$v="[object WeakMap]",Nv="[object ArrayBuffer]",Dv="[object DataView]",Ov="[object Float32Array]",_v="[object Float64Array]",Pv="[object Int8Array]",zv="[object Int16Array]",Uv="[object Int32Array]",Vv="[object Uint8Array]",Bv="[object Uint8ClampedArray]",Fv="[object Uint16Array]",Gv="[object Uint32Array]",T={};T[Ov]=T[_v]=T[Pv]=T[zv]=T[Uv]=T[Vv]=T[Bv]=T[Fv]=T[Gv]=!0;T[kv]=T[wv]=T[Nv]=T[Cv]=T[Dv]=T[Mv]=T[Iv]=T[xv]=T[Av]=T[Sv]=T[Ev]=T[jv]=T[Lv]=T[Tv]=T[$v]=!1;function Rv(e){return En(e)&&mv(e.length)&&!!T[Dt(e)]}var qv=Rv;function Qv(e){return function(t){return e(t)}}var Hv=Qv,Ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tt=Ol&&typeof module=="object"&&module&&!module.nodeType&&module,Yv=Tt&&Tt.exports===Ol,wn=Yv&&Ll.process,Zv=function(){try{var e=Tt&&Tt.require&&Tt.require("util").types;return e||wn&&wn.binding&&wn.binding("util")}catch{}}(),wl=Zv,Cl=wl&&wl.isTypedArray,mM=Cl?Hv(Cl):qv;var Wv=Object.prototype,fM=Wv.hasOwnProperty;function Kv(e,t){return function(n){return e(t(n))}}var Jv=Kv,yM=Jv(Object.keys,Object);var Xv=Object.prototype,bM=Xv.hasOwnProperty;var ek=Pe(Object,"create"),$t=ek;function tk(){this.__data__=$t?$t(null):{},this.size=0}var rk=tk;function nk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ik=nk,ok="__lodash_hash_undefined__",ak=Object.prototype,lk=ak.hasOwnProperty;function sk(e){var t=this.__data__;if($t){var n=t[e];return n===ok?void 0:n}return lk.call(t,e)?t[e]:void 0}var uk=sk,ck=Object.prototype,dk=ck.hasOwnProperty;function gk(e){var t=this.__data__;return $t?t[e]!==void 0:dk.call(t,e)}var pk=gk,mk="__lodash_hash_undefined__";function fk(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=$t&&t===void 0?mk:t,this}var yk=fk;function ze(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ze.prototype.clear=rk;ze.prototype.delete=ik;ze.prototype.get=uk;ze.prototype.has=pk;ze.prototype.set=yk;var Ml=ze;function bk(){this.__data__=[],this.size=0}var hk=bk;function vk(e,t){for(var n=e.length;n--;)if(dv(e[n][0],t))return n;return-1}var or=vk,kk=Array.prototype,wk=kk.splice;function Ck(e){var t=this.__data__,n=or(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():wk.call(t,n,1),--this.size,!0}var Mk=Ck;function Ik(e){var t=this.__data__,n=or(t,e);return n<0?void 0:t[n][1]}var xk=Ik;function Ak(e){return or(this.__data__,e)>-1}var Sk=Ak;function Ek(e,t){var n=this.__data__,r=or(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var jk=Ek;function Ue(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ue.prototype.clear=hk;Ue.prototype.delete=Mk;Ue.prototype.get=xk;Ue.prototype.has=Sk;Ue.prototype.set=jk;var ar=Ue,Lk=Pe(G,"Map"),Nt=Lk;function Tk(){this.size=0,this.__data__={hash:new Ml,map:new(Nt||ar),string:new Ml}}var $k=Tk;function Nk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Dk=Nk;function Ok(e,t){var n=e.__data__;return Dk(t)?n[typeof t=="string"?"string":"hash"]:n.map}var lr=Ok;function _k(e){var t=lr(this,e).delete(e);return this.size-=t?1:0,t}var Pk=_k;function zk(e){return lr(this,e).get(e)}var Uk=zk;function Vk(e){return lr(this,e).has(e)}var Bk=Vk;function Fk(e,t){var n=lr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Gk=Fk;function Ve(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ve.prototype.clear=$k;Ve.prototype.delete=Pk;Ve.prototype.get=Uk;Ve.prototype.has=Bk;Ve.prototype.set=Gk;var _l=Ve;function Rk(){this.__data__=new ar,this.size=0}var qk=Rk;function Qk(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Hk=Qk;function Yk(e){return this.__data__.get(e)}var Zk=Yk;function Wk(e){return this.__data__.has(e)}var Kk=Wk,Jk=200;function Xk(e,t){var n=this.__data__;if(n instanceof ar){var r=n.__data__;if(!Nt||r.length<Jk-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new _l(r)}return n.set(e,t),this.size=n.size,this}var ew=Xk;function Ot(e){var t=this.__data__=new ar(e);this.size=t.size}Ot.prototype.clear=qk;Ot.prototype.delete=Hk;Ot.prototype.get=Zk;Ot.prototype.has=Kk;Ot.prototype.set=ew;var tw=Object.prototype,hM=tw.propertyIsEnumerable;var rw=Pe(G,"DataView"),Mn=rw,nw=Pe(G,"Promise"),In=nw,iw=Pe(G,"Set"),xn=iw,Il="[object Map]",ow="[object Object]",xl="[object Promise]",Al="[object Set]",Sl="[object WeakMap]",El="[object DataView]",aw=Z(Mn),lw=Z(Nt),sw=Z(In),uw=Z(xn),cw=Z(Cn),Oe=Dt;(Mn&&Oe(new Mn(new ArrayBuffer(1)))!=El||Nt&&Oe(new Nt)!=Il||In&&Oe(In.resolve())!=xl||xn&&Oe(new xn)!=Al||Cn&&Oe(new Cn)!=Sl)&&(Oe=function(e){var t=Dt(e),n=t==ow?e.constructor:void 0,r=n?Z(n):"";if(r)switch(r){case aw:return El;case lw:return Il;case sw:return xl;case uw:return Al;case cw:return Sl}return t});var vM=G.Uint8Array;var dw="__lodash_hash_undefined__";function gw(e){return this.__data__.set(e,dw),this}var pw=gw;function mw(e){return this.__data__.has(e)}var fw=mw;function An(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new _l;++t<n;)this.add(e[t])}An.prototype.add=An.prototype.push=pw;An.prototype.has=fw;var jl=_e?_e.prototype:void 0,kM=jl?jl.valueOf:void 0;var yw=Object.prototype,wM=yw.hasOwnProperty;var bw=Object.prototype,CM=bw.hasOwnProperty;var MM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),IM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),xM=new RegExp(/[A-Fa-f0-9]{2}/,"g");var jn=class{constructor(t,n,r=[]){this.id=t,this.assets=[...r],this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=n}async findAssets(t){let{page:n,perPage:r,locale:a="en",sortActiveFirst:o,query:i,tags:l,groups:u,excludeGroups:s,sortingOrder:c,sortKey:d}=t,g=[...this.assets];if(u&&u.length>0&&(g=g.filter(m=>m.groups&&u.some(y=>m.groups?.includes(y)))),s&&s.length>0&&(g=g.filter(m=>!m.groups||!s.some(y=>m.groups?.includes(y)))),i){let m=i.toLowerCase();g=g.filter(y=>{let k=y.label?.[a]?.toLowerCase(),C=y.tags?.[a]||[];return k&&k.includes(m)||C.some(M=>M.toLowerCase().includes(m))})}if(l&&l.length>0){let m=Array.isArray(l)?l:[l];g=g.filter(y=>{let k=y.tags?.[a]||[];return m.some(C=>k.includes(C))})}o&&g.sort((m,y)=>{let k=this.activeAssetIds.has(m.id),C=this.activeAssetIds.has(y.id);return k&&!C?-1:!k&&C?1:0}),d&&d!=="id"?g.sort((m,y)=>{let k=m.meta?.[d],C=y.meta?.[d];return k===void 0?1:C===void 0?-1:typeof k=="string"&&typeof C=="string"?c==="Descending"?C.localeCompare(k):k.localeCompare(C):typeof k=="number"&&typeof C=="number"?c==="Descending"?C-k:k-C:0}):d==="id"&&g.sort((m,y)=>c==="Descending"?y.id.localeCompare(m.id):m.id.localeCompare(y.id));let f=g.length,v=n*r,w=v+r,p=g.slice(v,w).map(m=>({id:m.id,groups:m.groups,meta:m.meta,payload:m.payload,locale:a,label:m.label?.[a],tags:m.tags?.[a],active:this.activeAssetIds.has(m.id)})),h=w<f?n+1:void 0;return{assets:p,currentPage:n,nextPage:h,total:f}}updateLabel(t,n,r){this.assets.forEach(a=>{a.id===t&&(a.label=a.label||{},a.label[r]=n(a.label[r]))})}getLabel(t,n){let r=this.assets.find(a=>a.id===t);if(r!=null)return r.label?.[n]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,n){if(n){let r=this.getLabel(t,"en")??"",a=hw(o=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${o} ${r}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>r,"en"),a()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){let n=this.assets.findIndex(r=>r.id===t.id);n>=0?this.assets[n]=t:this.assets.push(t)}removeAsset(t){let n=this.assets.findIndex(r=>r.id===t);n!==-1&&(this.assets.splice(n,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.assets.forEach(n=>{n.groups&&n.groups.forEach(r=>t.add(r))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Pl(e,t,n=[]){return new jn(e,t,n)}function hw(e,t=200){let n=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],r=0,a=setInterval(()=>{let o=n[r];r=(r+1)%n.length,e(o)||clearInterval(a)},t);return()=>{clearInterval(a)}}var Ln="ly.img.ai.apps";var N=Ut("apps"),sr=512,ur=128,zl=e=>({async initialize({cesdk:t}){if(t==null)return;let n=t.engine.scene.getMode()==="Video",{providers:r,baseURL:a="https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"}=e,{activeAssetSource:o}=await vw(t,{isVideoMode:n,baseURL:a,debug:e.debug}),i=await W(t,o,r.text2text),l=await W(t,o,r.text2image),u=await W(t,o,r.image2image),s,c,d,g;n&&(s=await W(t,o,r.text2video),c=await W(t,o,r.image2video),d=await W(t,o,r.text2speech),g=await W(t,o,r.text2sound),t.addPlugin($o({text2video:s,image2video:c,debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Ia({text2speech:d,text2sound:g,debug:e.debug,dryRun:e.dryRun}))),i!=null&&t.addPlugin(fl({provider:i,debug:e.debug})),t.addPlugin(Bi({text2image:l,image2image:u,debug:e.debug,dryRun:e.dryRun})),ww(t,{text2text:i,text2image:l,image2image:u,text2video:s,image2video:c,text2speech:d,text2sound:g},n),Cw(t)}});async function W(e,t,n){if(n==null)return;let r=await n({cesdk:e});if(t!=null){let a=async(o,i,l)=>{let u=`${r.kind}-generation`;r.kind==="audio"&&(r.id.includes("sound")?u="audio-generation/sound":r.id.includes("speech")&&(u="audio-generation/speech")),e.ui.experimental.setGlobalStateValue(`${N}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged(N);try{return await l(o,i)}finally{e.engine.asset.assetSourceContentsChanged(N),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${N}.isGenerating`,!1)}};r.output.middleware=[...r.output.middleware??[],a]}return()=>Promise.resolve(r)}async function vw(e,t){let{isVideoMode:n,debug:r,baseURL:a}=t;kw(e);let o;n&&(o=Pl(N,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:sr,height:ur}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:sr,height:ur}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:sr,height:ur}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:sr,height:ur}}]),e.engine.asset.addSource(o),e.ui.registerPanel(N,({builder:l})=>{l.Library(N,{entries:[N],onSelect:async u=>{e.ui.openPanel(Ut(u.id))}})}),e.ui.addAssetLibraryEntry({id:N,sourceIds:[N],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:l})=>l,cardLabelPosition:()=>"inside"}));let i=`${N}.dock`;return n?(r&&console.log("Registering AI App Dock Button",i),e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=e.ui.isPanelOpen(N),c=u.global(`${N}.isGenerating`,!1);l.Button(`${N}.dock.button`,{label:"AI",isSelected:s,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(d=>{d.startsWith("ly.img.ai/")&&e.ui.closePanel(d),!s&&d==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(d)}),s?e.ui.closePanel(N):e.ui.openPanel(N)}})})):e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=Ut("image-generation"),c=u.global(`${N}.isGenerating`,!1),d=e.ui.isPanelOpen(s);l.Button(`${N}.dock.button`,{label:"AI",isSelected:d,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{d?e.ui.closePanel(s):e.ui.openPanel(s)}})}),{activeAssetSource:o}}function kw(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:n,payload:r})=>{let a="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!r||r.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${a}`);return}let{id:o,key:i,label:l,icon:u,entries:s}=r;if(s==null||!Array.isArray(s)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${a}`);return}if(s.some(b=>typeof b!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${a}`);return}l!=null&&typeof l!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let c=n.scene.getMode(),d=s.filter(b=>{let p=e.ui.getAssetLibraryEntry(b);if(p==null)return!1;let h=p.sceneMode;return typeof h=="string"?p.sceneMode===c||p.sceneMode==="All":typeof h=="function"?p.sourceIds.some(m=>{let y=h(e.version.startsWith("1.51.")?m:{sourceId:m});return y===c||y==="All"}):!0});if(d.length===0)return;let g=l;g==null&&(g=`libraries.${o}.label`);let f=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),v=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),w=u;w==null&&d.length===1&&(w=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:w,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(b=>{(b===N||b.startsWith("ly.img.ai/"))&&e.ui.closePanel(b)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function ww(e,t,n){let r=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new Sn("ly.img.ai/image-generation.history",e,[r!=null?`${r.id}.history`:void 0,a!=null?`${a?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(o);let i=e.ui.getAssetLibraryEntry("ly.img.image");if(i!=null&&e.ui.updateAssetLibraryEntry("ly.img.image",{sourceIds:[...i.sourceIds,"ly.img.ai/image-generation.history"]}),!n)return;let l=await t.text2video?.({cesdk:e}),u=await t.image2video?.({cesdk:e}),s=new Sn("ly.img.ai/video-generation.history",e,[l!=null?`${l.id}.history`:void 0,u!=null?`${u?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(s);let c=e.ui.getAssetLibraryEntry("ly.img.video");c!=null&&e.ui.updateAssetLibraryEntry("ly.img.video",{sourceIds:[...c.sourceIds,"ly.img.ai/video-generation.history"]});let d=await t.text2speech?.({cesdk:e}),g=await t.text2sound?.({cesdk:e}),f=e.ui.getAssetLibraryEntry("ly.img.audio"),v=[d!=null?`${d.id}.history`:void 0,g!=null?`${g.id}.history`:void 0].filter(Boolean);f!=null&&e.ui.updateAssetLibraryEntry("ly.img.audio",{sourceIds:[...f.sourceIds,...v]})}function Cw(e){e.i18n.setTranslations({en:{"panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai/apps":"AI","panel.ly.img.ai/fal-ai/gemini-flash-edit.imageSelection":"Select Image To Change","panel.gpt-image-1.imageSelection":"Select Image To Change","panel.ly.img.ai/elevenlabs":"AI Voice","panel.ly.img.ai/demo.video":"Generate Video","panel.ly.img.ai/demo.image":"Generate Image","panel.fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.fal-ai/gemini-flash-edit.imageSelection":"Select Image To Generate","libraries.ly.img.ai/fal-ai/recraft-v3.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/gemini-flash-edit.history.label":"Generated From Image","libraries.ly.img.ai/fal-ai/pixverse/v3.5/text-to-video.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.history.label":"Generated From Image","libraries.elevenlabs/monolingual/v1.history.label":"AI Voice","libraries.elevenlabs/sound-generation.history.label":"Generated Sound","libraries.ly.img.ai/image-generation.history.label":"AI Generated Images","libraries.ly.img.ai/video-generation.history.label":"AI Generated Videos"}})}var Mw=e=>({name:Ln,version:"0.1.9",...zl(e)}),RM=Mw;export{RM as default};
|
|
401
401
|
/*! Bundled license information:
|
|
402
402
|
|
|
403
403
|
@imgly/plugin-ai-generation-web/dist/index.mjs:
|