@imgly/plugin-ai-apps-web 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +27 -27
- package/dist/index.mjs.map +4 -4
- package/dist/types.d.ts +8 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="object"&&global&&global.Object===Object&&global,qn=Vl,Bl=typeof self=="object"&&self&&self.Object===Object&&self,Gl=qn||Bl||Function("return this")(),P=Gl,Fl=P.Symbol,J=Fl,Qn=Object.prototype,Rl=Qn.hasOwnProperty,ql=Qn.toString,Be=J?J.toStringTag:void 0;function Ql(e){var t=Rl.call(e,Be),n=e[Be];try{e[Be]=void 0;var r=!0}catch{}var a=ql.call(e);return r&&(t?e[Be]=n:delete e[Be]),a}var Hl=Ql,Yl=Object.prototype,Zl=Yl.toString;function Wl(e){return Zl.call(e)}var Kl=Wl,Jl="[object Null]",Xl="[object Undefined]",Tn=J?J.toStringTag:void 0;function es(e){return e==null?e===void 0?Xl:Jl:Tn&&Tn in Object(e)?Hl(e):Kl(e)}var qe=es;function ts(e){return e!=null&&typeof e=="object"}var hr=ts,wk=Array.isArray;function rs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Hn=rs,ns="[object AsyncFunction]",is="[object Function]",os="[object GeneratorFunction]",as="[object Proxy]";function ls(e){if(!Hn(e))return!1;var t=qe(e);return t==is||t==os||t==ns||t==as}var ss=ls,us=P["__core-js_shared__"],cr=us,Nn=function(){var e=/[^.]+$/.exec(cr&&cr.keys&&cr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cs(e){return!!Nn&&Nn in e}var ds=cs,gs=Function.prototype,ps=gs.toString;function fs(e){if(e!=null){try{return ps.call(e)}catch{}try{return e+""}catch{}}return""}var R=fs,ms=/[\\^$.*+?()[\]{}|]/g,ys=/^\[object .+?Constructor\]$/,bs=Function.prototype,hs=Object.prototype,vs=bs.toString,ws=hs.hasOwnProperty,ks=RegExp("^"+vs.call(ws).replace(ms,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Cs(e){if(!Hn(e)||ds(e))return!1;var t=ss(e)?ks:ys;return t.test(R(e))}var Ms=Cs;function xs(e,t){return e?.[t]}var Is=xs;function As(e,t){var n=Is(e,t);return Ms(n)?n:void 0}var X=As,Es=X(P,"WeakMap"),pr=Es;function Ss(e,t){return e===t||e!==e&&t!==t}var js=Ss,Ls=9007199254740991;function Ts(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ls}var Ns=Ts,kk=Object.prototype,$s="[object Arguments]";function Os(e){return hr(e)&&qe(e)==$s}var $n=Os,Yn=Object.prototype,Ds=Yn.hasOwnProperty,_s=Yn.propertyIsEnumerable,Ck=$n(function(){return arguments}())?$n:function(e){return hr(e)&&Ds.call(e,"callee")&&!_s.call(e,"callee")},Zn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,On=Zn&&typeof module=="object"&&module&&!module.nodeType&&module,zs=On&&On.exports===Zn,Dn=zs?P.Buffer:void 0,Mk=Dn?Dn.isBuffer:void 0,Ps="[object Arguments]",Us="[object Array]",Vs="[object Boolean]",Bs="[object Date]",Gs="[object Error]",Fs="[object Function]",Rs="[object Map]",qs="[object Number]",Qs="[object Object]",Hs="[object RegExp]",Ys="[object Set]",Zs="[object String]",Ws="[object WeakMap]",Ks="[object ArrayBuffer]",Js="[object DataView]",Xs="[object Float32Array]",eu="[object Float64Array]",tu="[object Int8Array]",ru="[object Int16Array]",nu="[object Int32Array]",iu="[object Uint8Array]",ou="[object Uint8ClampedArray]",au="[object Uint16Array]",lu="[object Uint32Array]",A={};A[Xs]=A[eu]=A[tu]=A[ru]=A[nu]=A[iu]=A[ou]=A[au]=A[lu]=!0;A[Ps]=A[Us]=A[Ks]=A[Vs]=A[Js]=A[Bs]=A[Gs]=A[Fs]=A[Rs]=A[qs]=A[Qs]=A[Hs]=A[Ys]=A[Zs]=A[Ws]=!1;function su(e){return hr(e)&&Ns(e.length)&&!!A[qe(e)]}var uu=su;function cu(e){return function(t){return e(t)}}var du=cu,Wn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ge=Wn&&typeof module=="object"&&module&&!module.nodeType&&module,gu=Ge&&Ge.exports===Wn,dr=gu&&qn.process,pu=function(){try{var e=Ge&&Ge.require&&Ge.require("util").types;return e||dr&&dr.binding&&dr.binding("util")}catch{}}(),_n=pu,zn=_n&&_n.isTypedArray,xk=zn?du(zn):uu,fu=Object.prototype,Ik=fu.hasOwnProperty;function mu(e,t){return function(n){return e(t(n))}}var yu=mu,Ak=yu(Object.keys,Object),bu=Object.prototype,Ek=bu.hasOwnProperty,hu=X(Object,"create"),Fe=hu;function vu(){this.__data__=Fe?Fe(null):{},this.size=0}var wu=vu;function ku(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Cu=ku,Mu="__lodash_hash_undefined__",xu=Object.prototype,Iu=xu.hasOwnProperty;function Au(e){var t=this.__data__;if(Fe){var n=t[e];return n===Mu?void 0:n}return Iu.call(t,e)?t[e]:void 0}var Eu=Au,Su=Object.prototype,ju=Su.hasOwnProperty;function Lu(e){var t=this.__data__;return Fe?t[e]!==void 0:ju.call(t,e)}var Tu=Lu,Nu="__lodash_hash_undefined__";function $u(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Fe&&t===void 0?Nu:t,this}var Ou=$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=wu;ee.prototype.delete=Cu;ee.prototype.get=Eu;ee.prototype.has=Tu;ee.prototype.set=Ou;var Pn=ee;function Du(){this.__data__=[],this.size=0}var _u=Du;function zu(e,t){for(var n=e.length;n--;)if(js(e[n][0],t))return n;return-1}var zt=zu,Pu=Array.prototype,Uu=Pu.splice;function Vu(e){var t=this.__data__,n=zt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Uu.call(t,n,1),--this.size,!0}var Bu=Vu;function Gu(e){var t=this.__data__,n=zt(t,e);return n<0?void 0:t[n][1]}var Fu=Gu;function Ru(e){return zt(this.__data__,e)>-1}var qu=Ru;function Qu(e,t){var n=this.__data__,r=zt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Hu=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=_u;te.prototype.delete=Bu;te.prototype.get=Fu;te.prototype.has=qu;te.prototype.set=Hu;var Pt=te,Yu=X(P,"Map"),Re=Yu;function Zu(){this.size=0,this.__data__={hash:new Pn,map:new(Re||Pt),string:new Pn}}var Wu=Zu;function Ku(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ju=Ku;function Xu(e,t){var n=e.__data__;return Ju(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Ut=Xu;function ec(e){var t=Ut(this,e).delete(e);return this.size-=t?1:0,t}var tc=ec;function rc(e){return Ut(this,e).get(e)}var nc=rc;function ic(e){return Ut(this,e).has(e)}var oc=ic;function ac(e,t){var n=Ut(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var lc=ac;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=Wu;re.prototype.delete=tc;re.prototype.get=nc;re.prototype.has=oc;re.prototype.set=lc;var Kn=re;function sc(){this.__data__=new Pt,this.size=0}var uc=sc;function cc(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var dc=cc;function gc(e){return this.__data__.get(e)}var pc=gc;function fc(e){return this.__data__.has(e)}var mc=fc,yc=200;function bc(e,t){var n=this.__data__;if(n instanceof Pt){var r=n.__data__;if(!Re||r.length<yc-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 hc=bc;function Qe(e){var t=this.__data__=new Pt(e);this.size=t.size}Qe.prototype.clear=uc;Qe.prototype.delete=dc;Qe.prototype.get=pc;Qe.prototype.has=mc;Qe.prototype.set=hc;var vc=Object.prototype,Sk=vc.propertyIsEnumerable,wc=X(P,"DataView"),fr=wc,kc=X(P,"Promise"),mr=kc,Cc=X(P,"Set"),yr=Cc,Un="[object Map]",Mc="[object Object]",Vn="[object Promise]",Bn="[object Set]",Gn="[object WeakMap]",Fn="[object DataView]",xc=R(fr),Ic=R(Re),Ac=R(mr),Ec=R(yr),Sc=R(pr),K=qe;(fr&&K(new fr(new ArrayBuffer(1)))!=Fn||Re&&K(new Re)!=Un||mr&&K(mr.resolve())!=Vn||yr&&K(new yr)!=Bn||pr&&K(new pr)!=Gn)&&(K=function(e){var t=qe(e),n=t==Mc?e.constructor:void 0,r=n?R(n):"";if(r)switch(r){case xc:return Fn;case Ic:return Un;case Ac:return Vn;case Ec:return Bn;case Sc:return Gn}return t});var jk=P.Uint8Array,jc="__lodash_hash_undefined__";function Lc(e){return this.__data__.set(e,jc),this}var Tc=Lc;function Nc(e){return this.__data__.has(e)}var $c=Nc;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=Tc;br.prototype.has=$c;var Rn=J?J.prototype:void 0,Lk=Rn?Rn.valueOf:void 0,Oc=Object.prototype,Tk=Oc.hasOwnProperty,Dc=Object.prototype,Nk=Dc.hasOwnProperty,$k=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ok=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Dk=new RegExp(/[A-Fa-f0-9]{2}/,"g");var gr="@imgly/plugin-ai-generation",_k=`
|
|
2
2
|
<svg>
|
|
3
3
|
<symbol
|
|
4
4
|
fill="none"
|
|
@@ -16,7 +16,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
|
|
|
59
59
|
|
|
60
60
|
</symbol>
|
|
61
61
|
</svg>
|
|
62
|
-
`;function ui(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 He(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=ui(e,t.$ref),a={...He(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=He(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>He(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=He(e,t[a],n));return r}return t}function Cc(e){return He(e,{...e})}function kc(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function Mc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return xc(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function xc(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var ci=Mc,Ic="ly.img.ai",yr="ly.img.ai/temp";async function Ac(e,t){return e.engine.asset.findAllSources().includes(yr)||e.engine.asset.addLocalSource(yr),e.engine.asset.apply(yr,t)}function di(e){return`${Ic}/${e}`}function jc(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 Ec(){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 Sc(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 gi(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 jr(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 re(e){return e instanceof Error&&e.name==="AbortError"}function pi(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?Lc(e,t,n,r,a,o):mi(e,t,n,r,a,o);case"boolean":return yi(e,t,n,r,a,o);case"number":case"integer":return bi(e,t,n,r,a,o);case"object":return fi(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Nc(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function fi(e,t,n,r,a,o){let i=ci(t.schema??{},r).reduce((s,u)=>{let l=pi(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function mi(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=Tc(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Lc(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??gi(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function yi(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function bi(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,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(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Nc(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??gi(M),icon:k[M]})}):(f[m]=()=>mi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>yi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>bi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>fi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function Tc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $c=pi,Dc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",hi=Dc;function Oc(e,t,n){switch(t){case"image":return _c(e,n[t]);case"video":return zc(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _c(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:hi,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function zc(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:hi,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Pc=Oc;function Uc(e,t){switch(e){case"image":return Vc(t[e]);case"video":return Bc(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function Vc(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
|
|
63
|
-
`,"+")}`}}function Bc(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var Gc=Uc;async function Fc(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 Rc(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 qc(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 Hc(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Rc(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 qc(e,t,n){let r=t.width,a=t.height,o=await Sc(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 Hc(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 qn=Fc;function vi(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function Qc(){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 wi=Qc;async function Yc(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Ec(),v;if(u){if(v=Pc(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Ac(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(zt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=vi([...r.output.middleware??[],o.debug?wi():void 0]),h;if(o.dryRun?h=await Zc(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,jr(h))throw new Error("Streaming generation is not supported yet from a panel");if(zt(s,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&s.engine.block.isValid(c)&&(p=await qn(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),zt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await qn(f,e,g,h),zt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(re(d)?s.engine.block.destroy(c):s.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function zt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function Zc(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=Gc(e,t);return await Wc(3e3),n}async function Wc(e){return new Promise(t=>{setTimeout(t,e)})}var Kc=Yc;function Jc(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),Xc(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:jc(e)}))}function Xc(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 Qe=Jc;function Pt(e){return`${e}.generating`}function e1(e){return`${e}.abort`}function t1(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(e1(c),()=>{}),f=s.global(Pt(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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 y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await Kc(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;r1(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(re(C))return;Qe(C,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function r1(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 Ci=t1;async function n1(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=Cc(t.document),s=ui(i,t.inputReference);if(!kc(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=ci(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=$c(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Ci(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(di(o),c),c}var i1=n1;async function o1(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Pt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Ci(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(di(o),s),s}var a1=o1,l1=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,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;te(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=()=>{te(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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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 te(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),te(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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.active?1:0)),o}};function te(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]=te(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]=te(a,t,o)}return e}var s1=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)}},ki=s1,u1=typeof global=="object"&&global&&global.Object===Object&&global,Mi=u1,c1=typeof self=="object"&&self&&self.Object===Object&&self,d1=Mi||c1||Function("return this")(),O=d1,g1=O.Symbol,ne=g1,xi=Object.prototype,p1=xi.hasOwnProperty,f1=xi.toString,Re=ne?ne.toStringTag:void 0;function m1(e){var t=p1.call(e,Re),n=e[Re];try{e[Re]=void 0;var r=!0}catch{}var a=f1.call(e);return r&&(t?e[Re]=n:delete e[Re]),a}var y1=m1,b1=Object.prototype,h1=b1.toString;function v1(e){return h1.call(e)}var w1=v1,C1="[object Null]",k1="[object Undefined]",Hn=ne?ne.toStringTag:void 0;function M1(e){return e==null?e===void 0?k1:C1:Hn&&Hn in Object(e)?y1(e):w1(e)}var Ke=M1;function x1(e){return e!=null&&typeof e=="object"}var Er=x1,vC=Array.isArray;function I1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ii=I1,A1="[object AsyncFunction]",j1="[object Function]",E1="[object GeneratorFunction]",S1="[object Proxy]";function L1(e){if(!Ii(e))return!1;var t=Ke(e);return t==j1||t==E1||t==A1||t==S1}var N1=L1,T1=O["__core-js_shared__"],br=T1,Qn=function(){var e=/[^.]+$/.exec(br&&br.keys&&br.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $1(e){return!!Qn&&Qn in e}var D1=$1,O1=Function.prototype,_1=O1.toString;function z1(e){if(e!=null){try{return _1.call(e)}catch{}try{return e+""}catch{}}return""}var G=z1,P1=/[\\^$.*+?()[\]{}|]/g,U1=/^\[object .+?Constructor\]$/,V1=Function.prototype,B1=Object.prototype,G1=V1.toString,F1=B1.hasOwnProperty,R1=RegExp("^"+G1.call(F1).replace(P1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function q1(e){if(!Ii(e)||D1(e))return!1;var t=N1(e)?R1:U1;return t.test(G(e))}var H1=q1;function Q1(e,t){return e?.[t]}var Y1=Q1;function Z1(e,t){var n=Y1(e,t);return H1(n)?n:void 0}var ie=Z1,W1=ie(O,"WeakMap"),kr=W1;function K1(e,t){return e===t||e!==e&&t!==t}var J1=K1,X1=9007199254740991;function ed(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=X1}var td=ed,wC=Object.prototype,rd="[object Arguments]";function nd(e){return Er(e)&&Ke(e)==rd}var Yn=nd,Ai=Object.prototype,id=Ai.hasOwnProperty,od=Ai.propertyIsEnumerable,CC=Yn(function(){return arguments}())?Yn:function(e){return Er(e)&&id.call(e,"callee")&&!od.call(e,"callee")},ji=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zn=ji&&typeof module=="object"&&module&&!module.nodeType&&module,ad=Zn&&Zn.exports===ji,Wn=ad?O.Buffer:void 0,kC=Wn?Wn.isBuffer:void 0,ld="[object Arguments]",sd="[object Array]",ud="[object Boolean]",cd="[object Date]",dd="[object Error]",gd="[object Function]",pd="[object Map]",fd="[object Number]",md="[object Object]",yd="[object RegExp]",bd="[object Set]",hd="[object String]",vd="[object WeakMap]",wd="[object ArrayBuffer]",Cd="[object DataView]",kd="[object Float32Array]",Md="[object Float64Array]",xd="[object Int8Array]",Id="[object Int16Array]",Ad="[object Int32Array]",jd="[object Uint8Array]",Ed="[object Uint8ClampedArray]",Sd="[object Uint16Array]",Ld="[object Uint32Array]",I={};I[kd]=I[Md]=I[xd]=I[Id]=I[Ad]=I[jd]=I[Ed]=I[Sd]=I[Ld]=!0;I[ld]=I[sd]=I[wd]=I[ud]=I[Cd]=I[cd]=I[dd]=I[gd]=I[pd]=I[fd]=I[md]=I[yd]=I[bd]=I[hd]=I[vd]=!1;function Nd(e){return Er(e)&&td(e.length)&&!!I[Ke(e)]}var Td=Nd;function $d(e){return function(t){return e(t)}}var Dd=$d,Ei=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ye=Ei&&typeof module=="object"&&module&&!module.nodeType&&module,Od=Ye&&Ye.exports===Ei,hr=Od&&Mi.process,_d=function(){try{var e=Ye&&Ye.require&&Ye.require("util").types;return e||hr&&hr.binding&&hr.binding("util")}catch{}}(),Kn=_d,Jn=Kn&&Kn.isTypedArray,MC=Jn?Dd(Jn):Td,zd=Object.prototype,xC=zd.hasOwnProperty;function Pd(e,t){return function(n){return e(t(n))}}var Ud=Pd,IC=Ud(Object.keys,Object),Vd=Object.prototype,AC=Vd.hasOwnProperty,Bd=ie(Object,"create"),Ze=Bd;function Gd(){this.__data__=Ze?Ze(null):{},this.size=0}var Fd=Gd;function Rd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qd=Rd,Hd="__lodash_hash_undefined__",Qd=Object.prototype,Yd=Qd.hasOwnProperty;function Zd(e){var t=this.__data__;if(Ze){var n=t[e];return n===Hd?void 0:n}return Yd.call(t,e)?t[e]:void 0}var Wd=Zd,Kd=Object.prototype,Jd=Kd.hasOwnProperty;function Xd(e){var t=this.__data__;return Ze?t[e]!==void 0:Jd.call(t,e)}var eg=Xd,tg="__lodash_hash_undefined__";function rg(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&t===void 0?tg:t,this}var ng=rg;function oe(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])}}oe.prototype.clear=Fd;oe.prototype.delete=qd;oe.prototype.get=Wd;oe.prototype.has=eg;oe.prototype.set=ng;var Xn=oe;function ig(){this.__data__=[],this.size=0}var og=ig;function ag(e,t){for(var n=e.length;n--;)if(J1(e[n][0],t))return n;return-1}var Ut=ag,lg=Array.prototype,sg=lg.splice;function ug(e){var t=this.__data__,n=Ut(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():sg.call(t,n,1),--this.size,!0}var cg=ug;function dg(e){var t=this.__data__,n=Ut(t,e);return n<0?void 0:t[n][1]}var gg=dg;function pg(e){return Ut(this.__data__,e)>-1}var fg=pg;function mg(e,t){var n=this.__data__,r=Ut(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var yg=mg;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=og;ae.prototype.delete=cg;ae.prototype.get=gg;ae.prototype.has=fg;ae.prototype.set=yg;var Vt=ae,bg=ie(O,"Map"),We=bg;function hg(){this.size=0,this.__data__={hash:new Xn,map:new(We||Vt),string:new Xn}}var vg=hg;function wg(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Cg=wg;function kg(e,t){var n=e.__data__;return Cg(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Bt=kg;function Mg(e){var t=Bt(this,e).delete(e);return this.size-=t?1:0,t}var xg=Mg;function Ig(e){return Bt(this,e).get(e)}var Ag=Ig;function jg(e){return Bt(this,e).has(e)}var Eg=jg;function Sg(e,t){var n=Bt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Lg=Sg;function le(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])}}le.prototype.clear=vg;le.prototype.delete=xg;le.prototype.get=Ag;le.prototype.has=Eg;le.prototype.set=Lg;var Si=le;function Ng(){this.__data__=new Vt,this.size=0}var Tg=Ng;function $g(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Dg=$g;function Og(e){return this.__data__.get(e)}var _g=Og;function zg(e){return this.__data__.has(e)}var Pg=zg,Ug=200;function Vg(e,t){var n=this.__data__;if(n instanceof Vt){var r=n.__data__;if(!We||r.length<Ug-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Si(r)}return n.set(e,t),this.size=n.size,this}var Bg=Vg;function Je(e){var t=this.__data__=new Vt(e);this.size=t.size}Je.prototype.clear=Tg;Je.prototype.delete=Dg;Je.prototype.get=_g;Je.prototype.has=Pg;Je.prototype.set=Bg;var Gg=Object.prototype,jC=Gg.propertyIsEnumerable,Fg=ie(O,"DataView"),Mr=Fg,Rg=ie(O,"Promise"),xr=Rg,qg=ie(O,"Set"),Ir=qg,ei="[object Map]",Hg="[object Object]",ti="[object Promise]",ri="[object Set]",ni="[object WeakMap]",ii="[object DataView]",Qg=G(Mr),Yg=G(We),Zg=G(xr),Wg=G(Ir),Kg=G(kr),ee=Ke;(Mr&&ee(new Mr(new ArrayBuffer(1)))!=ii||We&&ee(new We)!=ei||xr&&ee(xr.resolve())!=ti||Ir&&ee(new Ir)!=ri||kr&&ee(new kr)!=ni)&&(ee=function(e){var t=Ke(e),n=t==Hg?e.constructor:void 0,r=n?G(n):"";if(r)switch(r){case Qg:return ii;case Yg:return ei;case Zg:return ti;case Wg:return ri;case Kg:return ni}return t});var EC=O.Uint8Array,Jg="__lodash_hash_undefined__";function Xg(e){return this.__data__.set(e,Jg),this}var ep=Xg;function tp(e){return this.__data__.has(e)}var rp=tp;function Ar(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Si;++t<n;)this.add(e[t])}Ar.prototype.add=Ar.prototype.push=ep;Ar.prototype.has=rp;var oi=ne?ne.prototype:void 0,SC=oi?oi.valueOf:void 0,np=Object.prototype,LC=np.hasOwnProperty,ip=Object.prototype,NC=ip.hasOwnProperty,TC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$C=new RegExp(/[A-Fa-f0-9]{1}/,"g"),DC=new RegExp(/[A-Fa-f0-9]{2}/,"g"),vr="@imgly/plugin-ai-generation",op=`
|
|
62
|
+
`;function yi(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=yi(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 _c(e){return Ze(e,{...e})}function zc(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 Pc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Uc(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Uc(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var bi=Pc,Vc="ly.img.ai",vr="ly.img.ai/temp";async function Bc(e,t){return e.engine.asset.findAllSources().includes(vr)||e.engine.asset.addLocalSource(vr),e.engine.asset.apply(vr,t)}function hi(e){return`${Vc}/${e}`}function Gc(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 Fc(){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,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 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 Tr(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 wi(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?qc(e,t,n,r,a,o):Ci(e,t,n,r,a,o);case"boolean":return Mi(e,t,n,r,a,o);case"number":case"integer":return xi(e,t,n,r,a,o);case"object":return ki(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Qc(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ki(e,t,n,r,a,o){let i=bi(t.schema??{},r).reduce((l,u)=>{let s=wi(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ci(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=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,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(h=>({id:h,label:d[h]??vi(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function Mi(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 xi(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 k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...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,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,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="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:w[M]??vi(M),icon:C[M]})}):(f[y]=()=>Ci(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Mi(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>xi(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>ki(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function Hc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Yc=wi,Zc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ii=Zc;function Wc(e,t,n){switch(t){case"image":return Kc(e,n[t]);case"video":return Jc(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Kc(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Ii,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Jc(e,t){let n=t.width,r=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:n,height:r}}}var Xc=Wc;async function e1(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 t1(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 r1(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 n1(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function t1(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 r1(e,t,n){let r=t.width,a=t.height,o=await Rc(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 n1(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 Jn=e1;function Ai(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(k,h)=>l(s+1,k,h),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 i1(){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 Ei=i1,o1=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 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),n=e[He];try{e[He]=void 0;var r=!0}catch{}var a=g1.call(e);return r&&(t?e[He]=n:delete e[He]),a}var f1=p1,m1=Object.prototype,y1=m1.toString;function b1(e){return y1.call(e)}var h1=b1,v1="[object Null]",w1="[object Undefined]",Xn=ae?ae.toStringTag:void 0;function k1(e){return e==null?e===void 0?w1:v1:Xn&&Xn in Object(e)?f1(e):h1(e)}var et=k1;function C1(e){return e!=null&&typeof e=="object"}var Nr=C1,Pk=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__"],wr=L1,ei=function(){var e=/[^.]+$/.exec(wr&&wr.keys&&wr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function T1(e){return!!ei&&ei in e}var N1=T1,$1=Function.prototype,O1=$1.toString;function D1(e){if(e!=null){try{return O1.call(e)}catch{}try{return e+""}catch{}}return""}var q=D1,_1=/[\\^$.*+?()[\]{}|]/g,z1=/^\[object .+?Constructor\]$/,P1=Function.prototype,U1=Object.prototype,V1=P1.toString,B1=U1.hasOwnProperty,G1=RegExp("^"+V1.call(B1).replace(_1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function F1(e){if(!Ti(e)||N1(e))return!1;var t=j1(e)?G1:z1;return t.test(q(e))}var R1=F1;function q1(e,t){return e?.[t]}var Q1=q1;function H1(e,t){var n=Q1(e,t);return R1(n)?n:void 0}var le=H1,Y1=le(U,"WeakMap"),Ir=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,Uk=Object.prototype,ed="[object Arguments]";function td(e){return Nr(e)&&et(e)==ed}var ti=td,Ni=Object.prototype,rd=Ni.hasOwnProperty,nd=Ni.propertyIsEnumerable,Vk=ti(function(){return arguments}())?ti:function(e){return Nr(e)&&rd.call(e,"callee")&&!nd.call(e,"callee")},$i=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=$i&&typeof module=="object"&&module&&!module.nodeType&&module,id=ri&&ri.exports===$i,ni=id?U.Buffer:void 0,Bk=ni?ni.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]",fd="[object RegExp]",md="[object Set]",yd="[object String]",bd="[object WeakMap]",hd="[object ArrayBuffer]",vd="[object DataView]",wd="[object Float32Array]",kd="[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[wd]=E[kd]=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[fd]=E[md]=E[yd]=E[bd]=!1;function jd(e){return Nr(e)&&X1(e.length)&&!!E[et(e)]}var Ld=jd;function Td(e){return function(t){return e(t)}}var Nd=Td,Oi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ke=Oi&&typeof module=="object"&&module&&!module.nodeType&&module,$d=Ke&&Ke.exports===Oi,kr=$d&&ji.process,Od=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||kr&&kr.binding&&kr.binding("util")}catch{}}(),ii=Od,oi=ii&&ii.isTypedArray,Gk=oi?Nd(oi):Ld,Dd=Object.prototype,Fk=Dd.hasOwnProperty;function _d(e,t){return function(n){return e(t(n))}}var zd=_d,Rk=zd(Object.keys,Object),Pd=Object.prototype,qk=Pd.hasOwnProperty,Ud=le(Object,"create"),Je=Ud;function Vd(){this.__data__=Je?Je(null):{},this.size=0}var Bd=Vd;function Gd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Fd=Gd,Rd="__lodash_hash_undefined__",qd=Object.prototype,Qd=qd.hasOwnProperty;function Hd(e){var t=this.__data__;if(Je){var n=t[e];return n===Rd?void 0:n}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 n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Je&&t===void 0?Xd:t,this}var tg=eg;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=Bd;se.prototype.delete=Fd;se.prototype.get=Yd;se.prototype.has=Jd;se.prototype.set=tg;var ai=se;function rg(){this.__data__=[],this.size=0}var ng=rg;function ig(e,t){for(var n=e.length;n--;)if(W1(e[n][0],t))return n;return-1}var Gt=ig,og=Array.prototype,ag=og.splice;function lg(e){var t=this.__data__,n=Gt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():ag.call(t,n,1),--this.size,!0}var sg=lg;function ug(e){var t=this.__data__,n=Gt(t,e);return n<0?void 0:t[n][1]}var cg=ug;function dg(e){return Gt(this.__data__,e)>-1}var gg=dg;function pg(e,t){var n=this.__data__,r=Gt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var fg=pg;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=ng;ue.prototype.delete=sg;ue.prototype.get=cg;ue.prototype.has=gg;ue.prototype.set=fg;var Ft=ue,mg=le(U,"Map"),Xe=mg;function yg(){this.size=0,this.__data__={hash:new ai,map:new(Xe||Ft),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 wg(e,t){var n=e.__data__;return vg(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Rt=wg;function kg(e){var t=Rt(this,e).delete(e);return this.size-=t?1:0,t}var Cg=kg;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 n=Rt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Sg=Eg;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=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 Ft,this.size=0}var Lg=jg;function Tg(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Ng=Tg;function $g(e){return this.__data__.get(e)}var Og=$g;function Dg(e){return this.__data__.has(e)}var _g=Dg,zg=200;function Pg(e,t){var n=this.__data__;if(n instanceof Ft){var r=n.__data__;if(!Xe||r.length<zg-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Di(r)}return n.set(e,t),this.size=n.size,this}var Ug=Pg;function tt(e){var t=this.__data__=new Ft(e);this.size=t.size}tt.prototype.clear=Lg;tt.prototype.delete=Ng;tt.prototype.get=Og;tt.prototype.has=_g;tt.prototype.set=Ug;var Vg=Object.prototype,Qk=Vg.propertyIsEnumerable,Bg=le(U,"DataView"),Ar=Bg,Gg=le(U,"Promise"),Er=Gg,Fg=le(U,"Set"),Sr=Fg,li="[object Map]",Rg="[object Object]",si="[object Promise]",ui="[object Set]",ci="[object WeakMap]",di="[object DataView]",qg=q(Ar),Qg=q(Xe),Hg=q(Er),Yg=q(Sr),Zg=q(Ir),ne=et;(Ar&&ne(new Ar(new ArrayBuffer(1)))!=di||Xe&&ne(new Xe)!=li||Er&&ne(Er.resolve())!=si||Sr&&ne(new Sr)!=ui||Ir&&ne(new Ir)!=ci)&&(ne=function(e){var t=et(e),n=t==Rg?e.constructor:void 0,r=n?q(n):"";if(r)switch(r){case qg:return di;case Qg:return li;case Hg:return si;case Yg:return ui;case Zg:return ci}return t});var Hk=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 jr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Di;++t<n;)this.add(e[t])}jr.prototype.add=jr.prototype.push=Jg;jr.prototype.has=ep;var gi=ae?ae.prototype:void 0,Yk=gi?gi.valueOf:void 0,tp=Object.prototype,Zk=tp.hasOwnProperty,rp=Object.prototype,Wk=rp.hasOwnProperty,Kk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Jk=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Xk=new RegExp(/[A-Fa-f0-9]{2}/,"g");function np(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 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 _i(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 ip(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 _i(r,t)}function op(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 up(2e3),await ap(t,e,n))}async function ap(e,t,n){switch(t.kind){case"image":return lp(e,t,n);case"video":return sp(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function lp(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 ip(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 sp(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function up(e){return new Promise(t=>{setTimeout(t,e)})}var zi=op;async function cp(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=Fc(),v;if(u){if(v=Xc(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Bc(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),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 k=Ai([...r.output.middleware??[],o.debug?Ei():void 0,o.dryRun?zi({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(Tr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Vt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Jn(f,e,g,h),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 Jn(f,e,g,h),Vt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(oe(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 dp=cp;function gp(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),pp(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Gc(e)}))}function pp(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=gp;function Bt(e){return`${e}.generating`}function fp(e){return`${e}.abort`}function mp(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,k=f.value&&d,h=()=>{k&&(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 b=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:k?{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),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.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 w=await dp(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;yp(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(oe(w))return;We(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):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 yp(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 Pi=mp;async function bp(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=_c(t.document),l=yi(i,t.inputReference);if(!zc(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=bi(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Yc(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});Pi(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(hi(o),c),c}var hp=bp;async function vp(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 Pi(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(hi(o),l),l}var wp=vp,Cr="@imgly/plugin-ai-generation",kp=`
|
|
64
64
|
<svg>
|
|
65
65
|
<symbol
|
|
66
66
|
fill="none"
|
|
@@ -78,7 +78,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
|
|
|
121
121
|
|
|
122
122
|
</symbol>
|
|
123
123
|
</svg>
|
|
124
|
-
`,ap=op,ai="ly.img.ai.quickAction.order",qe="ly.img.ai.quickAction.actions";function lp(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${ai}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ai}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${qe}.${t}`))e.ui.experimental.setGlobalStateValue(`${qe}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${qe}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${qe}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${qe}.${t}`,{})[n]}}var sp=lp,wr="ly.img.ai.inference.editMode",Li="ly.img.ai.inference.metadata";function Ni(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function up(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 cp({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var dp=cp;function gp({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 pp=gp;function fp({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=mp(r.engine,o,e),await a(n,r)}catch(s){throw re(s)&&i(),s}finally{t&&i()}}}function mp(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var yp=fp;function bp(e,t){switch(t.kind){case"text":return hp(e,t);case"image":return vp(e,t);case"video":return wp(e,t);case"audio":return Cp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function hp(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(jr(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function vp(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(jr(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await kp(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function wp(e,t){throw new Error("Function not implemented.")}async function Cp(e,t){throw new Error("Function not implemented.")}async function kp(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${Mp(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function Mp(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var xp=bp;function Ip({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=Ap(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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 re(u)&&s(),u}finally{t&&s()}}}function Ap(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 jp=Ip;function Ep(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new ki(n.engine,Li),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=f(`${i}.comparing`,"after"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),k(),g.editor.addUndoStep()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(Ni({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=up(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{Qe(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await li({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw re(M)||Qe(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{Qe(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await li({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw re(k)||Qe(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function li(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:wr});let l=new ki(n.engine,Li);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=vi([...o.output.middleware??[],t.debug?wi():void 0,pp({}),...i.confirmation?[i.lockDuringConfirmation?yp({editMode:wr}):jp({editMode:wr}),i.confirmation&&dp({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await xp(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var Sp=Ep;async function Lp(e,t,n){await e.initialize(t);let r=await Tp(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}`]:Np(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",ap),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await $p(e,o,n)}}function Np(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 Tp(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 l1(r,e)),r}return n}}async function $p(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Dp(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Op(e,e.input.quickActions,t,n)),r}async function Dp(e,t,n,r){switch(t.type){case"custom":return a1(e,t,n,r);case"schema":return i1(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Op(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=sp(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(Ni({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=Sp({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var si=Lp;function _p(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 zp=_p,Pp="@imgly/plugin-ai-image-generation",Up=`
|
|
124
|
+
`,Cp=kp,pi="ly.img.ai.quickAction.order",Ye="ly.img.ai.quickAction.actions";function Mp(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=Mp,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 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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function Ap({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=Ap;function Sp({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 jp=Sp;function Lp({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=Tp(r.engine,o,e),await a(n,r)}catch(l){throw oe(l)&&i(),l}finally{t&&i()}}}function Tp(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=Lp;function $p(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 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(Tr(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 Dp(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),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(Tr(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),w=await Pp(n,m,y),C=await Lr(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{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);b()},D=()=>{if(I==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",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};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 zp(e,t){throw new Error("Function not implemented.")}async function Pp(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${np(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Up=$p;function Vp({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=Bp(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 oe(u)&&l(),u}finally{t&&l()}}}function Bp(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=Vp;async function Fp(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 Si(n.engine,Ui);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ai([...o.output.middleware??[],t.debug?Ei():void 0,jp({}),...i.confirmation?[i.lockDuringConfirmation?Np({editMode:Mr}):Gp({editMode:Mr}),i.confirmation&&Ep({})]:[],t.dryRun?zi({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await Up(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var fi=Fp;function Rp(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 k=new Si(n.engine,Ui),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=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,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.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=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(Vi({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=Ip(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{We(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await fi({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,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:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{We(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await fi({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw oe(C)||We(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var qp=Rp;async function Qp(e,t,n){await e.initialize?.(t);let r=await Yp(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}`]: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,n)}}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,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 o1(r,e)),r}return n}}async function Zp(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Wp(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Kp(e,e.input.quickActions,t,n)),r}async function Wp(e,t,n,r){switch(t.type){case"custom":return wp(e,t,n,r);case"schema":return hp(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Kp(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 mi=Qp;function Jp(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 Xp=Jp,e2="@imgly/plugin-ai-image-generation",t2=`
|
|
125
125
|
<svg>
|
|
126
126
|
<symbol
|
|
127
127
|
fill="none"
|
|
@@ -135,8 +135,8 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
|
|
|
135
135
|
|
|
136
136
|
</symbol>
|
|
137
137
|
</svg>
|
|
138
|
-
`,Vp=Up,Bp="@imgly/plugin-ai-image-generation-web",T="ly.img.ai/image-generation",Cr="ly.img.ai.image-generation.fromType";function Gp(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(Pp,Vp),t.setTranslations({en:{[`panel.${T}`]:"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 s(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(T),g=t.ui.experimental.getGlobalStateValue(Cr,"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(Cr,c),t.ui.openPanel(T)}},duration:"long"}}}o!=null&&(o.output.notification=s("fromText")),i!=null&&(i.output.notification=s("fromImage"));let u=o!=null?await si(o,{cesdk:t,engine:t.engine},n):void 0,l=i!=null?await si(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&l?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&l?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(T,c=>{let{builder:d,experimental:g}=c,f=g.global(Cr,"fromText");switch(d.Section(`${T}.fromType.section`,{children:()=>{d.ButtonGroup(`${T}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${T}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Pt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${T}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Pt(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":{l?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??l?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(T,c),t.i18n.setTranslations({en:{[`${T}.dock.label`]:"AI Image"}}),zp({cesdk:t,panelId:T})}}}}var Fp=Gp,Rp=e=>({name:Bp,version:"0.1.2",...Fp(e)}),Ti=Rp;function Ki(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 tt(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=Ki(e,t.$ref),a={...tt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=tt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>tt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=tt(e,t[a],n));return r}return t}function qp(e){return tt(e,{...e})}function Hp(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function Qp(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Yp(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Yp(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Ji=Qp,Zp="ly.img.ai",Sr="ly.img.ai/temp";async function Wp(e,t){return e.engine.asset.findAllSources().includes(Sr)||e.engine.asset.addLocalSource(Sr),e.engine.asset.apply(Sr,t)}function Xi(e){return`${Zp}/${e}`}function Kp(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 Jp(){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 Xp(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 eo(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 Vr(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 to(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?e2(e,t,n,r,a,o):no(e,t,n,r,a,o);case"boolean":return io(e,t,n,r,a,o);case"number":case"integer":return oo(e,t,n,r,a,o);case"object":return ro(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return t2(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ro(e,t,n,r,a,o){let i=Ji(t.schema??{},r).reduce((s,u)=>{let l=to(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function no(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=r2(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function e2(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??eo(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function io(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function oo(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,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(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function t2(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??eo(M),icon:k[M]})}):(f[m]=()=>no(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>io(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>oo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>ro(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function r2(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var n2=to,i2="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ao=i2;function o2(e,t,n){switch(t){case"image":return a2(e,n[t]);case"video":return l2(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function a2(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:ao,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function l2(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:ao,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var s2=o2;function u2(e,t){switch(e){case"image":return c2(t[e]);case"video":return d2(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function c2(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
|
|
139
|
-
`,"+")}`}}function d2(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var g2=u2;async function p2(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 f2(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 m2(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 y2(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f2(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 m2(e,t,n){let r=t.width,a=t.height,o=await Xp(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 y2(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 $i=p2;function lo(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function b2(){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=b2;async function h2(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Jp(),v;if(u){if(v=s2(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Wp(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(Gt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=lo([...r.output.middleware??[],o.debug?so():void 0]),h;if(o.dryRun?h=await v2(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,Vr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Gt(s,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&s.engine.block.isValid(c)&&(p=await $i(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),Gt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await $i(f,e,g,h),Gt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(ce(d)?s.engine.block.destroy(c):s.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Gt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function v2(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=g2(e,t);return await w2(3e3),n}async function w2(e){return new Promise(t=>{setTimeout(t,e)})}var C2=h2;function k2(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),M2(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Kp(e)}))}function M2(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 rt=k2;function Ft(e){return`${e}.generating`}function x2(e){return`${e}.abort`}function I2(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(x2(c),()=>{}),f=s.global(Ft(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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 y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await C2(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;A2(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(ce(C))return;rt(C,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function A2(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 uo=I2;async function j2(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=qp(t.document),s=Ki(i,t.inputReference);if(!Hp(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=Ji(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=n2(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});uo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Xi(o),c),c}var E2=j2;async function S2(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Ft(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return uo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Xi(o),s),s}var L2=S2,N2=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,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;ue(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=()=>{ue(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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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 ue(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ue(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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.active?1:0)),o}};function ue(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]=ue(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]=ue(a,t,o)}return e}var T2=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)}},co=T2,$2=typeof global=="object"&&global&&global.Object===Object&&global,go=$2,D2=typeof self=="object"&&self&&self.Object===Object&&self,O2=go||D2||Function("return this")(),_=O2,_2=_.Symbol,de=_2,po=Object.prototype,z2=po.hasOwnProperty,P2=po.toString,Xe=de?de.toStringTag:void 0;function U2(e){var t=z2.call(e,Xe),n=e[Xe];try{e[Xe]=void 0;var r=!0}catch{}var a=P2.call(e);return r&&(t?e[Xe]=n:delete e[Xe]),a}var V2=U2,B2=Object.prototype,G2=B2.toString;function F2(e){return G2.call(e)}var R2=F2,q2="[object Null]",H2="[object Undefined]",Di=de?de.toStringTag:void 0;function Q2(e){return e==null?e===void 0?H2:q2:Di&&Di in Object(e)?V2(e):R2(e)}var at=Q2;function Y2(e){return e!=null&&typeof e=="object"}var Br=Y2,PC=Array.isArray;function Z2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fo=Z2,W2="[object AsyncFunction]",K2="[object Function]",J2="[object GeneratorFunction]",X2="[object Proxy]";function ef(e){if(!fo(e))return!1;var t=at(e);return t==K2||t==J2||t==W2||t==X2}var tf=ef,rf=_["__core-js_shared__"],Lr=rf,Oi=function(){var e=/[^.]+$/.exec(Lr&&Lr.keys&&Lr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function nf(e){return!!Oi&&Oi in e}var of=nf,af=Function.prototype,lf=af.toString;function sf(e){if(e!=null){try{return lf.call(e)}catch{}try{return e+""}catch{}}return""}var F=sf,uf=/[\\^$.*+?()[\]{}|]/g,cf=/^\[object .+?Constructor\]$/,df=Function.prototype,gf=Object.prototype,pf=df.toString,ff=gf.hasOwnProperty,mf=RegExp("^"+pf.call(ff).replace(uf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yf(e){if(!fo(e)||of(e))return!1;var t=tf(e)?mf:cf;return t.test(F(e))}var bf=yf;function hf(e,t){return e?.[t]}var vf=hf;function wf(e,t){var n=vf(e,t);return bf(n)?n:void 0}var ge=wf,Cf=ge(_,"WeakMap"),Or=Cf;function kf(e,t){return e===t||e!==e&&t!==t}var Mf=kf,xf=9007199254740991;function If(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xf}var Af=If,UC=Object.prototype,jf="[object Arguments]";function Ef(e){return Br(e)&&at(e)==jf}var _i=Ef,mo=Object.prototype,Sf=mo.hasOwnProperty,Lf=mo.propertyIsEnumerable,VC=_i(function(){return arguments}())?_i:function(e){return Br(e)&&Sf.call(e,"callee")&&!Lf.call(e,"callee")},yo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=yo&&typeof module=="object"&&module&&!module.nodeType&&module,Nf=zi&&zi.exports===yo,Pi=Nf?_.Buffer:void 0,BC=Pi?Pi.isBuffer:void 0,Tf="[object Arguments]",$f="[object Array]",Df="[object Boolean]",Of="[object Date]",_f="[object Error]",zf="[object Function]",Pf="[object Map]",Uf="[object Number]",Vf="[object Object]",Bf="[object RegExp]",Gf="[object Set]",Ff="[object String]",Rf="[object WeakMap]",qf="[object ArrayBuffer]",Hf="[object DataView]",Qf="[object Float32Array]",Yf="[object Float64Array]",Zf="[object Int8Array]",Wf="[object Int16Array]",Kf="[object Int32Array]",Jf="[object Uint8Array]",Xf="[object Uint8ClampedArray]",e0="[object Uint16Array]",t0="[object Uint32Array]",A={};A[Qf]=A[Yf]=A[Zf]=A[Wf]=A[Kf]=A[Jf]=A[Xf]=A[e0]=A[t0]=!0;A[Tf]=A[$f]=A[qf]=A[Df]=A[Hf]=A[Of]=A[_f]=A[zf]=A[Pf]=A[Uf]=A[Vf]=A[Bf]=A[Gf]=A[Ff]=A[Rf]=!1;function r0(e){return Br(e)&&Af(e.length)&&!!A[at(e)]}var n0=r0;function i0(e){return function(t){return e(t)}}var o0=i0,bo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nt=bo&&typeof module=="object"&&module&&!module.nodeType&&module,a0=nt&&nt.exports===bo,Nr=a0&&go.process,l0=function(){try{var e=nt&&nt.require&&nt.require("util").types;return e||Nr&&Nr.binding&&Nr.binding("util")}catch{}}(),Ui=l0,Vi=Ui&&Ui.isTypedArray,GC=Vi?o0(Vi):n0,s0=Object.prototype,FC=s0.hasOwnProperty;function u0(e,t){return function(n){return e(t(n))}}var c0=u0,RC=c0(Object.keys,Object),d0=Object.prototype,qC=d0.hasOwnProperty,g0=ge(Object,"create"),it=g0;function p0(){this.__data__=it?it(null):{},this.size=0}var f0=p0;function m0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var y0=m0,b0="__lodash_hash_undefined__",h0=Object.prototype,v0=h0.hasOwnProperty;function w0(e){var t=this.__data__;if(it){var n=t[e];return n===b0?void 0:n}return v0.call(t,e)?t[e]:void 0}var C0=w0,k0=Object.prototype,M0=k0.hasOwnProperty;function x0(e){var t=this.__data__;return it?t[e]!==void 0:M0.call(t,e)}var I0=x0,A0="__lodash_hash_undefined__";function j0(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=it&&t===void 0?A0:t,this}var E0=j0;function pe(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])}}pe.prototype.clear=f0;pe.prototype.delete=y0;pe.prototype.get=C0;pe.prototype.has=I0;pe.prototype.set=E0;var Bi=pe;function S0(){this.__data__=[],this.size=0}var L0=S0;function N0(e,t){for(var n=e.length;n--;)if(Mf(e[n][0],t))return n;return-1}var Rt=N0,T0=Array.prototype,$0=T0.splice;function D0(e){var t=this.__data__,n=Rt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():$0.call(t,n,1),--this.size,!0}var O0=D0;function _0(e){var t=this.__data__,n=Rt(t,e);return n<0?void 0:t[n][1]}var z0=_0;function P0(e){return Rt(this.__data__,e)>-1}var U0=P0;function V0(e,t){var n=this.__data__,r=Rt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var B0=V0;function fe(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])}}fe.prototype.clear=L0;fe.prototype.delete=O0;fe.prototype.get=z0;fe.prototype.has=U0;fe.prototype.set=B0;var qt=fe,G0=ge(_,"Map"),ot=G0;function F0(){this.size=0,this.__data__={hash:new Bi,map:new(ot||qt),string:new Bi}}var R0=F0;function q0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var H0=q0;function Q0(e,t){var n=e.__data__;return H0(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Ht=Q0;function Y0(e){var t=Ht(this,e).delete(e);return this.size-=t?1:0,t}var Z0=Y0;function W0(e){return Ht(this,e).get(e)}var K0=W0;function J0(e){return Ht(this,e).has(e)}var X0=J0;function em(e,t){var n=Ht(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var tm=em;function me(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])}}me.prototype.clear=R0;me.prototype.delete=Z0;me.prototype.get=K0;me.prototype.has=X0;me.prototype.set=tm;var ho=me;function rm(){this.__data__=new qt,this.size=0}var nm=rm;function im(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var om=im;function am(e){return this.__data__.get(e)}var lm=am;function sm(e){return this.__data__.has(e)}var um=sm,cm=200;function dm(e,t){var n=this.__data__;if(n instanceof qt){var r=n.__data__;if(!ot||r.length<cm-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ho(r)}return n.set(e,t),this.size=n.size,this}var gm=dm;function lt(e){var t=this.__data__=new qt(e);this.size=t.size}lt.prototype.clear=nm;lt.prototype.delete=om;lt.prototype.get=lm;lt.prototype.has=um;lt.prototype.set=gm;var pm=Object.prototype,HC=pm.propertyIsEnumerable,fm=ge(_,"DataView"),_r=fm,mm=ge(_,"Promise"),zr=mm,ym=ge(_,"Set"),Pr=ym,Gi="[object Map]",bm="[object Object]",Fi="[object Promise]",Ri="[object Set]",qi="[object WeakMap]",Hi="[object DataView]",hm=F(_r),vm=F(ot),wm=F(zr),Cm=F(Pr),km=F(Or),se=at;(_r&&se(new _r(new ArrayBuffer(1)))!=Hi||ot&&se(new ot)!=Gi||zr&&se(zr.resolve())!=Fi||Pr&&se(new Pr)!=Ri||Or&&se(new Or)!=qi)&&(se=function(e){var t=at(e),n=t==bm?e.constructor:void 0,r=n?F(n):"";if(r)switch(r){case hm:return Hi;case vm:return Gi;case wm:return Fi;case Cm:return Ri;case km:return qi}return t});var QC=_.Uint8Array,Mm="__lodash_hash_undefined__";function xm(e){return this.__data__.set(e,Mm),this}var Im=xm;function Am(e){return this.__data__.has(e)}var jm=Am;function Ur(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ho;++t<n;)this.add(e[t])}Ur.prototype.add=Ur.prototype.push=Im;Ur.prototype.has=jm;var Qi=de?de.prototype:void 0,YC=Qi?Qi.valueOf:void 0,Em=Object.prototype,ZC=Em.hasOwnProperty,Sm=Object.prototype,WC=Sm.hasOwnProperty,KC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),JC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),XC=new RegExp(/[A-Fa-f0-9]{2}/,"g"),Tr="@imgly/plugin-ai-generation",Lm=`
|
|
138
|
+
`,r2=t2,n2="@imgly/plugin-ai-image-generation-web",_="ly.img.ai/image-generation",xr="ly.img.ai.image-generation.fromType";function i2(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(e2,r2),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(xr,"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(xr,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 mi(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await mi(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(xr,"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 o2=i2,a2=e=>({name:n2,version:"0.1.4",...o2(e)}),Bi=a2;function ao(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=ao(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 l2(e){return it(e,{...e})}function s2(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 u2(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return c2(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function c2(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var lo=u2,d2="ly.img.ai",$r="ly.img.ai/temp";async function g2(e,t){return e.engine.asset.findAllSources().includes($r)||e.engine.asset.addLocalSource($r),e.engine.asset.apply($r,t)}function so(e){return`${d2}/${e}`}function p2(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 f2(){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 m2(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 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 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 pe(e){return e instanceof Error&&e.name==="AbortError"}function co(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?y2(e,t,n,r,a,o):po(e,t,n,r,a,o);case"boolean":return fo(e,t,n,r,a,o);case"number":case"integer":return mo(e,t,n,r,a,o);case"object":return go(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return b2(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function go(e,t,n,r,a,o){let i=lo(t.schema??{},r).reduce((l,u)=>{let s=co(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function po(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=h2(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 y2(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(h=>({id:h,label:d[h]??uo(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function fo(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 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.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 k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function b2(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,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="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:w[M]??uo(M),icon:C[M]})}):(f[y]=()=>po(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>fo(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>mo(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>go(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function h2(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var v2=co,w2="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yo=w2;function k2(e,t,n){switch(t){case"image":return C2(e,n[t]);case"video":return M2(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function C2(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:yo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function M2(e,t){let n=t.width,r=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:n,height:r}}}var x2=k2;async function I2(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 A2(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 E2(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 S2(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function A2(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 E2(e,t,n){let r=t.width,a=t.height,o=await m2(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 S2(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=I2;function bo(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(k,h)=>l(s+1,k,h),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 j2(){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 ho=j2,L2=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 T2=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=T2,N2=typeof global=="object"&&global&&global.Object===Object&&global,wo=N2,$2=typeof self=="object"&&self&&self.Object===Object&&self,O2=wo||$2||Function("return this")(),V=O2,D2=V.Symbol,fe=D2,ko=Object.prototype,_2=ko.hasOwnProperty,z2=ko.toString,rt=fe?fe.toStringTag:void 0;function P2(e){var t=_2.call(e,rt),n=e[rt];try{e[rt]=void 0;var r=!0}catch{}var a=z2.call(e);return r&&(t?e[rt]=n:delete e[rt]),a}var U2=P2,V2=Object.prototype,B2=V2.toString;function G2(e){return B2.call(e)}var F2=G2,R2="[object Null]",q2="[object Undefined]",Fi=fe?fe.toStringTag:void 0;function Q2(e){return e==null?e===void 0?q2:R2:Fi&&Fi in Object(e)?U2(e):F2(e)}var ut=Q2;function H2(e){return e!=null&&typeof e=="object"}var Qr=H2,nC=Array.isArray;function Y2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Co=Y2,Z2="[object AsyncFunction]",W2="[object Function]",K2="[object GeneratorFunction]",J2="[object Proxy]";function X2(e){if(!Co(e))return!1;var t=ut(e);return t==W2||t==K2||t==Z2||t==J2}var ef=X2,tf=V["__core-js_shared__"],Or=tf,Ri=function(){var e=/[^.]+$/.exec(Or&&Or.keys&&Or.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rf(e){return!!Ri&&Ri in e}var nf=rf,of=Function.prototype,af=of.toString;function lf(e){if(e!=null){try{return af.call(e)}catch{}try{return e+""}catch{}}return""}var Q=lf,sf=/[\\^$.*+?()[\]{}|]/g,uf=/^\[object .+?Constructor\]$/,cf=Function.prototype,df=Object.prototype,gf=cf.toString,pf=df.hasOwnProperty,ff=RegExp("^"+gf.call(pf).replace(sf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mf(e){if(!Co(e)||nf(e))return!1;var t=ef(e)?ff:uf;return t.test(Q(e))}var yf=mf;function bf(e,t){return e?.[t]}var hf=bf;function vf(e,t){var n=hf(e,t);return yf(n)?n:void 0}var me=vf,wf=me(V,"WeakMap"),Ur=wf;function kf(e,t){return e===t||e!==e&&t!==t}var Cf=kf,Mf=9007199254740991;function xf(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Mf}var If=xf,iC=Object.prototype,Af="[object Arguments]";function Ef(e){return Qr(e)&&ut(e)==Af}var qi=Ef,Mo=Object.prototype,Sf=Mo.hasOwnProperty,jf=Mo.propertyIsEnumerable,oC=qi(function(){return arguments}())?qi:function(e){return Qr(e)&&Sf.call(e,"callee")&&!jf.call(e,"callee")},xo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qi=xo&&typeof module=="object"&&module&&!module.nodeType&&module,Lf=Qi&&Qi.exports===xo,Hi=Lf?V.Buffer:void 0,aC=Hi?Hi.isBuffer:void 0,Tf="[object Arguments]",Nf="[object Array]",$f="[object Boolean]",Of="[object Date]",Df="[object Error]",_f="[object Function]",zf="[object Map]",Pf="[object Number]",Uf="[object Object]",Vf="[object RegExp]",Bf="[object Set]",Gf="[object String]",Ff="[object WeakMap]",Rf="[object ArrayBuffer]",qf="[object DataView]",Qf="[object Float32Array]",Hf="[object Float64Array]",Yf="[object Int8Array]",Zf="[object Int16Array]",Wf="[object Int32Array]",Kf="[object Uint8Array]",Jf="[object Uint8ClampedArray]",Xf="[object Uint16Array]",em="[object Uint32Array]",S={};S[Qf]=S[Hf]=S[Yf]=S[Zf]=S[Wf]=S[Kf]=S[Jf]=S[Xf]=S[em]=!0;S[Tf]=S[Nf]=S[Rf]=S[$f]=S[qf]=S[Of]=S[Df]=S[_f]=S[zf]=S[Pf]=S[Uf]=S[Vf]=S[Bf]=S[Gf]=S[Ff]=!1;function tm(e){return Qr(e)&&If(e.length)&&!!S[ut(e)]}var rm=tm;function nm(e){return function(t){return e(t)}}var im=nm,Io=typeof exports=="object"&&exports&&!exports.nodeType&&exports,at=Io&&typeof module=="object"&&module&&!module.nodeType&&module,om=at&&at.exports===Io,Dr=om&&wo.process,am=function(){try{var e=at&&at.require&&at.require("util").types;return e||Dr&&Dr.binding&&Dr.binding("util")}catch{}}(),Yi=am,Zi=Yi&&Yi.isTypedArray,lC=Zi?im(Zi):rm,lm=Object.prototype,sC=lm.hasOwnProperty;function sm(e,t){return function(n){return e(t(n))}}var um=sm,uC=um(Object.keys,Object),cm=Object.prototype,cC=cm.hasOwnProperty,dm=me(Object,"create"),lt=dm;function gm(){this.__data__=lt?lt(null):{},this.size=0}var pm=gm;function fm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var mm=fm,ym="__lodash_hash_undefined__",bm=Object.prototype,hm=bm.hasOwnProperty;function vm(e){var t=this.__data__;if(lt){var n=t[e];return n===ym?void 0:n}return hm.call(t,e)?t[e]:void 0}var wm=vm,km=Object.prototype,Cm=km.hasOwnProperty;function Mm(e){var t=this.__data__;return lt?t[e]!==void 0:Cm.call(t,e)}var xm=Mm,Im="__lodash_hash_undefined__";function Am(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=lt&&t===void 0?Im:t,this}var Em=Am;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=pm;ye.prototype.delete=mm;ye.prototype.get=wm;ye.prototype.has=xm;ye.prototype.set=Em;var Wi=ye;function Sm(){this.__data__=[],this.size=0}var jm=Sm;function Lm(e,t){for(var n=e.length;n--;)if(Cf(e[n][0],t))return n;return-1}var Ht=Lm,Tm=Array.prototype,Nm=Tm.splice;function $m(e){var t=this.__data__,n=Ht(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Nm.call(t,n,1),--this.size,!0}var Om=$m;function Dm(e){var t=this.__data__,n=Ht(t,e);return n<0?void 0:t[n][1]}var _m=Dm;function zm(e){return Ht(this.__data__,e)>-1}var Pm=zm;function Um(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 Vm=Um;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=jm;be.prototype.delete=Om;be.prototype.get=_m;be.prototype.has=Pm;be.prototype.set=Vm;var Yt=be,Bm=me(V,"Map"),st=Bm;function Gm(){this.size=0,this.__data__={hash:new Wi,map:new(st||Yt),string:new Wi}}var Fm=Gm;function Rm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qm=Rm;function Qm(e,t){var n=e.__data__;return qm(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Zt=Qm;function Hm(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Ym=Hm;function Zm(e){return Zt(this,e).get(e)}var Wm=Zm;function Km(e){return Zt(this,e).has(e)}var Jm=Km;function Xm(e,t){var n=Zt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var e0=Xm;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=Fm;he.prototype.delete=Ym;he.prototype.get=Wm;he.prototype.has=Jm;he.prototype.set=e0;var Ao=he;function t0(){this.__data__=new Yt,this.size=0}var r0=t0;function n0(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var i0=n0;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 n=this.__data__;if(n instanceof Yt){var r=n.__data__;if(!st||r.length<u0-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ao(r)}return n.set(e,t),this.size=n.size,this}var d0=c0;function ct(e){var t=this.__data__=new Yt(e);this.size=t.size}ct.prototype.clear=r0;ct.prototype.delete=i0;ct.prototype.get=a0;ct.prototype.has=s0;ct.prototype.set=d0;var g0=Object.prototype,dC=g0.propertyIsEnumerable,p0=me(V,"DataView"),Vr=p0,f0=me(V,"Promise"),Br=f0,m0=me(V,"Set"),Gr=m0,Ki="[object Map]",y0="[object Object]",Ji="[object Promise]",Xi="[object Set]",eo="[object WeakMap]",to="[object DataView]",b0=Q(Vr),h0=Q(st),v0=Q(Br),w0=Q(Gr),k0=Q(Ur),de=ut;(Vr&&de(new Vr(new ArrayBuffer(1)))!=to||st&&de(new st)!=Ki||Br&&de(Br.resolve())!=Ji||Gr&&de(new Gr)!=Xi||Ur&&de(new Ur)!=eo)&&(de=function(e){var t=ut(e),n=t==y0?e.constructor:void 0,r=n?Q(n):"";if(r)switch(r){case b0:return to;case h0:return Ki;case v0:return Ji;case w0:return Xi;case k0: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 Fr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Ao;++t<n;)this.add(e[t])}Fr.prototype.add=Fr.prototype.push=x0;Fr.prototype.has=A0;var ro=fe?fe.prototype:void 0,pC=ro?ro.valueOf:void 0,E0=Object.prototype,fC=E0.hasOwnProperty,S0=Object.prototype,mC=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 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 Eo(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 L0(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 Eo(r,t)}function T0(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 D0(2e3),await N0(t,e,n))}async function N0(e,t,n){switch(t.kind){case"image":return $0(e,t,n);case"video":return O0(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function $0(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 L0(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 O0(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function D0(e){return new Promise(t=>{setTimeout(t,e)})}var So=T0;async function _0(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=f2(),v;if(u){if(v=x2(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await g2(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),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 k=bo([...r.output.middleware??[],o.debug?ho():void 0,o.dryRun?So({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(qr(h))throw new Error("Streaming generation is not supported yet from a panel");if(qt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Gi(f,e,g,h),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 Gi(f,e,g,h),qt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(pe(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 z0=_0;function P0(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),U0(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:p2(e)}))}function U0(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=P0;function Qt(e){return`${e}.generating`}function V0(e){return`${e}.abort`}function B0(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(V0(c),()=>{}),f=l.global(Qt(c),!1),v,k=f.value&&d,h=()=>{k&&(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 b=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:k?{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),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.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 w=await z0(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;G0(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(pe(w))return;ot(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):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 G0(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=B0;async function F0(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=l2(t.document),l=ao(i,t.inputReference);if(!s2(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=lo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=v2(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});jo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(so(o),c),c}var R0=F0;async function q0(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(so(o),l),l}var Q0=q0,_r="@imgly/plugin-ai-generation",H0=`
|
|
140
140
|
<svg>
|
|
141
141
|
<symbol
|
|
142
142
|
fill="none"
|
|
@@ -154,7 +154,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
|
|
|
197
197
|
|
|
198
198
|
</symbol>
|
|
199
199
|
</svg>
|
|
200
|
-
`,Nm=Lm,Yi="ly.img.ai.quickAction.order",et="ly.img.ai.quickAction.actions";function Tm(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Yi}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yi}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${et}.${t}`))e.ui.experimental.setGlobalStateValue(`${et}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${et}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${et}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${et}.${t}`,{})[n]}}var $m=Tm,$r="ly.img.ai.inference.editMode",vo="ly.img.ai.inference.metadata";function wo(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Dm(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 Om({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var _m=Om;function zm({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 Pm=zm;function Um({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=Vm(r.engine,o,e),await a(n,r)}catch(s){throw ce(s)&&i(),s}finally{t&&i()}}}function Vm(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var Bm=Um;function Gm(e,t){switch(t.kind){case"text":return Fm(e,t);case"image":return Rm(e,t);case"video":return qm(e,t);case"audio":return Hm(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Fm(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(Vr(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function Rm(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(Vr(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await Qm(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function qm(e,t){throw new Error("Function not implemented.")}async function Hm(e,t){throw new Error("Function not implemented.")}async function Qm(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${Ym(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function Ym(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var Zm=Gm;function Wm({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=Km(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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)&&s(),u}finally{t&&s()}}}function Km(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 Jm=Wm;function Xm(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new co(n.engine,vo),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=f(`${i}.comparing`,"after"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),k(),g.editor.addUndoStep()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(wo({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=Dm(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{rt(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Zi({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw ce(M)||rt(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{rt(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Zi({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw ce(k)||rt(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Zi(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:$r});let l=new co(n.engine,vo);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=lo([...o.output.middleware??[],t.debug?so():void 0,Pm({}),...i.confirmation?[i.lockDuringConfirmation?Bm({editMode:$r}):Jm({editMode:$r}),i.confirmation&&_m({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await Zm(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var e4=Xm;async function t4(e,t,n){await e.initialize(t);let r=await n4(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}`]:r4(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Nm),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await i4(e,o,n)}}function r4(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 n4(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 N2(r,e)),r}return n}}async function i4(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await o4(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),a4(e,e.input.quickActions,t,n)),r}async function o4(e,t,n,r){switch(t.type){case"custom":return L2(e,t,n,r);case"schema":return E2(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function a4(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=$m(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(wo({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=e4({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var Wi=t4;function l4(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 s4=l4,u4="@imgly/plugin-ai-video-generation-web",$="ly.img.ai/video-generation",Dr="ly.img.ai.video-generation.fromType";function c4(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.${$}`]:"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 s(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen($),g=t.ui.experimental.getGlobalStateValue(Dr)===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(Dr,c),t.ui.openPanel($)}},duration:"long"}}}o!=null&&(o.output.notification=s("fromText")),i!=null&&(i.output.notification=s("fromImage"));let u=o!=null?await Wi(o,{cesdk:t,engine:t.engine},n):void 0,l=i!=null?await Wi(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&l?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&l?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel($,c=>{let{builder:d,experimental:g}=c,f=g.global(Dr,"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(Ft(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(Ft(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":{l?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??l?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel($,c),t.i18n.setTranslations({en:{[`${$}.dock.label`]:"AI Video"}}),s4({cesdk:t,panelId:$})}}}}var d4=c4,g4=e=>({name:u4,version:"0.1.2",...d4(e)}),Co=g4;function Vo(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 dt(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=Vo(e,t.$ref),a={...dt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=dt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>dt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=dt(e,t[a],n));return r}return t}function p4(e){return dt(e,{...e})}function f4(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function m4(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return y4(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function y4(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Bo=m4,b4="ly.img.ai",Gr="ly.img.ai/temp";async function h4(e,t){return e.engine.asset.findAllSources().includes(Gr)||e.engine.asset.addLocalSource(Gr),e.engine.asset.apply(Gr,t)}function Go(e){return`${b4}/${e}`}function v4(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 w4(){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 C4(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 Fo(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 Jr(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 he(e){return e instanceof Error&&e.name==="AbortError"}function Ro(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?k4(e,t,n,r,a,o):Ho(e,t,n,r,a,o);case"boolean":return Qo(e,t,n,r,a,o);case"number":case"integer":return Yo(e,t,n,r,a,o);case"object":return qo(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return M4(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function qo(e,t,n,r,a,o){let i=Bo(t.schema??{},r).reduce((s,u)=>{let l=Ro(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function Ho(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=x4(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function k4(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??Fo(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function Qo(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Yo(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,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(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function M4(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??Fo(M),icon:k[M]})}):(f[m]=()=>Ho(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>Qo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>Yo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>qo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function x4(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var I4=Ro,A4="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Zo=A4;function j4(e,t,n){switch(t){case"image":return E4(e,n[t]);case"video":return S4(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function E4(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Zo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function S4(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Zo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var L4=j4;function N4(e,t){switch(e){case"image":return T4(t[e]);case"video":return $4(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function T4(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
|
|
201
|
-
`,"+")}`}}function $4(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var D4=N4;async function O4(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 _4(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 z4(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 P4(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _4(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 z4(e,t,n){let r=t.width,a=t.height,o=await C4(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 P4(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 ko=O4;function Wo(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function U4(){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 Ko=U4;async function V4(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=w4(),v;if(u){if(v=L4(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await h4(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(Qt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=Wo([...r.output.middleware??[],o.debug?Ko():void 0]),h;if(o.dryRun?h=await B4(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,Jr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Qt(s,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&s.engine.block.isValid(c)&&(p=await ko(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),Qt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await ko(f,e,g,h),Qt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(he(d)?s.engine.block.destroy(c):s.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}async function B4(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=D4(e,t);return await G4(3e3),n}async function G4(e){return new Promise(t=>{setTimeout(t,e)})}var F4=V4;function R4(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),q4(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:v4(e)}))}function q4(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 gt=R4;function Jo(e){return`${e}.generating`}function H4(e){return`${e}.abort`}function Q4(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(H4(c),()=>{}),f=s.global(Jo(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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 y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await F4(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;Y4(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(he(C))return;gt(C,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Y4(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 Xo=Q4;async function Z4(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=p4(t.document),s=Vo(i,t.inputReference);if(!f4(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=Bo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=I4(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Xo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Go(o),c),c}var W4=Z4;async function K4(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Jo(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Xo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Go(o),s),s}var J4=K4,X4=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,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;be(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=()=>{be(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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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 be(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),be(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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.active?1:0)),o}};function be(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]=be(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]=be(a,t,o)}return e}var e5=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)}},ea=e5,t5=typeof global=="object"&&global&&global.Object===Object&&global,ta=t5,r5=typeof self=="object"&&self&&self.Object===Object&&self,n5=ta||r5||Function("return this")(),z=n5,i5=z.Symbol,ve=i5,ra=Object.prototype,o5=ra.hasOwnProperty,a5=ra.toString,st=ve?ve.toStringTag:void 0;function l5(e){var t=o5.call(e,st),n=e[st];try{e[st]=void 0;var r=!0}catch{}var a=a5.call(e);return r&&(t?e[st]=n:delete e[st]),a}var s5=l5,u5=Object.prototype,c5=u5.toString;function d5(e){return c5.call(e)}var g5=d5,p5="[object Null]",f5="[object Undefined]",Mo=ve?ve.toStringTag:void 0;function m5(e){return e==null?e===void 0?f5:p5:Mo&&Mo in Object(e)?s5(e):g5(e)}var yt=m5;function y5(e){return e!=null&&typeof e=="object"}var Xr=y5,nk=Array.isArray;function b5(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var na=b5,h5="[object AsyncFunction]",v5="[object Function]",w5="[object GeneratorFunction]",C5="[object Proxy]";function k5(e){if(!na(e))return!1;var t=yt(e);return t==v5||t==w5||t==h5||t==C5}var M5=k5,x5=z["__core-js_shared__"],Fr=x5,xo=function(){var e=/[^.]+$/.exec(Fr&&Fr.keys&&Fr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function I5(e){return!!xo&&xo in e}var A5=I5,j5=Function.prototype,E5=j5.toString;function S5(e){if(e!=null){try{return E5.call(e)}catch{}try{return e+""}catch{}}return""}var R=S5,L5=/[\\^$.*+?()[\]{}|]/g,N5=/^\[object .+?Constructor\]$/,T5=Function.prototype,$5=Object.prototype,D5=T5.toString,O5=$5.hasOwnProperty,_5=RegExp("^"+D5.call(O5).replace(L5,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z5(e){if(!na(e)||A5(e))return!1;var t=M5(e)?_5:N5;return t.test(R(e))}var P5=z5;function U5(e,t){return e?.[t]}var V5=U5;function B5(e,t){var n=V5(e,t);return P5(n)?n:void 0}var we=B5,G5=we(z,"WeakMap"),Qr=G5;function F5(e,t){return e===t||e!==e&&t!==t}var R5=F5,q5=9007199254740991;function H5(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q5}var Q5=H5,ik=Object.prototype,Y5="[object Arguments]";function Z5(e){return Xr(e)&&yt(e)==Y5}var Io=Z5,ia=Object.prototype,W5=ia.hasOwnProperty,K5=ia.propertyIsEnumerable,ok=Io(function(){return arguments}())?Io:function(e){return Xr(e)&&W5.call(e,"callee")&&!K5.call(e,"callee")},oa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ao=oa&&typeof module=="object"&&module&&!module.nodeType&&module,J5=Ao&&Ao.exports===oa,jo=J5?z.Buffer:void 0,ak=jo?jo.isBuffer:void 0,X5="[object Arguments]",ey="[object Array]",ty="[object Boolean]",ry="[object Date]",ny="[object Error]",iy="[object Function]",oy="[object Map]",ay="[object Number]",ly="[object Object]",sy="[object RegExp]",uy="[object Set]",cy="[object String]",dy="[object WeakMap]",gy="[object ArrayBuffer]",py="[object DataView]",fy="[object Float32Array]",my="[object Float64Array]",yy="[object Int8Array]",by="[object Int16Array]",hy="[object Int32Array]",vy="[object Uint8Array]",wy="[object Uint8ClampedArray]",Cy="[object Uint16Array]",ky="[object Uint32Array]",j={};j[fy]=j[my]=j[yy]=j[by]=j[hy]=j[vy]=j[wy]=j[Cy]=j[ky]=!0;j[X5]=j[ey]=j[gy]=j[ty]=j[py]=j[ry]=j[ny]=j[iy]=j[oy]=j[ay]=j[ly]=j[sy]=j[uy]=j[cy]=j[dy]=!1;function My(e){return Xr(e)&&Q5(e.length)&&!!j[yt(e)]}var xy=My;function Iy(e){return function(t){return e(t)}}var Ay=Iy,aa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pt=aa&&typeof module=="object"&&module&&!module.nodeType&&module,jy=pt&&pt.exports===aa,Rr=jy&&ta.process,Ey=function(){try{var e=pt&&pt.require&&pt.require("util").types;return e||Rr&&Rr.binding&&Rr.binding("util")}catch{}}(),Eo=Ey,So=Eo&&Eo.isTypedArray,lk=So?Ay(So):xy,Sy=Object.prototype,sk=Sy.hasOwnProperty;function Ly(e,t){return function(n){return e(t(n))}}var Ny=Ly,uk=Ny(Object.keys,Object),Ty=Object.prototype,ck=Ty.hasOwnProperty,$y=we(Object,"create"),ft=$y;function Dy(){this.__data__=ft?ft(null):{},this.size=0}var Oy=Dy;function _y(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var zy=_y,Py="__lodash_hash_undefined__",Uy=Object.prototype,Vy=Uy.hasOwnProperty;function By(e){var t=this.__data__;if(ft){var n=t[e];return n===Py?void 0:n}return Vy.call(t,e)?t[e]:void 0}var Gy=By,Fy=Object.prototype,Ry=Fy.hasOwnProperty;function qy(e){var t=this.__data__;return ft?t[e]!==void 0:Ry.call(t,e)}var Hy=qy,Qy="__lodash_hash_undefined__";function Yy(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ft&&t===void 0?Qy:t,this}var Zy=Yy;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=Oy;Ce.prototype.delete=zy;Ce.prototype.get=Gy;Ce.prototype.has=Hy;Ce.prototype.set=Zy;var Lo=Ce;function Wy(){this.__data__=[],this.size=0}var Ky=Wy;function Jy(e,t){for(var n=e.length;n--;)if(R5(e[n][0],t))return n;return-1}var Zt=Jy,Xy=Array.prototype,e9=Xy.splice;function t9(e){var t=this.__data__,n=Zt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():e9.call(t,n,1),--this.size,!0}var r9=t9;function n9(e){var t=this.__data__,n=Zt(t,e);return n<0?void 0:t[n][1]}var i9=n9;function o9(e){return Zt(this.__data__,e)>-1}var a9=o9;function l9(e,t){var n=this.__data__,r=Zt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var s9=l9;function ke(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])}}ke.prototype.clear=Ky;ke.prototype.delete=r9;ke.prototype.get=i9;ke.prototype.has=a9;ke.prototype.set=s9;var Wt=ke,u9=we(z,"Map"),mt=u9;function c9(){this.size=0,this.__data__={hash:new Lo,map:new(mt||Wt),string:new Lo}}var d9=c9;function g9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p9=g9;function f9(e,t){var n=e.__data__;return p9(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Kt=f9;function m9(e){var t=Kt(this,e).delete(e);return this.size-=t?1:0,t}var y9=m9;function b9(e){return Kt(this,e).get(e)}var h9=b9;function v9(e){return Kt(this,e).has(e)}var w9=v9;function C9(e,t){var n=Kt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var k9=C9;function Me(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])}}Me.prototype.clear=d9;Me.prototype.delete=y9;Me.prototype.get=h9;Me.prototype.has=w9;Me.prototype.set=k9;var la=Me;function M9(){this.__data__=new Wt,this.size=0}var x9=M9;function I9(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var A9=I9;function j9(e){return this.__data__.get(e)}var E9=j9;function S9(e){return this.__data__.has(e)}var L9=S9,N9=200;function T9(e,t){var n=this.__data__;if(n instanceof Wt){var r=n.__data__;if(!mt||r.length<N9-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new la(r)}return n.set(e,t),this.size=n.size,this}var $9=T9;function bt(e){var t=this.__data__=new Wt(e);this.size=t.size}bt.prototype.clear=x9;bt.prototype.delete=A9;bt.prototype.get=E9;bt.prototype.has=L9;bt.prototype.set=$9;var D9=Object.prototype,dk=D9.propertyIsEnumerable,O9=we(z,"DataView"),Yr=O9,_9=we(z,"Promise"),Zr=_9,z9=we(z,"Set"),Wr=z9,No="[object Map]",P9="[object Object]",To="[object Promise]",$o="[object Set]",Do="[object WeakMap]",Oo="[object DataView]",U9=R(Yr),V9=R(mt),B9=R(Zr),G9=R(Wr),F9=R(Qr),ye=yt;(Yr&&ye(new Yr(new ArrayBuffer(1)))!=Oo||mt&&ye(new mt)!=No||Zr&&ye(Zr.resolve())!=To||Wr&&ye(new Wr)!=$o||Qr&&ye(new Qr)!=Do)&&(ye=function(e){var t=yt(e),n=t==P9?e.constructor:void 0,r=n?R(n):"";if(r)switch(r){case U9:return Oo;case V9:return No;case B9:return To;case G9:return $o;case F9:return Do}return t});var gk=z.Uint8Array,R9="__lodash_hash_undefined__";function q9(e){return this.__data__.set(e,R9),this}var H9=q9;function Q9(e){return this.__data__.has(e)}var Y9=Q9;function Kr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new la;++t<n;)this.add(e[t])}Kr.prototype.add=Kr.prototype.push=H9;Kr.prototype.has=Y9;var _o=ve?ve.prototype:void 0,pk=_o?_o.valueOf:void 0,Z9=Object.prototype,fk=Z9.hasOwnProperty,W9=Object.prototype,mk=W9.hasOwnProperty,yk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bk=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hk=new RegExp(/[A-Fa-f0-9]{2}/,"g"),qr="@imgly/plugin-ai-generation",K9=`
|
|
200
|
+
`,Y0=H0,no="ly.img.ai.quickAction.order",nt="ly.img.ai.quickAction.actions";function Z0(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 W0=Z0,zr="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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function J0({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 X0=J0;function ey({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 ty=ey;function ry({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=ny(r.engine,o,e),await a(n,r)}catch(l){throw pe(l)&&i(),l}finally{t&&i()}}}function ny(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 iy=ry;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: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 ly(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),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),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),w=await cy(n,m,y),C=await Rr(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{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);b()},D=()=>{if(I==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",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};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,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${j0(n)}`,{type:n}),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:n=!0}){return async(r,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(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 pe(u)&&l(),u}finally{t&&l()}}}function py(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 fy=gy;async function my(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:zr});let s=new vo(n.engine,Lo);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=bo([...o.output.middleware??[],t.debug?ho():void 0,ty({}),...i.confirmation?[i.lockDuringConfirmation?iy({editMode:zr}):fy({editMode:zr}),i.confirmation&&X0({})]:[],t.dryRun?So({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await dy(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var io=my;function yy(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 k=new vo(n.engine,Lo),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=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,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.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=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(To({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=K0(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{ot(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await io({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,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:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{ot(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await io({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw pe(C)||ot(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var by=yy;async function hy(e,t,n){await e.initialize?.(t);let r=await wy(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}`]: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 ky(e,o,n)}}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 wy(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 L2(r,e)),r}return n}}async function ky(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Cy(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),My(e,e.input.quickActions,t,n)),r}async function Cy(e,t,n,r){switch(t.type){case"custom":return Q0(e,t,n,r);case"schema":return R0(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function My(e,t,n,r){let{cesdk:a}=n,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),r.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},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var oo=hy;function xy(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 Iy=xy,Ay="@imgly/plugin-ai-video-generation-web",z="ly.img.ai/video-generation",Pr="ly.img.ai.video-generation.fromType";function Ey(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.${z}`]:"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(z),g=t.ui.experimental.getGlobalStateValue(Pr)===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(Pr,c),t.ui.openPanel(z)}},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(z,c=>{let{builder:d,experimental:g}=c,f=g.global(Pr,"fromText");switch(d.Section(`${z}.fromType.section`,{children:()=>{d.ButtonGroup(`${z}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${z}.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(`${z}.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(z,c),t.i18n.setTranslations({en:{[`${z}.dock.label`]:"AI Video"}}),Iy({cesdk:t,panelId:z})}}}}var Sy=Ey,jy=e=>({name:Ay,version:"0.1.4",...Sy(e)}),No=jy;function Ko(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 ft(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=Ko(e,t.$ref),a={...ft(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=ft(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>ft(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=ft(e,t[a],n));return r}return t}function Ly(e){return ft(e,{...e})}function Ty(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 Ny(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return $y(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function $y(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Jo=Ny,Oy="ly.img.ai",Hr="ly.img.ai/temp";async function Dy(e,t){return e.engine.asset.findAllSources().includes(Hr)||e.engine.asset.addLocalSource(Hr),e.engine.asset.apply(Hr,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 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 zy(){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 Py(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 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 on(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 ke(e){return e instanceof Error&&e.name==="AbortError"}function ta(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?Uy(e,t,n,r,a,o):na(e,t,n,r,a,o);case"boolean":return ia(e,t,n,r,a,o);case"number":case"integer":return oa(e,t,n,r,a,o);case"object":return ra(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Vy(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ra(e,t,n,r,a,o){let i=Jo(t.schema??{},r).reduce((l,u)=>{let s=ta(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function na(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=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,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(h=>({id:h,label:d[h]??ea(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function ia(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 oa(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 k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...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,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,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="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:w[M]??ea(M),icon:C[M]})}):(f[y]=()=>na(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>ia(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>oa(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>ra(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function By(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Gy=ta,Fy="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",aa=Fy;function Ry(e,t,n){switch(t){case"image":return qy(e,n[t]);case"video":return Qy(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qy(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:aa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Qy(e,t){let n=t.width,r=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:n,height:r}}}var Hy=Ry;async function Yy(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 Zy(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 Wy(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 Ky(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Zy(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 Wy(e,t,n){let r=t.width,a=t.height,o=await Py(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 Ky(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 $o=Yy;function la(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(k,h)=>l(s+1,k,h),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 Jy(){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 sa=Jy,Xy=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;we(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=()=>{we(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 we(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),we(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 we(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]=we(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]=we(a,t,o)}return e}var e4=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=e4,t4=typeof global=="object"&&global&&global.Object===Object&&global,ca=t4,r4=typeof self=="object"&&self&&self.Object===Object&&self,n4=ca||r4||Function("return this")(),B=n4,i4=B.Symbol,Ce=i4,da=Object.prototype,o4=da.hasOwnProperty,a4=da.toString,dt=Ce?Ce.toStringTag:void 0;function l4(e){var t=o4.call(e,dt),n=e[dt];try{e[dt]=void 0;var r=!0}catch{}var a=a4.call(e);return r&&(t?e[dt]=n:delete e[dt]),a}var s4=l4,u4=Object.prototype,c4=u4.toString;function d4(e){return c4.call(e)}var g4=d4,p4="[object Null]",f4="[object Undefined]",Oo=Ce?Ce.toStringTag:void 0;function m4(e){return e==null?e===void 0?f4:p4:Oo&&Oo in Object(e)?s4(e):g4(e)}var vt=m4;function y4(e){return e!=null&&typeof e=="object"}var an=y4,CC=Array.isArray;function b4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ga=b4,h4="[object AsyncFunction]",v4="[object Function]",w4="[object GeneratorFunction]",k4="[object Proxy]";function C4(e){if(!ga(e))return!1;var t=vt(e);return t==v4||t==w4||t==h4||t==k4}var M4=C4,x4=B["__core-js_shared__"],Yr=x4,Do=function(){var e=/[^.]+$/.exec(Yr&&Yr.keys&&Yr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function I4(e){return!!Do&&Do in e}var A4=I4,E4=Function.prototype,S4=E4.toString;function j4(e){if(e!=null){try{return S4.call(e)}catch{}try{return e+""}catch{}}return""}var H=j4,L4=/[\\^$.*+?()[\]{}|]/g,T4=/^\[object .+?Constructor\]$/,N4=Function.prototype,$4=Object.prototype,O4=N4.toString,D4=$4.hasOwnProperty,_4=RegExp("^"+O4.call(D4).replace(L4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z4(e){if(!ga(e)||A4(e))return!1;var t=M4(e)?_4:T4;return t.test(H(e))}var P4=z4;function U4(e,t){return e?.[t]}var V4=U4;function B4(e,t){var n=V4(e,t);return P4(n)?n:void 0}var Me=B4,G4=Me(B,"WeakMap"),Jr=G4;function F4(e,t){return e===t||e!==e&&t!==t}var R4=F4,q4=9007199254740991;function Q4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q4}var H4=Q4,MC=Object.prototype,Y4="[object Arguments]";function Z4(e){return an(e)&&vt(e)==Y4}var _o=Z4,pa=Object.prototype,W4=pa.hasOwnProperty,K4=pa.propertyIsEnumerable,xC=_o(function(){return arguments}())?_o:function(e){return an(e)&&W4.call(e,"callee")&&!K4.call(e,"callee")},fa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zo=fa&&typeof module=="object"&&module&&!module.nodeType&&module,J4=zo&&zo.exports===fa,Po=J4?B.Buffer:void 0,IC=Po?Po.isBuffer:void 0,X4="[object Arguments]",eb="[object Array]",tb="[object Boolean]",rb="[object Date]",nb="[object Error]",ib="[object Function]",ob="[object Map]",ab="[object Number]",lb="[object Object]",sb="[object RegExp]",ub="[object Set]",cb="[object String]",db="[object WeakMap]",gb="[object ArrayBuffer]",pb="[object DataView]",fb="[object Float32Array]",mb="[object Float64Array]",yb="[object Int8Array]",bb="[object Int16Array]",hb="[object Int32Array]",vb="[object Uint8Array]",wb="[object Uint8ClampedArray]",kb="[object Uint16Array]",Cb="[object Uint32Array]",j={};j[fb]=j[mb]=j[yb]=j[bb]=j[hb]=j[vb]=j[wb]=j[kb]=j[Cb]=!0;j[X4]=j[eb]=j[gb]=j[tb]=j[pb]=j[rb]=j[nb]=j[ib]=j[ob]=j[ab]=j[lb]=j[sb]=j[ub]=j[cb]=j[db]=!1;function Mb(e){return an(e)&&H4(e.length)&&!!j[vt(e)]}var xb=Mb;function Ib(e){return function(t){return e(t)}}var Ab=Ib,ma=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yt=ma&&typeof module=="object"&&module&&!module.nodeType&&module,Eb=yt&&yt.exports===ma,Zr=Eb&&ca.process,Sb=function(){try{var e=yt&&yt.require&&yt.require("util").types;return e||Zr&&Zr.binding&&Zr.binding("util")}catch{}}(),Uo=Sb,Vo=Uo&&Uo.isTypedArray,AC=Vo?Ab(Vo):xb,jb=Object.prototype,EC=jb.hasOwnProperty;function Lb(e,t){return function(n){return e(t(n))}}var Tb=Lb,SC=Tb(Object.keys,Object),Nb=Object.prototype,jC=Nb.hasOwnProperty,$b=Me(Object,"create"),bt=$b;function Ob(){this.__data__=bt?bt(null):{},this.size=0}var Db=Ob;function _b(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var zb=_b,Pb="__lodash_hash_undefined__",Ub=Object.prototype,Vb=Ub.hasOwnProperty;function Bb(e){var t=this.__data__;if(bt){var n=t[e];return n===Pb?void 0:n}return Vb.call(t,e)?t[e]:void 0}var Gb=Bb,Fb=Object.prototype,Rb=Fb.hasOwnProperty;function qb(e){var t=this.__data__;return bt?t[e]!==void 0:Rb.call(t,e)}var Qb=qb,Hb="__lodash_hash_undefined__";function Yb(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bt&&t===void 0?Hb:t,this}var Zb=Yb;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=Db;xe.prototype.delete=zb;xe.prototype.get=Gb;xe.prototype.has=Qb;xe.prototype.set=Zb;var Bo=xe;function Wb(){this.__data__=[],this.size=0}var Kb=Wb;function Jb(e,t){for(var n=e.length;n--;)if(R4(e[n][0],t))return n;return-1}var Jt=Jb,Xb=Array.prototype,e5=Xb.splice;function t5(e){var t=this.__data__,n=Jt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():e5.call(t,n,1),--this.size,!0}var r5=t5;function n5(e){var t=this.__data__,n=Jt(t,e);return n<0?void 0:t[n][1]}var i5=n5;function o5(e){return Jt(this.__data__,e)>-1}var a5=o5;function l5(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 s5=l5;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=Kb;Ie.prototype.delete=r5;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 f5(e,t){var n=e.__data__;return p5(t)?n[typeof t=="string"?"string":"hash"]:n.map}var er=f5;function m5(e){var t=er(this,e).delete(e);return this.size-=t?1:0,t}var y5=m5;function b5(e){return er(this,e).get(e)}var h5=b5;function v5(e){return er(this,e).has(e)}var w5=v5;function k5(e,t){var n=er(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var C5=k5;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=d5;Ae.prototype.delete=y5;Ae.prototype.get=h5;Ae.prototype.has=w5;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__,n=t.delete(e);return this.size=t.size,n}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 N5(e,t){var n=this.__data__;if(n instanceof Xt){var r=n.__data__;if(!ht||r.length<T5-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ya(r)}return n.set(e,t),this.size=n.size,this}var $5=N5;function wt(e){var t=this.__data__=new Xt(e);this.size=t.size}wt.prototype.clear=x5;wt.prototype.delete=A5;wt.prototype.get=S5;wt.prototype.has=L5;wt.prototype.set=$5;var O5=Object.prototype,LC=O5.propertyIsEnumerable,D5=Me(B,"DataView"),Xr=D5,_5=Me(B,"Promise"),en=_5,z5=Me(B,"Set"),tn=z5,Go="[object Map]",P5="[object Object]",Fo="[object Promise]",Ro="[object Set]",qo="[object WeakMap]",Qo="[object DataView]",U5=H(Xr),V5=H(ht),B5=H(en),G5=H(tn),F5=H(Jr),ve=vt;(Xr&&ve(new Xr(new ArrayBuffer(1)))!=Qo||ht&&ve(new ht)!=Go||en&&ve(en.resolve())!=Fo||tn&&ve(new tn)!=Ro||Jr&&ve(new Jr)!=qo)&&(ve=function(e){var t=vt(e),n=t==P5?e.constructor:void 0,r=n?H(n):"";if(r)switch(r){case U5:return Qo;case V5:return Go;case B5:return Fo;case G5:return Ro;case F5: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 rn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ya;++t<n;)this.add(e[t])}rn.prototype.add=rn.prototype.push=Q5;rn.prototype.has=Y5;var Ho=Ce?Ce.prototype:void 0,NC=Ho?Ho.valueOf:void 0,Z5=Object.prototype,$C=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"),zC=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 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 ba(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 J5(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 ba(r,t)}function X5(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 nh(2e3),await eh(t,e,n))}async function eh(e,t,n){switch(t.kind){case"image":return th(e,t,n);case"video":return rh(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function th(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 J5(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 rh(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function nh(e){return new Promise(t=>{setTimeout(t,e)})}var ha=X5;async function ih(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=zy(),v;if(u){if(v=Hy(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Dy(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),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 k=la([...r.output.middleware??[],o.debug?sa():void 0,o.dryRun?ha({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(on(h))throw new Error("Streaming generation is not supported yet from a panel");if(Wt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await $o(f,e,g,h),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 $o(f,e,g,h),Wt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(ke(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 oh=ih;function ah(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),lh(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:_y(e)}))}function lh(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 mt=ah;function va(e){return`${e}.generating`}function sh(e){return`${e}.abort`}function uh(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(sh(c),()=>{}),f=l.global(va(c),!1),v,k=f.value&&d,h=()=>{k&&(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 b=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:k?{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),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.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 w=await oh(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;ch(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(ke(w))return;mt(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):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 ch(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 wa=uh;async function dh(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=Ly(t.document),l=Ko(i,t.inputReference);if(!Ty(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Jo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Gy(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});wa(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Xo(o),c),c}var gh=dh;async function ph(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 wa(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Xo(o),l),l}var fh=ph,Wr="@imgly/plugin-ai-generation",mh=`
|
|
202
202
|
<svg>
|
|
203
203
|
<symbol
|
|
204
204
|
fill="none"
|
|
@@ -216,7 +216,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
|
|
|
259
259
|
|
|
260
260
|
</symbol>
|
|
261
261
|
</svg>
|
|
262
|
-
`,J9=K9,zo="ly.img.ai.quickAction.order",ut="ly.img.ai.quickAction.actions";function X9(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${zo}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${zo}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${ut}.${t}`))e.ui.experimental.setGlobalStateValue(`${ut}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${ut}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${ut}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${ut}.${t}`,{})[n]}}var sa=X9,Hr="ly.img.ai.inference.editMode",ua="ly.img.ai.inference.metadata";function ca(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function eb(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 tb({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var rb=tb;function nb({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 ib=nb;function ob({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=ab(r.engine,o,e),await a(n,r)}catch(s){throw he(s)&&i(),s}finally{t&&i()}}}function ab(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var lb=ob;function sb(e,t){switch(t.kind){case"text":return ub(e,t);case"image":return cb(e,t);case"video":return db(e,t);case"audio":return gb(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function ub(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(Jr(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function cb(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(Jr(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await pb(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function db(e,t){throw new Error("Function not implemented.")}async function gb(e,t){throw new Error("Function not implemented.")}async function pb(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${fb(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function fb(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var mb=sb;function yb({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=bb(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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 he(u)&&s(),u}finally{t&&s()}}}function bb(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 hb=yb;function vb(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new ea(n.engine,ua),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=f(`${i}.comparing`,"after"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),k(),g.editor.addUndoStep()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(ca({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=eb(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{gt(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Po({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw he(M)||gt(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{gt(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Po({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw he(k)||gt(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Po(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:Hr});let l=new ea(n.engine,ua);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Wo([...o.output.middleware??[],t.debug?Ko():void 0,ib({}),...i.confirmation?[i.lockDuringConfirmation?lb({editMode:Hr}):hb({editMode:Hr}),i.confirmation&&rb({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await mb(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var wb=vb;async function Cb(e,t,n){await e.initialize(t);let r=await Mb(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}`]:kb(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",J9),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await xb(e,o,n)}}function kb(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 Mb(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 X4(r,e)),r}return n}}async function xb(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Ib(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Ab(e,e.input.quickActions,t,n)),r}async function Ib(e,t,n,r){switch(t.type){case"custom":return J4(e,t,n,r);case"schema":return W4(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Ab(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=sa(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(ca({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=wb({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var Uo=Cb,jb="@imgly/plugin-ai-audio-generation-web",ct="ly.img.ai/audio-generation/speech",Yt="ly.img.ai/audio-generation/sound";function Eb(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.${ct}`]:"AI Voice",[`panel.${Yt}`]:"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(ct),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(ct)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Yt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Yt)}}}});let s=o!=null?await Uo(o,{cesdk:t,engine:t.engine},n):void 0,u=i!=null?await Uo(i,{cesdk:t,engine:t.engine},n):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Yt,u.renderBuilderFunctions.panel),s?.renderBuilderFunctions?.panel!=null&&(Sb(t,l=>{t.ui.openPanel(ct),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,l)}),t.ui.registerPanel(ct,s.renderBuilderFunctions.panel))}}}function Sb(e,t){let n=sa(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(),s=e.engine.block.getString(i,"text/text");t(s),o.closeMenu()}})}}),n.setQuickActionMenuOrder([...n.getQuickActionMenuOrder(),"ly.img.separator",r])}var Lb=Eb,Nb=e=>({name:jb,version:"0.1.2",...Lb(e)}),da=Nb;var Tb="@imgly/plugin-ai-text-generation",$b=`
|
|
262
|
+
`,yh=mh,Yo="ly.img.ai.quickAction.order",gt="ly.img.ai.quickAction.actions";function bh(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 ka=bh,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 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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function vh({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 wh=vh;function kh({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 Ch=kh;function Mh({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=xh(r.engine,o,e),await a(n,r)}catch(l){throw ke(l)&&i(),l}finally{t&&i()}}}function xh(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 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:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(on(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 Sh(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),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(on(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),w=await Th(n,m,y),C=await nn(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{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);b()},D=()=>{if(I==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",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};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,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${K5(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Nh=Ah;function $h({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=Oh(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 ke(u)&&l(),u}finally{t&&l()}}}function Oh(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 Dh=$h;async function _h(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 ua(n.engine,Ca);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=la([...o.output.middleware??[],t.debug?sa():void 0,Ch({}),...i.confirmation?[i.lockDuringConfirmation?Ih({editMode:Kr}):Dh({editMode:Kr}),i.confirmation&&wh({})]:[],t.dryRun?ha({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await Nh(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var Zo=_h;function zh(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 k=new ua(n.engine,Ca),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=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,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.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=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(Ma({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=hh(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{mt(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Zo({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw ke(M)||mt(M,{cesdk:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{mt(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await Zo({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw ke(C)||mt(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var Ph=zh;async function Uh(e,t,n){await e.initialize?.(t);let r=await Bh(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}`]: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 Gh(e,o,n)}}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,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 Xy(r,e)),r}return n}}async function Gh(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Fh(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Rh(e,e.input.quickActions,t,n)),r}async function Fh(e,t,n,r){switch(t.type){case"custom":return fh(e,t,n,r);case"schema":return gh(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Rh(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=ka(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}=Ph({cesdk:a,quickActionMenu:i,provider:e},r);r.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 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&&(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 n=ka(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 Yh=Qh,Zh=e=>({name:qh,version:"0.1.4",...Yh(e)}),xa=Zh;var Wh="@imgly/plugin-ai-text-generation",Kh=`
|
|
263
263
|
<svg>
|
|
264
264
|
<symbol
|
|
265
265
|
fill="none"
|
|
@@ -335,8 +335,8 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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
|
-
`,Db=$b;function Sa(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 wt(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=Sa(e,t.$ref),a={...wt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=wt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>wt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=wt(e,t[a],n));return r}return t}function Ob(e){return wt(e,{...e})}function _b(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function zb(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Pb(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Pb(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var La=zb,Ub="ly.img.ai",en="ly.img.ai/temp";async function Vb(e,t){return e.engine.asset.findAllSources().includes(en)||e.engine.asset.addLocalSource(en),e.engine.asset.apply(en,t)}function Na(e){return`${Ub}/${e}`}function Bb(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 Gb(){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 Fb(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 Ta(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 dn(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 $a(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?Rb(e,t,n,r,a,o):Oa(e,t,n,r,a,o);case"boolean":return _a(e,t,n,r,a,o);case"number":case"integer":return za(e,t,n,r,a,o);case"object":return Da(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return qb(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Da(e,t,n,r,a,o){let i=La(t.schema??{},r).reduce((s,u)=>{let l=$a(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function Oa(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=Hb(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Rb(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??Ta(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function _a(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function za(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,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(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function qb(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??Ta(M),icon:k[M]})}):(f[m]=()=>Oa(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>_a(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>za(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>Da(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function Hb(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Qb=$a,Yb="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Pa=Yb;function Zb(e,t,n){switch(t){case"image":return Wb(e,n[t]);case"video":return Kb(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Wb(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Kb(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Pa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Jb=Zb;function Xb(e,t){switch(e){case"image":return e3(t[e]);case"video":return t3(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function e3(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
|
|
339
|
-
`,"+")}`}}function t3(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var r3=Xb;async function n3(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 i3(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 o3(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 a3(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function i3(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 o3(e,t,n){let r=t.width,a=t.height,o=await Fb(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 a3(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 ga=n3;function Ua(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function l3(){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 Va=l3;async function s3(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Gb(),v;if(u){if(v=Jb(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Vb(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(Jt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=Ua([...r.output.middleware??[],o.debug?Va():void 0]),h;if(o.dryRun?h=await u3(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,dn(h))throw new Error("Streaming generation is not supported yet from a panel");if(Jt(s,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&s.engine.block.isValid(c)&&(p=await ga(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),Jt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await ga(f,e,g,h),Jt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(Ae(d)?s.engine.block.destroy(c):s.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Jt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function u3(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=r3(e,t);return await c3(3e3),n}async function c3(e){return new Promise(t=>{setTimeout(t,e)})}var d3=s3;function g3(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),p3(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Bb(e)}))}function p3(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 Ct=g3;function Ba(e){return`${e}.generating`}function f3(e){return`${e}.abort`}function m3(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(f3(c),()=>{}),f=s.global(Ba(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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 y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await d3(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;y3(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(Ae(C))return;Ct(C,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function y3(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 Ga=m3;async function b3(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=Ob(t.document),s=Sa(i,t.inputReference);if(!_b(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=La(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=Qb(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Ga(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Na(o),c),c}var h3=b3;async function v3(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Ba(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Ga(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Na(o),s),s}var w3=v3,C3=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.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 k3=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=k3,M3=typeof global=="object"&&global&&global.Object===Object&&global,Ra=M3,x3=typeof self=="object"&&self&&self.Object===Object&&self,I3=Ra||x3||Function("return this")(),P=I3,A3=P.Symbol,je=A3,qa=Object.prototype,j3=qa.hasOwnProperty,E3=qa.toString,ht=je?je.toStringTag:void 0;function S3(e){var t=j3.call(e,ht),n=e[ht];try{e[ht]=void 0;var r=!0}catch{}var a=E3.call(e);return r&&(t?e[ht]=n:delete e[ht]),a}var L3=S3,N3=Object.prototype,T3=N3.toString;function $3(e){return T3.call(e)}var D3=$3,O3="[object Null]",_3="[object Undefined]",pa=je?je.toStringTag:void 0;function z3(e){return e==null?e===void 0?_3:O3:pa&&pa in Object(e)?L3(e):D3(e)}var It=z3;function P3(e){return e!=null&&typeof e=="object"}var gn=P3,kk=Array.isArray;function U3(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ha=U3,V3="[object AsyncFunction]",B3="[object Function]",G3="[object GeneratorFunction]",F3="[object Proxy]";function R3(e){if(!Ha(e))return!1;var t=It(e);return t==B3||t==G3||t==V3||t==F3}var q3=R3,H3=P["__core-js_shared__"],tn=H3,fa=function(){var e=/[^.]+$/.exec(tn&&tn.keys&&tn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Q3(e){return!!fa&&fa in e}var Y3=Q3,Z3=Function.prototype,W3=Z3.toString;function K3(e){if(e!=null){try{return W3.call(e)}catch{}try{return e+""}catch{}}return""}var q=K3,J3=/[\\^$.*+?()[\]{}|]/g,X3=/^\[object .+?Constructor\]$/,e7=Function.prototype,t7=Object.prototype,r7=e7.toString,n7=t7.hasOwnProperty,i7=RegExp("^"+r7.call(n7).replace(J3,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function o7(e){if(!Ha(e)||Y3(e))return!1;var t=q3(e)?i7:X3;return t.test(q(e))}var a7=o7;function l7(e,t){return e?.[t]}var s7=l7;function u7(e,t){var n=s7(e,t);return a7(n)?n:void 0}var Ee=u7,c7=Ee(P,"WeakMap"),an=c7;function d7(e,t){return e===t||e!==e&&t!==t}var g7=d7,p7=9007199254740991;function f7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=p7}var m7=f7,Mk=Object.prototype,y7="[object Arguments]";function b7(e){return gn(e)&&It(e)==y7}var ma=b7,Qa=Object.prototype,h7=Qa.hasOwnProperty,v7=Qa.propertyIsEnumerable,xk=ma(function(){return arguments}())?ma:function(e){return gn(e)&&h7.call(e,"callee")&&!v7.call(e,"callee")},Ya=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ya=Ya&&typeof module=="object"&&module&&!module.nodeType&&module,w7=ya&&ya.exports===Ya,ba=w7?P.Buffer:void 0,Ik=ba?ba.isBuffer:void 0,C7="[object Arguments]",k7="[object Array]",M7="[object Boolean]",x7="[object Date]",I7="[object Error]",A7="[object Function]",j7="[object Map]",E7="[object Number]",S7="[object Object]",L7="[object RegExp]",N7="[object Set]",T7="[object String]",$7="[object WeakMap]",D7="[object ArrayBuffer]",O7="[object DataView]",_7="[object Float32Array]",z7="[object Float64Array]",P7="[object Int8Array]",U7="[object Int16Array]",V7="[object Int32Array]",B7="[object Uint8Array]",G7="[object Uint8ClampedArray]",F7="[object Uint16Array]",R7="[object Uint32Array]",E={};E[_7]=E[z7]=E[P7]=E[U7]=E[V7]=E[B7]=E[G7]=E[F7]=E[R7]=!0;E[C7]=E[k7]=E[D7]=E[M7]=E[O7]=E[x7]=E[I7]=E[A7]=E[j7]=E[E7]=E[S7]=E[L7]=E[N7]=E[T7]=E[$7]=!1;function q7(e){return gn(e)&&m7(e.length)&&!!E[It(e)]}var H7=q7;function Q7(e){return function(t){return e(t)}}var Y7=Q7,Za=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kt=Za&&typeof module=="object"&&module&&!module.nodeType&&module,Z7=kt&&kt.exports===Za,rn=Z7&&Ra.process,W7=function(){try{var e=kt&&kt.require&&kt.require("util").types;return e||rn&&rn.binding&&rn.binding("util")}catch{}}(),ha=W7,va=ha&&ha.isTypedArray,Ak=va?Y7(va):H7,K7=Object.prototype,jk=K7.hasOwnProperty;function J7(e,t){return function(n){return e(t(n))}}var X7=J7,Ek=X7(Object.keys,Object),eh=Object.prototype,Sk=eh.hasOwnProperty,th=Ee(Object,"create"),Mt=th;function rh(){this.__data__=Mt?Mt(null):{},this.size=0}var nh=rh;function ih(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var oh=ih,ah="__lodash_hash_undefined__",lh=Object.prototype,sh=lh.hasOwnProperty;function uh(e){var t=this.__data__;if(Mt){var n=t[e];return n===ah?void 0:n}return sh.call(t,e)?t[e]:void 0}var ch=uh,dh=Object.prototype,gh=dh.hasOwnProperty;function ph(e){var t=this.__data__;return Mt?t[e]!==void 0:gh.call(t,e)}var fh=ph,mh="__lodash_hash_undefined__";function yh(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Mt&&t===void 0?mh:t,this}var bh=yh;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=nh;Se.prototype.delete=oh;Se.prototype.get=ch;Se.prototype.has=fh;Se.prototype.set=bh;var wa=Se;function hh(){this.__data__=[],this.size=0}var vh=hh;function wh(e,t){for(var n=e.length;n--;)if(g7(e[n][0],t))return n;return-1}var Xt=wh,Ch=Array.prototype,kh=Ch.splice;function Mh(e){var t=this.__data__,n=Xt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():kh.call(t,n,1),--this.size,!0}var xh=Mh;function Ih(e){var t=this.__data__,n=Xt(t,e);return n<0?void 0:t[n][1]}var Ah=Ih;function jh(e){return Xt(this.__data__,e)>-1}var Eh=jh;function Sh(e,t){var n=this.__data__,r=Xt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Lh=Sh;function Le(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])}}Le.prototype.clear=vh;Le.prototype.delete=xh;Le.prototype.get=Ah;Le.prototype.has=Eh;Le.prototype.set=Lh;var er=Le,Nh=Ee(P,"Map"),xt=Nh;function Th(){this.size=0,this.__data__={hash:new wa,map:new(xt||er),string:new wa}}var $h=Th;function Dh(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Oh=Dh;function _h(e,t){var n=e.__data__;return Oh(t)?n[typeof t=="string"?"string":"hash"]:n.map}var tr=_h;function zh(e){var t=tr(this,e).delete(e);return this.size-=t?1:0,t}var Ph=zh;function Uh(e){return tr(this,e).get(e)}var Vh=Uh;function Bh(e){return tr(this,e).has(e)}var Gh=Bh;function Fh(e,t){var n=tr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Rh=Fh;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=$h;Ne.prototype.delete=Ph;Ne.prototype.get=Vh;Ne.prototype.has=Gh;Ne.prototype.set=Rh;var Wa=Ne;function qh(){this.__data__=new er,this.size=0}var Hh=qh;function Qh(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Yh=Qh;function Zh(e){return this.__data__.get(e)}var Wh=Zh;function Kh(e){return this.__data__.has(e)}var Jh=Kh,Xh=200;function e8(e,t){var n=this.__data__;if(n instanceof er){var r=n.__data__;if(!xt||r.length<Xh-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Wa(r)}return n.set(e,t),this.size=n.size,this}var t8=e8;function At(e){var t=this.__data__=new er(e);this.size=t.size}At.prototype.clear=Hh;At.prototype.delete=Yh;At.prototype.get=Wh;At.prototype.has=Jh;At.prototype.set=t8;var r8=Object.prototype,Lk=r8.propertyIsEnumerable,n8=Ee(P,"DataView"),ln=n8,i8=Ee(P,"Promise"),sn=i8,o8=Ee(P,"Set"),un=o8,Ca="[object Map]",a8="[object Object]",ka="[object Promise]",Ma="[object Set]",xa="[object WeakMap]",Ia="[object DataView]",l8=q(ln),s8=q(xt),u8=q(sn),c8=q(un),d8=q(an),xe=It;(ln&&xe(new ln(new ArrayBuffer(1)))!=Ia||xt&&xe(new xt)!=Ca||sn&&xe(sn.resolve())!=ka||un&&xe(new un)!=Ma||an&&xe(new an)!=xa)&&(xe=function(e){var t=It(e),n=t==a8?e.constructor:void 0,r=n?q(n):"";if(r)switch(r){case l8:return Ia;case s8:return Ca;case u8:return ka;case c8:return Ma;case d8:return xa}return t});var Nk=P.Uint8Array,g8="__lodash_hash_undefined__";function p8(e){return this.__data__.set(e,g8),this}var f8=p8;function m8(e){return this.__data__.has(e)}var y8=m8;function cn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Wa;++t<n;)this.add(e[t])}cn.prototype.add=cn.prototype.push=f8;cn.prototype.has=y8;var Aa=je?je.prototype:void 0,Tk=Aa?Aa.valueOf:void 0,b8=Object.prototype,$k=b8.hasOwnProperty,h8=Object.prototype,Dk=h8.hasOwnProperty,Ok=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_k=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zk=new RegExp(/[A-Fa-f0-9]{2}/,"g"),nn="@imgly/plugin-ai-generation",v8=`
|
|
338
|
+
`,Jh=Kh;function Ga(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=Ga(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 Xh(e){return Mt(e,{...e})}function e9(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 t9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return r9(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function r9(e,t){if(t.orderExtensionKeyword==null)return;let n=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=r.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&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Fa=t9,n9="ly.img.ai",ln="ly.img.ai/temp";async function i9(e,t){return e.engine.asset.findAllSources().includes(ln)||e.engine.asset.addLocalSource(ln),e.engine.asset.apply(ln,t)}function Ra(e){return`${n9}/${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 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 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,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 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 hn(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,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?s9(e,t,n,r,a,o):Ya(e,t,n,r,a,o);case"boolean":return Za(e,t,n,r,a,o);case"number":case"integer":return Wa(e,t,n,r,a,o);case"object":return Ha(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return u9(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Ha(e,t,n,r,a,o){let i=Fa(t.schema??{},r).reduce((l,u)=>{let s=Qa(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ya(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=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,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(h=>({id:h,label:d[h]??qa(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function Za(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 Wa(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 k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...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,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,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="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:w[M]??qa(M),icon:C[M]})}):(f[y]=()=>Ya(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Za(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>Wa(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>Ha(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.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,n){switch(t){case"image":return f9(e,n[t]);case"video":return m9(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f9(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Ka,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function m9(e,t){let n=t.width,r=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:n,height:r}}}var y9=p9;async function b9(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 h9(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 v9(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 w9(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(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 v9(e,t,n){let r=t.width,a=t.height,o=await l9(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 w9(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 Ia=b9;function Ja(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(k,h)=>l(s+1,k,h),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 k9(){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 Xa=k9,C9=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;Se(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=()=>{Se(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 Se(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),Se(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 Se(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]=Se(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]=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")(),G=A9,E9=G.Symbol,Le=E9,rl=Object.prototype,S9=rl.hasOwnProperty,j9=rl.toString,kt=Le?Le.toStringTag:void 0;function L9(e){var t=S9.call(e,kt),n=e[kt];try{e[kt]=void 0;var r=!0}catch{}var a=j9.call(e);return r&&(t?e[kt]=n:delete e[kt]),a}var T9=L9,N9=Object.prototype,$9=N9.toString;function O9(e){return $9.call(e)}var D9=O9,_9="[object Null]",z9="[object Undefined]",Aa=Le?Le.toStringTag:void 0;function P9(e){return e==null?e===void 0?z9:_9:Aa&&Aa in Object(e)?T9(e):D9(e)}var St=P9;function U9(e){return e!=null&&typeof e=="object"}var vn=U9,BC=Array.isArray;function V9(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var nl=V9,B9="[object AsyncFunction]",G9="[object Function]",F9="[object GeneratorFunction]",R9="[object Proxy]";function q9(e){if(!nl(e))return!1;var t=St(e);return t==G9||t==F9||t==B9||t==R9}var Q9=q9,H9=G["__core-js_shared__"],sn=H9,Ea=function(){var e=/[^.]+$/.exec(sn&&sn.keys&&sn.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,r3=Object.prototype,n3=t3.toString,i3=r3.hasOwnProperty,o3=RegExp("^"+n3.call(i3).replace(X9,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a3(e){if(!nl(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 n=u3(e,t);return l3(n)?n:void 0}var Te=c3,d3=Te(G,"WeakMap"),gn=d3;function g3(e,t){return e===t||e!==e&&t!==t}var p3=g3,f3=9007199254740991;function m3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f3}var y3=m3,GC=Object.prototype,b3="[object Arguments]";function h3(e){return vn(e)&&St(e)==b3}var Sa=h3,il=Object.prototype,v3=il.hasOwnProperty,w3=il.propertyIsEnumerable,FC=Sa(function(){return arguments}())?Sa:function(e){return vn(e)&&v3.call(e,"callee")&&!w3.call(e,"callee")},ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ja=ol&&typeof module=="object"&&module&&!module.nodeType&&module,k3=ja&&ja.exports===ol,La=k3?G.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]",N3="[object Set]",$3="[object String]",O3="[object WeakMap]",D3="[object ArrayBuffer]",_3="[object DataView]",z3="[object Float32Array]",P3="[object Float64Array]",U3="[object Int8Array]",V3="[object Int16Array]",B3="[object Int32Array]",G3="[object Uint8Array]",F3="[object Uint8ClampedArray]",R3="[object Uint16Array]",q3="[object Uint32Array]",L={};L[z3]=L[P3]=L[U3]=L[V3]=L[B3]=L[G3]=L[F3]=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[N3]=L[$3]=L[O3]=!1;function Q3(e){return vn(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,un=W3&&tl.process,K3=function(){try{var e=It&&It.require&&It.require("util").types;return e||un&&un.binding&&un.binding("util")}catch{}}(),Ta=K3,Na=Ta&&Ta.isTypedArray,qC=Na?Z3(Na):H3,J3=Object.prototype,QC=J3.hasOwnProperty;function X3(e,t){return function(n){return e(t(n))}}var e7=X3,HC=e7(Object.keys,Object),t7=Object.prototype,YC=t7.hasOwnProperty,r7=Te(Object,"create"),At=r7;function n7(){this.__data__=At?At(null):{},this.size=0}var i7=n7;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 n=t[e];return n===l7?void 0:n}return u7.call(t,e)?t[e]:void 0}var d7=c7,g7=Object.prototype,p7=g7.hasOwnProperty;function f7(e){var t=this.__data__;return At?t[e]!==void 0:p7.call(t,e)}var m7=f7,y7="__lodash_hash_undefined__";function b7(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=At&&t===void 0?y7:t,this}var h7=b7;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=i7;Ne.prototype.delete=a7;Ne.prototype.get=d7;Ne.prototype.has=m7;Ne.prototype.set=h7;var $a=Ne;function v7(){this.__data__=[],this.size=0}var w7=v7;function k7(e,t){for(var n=e.length;n--;)if(p3(e[n][0],t))return n;return-1}var rr=k7,C7=Array.prototype,M7=C7.splice;function x7(e){var t=this.__data__,n=rr(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():M7.call(t,n,1),--this.size,!0}var I7=x7;function A7(e){var t=this.__data__,n=rr(t,e);return n<0?void 0:t[n][1]}var E7=A7;function S7(e){return rr(this.__data__,e)>-1}var j7=S7;function L7(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 T7=L7;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=w7;$e.prototype.delete=I7;$e.prototype.get=E7;$e.prototype.has=j7;$e.prototype.set=T7;var nr=$e,N7=Te(G,"Map"),Et=N7;function $7(){this.size=0,this.__data__={hash:new $a,map:new(Et||nr),string:new $a}}var O7=$7;function D7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _7=D7;function z7(e,t){var n=e.__data__;return _7(t)?n[typeof t=="string"?"string":"hash"]:n.map}var ir=z7;function P7(e){var t=ir(this,e).delete(e);return this.size-=t?1:0,t}var U7=P7;function V7(e){return ir(this,e).get(e)}var B7=V7;function G7(e){return ir(this,e).has(e)}var F7=G7;function R7(e,t){var n=ir(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var q7=R7;function Oe(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])}}Oe.prototype.clear=O7;Oe.prototype.delete=U7;Oe.prototype.get=B7;Oe.prototype.has=F7;Oe.prototype.set=q7;var ll=Oe;function Q7(){this.__data__=new nr,this.size=0}var H7=Q7;function Y7(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}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 n=this.__data__;if(n instanceof nr){var r=n.__data__;if(!Et||r.length<e8-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ll(r)}return n.set(e,t),this.size=n.size,this}var r8=t8;function jt(e){var t=this.__data__=new nr(e);this.size=t.size}jt.prototype.clear=H7;jt.prototype.delete=Z7;jt.prototype.get=K7;jt.prototype.has=X7;jt.prototype.set=r8;var n8=Object.prototype,ZC=n8.propertyIsEnumerable,i8=Te(G,"DataView"),pn=i8,o8=Te(G,"Promise"),fn=o8,a8=Te(G,"Set"),mn=a8,Oa="[object Map]",l8="[object Object]",Da="[object Promise]",_a="[object Set]",za="[object WeakMap]",Pa="[object DataView]",s8=Y(pn),u8=Y(Et),c8=Y(fn),d8=Y(mn),g8=Y(gn),Ee=St;(pn&&Ee(new pn(new ArrayBuffer(1)))!=Pa||Et&&Ee(new Et)!=Oa||fn&&Ee(fn.resolve())!=Da||mn&&Ee(new mn)!=_a||gn&&Ee(new gn)!=za)&&(Ee=function(e){var t=St(e),n=t==l8?e.constructor:void 0,r=n?Y(n):"";if(r)switch(r){case s8:return Pa;case u8:return Oa;case c8:return Da;case d8:return _a;case g8:return za}return t});var WC=G.Uint8Array,p8="__lodash_hash_undefined__";function f8(e){return this.__data__.set(e,p8),this}var m8=f8;function y8(e){return this.__data__.has(e)}var b8=y8;function yn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ll;++t<n;)this.add(e[t])}yn.prototype.add=yn.prototype.push=m8;yn.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"),rM=new RegExp(/[A-Fa-f0-9]{2}/,"g");function w8(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 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 sl(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 k8(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 sl(r,t)}function C8(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 A8(2e3),await M8(t,e,n))}async function M8(e,t,n){switch(t.kind){case"image":return x8(e,t,n);case"video":return I8(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function x8(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 k8(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 I8(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function A8(e){return new Promise(t=>{setTimeout(t,e)})}var ul=C8;async function E8(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=a9(),v;if(u){if(v=y9(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await i9(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),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 k=Ja([...r.output.middleware??[],o.debug?Xa():void 0,o.dryRun?ul({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(hn(h))throw new Error("Streaming generation is not supported yet from a panel");if(tr(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Ia(f,e,g,h),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 Ia(f,e,g,h),tr(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(je(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 S8=E8;function j8(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),L8(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:o9(e)}))}function L8(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 xt=j8;function cl(e){return`${e}.generating`}function T8(e){return`${e}.abort`}function N8(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(T8(c),()=>{}),f=l.global(cl(c),!1),v,k=f.value&&d,h=()=>{k&&(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 b=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:k?{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),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.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 w=await S8(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;$8(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(je(w))return;xt(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):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 $8(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=N8;async function O8(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=Xh(t.document),l=Ga(i,t.inputReference);if(!e9(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Fa(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=d9(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});dl(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Ra(o),c),c}var D8=O8;async function _8(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(Ra(o),l),l}var z8=_8,cn="@imgly/plugin-ai-generation",P8=`
|
|
340
340
|
<svg>
|
|
341
341
|
<symbol
|
|
342
342
|
fill="none"
|
|
@@ -354,7 +354,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
|
|
|
397
397
|
|
|
398
398
|
</symbol>
|
|
399
399
|
</svg>
|
|
400
|
-
`,w8=v8,ja="ly.img.ai.quickAction.order",vt="ly.img.ai.quickAction.actions";function C8(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${ja}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ja}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${vt}.${t}`))e.ui.experimental.setGlobalStateValue(`${vt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${vt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${vt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${vt}.${t}`,{})[n]}}var Ka=C8,on="ly.img.ai.inference.editMode",Ja="ly.img.ai.inference.metadata";function Xa(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function k8(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 M8({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var x8=M8;function I8({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 A8=I8;function j8({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=E8(r.engine,o,e),await a(n,r)}catch(s){throw Ae(s)&&i(),s}finally{t&&i()}}}function E8(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var S8=j8;function L8(e,t){switch(t.kind){case"text":return N8(e,t);case"image":return T8(e,t);case"video":return $8(e,t);case"audio":return D8(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function N8(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(dn(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function T8(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(dn(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await O8(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function $8(e,t){throw new Error("Function not implemented.")}async function D8(e,t){throw new Error("Function not implemented.")}async function O8(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${_8(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function _8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var z8=L8;function P8({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=U8(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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)&&s(),u}finally{t&&s()}}}function U8(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 V8=P8;function B8(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new Fa(n.engine,Ja),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=f(`${i}.comparing`,"after"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),k(),g.editor.addUndoStep()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(Xa({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=k8(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{Ct(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Ea({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw Ae(M)||Ct(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{Ct(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Ea({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw Ae(k)||Ct(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Ea(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:on});let l=new Fa(n.engine,Ja);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ua([...o.output.middleware??[],t.debug?Va():void 0,A8({}),...i.confirmation?[i.lockDuringConfirmation?S8({editMode:on}):V8({editMode:on}),i.confirmation&&x8({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await z8(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var G8=B8;async function F8(e,t,n){await e.initialize(t);let r=await q8(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}`]:R8(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",w8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await H8(e,o,n)}}function R8(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 q8(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 C3(r,e)),r}return n}}async function H8(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Q8(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Y8(e,e.input.quickActions,t,n)),r}async function Q8(e,t,n,r){switch(t.type){case"custom":return w3(e,t,n,r);case"schema":return h3(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Y8(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=Ka(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(Xa({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=G8({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var Z8=F8,W8="@imgly/plugin-ai-text-generation-web",K8=e=>({async initialize({cesdk:t}){if(t==null)return;let n=await e.provider?.({cesdk:t});Z8(n,{cesdk:t,engine:t.engine},{debug:!0,dryRun:!1});let r=Ka(t,"text");r.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...r.getQuickActionMenuOrder()]),t.ui.addIconSet(Tb,Db),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..."}})}}),J8=e=>({name:W8,version:"0.1.2",...K8(e)}),el=J8;var wn=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,s=i+o,u=r.slice(i,s),l=s<r.length?a+1:void 0;return{assets:u,currentPage:a,nextPage:l,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 X8=typeof global=="object"&&global&&global.Object===Object&&global,ml=X8,e6=typeof self=="object"&&self&&self.Object===Object&&self,t6=ml||e6||Function("return this")(),U=t6,r6=U.Symbol,$e=r6,yl=Object.prototype,n6=yl.hasOwnProperty,i6=yl.toString,jt=$e?$e.toStringTag:void 0;function o6(e){var t=n6.call(e,jt),n=e[jt];try{e[jt]=void 0;var r=!0}catch{}var a=i6.call(e);return r&&(t?e[jt]=n:delete e[jt]),a}var a6=o6,l6=Object.prototype,s6=l6.toString;function u6(e){return s6.call(e)}var c6=u6,d6="[object Null]",g6="[object Undefined]",tl=$e?$e.toStringTag:void 0;function p6(e){return e==null?e===void 0?g6:d6:tl&&tl in Object(e)?a6(e):c6(e)}var Nt=p6;function f6(e){return e!=null&&typeof e=="object"}var Cn=f6,Bk=Array.isArray;function m6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bl=m6,y6="[object AsyncFunction]",b6="[object Function]",h6="[object GeneratorFunction]",v6="[object Proxy]";function w6(e){if(!bl(e))return!1;var t=Nt(e);return t==b6||t==h6||t==y6||t==v6}var C6=w6,k6=U["__core-js_shared__"],pn=k6,rl=function(){var e=/[^.]+$/.exec(pn&&pn.keys&&pn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function M6(e){return!!rl&&rl in e}var x6=M6,I6=Function.prototype,A6=I6.toString;function j6(e){if(e!=null){try{return A6.call(e)}catch{}try{return e+""}catch{}}return""}var H=j6,E6=/[\\^$.*+?()[\]{}|]/g,S6=/^\[object .+?Constructor\]$/,L6=Function.prototype,N6=Object.prototype,T6=L6.toString,$6=N6.hasOwnProperty,D6=RegExp("^"+T6.call($6).replace(E6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O6(e){if(!bl(e)||x6(e))return!1;var t=C6(e)?D6:S6;return t.test(H(e))}var _6=O6;function z6(e,t){return e?.[t]}var P6=z6;function U6(e,t){var n=P6(e,t);return _6(n)?n:void 0}var De=U6,V6=De(U,"WeakMap"),mn=V6;function B6(e,t){return e===t||e!==e&&t!==t}var G6=B6,F6=9007199254740991;function R6(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F6}var q6=R6;var Gk=Object.prototype;var H6="[object Arguments]";function Q6(e){return Cn(e)&&Nt(e)==H6}var nl=Q6,hl=Object.prototype,Y6=hl.hasOwnProperty,Z6=hl.propertyIsEnumerable,Fk=nl(function(){return arguments}())?nl:function(e){return Cn(e)&&Y6.call(e,"callee")&&!Z6.call(e,"callee")};var vl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,il=vl&&typeof module=="object"&&module&&!module.nodeType&&module,W6=il&&il.exports===vl,ol=W6?U.Buffer:void 0,Rk=ol?ol.isBuffer:void 0;var K6="[object Arguments]",J6="[object Array]",X6="[object Boolean]",ev="[object Date]",tv="[object Error]",rv="[object Function]",nv="[object Map]",iv="[object Number]",ov="[object Object]",av="[object RegExp]",lv="[object Set]",sv="[object String]",uv="[object WeakMap]",cv="[object ArrayBuffer]",dv="[object DataView]",gv="[object Float32Array]",pv="[object Float64Array]",fv="[object Int8Array]",mv="[object Int16Array]",yv="[object Int32Array]",bv="[object Uint8Array]",hv="[object Uint8ClampedArray]",vv="[object Uint16Array]",wv="[object Uint32Array]",S={};S[gv]=S[pv]=S[fv]=S[mv]=S[yv]=S[bv]=S[hv]=S[vv]=S[wv]=!0;S[K6]=S[J6]=S[cv]=S[X6]=S[dv]=S[ev]=S[tv]=S[rv]=S[nv]=S[iv]=S[ov]=S[av]=S[lv]=S[sv]=S[uv]=!1;function Cv(e){return Cn(e)&&q6(e.length)&&!!S[Nt(e)]}var kv=Cv;function Mv(e){return function(t){return e(t)}}var xv=Mv,wl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Et=wl&&typeof module=="object"&&module&&!module.nodeType&&module,Iv=Et&&Et.exports===wl,fn=Iv&&ml.process,Av=function(){try{var e=Et&&Et.require&&Et.require("util").types;return e||fn&&fn.binding&&fn.binding("util")}catch{}}(),al=Av,ll=al&&al.isTypedArray,qk=ll?xv(ll):kv;var jv=Object.prototype,Hk=jv.hasOwnProperty;function Ev(e,t){return function(n){return e(t(n))}}var Sv=Ev,Qk=Sv(Object.keys,Object);var Lv=Object.prototype,Yk=Lv.hasOwnProperty;var Nv=De(Object,"create"),St=Nv;function Tv(){this.__data__=St?St(null):{},this.size=0}var $v=Tv;function Dv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ov=Dv,_v="__lodash_hash_undefined__",zv=Object.prototype,Pv=zv.hasOwnProperty;function Uv(e){var t=this.__data__;if(St){var n=t[e];return n===_v?void 0:n}return Pv.call(t,e)?t[e]:void 0}var Vv=Uv,Bv=Object.prototype,Gv=Bv.hasOwnProperty;function Fv(e){var t=this.__data__;return St?t[e]!==void 0:Gv.call(t,e)}var Rv=Fv,qv="__lodash_hash_undefined__";function Hv(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=St&&t===void 0?qv:t,this}var Qv=Hv;function Oe(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])}}Oe.prototype.clear=$v;Oe.prototype.delete=Ov;Oe.prototype.get=Vv;Oe.prototype.has=Rv;Oe.prototype.set=Qv;var sl=Oe;function Yv(){this.__data__=[],this.size=0}var Zv=Yv;function Wv(e,t){for(var n=e.length;n--;)if(G6(e[n][0],t))return n;return-1}var rr=Wv,Kv=Array.prototype,Jv=Kv.splice;function Xv(e){var t=this.__data__,n=rr(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Jv.call(t,n,1),--this.size,!0}var ew=Xv;function tw(e){var t=this.__data__,n=rr(t,e);return n<0?void 0:t[n][1]}var rw=tw;function nw(e){return rr(this.__data__,e)>-1}var iw=nw;function ow(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 aw=ow;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=Zv;_e.prototype.delete=ew;_e.prototype.get=rw;_e.prototype.has=iw;_e.prototype.set=aw;var nr=_e,lw=De(U,"Map"),Lt=lw;function sw(){this.size=0,this.__data__={hash:new sl,map:new(Lt||nr),string:new sl}}var uw=sw;function cw(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dw=cw;function gw(e,t){var n=e.__data__;return dw(t)?n[typeof t=="string"?"string":"hash"]:n.map}var ir=gw;function pw(e){var t=ir(this,e).delete(e);return this.size-=t?1:0,t}var fw=pw;function mw(e){return ir(this,e).get(e)}var yw=mw;function bw(e){return ir(this,e).has(e)}var hw=bw;function vw(e,t){var n=ir(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var ww=vw;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=uw;ze.prototype.delete=fw;ze.prototype.get=yw;ze.prototype.has=hw;ze.prototype.set=ww;var Cl=ze;function Cw(){this.__data__=new nr,this.size=0}var kw=Cw;function Mw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var xw=Mw;function Iw(e){return this.__data__.get(e)}var Aw=Iw;function jw(e){return this.__data__.has(e)}var Ew=jw,Sw=200;function Lw(e,t){var n=this.__data__;if(n instanceof nr){var r=n.__data__;if(!Lt||r.length<Sw-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Cl(r)}return n.set(e,t),this.size=n.size,this}var Nw=Lw;function Tt(e){var t=this.__data__=new nr(e);this.size=t.size}Tt.prototype.clear=kw;Tt.prototype.delete=xw;Tt.prototype.get=Aw;Tt.prototype.has=Ew;Tt.prototype.set=Nw;var Tw=Object.prototype,Zk=Tw.propertyIsEnumerable;var $w=De(U,"DataView"),yn=$w,Dw=De(U,"Promise"),bn=Dw,Ow=De(U,"Set"),hn=Ow,ul="[object Map]",_w="[object Object]",cl="[object Promise]",dl="[object Set]",gl="[object WeakMap]",pl="[object DataView]",zw=H(yn),Pw=H(Lt),Uw=H(bn),Vw=H(hn),Bw=H(mn),Te=Nt;(yn&&Te(new yn(new ArrayBuffer(1)))!=pl||Lt&&Te(new Lt)!=ul||bn&&Te(bn.resolve())!=cl||hn&&Te(new hn)!=dl||mn&&Te(new mn)!=gl)&&(Te=function(e){var t=Nt(e),n=t==_w?e.constructor:void 0,r=n?H(n):"";if(r)switch(r){case zw:return pl;case Pw:return ul;case Uw:return cl;case Vw:return dl;case Bw:return gl}return t});var Wk=U.Uint8Array;var Gw="__lodash_hash_undefined__";function Fw(e){return this.__data__.set(e,Gw),this}var Rw=Fw;function qw(e){return this.__data__.has(e)}var Hw=qw;function vn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Cl;++t<n;)this.add(e[t])}vn.prototype.add=vn.prototype.push=Rw;vn.prototype.has=Hw;var fl=$e?$e.prototype:void 0,Kk=fl?fl.valueOf:void 0;var Qw=Object.prototype,Jk=Qw.hasOwnProperty;var Yw=Object.prototype,Xk=Yw.hasOwnProperty;var eM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),rM=new RegExp(/[A-Fa-f0-9]{2}/,"g");var kn=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:s,groups:u,excludeGroups:l,sortingOrder:c,sortKey:d}=t,g=[...this.assets];if(u&&u.length>0&&(g=g.filter(y=>y.groups&&u.some(m=>y.groups?.includes(m)))),l&&l.length>0&&(g=g.filter(y=>!y.groups||!l.some(m=>y.groups?.includes(m)))),i){let y=i.toLowerCase();g=g.filter(m=>{let C=m.label?.[a]?.toLowerCase(),k=m.tags?.[a]||[];return C&&C.includes(y)||k.some(M=>M.toLowerCase().includes(y))})}if(s&&s.length>0){let y=Array.isArray(s)?s:[s];g=g.filter(m=>{let C=m.tags?.[a]||[];return y.some(k=>C.includes(k))})}o&&g.sort((y,m)=>{let C=this.activeAssetIds.has(y.id),k=this.activeAssetIds.has(m.id);return C&&!k?-1:!C&&k?1:0}),d&&d!=="id"?g.sort((y,m)=>{let C=y.meta?.[d],k=m.meta?.[d];return C===void 0?1:k===void 0?-1:typeof C=="string"&&typeof k=="string"?c==="Descending"?k.localeCompare(C):C.localeCompare(k):typeof C=="number"&&typeof k=="number"?c==="Descending"?k-C:C-k:0}):d==="id"&&g.sort((y,m)=>c==="Descending"?m.id.localeCompare(y.id):y.id.localeCompare(m.id));let f=g.length,v=n*r,w=v+r,p=g.slice(v,w).map(y=>({id:y.id,groups:y.groups,meta:y.meta,payload:y.payload,locale:a,label:y.label?.[a],tags:y.tags?.[a],active:this.activeAssetIds.has(y.id)})),b=w<f?n+1:void 0;return{assets:p,currentPage:n,nextPage:b,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=Zw(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 kl(e,t,n=[]){return new kn(e,t,n)}function Zw(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 Mn="ly.img.ai.apps";var L=$t("apps"),or=512,ar=128,Ml=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 Ww(t,{isVideoMode:n,baseURL:a,debug:e.debug}),i=await Q(t,o,r.text2text),s=await Q(t,o,r.text2image),u=await Q(t,o,r.image2image),l,c,d,g;n&&(l=await Q(t,o,r.text2video),c=await Q(t,o,r.image2video),d=await Q(t,o,r.text2speech),g=await Q(t,o,r.text2sound),t.addPlugin(Co({text2video:l,image2video:c})),t.addPlugin(da({text2speech:d,text2sound:g}))),i!=null&&t.addPlugin(el({provider:i})),t.addPlugin(Ti({text2image:s,image2image:u})),Jw(t,{text2text:i,text2image:s,image2image:u,text2video:l,image2video:c,text2speech:d,text2sound:g},n),Xw(t)}});async function Q(e,t,n){if(n==null)return;let r=await n({cesdk:e});if(t!=null){let a=async(o,i,s)=>{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(`${L}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged(L);try{return await s(o,i)}finally{e.engine.asset.assetSourceContentsChanged(L),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${L}.isGenerating`,!1)}};r.output.middleware=[...r.output.middleware??[],a]}return()=>Promise.resolve(r)}async function Ww(e,t){let{isVideoMode:n,debug:r,baseURL:a}=t;Kw(e);let o;n&&(o=kl(L,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:or,height:ar}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:or,height:ar}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:or,height:ar}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:or,height:ar}}]),e.engine.asset.addSource(o),e.ui.registerPanel(L,({builder:s})=>{s.Library(L,{entries:[L],onSelect:async u=>{e.ui.openPanel($t(u.id))}})}),e.ui.addAssetLibraryEntry({id:L,sourceIds:[L],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:s})=>s,cardLabelPosition:()=>"inside"}));let i=`${L}.dock`;return n?(r&&console.log("Registering AI App Dock Button",i),e.ui.registerComponent(i,({builder:s,experimental:u})=>{let l=e.ui.isPanelOpen(L),c=u.global(`${L}.isGenerating`,!1);s.Button(`${L}.dock.button`,{label:"AI",isSelected:l,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(d=>{d.startsWith("ly.img.ai/")&&e.ui.closePanel(d),!l&&d==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(d)}),l?e.ui.closePanel(L):e.ui.openPanel(L)}})})):e.ui.registerComponent(i,({builder:s,experimental:u})=>{let l=$t("image-generation"),c=u.global(`${L}.isGenerating`,!1),d=e.ui.isPanelOpen(l);s.Button(`${L}.dock.button`,{label:"AI",isSelected:d,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{d?e.ui.closePanel(l):e.ui.openPanel(l)}})}),{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:s,icon:u,entries:l}=r;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${a}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${a}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let c=n.scene.getMode(),d=l.filter(h=>{let p=e.ui.getAssetLibraryEntry(h);return p==null?!1:p.sceneMode!=null?p.sceneMode===c:!0});if(d.length===0)return;let g=s;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(h=>{(h===L||h.startsWith("ly.img.ai/"))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function Jw(e,t,n){let r=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new wn("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 s=await t.text2video?.({cesdk:e}),u=await t.image2video?.({cesdk:e}),l=new wn("ly.img.ai/video-generation.history",e,[s!=null?`${s.id}.history`:void 0,u!=null?`${u?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(l);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 Xw(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.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 eC=e=>({name:Mn,version:"0.1.2",...Ml(e)}),CM=eC;export{CM as default};
|
|
400
|
+
`,U8=P8,Va="ly.img.ai.quickAction.order",Ct="ly.img.ai.quickAction.actions";function V8(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=V8,dn="ly.img.ai.inference.editMode",pl="ly.img.ai.inference.metadata";function fl(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function G8({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 F8=G8;function R8({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 q8=R8;function Q8({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=H8(r.engine,o,e),await a(n,r)}catch(l){throw je(l)&&i(),l}finally{t&&i()}}}function H8(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 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:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(hn(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 K8(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),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(hn(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),w=await e6(n,m,y),C=await bn(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{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);b()},D=()=>{if(I==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",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};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,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${w8(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var t6=Z8;function r6({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=n6(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 je(u)&&l(),u}finally{t&&l()}}}function n6(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 i6=r6;async function o6(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 el(n.engine,pl);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ja([...o.output.middleware??[],t.debug?Xa():void 0,q8({}),...i.confirmation?[i.lockDuringConfirmation?Y8({editMode:dn}):i6({editMode:dn}),i.confirmation&&F8({})]:[],t.dryRun?ul({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await t6(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var Ba=o6;function a6(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 k=new el(n.engine,pl),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.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 b=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,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.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=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(fl({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=B8(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{xt(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Ba({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,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:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{xt(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await Ba({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw je(C)||xt(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var l6=a6;async function s6(e,t,n){await e.initialize?.(t);let r=await c6(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}`]: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,n)}}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,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 C9(r,e)),r}return n}}async function d6(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await g6(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),p6(e,e.input.quickActions,t,n)),r}async function g6(e,t,n,r){switch(t.type){case"custom":return z8(e,t,n,r);case"schema":return D8(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function p6(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(fl({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}=l6({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var f6=s6,m6="@imgly/plugin-ai-text-generation-web",y6=e=>({async initialize({cesdk:t}){if(t==null)return;let n=await e.provider?.({cesdk:t});f6(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(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:m6,version:"0.1.4",...y6(e)}),ml=b6;var En=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 h6=typeof global=="object"&&global&&global.Object===Object&&global,Ll=h6,v6=typeof self=="object"&&self&&self.Object===Object&&self,w6=Ll||v6||Function("return this")(),F=w6,k6=F.Symbol,_e=k6,Tl=Object.prototype,C6=Tl.hasOwnProperty,M6=Tl.toString,Lt=_e?_e.toStringTag:void 0;function x6(e){var t=C6.call(e,Lt),n=e[Lt];try{e[Lt]=void 0;var r=!0}catch{}var a=M6.call(e);return r&&(t?e[Lt]=n: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 N6(e){return e==null?e===void 0?T6:L6:yl&&yl in Object(e)?I6(e):j6(e)}var Ot=N6;function $6(e){return e!=null&&typeof e=="object"}var Sn=$6,aM=Array.isArray;function O6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Nl=O6,D6="[object AsyncFunction]",_6="[object Function]",z6="[object GeneratorFunction]",P6="[object Proxy]";function U6(e){if(!Nl(e))return!1;var t=Ot(e);return t==_6||t==z6||t==D6||t==P6}var V6=U6,B6=F["__core-js_shared__"],wn=B6,bl=function(){var e=/[^.]+$/.exec(wn&&wn.keys&&wn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function G6(e){return!!bl&&bl in e}var F6=G6,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(!Nl(e)||F6(e))return!1;var t=V6(e)?X6:Y6;return t.test(Z(e))}var tv=ev;function rv(e,t){return e?.[t]}var nv=rv;function iv(e,t){var n=nv(e,t);return tv(n)?n:void 0}var ze=iv,ov=ze(F,"WeakMap"),Cn=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 Sn(e)&&Ot(e)==dv}var hl=gv,$l=Object.prototype,pv=$l.hasOwnProperty,fv=$l.propertyIsEnumerable,sM=hl(function(){return arguments}())?hl:function(e){return Sn(e)&&pv.call(e,"callee")&&!fv.call(e,"callee")};var Ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vl=Ol&&typeof module=="object"&&module&&!module.nodeType&&module,mv=vl&&vl.exports===Ol,wl=mv?F.Buffer:void 0,uM=wl?wl.isBuffer:void 0;var yv="[object Arguments]",bv="[object Array]",hv="[object Boolean]",vv="[object Date]",wv="[object Error]",kv="[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]",Nv="[object Float64Array]",$v="[object Int8Array]",Ov="[object Int16Array]",Dv="[object Int32Array]",_v="[object Uint8Array]",zv="[object Uint8ClampedArray]",Pv="[object Uint16Array]",Uv="[object Uint32Array]",T={};T[Tv]=T[Nv]=T[$v]=T[Ov]=T[Dv]=T[_v]=T[zv]=T[Pv]=T[Uv]=!0;T[yv]=T[bv]=T[jv]=T[hv]=T[Lv]=T[vv]=T[wv]=T[kv]=T[Cv]=T[Mv]=T[xv]=T[Iv]=T[Av]=T[Ev]=T[Sv]=!1;function Vv(e){return Sn(e)&&cv(e.length)&&!!T[Ot(e)]}var Bv=Vv;function Gv(e){return function(t){return e(t)}}var Fv=Gv,Dl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tt=Dl&&typeof module=="object"&&module&&!module.nodeType&&module,Rv=Tt&&Tt.exports===Dl,kn=Rv&&Ll.process,qv=function(){try{var e=Tt&&Tt.require&&Tt.require("util").types;return e||kn&&kn.binding&&kn.binding("util")}catch{}}(),kl=qv,Cl=kl&&kl.isTypedArray,cM=Cl?Fv(Cl):Bv;var Qv=Object.prototype,dM=Qv.hasOwnProperty;function Hv(e,t){return function(n){return e(t(n))}}var Yv=Hv,gM=Yv(Object.keys,Object);var Zv=Object.prototype,pM=Zv.hasOwnProperty;var Wv=ze(Object,"create"),Nt=Wv;function Kv(){this.__data__=Nt?Nt(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 ew=Xv,tw="__lodash_hash_undefined__",rw=Object.prototype,nw=rw.hasOwnProperty;function iw(e){var t=this.__data__;if(Nt){var n=t[e];return n===tw?void 0:n}return nw.call(t,e)?t[e]:void 0}var ow=iw,aw=Object.prototype,lw=aw.hasOwnProperty;function sw(e){var t=this.__data__;return Nt?t[e]!==void 0:lw.call(t,e)}var uw=sw,cw="__lodash_hash_undefined__";function dw(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Nt&&t===void 0?cw:t,this}var gw=dw;function Pe(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])}}Pe.prototype.clear=Jv;Pe.prototype.delete=ew;Pe.prototype.get=ow;Pe.prototype.has=uw;Pe.prototype.set=gw;var Ml=Pe;function pw(){this.__data__=[],this.size=0}var fw=pw;function mw(e,t){for(var n=e.length;n--;)if(lv(e[n][0],t))return n;return-1}var or=mw,yw=Array.prototype,bw=yw.splice;function hw(e){var t=this.__data__,n=or(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():bw.call(t,n,1),--this.size,!0}var vw=hw;function ww(e){var t=this.__data__,n=or(t,e);return n<0?void 0:t[n][1]}var kw=ww;function Cw(e){return or(this.__data__,e)>-1}var Mw=Cw;function xw(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 Iw=xw;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=fw;Ue.prototype.delete=vw;Ue.prototype.get=kw;Ue.prototype.has=Mw;Ue.prototype.set=Iw;var ar=Ue,Aw=ze(F,"Map"),$t=Aw;function Ew(){this.size=0,this.__data__={hash:new Ml,map:new($t||ar),string:new Ml}}var Sw=Ew;function jw(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Lw=jw;function Tw(e,t){var n=e.__data__;return Lw(t)?n[typeof t=="string"?"string":"hash"]:n.map}var lr=Tw;function Nw(e){var t=lr(this,e).delete(e);return this.size-=t?1:0,t}var $w=Nw;function Ow(e){return lr(this,e).get(e)}var Dw=Ow;function _w(e){return lr(this,e).has(e)}var zw=_w;function Pw(e,t){var n=lr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Uw=Pw;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=Sw;Ve.prototype.delete=$w;Ve.prototype.get=Dw;Ve.prototype.has=zw;Ve.prototype.set=Uw;var _l=Ve;function Vw(){this.__data__=new ar,this.size=0}var Bw=Vw;function Gw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Fw=Gw;function Rw(e){return this.__data__.get(e)}var qw=Rw;function Qw(e){return this.__data__.has(e)}var Hw=Qw,Yw=200;function Zw(e,t){var n=this.__data__;if(n instanceof ar){var r=n.__data__;if(!$t||r.length<Yw-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 Ww=Zw;function Dt(e){var t=this.__data__=new ar(e);this.size=t.size}Dt.prototype.clear=Bw;Dt.prototype.delete=Fw;Dt.prototype.get=qw;Dt.prototype.has=Hw;Dt.prototype.set=Ww;var Kw=Object.prototype,fM=Kw.propertyIsEnumerable;var Jw=ze(F,"DataView"),Mn=Jw,Xw=ze(F,"Promise"),xn=Xw,ek=ze(F,"Set"),In=ek,xl="[object Map]",tk="[object Object]",Il="[object Promise]",Al="[object Set]",El="[object WeakMap]",Sl="[object DataView]",rk=Z(Mn),nk=Z($t),ik=Z(xn),ok=Z(In),ak=Z(Cn),De=Ot;(Mn&&De(new Mn(new ArrayBuffer(1)))!=Sl||$t&&De(new $t)!=xl||xn&&De(xn.resolve())!=Il||In&&De(new In)!=Al||Cn&&De(new Cn)!=El)&&(De=function(e){var t=Ot(e),n=t==tk?e.constructor:void 0,r=n?Z(n):"";if(r)switch(r){case rk:return Sl;case nk:return xl;case ik:return Il;case ok:return Al;case ak:return El}return t});var mM=F.Uint8Array;var lk="__lodash_hash_undefined__";function sk(e){return this.__data__.set(e,lk),this}var uk=sk;function ck(e){return this.__data__.has(e)}var dk=ck;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=uk;An.prototype.has=dk;var jl=_e?_e.prototype:void 0,yM=jl?jl.valueOf:void 0;var gk=Object.prototype,bM=gk.hasOwnProperty;var pk=Object.prototype,hM=pk.hasOwnProperty;var vM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),kM=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 w=y.label?.[a]?.toLowerCase(),C=y.tags?.[a]||[];return w&&w.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 w=y.tags?.[a]||[];return m.some(C=>w.includes(C))})}o&&g.sort((m,y)=>{let w=this.activeAssetIds.has(m.id),C=this.activeAssetIds.has(y.id);return w&&!C?-1:!w&&C?1:0}),d&&d!=="id"?g.sort((m,y)=>{let w=m.meta?.[d],C=y.meta?.[d];return w===void 0?1:C===void 0?-1:typeof w=="string"&&typeof C=="string"?c==="Descending"?C.localeCompare(w):w.localeCompare(C):typeof w=="number"&&typeof C=="number"?c==="Descending"?C-w:w-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,k=v+r,p=g.slice(v,k).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)})),b=k<f?n+1:void 0;return{assets:p,currentPage:n,nextPage:b,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=fk(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 zl(e,t,n=[]){return new jn(e,t,n)}function fk(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=_t("apps"),sr=512,ur=128,Pl=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 mk(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(No({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(ml({provider:i,debug:e.debug})),t.addPlugin(Bi({text2image:l,image2image:u,debug:e.debug,dryRun:e.dryRun})),bk(t,{text2text:i,text2image:l,image2image:u,text2video:s,image2video:c,text2speech:d,text2sound:g},n),hk(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 mk(e,t){let{isVideoMode:n,debug:r,baseURL:a}=t;yk(e);let o;n&&(o=zl(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(_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 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=_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 yk(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(h=>typeof h!="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(h=>{let p=e.ui.getAssetLibraryEntry(h);return p==null?!1:p.sceneMode!=null?p.sceneMode===c:!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"),k=u;k==null&&d.length===1&&(k=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:k,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===N||h.startsWith("ly.img.ai/"))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function bk(e,t,n){let r=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new En("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 En("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 hk(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 vk=e=>({name:Ln,version:"0.1.4",...Pl(e)}),VM=vk;export{VM as default};
|
|
401
401
|
/*! Bundled license information:
|
|
402
402
|
|
|
403
403
|
@imgly/plugin-ai-generation-web/dist/index.mjs:
|