shaders 3.2.468 → 3.2.469

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/js/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /* shaders@3.2.468/js — ESM bundle for CDN consumption (no bundler required). https://shaders.com */
1
+ /* shaders@3.2.469/js — ESM bundle for CDN consumption (no bundler required). https://shaders.com */
2
2
  var ou=class extends Error{reason;constructor(e,t,s){super(t??`[gpu] WebGPU unavailable (${e})`),this.name="GpuUnavailableError",this.reason=e,s?.cause!==void 0&&(this.cause=s.cause)}};function $y(e){return!!e&&typeof e=="object"&&e.name==="GpuUnavailableError"&&typeof e.reason=="string"}var qy=null;function d6(e){qy=e}function l1(){if(qy!==null)return qy;let e=globalThis.__SHADERS_DEBUG__;if(e!=null)return!!e;try{if(typeof localStorage<"u"&&localStorage.getItem("shaders:debug")==="1")return!0}catch{}return!1}function rn(...e){l1()&&console.warn(...e)}function hr(...e){l1()&&console.error(...e)}function Xy(){return typeof navigator<"u"&&!!navigator.gpu}var i1=null;function Hy(){return i1||(i1=(async()=>{if(!Xy())return{supported:!1,reason:"unsupported"};try{return await navigator.gpu.requestAdapter({powerPreference:"high-performance"})?{supported:!0}:{supported:!1,reason:"no-adapter"}}catch(e){return hr("[gpu] adapter probe threw:",e),{supported:!1,reason:"no-adapter"}}})(),i1)}var Tq=new Set(["unsupported","no-adapter","no-device","out-of-memory","gpu-error"]),Ny=null;function u6(e){Ny||!Tq.has(e)||(Ny=e)}function p6(){return Ny}function Gr(e,t){let s=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(t[0])||(t=t.map(i=>[i]));let r=t[0].length,o=t[0].map((i,l)=>t.map(c=>c[l])),a=e.map(i=>o.map(l=>{let c=0;if(!Array.isArray(i)){for(let d of l)c+=i*d;return c}for(let d=0;d<i.length;d++)c+=i[d]*(l[d]||0);return c}));return s===1&&(a=a[0]),r===1?a.map(i=>i[0]):a}function dm(e){return Wl(e)==="string"}function Wl(e){return(Object.prototype.toString.call(e).match(/^\[object\s+(.*?)\]$/)[1]||"").toLowerCase()}function g1(e,{precision:t,unit:s}){return Vl(e)?"none":dw(e,t)+(s??"")}function Vl(e){return Number.isNaN(e)||e instanceof Number&&e?.none}function go(e){return Vl(e)?0:e}function dw(e,t){if(e===0)return 0;let s=~~e,r=0;s&&t&&(r=~~Math.log10(Math.abs(s))+1);let o=10**(t-r);return Math.floor(e*o+.5)/o}var Sq={deg:1,grad:.9,rad:180/Math.PI,turn:360};function uw(e){if(!e)return;e=e.trim();let t=/^([a-z]+)\((.+?)\)$/i,s=/^-?[\d.]+$/,r=/%|deg|g?rad|turn$/,o=/\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g,a=e.match(t);if(a){let i=[];return a[2].replace(o,(l,c)=>{let d=c.match(r),u=c;if(d){let p=d[0],_=u.slice(0,-p.length);p==="%"?(u=new Number(_/100),u.type="<percentage>"):(u=new Number(_*Sq[p]),u.type="<angle>",u.unit=p)}else s.test(u)?(u=new Number(u),u.type="<number>"):u==="none"&&(u=new Number(NaN),u.none=!0);l.startsWith("/")&&(u=u instanceof Number?u:new Number(u),u.alpha=!0),typeof u=="object"&&u instanceof Number&&(u.raw=c),i.push(u)}),{name:a[1].toLowerCase(),rawName:a[1],rawArgs:a[2],args:i}}}function pw(e){return e[e.length-1]}function im(e,t,s){return isNaN(e)?t:isNaN(t)?e:e+(t-e)*s}function mw(e,t,s){return(s-e)/(t-e)}function m0(e,t,s){return im(t[0],t[1],mw(e[0],e[1],s))}function _w(e){return e.map(t=>t.split("|").map(s=>{s=s.trim();let r=s.match(/^(<[a-z]+>)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);if(r){let o=new String(r[1]);return o.range=[+r[2],+r[3]],o}return s}))}function fw(e,t,s){return Math.max(Math.min(s,t),e)}function A1(e,t){return Math.sign(e)===Math.sign(t)?e:-e}function vi(e,t){return A1(Math.abs(e)**t,e)}function _0(e,t){return t===0?0:e/t}function vw(e,t,s=0,r=e.length){for(;s<r;){let o=s+r>>1;e[o]<t?s=o+1:r=o}return s}var Pq=Object.freeze({__proto__:null,bisectLeft:vw,clamp:fw,copySign:A1,interpolate:im,interpolateInv:mw,isNone:Vl,isString:dm,last:pw,mapRange:m0,multiplyMatrices:Gr,parseCoordGrammar:_w,parseFunction:uw,serializeNumber:g1,skipNone:go,spow:vi,toPrecision:dw,type:Wl,zdiv:_0}),Cq=class{add(e,t,s){if(typeof arguments[0]!="string"){for(var e in arguments[0])this.add(e,arguments[0][e],arguments[1]);return}(Array.isArray(e)?e:[e]).forEach(function(r){this[r]=this[r]||[],t&&this[r][s?"unshift":"push"](t)},this)}run(e,t){this[e]=this[e]||[],this[e].forEach(function(s){s.call(t&&t.context?t.context:t,t)})}},ql=new Cq,nn={gamut_mapping:"css",precision:5,deltaE:"76",verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!=="test",warn:function(t){this.verbose&&globalThis?.console?.warn?.(t)}},ga={D50:[.3457/.3585,1,.2958/.3585],D65:[.3127/.329,1,.3583/.329]};function a0(e){return Array.isArray(e)?e:ga[e]}function y1(e,t,s,r={}){if(e=a0(e),t=a0(t),!e||!t)throw new TypeError(`Missing white point to convert ${e?"":"from"}${!e&&!t?"/":""}${t?"":"to"}`);if(e===t)return s;let o={W1:e,W2:t,XYZ:s,options:r};if(ql.run("chromatic-adaptation-start",o),o.M||(o.W1===ga.D65&&o.W2===ga.D50?o.M=[[1.0479297925449969,.022946870601609652,-.05019226628920524],[.02962780877005599,.9904344267538799,-.017073799063418826],[-.009243040646204504,.015055191490298152,.7518742814281371]]:o.W1===ga.D50&&o.W2===ga.D65&&(o.M=[[.955473421488075,-.02309845494876471,.06325924320057072],[-.0283697093338637,1.0099953980813041,.021041441191917323],[.012314014864481998,-.020507649298898964,1.330365926242124]])),ql.run("chromatic-adaptation-end",o),o.M)return Gr(o.M,o.XYZ);throw new TypeError("Only Bradford CAT with white points D50 and D65 supported for now.")}var Mq=new Set(["<number>","<percentage>","<angle>"]);function m6(e,t,s,r){return Object.entries(e.coords).map(([o,a],i)=>{let l=t.coordGrammar[i],c=r[i],d=c?.type,u;if(c.none?u=l.find(f=>Mq.has(f)):u=l.find(f=>f==d),!u){let f=a.name||o;throw new TypeError(`${d??c.raw} not allowed for ${f} in ${s}()`)}let p=u.range;d==="<percentage>"&&(p||=[0,1]);let _=a.range||a.refRange;return p&&_&&(r[i]=m0(p,_,r[i])),u})}function hw(e,{meta:t}={}){let s={str:String(e)?.trim()};if(ql.run("parse-start",s),s.color)return s.color;if(s.parsed=uw(s.str),s.parsed){let r=s.parsed.name;if(r==="color"){let o=s.parsed.args.shift(),a=o.startsWith("--")?o.substring(2):`--${o}`,i=[o,a],l=s.parsed.rawArgs.indexOf("/")>0?s.parsed.args.pop():1;for(let u of Xt.all){let p=u.getFormat("color");if(p&&(i.includes(p.id)||p.ids?.filter(_=>i.includes(_)).length)){let _=Object.keys(u.coords).map((v,g)=>s.parsed.args[g]||0),f;return p.coordGrammar&&(f=m6(u,p,"color",_)),t&&Object.assign(t,{formatId:"color",types:f}),p.id.startsWith("--")&&!o.startsWith("--")&&nn.warn(`${u.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${p.id}) instead of color(${o}).`),o.startsWith("--")&&!p.id.startsWith("--")&&nn.warn(`${u.name} is a standard space and supported in the CSS spec. Use color(${p.id}) instead of prefixed color(${o}).`),{spaceId:u.id,coords:_,alpha:l}}}let c="",d=o in Xt.registry?o:a;if(d in Xt.registry){let u=Xt.registry[d].formats?.color?.id;u&&(c=`Did you mean color(${u})?`)}throw new TypeError(`Cannot parse color(${o}). `+(c||"Missing a plugin?"))}else for(let o of Xt.all){let a=o.getFormat(r);if(a&&a.type==="function"){let i=1;(a.lastAlpha||pw(s.parsed.args).alpha)&&(i=s.parsed.args.pop());let l=s.parsed.args,c;return a.coordGrammar&&(c=m6(o,a,r,l)),t&&Object.assign(t,{formatId:a.name,types:c}),{spaceId:o.id,coords:l,alpha:i}}}}else for(let r of Xt.all)for(let o in r.formats){let a=r.formats[o];if(a.type!=="custom"||a.test&&!a.test(s.str))continue;let i=a.parse(s.str);if(i)return i.alpha??=1,t&&(t.formatId=o),i}throw new TypeError(`Could not parse ${e} as a color. Missing a plugin?`)}function ws(e){if(Array.isArray(e))return e.map(ws);if(!e)throw new TypeError("Empty color reference");dm(e)&&(e=hw(e));let t=e.space||e.spaceId;return t instanceof Xt||(e.space=Xt.get(t)),e.alpha===void 0&&(e.alpha=1),e}var Eq=75e-6,Xt=class Zn{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?Zn.get(t.base):null,this.aliases=t.aliases,this.base&&(this.fromBase=t.fromBase,this.toBase=t.toBase);let s=t.coords??this.base.coords;for(let r in s)"name"in s[r]||(s[r].name=r);this.coords=s,this.white=a0(t.white??this.base.white??"D65"),this.formats=t.formats??{};for(let r in this.formats){let o=this.formats[r];o.type||="function",o.name||=r}this.formats.color?.id||(this.formats.color={...this.formats.color??{},id:t.cssId||this.id}),t.gamutSpace?this.gamutSpace=t.gamutSpace==="self"?this:Zn.get(t.gamutSpace):this.isPolar?this.gamutSpace=this.base:this.gamutSpace=this,this.gamutSpace.isUnbounded&&(this.inGamut=(r,o)=>!0),this.referred=t.referred,Object.defineProperty(this,"path",{value:kq(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),ql.run("colorspace-init-end",this)}inGamut(t,{epsilon:s=Eq}={}){if(!this.equals(this.gamutSpace))return t=this.to(this.gamutSpace,t),this.gamutSpace.inGamut(t,{epsilon:s});let r=Object.values(this.coords);return t.every((o,a)=>{let i=r[a];if(i.type!=="angle"&&i.range){if(Number.isNaN(o))return!0;let[l,c]=i.range;return(l===void 0||o>=l-s)&&(c===void 0||o<=c+s)}return!0})}get isUnbounded(){return Object.values(this.coords).every(t=>!("range"in t))}get cssId(){return this.formats?.color?.id||this.id}get isPolar(){for(let t in this.coords)if(this.coords[t].type==="angle")return!0;return!1}getFormat(t){if(typeof t=="object")return t=_6(t,this),t;let s;return t==="default"?s=Object.values(this.formats)[0]:s=this.formats[t],s?(s=_6(s,this),s):null}equals(t){return t?this===t||this.id===t||this.id===t.id:!1}to(t,s){if(arguments.length===1){let l=ws(t);[t,s]=[l.space,l.coords]}if(t=Zn.get(t),this.equals(t))return s;s=s.map(l=>Number.isNaN(l)?0:l);let r=this.path,o=t.path,a,i;for(let l=0;l<r.length&&r[l].equals(o[l]);l++)a=r[l],i=l;if(!a)throw new Error(`Cannot convert between color spaces ${this} and ${t}: no connection space was found`);for(let l=r.length-1;l>i;l--)s=r[l].toBase(s);for(let l=i+1;l<o.length;l++)s=o[l].fromBase(s);return s}from(t,s){if(arguments.length===1){let r=ws(t);[t,s]=[r.space,r.coords]}return t=Zn.get(t),t.to(this,s)}toString(){return`${this.name} (${this.id})`}getMinCoords(){let t=[];for(let s in this.coords){let r=this.coords[s],o=r.range||r.refRange;t.push(o?.min??0)}return t}static registry={};static get all(){return[...new Set(Object.values(Zn.registry))]}static register(t,s){if(arguments.length===1&&(s=arguments[0],t=s.id),s=this.get(s),this.registry[t]&&this.registry[t]!==s)throw new Error(`Duplicate color space registration: '${t}'`);if(this.registry[t]=s,arguments.length===1&&s.aliases)for(let r of s.aliases)this.register(r,s);return s}static get(t,...s){if(!t||t instanceof Zn)return t;if(Wl(t)==="string"){let r=Zn.registry[t.toLowerCase()];if(!r)throw new TypeError(`No color space found with id = "${t}"`);return r}if(s.length)return Zn.get(...s);throw new TypeError(`${t} is not a valid color space`)}static resolveCoord(t,s){let r=Wl(t),o,a;if(r==="string"?t.includes(".")?[o,a]=t.split("."):[o,a]=[,t]:Array.isArray(t)?[o,a]=t:(o=t.space,a=t.coordId),o=Zn.get(o),o||(o=s),!o)throw new TypeError(`Cannot resolve coordinate reference ${t}: No color space specified and relative references are not allowed here`);if(r=Wl(a),r==="number"||r==="string"&&a>=0){let c=Object.entries(o.coords)[a];if(c)return{space:o,id:c[0],index:a,...c[1]}}o=Zn.get(o);let i=a.toLowerCase(),l=0;for(let c in o.coords){let d=o.coords[c];if(c.toLowerCase()===i||d.name?.toLowerCase()===i)return{space:o,id:c,index:l,...d};l++}throw new TypeError(`No "${a}" coordinate found in ${o.name}. Its coordinates are: ${Object.keys(o.coords).join(", ")}`)}static DEFAULT_FORMAT={type:"functions",name:"color"}};function kq(e){let t=[e];for(let s=e;s=s.base;)t.push(s);return t}function _6(e,{coords:t}={}){if(e.coords&&!e.coordGrammar){e.type||="function",e.name||="color",e.coordGrammar=_w(e.coords);let s=Object.entries(t).map(([r,o],a)=>{let i=e.coordGrammar[a][0],l=o.range||o.refRange,c=i.range,d="";return i=="<percentage>"?(c=[0,100],d="%"):i=="<angle>"&&(d="deg"),{fromRange:l,toRange:c,suffix:d}});e.serializeCoords=(r,o)=>r.map((a,i)=>{let{fromRange:l,toRange:c,suffix:d}=s[i];return l&&c&&(a=m0(l,c,a)),a=g1(a,{precision:o,unit:d}),a})}return e}var Jo=new Xt({id:"xyz-d65",name:"XYZ D65",coords:{x:{name:"X"},y:{name:"Y"},z:{name:"Z"}},white:"D65",formats:{color:{ids:["xyz-d65","xyz"]}},aliases:["xyz"]}),Ga=class extends Xt{constructor(e){e.coords||(e.coords={r:{range:[0,1],name:"Red"},g:{range:[0,1],name:"Green"},b:{range:[0,1],name:"Blue"}}),e.base||(e.base=Jo),e.toXYZ_M&&e.fromXYZ_M&&(e.toBase??=t=>{let s=Gr(e.toXYZ_M,t);return this.white!==this.base.white&&(s=y1(this.white,this.base.white,s)),s},e.fromBase??=t=>(t=y1(this.base.white,this.white,t),Gr(e.fromXYZ_M,t))),e.referred??="display",super(e)}};function um(e,t){return e=ws(e),!t||e.space.equals(t)?e.coords.slice():(t=Xt.get(t),t.from(e))}function on(e,t){e=ws(e);let{space:s,index:r}=Xt.resolveCoord(t,e.space);return um(e,s)[r]}function f0(e,t,s){return e=ws(e),t=Xt.get(t),e.coords=t.to(e.space,s),e}f0.returns="color";function nl(e,t,s){if(e=ws(e),arguments.length===2&&Wl(arguments[1])==="object"){let r=arguments[1];for(let o in r)nl(e,o,r[o])}else{typeof s=="function"&&(s=s(on(e,t)));let{space:r,index:o}=Xt.resolveCoord(t,e.space),a=um(e,r);a[o]=s,f0(e,r,a)}return e}nl.returns="color";var v0=new Xt({id:"xyz-d50",name:"XYZ D50",white:"D50",base:Jo,fromBase:e=>y1(Jo.white,"D50",e),toBase:e=>y1("D50",Jo.white,e)}),Bq=216/24389,f6=24/116,c1=24389/27,jy=ga.D50,an=new Xt({id:"lab",name:"Lab",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:jy,base:v0,fromBase(e){let t=e.map((s,r)=>s/jy[r]).map(s=>s>Bq?Math.cbrt(s):(c1*s+16)/116);return[116*t[1]-16,500*(t[0]-t[1]),200*(t[1]-t[2])]},toBase(e){let t=[];return t[1]=(e[0]+16)/116,t[0]=e[1]/500+t[1],t[2]=t[1]-e[2]/200,[t[0]>f6?Math.pow(t[0],3):(116*t[0]-16)/c1,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/c1,t[2]>f6?Math.pow(t[2],3):(116*t[2]-16)/c1].map((s,r)=>s*jy[r])},formats:{lab:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});function hi(e){return(e%360+360)%360}function zq(e,t){if(e==="raw")return t;let[s,r]=t.map(hi),o=r-s;return e==="increasing"?o<0&&(r+=360):e==="decreasing"?o>0&&(s+=360):e==="longer"?-180<o&&o<180&&(o>0?s+=360:r+=360):e==="shorter"&&(o>180?s+=360:o<-180&&(r+=360)),[s,r]}var lm=new Xt({id:"lch",name:"LCH",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,150],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:an,fromBase(e){let[t,s,r]=e,o,a=.02;return Math.abs(s)<a&&Math.abs(r)<a?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),hi(o)]},toBase(e){let[t,s,r]=e;return s<0&&(s=0),isNaN(r)&&(r=0),[t,s*Math.cos(r*Math.PI/180),s*Math.sin(r*Math.PI/180)]},formats:{lch:{coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),v6=25**7,b1=Math.PI,h6=180/b1,au=b1/180;function g6(e){let t=e*e;return t*t*t*e}function gw(e,t,{kL:s=1,kC:r=1,kH:o=1}={}){[e,t]=ws([e,t]);let[a,i,l]=an.from(e),c=lm.from(an,[a,i,l])[1],[d,u,p]=an.from(t),_=lm.from(an,[d,u,p])[1];c<0&&(c=0),_<0&&(_=0);let f=g6((c+_)/2),v=.5*(1-Math.sqrt(f/(f+v6))),g=(1+v)*i,y=(1+v)*u,x=Math.sqrt(g**2+l**2),w=Math.sqrt(y**2+p**2),P=g===0&&l===0?0:Math.atan2(l,g),C=y===0&&p===0?0:Math.atan2(p,y);P<0&&(P+=2*b1),C<0&&(C+=2*b1),P*=h6,C*=h6;let k=d-a,z=w-x,U=C-P,L=P+C,B=Math.abs(U),D;x*w===0?D=0:B<=180?D=U:U>180?D=U-360:U<-180?D=U+360:nn.warn("the unthinkable has happened");let G=2*Math.sqrt(w*x)*Math.sin(D*au/2),F=(a+d)/2,V=(x+w)/2,W=g6(V),q;x*w===0?q=L:B<=180?q=L/2:L<360?q=(L+360)/2:q=(L-360)/2;let $=(F-50)**2,Q=1+.015*$/Math.sqrt(20+$),ee=1+.045*V,re=1;re-=.17*Math.cos((q-30)*au),re+=.24*Math.cos(2*q*au),re+=.32*Math.cos((3*q+6)*au),re-=.2*Math.cos((4*q-63)*au);let ne=1+.015*V*re,ce=30*Math.exp(-1*((q-275)/25)**2),oe=2*Math.sqrt(W/(W+v6)),we=-1*Math.sin(2*ce*au)*oe,de=(k/(s*Q))**2;return de+=(z/(r*ee))**2,de+=(G/(o*ne))**2,de+=we*(z/(r*ee))*(G/(o*ne)),Math.sqrt(de)}var Rq=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],Dq=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],Lq=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],Uq=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],cu=new Xt({id:"oklab",name:"Oklab",coords:{l:{refRange:[0,1],name:"Lightness"},a:{refRange:[-.4,.4]},b:{refRange:[-.4,.4]}},white:"D65",base:Jo,fromBase(e){return Gr(Lq,Gr(Rq,e).map(t=>Math.cbrt(t)))},toBase(e){return Gr(Dq,Gr(Uq,e).map(t=>t**3))},formats:{oklab:{coords:["<percentage> | <number>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});function n0(e,t){[e,t]=ws([e,t]);let[s,r,o]=cu.from(e),[a,i,l]=cu.from(t),c=s-a,d=r-i,u=o-l;return Math.sqrt(c**2+d**2+u**2)}var Oq=75e-6;function Hc(e,t,{epsilon:s=Oq}={}){e=ws(e),t||(t=e.space),t=Xt.get(t);let r=e.coords;return t!==e.space&&(r=t.from(e)),t.inGamut(r,{epsilon:s})}function du(e){return{space:e.space,coords:e.coords.slice(),alpha:e.alpha}}function yw(e,t,s="lab"){s=Xt.get(s);let r=s.from(e),o=s.from(t);return Math.sqrt(r.reduce((a,i,l)=>{let c=o[l];return isNaN(i)||isNaN(c)?a:a+(c-i)**2},0))}function Gq(e,t){return yw(e,t,"lab")}var y6=Math.PI/180;function Fq(e,t,{l:s=2,c:r=1}={}){[e,t]=ws([e,t]);let[o,a,i]=an.from(e),[,l,c]=lm.from(an,[o,a,i]),[d,u,p]=an.from(t),_=lm.from(an,[d,u,p])[1];l<0&&(l=0),_<0&&(_=0);let f=o-d,v=l-_,g=a-u,y=i-p,x=g**2+y**2-v**2,w=.511;o>=16&&(w=.040975*o/(1+.01765*o));let P=.0638*l/(1+.0131*l)+.638,C;Number.isNaN(c)&&(c=0),c>=164&&c<=345?C=.56+Math.abs(.2*Math.cos((c+168)*y6)):C=.36+Math.abs(.4*Math.cos((c+35)*y6));let k=Math.pow(l,4),z=Math.sqrt(k/(k+1900)),U=P*(z*C+1-z),L=(f/(s*w))**2;return L+=(v/(r*P))**2,L+=x/U**2,Math.sqrt(L)}var b6=203,h0=new Xt({id:"xyz-abs-d65",cssId:"--xyz-abs-d65",name:"Absolute XYZ D65",coords:{x:{refRange:[0,9504.7],name:"Xa"},y:{refRange:[0,1e4],name:"Ya"},z:{refRange:[0,10888.3],name:"Za"}},base:Jo,fromBase(e){return e.map(t=>Math.max(t*b6,0))},toBase(e){return e.map(t=>Math.max(t/b6,0))}}),d1=1.15,u1=.66,x6=2610/2**14,Iq=2**14/2610,A6=3424/2**12,w6=2413/2**7,T6=2392/2**7,Yq=1.7*2523/2**5,S6=2**5/(1.7*2523),p1=-.56,Ky=16295499532821565e-27,Wq=[[.41478972,.579999,.014648],[-.20151,1.120649,.0531008],[-.0166008,.2648,.6684799]],Vq=[[1.9242264357876067,-1.0047923125953657,.037651404030618],[.35031676209499907,.7264811939316552,-.06538442294808501],[-.09098281098284752,-.3127282905230739,1.5227665613052603]],qq=[[.5,.5,0],[3.524,-4.066708,.542708],[.199076,1.096799,-1.295875]],Nq=[[1,.1386050432715393,.05804731615611886],[.9999999999999999,-.1386050432715393,-.05804731615611886],[.9999999999999998,-.09601924202631895,-.8118918960560388]],bw=new Xt({id:"jzazbz",name:"Jzazbz",coords:{jz:{refRange:[0,1],name:"Jz"},az:{refRange:[-.5,.5]},bz:{refRange:[-.5,.5]}},base:h0,fromBase(e){let[t,s,r]=e,[o,a,i]=Gr(qq,Gr(Wq,[d1*t-(d1-1)*r,u1*s-(u1-1)*t,r]).map(function(l){return((A6+w6*(l/1e4)**x6)/(1+T6*(l/1e4)**x6))**Yq}));return[(1+p1)*o/(1+p1*o)-Ky,a,i]},toBase(e){let[t,s,r]=e,[o,a,i]=Gr(Vq,Gr(Nq,[(t+Ky)/(1+p1-p1*(t+Ky)),s,r]).map(function(c){return 1e4*((A6-c**S6)/(T6*c**S6-w6))**Iq})),l=(o+(d1-1)*i)/d1;return[l,(a+(u1-1)*l)/u1,i]},formats:{color:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),i0=new Xt({id:"jzczhz",name:"JzCzHz",coords:{jz:{refRange:[0,1],name:"Jz"},cz:{refRange:[0,1],name:"Chroma"},hz:{refRange:[0,360],type:"angle",name:"Hue"}},base:bw,fromBase(e){let[t,s,r]=e,o,a=2e-4;return Math.abs(s)<a&&Math.abs(r)<a?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),hi(o)]},toBase(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}});function $q(e,t){[e,t]=ws([e,t]);let[s,r,o]=i0.from(e),[a,i,l]=i0.from(t),c=s-a,d=r-i;Number.isNaN(o)&&Number.isNaN(l)?(o=0,l=0):Number.isNaN(o)?o=l:Number.isNaN(l)&&(l=o);let u=o-l,p=2*Math.sqrt(r*i)*Math.sin(u/2*(Math.PI/180));return Math.sqrt(c**2+d**2+p**2)}var xw=3424/4096,Aw=2413/128,ww=2392/128,P6=2610/16384,Xq=2523/32,Hq=16384/2610,C6=32/2523,jq=[[.3592832590121217,.6976051147779502,-.035891593232029],[-.1920808463704993,1.100476797037432,.0753748658519118],[.0070797844607479,.0748396662186362,.8433265453898765]],Kq=[[2048/4096,2048/4096,0],[6610/4096,-13613/4096,7003/4096],[17933/4096,-17390/4096,-543/4096]],Qq=[[.9999999999999998,.0086090370379328,.111029625003026],[.9999999999999998,-.0086090370379328,-.1110296250030259],[.9999999999999998,.5600313357106791,-.3206271749873188]],Zq=[[2.0701522183894223,-1.3263473389671563,.2066510476294053],[.3647385209748072,.6805660249472273,-.0453045459220347],[-.0497472075358123,-.0492609666966131,1.1880659249923042]],l0=new Xt({id:"ictcp",name:"ICTCP",coords:{i:{refRange:[0,1],name:"I"},ct:{refRange:[-.5,.5],name:"CT"},cp:{refRange:[-.5,.5],name:"CP"}},base:h0,fromBase(e){return Jq(Gr(jq,e))},toBase(e){return Gr(Zq,eN(e))}});function Jq(e){return Gr(Kq,e.map(function(t){return((xw+Aw*(t/1e4)**P6)/(1+ww*(t/1e4)**P6))**Xq}))}function eN(e){return Gr(Qq,e).map(function(t){return 1e4*(Math.max(t**C6-xw,0)/(Aw-ww*t**C6))**Hq})}function tN(e,t){[e,t]=ws([e,t]);let[s,r,o]=l0.from(e),[a,i,l]=l0.from(t);return 720*Math.sqrt((s-a)**2+.25*(r-i)**2+(o-l)**2)}var sN=ga.D65,Tw=.42,M6=1/Tw,Qy=2*Math.PI,Sw=[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],rN=[[1.8620678550872327,-1.0112546305316843,.14918677544445175],[.38752654323613717,.6214474419314753,-.008973985167612518],[-.015841498849333856,-.03412293802851557,1.0499644368778496]],oN=[[460,451,288],[460,-891,-261],[460,-220,-6300]],aN={dark:[.8,.525,.8],dim:[.9,.59,.9],average:[1,.69,1]},Xc={h:[20.14,90,164.25,237.53,380.14],e:[.8,.7,1,1.2,.8],H:[0,100,200,300,400]},nN=180/Math.PI,E6=Math.PI/180;function Pw(e,t){return e.map(s=>{let r=vi(t*Math.abs(s)*.01,Tw);return 400*A1(r,s)/(r+27.13)})}function iN(e,t){let s=100/t*27.13**M6;return e.map(r=>{let o=Math.abs(r);return A1(s*vi(o/(400-o),M6),r)})}function lN(e){let t=hi(e);t<=Xc.h[0]&&(t+=360);let s=vw(Xc.h,t)-1,[r,o]=Xc.h.slice(s,s+2),[a,i]=Xc.e.slice(s,s+2),l=Xc.H[s],c=(t-r)/a;return l+100*c/(c+(o-t)/i)}function cN(e){let t=(e%400+400)%400,s=Math.floor(.01*t);t=t%100;let[r,o]=Xc.h.slice(s,s+2),[a,i]=Xc.e.slice(s,s+2);return hi((t*(i*r-a*o)-100*r*i)/(t*(i-a)-100*i))}function Cw(e,t,s,r,o){let a={};a.discounting=o,a.refWhite=e,a.surround=r;let i=e.map(f=>f*100);a.la=t,a.yb=s;let l=i[1],c=Gr(Sw,i);r=aN[a.surround];let d=r[0];a.c=r[1],a.nc=r[2];let u=(1/(5*a.la+1))**4;a.fl=u*a.la+.1*(1-u)*(1-u)*Math.cbrt(5*a.la),a.flRoot=a.fl**.25,a.n=a.yb/l,a.z=1.48+Math.sqrt(a.n),a.nbb=.725*a.n**-.2,a.ncb=a.nbb;let p=o?1:Math.max(Math.min(d*(1-1/3.6*Math.exp((-a.la-42)/92)),1),0);a.dRgb=c.map(f=>im(1,l/f,p)),a.dRgbInv=a.dRgb.map(f=>1/f);let _=Pw(c.map((f,v)=>f*a.dRgb[v]),a.fl);return a.aW=a.nbb*(2*_[0]+_[1]+.05*_[2]),a}var k6=Cw(sN,64/Math.PI*.2,20,"average",!1);function c0(e,t){if(!(e.J!==void 0^e.Q!==void 0))throw new Error("Conversion requires one and only one: 'J' or 'Q'");if(!(e.C!==void 0^e.M!==void 0^e.s!==void 0))throw new Error("Conversion requires one and only one: 'C', 'M' or 's'");if(!(e.h!==void 0^e.H!==void 0))throw new Error("Conversion requires one and only one: 'h' or 'H'");if(e.J===0||e.Q===0)return[0,0,0];let s=0;e.h!==void 0?s=hi(e.h)*E6:s=cN(e.H)*E6;let r=Math.cos(s),o=Math.sin(s),a=0;e.J!==void 0?a=vi(e.J,1/2)*.1:e.Q!==void 0&&(a=.25*t.c*e.Q/((t.aW+4)*t.flRoot));let i=0;e.C!==void 0?i=e.C/a:e.M!==void 0?i=e.M/t.flRoot/a:e.s!==void 0&&(i=4e-4*e.s**2*(t.aW+4)/t.c);let l=vi(i*Math.pow(1.64-Math.pow(.29,t.n),-.73),10/9),c=.25*(Math.cos(s+2)+3.8),d=t.aW*vi(a,2/t.c/t.z),u=5e4/13*t.nc*t.ncb*c,p=d/t.nbb,_=23*(p+.305)*_0(l,23*u+l*(11*r+108*o));return Gr(rN,iN(Gr(oN,[p,_*r,_*o]).map(f=>f*1/1403),t.fl).map((f,v)=>f*t.dRgbInv[v])).map(f=>f/100)}function Mw(e,t){let s=Pw(Gr(Sw,e.map(g=>g*100)).map((g,y)=>g*t.dRgb[y]),t.fl),r=s[0]+(-12*s[1]+s[2])/11,o=(s[0]+s[1]-2*s[2])/9,a=(Math.atan2(o,r)%Qy+Qy)%Qy,i=.25*(Math.cos(a+2)+3.8),l=vi(5e4/13*t.nc*t.ncb*_0(i*Math.sqrt(r**2+o**2),s[0]+s[1]+1.05*s[2]+.305),.9)*Math.pow(1.64-Math.pow(.29,t.n),.73),c=vi(t.nbb*(2*s[0]+s[1]+.05*s[2])/t.aW,.5*t.c*t.z),d=100*vi(c,2),u=4/t.c*c*(t.aW+4)*t.flRoot,p=l*c,_=p*t.flRoot,f=hi(a*nN),v=lN(f);return{J:d,C:p,h:f,s:50*vi(t.c*l/(t.aW+4),1/2),Q:u,M:_,H:v}}var dN=new Xt({id:"cam16-jmh",cssId:"--cam16-jmh",name:"CAM16-JMh",coords:{j:{refRange:[0,100],name:"J"},m:{refRange:[0,105],name:"Colorfulness"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:Jo,fromBase(e){let t=Mw(e,k6);return[t.J,t.M,t.h]},toBase(e){return c0({J:e[0],M:e[1],h:e[2]},k6)}}),uN=ga.D65,pN=216/24389,Ew=24389/27;function mN(e){return 116*(e>pN?Math.cbrt(e):(Ew*e+16)/116)-16}function d0(e){return e>8?Math.pow((e+16)/116,3):e/Ew}function _N(e,t){let[s,r,o]=e,a=[],i=0;if(o===0)return[0,0,0];let l=d0(o);o>0?i=.00379058511492914*o**2+.608983189401032*o+.9155088574762233:i=9514440756550361e-21*o**2+.08693057439788597*o-21.928975842194614;let c=2e-12,d=15,u=0,p=1/0;for(;u<=d;){a=c0({J:i,C:r,h:s},t);let _=Math.abs(a[1]-l);if(_<p){if(_<=c)return a;p=_}i=i-(a[1]-l)*i/(2*a[1]),u+=1}return c0({J:i,C:r,h:s},t)}function fN(e,t){let s=mN(e[1]);if(s===0)return[0,0,0];let r=Mw(e,g0);return[hi(r.h),r.C,s]}var g0=Cw(uN,200/Math.PI*d0(50),d0(50)*100,"average",!1),cm=new Xt({id:"hct",name:"HCT",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},c:{refRange:[0,145],name:"Colorfulness"},t:{refRange:[0,100],name:"Tone"}},base:Jo,fromBase(e){return fN(e)},toBase(e){return _N(e,g0)},formats:{color:{id:"--hct",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),vN=Math.PI/180,B6=[1,.007,.0228];function z6(e){e[1]<0&&(e=cm.fromBase(cm.toBase(e)));let t=Math.log(Math.max(1+B6[2]*e[1]*g0.flRoot,1))/B6[2],s=e[0]*vN,r=t*Math.cos(s),o=t*Math.sin(s);return[e[2],r,o]}function hN(e,t){[e,t]=ws([e,t]);let[s,r,o]=z6(cm.from(e)),[a,i,l]=z6(cm.from(t));return Math.sqrt((s-a)**2+(r-i)**2+(o-l)**2)}var uu={deltaE76:Gq,deltaECMC:Fq,deltaE2000:gw,deltaEJz:$q,deltaEITP:tN,deltaEOK:n0,deltaEHCT:hN};function gN(e){let t=e?Math.floor(Math.log10(Math.abs(e))):0;return Math.max(parseFloat(`1e${t-2}`),1e-6)}var R6={hct:{method:"hct.c",jnd:2,deltaEMethod:"hct",blackWhiteClamp:{}},"hct-tonal":{method:"hct.c",jnd:0,deltaEMethod:"hct",blackWhiteClamp:{channel:"hct.t",min:0,max:100}}};function Nl(e,{method:t=nn.gamut_mapping,space:s=void 0,deltaEMethod:r="",jnd:o=2,blackWhiteClamp:a={}}={}){if(e=ws(e),dm(arguments[1])?s=arguments[1]:s||(s=e.space),s=Xt.get(s),Hc(e,s,{epsilon:0}))return e;let i;if(t==="css")i=yN(e,{space:s});else{if(t!=="clip"&&!Hc(e,s)){Object.prototype.hasOwnProperty.call(R6,t)&&({method:t,jnd:o,deltaEMethod:r,blackWhiteClamp:a}=R6[t]);let l=gw;if(r!==""){for(let d in uu)if("deltae"+r.toLowerCase()===d.toLowerCase()){l=uu[d];break}}let c=Nl(Or(e,s),{method:"clip",space:s});if(l(e,c)>o){if(Object.keys(a).length===3){let x=Xt.resolveCoord(a.channel),w=on(Or(e,x.space),x.id);if(Vl(w)&&(w=0),w>=a.max)return Or({space:"xyz-d65",coords:ga.D65},e.space);if(w<=a.min)return Or({space:"xyz-d65",coords:[0,0,0]},e.space)}let d=Xt.resolveCoord(t),u=d.space,p=d.id,_=Or(e,u);_.coords.forEach((x,w)=>{Vl(x)&&(_.coords[w]=0)});let f=(d.range||d.refRange)[0],v=gN(o),g=f,y=on(_,p);for(;y-g>v;){let x=du(_);x=Nl(x,{space:s,method:"clip"}),l(_,x)-o<v?g=on(_,p):y=on(_,p),nl(_,p,(g+y)/2)}i=Or(_,s)}else i=c}else i=Or(e,s);if(t==="clip"||!Hc(i,s,{epsilon:0})){let l=Object.values(s.coords).map(c=>c.range||[]);i.coords=i.coords.map((c,d)=>{let[u,p]=l[d];return u!==void 0&&(c=Math.max(u,c)),p!==void 0&&(c=Math.min(c,p)),c})}}return s!==e.space&&(i=Or(i,e.space)),e.coords=i.coords,e}Nl.returns="color";var D6={WHITE:{space:cu,coords:[1,0,0]},BLACK:{space:cu,coords:[0,0,0]}};function yN(e,{space:t}={}){e=ws(e),t||(t=e.space),t=Xt.get(t);let o=Xt.get("oklch");if(t.isUnbounded)return Or(e,t);let a=Or(e,o),i=a.coords[0];if(i>=1){let v=Or(D6.WHITE,t);return v.alpha=e.alpha,Or(v,t)}if(i<=0){let v=Or(D6.BLACK,t);return v.alpha=e.alpha,Or(v,t)}if(Hc(a,t,{epsilon:0}))return Or(a,t);function l(v){let g=Or(v,t),y=Object.values(t.coords);return g.coords=g.coords.map((x,w)=>{if("range"in y[w]){let[P,C]=y[w].range;return fw(P,x,C)}return x}),g}let c=0,d=a.coords[1],u=!0,p=du(a),_=l(p),f=n0(_,p);if(f<.02)return _;for(;d-c>1e-4;){let v=(c+d)/2;if(p.coords[1]=v,u&&Hc(p,t,{epsilon:0}))c=v;else if(_=l(p),f=n0(_,p),f<.02){if(.02-f<1e-4)break;u=!1,c=v}else d=v}return _}function Or(e,t,{inGamut:s}={}){e=ws(e),t=Xt.get(t);let r=t.from(e),o={space:t,coords:r,alpha:e.alpha};return s&&(o=Nl(o,s===!0?void 0:s)),o}Or.returns="color";function nm(e,{precision:t=nn.precision,format:s="default",inGamut:r=!0,...o}={}){let a;e=ws(e);let i=s;s=e.space.getFormat(s)??e.space.getFormat("default")??Xt.DEFAULT_FORMAT;let l=e.coords.slice();if(r||=s.toGamut,r&&!Hc(e)&&(l=Nl(du(e),r===!0?void 0:r).coords),s.type==="custom")if(o.precision=t,s.serialize)a=s.serialize(l,e.alpha,o);else throw new TypeError(`format ${i} can only be used to parse colors, not for serialization`);else{let c=s.name||"color";s.serializeCoords?l=s.serializeCoords(l,t):t!==null&&(l=l.map(_=>g1(_,{precision:t})));let d=[...l];if(c==="color"){let _=s.id||s.ids?.[0]||e.space.id;d.unshift(_)}let u=e.alpha;t!==null&&(u=g1(u,{precision:t}));let p=e.alpha>=1||s.noAlpha?"":`${s.commas?",":" /"} ${u}`;a=`${c}(${d.join(s.commas?", ":" ")}${p})`}return a}var w1=new Ga({id:"rec2020-linear",cssId:"--rec2020-linear",name:"Linear REC.2020",white:"D65",toXYZ_M:[[.6369580483012914,.14461690358620832,.1688809751641721],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],fromXYZ_M:[[1.716651187971268,-.355670783776392,-.25336628137366],[-.666684351832489,1.616481236634939,.0157685458139111],[.017639857445311,-.042770613257809,.942103121235474]]}),m1=1.09929682680944,L6=.018053968510807,kw=new Ga({id:"rec2020",name:"REC.2020",base:w1,toBase(e){return e.map(function(t){return t<L6*4.5?t/4.5:Math.pow((t+m1-1)/m1,1/.45)})},fromBase(e){return e.map(function(t){return t>=L6?m1*Math.pow(t,.45)-(m1-1):4.5*t})}}),Bw=new Ga({id:"p3-linear",cssId:"--display-p3-linear",name:"Linear P3",white:"D65",toXYZ_M:[[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],fromXYZ_M:[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]]}),bN=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Eo=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],zw=new Ga({id:"srgb-linear",name:"Linear sRGB",white:"D65",toXYZ_M:bN,fromXYZ_M:Eo}),U6={aliceblue:[240/255,248/255,1],antiquewhite:[250/255,235/255,215/255],aqua:[0,1,1],aquamarine:[127/255,1,212/255],azure:[240/255,1,1],beige:[245/255,245/255,220/255],bisque:[1,228/255,196/255],black:[0,0,0],blanchedalmond:[1,235/255,205/255],blue:[0,0,1],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,1,0],chocolate:[210/255,105/255,30/255],coral:[1,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[1,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0,1,1],darkblue:[0,0,139/255],darkcyan:[0,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0,100/255,0],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[1,140/255,0],darkorchid:[153/255,50/255,204/255],darkred:[139/255,0,0],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0,206/255,209/255],darkviolet:[148/255,0,211/255],deeppink:[1,20/255,147/255],deepskyblue:[0,191/255,1],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,1],firebrick:[178/255,34/255,34/255],floralwhite:[1,250/255,240/255],forestgreen:[34/255,139/255,34/255],fuchsia:[1,0,1],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,1],gold:[1,215/255,0],goldenrod:[218/255,165/255,32/255],gray:[128/255,128/255,128/255],green:[0,128/255,0],greenyellow:[173/255,1,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,1,240/255],hotpink:[1,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0,130/255],ivory:[1,1,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[1,240/255,245/255],lawngreen:[124/255,252/255,0],lemonchiffon:[1,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,1,1],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[1,182/255,193/255],lightsalmon:[1,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,153/255],lightslategrey:[119/255,136/255,153/255],lightsteelblue:[176/255,196/255,222/255],lightyellow:[1,1,224/255],lime:[0,1,0],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[1,0,1],maroon:[128/255,0,0],mediumaquamarine:[102/255,205/255,170/255],mediumblue:[0,0,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0,250/255,154/255],mediumturquoise:[72/255,209/255,204/255],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,1,250/255],mistyrose:[1,228/255,225/255],moccasin:[1,228/255,181/255],navajowhite:[1,222/255,173/255],navy:[0,0,128/255],oldlace:[253/255,245/255,230/255],olive:[128/255,128/255,0],olivedrab:[107/255,142/255,35/255],orange:[1,165/255,0],orangered:[1,69/255,0],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[1,239/255,213/255],peachpuff:[1,218/255,185/255],peru:[205/255,133/255,63/255],pink:[1,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],purple:[128/255,0,128/255],rebeccapurple:[102/255,51/255,153/255],red:[1,0,0],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[1,245/255,238/255],sienna:[160/255,82/255,45/255],silver:[192/255,192/255,192/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[1,250/255,250/255],springgreen:[0,1,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],teal:[0,128/255,128/255],thistle:[216/255,191/255,216/255],tomato:[1,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],white:[1,1,1],whitesmoke:[245/255,245/255,245/255],yellow:[1,1,0],yellowgreen:[154/255,205/255,50/255]},O6=Array(3).fill("<percentage> | <number>[0, 255]"),G6=Array(3).fill("<number>[0, 255]"),pu=new Ga({id:"srgb",name:"sRGB",base:zw,fromBase:e=>e.map(t=>{let s=t<0?-1:1,r=t*s;return r>.0031308?s*(1.055*r**(1/2.4)-.055):12.92*t}),toBase:e=>e.map(t=>{let s=t<0?-1:1,r=t*s;return r<=.04045?t/12.92:s*((r+.055)/1.055)**2.4}),formats:{rgb:{coords:O6},rgb_number:{name:"rgb",commas:!0,coords:G6,noAlpha:!0},color:{},rgba:{coords:O6,commas:!0,lastAlpha:!0},rgba_number:{name:"rgba",commas:!0,coords:G6},hex:{type:"custom",toGamut:!0,test:e=>/^#([a-f0-9]{3,4}){1,2}$/i.test(e),parse(e){e.length<=5&&(e=e.replace(/[a-f0-9]/gi,"$&$&"));let t=[];return e.replace(/[a-f0-9]{2}/gi,s=>{t.push(parseInt(s,16)/255)}),{spaceId:"srgb",coords:t.slice(0,3),alpha:t.slice(3)[0]}},serialize:(e,t,{collapse:s=!0}={})=>{t<1&&e.push(t),e=e.map(o=>Math.round(o*255));let r=s&&e.every(o=>o%17===0);return"#"+e.map(o=>r?(o/17).toString(16):o.toString(16).padStart(2,"0")).join("")}},keyword:{type:"custom",test:e=>/^[a-z]+$/i.test(e),parse(e){e=e.toLowerCase();let t={spaceId:"srgb",coords:null,alpha:1};if(e==="transparent"?(t.coords=U6.black,t.alpha=0):t.coords=U6[e],t.coords)return t}}}}),Rw=new Ga({id:"p3",cssId:"display-p3",name:"P3",base:Bw,fromBase:pu.fromBase,toBase:pu.toBase});nn.display_space=pu;var xN;if(typeof CSS<"u"&&CSS.supports)for(let e of[an,kw,Rw]){let t=nm({space:e,coords:e.getMinCoords(),alpha:1});if(CSS.supports("color",t)){nn.display_space=e;break}}function AN(e,{space:t=nn.display_space,...s}={}){let r=nm(e,s);if(typeof CSS>"u"||CSS.supports("color",r)||!nn.display_space)r=new String(r),r.color=e;else{let o=e;if((e.coords.some(Vl)||Vl(e.alpha))&&!(xN??=CSS.supports("color","hsl(none 50% 50%)"))&&(o=du(e),o.coords=o.coords.map(go),o.alpha=go(o.alpha),r=nm(o,s),CSS.supports("color",r)))return r=new String(r),r.color=o,r;o=Or(o,t),r=new String(nm(o,s)),r.color=o}return r}function wN(e,t){return e=ws(e),t=ws(t),e.space===t.space&&e.alpha===t.alpha&&e.coords.every((s,r)=>s===t.coords[r])}function $l(e){return on(e,[Jo,"y"])}function Dw(e,t){nl(e,[Jo,"y"],t)}function TN(e){Object.defineProperty(e.prototype,"luminance",{get(){return $l(this)},set(t){Dw(this,t)}})}var SN=Object.freeze({__proto__:null,getLuminance:$l,register:TN,setLuminance:Dw});function PN(e,t){e=ws(e),t=ws(t);let s=Math.max($l(e),0),r=Math.max($l(t),0);return r>s&&([s,r]=[r,s]),(s+.05)/(r+.05)}var CN=.56,MN=.57,EN=.62,kN=.65,F6=.022,BN=1.414,zN=.1,RN=5e-4,DN=1.14,I6=.027,LN=1.14;function Y6(e){return e>=F6?e:e+(F6-e)**BN}function nu(e){let t=e<0?-1:1,s=Math.abs(e);return t*Math.pow(s,2.4)}function UN(e,t){t=ws(t),e=ws(e);let s,r,o,a,i,l;t=Or(t,"srgb"),[a,i,l]=t.coords;let c=nu(a)*.2126729+nu(i)*.7151522+nu(l)*.072175;e=Or(e,"srgb"),[a,i,l]=e.coords;let d=nu(a)*.2126729+nu(i)*.7151522+nu(l)*.072175,u=Y6(c),p=Y6(d),_=p>u;return Math.abs(p-u)<RN?r=0:_?(s=p**CN-u**MN,r=s*DN):(s=p**kN-u**EN,r=s*LN),Math.abs(r)<zN?o=0:r>0?o=r-I6:o=r+I6,o*100}function ON(e,t){e=ws(e),t=ws(t);let s=Math.max($l(e),0),r=Math.max($l(t),0);r>s&&([s,r]=[r,s]);let o=s+r;return o===0?0:(s-r)/o}var GN=5e4;function FN(e,t){e=ws(e),t=ws(t);let s=Math.max($l(e),0),r=Math.max($l(t),0);return r>s&&([s,r]=[r,s]),r===0?GN:(s-r)/r}function IN(e,t){e=ws(e),t=ws(t);let s=on(e,[an,"l"]),r=on(t,[an,"l"]);return Math.abs(s-r)}var YN=216/24389,W6=24/116,_1=24389/27,Zy=ga.D65,u0=new Xt({id:"lab-d65",name:"Lab D65",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:Zy,base:Jo,fromBase(e){let t=e.map((s,r)=>s/Zy[r]).map(s=>s>YN?Math.cbrt(s):(_1*s+16)/116);return[116*t[1]-16,500*(t[0]-t[1]),200*(t[1]-t[2])]},toBase(e){let t=[];return t[1]=(e[0]+16)/116,t[0]=e[1]/500+t[1],t[2]=t[1]-e[2]/200,[t[0]>W6?Math.pow(t[0],3):(116*t[0]-16)/_1,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/_1,t[2]>W6?Math.pow(t[2],3):(116*t[2]-16)/_1].map((s,r)=>s*Zy[r])},formats:{"lab-d65":{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),Jy=Math.pow(5,.5)*.5+.5;function WN(e,t){e=ws(e),t=ws(t);let s=on(e,[u0,"l"]),r=on(t,[u0,"l"]),o=Math.abs(Math.pow(s,Jy)-Math.pow(r,Jy)),a=Math.pow(o,1/Jy)*Math.SQRT2-40;return a<7.5?0:a}var h1=Object.freeze({__proto__:null,contrastAPCA:UN,contrastDeltaPhi:WN,contrastLstar:IN,contrastMichelson:ON,contrastWCAG21:PN,contrastWeber:FN});function VN(e,t,s={}){dm(s)&&(s={algorithm:s});let{algorithm:r,...o}=s;if(!r){let a=Object.keys(h1).map(i=>i.replace(/^contrast/,"")).join(", ");throw new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${a}`)}e=ws(e),t=ws(t);for(let a in h1)if("contrast"+r.toLowerCase()===a.toLowerCase())return h1[a](e,t,o);throw new TypeError(`Unknown contrast algorithm: ${r}`)}function T1(e){let[t,s,r]=um(e,Jo),o=t+15*s+3*r;return[4*t/o,9*s/o]}function Lw(e){let[t,s,r]=um(e,Jo),o=t+s+r;return[t/o,s/o]}function qN(e){Object.defineProperty(e.prototype,"uv",{get(){return T1(this)}}),Object.defineProperty(e.prototype,"xy",{get(){return Lw(this)}})}var NN=Object.freeze({__proto__:null,register:qN,uv:T1,xy:Lw});function am(e,t,s={}){dm(s)&&(s={method:s});let{method:r=nn.deltaE,...o}=s;for(let a in uu)if("deltae"+r.toLowerCase()===a.toLowerCase())return uu[a](e,t,o);throw new TypeError(`Unknown deltaE method: ${r}`)}function $N(e,t=.25){return nl(e,[Xt.get("oklch","lch"),"l"],s=>s*(1+t))}function XN(e,t=.25){return nl(e,[Xt.get("oklch","lch"),"l"],s=>s*(1-t))}var HN=Object.freeze({__proto__:null,darken:XN,lighten:$N});function Uw(e,t,s=.5,r={}){return[e,t]=[ws(e),ws(t)],Wl(s)==="object"&&([s,r]=[.5,s]),pm(e,t,r)(s)}function Ow(e,t,s={}){let r;y0(e)&&([r,s]=[e,t],[e,t]=r.rangeArgs.colors);let{maxDeltaE:o,deltaEMethod:a,steps:i=2,maxSteps:l=1e3,...c}=s;r||([e,t]=[ws(e),ws(t)],r=pm(e,t,c));let d=am(e,t),u=o>0?Math.max(i,Math.ceil(d/o)+1):i,p=[];if(l!==void 0&&(u=Math.min(u,l)),u===1)p=[{p:.5,color:r(.5)}];else{let _=1/(u-1);p=Array.from({length:u},(f,v)=>{let g=v*_;return{p:g,color:r(g)}})}if(o>0){let _=p.reduce((f,v,g)=>{if(g===0)return 0;let y=am(v.color,p[g-1].color,a);return Math.max(f,y)},0);for(;_>o;){_=0;for(let f=1;f<p.length&&p.length<l;f++){let v=p[f-1],g=p[f],y=(g.p+v.p)/2,x=r(y);_=Math.max(_,am(x,v.color),am(x,g.color)),p.splice(f,0,{p:y,color:r(y)}),f++}}}return p=p.map(_=>_.color),p}function pm(e,t,s={}){if(y0(e)){let[c,d]=[e,t];return pm(...c.rangeArgs.colors,{...c.rangeArgs.options,...d})}let{space:r,outputSpace:o,progression:a,premultiplied:i}=s;e=ws(e),t=ws(t),e=du(e),t=du(t);let l={colors:[e,t],options:s};if(r?r=Xt.get(r):r=Xt.registry[nn.interpolationSpace]||e.space,o=o?Xt.get(o):r,e=Or(e,r),t=Or(t,r),e=Nl(e),t=Nl(t),r.coords.h&&r.coords.h.type==="angle"){let c=s.hue=s.hue||"shorter",d=[r,"h"],[u,p]=[on(e,d),on(t,d)];isNaN(u)&&!isNaN(p)?u=p:isNaN(p)&&!isNaN(u)&&(p=u),[u,p]=zq(c,[u,p]),nl(e,d,u),nl(t,d,p)}return i&&(e.coords=e.coords.map(c=>c*e.alpha),t.coords=t.coords.map(c=>c*t.alpha)),Object.assign(c=>{c=a?a(c):c;let d=e.coords.map((_,f)=>{let v=t.coords[f];return im(_,v,c)}),u=im(e.alpha,t.alpha,c),p={space:r,coords:d,alpha:u};return i&&(p.coords=p.coords.map(_=>_/u)),o!==r&&(p=Or(p,o)),p},{rangeArgs:l})}function y0(e){return Wl(e)==="function"&&!!e.rangeArgs}nn.interpolationSpace="lab";function jN(e){e.defineFunction("mix",Uw,{returns:"color"}),e.defineFunction("range",pm,{returns:"function<color>"}),e.defineFunction("steps",Ow,{returns:"array<color>"})}var KN=Object.freeze({__proto__:null,isRange:y0,mix:Uw,range:pm,register:jN,steps:Ow}),Gw=new Xt({id:"hsl",name:"HSL",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:pu,fromBase:e=>{let t=Math.max(...e),s=Math.min(...e),[r,o,a]=e,[i,l,c]=[NaN,0,(s+t)/2],d=t-s;if(d!==0){switch(l=c===0||c===1?0:(t-c)/Math.min(c,1-c),t){case r:i=(o-a)/d+(o<a?6:0);break;case o:i=(a-r)/d+2;break;case a:i=(r-o)/d+4}i=i*60}return l<0&&(i+=180,l=Math.abs(l)),i>=360&&(i-=360),[i,l*100,c*100]},toBase:e=>{let[t,s,r]=e;t=t%360,t<0&&(t+=360),s/=100,r/=100;function o(a){let i=(a+t/30)%12,l=s*Math.min(r,1-r);return r-l*Math.max(-1,Math.min(i-3,9-i,1))}return[o(0),o(8),o(4)]},formats:{hsl:{coords:["<number> | <angle>","<percentage>","<percentage>"]},hsla:{coords:["<number> | <angle>","<percentage>","<percentage>"],commas:!0,lastAlpha:!0}}}),Fw=new Xt({id:"hsv",name:"HSV",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},v:{range:[0,100],name:"Value"}},base:Gw,fromBase(e){let[t,s,r]=e;s/=100,r/=100;let o=r+s*Math.min(r,1-r);return[t,o===0?0:200*(1-r/o),100*o]},toBase(e){let[t,s,r]=e;s/=100,r/=100;let o=r*(1-s/2);return[t,o===0||o===1?0:(r-o)/Math.min(o,1-o)*100,o*100]},formats:{color:{id:"--hsv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),QN=new Xt({id:"hwb",name:"HWB",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},w:{range:[0,100],name:"Whiteness"},b:{range:[0,100],name:"Blackness"}},base:Fw,fromBase(e){let[t,s,r]=e;return[t,r*(100-s)/100,100-r]},toBase(e){let[t,s,r]=e;s/=100,r/=100;let o=s+r;if(o>=1)return[t,0,s/o*100];let a=1-r;return[t,(a===0?0:1-s/a)*100,a*100]},formats:{hwb:{coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),Iw=new Ga({id:"a98rgb-linear",cssId:"--a98-rgb-linear",name:"Linear Adobe\xAE 98 RGB compatible",white:"D65",toXYZ_M:[[.5766690429101305,.1855582379065463,.1882286462349947],[.29734497525053605,.6273635662554661,.07529145849399788],[.02703136138641234,.07068885253582723,.9913375368376388]],fromXYZ_M:[[2.0415879038107465,-.5650069742788596,-.34473135077832956],[-.9692436362808795,1.8759675015077202,.04155505740717557],[.013444280632031142,-.11836239223101838,1.0151749943912054]]}),ZN=new Ga({id:"a98rgb",cssId:"a98-rgb",name:"Adobe\xAE 98 RGB compatible",base:Iw,toBase:e=>e.map(t=>Math.pow(Math.abs(t),563/256)*Math.sign(t)),fromBase:e=>e.map(t=>Math.pow(Math.abs(t),256/563)*Math.sign(t))}),Yw=new Ga({id:"prophoto-linear",cssId:"--prophoto-rgb-linear",name:"Linear ProPhoto",white:"D50",base:v0,toXYZ_M:[[.7977666449006423,.13518129740053308,.0313477341283922],[.2880748288194013,.711835234241873,8993693872564e-17],[0,0,.8251046025104602]],fromXYZ_M:[[1.3457868816471583,-.25557208737979464,-.05110186497554526],[-.5446307051249019,1.5082477428451468,.02052744743642139],[0,0,1.2119675456389452]]}),JN=1/512,e$=16/512,t$=new Ga({id:"prophoto",cssId:"prophoto-rgb",name:"ProPhoto",base:Yw,toBase(e){return e.map(t=>t<e$?t/16:t**1.8)},fromBase(e){return e.map(t=>t>=JN?t**(1/1.8):16*t)}}),s$=new Xt({id:"oklch",name:"Oklch",coords:{l:{refRange:[0,1],name:"Lightness"},c:{refRange:[0,.4],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},white:"D65",base:cu,fromBase(e){let[t,s,r]=e,o,a=2e-4;return Math.abs(s)<a&&Math.abs(r)<a?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),hi(o)]},toBase(e){let[t,s,r]=e,o,a;return isNaN(r)?(o=0,a=0):(o=s*Math.cos(r*Math.PI/180),a=s*Math.sin(r*Math.PI/180)),[t,o,a]},formats:{oklch:{coords:["<percentage> | <number>","<number> | <percentage>[0,1]","<number> | <angle>"]}}}),Ww=ga.D65,r$=216/24389,V6=24389/27,[q6,N6]=T1({space:Jo,coords:Ww}),Vw=new Xt({id:"luv",name:"Luv",coords:{l:{refRange:[0,100],name:"Lightness"},u:{refRange:[-215,215]},v:{refRange:[-215,215]}},white:Ww,base:Jo,fromBase(e){let t=[go(e[0]),go(e[1]),go(e[2])],s=t[1],[r,o]=T1({space:Jo,coords:t});if(!Number.isFinite(r)||!Number.isFinite(o))return[0,0,0];let a=s<=r$?V6*s:116*Math.cbrt(s)-16;return[a,13*a*(r-q6),13*a*(o-N6)]},toBase(e){let[t,s,r]=e;if(t===0||Vl(t))return[0,0,0];s=go(s),r=go(r);let o=s/(13*t)+q6,a=r/(13*t)+N6,i=t<=8?t/V6:Math.pow((t+16)/116,3);return[i*(9*o/(4*a)),i,i*((12-3*o-20*a)/(4*a))]},formats:{color:{id:"--luv",coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),b0=new Xt({id:"lchuv",name:"LChuv",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,220],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:Vw,fromBase(e){let[t,s,r]=e,o,a=.02;return Math.abs(s)<a&&Math.abs(r)<a?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),hi(o)]},toBase(e){let[t,s,r]=e;return s<0&&(s=0),isNaN(r)&&(r=0),[t,s*Math.cos(r*Math.PI/180),s*Math.sin(r*Math.PI/180)]},formats:{color:{id:"--lchuv",coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),o$=216/24389,a$=24389/27,$6=Eo[0][0],X6=Eo[0][1],e0=Eo[0][2],H6=Eo[1][0],j6=Eo[1][1],t0=Eo[1][2],K6=Eo[2][0],Q6=Eo[2][1],s0=Eo[2][2];function iu(e,t,s){let r=t/(Math.sin(s)-e*Math.cos(s));return r<0?1/0:r}function x1(e){let t=Math.pow(e+16,3)/1560896,s=t>o$?t:e/a$,r=s*(284517*$6-94839*e0),o=s*(838422*e0+769860*X6+731718*$6),a=s*(632260*e0-126452*X6),i=s*(284517*H6-94839*t0),l=s*(838422*t0+769860*j6+731718*H6),c=s*(632260*t0-126452*j6),d=s*(284517*K6-94839*s0),u=s*(838422*s0+769860*Q6+731718*K6),p=s*(632260*s0-126452*Q6);return{r0s:r/a,r0i:o*e/a,r1s:r/(a+126452),r1i:(o-769860)*e/(a+126452),g0s:i/c,g0i:l*e/c,g1s:i/(c+126452),g1i:(l-769860)*e/(c+126452),b0s:d/p,b0i:u*e/p,b1s:d/(p+126452),b1i:(u-769860)*e/(p+126452)}}function Z6(e,t){let s=t/360*Math.PI*2,r=iu(e.r0s,e.r0i,s),o=iu(e.r1s,e.r1i,s),a=iu(e.g0s,e.g0i,s),i=iu(e.g1s,e.g1i,s),l=iu(e.b0s,e.b0i,s),c=iu(e.b1s,e.b1i,s);return Math.min(r,o,a,i,l,c)}var n$=new Xt({id:"hsluv",name:"HSLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:b0,gamutSpace:pu,fromBase(e){let[t,s,r]=[go(e[0]),go(e[1]),go(e[2])],o;return t>99.9999999?(o=0,t=100):t<1e-8?(o=0,t=0):o=s/Z6(x1(t),r)*100,[r,o,t]},toBase(e){let[t,s,r]=[go(e[0]),go(e[1]),go(e[2])],o;return r>99.9999999?(r=100,o=0):r<1e-8?(r=0,o=0):o=Z6(x1(r),t)/100*s,[r,o,t]},formats:{color:{id:"--hsluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}});Eo[0][0];Eo[0][1];Eo[0][2];Eo[1][0];Eo[1][1];Eo[1][2];Eo[2][0];Eo[2][1];Eo[2][2];function lu(e,t){return Math.abs(t)/Math.sqrt(Math.pow(e,2)+1)}function J6(e){let t=lu(e.r0s,e.r0i),s=lu(e.r1s,e.r1i),r=lu(e.g0s,e.g0i),o=lu(e.g1s,e.g1i),a=lu(e.b0s,e.b0i),i=lu(e.b1s,e.b1i);return Math.min(t,s,r,o,a,i)}var i$=new Xt({id:"hpluv",name:"HPLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:b0,gamutSpace:"self",fromBase(e){let[t,s,r]=[go(e[0]),go(e[1]),go(e[2])],o;return t>99.9999999?(o=0,t=100):t<1e-8?(o=0,t=0):o=s/J6(x1(t))*100,[r,o,t]},toBase(e){let[t,s,r]=[go(e[0]),go(e[1]),go(e[2])],o;return r>99.9999999?(r=100,o=0):r<1e-8?(r=0,o=0):o=J6(x1(r))/100*s,[r,o,t]},formats:{color:{id:"--hpluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),ew=203,tw=2610/2**14,l$=2**14/2610,c$=2523/2**5,sw=2**5/2523,rw=3424/2**12,ow=2413/2**7,aw=2392/2**7,d$=new Ga({id:"rec2100pq",cssId:"rec2100-pq",name:"REC.2100-PQ",base:w1,toBase(e){return e.map(function(t){return(Math.max(t**sw-rw,0)/(ow-aw*t**sw))**l$*1e4/ew})},fromBase(e){return e.map(function(t){let s=Math.max(t*ew/1e4,0);return((rw+ow*s**tw)/(1+aw*s**tw))**c$})}}),nw=.17883277,iw=.28466892,lw=.55991073,r0=3.7743,u$=new Ga({id:"rec2100hlg",cssId:"rec2100-hlg",name:"REC.2100-HLG",referred:"scene",base:w1,toBase(e){return e.map(function(t){return t<=.5?t**2/3*r0:(Math.exp((t-lw)/nw)+iw)/12*r0})},fromBase(e){return e.map(function(t){return t/=r0,t<=1/12?Math.sqrt(3*t):nw*Math.log(12*t-iw)+lw})}}),qw={};ql.add("chromatic-adaptation-start",e=>{e.options.method&&(e.M=Nw(e.W1,e.W2,e.options.method))});ql.add("chromatic-adaptation-end",e=>{e.M||(e.M=Nw(e.W1,e.W2,e.options.method))});function S1({id:e,toCone_M:t,fromCone_M:s}){qw[e]=arguments[0]}function Nw(e,t,s="Bradford"){let r=qw[s],[o,a,i]=Gr(r.toCone_M,e),[l,c,d]=Gr(r.toCone_M,t),u=Gr([[l/o,0,0],[0,c/a,0],[0,0,d/i]],r.toCone_M);return Gr(r.fromCone_M,u)}S1({id:"von Kries",toCone_M:[[.40024,.7076,-.08081],[-.2263,1.16532,.0457],[0,0,.91822]],fromCone_M:[[1.8599363874558397,-1.1293816185800916,.21989740959619328],[.3611914362417676,.6388124632850422,-6370596838649899e-21],[0,0,1.0890636230968613]]});S1({id:"Bradford",toCone_M:[[.8951,.2664,-.1614],[-.7502,1.7135,.0367],[.0389,-.0685,1.0296]],fromCone_M:[[.9869929054667121,-.14705425642099013,.15996265166373122],[.4323052697233945,.5183602715367774,.049291228212855594],[-.00852866457517732,.04004282165408486,.96848669578755]]});S1({id:"CAT02",toCone_M:[[.7328,.4296,-.1624],[-.7036,1.6975,.0061],[.003,.0136,.9834]],fromCone_M:[[1.0961238208355142,-.27886900021828726,.18274517938277307],[.4543690419753592,.4735331543074117,.07209780371722911],[-.009627608738429355,-.00569803121611342,1.0153256399545427]]});S1({id:"CAT16",toCone_M:[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],fromCone_M:[[1.862067855087233,-1.0112546305316845,.14918677544445172],[.3875265432361372,.6214474419314753,-.008973985167612521],[-.01584149884933386,-.03412293802851557,1.0499644368778496]]});Object.assign(ga,{A:[1.0985,1,.35585],C:[.98074,1,1.18232],D55:[.95682,1,.92149],D75:[.94972,1,1.22638],E:[1,1,1],F2:[.99186,1,.67393],F7:[.95041,1,1.08747],F11:[1.00962,1,.6435]});ga.ACES=[.32168/.33767,1,.34065/.33767];var $w=new Ga({id:"acescg",cssId:"--acescg",name:"ACEScg",coords:{r:{range:[0,65504],name:"Red"},g:{range:[0,65504],name:"Green"},b:{range:[0,65504],name:"Blue"}},referred:"scene",white:ga.ACES,toXYZ_M:[[.6624541811085053,.13400420645643313,.1561876870049078],[.27222871678091454,.6740817658111484,.05368951740793705],[-.005574649490394108,.004060733528982826,1.0103391003129971]],fromXYZ_M:[[1.6410233796943257,-.32480329418479,-.23642469523761225],[-.6636628587229829,1.6153315916573379,.016756347685530137],[.011721894328375376,-.008284441996237409,.9883948585390215]]}),f1=2**-16,o0=-.35828683,v1=(Math.log2(65504)+9.72)/17.52,p$=new Ga({id:"acescc",cssId:"--acescc",name:"ACEScc",coords:{r:{range:[o0,v1],name:"Red"},g:{range:[o0,v1],name:"Green"},b:{range:[o0,v1],name:"Blue"}},referred:"scene",base:$w,toBase(e){let t=-.3013698630136986;return e.map(function(s){return s<=t?(2**(s*17.52-9.72)-f1)*2:s<v1?2**(s*17.52-9.72):65504})},fromBase(e){return e.map(function(t){return t<=0?(Math.log2(f1)+9.72)/17.52:t<f1?(Math.log2(f1+t*.5)+9.72)/17.52:(Math.log2(t)+9.72)/17.52})}}),cw=Object.freeze({__proto__:null,A98RGB:ZN,A98RGB_Linear:Iw,ACEScc:p$,ACEScg:$w,CAM16_JMh:dN,HCT:cm,HPLuv:i$,HSL:Gw,HSLuv:n$,HSV:Fw,HWB:QN,ICTCP:l0,JzCzHz:i0,Jzazbz:bw,LCH:lm,LCHuv:b0,Lab:an,Lab_D65:u0,Luv:Vw,OKLCH:s$,OKLab:cu,P3:Rw,P3_Linear:Bw,ProPhoto:t$,ProPhoto_Linear:Yw,REC_2020:kw,REC_2020_Linear:w1,REC_2100_HLG:u$,REC_2100_PQ:d$,XYZ_ABS_D65:h0,XYZ_D50:v0,XYZ_D65:Jo,sRGB:pu,sRGB_Linear:zw}),ya=class Oa{constructor(...t){let s;t.length===1&&(s=ws(t[0]));let r,o,a;s?(r=s.space||s.spaceId,o=s.coords,a=s.alpha):[r,o,a]=t,Object.defineProperty(this,"space",{value:Xt.get(r),writable:!1,enumerable:!0,configurable:!0}),this.coords=o?o.slice():[0,0,0],this.alpha=a>1||a===void 0?1:a<0?0:a;for(let i=0;i<this.coords.length;i++)this.coords[i]==="NaN"&&(this.coords[i]=NaN);for(let i in this.space.coords)Object.defineProperty(this,i,{get:()=>this.get(i),set:l=>this.set(i,l)})}get spaceId(){return this.space.id}clone(){return new Oa(this.space,this.coords,this.alpha)}toJSON(){return{spaceId:this.spaceId,coords:this.coords,alpha:this.alpha}}display(...t){let s=AN(this,...t);return s.color=new Oa(s.color),s}static get(t,...s){return t instanceof Oa?t:new Oa(t,...s)}static defineFunction(t,s,r=s){let{instance:o=!0,returns:a}=r,i=function(...l){let c=s(...l);if(a==="color")c=Oa.get(c);else if(a==="function<color>"){let d=c;c=function(...u){let p=d(...u);return Oa.get(p)},Object.assign(c,d)}else a==="array<color>"&&(c=c.map(d=>Oa.get(d)));return c};t in Oa||(Oa[t]=i),o&&(Oa.prototype[t]=function(...l){return i(this,...l)})}static defineFunctions(t){for(let s in t)Oa.defineFunction(s,t[s],t[s])}static extend(t){if(t.register)t.register(Oa);else for(let s in t)Oa.defineFunction(s,t[s])}};ya.defineFunctions({get:on,getAll:um,set:nl,setAll:f0,to:Or,equals:wN,inGamut:Hc,toGamut:Nl,distance:yw,toString:nm});Object.assign(ya,{util:Pq,hooks:ql,WHITES:ga,Space:Xt,spaces:Xt.registry,parse:hw,defaults:nn});for(let e of Object.keys(cw))Xt.register(cw[e]);for(let e in Xt.registry)p0(e,Xt.registry[e]);ql.add("colorspace-init-end",e=>{p0(e.id,e),e.aliases?.forEach(t=>{p0(t,e)})});function p0(e,t){let s=e.replace(/-/g,"_");Object.defineProperty(ya.prototype,s,{get(){let r=this.getAll(e);return typeof Proxy>"u"?r:new Proxy(r,{has:(o,a)=>{try{return Xt.resolveCoord([t,a]),!0}catch{}return Reflect.has(o,a)},get:(o,a,i)=>{if(a&&typeof a!="symbol"&&!(a in o)){let{index:l}=Xt.resolveCoord([t,a]);if(l>=0)return o[l]}return Reflect.get(o,a,i)},set:(o,a,i,l)=>{if(a&&typeof a!="symbol"&&!(a in o)||a>=0){let{index:c}=Xt.resolveCoord([t,a]);if(c>=0)return o[c]=i,this.setAll(e,o),!0}return Reflect.set(o,a,i,l)}})},set(r){this.setAll(e,r)},configurable:!0,enumerable:!0})}ya.extend(uu);ya.extend({deltaE:am});Object.assign(ya,{deltaEMethods:uu});ya.extend(HN);ya.extend({contrast:VN});ya.extend(NN);ya.extend(SN);ya.extend(KN);ya.extend(h1);var Xw="p3-linear",Hw=e=>{Xw=e},os=e=>e?1:-1;function m$(e){try{let t=new ya(e),s=Xw==="srgb"?"srgb-linear":"p3-linear",r=t.to(s).coords,o=Number(t.alpha);return{r:Number.isFinite(r?.[0])?r[0]:0,g:Number.isFinite(r?.[1])?r[1]:0,b:Number.isFinite(r?.[2])?r[2]:0,a:Number.isFinite(o)?o:1}}catch{return{r:0,g:0,b:0,a:0}}}var ie=e=>m$(e),Xe=e=>{let t=.5,s=.5,r=(a,i=!1)=>{if(typeof a=="number")return a;if(typeof a=="object"&&a!==null)return a.value;let l=a.toLowerCase().trim();if(i){if(l==="top")return 0;if(l==="bottom")return 1;if(l==="center")return .5}else{if(l==="left")return 0;if(l==="right")return 1;if(l==="center")return .5}return console.warn(`Invalid position value: ${a}. Defaulting to center.`),.5};if(typeof e=="string"){let a=e.toLowerCase().trim().split(/\s+/);a.includes("left")?t=0:a.includes("right")?t=1:(a.includes("center")||a.length===1&&(a[0]==="top"||a[0]==="bottom"))&&(t=.5),a.includes("top")?s=0:a.includes("bottom")?s=1:(a.includes("center")||a.length===1&&(a[0]==="left"||a[0]==="right"))&&(s=.5),a.length===1&&a[0]==="center"&&(t=.5,s=.5)}else typeof e=="object"&&e!==null?(t=r(e.x,!1),s=r(e.y,!0)):console.warn(`Invalid position value provided: ${e}. Defaulting to center.`);let o=1-s;return{x:t,y:o}},us=e=>{if(typeof e=="number")return(e%360+360)%360;let t=e.toLowerCase().trim();switch(t){case"to right":return 0;case"to bottom":return 90;case"to left":return 180;case"to top":return 270;case"to bottom right":case"to right bottom":return 45;case"to bottom left":case"to left bottom":return 135;case"to top left":case"to left top":return 225;case"to top right":case"to right top":return 315;case"from left":return 0;case"from top":return 90;case"from right":return 180;case"from bottom":return 270;case"from top left":return 45;case"from top right":return 135;case"from bottom right":return 225;case"from bottom left":return 315;default:let s=t.match(/^(-?\d*\.?\d+)(deg|rad|turn)?$/);if(s){let[,r,o="deg"]=s,a=parseFloat(r);switch(o){case"deg":return(a%360+360)%360;case"rad":return(a*180/Math.PI%360+360)%360;case"turn":return(a*360%360+360)%360;default:return(a%360+360)%360}}return console.warn(`Invalid angle value: ${e}. Defaulting to 0 degrees.`),0}},Fr=e=>{let t={stretch:0,transparent:1,mirror:2,wrap:3}[e.toLowerCase()];return t===void 0?(console.warn(`Invalid edge mode: ${e}. Defaulting to 'stretch'.`),0):t},jw=e=>({outside:0,center:1,inside:2})[e?.toLowerCase()]??1,pt=[{label:"Linear RGB",value:"linear"},{label:"OKLCh",value:"oklch"},{label:"OKLAB",value:"oklab"},{label:"HSL",value:"hsl"},{label:"HSV",value:"hsv"},{label:"LCH",value:"lch"}],tt=e=>{let t={linear:0,oklch:1,oklab:2,hsl:3,hsv:4,lch:5}[e.toLowerCase()];return t===void 0?(console.warn(`Invalid color space mode: ${e}. Defaulting to 'linear'.`),0):t};var _$=Object.defineProperty,Qr=e=>{let t={};for(var s in e)_$(t,s,{get:e[s],enumerable:!0});return t};function ln(e){typeof Symbol[e]>"u"&&Object.defineProperty(Symbol,e,{value:Symbol.for(`Symbol.${e}`),writable:!1,enumerable:!1,configurable:!1})}function Kw(e,t){return typeof e?.[t]=="function"}function Eu(e,t,s,r){let o=ea.deferOperation;return Kw(e,s)&&(o=e[s](e,t)),o===ea.deferOperation&&Kw(t,s)&&(o=t[s](e,t)),o===ea.deferOperation?r(e,t):o}var f$=(e,t)=>e+t;function v$(e,t){return(typeof e=="number"||typeof e=="string")&&(typeof t=="number"||typeof t=="string")?e+t:Eu(e,t,ea.plus,f$)}var h$=(e,t)=>e-t;function g$(e,t){return typeof e=="number"&&typeof t=="number"?e-t:Eu(e,t,ea.minus,h$)}var y$=(e,t)=>e*t;function b$(e,t){return typeof e=="number"&&typeof t=="number"?e*t:Eu(e,t,ea.star,y$)}var x$=(e,t)=>e/t;function A$(e,t){return typeof e=="number"&&typeof t=="number"?e/t:Eu(e,t,ea.slash,x$)}var w$=(e,t)=>e**t;function T$(e,t){return typeof e=="number"&&typeof t=="number"?e**t:Eu(e,t,ea.starStar,w$)}var S$=(e,t)=>e%t;function P$(e,t){return typeof e=="number"&&typeof t=="number"?e%t:Eu(e,t,ea.percent,S$)}var ea=(ln("deferOperation"),ln("operatorPlus"),ln("operatorMinus"),ln("operatorStar"),ln("operatorSlash"),ln("operatorStarStar"),ln("operatorPercent"),ln("operatorEqEq"),ln("operatorPrePlusPlus"),ln("operatorPreMinusMinus"),ln("operatorPostPlusPlus"),ln("operatorPostMinusMinus"),ln("operatorPreMinus"),globalThis.__tsover_add=v$,globalThis.__tsover_sub=g$,globalThis.__tsover_mul=b$,globalThis.__tsover_div=A$,globalThis.__tsover_pow=T$,globalThis.__tsover_mod=P$,{deferOperation:Symbol.deferOperation,plus:Symbol.operatorPlus,minus:Symbol.operatorMinus,star:Symbol.operatorStar,slash:Symbol.operatorSlash,starStar:Symbol.operatorStarStar,percent:Symbol.operatorPercent,eqEq:Symbol.operatorEqEq,prePlusPlus:Symbol.operatorPrePlusPlus,preMinusMinus:Symbol.operatorPreMinusMinus,postPlusPlus:Symbol.operatorPostPlusPlus,postMinusMinus:Symbol.operatorPostMinusMinus,preMinus:Symbol.operatorPreMinus}),vv=!1,xb=!1,Lo="0.12.3",ye=Symbol(`typegpu:${Lo}:$internal`),He=Symbol(`typegpu:${Lo}:$soul`),Na=Symbol(`typegpu:${Lo}:$gpuValueOf`),Do=Symbol(`typegpu:${Lo}:$getNameForward`),xa=Symbol(`typegpu:${Lo}:$providing`),sc=Symbol(`typegpu:${Lo}:$ownSnippet`),Ws=Symbol(`typegpu:${Lo}:$resolve`),Ab=Symbol(`typegpu:${Lo}:$cast`),bo=Symbol(`typegpu:${Lo}:$gpuCallable`),ku=Symbol(`typegpu:${Lo}:$repr`);`${Lo}`;`${Lo}`;`${Lo}`;`${Lo}`;`${Lo}`;`${Lo}`;`${Lo}`;`${Lo}`;`${Lo}`;function vs(e){return!!e?.[ye]}var Mr={[ye]:{},type:"void",toString(){return"void"}},C$=["bool","f32","f16","i32","u32","u16","vec2f","vec2h","vec2i","vec2u","vec2<bool>","vec3f","vec3h","vec3i","vec3u","vec3<bool>","vec4f","vec4h","vec4i","vec4u","vec4<bool>","mat2x2f","mat3x3f","mat4x4f","struct","array","ptr","atomic","decorated","abstractInt","abstractFloat","void","texture_1d","texture_storage_1d","texture_2d","texture_storage_2d","texture_multisampled_2d","texture_depth_2d","texture_depth_multisampled_2d","texture_2d_array","texture_storage_2d_array","texture_depth_2d_array","texture_cube","texture_depth_cube","texture_cube_array","texture_depth_cube_array","texture_3d","texture_storage_3d","texture_external","sampler","sampler_comparison"];function ra(e){let t=e;return vs(t)&&typeof t.kind=="string"&&t.kind.startsWith("vec")}function M$(e){return ra(e)&&e.kind.includes("b")}function E$(e){let t=e;return vs(t)&&typeof t.type=="string"&&t.type.startsWith("vec2")}function k$(e){let t=e;return vs(t)&&typeof t.type=="string"&&t.type.startsWith("vec3")}function B$(e){let t=e;return vs(t)&&typeof t.type=="string"&&t.type.startsWith("vec4")}function js(e){return E$(e)||k$(e)||B$(e)}function wb(e){return js(e)&&e.type.includes("b")}function ti(e){let t=e;return vs(t)&&typeof t.kind?.startsWith=="function"&&t.kind.startsWith("mat")}function iS(e){return vs(e)&&e?.type==="mat2x2f"}function lS(e){return vs(e)&&e?.type==="mat3x3f"}function z$(e){return vs(e)&&e?.type==="mat4x4f"}function Pi(e){return iS(e)||lS(e)||z$(e)}function cS(e){return vs(e)&&["abstractInt","i32","u32"].includes(e?.type)}function R$(e){return js(e)&&cS(e.primitive)}function Qw(e){return ra(e)&&["vec2f","vec3f","vec4f"].includes(e.kind)}function Z1(e){return ra(e)&&/[iu]$/.test(e.kind)}function dS(e){return ra(e)&&/[u]$/.test(e.kind)}function dd(e){return vs(e)&&C$.includes(e?.type)}function uo(e){return vs(e)&&e?.type==="array"}function _r(e){return vs(e)&&e?.type==="struct"}function oa(e){return vs(e)&&e?.type==="ptr"}function t_(e){return vs(e)&&e?.type==="atomic"}function uS(e){return vs(e)&&e?.type==="@align"}function pS(e){return vs(e)&&e?.type==="@size"}function mS(e){return vs(e)&&e?.type==="@location"}function D$(e){return vs(e)&&e?.type==="@builtin"}function yl(e){return vs(e)&&e?.type==="decorated"}function hv(e){return vs(e)&&e.type==="void"}function jl(e){return vs(e)&&e.type==="bool"}function z0(e){let t=e?.type;return vs(e)&&(t==="abstractInt"||t==="abstractFloat"||t==="f32"||t==="f16"||t==="i32"||t==="u32")}function Tb(e){let t=e?.type;return vs(e)&&(t==="f16"||t==="vec2h"||t==="vec3h"||t==="vec4h")}var L$=["abstractInt","abstractFloat","f32","f16","i32","u32","bool"];function ei(e){return!vs(e)||L$.includes(e?.type)}function gv(e){return e.schema}var U$=["deprecated","suspicious","fallback","precision-loss","implicit-conversion","webgpu-feature-missing","webgpu-limits-exceeded","locations-mismatched","log-limit-exceeded","external-omitted","uniform-schema-misaligned"],O$=class{#e;#t;#s=new WeakMap;constructor(e){e?this.#e=["webgpu-feature-missing","webgpu-limits-exceeded","locations-mismatched","log-limit-exceeded","external-omitted"]:this.#e=U$,this.#t=new Set(this.#e)}disable(e){this.#t.delete(e)}reset(){this.#t=new Set(this.#e)}warn(e,...t){this.#t.has(e)&&console.warn(`\u26A0\uFE0F [${e}] `,...t)}warnOnce(e,t,s,...r){if(!this.#t.has(e))return;let o=this.#s.get(t);o||(o=new Set,this.#s.set(t,o));let a=`${e}:${s}`;o.has(a)||(o.add(a),this.warn(e,...r))}},_S=new O$(!(vv||xb)),ar=_S,fS=_S;function Ya(e){if(Array.isArray(e))return`[${e.map(Ya).join(", ")}]`;let t=String(e);if(t!=="[object Object]")return t;try{return JSON.stringify(e)}catch(s){return ar.warn("suspicious","Error parsing JSON:",s),"<invalid json>"}}function R0(e){return ra(e)||ti(e)?e.toString():Array.isArray(e)?`[${e.map(R0).join(", ")}]`:e&&typeof e=="object"?`{ ${Object.entries(e).map(([t,s])=>`${t}: ${R0(s)}`).join(", ")} }`:String(e)}function G$(e){let t={};for(let[s,r]of Object.entries(e))Object.defineProperty(t,s,{get:r,enumerable:!0});return t}function F$(e){if(e.v===1){let t=e.externals;return{...e,externals:typeof t=="function"?t:()=>t}}if(e.v===2){let t=G$(e?.externals);return{...e,externals:()=>t}}throw new Error(`Unrecognized TypeGPU metadata format: ${Ya(e)}`)}var vS="0.12.3",vl=globalThis;vl.__TYPEGPU_VERSION__!==void 0&&console.warn(`Found duplicate TypeGPU version. First was ${vl.__TYPEGPU_VERSION__}, this one is ${vS}. This may cause unexpected behavior.`);vl.__TYPEGPU_VERSION__=vS;vl.__TYPEGPU_AUTONAME__=(e,t)=>yu(e)&&vs(e)&&!ct(e)?e.$name(t):e;var J1=new WeakMap;function yu(e){return!!e?.$name}function hS(e){return!!e?.[Do]}function gS(e){return e?.[He]}function ct(e){return hS(e)?ct(e[Do]):J1.get(e)??gS(e)?.label??vl.__TYPEGPU_META__?.get(e)?.name}function ss(e,t){if(hS(e)){ss(e[Do],t);return}J1.set(e,t);let s=gS(e);s&&(s.label=t)}var Zw=new WeakMap;function Sb(e){let t=vl.__TYPEGPU_META__?.get(e);if(t){vl.__TYPEGPU_META__?.delete(e);let s=F$(t);Zw.set(e,s),t.name&&J1.get(e)===void 0&&J1.set(e,t.name)}return Zw.get(e)}function bu(e){return typeof e=="function"&&!!Sb(e)}var Pb=(vv||xb)&&{get enabled(){return!!vl.__TYPEGPU_MEASURE_PERF__},record(e,t){let s=vl.__TYPEGPU_PERF_RECORDS__??=new Map,r=s.get(e);r||(r=[],s.set(e,r)),r.push(t)}}||void 0,x0="Invariant failed";function Dr(e,t){if(e)return;if(!vv&&!xb)throw new Error(x0);let s=typeof t=="function"?t():t,r=s?`${x0}: ${s}`:x0;throw new Error(r)}var vu=class D0 extends Error{cause;trace;constructor(t,s){let r=s.map(o=>`- ${bu(o)?`fn*:${ct(o)}`:o}`);r.length>20&&(r=[...r.slice(0,11),"...",...r.slice(-10)]),super(`Resolution of the following tree failed:
3
3
  ${r.join(`
4
4
  `)}: ${t&&typeof t=="object"&&"message"in t?t.message:t}`),this.cause=t,this.trace=s,Object.setPrototypeOf(this,D0.prototype)}appendToTrace(t){let s=[t,...this.trace];return new D0(this.cause,s)}},Jw=class L0 extends Error{cause;trace;constructor(t,s){let r=s.map(o=>`- ${o}`);r.length>20&&(r=[...r.slice(0,11),"...",...r.slice(-10)]),super(`Execution of the following tree failed:
@@ -269,4 +269,4 @@ The element must be a direct child of a <canvas layoutsubtree>.`,y),u=!0)}}}}}),
269
269
  const uv = array<vec2f, 3>(vec2f(0, 1), vec2f(2, 1), vec2f(0, -1));
270
270
 
271
271
  return Out(vec4f(pos[in.vertexIndex], 0, 1), uv[in.vertexIndex]);
272
- }`,"fullScreenTriangle");fS.disable("external-omitted");var G_e=["float32-filterable","timestamp-query"],Z5=new WeakMap,Q5=new WeakMap,J5=new WeakSet,$p=null,F_e=new WeakSet;async function I_e(e={}){if(e.device&&!J5.has(e.device)){let r=e.device,o=Z5.get(r);o||(o=A.initFromDevice({device:r}),Z5.set(r,o));let a=sq(o,e.onDeviceLost);return{root:o,device:r,adapter:e.adapter,createdDevice:!1,release:a}}e.device&&rn("[gpu] injected GPU device was lost \u2014 falling back to the shared default device");let t=await Y_e(),s=sq(t.root,e.onDeviceLost);return{root:t.root,device:t.device,adapter:t.adapter,createdDevice:!1,release:s}}async function Y_e(){for(;;){let t=$p;if(!t)break;let s=await t.catch(()=>null);if(s&&!F_e.has(t)&&!J5.has(s.device))return s;$p===t&&($p=null)}let e=W_e();$p=e;try{return await e}catch(t){throw $p===e&&($p=null),t}}async function W_e(){if(typeof navigator>"u"||!navigator.gpu)throw new ou("unsupported","[gpu] WebGPU is not available in this environment (navigator.gpu is undefined).");let e;try{e=await A.init({adapter:{powerPreference:"high-performance"},device:{optionalFeatures:G_e}})}catch(t){let s=await Hy();throw new ou(s.supported?"no-device":s.reason??"init-failed",void 0,{cause:t})}if(!e.device)throw new ou("no-device","[gpu] adapter returned no device.");return Z5.set(e.device,e),{root:e,device:e.device,createdDevice:!0}}function V_e(e,t,s={}){return e.configureContext({canvas:t,alphaMode:"premultiplied",...s})}function sq(e,t){let s=e.device,r=Q5.get(s);if(r||(r=new Set,Q5.set(s,r),e.device.lost.then(a=>{if(J5.add(s),a.reason!=="destroyed")for(let i of[...Q5.get(s)??[]])i(a)})),!t)return()=>{};let o=r;return o.add(t),()=>o.delete(t)}function q_e(){let e={value:0,advance(t,s){e.value+=t*s}};return e}var rq=new WeakMap;function Jd(e){let t=rq.get(e);return t||(t=q_e(),rq.set(e,t)),t}var N_e=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(et({time:n,viewportSize:m,logicalViewportSize:m,aspect:n,pointer:m,pointerActive:n}),"SystemUniforms");A.fn([m,m],m)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return na(t,s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewportSize"}],body:[0,[[10,[6,"std.mul",["uv","viewportSize"]]]]]},externals:{"std.mul":()=>na}})&&e.f)({}));A.fn([m],n)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(t.x,t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"viewportSize"}],body:[0,[[10,[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]]]]},externals:{}})&&e.f)({}));function $_e(e){let t=2166136261,s=e.join("");for(let r=0;r<s.length;r++)t^=s.charCodeAt(r),t=Math.imul(t,16777619);return`${(t>>>0).toString(16).padStart(8,"0")}:${s.length}`}function X_e(e={}){let t=e.maxSize??4,s=e.dispose,r=new Map,o=0,a=null,i=null;function l(d){d.lastUsed=++o}function c(){for(;r.size>t;){let d=null;for(let u of r.values())u.hash===a||u.hash===i||(!d||u.lastUsed<d.lastUsed)&&(d=u);if(!d)break;r.delete(d.hash),s?.(d.value,d.hash)}}return{getOrBuild(d,u){let p=r.get(d);if(p)return l(p),d===a?i=null:i=d,p.value;let _=u(),f={hash:d,value:_,lastUsed:++o};return r.set(d,f),a===null?(a=d,i=null):i=d,c(),_},markReady(d){if(d!==i)return;let u=r.get(d);u&&(a=d,i=null,l(u),c())},get renderValue(){let d=a??i;return d?r.get(d)?.value??null:null},get activeHash(){return a},get pendingHash(){return i},release(d){let u=r.get(d);u&&(r.delete(d),s?.(u.value,d),a===d&&(a=null),i===d&&(i=null))},has(d){return r.has(d)},get size(){return r.size},clear(){for(let d of r.values())s?.(d.value,d.hash);r.clear(),a=null,i=null}}}var Xp="passManager";function H_e(e,t){let{textureManager:s,dispatcher:r}=t,o=t.canvasFormat??j_e(),a=t.rttFormat??"rgba16float",i=e.device?.limits?.maxSampledTexturesPerShaderStage,l=t.maxSampledTextures??(typeof i=="number"&&i>0?i:16),c=t.fullScreenTriangle??O_e,d=new Map,u=new Set,p=null;function _(){let B=s.samplers;try{return e.createBindGroup(Ux,{linearClamp:B.linearClamp,nearestClamp:B.nearestClamp,linearRepeat:B.linearRepeat,nearestRepeat:B.nearestRepeat})}catch(D){hr(`[${Xp}] failed to build sampler bind group:`,D);return}}function f(B,D){let G=new Set;for(let F of B.textures)if(F.kind==="rtt")if(G.add(F.key),d.has(F.key))d.get(F.key).resize(D.width,D.height);else{let V=s.createRenderTexture({width:D.width,height:D.height,format:a,label:`rtt:${F.key}`});d.set(F.key,V),u.add(V)}for(let[F,V]of[...d])G.has(F)||(V.destroy(),u.delete(V),d.delete(F))}function v(B,D){if(!B.textureLayout||B.reads.length===0)return;let G={};for(let F of B.reads){let V=d.get(F),W=D?.[F],q=V??W;if(!q){hr(`[${Xp}] pass "${B.entry}" reads unknown texture "${F}"`);return}G[F]=q.texture}B.reads.length>l&&rn(`[${Xp}] pass samples ${B.reads.length} textures (> device limit ~${l}); composition may fail on this device.`);try{return e.createBindGroup(B.textureLayout,G)}catch(F){hr(`[${Xp}] failed to build texture bind group:`,F);return}}function g(B,D){return e.createRenderPipeline({vertex:c,fragment:B.entry,targets:{format:D}})}function y(B,D){if(!B.externalLayout||B.externalReads.length===0)return;let G=B.externalReads;if(G.length===1){let V=D.get(G[0]);if(!V){hr(`[${Xp}] external read "${G[0]}" has no registered source`);return}return s.createExternalTextureBinding({layout:B.externalLayout,entryKey:G[0],getSource:V})}let F=null;return{update(){let V={};for(let W of G){let q=D.get(W)?.();if(!q)return F=null,null;try{V[W]=e.device.importExternalTexture({source:q})}catch{return F=null,null}}return F=e.createBindGroup(B.externalLayout,V),F},get current(){return F},destroy(){F=null}}}function x(B,D,G,F){let V=D.kind==="canvas"?o:a,W=B.reads.filter($=>G?.[$]),q=new Map(W.map($=>[$,G[$].texture]));return{fragment:B,pipeline:g(B,V),textureBindGroup:v(B,G),externalBinding:y(B,F),target:D,mediaReads:W,mediaSnapshot:q}}function w(B,D,G,F){f(B,G);for(let Q of B.computeSteps)Q.bindInputs?.(ee=>d.get(ee)??F?.[ee]);let V=_(),W=new Map;for(let Q of B.externalTextures)W.set(Q.key,Q.getSource);let q=B.rttPasses.map(Q=>x(Q.fragment,{kind:"rtt",key:Q.textureKey},F,W)),$=x(B.finalPass,{kind:"canvas"},F,W);p={ir:B,uniformBindGroup:D,samplerBindGroup:V,computeSteps:B.computeSteps,rttPasses:q,finalPass:$,size:G,mediaResources:F}}function P(B,D){let G=B.pipeline;if(p?.uniformBindGroup&&(G=G.with(p.uniformBindGroup)),B.mediaReads&&B.mediaReads.length>0&&p?.mediaResources){let F=!1;for(let V of B.mediaReads)p.mediaResources[V].texture!==B.mediaSnapshot.get(V)&&(F=!0);if(F){B.textureBindGroup=v(B.fragment,p.mediaResources);for(let V of B.mediaReads)B.mediaSnapshot.set(V,p.mediaResources[V].texture)}}if(B.textureBindGroup&&(G=G.with(B.textureBindGroup)),B.fragment.usesSamplers&&p?.samplerBindGroup&&(G=G.with(p.samplerBindGroup)),B.fragment.externalReads.length>0){let F=B.externalBinding?.update()??null;if(!F){B.externalSkipLogged||(rn(`[${Xp}] external texture not ready \u2014 skipping pass (${B.fragment.externalReads.join(", ")})`),B.externalSkipLogged=!0);return}G=G.with(F)}G.withColorAttachment({view:D}).draw(3)}function C(B,D,G){if(p){for(let F of p.computeSteps){let V=F.getComputeNodes(D);V&&V.length&&r.dispatch(V)}G?.(),k(),P(p.finalPass,B)}}function k(){if(p)for(let B of p.rttPasses){let D=d.get(B.target.key);D&&P(B,z(D))}}function z(B){return e.unwrap(B.texture).createView()}function U(B){if(!(!B.fragment.textureLayout||B.fragment.reads.length===0)&&(B.textureBindGroup=v(B.fragment,p?.mediaResources),B.mediaReads&&B.mediaSnapshot&&p?.mediaResources))for(let D of B.mediaReads)B.mediaSnapshot.set(D,p.mediaResources[D].texture)}function L(B,D){let G=!1;for(let F of d.values())F.resize(B,D)&&(G=!0);if(!p)return G;if(p.size={width:B,height:D},!G)return!1;for(let F of p.computeSteps)F.bindInputs?.(V=>d.get(V)??p.mediaResources?.[V]);for(let F of p.rttPasses)U(F);return U(p.finalPass),!0}return{setComposition:w,render:C,repaintRtt:k,resize:L,get textureCount(){return u.size},get passCount(){return p?p.rttPasses.length+1:0},dispose(){for(let B of[...u])B.destroy();u.clear(),d.clear(),p=null}}}function j_e(){return typeof navigator<"u"&&navigator.gpu?navigator.gpu.getPreferredCanvasFormat():"bgra8unorm"}function oq(e){return`${e}-srgb`}function K_e(e){let t=new Set;function s(f,...v){return e.createTexture.call(e,f).$usage(...v)}let r,o,a,i,l={get linearClamp(){return r??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get nearestClamp(){return o??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get linearRepeat(){return a??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})},get nearestRepeat(){return i??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"repeat",addressModeV:"repeat"})}};function c(f,v,g,y,x){let w={texture:f,width:v,height:g,format:y,write(P){f.write(P)},unwrap(){return e.unwrap(f)},createSrgbView(){if(x)return e.unwrap(f).createView({format:oq(y)})},generateMipmaps(){f.generateMipmaps?.()},destroy(){t.has(w)&&(f.destroy(),t.delete(w))}};return t.add(w),w}function d(f){let{width:v,height:g,srgb:y=!1,mipLevelCount:x}=f,w=f.format??"rgba8unorm";return c(s({size:[v,g],format:w,...y?{viewFormats:[oq(w)]}:{},...x?{mipLevelCount:x}:{}},"sampled","render"),v,g,w,y)}function u(f){let{width:v,height:g,format:y,data:x}=f,w=c(s({size:[v,g],format:y},"sampled"),v,g,y,!1);return x&&w.write(x),w}function p(f){let v=f.format??"rgba16float",{mipLevelCount:g}=f,y=f.width,x=f.height;function w(C,k){return c(s({size:[C,k],format:v,...g?{mipLevelCount:g}:{}},"sampled","render"),C,k,v,!1)}let P=w(y,x);return{get texture(){return P.texture},get width(){return y},get height(){return x},format:v,write(C){P.write(C)},unwrap(){return P.unwrap()},createSrgbView(){return P.createSrgbView()},generateMipmaps(){P.generateMipmaps()},resize(C,k){return C===y&&k===x?!1:(P.destroy(),y=C,x=k,P=w(C,k),!0)},destroy(){P.destroy()}}}function _(f){let{layout:v,entryKey:g,getSource:y,staticEntries:x={}}=f,w=null;return{update(){let P=y();if(!P)return w=null,null;let C;try{C=e.device.importExternalTexture({source:P})}catch{return w=null,null}return w=e.createBindGroup(v,{...x,[g]:C}),w},get current(){return w},destroy(){w=null}}}return{samplers:l,createMediaTexture:d,createDataTexture:u,createRenderTexture:p,createExternalTextureBinding:_,get textureCount(){return t.size},destroy(){for(let f of[...t])f.destroy();t.clear()}}}function Q_e(e,t){let s=K5(e)?.definition?.naturalSizeKey;if(!s)return null;if("fixed"in s)return s.fixed||null;let r=t[s.fromProp];return typeof r=="string"&&r?r:null}function Z_e(e,t,s){if(!e||typeof e!="object")return null;let r=(i,l)=>!i||typeof i!="object"||typeof i.value!="number"?null:i.unit==="px"?i.value:i.value*l,o=r(e.width,t),a=r(e.height,s);return o!=null&&a!=null&&o>0&&a>0?{widthPx:o,heightPx:a}:null}function J_e(e,t,s){let{type:r,decl:o,props:a,boundingBox:i}=e;if(!(t>0)||!(s>0)||e.requiresChild)return null;if(o?.computeBounds){let u=o.computeBounds(a,t,s);return u.widthPx>0&&u.heightPx>0?{widthPx:u.widthPx,heightPx:u.heightPx}:null}let l=o?.propBindings;if(l?.width&&l?.height){let u=S_(l.width,a[l.width.prop],t,s),p=S_(l.height,a[l.height.prop],t,s);return u>0&&p>0?{widthPx:u,heightPx:p}:null}let c=Z_e(i,t,s);if(c)return c;let d=Q_e(r,a);if(d){let u=tU(d);if(u)return{widthPx:u.width,heightPx:u.height}}return null}function efe(e,t){return e==null?0:typeof e=="number"?e:e.unit==="px"?e.value:e.value*t}function e6(e,t,s){return!e||e.mode!=="column"&&e.mode!=="row"?null:{mode:e.mode,gapPx:Math.max(0,efe(e.gap,e.mode==="column"?s:t)),align:e.align??"center",anchor:e.anchor??"center",anchorOffsetX:e.anchorOffset?.x??0,anchorOffsetY:e.anchorOffset?.y??0}}var aq=e=>({ox:e.includes("left")?"start":e.includes("right")?"end":"center",oy:e.includes("top")?"start":e.includes("bottom")?"end":"center"}),By=(e,t,s,r)=>e==="start"?r:e==="end"?s-t-r:(s-t)/2+r;function zy(e,t){let s=0,r=0;for(let o of t){let a=e.mode==="column"?o.size.heightPx:o.size.widthPx,i=e.mode==="column"?o.size.widthPx:o.size.heightPx;s+=a,r=Math.max(r,i)}return t.length>1&&(s+=e.gapPx*(t.length-1)),e.mode==="column"?{widthPx:r,heightPx:s}:{widthPx:s,heightPx:r}}function tfe(e,t,s,r){let o=new Map;if(t.length===0)return o;let a=zy(e,t),{ox:i,oy:l}=aq(e.anchor),c=By(i,a.widthPx,s,e.anchorOffsetX),d=By(l,a.heightPx,r,e.anchorOffsetY),u=(_,f)=>e.align==="start"?0:e.align==="end"?f-_:(f-_)/2,p=0;for(let _ of t)if(e.mode==="column"){let f=c+u(_.size.widthPx,a.widthPx)+_.size.widthPx/2,v=d+p+_.size.heightPx/2;o.set(_.id,{centerXPx:f,centerYPx:v}),p+=_.size.heightPx+e.gapPx}else{let f=c+p+_.size.widthPx/2,v=d+u(_.size.heightPx,a.heightPx)+_.size.heightPx/2;o.set(_.id,{centerXPx:f,centerYPx:v}),p+=_.size.widthPx+e.gapPx}return o}function sfe(e,t,s){let r=e6(e.layout,t,s);if(r){let o=t6(e,t,s);return o.length===0?null:zy(r,o)}return J_e({type:e.componentName,decl:e.decl,props:e.props,boundingBox:e.boundingBox,requiresChild:e.requiresChild,availableWidthPx:t},t,s)}function t6(e,t,s){let r=[];for(let o of e.children){if(o.visible===!1||o.absolute)continue;let a=sfe(o,t,s);a&&r.push({id:o.id,size:a,view:o})}return r}function rfe(e,t,s){if(!e.decl?.computeBounds)return{x:0,y:0};let r=e.decl.computeBounds(e.props,t,s),o=typeof e.props.center?.x=="number"?e.props.center.x:.5,a=typeof e.props.center?.y=="number"?e.props.center.y:.5;return{x:r.centerXPx-o*t,y:r.centerYPx-a*s}}function ofe(e,t,s,r,o,a,i,l){let c=e6(e.layout,o,a);if(c){nq(e,c,o,a,i,{centerXPx:s,centerYPx:r},l);return}let d=e.decl?.propBindings?.x?.prop??e.decl?.propBindings?.y?.prop;if(d){if(!e.positionDriven){let u=rfe(e,o,a);i.push({kind:"position",id:e.id,prop:d,value:{x:(s-u.x)/o,y:(r-u.y)/a}})}return}i.push({kind:"box",id:e.id,xPx:s-t.widthPx/2,yPx:r-t.heightPx/2,widthPx:t.widthPx,heightPx:t.heightPx})}function nq(e,t,s,r,o,a,i,l){let c=l??t6(e,s,r);if(c.length===0)return;let d=t;if(a){let p=zy(t,c);d={...t,anchor:"top-left",anchorOffsetX:a.centerXPx-p.widthPx/2,anchorOffsetY:a.centerYPx-p.heightPx/2}}if(i){let p=zy(d,c),{ox:_,oy:f}=aq(d.anchor);i.set(e.id,{leftPx:By(_,p.widthPx,s,d.anchorOffsetX),topPx:By(f,p.heightPx,r,d.anchorOffsetY),widthPx:p.widthPx,heightPx:p.heightPx})}let u=tfe(d,c,s,r);for(let p of c){let _=u.get(p.id);_&&ofe(p.view,p.size,_.centerXPx,_.centerYPx,s,r,o,i)}}function afe(e,t,s,r){let o=[],a=i=>{let l=e6(i.layout,t,s);if(l){let c=t6(i,t,s);nq(i,l,t,s,o,void 0,r,c);let d=new Set(c.map(u=>u.id));for(let u of i.children)u.visible!==!1&&(d.has(u.id)||a(u));return}for(let c of i.children)c.visible!==!1&&a(c)};for(let i of e)i.visible!==!1&&a(i);return o}var nfe=class{frameTimesMs=[];frameTimesIndex=0;frameTimesCount=0;maxSamples=60;targetFrameTime=16.67;jankFrameCount=0;totalFrameCount=0;memorySnapshots=[];memorySnapshotIndex=0;maxMemorySnapshots=300;nodeCount=0;rttNodeCount=0;lastCpuTime=null;lastGpuTime=null;isRendering=!1;lastFrameTimestamp=0;frameIntervals=[];frameIntervalsIndex=0;frameIntervalsCount=0;pushToCircularBuffer(e,t,s,r,o){return e.length<o?(e.push(t),{index:e.length,count:e.length}):(e[s%o]=t,{index:s+1,count:o})}getBufferValues(e,t){return t<=e.length?e.slice(0,t):e}recordFrame(e){let t=this.pushToCircularBuffer(this.frameTimesMs,e,this.frameTimesIndex,this.frameTimesCount,this.maxSamples);this.frameTimesIndex=t.index,this.frameTimesCount=t.count,this.totalFrameCount++,e>this.targetFrameTime&&this.jankFrameCount++;let s=performance.now();if(this.lastFrameTimestamp>0){let r=s-this.lastFrameTimestamp,o=this.pushToCircularBuffer(this.frameIntervals,r,this.frameIntervalsIndex,this.frameIntervalsCount,this.maxSamples);this.frameIntervalsIndex=o.index,this.frameIntervalsCount=o.count}this.lastFrameTimestamp=s,this.recordMemorySnapshot()}recordCpuTime(e){this.lastCpuTime=e}recordGpuTime(e){this.lastGpuTime=e}updateNodeCounts(e,t){this.nodeCount=e,this.rttNodeCount=t}setRendering(e){this.isRendering=e}recordMemorySnapshot(){if(!performance.memory)return;let e=performance.now(),t=performance.memory.usedJSHeapSize;if(this.memorySnapshots.length<this.maxMemorySnapshots)this.memorySnapshots.push({time:e,bytes:t});else{let s=this.memorySnapshots[this.memorySnapshotIndex];s.time=e,s.bytes=t,this.memorySnapshotIndex=(this.memorySnapshotIndex+1)%this.maxMemorySnapshots}}calculateMemoryGrowthRate(){if(this.memorySnapshots.length<2)return null;let e=this.memorySnapshots.length,t=e<this.maxMemorySnapshots?0:this.memorySnapshotIndex,s=e<this.maxMemorySnapshots?e-1:(this.memorySnapshotIndex-1+e)%e,r=this.memorySnapshots[t],o=this.memorySnapshots[s],a=(o.time-r.time)/1e3;return a<=0?null:(o.bytes-r.bytes)/(1024*1024)/a}calculateStdDev(e){if(e.length===0)return 0;let t=e.reduce((r,o)=>r+o,0)/e.length,s=0;for(let r=0;r<e.length;r++){let o=e[r]-t;s+=o*o}return Math.sqrt(s/e.length)}sortBuffer=[];calculateP99(e){let t=e.length;if(t===0)return 0;for(;this.sortBuffer.length<t;)this.sortBuffer.push(0);for(let r=0;r<t;r++)this.sortBuffer[r]=e[r];for(let r=1;r<t;r++){let o=this.sortBuffer[r],a=r-1;for(;a>=0&&this.sortBuffer[a]>o;)this.sortBuffer[a+1]=this.sortBuffer[a],a--;this.sortBuffer[a+1]=o}let s=Math.floor(t*.99);return this.sortBuffer[Math.min(s,t-1)]}calculateComplexityScore(){return this.nodeCount+this.rttNodeCount*10}calculateIntensityScore(){let e=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),t=e.length;if(t===0)return{score:0,label:"N/A"};let s=e.reduce((u,p)=>u+p,0)/t,r=Math.min(s/16.67*100,100),o=this.calculateComplexityScore(),a=Math.min(o/100*100,100),i=0;this.lastGpuTime!==null&&(i=Math.min(this.lastGpuTime/16.67*100,100));let l=this.lastGpuTime!==null?{frame:.4,gpu:.4,complexity:.2}:{frame:.7,gpu:0,complexity:.3},c=Math.round(r*l.frame+i*l.gpu+a*l.complexity),d;return c<=20?d="Very Light":c<=40?d="Light":c<=60?d="Medium":c<=80?d="Heavy":d="Very Heavy",{score:Math.min(c,100),label:d}}getStats(e){let t=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),s=this.getBufferValues(this.frameIntervals,this.frameIntervalsCount),r=t.length,o=s.length>0?1e3/(s.reduce((P,C)=>P+C,0)/s.length):0,a=r>0?t.reduce((P,C)=>P+C,0)/r:0,i=r>0?Math.min(...t):0,l=r>0?Math.max(...t):0,c=this.calculateP99(t),d=this.calculateStdDev(t),u=this.totalFrameCount>0?this.jankFrameCount/this.totalFrameCount*100:0,p=performance.memory,_=p?p.usedJSHeapSize/(1024*1024):null,f=this.calculateMemoryGrowthRate(),v=a>0?a/this.targetFrameTime*100:0,g=e?.render?.calls??null,y=e?.programs?.length??null,x=e?.memory?.textures??null,w=this.calculateIntensityScore();return{fps:Math.round(o),avgFrameTime:Math.round(a*100)/100,minFrameTime:Math.round(i*100)/100,maxFrameTime:Math.round(l*100)/100,p99FrameTime:Math.round(c*100)/100,stdDevFrameTime:Math.round(d*100)/100,jankCount:this.jankFrameCount,jankPercent:Math.round(u*10)/10,nodeCount:this.nodeCount,rttNodeCount:this.rttNodeCount,complexityScore:this.calculateComplexityScore(),memoryUsedMB:_!==null?Math.round(_*100)/100:null,memoryGrowthRate:f!==null?Math.round(f*1e3)/1e3:null,cpuTime:this.lastCpuTime!==null?Math.round(this.lastCpuTime*100)/100:null,gpuTime:this.lastGpuTime!==null?Math.round(this.lastGpuTime*100)/100:null,budgetUsed:Math.round(v*10)/10,drawCalls:g,shaderPrograms:y,textureCount:x,intensityScore:w.score,intensityLabel:w.label,isRendering:this.isRendering}}reset(){this.frameTimesMs.length=0,this.frameTimesIndex=0,this.frameTimesCount=0,this.frameIntervals.length=0,this.frameIntervalsIndex=0,this.frameIntervalsCount=0,this.lastFrameTimestamp=0,this.jankFrameCount=0,this.totalFrameCount=0,this.memorySnapshots.length=0,this.memorySnapshotIndex=0,this.sortBuffer.length=0,this.lastCpuTime=null,this.lastGpuTime=null}},ife=32,lfe=5,cfe=(()=>{let e=0,t=new Set,s=(d,u)=>{t.forEach(p=>{try{p[d](u)}catch(_){hr("[Shaders] Error in pointer handler:",_)}})},r=d=>s("onMouseMove",d),o=d=>s("onTouchMove",d),a=d=>s("onMouseDown",d),i=d=>s("onTouchStart",d),l=()=>s("onMouseUp"),c=()=>s("onTouchEnd");return{register(d){return t.add(d),e++,e===1&&typeof window<"u"&&(window.addEventListener("mousemove",r),window.addEventListener("touchmove",o),window.addEventListener("mousedown",a,!0),window.addEventListener("touchstart",i,!0),window.addEventListener("mouseup",l,!0),window.addEventListener("touchend",c,!0)),()=>{t.delete(d),e--,e===0&&typeof window<"u"&&(window.removeEventListener("mousemove",r),window.removeEventListener("touchmove",o),window.removeEventListener("mousedown",a,!0),window.removeEventListener("touchstart",i,!0),window.removeEventListener("mouseup",l,!0),window.removeEventListener("touchend",c,!0))}}}})();function dfe(e){if(!e)return!1;let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return!1}if(!t||typeof t!="object")return!1;for(let s in t){let r=t[s];if(r&&typeof r=="object"&&r.type==="mouse")return!0}return!1}function iq(){let e=null,t=null,s=null,r=null,o=null,a=null,i=!1,l=!1,c=!1,d=null,u=new Map,p=null,_=new Map,f=[],v=[],g=X_e({maxSize:4,dispose:H=>Kf(H)}),y=new Set,x=null,w=null,P=!0,C=0,k=0,z=0,U=0,L=1,B=8192,D=0,G=0,F=!1,V=()=>z||C||1,W=()=>U||k||1,q=!0,$=!1,Q=!1,ee=0,re=0,ne=0,ce=null,oe=null,we=-10,de=-10,xe=!1,Te=!1,Oe=null,Ee=!1,Re=null,Ne=null,ke=null,Ce=null,Se=null,$e=null,Ye=!1,ut="p3-linear",gt="linear",Qe=!1,lt=null,ft=null,wt=!1,St=!1,kt=null,It=!1,Yt=null,Qt=null,ns=!1,hs=null,rs=null,Ss=0,gs=0,_s=new nfe,ys={deltaTime:0,pointer:{x:-10,y:-10,seen:!1},pointerActive:!1,dimensions:{width:0,height:0}},Zs=gk(()=>sm()),Ar=H=>H.replace(/[^a-zA-Z0-9_]/g,"_"),nr=H=>{let J=_.get(H);if(!J)return[];let se=[];for(let be of J){let _e=u.get(be);_e&&se.push(_e)}return se},Rr=H=>{let J=Ar(H);for(let[se,be]of u)if(be.metadata.id===J)return se;return null},Cr=(H,J)=>{if(J==="center")return;let se=H.boundingBoxDeclaration;if(!se)return;let be={};for(let[_e,Pe]of Object.entries(H.uniforms))be[_e]=Pe._rawDimensional!==void 0?Pe._rawDimensional:Pe.value;return p3(se,be,V(),W())},Ur=H=>{let J=H.boundingBoxDeclaration,se=H.extraDimProps,be=$u(J,se);if(!be)return;let _e=H.uniforms.origin?.value??"center",Pe=Cr(H,_e),Ke=[...be.positionProps,...be.sizeProps.keys()];for(let yt of Ke){let Pt=H.uniforms[yt];if(!Pt||Pt._rawDimensional===void 0)continue;let $t=k_(J,yt,Pt._rawDimensional,_e,V(),W(),se,Pe);Pt.value=$t,ol(H,yt,$t)}},me=(H,J,se)=>{if(typeof se=="number")return se;let be=H.uniforms.origin?.value??"center",_e=k_(H.boundingBoxDeclaration,J,se,be,V(),W(),H.extraDimProps);return typeof _e=="number"?_e:se?.value??0},We=()=>{let{width:H,height:J}=al();return H/Math.max(1,J)},Ge=H=>{let J=H.metadata.transform;return{offsetX:J?.offsetX??0,offsetY:J?.offsetY??0,rotation:J?.rotation??0,scale:J?.scale??1,anchorX:J?.anchorX??.5,anchorY:J?.anchorY??.5,aspectRatio:We()}},ze=H=>{let J=H.metadata.boundingBox;if(!J)return null;let se=Lx(J,V(),W());return{centerX:se.centerX,centerY:se.centerY,halfWidth:se.halfWidthUV,halfHeight:se.halfHeightUV,cornerRadius:se.cornerRadiusUV,rotation:se.rotation,aspectRatio:We()}},De=H=>!!H.metadata.boundingBox&&!!H.boundingBoxDeclaration&&!Hv(H.metadata.boundingBox),st=H=>{let J=H.boundingBoxDeclaration;if(!J||!H.uniforms||!J.computeBounds&&!J.propBindings)return null;let se={};for(let[Pt,$t]of Object.entries(H.uniforms))se[Pt]=$t._rawDimensional!==void 0?$t._rawDimensional:$t.value;let be=p3(J,se,V(),W());if(be.hwx<=0&&be.hhy<=0)return null;let _e=.5,Pe=.5,Ke=J.propBindings?.x?.prop??J.propBindings?.y?.prop,yt=Ke?H.uniforms[Ke]?.value:void 0;if(yt&&typeof yt.x=="number"&&typeof yt.y=="number"&&(_e=yt.x,Pe=yt.y),Ke){let Pt=H.metadata.maps?.[Ke];if(Pt?.type==="mouse-position"){let $t=H.mouseDriverState[Ke];$t&&(_e=$t.liveX??(typeof Pt.x=="number"?Pt.x:$t.currentX),Pe=$t.liveY??(typeof Pt.y=="number"?Pt.y:$t.currentY))}}return{centerX:_e,centerY:Pe,halfWidth:be.hwx,halfHeight:be.hhy}},bt=H=>{if(!H.definition.wantsBoundsParams)return null;let J=nr(H.id).sort((se,be)=>se.metadata.renderOrder-be.metadata.renderOrder);for(let se of J){if(se.metadata.visible===!1)continue;if(De(se))return null;let be=st(se);if(be)return be}return null},Rt=()=>{for(let H of u.values()){if(!H.definition.wantsBoundsParams)continue;let J=bt(H);J&&(lr(H,"_childBounds_centerX",J.centerX),lr(H,"_childBounds_centerY",J.centerY),lr(H,"_childBounds_halfWidth",J.halfWidth),lr(H,"_childBounds_halfHeight",J.halfHeight))}},Dt=!1,zt=()=>{Dt=!0,sn()},Os=()=>{for(let H of u.values()){let J=H.metadata.flow?.mode;if(J==="column"||J==="row")return!0}return!1},ir=H=>{let J={};for(let[Pe,Ke]of Object.entries(H.uniforms))J[Pe]=Ke._rawDimensional!==void 0?Ke._rawDimensional:Ke.value;let se=H.boundingBoxDeclaration?.propBindings?.x?.prop??H.boundingBoxDeclaration?.propBindings?.y?.prop,be=se?H.uniforms[se]?.value:void 0,_e=!!(se&&(be?.type==="mouse-position"||H.metadata.maps?.[se]));return{id:H.id,componentName:H.componentName,visible:H.metadata.visible!==!1,absolute:H.metadata.absolute===!0,requiresChild:H.requiresChild,layout:H.metadata.flow,decl:H.boundingBoxDeclaration,props:J,boundingBox:H.metadata.boundingBox,positionDriven:_e,children:nr(H.id).sort((Pe,Ke)=>Pe.metadata.renderOrder-Ke.metadata.renderOrder).map(ir)}},Nr=()=>{if(!Os()){Dt=!1;return}let H=V(),J=W();if(H<=1||J<=1)return;Dt=!1;let se=[];for(let _e of u.values())_e.parentId===null&&se.push(ir(_e));let be=afe(se,H,J);for(let _e of be){let Pe=u.get(_e.id);if(Pe)if(_e.kind==="position"){let Ke=Pe.uniforms[_e.prop];if(!Ke)continue;let yt=Ke.value,Pt=yt&&typeof yt=="object"?{...yt,x:_e.value.x,y:_e.value.y}:_e.value;Ke.value=Pt,ol(Pe,_e.prop,Pt)}else{let Ke=De(Pe);if(Pe.metadata.boundingBox={x:{value:_e.xPx,unit:"px"},y:{value:_e.yPx,unit:"px"},width:{value:_e.widthPx,unit:"px"},height:{value:_e.heightPx,unit:"px"},origin:"top-left",rotation:Pe.metadata.boundingBox?.rotation??0,...Pe.metadata.boundingBox?.cornerRadius?{cornerRadius:Pe.metadata.boundingBox.cornerRadius}:{},...Pe.metadata.boundingBox?.lockAspect!==void 0?{lockAspect:Pe.metadata.boundingBox.lockAspect}:{}},!Ke&&De(Pe))jn();else{let yt=ze(Pe);if(yt)for(let[Pt,$t]of Object.entries(yt))lr(Pe,`_bbox_${Pt}`,$t)}}}},Mo=()=>{Dt&&Nr()},$r=null,qs=()=>{Os()&&zt()},Pn=()=>{$r||($r=sU(()=>{Os()&&zt()})),typeof document<"u"&&document.fonts?.addEventListener&&document.fonts.addEventListener("loadingdone",qs)};Pn();let Fo=H=>ml(H.metadata.transform),La=(H,J,se)=>{let be=H.mapValues[J]??{inputMin:0,inputMax:1,outputMin:0,outputMax:1,curve:0};if(se.type==="map"){let _e=se;be.inputMin=_e.inputMin,be.inputMax=_e.inputMax,be.outputMin=me(H,J,_e.outputMin),be.outputMax=me(H,J,_e.outputMax),be.curve=_e.curve??0}else if(se.type==="mouse"){let _e=se;be.outputMin=me(H,J,_e.outputMin),be.outputMax=me(H,J,_e.outputMax),be.curve=_e.curve??0}else if(se.type==="auto-animate"){let _e=se;be.outputMin=me(H,J,_e.outputMin),be.outputMax=me(H,J,_e.outputMax)}return H.mapValues[J]=be,be},fi=(H,J,se)=>{let be=H.mouseDriverState[J];if(be)return be;if(se.type==="mouse-position"){let _e=se.x===void 0||se.x==="mouse",Pe=se.y===void 0||se.y==="mouse";be={currentX:_e?we:se.x,currentY:Pe?de:se.y,velocityX:0,velocityY:0,pointerSnapped:Te}}else be={currentX:Math.max(.001,se.axis==="x"?we:de),currentY:0,velocityX:0,velocityY:0,pointerSnapped:Te};return H.mouseDriverState[J]=be,be},Il=H=>{let J=H.metadata.maps;if(J)for(let[se,be]of Object.entries(J))se in H.uniforms&&(be.type==="map"?La(H,se,be):be.type==="mouse-position"?fi(H,se,be):be.type==="mouse"?(fi(H,se,be),La(H,se,be)):be.type==="auto-animate"&&(H.autoAnimateState[se]||(H.autoAnimateState[se]={}),La(H,se,be)))},tu=H=>{let J=H.definition.animatedTime;return(J?H.uniforms[J.speed]:void 0)??H},Hp=(H,J)=>H.uniforms[J]??H,Wf=H=>{let J=[];for(let[_e,Pe]of Object.entries(H.uniforms))J.push({name:_e,initial:Pe.value,transform:Pe.transform,cpu:Pe.cpu,schema:Pe.schema});if(J.push({name:"_opacity",schema:n,initial:H.metadata.opacity??1}),H.definition.animatedTime&&J.push({name:"_animTime",schema:n,initial:Jd(tu(H)).value}),H.definition.extraAnimatedTimes)for(let[_e,Pe]of Object.entries(H.definition.extraAnimatedTimes))J.push({name:`_animTime_${_e}`,schema:n,initial:Jd(Hp(H,Pe)).value});let se=H.definition.extraFields;if(se)for(let[_e,Pe]of Object.entries(se))J.push({name:_e,schema:Pe.schema,initial:Pe.initial});if(Fo(H)){let _e=Ge(H);for(let[Pe,Ke]of Object.entries(_e))J.push({name:`_xform_${Pe}`,schema:n,initial:Ke})}if(De(H)){let _e=ze(H);if(_e)for(let[Pe,Ke]of Object.entries(_e))J.push({name:`_bbox_${Pe}`,schema:n,initial:Ke})}if(H.definition.wantsBoundsParams){let _e=bt(H)??{centerX:.5,centerY:.5,halfWidth:.5,halfHeight:.5};for(let[Pe,Ke]of Object.entries(_e))J.push({name:`_childBounds_${Pe}`,schema:n,initial:Ke})}let be=H.metadata.maps;if(be){Il(H);for(let[_e,Pe]of Object.entries(be))if(_e in H.uniforms){if(Pe.type==="map"){let Ke=H.mapValues[_e];J.push({name:`_map_${_e}_inputMin`,schema:n,initial:Ke.inputMin}),J.push({name:`_map_${_e}_inputMax`,schema:n,initial:Ke.inputMax}),J.push({name:`_map_${_e}_outputMin`,schema:n,initial:Ke.outputMin}),J.push({name:`_map_${_e}_outputMax`,schema:n,initial:Ke.outputMax}),J.push({name:`_map_${_e}_curve`,schema:n,initial:Ke.curve})}else if(Pe.type==="mouse-position"){let Ke=H.mouseDriverState[_e];J.push({name:`_smoothed_${_e}`,schema:m,initial:[Ke.currentX,1-Ke.currentY]})}else if(Pe.type==="mouse"){let Ke=H.mapValues[_e];J.push({name:`_smoothed_${_e}`,schema:n,initial:Ke.outputMin})}else if(Pe.type==="auto-animate"){let Ke=H.mapValues[_e];J.push({name:`_smoothed_${_e}`,schema:n,initial:Ke.outputMin})}}}return J},ol=(H,J,se)=>{let be=H._liveHandles?.[J];be&&(lt?.(ut),cM(be,se))},lr=(H,J,se)=>{let be=H._liveHandles?.[J];be instanceof ai&&(be.value=se)},Vf=(H,J,se)=>{let be=H._liveHandles?.[J];be instanceof ai?be.value=se:be instanceof Fm&&Array.isArray(se)&&(be.array=se)},Ry=H=>{for(let J of Object.values(H.uniforms))if(J.transform===tt){let se=J.value;if(typeof se=="string")return tt(se);if(typeof se=="number")return se}return 0},Dy=H=>{if(!H.uniforms.convertedColorsArray)return;let J=null;for(let Pe of Object.values(H.uniforms))if(Pe.transform===gc){J=Pe.value??null;break}let se=s3(J,E_),be=r3(se.colors,se.stopCount,Ry(H)),_e=(Pe,Ke)=>{let yt=H.uniforms[Pe];yt&&(yt.value=Ke),ol(H,Pe,Ke)};_e("colorsArray",se.colors),_e("positionsArray",se.positions),_e("convertedColorsArray",be),_e("stopCount",se.stopCount)},jp=(H,J)=>{let se=H.uniforms[J],be=se?._listSpec;if(!se||!be)return;let _e=se._rawList,Pe=new Set,Ke=i3(_e,be,{color:E_,drivenPosition:($t,Js,wr)=>{let pr=OE(J,$t,Js);Pe.add(pr);let ts=fi(H,pr,wr);return ts.liveX!==void 0&&ts.liveY!==void 0?{x:ts.liveX,y:1-ts.liveY}:void 0}});for(let $t of Object.keys(H.mouseDriverState)){let Js=n3($t);Js&&Js.prop===J&&!Pe.has($t)&&delete H.mouseDriverState[$t]}se.value=Ke,ol(H,J,Ke);let yt=l3(Ke,be),Pt=($t,Js)=>{let wr=H.uniforms[$t];wr&&(wr.value=Js),ol(H,$t,Js)};for(let[$t,Js]of Object.entries(yt.fields))Pt(C_(J,$t),Js);Pt(M_(J),yt.count)},qf=(H,J)=>{let se=H.metadata.maps?.[J];if(se)return se;let be=n3(J);if(!be)return;let _e=H.uniforms[be.prop]?._rawList,Pe=(Array.isArray(_e)?_e[be.index]:void 0)?.[be.field];return ah(Pe)?Pe:void 0},Nf=H=>Object.values(H.uniforms).some(J=>J._listSpec&&c3(J._rawList,J._listSpec)),Ly=H=>{if(lr(H,"_opacity",H.metadata.opacity??1),H.definition.animatedTime&&lr(H,"_animTime",Jd(tu(H)).value),H.definition.extraAnimatedTimes)for(let[se,be]of Object.entries(H.definition.extraAnimatedTimes))lr(H,`_animTime_${se}`,Jd(Hp(H,be)).value);if(Fo(H))for(let[se,be]of Object.entries(Ge(H)))lr(H,`_xform_${se}`,be);if(De(H)){let se=ze(H);if(se)for(let[be,_e]of Object.entries(se))lr(H,`_bbox_${be}`,_e)}let J=H.metadata.maps;if(J){for(let[se,be]of Object.entries(J))if(be.type==="map"&&H.mapValues[se]){let _e=H.mapValues[se];lr(H,`_map_${se}_inputMin`,_e.inputMin),lr(H,`_map_${se}_inputMax`,_e.inputMax),lr(H,`_map_${se}_outputMin`,_e.outputMin),lr(H,`_map_${se}_outputMax`,_e.outputMax),lr(H,`_map_${se}_curve`,_e.curve)}}},Uy=(H,J)=>{let se={};for(let be of Object.keys(H.uniforms)){let _e=J[be];_e&&(se[be]=_e)}return se},$f=H=>{let J={};for(let[se,be]of Object.entries(H.uniforms))J[se]={accessorPath:"",cpu:!!be.cpu,value:be.value};return J},Oy=(H,J)=>({id:H.id,customId:H.metadata.id,componentName:H.componentName,parentId:H.parentId,definition:H.definition,metadata:H.metadata,handles:J,domCanvas:H.domCanvas}),Xf=(H,J)=>{let se=new Map,be=Pe=>Oy(Pe,H&&J?Uy(Pe,J.get(Pe.id)??{}):$f(Pe)),_e=Pe=>{let Ke=se.get(Pe);if(Ke)return Ke;let yt=u.get(Pe);if(!yt)return;let Pt=be(yt);return se.set(Pe,Pt),Pt};return{rootId:p,getNode:_e,getChildren:Pe=>nr(Pe).map(Ke=>_e(Ke.id)),resolveCustomId:Pe=>Rr(Pe),store:{gpuAccessor:(Pe,Ke)=>H?H.gpuAccessor(Pe,Ke):"",layout:H?.layout}}},Hf=()=>({toneMapping:gt,flipY:!1,premultiplyAlpha:!0,canvas:a??void 0,dimensions:al(),gpu:t?{device:t.device,root:t}:void 0,writeExtraField:(H,J,se)=>{let be=u.get(H);be&&Vf(be,J,se)},createMediaTexture:H=>{if(!r)throw new Error("[gpu] createMediaTexture before init");return r.createMediaTexture(H)},createDataTexture:H=>{if(!r)throw new Error("[gpu] createDataTexture before init");return r.createDataTexture(H)},resolveMapWindow:(H,J)=>{let se=u.get(H),be=se?.metadata.maps?.[J];if(!se||!be||be.type!=="map")return;let _e=La(se,J,be);return{inputMin:_e.inputMin,inputMax:_e.inputMax,outputMin:_e.outputMin,outputMax:_e.outputMax,curve:_e.curve}},resolveDriverCpuValue:(H,J)=>{let se=u.get(H);if(!se)return;if(J==="_animTime"||J.startsWith("_animTime_")){let _e=se._liveHandles?.[J];return _e instanceof ai?_e.value:void 0}let be=se.metadata.maps?.[J];if(be){if(be.type==="mouse-position"){let _e=se.mouseDriverState[J];return!_e||_e.liveX===void 0||_e.liveY===void 0?void 0:{x:_e.liveX,y:1-_e.liveY}}if(be.type==="mouse"||be.type==="auto-animate"){let _e=se._liveHandles?.[`_smoothed_${J}`];return _e instanceof ai?_e.value:void 0}}}}),Gy=()=>{let H=[];for(let[J,se]of u){let be=se.metadata;H.push(`aopac:${J}:${(be.opacity??1)<1}`);let _e=se.uniforms.stopCount?.value;typeof _e=="number"&&H.push(`stops:${J}:${_e>1?_e:0}`);for(let[Pe,Ke]of Object.entries(se.uniforms)){if(!Ke.compileTimeWhen)continue;let yt=Ke._lastCompiledValue;typeof yt!="number"&&typeof yt!="boolean"||H.push(`ctw:${J}:${Pe}:${String(yt)}`)}if(be.maps){let Pe=Object.entries(be.maps).sort(([Ke],[yt])=>Ke<yt?-1:Ke>yt?1:0).map(([Ke,yt])=>{let Pt=yt;return`${Ke}=${Pt.type}:${Pt.source??""}:${Pt.channel??""}:${Pt.axis??""}`}).join(",");H.push(`mapfp:${J}:${Pe}`)}}return H},jf=()=>p?$_e([...dE(Xf(null,null),Hf()),...Gy()]):null,al=()=>({width:Math.max(1,Math.round(C*L)),height:Math.max(1,Math.round(k*L))}),Fy=H=>{let J={};for(let se of H.textures)se.kind!=="rtt"&&se.resource&&(J[se.key]=se.resource);return J},Iy=H=>{if(!t||!r||!o)throw new Error("[gpu] buildComposition before init");let J=lM(t,{systemSchema:N_e}),se=new Map;for(let[Ke,yt]of u)se.set(Ke,J.defineNode(Ke,Wf(yt)));J.defineSystem(),J.finalize();let be=cE(Xf(J,se),Hf()),_e=H_e(t,{textureManager:r,dispatcher:o});_e.setComposition(be,J.bindGroup,al(),Fy(be));let Pe={hash:H,store:J,ir:be,passManager:_e,handlesById:se,fresh:!0};return y.add(Pe),Pe},Kf=H=>{try{for(let J of H.ir.onCleanup)J()}catch(J){hr("[gpu] composition onCleanup error:",J)}try{H.passManager.dispose()}catch(J){hr("[gpu] passManager dispose error:",J)}try{H.store.destroy()}catch(J){hr("[gpu] store destroy error:",J)}y.delete(H),x===H&&(x=null)},Qf=H=>{let J=!1;for(let[se,be]of H.handlesById){let _e=u.get(se);_e&&_e._liveHandles!==be&&(_e._liveHandles=be,J=!0)}if(!(H===x&&!J)){if(!H.fresh){for(let se of u.values()){for(let[be,_e]of Object.entries(se.uniforms))ol(se,be,_e.value);Il(se),Ly(se)}H.store.writeAll()}H.fresh=!1,x=H,!wt&&H.ir.composedNodeIds.size>0&&(St=!0)}},jn=()=>{P=!0,Os()&&(Dt=!0),sn()},sn=()=>{Yt||Zs.running||oe===null&&typeof requestAnimationFrame=="function"&&(oe=requestAnimationFrame(()=>{oe=null,sm()}))},Zf=(H,J,se,be,_e={},Pe,Ke)=>{if(Yt)return;if(J===null){let ts=f.findIndex(Io=>Io.id===H);if(ts!==-1){f.splice(ts,1),v=v.filter(Io=>Io.id!==H);return}qc(H);return}if(!Pe){console.error(`[gpu] registerNode("${H}") requires a componentDefinition`);return}if(!c){let ts=f.findIndex(Kn=>Kn.id===H),Io={id:H,definition:Pe,parentId:se,metadata:be,uniforms:_e,domCanvas:Ke};ts!==-1?(f[ts]=Io,v=v.filter(Kn=>Kn.id!==H)):f.push(Io);return}let yt=0;if(se!==null){let ts=_.get(se);if(ts&&ts.size>0){let Io=0;for(let Kn of ts){let Ua=u.get(Kn);Ua&&Ua.metadata.renderOrder>Io&&(Io=Ua.metadata.renderOrder)}yt=Io+1}}let Pt={blendMode:be?.blendMode||"normal",opacity:be?.opacity,visible:be?.visible!==!1,id:be?.id?Ar(be.id):be?.id,mask:be?.mask,maps:be?.maps,renderOrder:be?.renderOrder!==void 0?be.renderOrder:yt,transform:be?.transform,boundingBox:be?.boundingBox,flow:be?.flow,absolute:be?.absolute},$t=Pe.boundingBoxDeclaration,Js=Pe.props?u3(Pe.props):void 0,wr={id:H,componentName:Pe.name||"Unknown",parentId:se,definition:Pe,metadata:Pt,uniforms:_e,domCanvas:Ke,requiresRTT:!!Pe.requiresRTT,requiresChild:!!Pe.requiresChild,blendWithChildren:!!Pe.blendWithChildren,acceptsUVContext:!!Pe.acceptsUVContext,providesUVContextViaCompute:!!Pe.providesUVContextViaCompute,usesPointer:!!Pe.usesPointer,hasUvRemap:!!Pe.uvRemap,boundingBoxDeclaration:$t,wantsBoundsParams:!!Pe.wantsBoundsParams,extraDimProps:Js,mouseDriverState:{},autoAnimateState:{},mapValues:{},_liveHandles:null};if($t||Js){let ts=$u($t,Js);if(ts){let Io=_e.origin?.value??"center",Kn=Cr(wr,Io);for(let Ua of[...ts.positionProps,...ts.sizeProps.keys()]){let ha=_e[Ua];ha&&(ha._rawDimensional===void 0&&(ha._rawDimensional=ha.value),ha.value=k_($t,Ua,ha._rawDimensional,Io,V(),W(),Js,Kn))}}}for(let ts of Object.values(_e))ts.compileTimeWhen&&ts._lastCompiledValue===void 0&&(ts._lastCompiledValue=ts.value);u.set(H,wr),se===null&&(p=H);let pr=_.get(se)||new Set;pr.add(H),_.set(se,pr),rm(),jn(),Os()&&zt()},Jf=H=>{f.some(J=>J.id===H.id)&&v.push(H)},Kp=(H,J,se)=>{let be=u.get(H);if(!be){Jf({id:H,kind:"uniform",name:J,value:se});return}let _e=be.uniforms[J];if(!_e)return;let Pe=be.boundingBoxDeclaration,Ke=be.extraDimProps;if((Pe||Ke)&&m3(Pe,J,Ke)){_e._rawDimensional=se;let yt=be.uniforms.origin?.value??"center",Pt=Cr(be,yt);se=k_(Pe,J,se,yt,V(),W(),Ke,Pt)}if(_e.transform===Td){_e._rawList=se,jp(be,J),rm(),sn();return}if(_e.value=se,ol(be,J,se),(_e.transform===gc||_e.transform===tt)&&Dy(be),J==="origin"&&Pe)Ur(be);else if(Pe&&(be.uniforms.origin?.value??"center")!=="center"){let yt=$u(Pe,Ke),Pt=!!Pe.computeBounds||(yt?.sizeProps.has(J)??!1),$t=yt?.positionProps.has(J)??!1;Pt&&!$t&&Ur(be)}if(J==="shape"&&rm(),Os()&&zt(),_e.compileTime){jn();return}if(_e.compileTimeWhen){let yt=_e._lastCompiledValue;if(_e.compileTimeWhen(yt,se)){_e._lastCompiledValue=se,jn();return}}sn()},e1=(H,J)=>{let se=u.get(H);if(!se){Jf({id:H,kind:"metadata",metadata:J});return}let be=!1;if(J.blendMode!==void 0&&se.metadata.blendMode!==J.blendMode&&(se.metadata.blendMode=J.blendMode,be=!0),J.opacity!==void 0&&se.metadata.opacity!==J.opacity){let _e=se.metadata.opacity??1,Pe=J.opacity;se.metadata.opacity=Pe,lr(se,"_opacity",Pe),_e>=1!=Pe>=1&&(be=!0)}if(J.renderOrder!==void 0&&se.metadata.renderOrder!==J.renderOrder&&(se.metadata.renderOrder=J.renderOrder,be=!0),"visible"in J){let _e=J.visible!==!1;se.metadata.visible!==_e&&(se.metadata.visible=_e,be=!0)}if(J.id!==void 0){let _e=Ar(J.id);se.metadata.id!==_e&&(se.metadata.id=_e,be=!0)}if("mask"in J&&(se.metadata.mask?.source!==J.mask?.source||se.metadata.mask?.type!==J.mask?.type)&&(se.metadata.mask=J.mask,be=!0),"maps"in J&&JSON.stringify(se.metadata.maps)!==JSON.stringify(J.maps)){let _e=se.metadata.maps,Pe=J.maps;if(se.metadata.maps=Pe,rm(),(()=>{if(!_e||!Pe)return!0;let Ke=Object.keys(_e),yt=Object.keys(Pe);if(Ke.length!==yt.length||!Ke.every(Pt=>Pt in Pe))return!0;for(let Pt of yt){let $t=_e[Pt],Js=Pe[Pt];if($t.type!==Js.type)return!0;if(Js.type==="map"){let wr=$t,pr=Js;if(wr.source!==pr.source||wr.channel!==pr.channel)return!0}else if(Js.type==="mouse"&&$t.axis!==Js.axis)return!0}return!1})()){if(_e&&Pe)for(let Ke of Object.keys(_e))Ke in Pe&&_e[Ke].type!==Pe[Ke].type&&(delete se.mouseDriverState[Ke],delete se.autoAnimateState[Ke],delete se.mapValues[Ke]);be=!0}else if(Pe)for(let[Ke,yt]of Object.entries(Pe)){let Pt=La(se,Ke,yt);yt.type==="map"&&(lr(se,`_map_${Ke}_inputMin`,Pt.inputMin),lr(se,`_map_${Ke}_inputMax`,Pt.inputMax),lr(se,`_map_${Ke}_outputMin`,Pt.outputMin),lr(se,`_map_${Ke}_outputMax`,Pt.outputMax),lr(se,`_map_${Ke}_curve`,Pt.curve))}}if(J.transform!==void 0){let _e=se.metadata.transform,Pe={offsetX:J.transform.offsetX??_e?.offsetX??0,offsetY:J.transform.offsetY??_e?.offsetY??0,rotation:J.transform.rotation??_e?.rotation??0,scale:J.transform.scale??_e?.scale??1,anchorX:J.transform.anchorX??_e?.anchorX??.5,anchorY:J.transform.anchorY??_e?.anchorY??.5,edges:J.transform.edges??_e?.edges??"transparent"},Ke=Fo(se);se.metadata.transform=Pe;let yt=ml(Pe);if(Ke!==yt||_e&&_e.edges!==Pe.edges)be=!0;else if(yt)for(let[Pt,$t]of Object.entries(Ge(se)))lr(se,`_xform_${Pt}`,$t)}if(J.boundingBox!==void 0&&J.boundingBox!==null&&se.boundingBoxDeclaration!==void 0){let _e=De(se);se.metadata.boundingBox=J.boundingBox;let Pe=De(se);if(_e!==Pe)be=!0;else if(Pe){let Ke=ze(se);if(Ke)for(let[yt,Pt]of Object.entries(Ke))lr(se,`_bbox_${yt}`,Pt)}}else J.boundingBox===null&&se.metadata.boundingBox!==void 0&&(se.metadata.boundingBox=void 0,be=!0);if("flow"in J&&JSON.stringify(se.metadata.flow)!==JSON.stringify(J.flow)){let _e=se.metadata.flow?.mode==="column"||se.metadata.flow?.mode==="row";se.metadata.flow=J.flow??void 0;let Pe=se.metadata.flow?.mode==="column"||se.metadata.flow?.mode==="row";if(_e&&!Pe){let Ke=yt=>{for(let Pt of nr(yt))Ur(Pt),Ke(Pt.id)};Ke(H)}zt()}"absolute"in J&&se.metadata.absolute!==J.absolute&&(se.metadata.absolute=J.absolute,J.absolute&&Ur(se),zt()),Os()&&zt(),be?jn():sn()},qc=H=>{let J=u.get(H);if(!J)return;for(let be of nr(H))qc(be.id);p===H&&(p=null);let se=_.get(J.parentId);se&&(se.delete(H),se.size===0&&_.delete(J.parentId)),u.delete(H),rm(),jn(),Os()&&zt()},t1=()=>{let H=ys.deltaTime;ne=fk(ce,ne,H,performance.now());for(let J of u.values()){let se=J.metadata.maps??{};for(let be in J.mouseDriverState){let _e=J.mouseDriverState[be],Pe=qf(J,be);if(Pe){if(Pe.type==="mouse-position"){let Ke=Pe.smoothing??0,yt=Pe.momentum??0,Pt=Pe.x===void 0||Pe.x==="mouse",$t=Pe.y===void 0||Pe.y==="mouse";!_e.pointerSnapped&&Te&&(_e.pointerSnapped=!0,Pt&&(_e.currentX=we,_e.velocityX=0),$t&&(_e.currentY=de,_e.velocityY=0));let Js,wr;if(Pt){let[Qn,ru]=G_(_e.currentX,_e.velocityX,we,Ke,yt,H);_e.currentX=Qn,_e.velocityX=ru,Js=Qn}else Js=Pe.x,_e.velocityX=0;if($t){let[Qn,ru]=G_(_e.currentY,_e.velocityY,de,Ke,yt,H);_e.currentY=Qn,_e.velocityY=ru,wr=Qn}else wr=Pe.y,_e.velocityY=0;let pr=Pe.reach??1,ts=Pe.originX??.5,Io=Pe.originY??.5,Kn=Pe.invertX?-1:1,Ua=Pe.invertY?-1:1,ha=ts+Kn*(Js-ts)*pr,Cn=Io+Ua*(wr-Io)*pr,$c=ha,om=Cn,n1=J.metadata.boundingBox;if(n1&&J.boundingBoxDeclaration?.supportsResizeFit&&De(J)){let Qn=Lx(n1,V(),W()),ru=nE(ha,Cn,{centerX:Qn.centerX,centerY:Qn.centerY,halfWidthUV:Qn.halfWidthUV,halfHeightUV:Qn.halfHeightUV,rotationDeg:Qn.rotation,aspectRatio:We()});$c=ru.x,om=ru.y}_e.liveX=$c,_e.liveY=om;let c6=J._liveHandles?.[`_smoothed_${be}`];c6 instanceof ai&&c6.setComponents($c,1-om)}else if(Pe.type==="mouse"){let Ke=Pe.smoothing??0,yt=Pe.momentum??0,Pt=Pe.axis==="x"?we:de;!_e.pointerSnapped&&Te&&(_e.pointerSnapped=!0,_e.currentX=Math.max(.001,Pt),_e.velocityX=0);let[$t,Js]=G_(_e.currentX,_e.velocityX,Pt,Ke,yt,H);_e.currentX=$t,_e.velocityX=Js;let wr=Math.max(.001,$t),pr=J.mapValues[be],ts=pr?pr.outputMin+(pr.outputMax-pr.outputMin)*Math.pow(wr,Math.pow(2,-pr.curve*2)):wr;_e.liveScalar=ts,lr(J,`_smoothed_${be}`,ts)}}}for(let[be,_e]of Object.entries(J.uniforms))_e._listSpec&&c3(_e._rawList,_e._listSpec)&&jp(J,be);for(let be in J.autoAnimateState){let _e=se[be];if(!_e||_e.type!=="auto-animate")continue;let Pe=ne*(_e.speed??1)*.2,Ke,yt=_e.easing??_e.waveform??"sine";if(_e.mode==="loop")Ke=V3((Pe%1+1)%1,yt);else{let ts=(Pe%1+1)%1;Ke=V3(ts<.5?ts*2:(1-ts)*2,yt)}let Pt=J.mapValues[be],$t=Pt?Pt.outputMin:me(J,be,_e.outputMin),Js=Pt?Pt.outputMax:me(J,be,_e.outputMax),wr=$t+Ke*(Js-$t),pr=J.uniforms[be];if(pr?.compileTimeWhen){let ts=pr._lastCompiledValue;pr.compileTimeWhen(ts,wr)&&(pr._lastCompiledValue=wr,jn())}lr(J,`_smoothed_${be}`,wr)}}},s1=()=>{let H=ys.deltaTime;for(let J of u.values()){let se=J.definition.animatedTime;if(se){let _e=J.uniforms[se.speed],Pe=_e&&Number(_e.value)||0,Ke=Jd(tu(J));Ke.advance(H,Pe),lr(J,"_animTime",Ke.value)}let be=J.definition.extraAnimatedTimes;if(be)for(let[_e,Pe]of Object.entries(be)){let Ke=J.uniforms[Pe],yt=Ke&&Number(Ke.value)||0,Pt=Jd(Hp(J,Pe));Pt.advance(H,yt),lr(J,`_animTime_${_e}`,Pt.value)}}},Qp=(H,J)=>_k(H,J,{maxTextureDim:B,pixelRatio:L,viewportWidth:typeof window<"u"?window.innerWidth:H,viewportHeight:typeof window<"u"?window.innerHeight:J}),su=()=>{let H=(typeof window<"u"?window.devicePixelRatio:1)||1;return Math.min(H,xE())},Nc=(H,J,se,be)=>{if(F&&H===C&&J===k&&se===z&&be===U){let{width:yt,height:Pt}=al();if(!a||a.width===yt&&a.height===Pt)return}C=H,k=J,z=se,U=be,d3(se,be),F||(F=!0,u.size>0&&jn());let{width:_e,height:Pe}=al();a&&(a.width=_e,a.height=Pe);let Ke=!1;for(let yt of y)yt.passManager.resize(_e,Pe)&&(Ke=!0);for(let yt of y)for(let Pt of yt.ir.onResize)try{Pt({width:_e,height:Pe})}catch($t){hr("[gpu] composition onResize error:",$t)}for(let yt of u.values()){if(Fo(yt)&&lr(yt,"_xform_aspectRatio",We()),De(yt)){let Pt=ze(yt);if(Pt)for(let[$t,Js]of Object.entries(Pt))lr(yt,`_bbox_${$t}`,Js)}Ur(yt)}if(Nr(),Ke)for(let yt of y)r1(yt.store),yt.store.flush(),yt.passManager.repaintRtt();ee=0,sm()},Zp=(H,J)=>{H<=0||J<=0||H===D&&J===G||(D=H,G=J,$e={width:H,height:J},!Ye&&typeof requestAnimationFrame=="function"&&(Ye=!0,requestAnimationFrame(()=>{if(Ye=!1,!$e)return;let se=$e;$e=null;let{width:be,height:_e}=Qp(se.width,se.height);Nc(be,_e,se.width,se.height)})))},Jp=H=>{let J=H[0];if(!J)return;let se,be;if(J.contentBoxSize){let _e=Array.isArray(J.contentBoxSize)?J.contentBoxSize[0]:J.contentBoxSize;_e?(se=Math.round(_e.inlineSize),be=Math.round(_e.blockSize)):(se=Math.round(J.contentRect.width),be=Math.round(J.contentRect.height))}else se=Math.round(J.contentRect.width),be=Math.round(J.contentRect.height);se===0||be===0||Zp(se,be)},Yy=H=>{let J=H[0];J&&($=J.isIntersecting)},em=()=>i&&!!t&&!!s&&C>0&&k>0,r1=H=>{let J=H.systemHandles,{width:se,height:be}=al(),_e=su(),Pe=(Ke,yt)=>{let Pt=J[Ke];Pt instanceof ai&&(Pt.value=yt)};Pe("time",ne),Pe("viewportSize",[se,be]),Pe("logicalViewportSize",[V()*_e,W()*_e]),Pe("aspect",se/Math.max(1,be)),Pe("pointer",[we,de]),Pe("pointerActive",xe?1:0)},tm=H=>{for(let J of H)try{J(ys)}catch(se){hr("[gpu] render callback error:",se)}},a6=H=>{if(Yt||!em())return;let J=performance.now(),se;if(H!==void 0)se=H;else{let Ke=vk(J,{lastRenderTime:ee,isVisible:$,forceFullFrameRate:Q,minInterval:re});if(!Ke.render)return;se=Ke.deltaTime}ee=J,Qe&&performance.mark("shader-cpu-start");let be=we>-5;ys.deltaTime=se,ys.pointer.x=be?we:.5,ys.pointer.y=be?de:.5,ys.pointer.seen=Te,ys.pointerActive=xe,ys.dimensions.width=C,ys.dimensions.height=k;let _e=null,Pe=null;try{hk({updateDrivers:()=>{t1(),s1(),Rt(),Mo()},ensureComposition:()=>((P||w===null)&&(w=jf(),P=!1),w===null?!1:(_e=g.getOrBuild(w,()=>Iy(w)),Qf(_e),!!x)),beforeRender:()=>tm(x.ir.onBeforeRender),flush:()=>{r1(x.store),x.store.flush()},render:()=>{if(Qe&&performance.mark("shader-gpu-start"),Pe=g.renderValue??_e,Pe?.passManager.render(s,ys,()=>x?.store.flush()),Qe){performance.mark("shader-gpu-end");try{performance.measure("shader-gpu-time","shader-gpu-start","shader-gpu-end");let Ke=performance.getEntriesByName("shader-gpu-time")[0];Ke&&_s.recordGpuTime(Ke.duration),performance.clearMeasures("shader-gpu-time"),performance.clearMarks("shader-gpu-start"),performance.clearMarks("shader-gpu-end")}catch{}}},markReady:()=>{g.markReady(w),St&&!wt&&(wt=!0,St=!1,ft&&queueMicrotask(ft))},afterRender:()=>tm((Pe??x).ir.onAfterRender)}),gs=0}catch(Ke){bq(Ke);return}if(Qe){performance.mark("shader-cpu-end");try{performance.measure("shader-cpu-time","shader-cpu-start","shader-cpu-end");let Ke=performance.getEntriesByName("shader-cpu-time")[0];Ke&&_s.recordCpuTime(Ke.duration),performance.clearMarks("shader-cpu-start"),performance.clearMarks("shader-cpu-end"),performance.clearMeasures("shader-cpu-time")}catch{}}_s.recordFrame(performance.now()-J)},sm=()=>a6(void 0),pq=async H=>{if(Yt)return;if(!em())throw new Error("Renderer is not ready");let J=Zs.running;J&&o1(),ee=0,sm(),t&&H?.waitForGpu!==!1&&await q3(t),J&&Wy()},mq=async(H,J)=>{a6(H),t&&J?.waitForGpu!==!1&&await q3(t)},Wy=()=>{Yt||Zs.running||!q||(_s.setRendering(!0),Zs.start())},o1=()=>{Zs.running&&(Zs.stop(),_s.setRendering(!1))},a1=H=>{if(!a)return;Oe=a.getBoundingClientRect();let J,se;if("touches"in H){if(H.touches.length===0)return;J=H.touches[0].clientX,se=H.touches[0].clientY}else J=H.clientX,se=H.clientY;we=(J-Oe.left)/Oe.width,de=(se-Oe.top)/Oe.height,Te=!0},_q=H=>{!i||!a||(a1(H),xe=!0,sn())},fq=H=>{!i||!a||(a1(H),xe=!0,sn())},vq=()=>{i&&(xe=!1,sn())},hq=()=>{i&&(xe=!1,sn())},n6=(H,J)=>{if(!i||!a)return!1;let se=a.getBoundingClientRect();return se.width===0||se.height===0?!1:H>=se.left&&H<=se.right&&J>=se.top&&J<=se.bottom},gq=H=>{H.button===0&&n6(H.clientX,H.clientY)&&(xe=!0,a1(H),sn())},yq=H=>{H.touches.length!==0&&n6(H.touches[0].clientX,H.touches[0].clientY)&&(xe=!0,a1(H),sn())},rm=()=>{let H=!1;for(let J of u.values()){if(J.usesPointer){H=!0;break}if(dfe(J.uniforms?.shape?.value)||Nf(J)){H=!0;break}if(J.metadata.maps){for(let se of Object.values(J.metadata.maps))if(se&&typeof se=="object"&&"type"in se){let be=se.type;if(be==="mouse"||be==="mouse-position"){H=!0;break}}if(H)break}}H&&!Ee?(Ee=!0,!Re&&a&&(Re=cfe.register({onMouseMove:_q,onTouchMove:fq,onMouseDown:gq,onTouchStart:yq,onMouseUp:vq,onTouchEnd:hq}))):!H&&Ee&&(Ee=!1,Re&&(Re(),Re=null))},i6=()=>{if(f.length===0)return;let H=[...f];f=[];for(let se of H)Zf(se.id,se.definition.fragment,se.parentId,se.metadata,se.uniforms,se.definition,se.domCanvas);let J=v;v=[];for(let se of J)se.kind==="uniform"?Kp(se.id,se.name,se.value):e1(se.id,se.metadata)},Yl=(H,J)=>{if(!Yt){Yt=H,u6(H),hr(`[gpu] renderer stopped (${H}):`,J);try{Vy()}catch(se){hr("[gpu] cleanup during failure threw:",se)}if(!ns&&Qt){ns=!0;let se=Qt;queueMicrotask(()=>{try{se(H,J)}catch(be){hr("[gpu] onUnavailable callback threw:",be)}})}}},bq=H=>{if($y(H)){Yl(H.reason,H);return}gs++,gs===1&&hr("[gpu] render error:",H),gs>=lfe&&Yl("render-failed",H)},xq=H=>{!H||typeof H.addEventListener!="function"||(l6(),hs=H,rs=J=>{try{J.preventDefault()}catch{}let se=J.error;if(hr("[gpu] uncaptured device error:",se),typeof GPUOutOfMemoryError<"u"&&se instanceof GPUOutOfMemoryError){Yl("out-of-memory",se);return}if(typeof GPUInternalError<"u"&&se instanceof GPUInternalError){Yl("gpu-error",se);return}Ss++,Ss>=ife&&Yl("gpu-error",se)},H.addEventListener("uncapturederror",rs))},l6=()=>{if(hs&&rs)try{hs.removeEventListener("uncapturederror",rs)}catch{}hs=null,rs=null},Aq=H=>{if(!It){It=!0;try{o1()}catch{}if(kt){let J=kt;queueMicrotask(()=>{try{J(H)}catch(se){hr("[gpu] onDeviceLost callback threw:",se)}});return}Yl("device-lost",H)}},wq=async H=>{if(H.context!==void 0)throw new Error("[gpu] initialize({ context }) is not supported \u2014 this renderer is WebGPU-only. Remove the WebGL `context` option.");if(Yt)return;let J=p6();if(J){Yl(J);return}if(i||l)return;let{canvas:se,resizeTarget:be,enablePerformanceTracking:_e=!1,colorSpace:Pe="p3-linear",toneMapping:Ke="linear",gpu:yt,forceFullFrameRate:Pt=!1,observeElement:$t=!0,timeOrigin:Js}=H;Js!=null&&(ce=Js),Qe=_e,Q=Pt,ut=Pe,gt=Ke,Pn(),l=!0,d=new AbortController;let wr=d;try{if(lt=FE,lt(Pe),wr.signal.aborted||(a=se,e=await I_e({device:yt?.device,adapter:yt?.adapter,onDeviceLost:Cn=>Aq(Cn.message||Cn.reason||"unknown")}),wr.signal.aborted))return;t=e.root,xq(t.device),L=su();let pr=t.device.limits?.maxTextureDimension2D;typeof pr=="number"&&pr>0&&(B=pr),r=K_e(t),o=mE(t),typeof window<"u"&&(Ce=()=>Vy(),window.addEventListener("beforeunload",Ce),Se=()=>{if(D>0&&G>0){let Cn=D,$c=G;D=0,G=0,Zp(Cn,$c)}},window.addEventListener("resize",Se,{passive:!0}));let ts=se.getBoundingClientRect();Oe=ts,$=!$t||ts.width>0&&ts.height>0&&ts.top<window.innerHeight&&ts.bottom>0&&ts.left<window.innerWidth&&ts.right>0,q=!0;let Io=ts.width>0?ts.width:se.width,Kn=ts.height>0?ts.height:se.height,Ua=Math.round(Io),ha=Math.round(Kn);if(Ua>0&&ha>0){D=Ua,G=ha;let{width:Cn,height:$c}=Qp(Ua,ha);C=Cn,k=$c,z=Ua,U=ha,F=!0,d3(Ua,ha);let{width:om,height:n1}=al();se.width=om,se.height=n1}else F=!1;if(s=V_e(t,se),$t&&typeof ResizeObserver<"u"){let Cn=be??se.parentElement;Cn?(Ne=new ResizeObserver(Jp),Ne.observe(Cn)):console.warn("[gpu] no element available for resize observation \u2014 use resize() manually"),typeof IntersectionObserver<"u"&&(ke=new IntersectionObserver(Yy,{threshold:0,rootMargin:"128px"}),ke.observe(se))}if(wr.signal.aborted)return;i=!0,c=!0,i6(),C>0&&k>0&&sm(),q&&Wy()}catch(pr){let ts=$y(pr)?pr.reason:"init-failed";l=!1,d===wr&&(d=null),Yl(ts,pr);return}finally{l=!1,d===wr&&(d=null)}},Vy=()=>{d&&d.abort(),Ne&&(Ne.disconnect(),Ne=null),ke&&(ke.disconnect(),ke=null),Re&&(Re(),Re=null),Ce&&typeof window<"u"&&(window.removeEventListener("beforeunload",Ce),Ce=null),Se&&typeof window<"u"&&(window.removeEventListener("resize",Se),Se=null),oe!==null&&typeof cancelAnimationFrame=="function"&&(cancelAnimationFrame(oe),oe=null),o1(),l6(),$r?.(),$r=null,typeof document<"u"&&document.fonts?.removeEventListener&&document.fonts.removeEventListener("loadingdone",qs);try{e?.release?.()}catch{}g.clear();for(let H of[...y])Kf(H);x=null;try{r?.destroy()}catch{}try{e?.createdDevice&&t?.destroy()}catch{}u.clear(),p=null,_.clear(),f=[],v=[],c=!1,$e=null,Ye=!1,a=null,s=null,r=null,o=null,t=null,e=null,i=!1,l=!1,F=!1,d=null,C=0,k=0,z=0,U=0,w=null,P=!0,$=!1,q=!0,we=-10,de=-10,xe=!1,Te=!1,Ee=!1,ft=null,wt=!1,St=!1,kt=null,It=!1,Ss=0,gs=0};return{initialize:wq,cleanup:Vy,registerNode:Zf,removeNode:qc,updateUniformValue:Kp,updateNodeMetadata:e1,isInitialized:()=>i,resize:(H,J)=>{t&&Zp(H,J)},startAnimation:Wy,stopAnimation:o1,renderAndWait:pq,renderSyntheticFrame:mq,getPerformanceStats:()=>{let H=Math.max(0,u.size-1),J=x?x.ir.rttPasses.length:0;_s.updateNodeCounts(H,J);let se={render:{calls:x?x.passManager.passCount:0},programs:{length:g.size},memory:{textures:r?r.textureCount:0}};return _s.getStats(se)},getLiveDriverValue:(H,J)=>{let se=u.get(H)?.mouseDriverState?.[J];return!se||se.liveX===void 0||se.liveY===void 0?null:{x:se.liveX,y:se.liveY}},getLiveScalarValue:(H,J)=>{let se=u.get(H);if(!se)return null;let be=se.metadata.maps?.[J];if(be?.type==="auto-animate"){let _e=se._liveHandles?.[`_smoothed_${J}`],Pe=_e instanceof ai?_e.value:void 0;return typeof Pe=="number"?Pe:null}return be?.type==="mouse"?se.mouseDriverState[J]?.liveScalar??null:null},getNodeRegistry:()=>({nodes:new Map(u)}),getRendererType:()=>"webgpu",getInternalRenderer:()=>t?{device:t.device,adapter:e?.adapter,root:t}:null,setForceFullFrameRate:H=>{let J=Q;return Q=H,J},beginRecordingResolution:(H,J,se)=>{if(!t||H<=0||J<=0)return()=>{};let be=L,_e=C,Pe=k,Ke=z,yt=U,Pt=D,$t=G;return L=se,Nc(H,J,H,J),()=>{t&&(L=be,Nc(_e,Pe,Ke,yt),D=Pt,G=$t)}},setResolutionScale:H=>{if(!t)return;let J=Math.max(.05,Math.min(H,1)),se=Math.max(.01,su()*J);if(Math.abs(L-se)<.001)return;L=se;let be=z||C,_e=U||k;if(be<=0||_e<=0)return;let{width:Pe,height:Ke}=Qp(be,_e);Nc(Pe,Ke,be,_e)},setFrameRateCap:H=>{re=H&&H>0?1e3/Math.max(H,10)-1:0},setTimeOrigin:H=>{ce=H},setOnReady:H=>{ft=H,H&&wt&&queueMicrotask(H)},setOnDeviceLost:H=>{kt=H},setOnUnavailable:H=>{if(Qt=H,H&&Yt&&!ns){ns=!0;let J=Yt;queueMicrotask(()=>{try{H(J)}catch(se){hr("[gpu] onUnavailable callback threw:",se)}})}},getFailureReason:()=>Yt,__testing:{needsTransformation:ml,findChildNodes:nr,buildFieldInits:H=>{let J=u.get(H);return J?Wf(J):null},ensureDriverState:H=>{let J=u.get(H);J&&Il(J)},stepMouseDrivers:H=>{ys.deltaTime=H,t1()},stepAnimatedTime:H=>{ys.deltaTime=H,s1()},getAnimatedTimeValue:H=>{let J=u.get(H);return J?.definition.animatedTime?Jd(tu(J)).value:null},writeExtraField:(H,J,se)=>{let be=u.get(H);be&&Vf(be,J,se)},readExtraField:(H,J)=>{let se=u.get(H)?._liveHandles?.[J];return se instanceof ai?se.value:void 0},getNodeRegistry:()=>({nodes:u,rootId:p,parentToChildren:_}),getParentToChildren:()=>_,getPendingRegistrations:()=>[...f],getFrameDiagnostics:()=>({deltaTime:ys.deltaTime,pointerX:we,pointerY:de,pointerActive:xe,globalElapsedTime:ne,lastRenderTime:ee,isVisible:$,forceFullFrameRate:Q,sharedTimeOrigin:ce,animating:Zs.running,mouseListenersNeeded:Ee}),computeStructuralHash:jf,isStructuralDirty:()=>P,clearStructuralDirty:()=>{P=!1},setTestReady:H=>{i=!0,c=!0,H&&(C=H.width,k=H.height,z=H.width,U=H.height,F=!0),i6()}}}}var eu={samplingRate:.05,collectionDuration:5e3,warmupDuration:500,sampleInterval:500,apiEndpoint:"https://shaders.com/api/telemetry"};function ufe(e){return e.includes("Edg/")||e.includes("EdgiOS")?"Edge":e.includes("OPR/")||e.includes("Opera/")?"Opera":e.includes("Chrome/")||e.includes("CriOS")?"Chrome":e.includes("Firefox/")||e.includes("FxiOS")?"Firefox":e.includes("Safari/")&&!e.includes("Chrome")?"Safari":"Other"}function pfe(e){return/iPad|Tablet|PlayBook/i.test(e)||/Android/i.test(e)&&!/Mobile/i.test(e)?"tablet":/Mobile|Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)?"mobile":"desktop"}function mfe(){if(typeof window>"u"||typeof navigator>"u")return{domain:"unknown",browserFamily:"unknown",deviceType:"unknown"};let e=navigator.userAgent;return{domain:window.location.hostname,browserFamily:ufe(e),deviceType:pfe(e)}}var _fe=class{renderer;version;sourceType;sessionId;frameSamples=[];sampleInterval=null;stopped=!1;constructor(e,t,s){this.renderer=e,this.version=t,this.sourceType=s,this.sessionId=`tel_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}stop(){this.stopped=!0,this.sampleInterval&&(clearInterval(this.sampleInterval),this.sampleInterval=null)}async start(){try{if(await this.sleep(eu.warmupDuration),this.stopped||(this.sampleInterval=setInterval(()=>{if(!this.stopped)try{let e=this.renderer.getPerformanceStats();this.frameSamples.push(e)}catch(e){hr("Telemetry sampling error:",e)}},eu.sampleInterval),await this.sleep(eu.collectionDuration-eu.warmupDuration),this.stopped))return;if(this.sampleInterval&&(clearInterval(this.sampleInterval),this.sampleInterval=null),!this.stopped&&this.frameSamples.length>=5){let e=this.aggregateData();await this.sendTelemetry(e)}}catch(e){hr("Telemetry collection error:",e)}}sleep(e){return new Promise(t=>setTimeout(t,e))}aggregateData(){let e=this.aggregatePerformance(),t=this.detectRendererType(),s=this.extractComponents(),r=mfe();return{sessionId:this.sessionId,timestamp:Date.now(),collectionDuration:eu.collectionDuration,version:this.version,sourceType:this.sourceType,performance:e,renderer:t,components:s,environment:r}}aggregatePerformance(){if(this.frameSamples.length===0)return{fps:0,frameTime:{avg:0,min:0,max:0,p99:0},jankPercent:0,budgetUsed:0};let e=this.frameSamples.map(p=>p.avgFrameTime),t=this.frameSamples.map(p=>p.jankPercent),s=this.frameSamples.map(p=>p.budgetUsed),r=this.frameSamples.map(p=>p.fps),o=this.calculateMedian(r),a=this.calculateMean(e),i=Math.min(...e),l=Math.max(...e),c=this.calculatePercentile(e,99),d=this.calculateMean(t),u=this.calculateMean(s);return{fps:Math.round(o*10)/10,frameTime:{avg:Math.round(a*10)/10,min:Math.round(i*10)/10,max:Math.round(l*10)/10,p99:Math.round(c*10)/10},jankPercent:Math.round(d*10)/10,budgetUsed:Math.round(u*10)/10}}detectRendererType(){let e=this.frameSamples[this.frameSamples.length-1];return{type:this.renderer.getRendererType?.()||"webgl",drawCalls:e?.drawCalls??null,textureCount:e?.textureCount??null}}extractComponents(){try{let e=this.renderer.getNodeRegistry(),t=[];for(let[s,r]of e.nodes)r.parentId!==null&&t.push({name:r.componentName,requiresRTT:r.requiresRTT,renderOrder:r.metadata.renderOrder});return t.sort((s,r)=>s.renderOrder-r.renderOrder)}catch(e){return hr("Failed to extract components:",e),[]}}async sendTelemetry(e){try{let t=await fetch(eu.apiEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});t.ok||rn("Telemetry send failed:",t.status,t.statusText)}catch(t){hr("Telemetry send error:",t)}}calculateMean(e){return e.length===0?0:e.reduce((t,s)=>t+s,0)/e.length}calculateMedian(e){if(e.length===0)return 0;let t=[...e].sort((r,o)=>r-o),s=Math.floor(t.length/2);return t.length%2===0?(t[s-1]+t[s])/2:t[s]}calculatePercentile(e,t){if(e.length===0)return 0;let s=[...e].sort((o,a)=>o-a),r=Math.ceil(t/100*s.length)-1;return s[Math.max(0,r)]}};function ffe(e=!1,t=!1){return e||typeof navigator<"u"&&navigator.doNotTrack==="1"?!1:t?!0:Math.random()<eu.samplingRate}function lq(e,t,s=!1,r=!1){return ffe(s,r)?new _fe(e,t,r?"preview":"shader"):null}function cq(){if(typeof window>"u"||!window.location)return!1;let e=window.location.hostname;return!e.includes("shaders.com")&&e!=="localhost"&&e!=="127.0.0.1"}function s6(e){if(typeof e!="object"||e===null||!("type"in e))return!1;let t=e;return t.type==="map"||t.type==="mouse"||t.type==="mouse-position"||t.type==="auto-animate"}var dq=new Set(["opacity","blendMode","visible","transform","boundingBox","maskSource","maskType","flow","absolute"]);async function r6(e,t,s){let r=new Map;if(ky().forEach(B=>{r.set(B.definition.name,B.definition);for(let D of B.definition.deprecatedNames??[])r.set(D,B.definition)}),!e.style.width||!e.style.height){let B=e.getBoundingClientRect(),D=B.width>0?B.width:e.width,G=B.height>0?B.height:e.height;D>0&&!e.style.width&&(e.style.width=`${D}px`),G>0&&!e.style.height&&(e.style.height=`${G}px`)}function o(B){return{...B,props:B.props?{...B.props}:void 0,children:B.children?.map(o)}}let a={...t,components:t.components.map(o)},i=null,l=!1,c=!1,d=3,u=6e4,p=0,_=0,f=null;function v(B){try{s?.onError?.(B)}catch(D){hr("[createShader] onError callback threw:",D)}}let g=!1;function y(B){g||(g=!0,f=B,v(B))}function x(B,D,G,F,V){let W=r.get(G.type);if(!W){console.warn(`[createShader] Unknown component type: ${G.type}`);return}let q=G.id||`${G.type}_${Date.now()}_${Math.random().toString(36).slice(2,9)}`,$={};for(let[re,ne]of Object.entries(G.props||{}))!dq.has(re)&&Object.prototype.hasOwnProperty.call(W.props,re)&&s6(ne)&&($[re]=ne);let Q=_3(W,Object.fromEntries(Object.entries(W.props).map(([re,ne])=>{let ce=G.props?.[re]!==void 0?G.props[re]:ne.default;return[re,s6(ce)?ne.default:ce]})),q),ee={blendMode:G.props?.blendMode||"normal",opacity:G.props?.opacity,visible:G.props?.visible,renderOrder:V,id:G.id,maps:Object.keys($).length>0?{...$}:void 0,mask:G.props?.maskSource?{source:G.props.maskSource,type:G.props.maskType||"alpha"}:void 0,transform:G.props?.transform?{offsetX:0,offsetY:0,rotation:0,scale:1,anchorX:.5,anchorY:.5,edges:"transparent",...G.props.transform}:void 0,boundingBox:Xv(G.props?.boundingBox),flow:G.props?.flow,absolute:G.props?.absolute};B.registerNode(q,W.fragment,F,ee,Q,W),D.set(q,{componentDef:W,uniforms:Q,nodeId:q,component:G,currentMaps:{...$}}),G.children?.forEach((re,ne)=>{x(B,D,re,q,ne)})}async function w(){let B=iq(),D=new Map;s?.onReady&&B.setOnReady(s.onReady),B.setOnUnavailable(V=>{l||y(V)}),await B.initialize({canvas:e,resizeTarget:e,enablePerformanceTracking:s?.enablePerformanceTracking||!1,colorSpace:s?.colorSpace,toneMapping:s?.toneMapping,observeElement:s?.observeElement,gpu:s?.gpu});let G={renderer:B,nodeEntryMap:D,telemetryCollector:null,telemetryStartTimeout:null};B.setOnDeviceLost(V=>{if(l||c||f||i!==null&&i!==G)return;c=!0,v(V);let W=Date.now();if(W-_>u&&(p=0),_=W,++p>d){P(G),i=null,c=!1,y("unrecoverable");return}(async()=>{try{if(P(G),i=null,l)return;let q=await w();if(l){P(q);return}i=q}catch(q){hr("[createShader] rebuild after device loss failed:",q),y("rebuild_failed")}finally{c=!1}})()});let F="shader-root";if(B.registerNode(F,ch.fragment,null,null,{},ch),a.components.forEach((V,W)=>{x(B,D,V,F,W)}),cq()){let W=0,q=()=>{if(l||f||i!==G||++W>40){G.telemetryStartTimeout=null;return}B.getPerformanceStats().fps>0?(G.telemetryCollector=lq(B,"3.2.468",s?.disableTelemetry||!1,!1),G.telemetryCollector&&G.telemetryCollector.start(),G.telemetryStartTimeout=null):G.telemetryStartTimeout=setTimeout(q,500)};G.telemetryStartTimeout=setTimeout(q,500)}return G}function P(B){if(B.telemetryCollector){try{B.telemetryCollector.stop()}catch{}B.telemetryCollector=null}B.telemetryStartTimeout!==null&&(clearTimeout(B.telemetryStartTimeout),B.telemetryStartTimeout=null);try{B.renderer.cleanup()}catch{}}i=await w();function C(B,D){if(!i)return;let{renderer:G,nodeEntryMap:F}=i,V=F.get(B);if(!V){console.warn(`[createShader] Component ID not found: ${B}`);return}V.component.props||(V.component.props={});let W=V.component.props;for(let[q,$]of Object.entries(D))if(dq.has(q))if(q==="maskSource")G.updateNodeMetadata(V.nodeId,{mask:$?{source:$,type:D.maskType||W.maskType||"alpha"}:void 0}),W.maskSource=$,"maskType"in D&&(W.maskType=D.maskType);else{if(q==="maskType")continue;q==="transform"?(G.updateNodeMetadata(V.nodeId,{transform:$}),W.transform=$):q==="boundingBox"?(G.updateNodeMetadata(V.nodeId,{boundingBox:Xv($)}),W.boundingBox=$):(G.updateNodeMetadata(V.nodeId,{[q]:$}),W[q]=$)}else s6($)?Object.prototype.hasOwnProperty.call(V.componentDef.props,q)?(V.currentMaps[q]=$,G.updateNodeMetadata(V.nodeId,{maps:{...V.currentMaps}}),W[q]=$):console.warn(`[createShader] Ignoring PropDriver for unknown prop "${q}" on ${V.component.type}`):(q in V.currentMaps&&(delete V.currentMaps[q],G.updateNodeMetadata(V.nodeId,{maps:Object.keys(V.currentMaps).length>0?{...V.currentMaps}:void 0})),Object.prototype.hasOwnProperty.call(V.componentDef.props,q)&&(G.updateUniformValue(V.nodeId,q,$),W[q]=$))}function k(B,D){let G=e.getBoundingClientRect(),F=B??(G.width>0?G.width:e.width),V=D??(G.height>0?G.height:e.height);F>0&&V>0&&(e.style.width=`${F}px`,e.style.height=`${V}px`,i&&i.renderer.resize(F,V))}function z(){l=!0,i&&(P(i),i=null)}function U(){i&&i.renderer.stopAnimation()}function L(){i&&i.renderer.startAnimation()}return{update:C,resize:k,pause:U,resume:L,destroy:z,getFailureReason:()=>f}}var vfe="shaders-preview-key";function hfe(e,t){let s=new TextEncoder().encode(t),r=new Uint8Array(e.length);for(let o=0;o<e.length;o++)r[o]=e[o]^s[o%s.length];return r}function uq(e){try{let t=atob(e),s=new Uint8Array(t.length);for(let i=0;i<t.length;i++)s[i]=t.charCodeAt(i);let r=hfe(s,vfe),o=new TextDecoder().decode(r),a=JSON.parse(o);if(typeof a!="object"||a===null||Array.isArray(a))throw new Error("unexpected shape");return a}catch{throw new Error("Failed to decode preview definition: invalid data")}}var gfe="https://shaders.com",yfe="Unlock your Shaders Pro license",bfe="https://shaders.com/dashboard?pricing=true",xfe=new Set(["break","case","catch","class","const","continue","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield"]);function Afe(e,t){let s=e.replace(/[^A-Za-z0-9]+/g," ").trim();if(!s)return t;let r=s.split(/\s+/).map((a,i)=>i===0?a.charAt(0).toLowerCase()+a.slice(1):a.charAt(0).toUpperCase()+a.slice(1)).join(""),o=/^[A-Za-z_$]/.test(r)?r:`_${r}`;return xfe.has(o)?`_${o}`:o}function wfe(e){let t=new Set(["style"]),s=new Map;return e?.length&&e.forEach((r,o)=>{if(!r.targets?.length)return;let a=Afe(r.label,`keyProp${o}`),i=a,l=1;for(;t.has(i);)l++,i=`${a}${l}`;t.add(i),s.set(i,r)}),s}function o6(e,t){for(let s of t){if(s.id===e)return s;let r=s.children;if(r?.length){let o=o6(e,r);if(o)return o}}return null}function Tfe(e,t,s){if(t)for(let[r,o]of Object.entries(t)){let a=s.get(r);if(a)for(let i of a.targets??[]){let l=o6(i.component_id,e);l?.props&&i.prop in l.props&&(l.props[i.prop]=o)}}}async function Sfe(e,t){if(!t.shader&&!t.presetId||t.shader&&t.presetId)throw new Error("Exactly one of shader (preview token) or presetId must be provided");let s=t.apiBaseUrl||gfe,r=t.presetId&&t.version?`?version=${encodeURIComponent(t.version)}`:"",o=t.shader?`${s}/api/preview/shader/${encodeURIComponent(t.shader)}`:`${s}/api/preview/preset/${encodeURIComponent(t.presetId)}${r}`,a=await fetch(o);if(!a.ok)throw new Error(`Failed to fetch preview: ${a.status} ${a.statusText}`);let i=await a.json(),l=i.preset??i.shader;if(!l?.definition||typeof l.definition!="string")throw new Error("Preview response missing encoded definition");let c=uq(l.definition),d=Array.isArray(l.key_props)?l.key_props:null,u=wfe(d),p=new Map;for(let w of u.values())for(let P of w.targets??[]){let C=o6(P.component_id,c.components);C?.props&&P.prop in C.props&&p.set(`${P.component_id}:${P.prop}`,C.props[P.prop])}Tfe(c.components,t.configuration,u);let _=await r6(e,c,{isPreview:!0,enablePerformanceTracking:!0}),{overlay:f,savedPosition:v,parentEl:g}=Pfe(e),y=_.destroy.bind(_),x=_;return x.destroy=()=>{g&&v!==void 0&&(g.style.position=v),f.remove(),y()},x.setConfiguration=w=>{if(d?.length)for(let[P,C]of u){let k=Object.prototype.hasOwnProperty.call(w,P)&&w[P]!==void 0;for(let z of C.targets??[]){let U=k?w[P]:p.get(`${z.component_id}:${z.prop}`);U!==void 0&&_.update(z.component_id,{[z.prop]:U})}}},x}function Pfe(e){let t=e.parentElement,s;t&&getComputedStyle(t).position==="static"&&(s=t.style.position,t.style.position="relative");let r=document.createElement("a");return r.href=bfe,r.target="_blank",r.rel="noopener noreferrer",r.textContent=yfe,Object.assign(r.style,{position:"absolute",bottom:"8px",right:"12px",fontSize:"11px",fontFamily:"system-ui, -apple-system, sans-serif",color:"rgba(255, 255, 255, 0.5)",textDecoration:"none",zIndex:"10",pointerEvents:"auto",transition:"color 0.2s ease"}),r.addEventListener("mouseenter",()=>{r.style.color="rgba(255, 255, 255, 0.8)"}),r.addEventListener("mouseleave",()=>{r.style.color="rgba(255, 255, 255, 0.5)"}),t&&t.appendChild(r),{overlay:r,savedPosition:s,parentEl:t}}async function Cfe(e){if(typeof navigator>"u"||!navigator.gpu)return null;try{let t=await navigator.gpu.requestAdapter({powerPreference:e?.powerPreference??"high-performance"});return t?{device:await t.requestDevice({requiredFeatures:[...t.features]}),adapter:t}:null}catch(t){return rn("[shaders] createSharedDevice failed; callers should fall back to per-instance device:",t),null}}export{Sfe as createPreview,r6 as createShader,Cfe as createSharedDevice,Hy as getWebGPUSupport,l1 as isShadersDebug,Xy as isWebGPUSupported,d6 as setShadersDebug};
272
+ }`,"fullScreenTriangle");fS.disable("external-omitted");var G_e=["float32-filterable","timestamp-query"],Z5=new WeakMap,Q5=new WeakMap,J5=new WeakSet,$p=null,F_e=new WeakSet;async function I_e(e={}){if(e.device&&!J5.has(e.device)){let r=e.device,o=Z5.get(r);o||(o=A.initFromDevice({device:r}),Z5.set(r,o));let a=sq(o,e.onDeviceLost);return{root:o,device:r,adapter:e.adapter,createdDevice:!1,release:a}}e.device&&rn("[gpu] injected GPU device was lost \u2014 falling back to the shared default device");let t=await Y_e(),s=sq(t.root,e.onDeviceLost);return{root:t.root,device:t.device,adapter:t.adapter,createdDevice:!1,release:s}}async function Y_e(){for(;;){let t=$p;if(!t)break;let s=await t.catch(()=>null);if(s&&!F_e.has(t)&&!J5.has(s.device))return s;$p===t&&($p=null)}let e=W_e();$p=e;try{return await e}catch(t){throw $p===e&&($p=null),t}}async function W_e(){if(typeof navigator>"u"||!navigator.gpu)throw new ou("unsupported","[gpu] WebGPU is not available in this environment (navigator.gpu is undefined).");let e;try{e=await A.init({adapter:{powerPreference:"high-performance"},device:{optionalFeatures:G_e}})}catch(t){let s=await Hy();throw new ou(s.supported?"no-device":s.reason??"init-failed",void 0,{cause:t})}if(!e.device)throw new ou("no-device","[gpu] adapter returned no device.");return Z5.set(e.device,e),{root:e,device:e.device,createdDevice:!0}}function V_e(e,t,s={}){return e.configureContext({canvas:t,alphaMode:"premultiplied",...s})}function sq(e,t){let s=e.device,r=Q5.get(s);if(r||(r=new Set,Q5.set(s,r),e.device.lost.then(a=>{if(J5.add(s),a.reason!=="destroyed")for(let i of[...Q5.get(s)??[]])i(a)})),!t)return()=>{};let o=r;return o.add(t),()=>o.delete(t)}function q_e(){let e={value:0,advance(t,s){e.value+=t*s}};return e}var rq=new WeakMap;function Jd(e){let t=rq.get(e);return t||(t=q_e(),rq.set(e,t)),t}var N_e=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(et({time:n,viewportSize:m,logicalViewportSize:m,aspect:n,pointer:m,pointerActive:n}),"SystemUniforms");A.fn([m,m],m)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return na(t,s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewportSize"}],body:[0,[[10,[6,"std.mul",["uv","viewportSize"]]]]]},externals:{"std.mul":()=>na}})&&e.f)({}));A.fn([m],n)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(t.x,t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"viewportSize"}],body:[0,[[10,[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]]]]},externals:{}})&&e.f)({}));function $_e(e){let t=2166136261,s=e.join("");for(let r=0;r<s.length;r++)t^=s.charCodeAt(r),t=Math.imul(t,16777619);return`${(t>>>0).toString(16).padStart(8,"0")}:${s.length}`}function X_e(e={}){let t=e.maxSize??4,s=e.dispose,r=new Map,o=0,a=null,i=null;function l(d){d.lastUsed=++o}function c(){for(;r.size>t;){let d=null;for(let u of r.values())u.hash===a||u.hash===i||(!d||u.lastUsed<d.lastUsed)&&(d=u);if(!d)break;r.delete(d.hash),s?.(d.value,d.hash)}}return{getOrBuild(d,u){let p=r.get(d);if(p)return l(p),d===a?i=null:i=d,p.value;let _=u(),f={hash:d,value:_,lastUsed:++o};return r.set(d,f),a===null?(a=d,i=null):i=d,c(),_},markReady(d){if(d!==i)return;let u=r.get(d);u&&(a=d,i=null,l(u),c())},get renderValue(){let d=a??i;return d?r.get(d)?.value??null:null},get activeHash(){return a},get pendingHash(){return i},release(d){let u=r.get(d);u&&(r.delete(d),s?.(u.value,d),a===d&&(a=null),i===d&&(i=null))},has(d){return r.has(d)},get size(){return r.size},clear(){for(let d of r.values())s?.(d.value,d.hash);r.clear(),a=null,i=null}}}var Xp="passManager";function H_e(e,t){let{textureManager:s,dispatcher:r}=t,o=t.canvasFormat??j_e(),a=t.rttFormat??"rgba16float",i=e.device?.limits?.maxSampledTexturesPerShaderStage,l=t.maxSampledTextures??(typeof i=="number"&&i>0?i:16),c=t.fullScreenTriangle??O_e,d=new Map,u=new Set,p=null;function _(){let B=s.samplers;try{return e.createBindGroup(Ux,{linearClamp:B.linearClamp,nearestClamp:B.nearestClamp,linearRepeat:B.linearRepeat,nearestRepeat:B.nearestRepeat})}catch(D){hr(`[${Xp}] failed to build sampler bind group:`,D);return}}function f(B,D){let G=new Set;for(let F of B.textures)if(F.kind==="rtt")if(G.add(F.key),d.has(F.key))d.get(F.key).resize(D.width,D.height);else{let V=s.createRenderTexture({width:D.width,height:D.height,format:a,label:`rtt:${F.key}`});d.set(F.key,V),u.add(V)}for(let[F,V]of[...d])G.has(F)||(V.destroy(),u.delete(V),d.delete(F))}function v(B,D){if(!B.textureLayout||B.reads.length===0)return;let G={};for(let F of B.reads){let V=d.get(F),W=D?.[F],q=V??W;if(!q){hr(`[${Xp}] pass "${B.entry}" reads unknown texture "${F}"`);return}G[F]=q.texture}B.reads.length>l&&rn(`[${Xp}] pass samples ${B.reads.length} textures (> device limit ~${l}); composition may fail on this device.`);try{return e.createBindGroup(B.textureLayout,G)}catch(F){hr(`[${Xp}] failed to build texture bind group:`,F);return}}function g(B,D){return e.createRenderPipeline({vertex:c,fragment:B.entry,targets:{format:D}})}function y(B,D){if(!B.externalLayout||B.externalReads.length===0)return;let G=B.externalReads;if(G.length===1){let V=D.get(G[0]);if(!V){hr(`[${Xp}] external read "${G[0]}" has no registered source`);return}return s.createExternalTextureBinding({layout:B.externalLayout,entryKey:G[0],getSource:V})}let F=null;return{update(){let V={};for(let W of G){let q=D.get(W)?.();if(!q)return F=null,null;try{V[W]=e.device.importExternalTexture({source:q})}catch{return F=null,null}}return F=e.createBindGroup(B.externalLayout,V),F},get current(){return F},destroy(){F=null}}}function x(B,D,G,F){let V=D.kind==="canvas"?o:a,W=B.reads.filter($=>G?.[$]),q=new Map(W.map($=>[$,G[$].texture]));return{fragment:B,pipeline:g(B,V),textureBindGroup:v(B,G),externalBinding:y(B,F),target:D,mediaReads:W,mediaSnapshot:q}}function w(B,D,G,F){f(B,G);for(let Q of B.computeSteps)Q.bindInputs?.(ee=>d.get(ee)??F?.[ee]);let V=_(),W=new Map;for(let Q of B.externalTextures)W.set(Q.key,Q.getSource);let q=B.rttPasses.map(Q=>x(Q.fragment,{kind:"rtt",key:Q.textureKey},F,W)),$=x(B.finalPass,{kind:"canvas"},F,W);p={ir:B,uniformBindGroup:D,samplerBindGroup:V,computeSteps:B.computeSteps,rttPasses:q,finalPass:$,size:G,mediaResources:F}}function P(B,D){let G=B.pipeline;if(p?.uniformBindGroup&&(G=G.with(p.uniformBindGroup)),B.mediaReads&&B.mediaReads.length>0&&p?.mediaResources){let F=!1;for(let V of B.mediaReads)p.mediaResources[V].texture!==B.mediaSnapshot.get(V)&&(F=!0);if(F){B.textureBindGroup=v(B.fragment,p.mediaResources);for(let V of B.mediaReads)B.mediaSnapshot.set(V,p.mediaResources[V].texture)}}if(B.textureBindGroup&&(G=G.with(B.textureBindGroup)),B.fragment.usesSamplers&&p?.samplerBindGroup&&(G=G.with(p.samplerBindGroup)),B.fragment.externalReads.length>0){let F=B.externalBinding?.update()??null;if(!F){B.externalSkipLogged||(rn(`[${Xp}] external texture not ready \u2014 skipping pass (${B.fragment.externalReads.join(", ")})`),B.externalSkipLogged=!0);return}G=G.with(F)}G.withColorAttachment({view:D}).draw(3)}function C(B,D,G){if(p){for(let F of p.computeSteps){let V=F.getComputeNodes(D);V&&V.length&&r.dispatch(V)}G?.(),k(),P(p.finalPass,B)}}function k(){if(p)for(let B of p.rttPasses){let D=d.get(B.target.key);D&&P(B,z(D))}}function z(B){return e.unwrap(B.texture).createView()}function U(B){if(!(!B.fragment.textureLayout||B.fragment.reads.length===0)&&(B.textureBindGroup=v(B.fragment,p?.mediaResources),B.mediaReads&&B.mediaSnapshot&&p?.mediaResources))for(let D of B.mediaReads)B.mediaSnapshot.set(D,p.mediaResources[D].texture)}function L(B,D){let G=!1;for(let F of d.values())F.resize(B,D)&&(G=!0);if(!p)return G;if(p.size={width:B,height:D},!G)return!1;for(let F of p.computeSteps)F.bindInputs?.(V=>d.get(V)??p.mediaResources?.[V]);for(let F of p.rttPasses)U(F);return U(p.finalPass),!0}return{setComposition:w,render:C,repaintRtt:k,resize:L,get textureCount(){return u.size},get passCount(){return p?p.rttPasses.length+1:0},dispose(){for(let B of[...u])B.destroy();u.clear(),d.clear(),p=null}}}function j_e(){return typeof navigator<"u"&&navigator.gpu?navigator.gpu.getPreferredCanvasFormat():"bgra8unorm"}function oq(e){return`${e}-srgb`}function K_e(e){let t=new Set;function s(f,...v){return e.createTexture.call(e,f).$usage(...v)}let r,o,a,i,l={get linearClamp(){return r??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get nearestClamp(){return o??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get linearRepeat(){return a??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})},get nearestRepeat(){return i??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"repeat",addressModeV:"repeat"})}};function c(f,v,g,y,x){let w={texture:f,width:v,height:g,format:y,write(P){f.write(P)},unwrap(){return e.unwrap(f)},createSrgbView(){if(x)return e.unwrap(f).createView({format:oq(y)})},generateMipmaps(){f.generateMipmaps?.()},destroy(){t.has(w)&&(f.destroy(),t.delete(w))}};return t.add(w),w}function d(f){let{width:v,height:g,srgb:y=!1,mipLevelCount:x}=f,w=f.format??"rgba8unorm";return c(s({size:[v,g],format:w,...y?{viewFormats:[oq(w)]}:{},...x?{mipLevelCount:x}:{}},"sampled","render"),v,g,w,y)}function u(f){let{width:v,height:g,format:y,data:x}=f,w=c(s({size:[v,g],format:y},"sampled"),v,g,y,!1);return x&&w.write(x),w}function p(f){let v=f.format??"rgba16float",{mipLevelCount:g}=f,y=f.width,x=f.height;function w(C,k){return c(s({size:[C,k],format:v,...g?{mipLevelCount:g}:{}},"sampled","render"),C,k,v,!1)}let P=w(y,x);return{get texture(){return P.texture},get width(){return y},get height(){return x},format:v,write(C){P.write(C)},unwrap(){return P.unwrap()},createSrgbView(){return P.createSrgbView()},generateMipmaps(){P.generateMipmaps()},resize(C,k){return C===y&&k===x?!1:(P.destroy(),y=C,x=k,P=w(C,k),!0)},destroy(){P.destroy()}}}function _(f){let{layout:v,entryKey:g,getSource:y,staticEntries:x={}}=f,w=null;return{update(){let P=y();if(!P)return w=null,null;let C;try{C=e.device.importExternalTexture({source:P})}catch{return w=null,null}return w=e.createBindGroup(v,{...x,[g]:C}),w},get current(){return w},destroy(){w=null}}}return{samplers:l,createMediaTexture:d,createDataTexture:u,createRenderTexture:p,createExternalTextureBinding:_,get textureCount(){return t.size},destroy(){for(let f of[...t])f.destroy();t.clear()}}}function Q_e(e,t){let s=K5(e)?.definition?.naturalSizeKey;if(!s)return null;if("fixed"in s)return s.fixed||null;let r=t[s.fromProp];return typeof r=="string"&&r?r:null}function Z_e(e,t,s){if(!e||typeof e!="object")return null;let r=(i,l)=>!i||typeof i!="object"||typeof i.value!="number"?null:i.unit==="px"?i.value:i.value*l,o=r(e.width,t),a=r(e.height,s);return o!=null&&a!=null&&o>0&&a>0?{widthPx:o,heightPx:a}:null}function J_e(e,t,s){let{type:r,decl:o,props:a,boundingBox:i}=e;if(!(t>0)||!(s>0)||e.requiresChild)return null;if(o?.computeBounds){let u=o.computeBounds(a,t,s);return u.widthPx>0&&u.heightPx>0?{widthPx:u.widthPx,heightPx:u.heightPx}:null}let l=o?.propBindings;if(l?.width&&l?.height){let u=S_(l.width,a[l.width.prop],t,s),p=S_(l.height,a[l.height.prop],t,s);return u>0&&p>0?{widthPx:u,heightPx:p}:null}let c=Z_e(i,t,s);if(c)return c;let d=Q_e(r,a);if(d){let u=tU(d);if(u)return{widthPx:u.width,heightPx:u.height}}return null}function efe(e,t){return e==null?0:typeof e=="number"?e:e.unit==="px"?e.value:e.value*t}function e6(e,t,s){return!e||e.mode!=="column"&&e.mode!=="row"?null:{mode:e.mode,gapPx:Math.max(0,efe(e.gap,e.mode==="column"?s:t)),align:e.align??"center",anchor:e.anchor??"center",anchorOffsetX:e.anchorOffset?.x??0,anchorOffsetY:e.anchorOffset?.y??0}}var aq=e=>({ox:e.includes("left")?"start":e.includes("right")?"end":"center",oy:e.includes("top")?"start":e.includes("bottom")?"end":"center"}),By=(e,t,s,r)=>e==="start"?r:e==="end"?s-t-r:(s-t)/2+r;function zy(e,t){let s=0,r=0;for(let o of t){let a=e.mode==="column"?o.size.heightPx:o.size.widthPx,i=e.mode==="column"?o.size.widthPx:o.size.heightPx;s+=a,r=Math.max(r,i)}return t.length>1&&(s+=e.gapPx*(t.length-1)),e.mode==="column"?{widthPx:r,heightPx:s}:{widthPx:s,heightPx:r}}function tfe(e,t,s,r){let o=new Map;if(t.length===0)return o;let a=zy(e,t),{ox:i,oy:l}=aq(e.anchor),c=By(i,a.widthPx,s,e.anchorOffsetX),d=By(l,a.heightPx,r,e.anchorOffsetY),u=(_,f)=>e.align==="start"?0:e.align==="end"?f-_:(f-_)/2,p=0;for(let _ of t)if(e.mode==="column"){let f=c+u(_.size.widthPx,a.widthPx)+_.size.widthPx/2,v=d+p+_.size.heightPx/2;o.set(_.id,{centerXPx:f,centerYPx:v}),p+=_.size.heightPx+e.gapPx}else{let f=c+p+_.size.widthPx/2,v=d+u(_.size.heightPx,a.heightPx)+_.size.heightPx/2;o.set(_.id,{centerXPx:f,centerYPx:v}),p+=_.size.widthPx+e.gapPx}return o}function sfe(e,t,s){let r=e6(e.layout,t,s);if(r){let o=t6(e,t,s);return o.length===0?null:zy(r,o)}return J_e({type:e.componentName,decl:e.decl,props:e.props,boundingBox:e.boundingBox,requiresChild:e.requiresChild,availableWidthPx:t},t,s)}function t6(e,t,s){let r=[];for(let o of e.children){if(o.visible===!1||o.absolute)continue;let a=sfe(o,t,s);a&&r.push({id:o.id,size:a,view:o})}return r}function rfe(e,t,s){if(!e.decl?.computeBounds)return{x:0,y:0};let r=e.decl.computeBounds(e.props,t,s),o=typeof e.props.center?.x=="number"?e.props.center.x:.5,a=typeof e.props.center?.y=="number"?e.props.center.y:.5;return{x:r.centerXPx-o*t,y:r.centerYPx-a*s}}function ofe(e,t,s,r,o,a,i,l){let c=e6(e.layout,o,a);if(c){nq(e,c,o,a,i,{centerXPx:s,centerYPx:r},l);return}let d=e.decl?.propBindings?.x?.prop??e.decl?.propBindings?.y?.prop;if(d){if(!e.positionDriven){let u=rfe(e,o,a);i.push({kind:"position",id:e.id,prop:d,value:{x:(s-u.x)/o,y:(r-u.y)/a}})}return}i.push({kind:"box",id:e.id,xPx:s-t.widthPx/2,yPx:r-t.heightPx/2,widthPx:t.widthPx,heightPx:t.heightPx})}function nq(e,t,s,r,o,a,i,l){let c=l??t6(e,s,r);if(c.length===0)return;let d=t;if(a){let p=zy(t,c);d={...t,anchor:"top-left",anchorOffsetX:a.centerXPx-p.widthPx/2,anchorOffsetY:a.centerYPx-p.heightPx/2}}if(i){let p=zy(d,c),{ox:_,oy:f}=aq(d.anchor);i.set(e.id,{leftPx:By(_,p.widthPx,s,d.anchorOffsetX),topPx:By(f,p.heightPx,r,d.anchorOffsetY),widthPx:p.widthPx,heightPx:p.heightPx})}let u=tfe(d,c,s,r);for(let p of c){let _=u.get(p.id);_&&ofe(p.view,p.size,_.centerXPx,_.centerYPx,s,r,o,i)}}function afe(e,t,s,r){let o=[],a=i=>{let l=e6(i.layout,t,s);if(l){let c=t6(i,t,s);nq(i,l,t,s,o,void 0,r,c);let d=new Set(c.map(u=>u.id));for(let u of i.children)u.visible!==!1&&(d.has(u.id)||a(u));return}for(let c of i.children)c.visible!==!1&&a(c)};for(let i of e)i.visible!==!1&&a(i);return o}var nfe=class{frameTimesMs=[];frameTimesIndex=0;frameTimesCount=0;maxSamples=60;targetFrameTime=16.67;jankFrameCount=0;totalFrameCount=0;memorySnapshots=[];memorySnapshotIndex=0;maxMemorySnapshots=300;nodeCount=0;rttNodeCount=0;lastCpuTime=null;lastGpuTime=null;isRendering=!1;lastFrameTimestamp=0;frameIntervals=[];frameIntervalsIndex=0;frameIntervalsCount=0;pushToCircularBuffer(e,t,s,r,o){return e.length<o?(e.push(t),{index:e.length,count:e.length}):(e[s%o]=t,{index:s+1,count:o})}getBufferValues(e,t){return t<=e.length?e.slice(0,t):e}recordFrame(e){let t=this.pushToCircularBuffer(this.frameTimesMs,e,this.frameTimesIndex,this.frameTimesCount,this.maxSamples);this.frameTimesIndex=t.index,this.frameTimesCount=t.count,this.totalFrameCount++,e>this.targetFrameTime&&this.jankFrameCount++;let s=performance.now();if(this.lastFrameTimestamp>0){let r=s-this.lastFrameTimestamp,o=this.pushToCircularBuffer(this.frameIntervals,r,this.frameIntervalsIndex,this.frameIntervalsCount,this.maxSamples);this.frameIntervalsIndex=o.index,this.frameIntervalsCount=o.count}this.lastFrameTimestamp=s,this.recordMemorySnapshot()}recordCpuTime(e){this.lastCpuTime=e}recordGpuTime(e){this.lastGpuTime=e}updateNodeCounts(e,t){this.nodeCount=e,this.rttNodeCount=t}setRendering(e){this.isRendering=e}recordMemorySnapshot(){if(!performance.memory)return;let e=performance.now(),t=performance.memory.usedJSHeapSize;if(this.memorySnapshots.length<this.maxMemorySnapshots)this.memorySnapshots.push({time:e,bytes:t});else{let s=this.memorySnapshots[this.memorySnapshotIndex];s.time=e,s.bytes=t,this.memorySnapshotIndex=(this.memorySnapshotIndex+1)%this.maxMemorySnapshots}}calculateMemoryGrowthRate(){if(this.memorySnapshots.length<2)return null;let e=this.memorySnapshots.length,t=e<this.maxMemorySnapshots?0:this.memorySnapshotIndex,s=e<this.maxMemorySnapshots?e-1:(this.memorySnapshotIndex-1+e)%e,r=this.memorySnapshots[t],o=this.memorySnapshots[s],a=(o.time-r.time)/1e3;return a<=0?null:(o.bytes-r.bytes)/(1024*1024)/a}calculateStdDev(e){if(e.length===0)return 0;let t=e.reduce((r,o)=>r+o,0)/e.length,s=0;for(let r=0;r<e.length;r++){let o=e[r]-t;s+=o*o}return Math.sqrt(s/e.length)}sortBuffer=[];calculateP99(e){let t=e.length;if(t===0)return 0;for(;this.sortBuffer.length<t;)this.sortBuffer.push(0);for(let r=0;r<t;r++)this.sortBuffer[r]=e[r];for(let r=1;r<t;r++){let o=this.sortBuffer[r],a=r-1;for(;a>=0&&this.sortBuffer[a]>o;)this.sortBuffer[a+1]=this.sortBuffer[a],a--;this.sortBuffer[a+1]=o}let s=Math.floor(t*.99);return this.sortBuffer[Math.min(s,t-1)]}calculateComplexityScore(){return this.nodeCount+this.rttNodeCount*10}calculateIntensityScore(){let e=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),t=e.length;if(t===0)return{score:0,label:"N/A"};let s=e.reduce((u,p)=>u+p,0)/t,r=Math.min(s/16.67*100,100),o=this.calculateComplexityScore(),a=Math.min(o/100*100,100),i=0;this.lastGpuTime!==null&&(i=Math.min(this.lastGpuTime/16.67*100,100));let l=this.lastGpuTime!==null?{frame:.4,gpu:.4,complexity:.2}:{frame:.7,gpu:0,complexity:.3},c=Math.round(r*l.frame+i*l.gpu+a*l.complexity),d;return c<=20?d="Very Light":c<=40?d="Light":c<=60?d="Medium":c<=80?d="Heavy":d="Very Heavy",{score:Math.min(c,100),label:d}}getStats(e){let t=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),s=this.getBufferValues(this.frameIntervals,this.frameIntervalsCount),r=t.length,o=s.length>0?1e3/(s.reduce((P,C)=>P+C,0)/s.length):0,a=r>0?t.reduce((P,C)=>P+C,0)/r:0,i=r>0?Math.min(...t):0,l=r>0?Math.max(...t):0,c=this.calculateP99(t),d=this.calculateStdDev(t),u=this.totalFrameCount>0?this.jankFrameCount/this.totalFrameCount*100:0,p=performance.memory,_=p?p.usedJSHeapSize/(1024*1024):null,f=this.calculateMemoryGrowthRate(),v=a>0?a/this.targetFrameTime*100:0,g=e?.render?.calls??null,y=e?.programs?.length??null,x=e?.memory?.textures??null,w=this.calculateIntensityScore();return{fps:Math.round(o),avgFrameTime:Math.round(a*100)/100,minFrameTime:Math.round(i*100)/100,maxFrameTime:Math.round(l*100)/100,p99FrameTime:Math.round(c*100)/100,stdDevFrameTime:Math.round(d*100)/100,jankCount:this.jankFrameCount,jankPercent:Math.round(u*10)/10,nodeCount:this.nodeCount,rttNodeCount:this.rttNodeCount,complexityScore:this.calculateComplexityScore(),memoryUsedMB:_!==null?Math.round(_*100)/100:null,memoryGrowthRate:f!==null?Math.round(f*1e3)/1e3:null,cpuTime:this.lastCpuTime!==null?Math.round(this.lastCpuTime*100)/100:null,gpuTime:this.lastGpuTime!==null?Math.round(this.lastGpuTime*100)/100:null,budgetUsed:Math.round(v*10)/10,drawCalls:g,shaderPrograms:y,textureCount:x,intensityScore:w.score,intensityLabel:w.label,isRendering:this.isRendering}}reset(){this.frameTimesMs.length=0,this.frameTimesIndex=0,this.frameTimesCount=0,this.frameIntervals.length=0,this.frameIntervalsIndex=0,this.frameIntervalsCount=0,this.lastFrameTimestamp=0,this.jankFrameCount=0,this.totalFrameCount=0,this.memorySnapshots.length=0,this.memorySnapshotIndex=0,this.sortBuffer.length=0,this.lastCpuTime=null,this.lastGpuTime=null}},ife=32,lfe=5,cfe=(()=>{let e=0,t=new Set,s=(d,u)=>{t.forEach(p=>{try{p[d](u)}catch(_){hr("[Shaders] Error in pointer handler:",_)}})},r=d=>s("onMouseMove",d),o=d=>s("onTouchMove",d),a=d=>s("onMouseDown",d),i=d=>s("onTouchStart",d),l=()=>s("onMouseUp"),c=()=>s("onTouchEnd");return{register(d){return t.add(d),e++,e===1&&typeof window<"u"&&(window.addEventListener("mousemove",r),window.addEventListener("touchmove",o),window.addEventListener("mousedown",a,!0),window.addEventListener("touchstart",i,!0),window.addEventListener("mouseup",l,!0),window.addEventListener("touchend",c,!0)),()=>{t.delete(d),e--,e===0&&typeof window<"u"&&(window.removeEventListener("mousemove",r),window.removeEventListener("touchmove",o),window.removeEventListener("mousedown",a,!0),window.removeEventListener("touchstart",i,!0),window.removeEventListener("mouseup",l,!0),window.removeEventListener("touchend",c,!0))}}}})();function dfe(e){if(!e)return!1;let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return!1}if(!t||typeof t!="object")return!1;for(let s in t){let r=t[s];if(r&&typeof r=="object"&&r.type==="mouse")return!0}return!1}function iq(){let e=null,t=null,s=null,r=null,o=null,a=null,i=!1,l=!1,c=!1,d=null,u=new Map,p=null,_=new Map,f=[],v=[],g=X_e({maxSize:4,dispose:H=>Kf(H)}),y=new Set,x=null,w=null,P=!0,C=0,k=0,z=0,U=0,L=1,B=8192,D=0,G=0,F=!1,V=()=>z||C||1,W=()=>U||k||1,q=!0,$=!1,Q=!1,ee=0,re=0,ne=0,ce=null,oe=null,we=-10,de=-10,xe=!1,Te=!1,Oe=null,Ee=!1,Re=null,Ne=null,ke=null,Ce=null,Se=null,$e=null,Ye=!1,ut="p3-linear",gt="linear",Qe=!1,lt=null,ft=null,wt=!1,St=!1,kt=null,It=!1,Yt=null,Qt=null,ns=!1,hs=null,rs=null,Ss=0,gs=0,_s=new nfe,ys={deltaTime:0,pointer:{x:-10,y:-10,seen:!1},pointerActive:!1,dimensions:{width:0,height:0}},Zs=gk(()=>sm()),Ar=H=>H.replace(/[^a-zA-Z0-9_]/g,"_"),nr=H=>{let J=_.get(H);if(!J)return[];let se=[];for(let be of J){let _e=u.get(be);_e&&se.push(_e)}return se},Rr=H=>{let J=Ar(H);for(let[se,be]of u)if(be.metadata.id===J)return se;return null},Cr=(H,J)=>{if(J==="center")return;let se=H.boundingBoxDeclaration;if(!se)return;let be={};for(let[_e,Pe]of Object.entries(H.uniforms))be[_e]=Pe._rawDimensional!==void 0?Pe._rawDimensional:Pe.value;return p3(se,be,V(),W())},Ur=H=>{let J=H.boundingBoxDeclaration,se=H.extraDimProps,be=$u(J,se);if(!be)return;let _e=H.uniforms.origin?.value??"center",Pe=Cr(H,_e),Ke=[...be.positionProps,...be.sizeProps.keys()];for(let yt of Ke){let Pt=H.uniforms[yt];if(!Pt||Pt._rawDimensional===void 0)continue;let $t=k_(J,yt,Pt._rawDimensional,_e,V(),W(),se,Pe);Pt.value=$t,ol(H,yt,$t)}},me=(H,J,se)=>{if(typeof se=="number")return se;let be=H.uniforms.origin?.value??"center",_e=k_(H.boundingBoxDeclaration,J,se,be,V(),W(),H.extraDimProps);return typeof _e=="number"?_e:se?.value??0},We=()=>{let{width:H,height:J}=al();return H/Math.max(1,J)},Ge=H=>{let J=H.metadata.transform;return{offsetX:J?.offsetX??0,offsetY:J?.offsetY??0,rotation:J?.rotation??0,scale:J?.scale??1,anchorX:J?.anchorX??.5,anchorY:J?.anchorY??.5,aspectRatio:We()}},ze=H=>{let J=H.metadata.boundingBox;if(!J)return null;let se=Lx(J,V(),W());return{centerX:se.centerX,centerY:se.centerY,halfWidth:se.halfWidthUV,halfHeight:se.halfHeightUV,cornerRadius:se.cornerRadiusUV,rotation:se.rotation,aspectRatio:We()}},De=H=>!!H.metadata.boundingBox&&!!H.boundingBoxDeclaration&&!Hv(H.metadata.boundingBox),st=H=>{let J=H.boundingBoxDeclaration;if(!J||!H.uniforms||!J.computeBounds&&!J.propBindings)return null;let se={};for(let[Pt,$t]of Object.entries(H.uniforms))se[Pt]=$t._rawDimensional!==void 0?$t._rawDimensional:$t.value;let be=p3(J,se,V(),W());if(be.hwx<=0&&be.hhy<=0)return null;let _e=.5,Pe=.5,Ke=J.propBindings?.x?.prop??J.propBindings?.y?.prop,yt=Ke?H.uniforms[Ke]?.value:void 0;if(yt&&typeof yt.x=="number"&&typeof yt.y=="number"&&(_e=yt.x,Pe=yt.y),Ke){let Pt=H.metadata.maps?.[Ke];if(Pt?.type==="mouse-position"){let $t=H.mouseDriverState[Ke];$t&&(_e=$t.liveX??(typeof Pt.x=="number"?Pt.x:$t.currentX),Pe=$t.liveY??(typeof Pt.y=="number"?Pt.y:$t.currentY))}}return{centerX:_e,centerY:Pe,halfWidth:be.hwx,halfHeight:be.hhy}},bt=H=>{if(!H.definition.wantsBoundsParams)return null;let J=nr(H.id).sort((se,be)=>se.metadata.renderOrder-be.metadata.renderOrder);for(let se of J){if(se.metadata.visible===!1)continue;if(De(se))return null;let be=st(se);if(be)return be}return null},Rt=()=>{for(let H of u.values()){if(!H.definition.wantsBoundsParams)continue;let J=bt(H);J&&(lr(H,"_childBounds_centerX",J.centerX),lr(H,"_childBounds_centerY",J.centerY),lr(H,"_childBounds_halfWidth",J.halfWidth),lr(H,"_childBounds_halfHeight",J.halfHeight))}},Dt=!1,zt=()=>{Dt=!0,sn()},Os=()=>{for(let H of u.values()){let J=H.metadata.flow?.mode;if(J==="column"||J==="row")return!0}return!1},ir=H=>{let J={};for(let[Pe,Ke]of Object.entries(H.uniforms))J[Pe]=Ke._rawDimensional!==void 0?Ke._rawDimensional:Ke.value;let se=H.boundingBoxDeclaration?.propBindings?.x?.prop??H.boundingBoxDeclaration?.propBindings?.y?.prop,be=se?H.uniforms[se]?.value:void 0,_e=!!(se&&(be?.type==="mouse-position"||H.metadata.maps?.[se]));return{id:H.id,componentName:H.componentName,visible:H.metadata.visible!==!1,absolute:H.metadata.absolute===!0,requiresChild:H.requiresChild,layout:H.metadata.flow,decl:H.boundingBoxDeclaration,props:J,boundingBox:H.metadata.boundingBox,positionDriven:_e,children:nr(H.id).sort((Pe,Ke)=>Pe.metadata.renderOrder-Ke.metadata.renderOrder).map(ir)}},Nr=()=>{if(!Os()){Dt=!1;return}let H=V(),J=W();if(H<=1||J<=1)return;Dt=!1;let se=[];for(let _e of u.values())_e.parentId===null&&se.push(ir(_e));let be=afe(se,H,J);for(let _e of be){let Pe=u.get(_e.id);if(Pe)if(_e.kind==="position"){let Ke=Pe.uniforms[_e.prop];if(!Ke)continue;let yt=Ke.value,Pt=yt&&typeof yt=="object"?{...yt,x:_e.value.x,y:_e.value.y}:_e.value;Ke.value=Pt,ol(Pe,_e.prop,Pt)}else{let Ke=De(Pe);if(Pe.metadata.boundingBox={x:{value:_e.xPx,unit:"px"},y:{value:_e.yPx,unit:"px"},width:{value:_e.widthPx,unit:"px"},height:{value:_e.heightPx,unit:"px"},origin:"top-left",rotation:Pe.metadata.boundingBox?.rotation??0,...Pe.metadata.boundingBox?.cornerRadius?{cornerRadius:Pe.metadata.boundingBox.cornerRadius}:{},...Pe.metadata.boundingBox?.lockAspect!==void 0?{lockAspect:Pe.metadata.boundingBox.lockAspect}:{}},!Ke&&De(Pe))jn();else{let yt=ze(Pe);if(yt)for(let[Pt,$t]of Object.entries(yt))lr(Pe,`_bbox_${Pt}`,$t)}}}},Mo=()=>{Dt&&Nr()},$r=null,qs=()=>{Os()&&zt()},Pn=()=>{$r||($r=sU(()=>{Os()&&zt()})),typeof document<"u"&&document.fonts?.addEventListener&&document.fonts.addEventListener("loadingdone",qs)};Pn();let Fo=H=>ml(H.metadata.transform),La=(H,J,se)=>{let be=H.mapValues[J]??{inputMin:0,inputMax:1,outputMin:0,outputMax:1,curve:0};if(se.type==="map"){let _e=se;be.inputMin=_e.inputMin,be.inputMax=_e.inputMax,be.outputMin=me(H,J,_e.outputMin),be.outputMax=me(H,J,_e.outputMax),be.curve=_e.curve??0}else if(se.type==="mouse"){let _e=se;be.outputMin=me(H,J,_e.outputMin),be.outputMax=me(H,J,_e.outputMax),be.curve=_e.curve??0}else if(se.type==="auto-animate"){let _e=se;be.outputMin=me(H,J,_e.outputMin),be.outputMax=me(H,J,_e.outputMax)}return H.mapValues[J]=be,be},fi=(H,J,se)=>{let be=H.mouseDriverState[J];if(be)return be;if(se.type==="mouse-position"){let _e=se.x===void 0||se.x==="mouse",Pe=se.y===void 0||se.y==="mouse";be={currentX:_e?we:se.x,currentY:Pe?de:se.y,velocityX:0,velocityY:0,pointerSnapped:Te}}else be={currentX:Math.max(.001,se.axis==="x"?we:de),currentY:0,velocityX:0,velocityY:0,pointerSnapped:Te};return H.mouseDriverState[J]=be,be},Il=H=>{let J=H.metadata.maps;if(J)for(let[se,be]of Object.entries(J))se in H.uniforms&&(be.type==="map"?La(H,se,be):be.type==="mouse-position"?fi(H,se,be):be.type==="mouse"?(fi(H,se,be),La(H,se,be)):be.type==="auto-animate"&&(H.autoAnimateState[se]||(H.autoAnimateState[se]={}),La(H,se,be)))},tu=H=>{let J=H.definition.animatedTime;return(J?H.uniforms[J.speed]:void 0)??H},Hp=(H,J)=>H.uniforms[J]??H,Wf=H=>{let J=[];for(let[_e,Pe]of Object.entries(H.uniforms))J.push({name:_e,initial:Pe.value,transform:Pe.transform,cpu:Pe.cpu,schema:Pe.schema});if(J.push({name:"_opacity",schema:n,initial:H.metadata.opacity??1}),H.definition.animatedTime&&J.push({name:"_animTime",schema:n,initial:Jd(tu(H)).value}),H.definition.extraAnimatedTimes)for(let[_e,Pe]of Object.entries(H.definition.extraAnimatedTimes))J.push({name:`_animTime_${_e}`,schema:n,initial:Jd(Hp(H,Pe)).value});let se=H.definition.extraFields;if(se)for(let[_e,Pe]of Object.entries(se))J.push({name:_e,schema:Pe.schema,initial:Pe.initial});if(Fo(H)){let _e=Ge(H);for(let[Pe,Ke]of Object.entries(_e))J.push({name:`_xform_${Pe}`,schema:n,initial:Ke})}if(De(H)){let _e=ze(H);if(_e)for(let[Pe,Ke]of Object.entries(_e))J.push({name:`_bbox_${Pe}`,schema:n,initial:Ke})}if(H.definition.wantsBoundsParams){let _e=bt(H)??{centerX:.5,centerY:.5,halfWidth:.5,halfHeight:.5};for(let[Pe,Ke]of Object.entries(_e))J.push({name:`_childBounds_${Pe}`,schema:n,initial:Ke})}let be=H.metadata.maps;if(be){Il(H);for(let[_e,Pe]of Object.entries(be))if(_e in H.uniforms){if(Pe.type==="map"){let Ke=H.mapValues[_e];J.push({name:`_map_${_e}_inputMin`,schema:n,initial:Ke.inputMin}),J.push({name:`_map_${_e}_inputMax`,schema:n,initial:Ke.inputMax}),J.push({name:`_map_${_e}_outputMin`,schema:n,initial:Ke.outputMin}),J.push({name:`_map_${_e}_outputMax`,schema:n,initial:Ke.outputMax}),J.push({name:`_map_${_e}_curve`,schema:n,initial:Ke.curve})}else if(Pe.type==="mouse-position"){let Ke=H.mouseDriverState[_e];J.push({name:`_smoothed_${_e}`,schema:m,initial:[Ke.currentX,1-Ke.currentY]})}else if(Pe.type==="mouse"){let Ke=H.mapValues[_e];J.push({name:`_smoothed_${_e}`,schema:n,initial:Ke.outputMin})}else if(Pe.type==="auto-animate"){let Ke=H.mapValues[_e];J.push({name:`_smoothed_${_e}`,schema:n,initial:Ke.outputMin})}}}return J},ol=(H,J,se)=>{let be=H._liveHandles?.[J];be&&(lt?.(ut),cM(be,se))},lr=(H,J,se)=>{let be=H._liveHandles?.[J];be instanceof ai&&(be.value=se)},Vf=(H,J,se)=>{let be=H._liveHandles?.[J];be instanceof ai?be.value=se:be instanceof Fm&&Array.isArray(se)&&(be.array=se)},Ry=H=>{for(let J of Object.values(H.uniforms))if(J.transform===tt){let se=J.value;if(typeof se=="string")return tt(se);if(typeof se=="number")return se}return 0},Dy=H=>{if(!H.uniforms.convertedColorsArray)return;let J=null;for(let Pe of Object.values(H.uniforms))if(Pe.transform===gc){J=Pe.value??null;break}let se=s3(J,E_),be=r3(se.colors,se.stopCount,Ry(H)),_e=(Pe,Ke)=>{let yt=H.uniforms[Pe];yt&&(yt.value=Ke),ol(H,Pe,Ke)};_e("colorsArray",se.colors),_e("positionsArray",se.positions),_e("convertedColorsArray",be),_e("stopCount",se.stopCount)},jp=(H,J)=>{let se=H.uniforms[J],be=se?._listSpec;if(!se||!be)return;let _e=se._rawList,Pe=new Set,Ke=i3(_e,be,{color:E_,drivenPosition:($t,Js,wr)=>{let pr=OE(J,$t,Js);Pe.add(pr);let ts=fi(H,pr,wr);return ts.liveX!==void 0&&ts.liveY!==void 0?{x:ts.liveX,y:1-ts.liveY}:void 0}});for(let $t of Object.keys(H.mouseDriverState)){let Js=n3($t);Js&&Js.prop===J&&!Pe.has($t)&&delete H.mouseDriverState[$t]}se.value=Ke,ol(H,J,Ke);let yt=l3(Ke,be),Pt=($t,Js)=>{let wr=H.uniforms[$t];wr&&(wr.value=Js),ol(H,$t,Js)};for(let[$t,Js]of Object.entries(yt.fields))Pt(C_(J,$t),Js);Pt(M_(J),yt.count)},qf=(H,J)=>{let se=H.metadata.maps?.[J];if(se)return se;let be=n3(J);if(!be)return;let _e=H.uniforms[be.prop]?._rawList,Pe=(Array.isArray(_e)?_e[be.index]:void 0)?.[be.field];return ah(Pe)?Pe:void 0},Nf=H=>Object.values(H.uniforms).some(J=>J._listSpec&&c3(J._rawList,J._listSpec)),Ly=H=>{if(lr(H,"_opacity",H.metadata.opacity??1),H.definition.animatedTime&&lr(H,"_animTime",Jd(tu(H)).value),H.definition.extraAnimatedTimes)for(let[se,be]of Object.entries(H.definition.extraAnimatedTimes))lr(H,`_animTime_${se}`,Jd(Hp(H,be)).value);if(Fo(H))for(let[se,be]of Object.entries(Ge(H)))lr(H,`_xform_${se}`,be);if(De(H)){let se=ze(H);if(se)for(let[be,_e]of Object.entries(se))lr(H,`_bbox_${be}`,_e)}let J=H.metadata.maps;if(J){for(let[se,be]of Object.entries(J))if(be.type==="map"&&H.mapValues[se]){let _e=H.mapValues[se];lr(H,`_map_${se}_inputMin`,_e.inputMin),lr(H,`_map_${se}_inputMax`,_e.inputMax),lr(H,`_map_${se}_outputMin`,_e.outputMin),lr(H,`_map_${se}_outputMax`,_e.outputMax),lr(H,`_map_${se}_curve`,_e.curve)}}},Uy=(H,J)=>{let se={};for(let be of Object.keys(H.uniforms)){let _e=J[be];_e&&(se[be]=_e)}return se},$f=H=>{let J={};for(let[se,be]of Object.entries(H.uniforms))J[se]={accessorPath:"",cpu:!!be.cpu,value:be.value};return J},Oy=(H,J)=>({id:H.id,customId:H.metadata.id,componentName:H.componentName,parentId:H.parentId,definition:H.definition,metadata:H.metadata,handles:J,domCanvas:H.domCanvas}),Xf=(H,J)=>{let se=new Map,be=Pe=>Oy(Pe,H&&J?Uy(Pe,J.get(Pe.id)??{}):$f(Pe)),_e=Pe=>{let Ke=se.get(Pe);if(Ke)return Ke;let yt=u.get(Pe);if(!yt)return;let Pt=be(yt);return se.set(Pe,Pt),Pt};return{rootId:p,getNode:_e,getChildren:Pe=>nr(Pe).map(Ke=>_e(Ke.id)),resolveCustomId:Pe=>Rr(Pe),store:{gpuAccessor:(Pe,Ke)=>H?H.gpuAccessor(Pe,Ke):"",layout:H?.layout}}},Hf=()=>({toneMapping:gt,flipY:!1,premultiplyAlpha:!0,canvas:a??void 0,dimensions:al(),gpu:t?{device:t.device,root:t}:void 0,writeExtraField:(H,J,se)=>{let be=u.get(H);be&&Vf(be,J,se)},createMediaTexture:H=>{if(!r)throw new Error("[gpu] createMediaTexture before init");return r.createMediaTexture(H)},createDataTexture:H=>{if(!r)throw new Error("[gpu] createDataTexture before init");return r.createDataTexture(H)},resolveMapWindow:(H,J)=>{let se=u.get(H),be=se?.metadata.maps?.[J];if(!se||!be||be.type!=="map")return;let _e=La(se,J,be);return{inputMin:_e.inputMin,inputMax:_e.inputMax,outputMin:_e.outputMin,outputMax:_e.outputMax,curve:_e.curve}},resolveDriverCpuValue:(H,J)=>{let se=u.get(H);if(!se)return;if(J==="_animTime"||J.startsWith("_animTime_")){let _e=se._liveHandles?.[J];return _e instanceof ai?_e.value:void 0}let be=se.metadata.maps?.[J];if(be){if(be.type==="mouse-position"){let _e=se.mouseDriverState[J];return!_e||_e.liveX===void 0||_e.liveY===void 0?void 0:{x:_e.liveX,y:1-_e.liveY}}if(be.type==="mouse"||be.type==="auto-animate"){let _e=se._liveHandles?.[`_smoothed_${J}`];return _e instanceof ai?_e.value:void 0}}}}),Gy=()=>{let H=[];for(let[J,se]of u){let be=se.metadata;H.push(`aopac:${J}:${(be.opacity??1)<1}`);let _e=se.uniforms.stopCount?.value;typeof _e=="number"&&H.push(`stops:${J}:${_e>1?_e:0}`);for(let[Pe,Ke]of Object.entries(se.uniforms)){if(!Ke.compileTimeWhen)continue;let yt=Ke._lastCompiledValue;typeof yt!="number"&&typeof yt!="boolean"||H.push(`ctw:${J}:${Pe}:${String(yt)}`)}if(be.maps){let Pe=Object.entries(be.maps).sort(([Ke],[yt])=>Ke<yt?-1:Ke>yt?1:0).map(([Ke,yt])=>{let Pt=yt;return`${Ke}=${Pt.type}:${Pt.source??""}:${Pt.channel??""}:${Pt.axis??""}`}).join(",");H.push(`mapfp:${J}:${Pe}`)}}return H},jf=()=>p?$_e([...dE(Xf(null,null),Hf()),...Gy()]):null,al=()=>({width:Math.max(1,Math.round(C*L)),height:Math.max(1,Math.round(k*L))}),Fy=H=>{let J={};for(let se of H.textures)se.kind!=="rtt"&&se.resource&&(J[se.key]=se.resource);return J},Iy=H=>{if(!t||!r||!o)throw new Error("[gpu] buildComposition before init");let J=lM(t,{systemSchema:N_e}),se=new Map;for(let[Ke,yt]of u)se.set(Ke,J.defineNode(Ke,Wf(yt)));J.defineSystem(),J.finalize();let be=cE(Xf(J,se),Hf()),_e=H_e(t,{textureManager:r,dispatcher:o});_e.setComposition(be,J.bindGroup,al(),Fy(be));let Pe={hash:H,store:J,ir:be,passManager:_e,handlesById:se,fresh:!0};return y.add(Pe),Pe},Kf=H=>{try{for(let J of H.ir.onCleanup)J()}catch(J){hr("[gpu] composition onCleanup error:",J)}try{H.passManager.dispose()}catch(J){hr("[gpu] passManager dispose error:",J)}try{H.store.destroy()}catch(J){hr("[gpu] store destroy error:",J)}y.delete(H),x===H&&(x=null)},Qf=H=>{let J=!1;for(let[se,be]of H.handlesById){let _e=u.get(se);_e&&_e._liveHandles!==be&&(_e._liveHandles=be,J=!0)}if(!(H===x&&!J)){if(!H.fresh){for(let se of u.values()){for(let[be,_e]of Object.entries(se.uniforms))ol(se,be,_e.value);Il(se),Ly(se)}H.store.writeAll()}H.fresh=!1,x=H,!wt&&H.ir.composedNodeIds.size>0&&(St=!0)}},jn=()=>{P=!0,Os()&&(Dt=!0),sn()},sn=()=>{Yt||Zs.running||oe===null&&typeof requestAnimationFrame=="function"&&(oe=requestAnimationFrame(()=>{oe=null,sm()}))},Zf=(H,J,se,be,_e={},Pe,Ke)=>{if(Yt)return;if(J===null){let ts=f.findIndex(Io=>Io.id===H);if(ts!==-1){f.splice(ts,1),v=v.filter(Io=>Io.id!==H);return}qc(H);return}if(!Pe){console.error(`[gpu] registerNode("${H}") requires a componentDefinition`);return}if(!c){let ts=f.findIndex(Kn=>Kn.id===H),Io={id:H,definition:Pe,parentId:se,metadata:be,uniforms:_e,domCanvas:Ke};ts!==-1?(f[ts]=Io,v=v.filter(Kn=>Kn.id!==H)):f.push(Io);return}let yt=0;if(se!==null){let ts=_.get(se);if(ts&&ts.size>0){let Io=0;for(let Kn of ts){let Ua=u.get(Kn);Ua&&Ua.metadata.renderOrder>Io&&(Io=Ua.metadata.renderOrder)}yt=Io+1}}let Pt={blendMode:be?.blendMode||"normal",opacity:be?.opacity,visible:be?.visible!==!1,id:be?.id?Ar(be.id):be?.id,mask:be?.mask,maps:be?.maps,renderOrder:be?.renderOrder!==void 0?be.renderOrder:yt,transform:be?.transform,boundingBox:be?.boundingBox,flow:be?.flow,absolute:be?.absolute},$t=Pe.boundingBoxDeclaration,Js=Pe.props?u3(Pe.props):void 0,wr={id:H,componentName:Pe.name||"Unknown",parentId:se,definition:Pe,metadata:Pt,uniforms:_e,domCanvas:Ke,requiresRTT:!!Pe.requiresRTT,requiresChild:!!Pe.requiresChild,blendWithChildren:!!Pe.blendWithChildren,acceptsUVContext:!!Pe.acceptsUVContext,providesUVContextViaCompute:!!Pe.providesUVContextViaCompute,usesPointer:!!Pe.usesPointer,hasUvRemap:!!Pe.uvRemap,boundingBoxDeclaration:$t,wantsBoundsParams:!!Pe.wantsBoundsParams,extraDimProps:Js,mouseDriverState:{},autoAnimateState:{},mapValues:{},_liveHandles:null};if($t||Js){let ts=$u($t,Js);if(ts){let Io=_e.origin?.value??"center",Kn=Cr(wr,Io);for(let Ua of[...ts.positionProps,...ts.sizeProps.keys()]){let ha=_e[Ua];ha&&(ha._rawDimensional===void 0&&(ha._rawDimensional=ha.value),ha.value=k_($t,Ua,ha._rawDimensional,Io,V(),W(),Js,Kn))}}}for(let ts of Object.values(_e))ts.compileTimeWhen&&ts._lastCompiledValue===void 0&&(ts._lastCompiledValue=ts.value);u.set(H,wr),se===null&&(p=H);let pr=_.get(se)||new Set;pr.add(H),_.set(se,pr),rm(),jn(),Os()&&zt()},Jf=H=>{f.some(J=>J.id===H.id)&&v.push(H)},Kp=(H,J,se)=>{let be=u.get(H);if(!be){Jf({id:H,kind:"uniform",name:J,value:se});return}let _e=be.uniforms[J];if(!_e)return;let Pe=be.boundingBoxDeclaration,Ke=be.extraDimProps;if((Pe||Ke)&&m3(Pe,J,Ke)){_e._rawDimensional=se;let yt=be.uniforms.origin?.value??"center",Pt=Cr(be,yt);se=k_(Pe,J,se,yt,V(),W(),Ke,Pt)}if(_e.transform===Td){_e._rawList=se,jp(be,J),rm(),sn();return}if(_e.value=se,ol(be,J,se),(_e.transform===gc||_e.transform===tt)&&Dy(be),J==="origin"&&Pe)Ur(be);else if(Pe&&(be.uniforms.origin?.value??"center")!=="center"){let yt=$u(Pe,Ke),Pt=!!Pe.computeBounds||(yt?.sizeProps.has(J)??!1),$t=yt?.positionProps.has(J)??!1;Pt&&!$t&&Ur(be)}if(J==="shape"&&rm(),Os()&&zt(),_e.compileTime){jn();return}if(_e.compileTimeWhen){let yt=_e._lastCompiledValue;if(_e.compileTimeWhen(yt,se)){_e._lastCompiledValue=se,jn();return}}sn()},e1=(H,J)=>{let se=u.get(H);if(!se){Jf({id:H,kind:"metadata",metadata:J});return}let be=!1;if(J.blendMode!==void 0&&se.metadata.blendMode!==J.blendMode&&(se.metadata.blendMode=J.blendMode,be=!0),J.opacity!==void 0&&se.metadata.opacity!==J.opacity){let _e=se.metadata.opacity??1,Pe=J.opacity;se.metadata.opacity=Pe,lr(se,"_opacity",Pe),_e>=1!=Pe>=1&&(be=!0)}if(J.renderOrder!==void 0&&se.metadata.renderOrder!==J.renderOrder&&(se.metadata.renderOrder=J.renderOrder,be=!0),"visible"in J){let _e=J.visible!==!1;se.metadata.visible!==_e&&(se.metadata.visible=_e,be=!0)}if(J.id!==void 0){let _e=Ar(J.id);se.metadata.id!==_e&&(se.metadata.id=_e,be=!0)}if("mask"in J&&(se.metadata.mask?.source!==J.mask?.source||se.metadata.mask?.type!==J.mask?.type)&&(se.metadata.mask=J.mask,be=!0),"maps"in J&&JSON.stringify(se.metadata.maps)!==JSON.stringify(J.maps)){let _e=se.metadata.maps,Pe=J.maps;if(se.metadata.maps=Pe,rm(),(()=>{if(!_e||!Pe)return!0;let Ke=Object.keys(_e),yt=Object.keys(Pe);if(Ke.length!==yt.length||!Ke.every(Pt=>Pt in Pe))return!0;for(let Pt of yt){let $t=_e[Pt],Js=Pe[Pt];if($t.type!==Js.type)return!0;if(Js.type==="map"){let wr=$t,pr=Js;if(wr.source!==pr.source||wr.channel!==pr.channel)return!0}else if(Js.type==="mouse"&&$t.axis!==Js.axis)return!0}return!1})()){if(_e&&Pe)for(let Ke of Object.keys(_e))Ke in Pe&&_e[Ke].type!==Pe[Ke].type&&(delete se.mouseDriverState[Ke],delete se.autoAnimateState[Ke],delete se.mapValues[Ke]);be=!0}else if(Pe)for(let[Ke,yt]of Object.entries(Pe)){let Pt=La(se,Ke,yt);yt.type==="map"&&(lr(se,`_map_${Ke}_inputMin`,Pt.inputMin),lr(se,`_map_${Ke}_inputMax`,Pt.inputMax),lr(se,`_map_${Ke}_outputMin`,Pt.outputMin),lr(se,`_map_${Ke}_outputMax`,Pt.outputMax),lr(se,`_map_${Ke}_curve`,Pt.curve))}}if(J.transform!==void 0){let _e=se.metadata.transform,Pe={offsetX:J.transform.offsetX??_e?.offsetX??0,offsetY:J.transform.offsetY??_e?.offsetY??0,rotation:J.transform.rotation??_e?.rotation??0,scale:J.transform.scale??_e?.scale??1,anchorX:J.transform.anchorX??_e?.anchorX??.5,anchorY:J.transform.anchorY??_e?.anchorY??.5,edges:J.transform.edges??_e?.edges??"transparent"},Ke=Fo(se);se.metadata.transform=Pe;let yt=ml(Pe);if(Ke!==yt||_e&&_e.edges!==Pe.edges)be=!0;else if(yt)for(let[Pt,$t]of Object.entries(Ge(se)))lr(se,`_xform_${Pt}`,$t)}if(J.boundingBox!==void 0&&J.boundingBox!==null&&se.boundingBoxDeclaration!==void 0){let _e=De(se);se.metadata.boundingBox=J.boundingBox;let Pe=De(se);if(_e!==Pe)be=!0;else if(Pe){let Ke=ze(se);if(Ke)for(let[yt,Pt]of Object.entries(Ke))lr(se,`_bbox_${yt}`,Pt)}}else J.boundingBox===null&&se.metadata.boundingBox!==void 0&&(se.metadata.boundingBox=void 0,be=!0);if("flow"in J&&JSON.stringify(se.metadata.flow)!==JSON.stringify(J.flow)){let _e=se.metadata.flow?.mode==="column"||se.metadata.flow?.mode==="row";se.metadata.flow=J.flow??void 0;let Pe=se.metadata.flow?.mode==="column"||se.metadata.flow?.mode==="row";if(_e&&!Pe){let Ke=yt=>{for(let Pt of nr(yt))Ur(Pt),Ke(Pt.id)};Ke(H)}zt()}"absolute"in J&&se.metadata.absolute!==J.absolute&&(se.metadata.absolute=J.absolute,J.absolute&&Ur(se),zt()),Os()&&zt(),be?jn():sn()},qc=H=>{let J=u.get(H);if(!J)return;for(let be of nr(H))qc(be.id);p===H&&(p=null);let se=_.get(J.parentId);se&&(se.delete(H),se.size===0&&_.delete(J.parentId)),u.delete(H),rm(),jn(),Os()&&zt()},t1=()=>{let H=ys.deltaTime;ne=fk(ce,ne,H,performance.now());for(let J of u.values()){let se=J.metadata.maps??{};for(let be in J.mouseDriverState){let _e=J.mouseDriverState[be],Pe=qf(J,be);if(Pe){if(Pe.type==="mouse-position"){let Ke=Pe.smoothing??0,yt=Pe.momentum??0,Pt=Pe.x===void 0||Pe.x==="mouse",$t=Pe.y===void 0||Pe.y==="mouse";!_e.pointerSnapped&&Te&&(_e.pointerSnapped=!0,Pt&&(_e.currentX=we,_e.velocityX=0),$t&&(_e.currentY=de,_e.velocityY=0));let Js,wr;if(Pt){let[Qn,ru]=G_(_e.currentX,_e.velocityX,we,Ke,yt,H);_e.currentX=Qn,_e.velocityX=ru,Js=Qn}else Js=Pe.x,_e.velocityX=0;if($t){let[Qn,ru]=G_(_e.currentY,_e.velocityY,de,Ke,yt,H);_e.currentY=Qn,_e.velocityY=ru,wr=Qn}else wr=Pe.y,_e.velocityY=0;let pr=Pe.reach??1,ts=Pe.originX??.5,Io=Pe.originY??.5,Kn=Pe.invertX?-1:1,Ua=Pe.invertY?-1:1,ha=ts+Kn*(Js-ts)*pr,Cn=Io+Ua*(wr-Io)*pr,$c=ha,om=Cn,n1=J.metadata.boundingBox;if(n1&&J.boundingBoxDeclaration?.supportsResizeFit&&De(J)){let Qn=Lx(n1,V(),W()),ru=nE(ha,Cn,{centerX:Qn.centerX,centerY:Qn.centerY,halfWidthUV:Qn.halfWidthUV,halfHeightUV:Qn.halfHeightUV,rotationDeg:Qn.rotation,aspectRatio:We()});$c=ru.x,om=ru.y}_e.liveX=$c,_e.liveY=om;let c6=J._liveHandles?.[`_smoothed_${be}`];c6 instanceof ai&&c6.setComponents($c,1-om)}else if(Pe.type==="mouse"){let Ke=Pe.smoothing??0,yt=Pe.momentum??0,Pt=Pe.axis==="x"?we:de;!_e.pointerSnapped&&Te&&(_e.pointerSnapped=!0,_e.currentX=Math.max(.001,Pt),_e.velocityX=0);let[$t,Js]=G_(_e.currentX,_e.velocityX,Pt,Ke,yt,H);_e.currentX=$t,_e.velocityX=Js;let wr=Math.max(.001,$t),pr=J.mapValues[be],ts=pr?pr.outputMin+(pr.outputMax-pr.outputMin)*Math.pow(wr,Math.pow(2,-pr.curve*2)):wr;_e.liveScalar=ts,lr(J,`_smoothed_${be}`,ts)}}}for(let[be,_e]of Object.entries(J.uniforms))_e._listSpec&&c3(_e._rawList,_e._listSpec)&&jp(J,be);for(let be in J.autoAnimateState){let _e=se[be];if(!_e||_e.type!=="auto-animate")continue;let Pe=ne*(_e.speed??1)*.2,Ke,yt=_e.easing??_e.waveform??"sine";if(_e.mode==="loop")Ke=V3((Pe%1+1)%1,yt);else{let ts=(Pe%1+1)%1;Ke=V3(ts<.5?ts*2:(1-ts)*2,yt)}let Pt=J.mapValues[be],$t=Pt?Pt.outputMin:me(J,be,_e.outputMin),Js=Pt?Pt.outputMax:me(J,be,_e.outputMax),wr=$t+Ke*(Js-$t),pr=J.uniforms[be];if(pr?.compileTimeWhen){let ts=pr._lastCompiledValue;pr.compileTimeWhen(ts,wr)&&(pr._lastCompiledValue=wr,jn())}lr(J,`_smoothed_${be}`,wr)}}},s1=()=>{let H=ys.deltaTime;for(let J of u.values()){let se=J.definition.animatedTime;if(se){let _e=J.uniforms[se.speed],Pe=_e&&Number(_e.value)||0,Ke=Jd(tu(J));Ke.advance(H,Pe),lr(J,"_animTime",Ke.value)}let be=J.definition.extraAnimatedTimes;if(be)for(let[_e,Pe]of Object.entries(be)){let Ke=J.uniforms[Pe],yt=Ke&&Number(Ke.value)||0,Pt=Jd(Hp(J,Pe));Pt.advance(H,yt),lr(J,`_animTime_${_e}`,Pt.value)}}},Qp=(H,J)=>_k(H,J,{maxTextureDim:B,pixelRatio:L,viewportWidth:typeof window<"u"?window.innerWidth:H,viewportHeight:typeof window<"u"?window.innerHeight:J}),su=()=>{let H=(typeof window<"u"?window.devicePixelRatio:1)||1;return Math.min(H,xE())},Nc=(H,J,se,be)=>{if(F&&H===C&&J===k&&se===z&&be===U){let{width:yt,height:Pt}=al();if(!a||a.width===yt&&a.height===Pt)return}C=H,k=J,z=se,U=be,d3(se,be),F||(F=!0,u.size>0&&jn());let{width:_e,height:Pe}=al();a&&(a.width=_e,a.height=Pe);let Ke=!1;for(let yt of y)yt.passManager.resize(_e,Pe)&&(Ke=!0);for(let yt of y)for(let Pt of yt.ir.onResize)try{Pt({width:_e,height:Pe})}catch($t){hr("[gpu] composition onResize error:",$t)}for(let yt of u.values()){if(Fo(yt)&&lr(yt,"_xform_aspectRatio",We()),De(yt)){let Pt=ze(yt);if(Pt)for(let[$t,Js]of Object.entries(Pt))lr(yt,`_bbox_${$t}`,Js)}Ur(yt)}if(Nr(),Ke)for(let yt of y)r1(yt.store),yt.store.flush(),yt.passManager.repaintRtt();ee=0,sm()},Zp=(H,J)=>{H<=0||J<=0||H===D&&J===G||(D=H,G=J,$e={width:H,height:J},!Ye&&typeof requestAnimationFrame=="function"&&(Ye=!0,requestAnimationFrame(()=>{if(Ye=!1,!$e)return;let se=$e;$e=null;let{width:be,height:_e}=Qp(se.width,se.height);Nc(be,_e,se.width,se.height)})))},Jp=H=>{let J=H[0];if(!J)return;let se,be;if(J.contentBoxSize){let _e=Array.isArray(J.contentBoxSize)?J.contentBoxSize[0]:J.contentBoxSize;_e?(se=Math.round(_e.inlineSize),be=Math.round(_e.blockSize)):(se=Math.round(J.contentRect.width),be=Math.round(J.contentRect.height))}else se=Math.round(J.contentRect.width),be=Math.round(J.contentRect.height);se===0||be===0||Zp(se,be)},Yy=H=>{let J=H[0];J&&($=J.isIntersecting)},em=()=>i&&!!t&&!!s&&C>0&&k>0,r1=H=>{let J=H.systemHandles,{width:se,height:be}=al(),_e=su(),Pe=(Ke,yt)=>{let Pt=J[Ke];Pt instanceof ai&&(Pt.value=yt)};Pe("time",ne),Pe("viewportSize",[se,be]),Pe("logicalViewportSize",[V()*_e,W()*_e]),Pe("aspect",se/Math.max(1,be)),Pe("pointer",[we,de]),Pe("pointerActive",xe?1:0)},tm=H=>{for(let J of H)try{J(ys)}catch(se){hr("[gpu] render callback error:",se)}},a6=H=>{if(Yt||!em())return;let J=performance.now(),se;if(H!==void 0)se=H;else{let Ke=vk(J,{lastRenderTime:ee,isVisible:$,forceFullFrameRate:Q,minInterval:re});if(!Ke.render)return;se=Ke.deltaTime}ee=J,Qe&&performance.mark("shader-cpu-start");let be=we>-5;ys.deltaTime=se,ys.pointer.x=be?we:.5,ys.pointer.y=be?de:.5,ys.pointer.seen=Te,ys.pointerActive=xe,ys.dimensions.width=C,ys.dimensions.height=k;let _e=null,Pe=null;try{hk({updateDrivers:()=>{t1(),s1(),Rt(),Mo()},ensureComposition:()=>((P||w===null)&&(w=jf(),P=!1),w===null?!1:(_e=g.getOrBuild(w,()=>Iy(w)),Qf(_e),!!x)),beforeRender:()=>tm(x.ir.onBeforeRender),flush:()=>{r1(x.store),x.store.flush()},render:()=>{if(Qe&&performance.mark("shader-gpu-start"),Pe=g.renderValue??_e,Pe?.passManager.render(s,ys,()=>x?.store.flush()),Qe){performance.mark("shader-gpu-end");try{performance.measure("shader-gpu-time","shader-gpu-start","shader-gpu-end");let Ke=performance.getEntriesByName("shader-gpu-time")[0];Ke&&_s.recordGpuTime(Ke.duration),performance.clearMeasures("shader-gpu-time"),performance.clearMarks("shader-gpu-start"),performance.clearMarks("shader-gpu-end")}catch{}}},markReady:()=>{g.markReady(w),St&&!wt&&(wt=!0,St=!1,ft&&queueMicrotask(ft))},afterRender:()=>tm((Pe??x).ir.onAfterRender)}),gs=0}catch(Ke){bq(Ke);return}if(Qe){performance.mark("shader-cpu-end");try{performance.measure("shader-cpu-time","shader-cpu-start","shader-cpu-end");let Ke=performance.getEntriesByName("shader-cpu-time")[0];Ke&&_s.recordCpuTime(Ke.duration),performance.clearMarks("shader-cpu-start"),performance.clearMarks("shader-cpu-end"),performance.clearMeasures("shader-cpu-time")}catch{}}_s.recordFrame(performance.now()-J)},sm=()=>a6(void 0),pq=async H=>{if(Yt)return;if(!em())throw new Error("Renderer is not ready");let J=Zs.running;J&&o1(),ee=0,sm(),t&&H?.waitForGpu!==!1&&await q3(t),J&&Wy()},mq=async(H,J)=>{a6(H),t&&J?.waitForGpu!==!1&&await q3(t)},Wy=()=>{Yt||Zs.running||!q||(_s.setRendering(!0),Zs.start())},o1=()=>{Zs.running&&(Zs.stop(),_s.setRendering(!1))},a1=H=>{if(!a)return;Oe=a.getBoundingClientRect();let J,se;if("touches"in H){if(H.touches.length===0)return;J=H.touches[0].clientX,se=H.touches[0].clientY}else J=H.clientX,se=H.clientY;we=(J-Oe.left)/Oe.width,de=(se-Oe.top)/Oe.height,Te=!0},_q=H=>{!i||!a||(a1(H),xe=!0,sn())},fq=H=>{!i||!a||(a1(H),xe=!0,sn())},vq=()=>{i&&(xe=!1,sn())},hq=()=>{i&&(xe=!1,sn())},n6=(H,J)=>{if(!i||!a)return!1;let se=a.getBoundingClientRect();return se.width===0||se.height===0?!1:H>=se.left&&H<=se.right&&J>=se.top&&J<=se.bottom},gq=H=>{H.button===0&&n6(H.clientX,H.clientY)&&(xe=!0,a1(H),sn())},yq=H=>{H.touches.length!==0&&n6(H.touches[0].clientX,H.touches[0].clientY)&&(xe=!0,a1(H),sn())},rm=()=>{let H=!1;for(let J of u.values()){if(J.usesPointer){H=!0;break}if(dfe(J.uniforms?.shape?.value)||Nf(J)){H=!0;break}if(J.metadata.maps){for(let se of Object.values(J.metadata.maps))if(se&&typeof se=="object"&&"type"in se){let be=se.type;if(be==="mouse"||be==="mouse-position"){H=!0;break}}if(H)break}}H&&!Ee?(Ee=!0,!Re&&a&&(Re=cfe.register({onMouseMove:_q,onTouchMove:fq,onMouseDown:gq,onTouchStart:yq,onMouseUp:vq,onTouchEnd:hq}))):!H&&Ee&&(Ee=!1,Re&&(Re(),Re=null))},i6=()=>{if(f.length===0)return;let H=[...f];f=[];for(let se of H)Zf(se.id,se.definition.fragment,se.parentId,se.metadata,se.uniforms,se.definition,se.domCanvas);let J=v;v=[];for(let se of J)se.kind==="uniform"?Kp(se.id,se.name,se.value):e1(se.id,se.metadata)},Yl=(H,J)=>{if(!Yt){Yt=H,u6(H),hr(`[gpu] renderer stopped (${H}):`,J);try{Vy()}catch(se){hr("[gpu] cleanup during failure threw:",se)}if(!ns&&Qt){ns=!0;let se=Qt;queueMicrotask(()=>{try{se(H,J)}catch(be){hr("[gpu] onUnavailable callback threw:",be)}})}}},bq=H=>{if($y(H)){Yl(H.reason,H);return}gs++,gs===1&&hr("[gpu] render error:",H),gs>=lfe&&Yl("render-failed",H)},xq=H=>{!H||typeof H.addEventListener!="function"||(l6(),hs=H,rs=J=>{try{J.preventDefault()}catch{}let se=J.error;if(hr("[gpu] uncaptured device error:",se),typeof GPUOutOfMemoryError<"u"&&se instanceof GPUOutOfMemoryError){Yl("out-of-memory",se);return}if(typeof GPUInternalError<"u"&&se instanceof GPUInternalError){Yl("gpu-error",se);return}Ss++,Ss>=ife&&Yl("gpu-error",se)},H.addEventListener("uncapturederror",rs))},l6=()=>{if(hs&&rs)try{hs.removeEventListener("uncapturederror",rs)}catch{}hs=null,rs=null},Aq=H=>{if(!It){It=!0;try{o1()}catch{}if(kt){let J=kt;queueMicrotask(()=>{try{J(H)}catch(se){hr("[gpu] onDeviceLost callback threw:",se)}});return}Yl("device-lost",H)}},wq=async H=>{if(H.context!==void 0)throw new Error("[gpu] initialize({ context }) is not supported \u2014 this renderer is WebGPU-only. Remove the WebGL `context` option.");if(Yt)return;let J=p6();if(J){Yl(J);return}if(i||l)return;let{canvas:se,resizeTarget:be,enablePerformanceTracking:_e=!1,colorSpace:Pe="p3-linear",toneMapping:Ke="linear",gpu:yt,forceFullFrameRate:Pt=!1,observeElement:$t=!0,timeOrigin:Js}=H;Js!=null&&(ce=Js),Qe=_e,Q=Pt,ut=Pe,gt=Ke,Pn(),l=!0,d=new AbortController;let wr=d;try{if(lt=FE,lt(Pe),wr.signal.aborted||(a=se,e=await I_e({device:yt?.device,adapter:yt?.adapter,onDeviceLost:Cn=>Aq(Cn.message||Cn.reason||"unknown")}),wr.signal.aborted))return;t=e.root,xq(t.device),L=su();let pr=t.device.limits?.maxTextureDimension2D;typeof pr=="number"&&pr>0&&(B=pr),r=K_e(t),o=mE(t),typeof window<"u"&&(Ce=()=>Vy(),window.addEventListener("beforeunload",Ce),Se=()=>{if(D>0&&G>0){let Cn=D,$c=G;D=0,G=0,Zp(Cn,$c)}},window.addEventListener("resize",Se,{passive:!0}));let ts=se.getBoundingClientRect();Oe=ts,$=!$t||ts.width>0&&ts.height>0&&ts.top<window.innerHeight&&ts.bottom>0&&ts.left<window.innerWidth&&ts.right>0,q=!0;let Io=ts.width>0?ts.width:se.width,Kn=ts.height>0?ts.height:se.height,Ua=Math.round(Io),ha=Math.round(Kn);if(Ua>0&&ha>0){D=Ua,G=ha;let{width:Cn,height:$c}=Qp(Ua,ha);C=Cn,k=$c,z=Ua,U=ha,F=!0,d3(Ua,ha);let{width:om,height:n1}=al();se.width=om,se.height=n1}else F=!1;if(s=V_e(t,se),$t&&typeof ResizeObserver<"u"){let Cn=be??se.parentElement;Cn?(Ne=new ResizeObserver(Jp),Ne.observe(Cn)):console.warn("[gpu] no element available for resize observation \u2014 use resize() manually"),typeof IntersectionObserver<"u"&&(ke=new IntersectionObserver(Yy,{threshold:0,rootMargin:"128px"}),ke.observe(se))}if(wr.signal.aborted)return;i=!0,c=!0,i6(),C>0&&k>0&&sm(),q&&Wy()}catch(pr){let ts=$y(pr)?pr.reason:"init-failed";l=!1,d===wr&&(d=null),Yl(ts,pr);return}finally{l=!1,d===wr&&(d=null)}},Vy=()=>{d&&d.abort(),Ne&&(Ne.disconnect(),Ne=null),ke&&(ke.disconnect(),ke=null),Re&&(Re(),Re=null),Ce&&typeof window<"u"&&(window.removeEventListener("beforeunload",Ce),Ce=null),Se&&typeof window<"u"&&(window.removeEventListener("resize",Se),Se=null),oe!==null&&typeof cancelAnimationFrame=="function"&&(cancelAnimationFrame(oe),oe=null),o1(),l6(),$r?.(),$r=null,typeof document<"u"&&document.fonts?.removeEventListener&&document.fonts.removeEventListener("loadingdone",qs);try{e?.release?.()}catch{}g.clear();for(let H of[...y])Kf(H);x=null;try{r?.destroy()}catch{}try{e?.createdDevice&&t?.destroy()}catch{}u.clear(),p=null,_.clear(),f=[],v=[],c=!1,$e=null,Ye=!1,a=null,s=null,r=null,o=null,t=null,e=null,i=!1,l=!1,F=!1,d=null,C=0,k=0,z=0,U=0,w=null,P=!0,$=!1,q=!0,we=-10,de=-10,xe=!1,Te=!1,Ee=!1,ft=null,wt=!1,St=!1,kt=null,It=!1,Ss=0,gs=0};return{initialize:wq,cleanup:Vy,registerNode:Zf,removeNode:qc,updateUniformValue:Kp,updateNodeMetadata:e1,isInitialized:()=>i,resize:(H,J)=>{t&&Zp(H,J)},startAnimation:Wy,stopAnimation:o1,renderAndWait:pq,renderSyntheticFrame:mq,getPerformanceStats:()=>{let H=Math.max(0,u.size-1),J=x?x.ir.rttPasses.length:0;_s.updateNodeCounts(H,J);let se={render:{calls:x?x.passManager.passCount:0},programs:{length:g.size},memory:{textures:r?r.textureCount:0}};return _s.getStats(se)},getLiveDriverValue:(H,J)=>{let se=u.get(H)?.mouseDriverState?.[J];return!se||se.liveX===void 0||se.liveY===void 0?null:{x:se.liveX,y:se.liveY}},getLiveScalarValue:(H,J)=>{let se=u.get(H);if(!se)return null;let be=se.metadata.maps?.[J];if(be?.type==="auto-animate"){let _e=se._liveHandles?.[`_smoothed_${J}`],Pe=_e instanceof ai?_e.value:void 0;return typeof Pe=="number"?Pe:null}return be?.type==="mouse"?se.mouseDriverState[J]?.liveScalar??null:null},getNodeRegistry:()=>({nodes:new Map(u)}),getRendererType:()=>"webgpu",getInternalRenderer:()=>t?{device:t.device,adapter:e?.adapter,root:t}:null,setForceFullFrameRate:H=>{let J=Q;return Q=H,J},beginRecordingResolution:(H,J,se)=>{if(!t||H<=0||J<=0)return()=>{};let be=L,_e=C,Pe=k,Ke=z,yt=U,Pt=D,$t=G;return L=se,Nc(H,J,H,J),()=>{t&&(L=be,Nc(_e,Pe,Ke,yt),D=Pt,G=$t)}},setResolutionScale:H=>{if(!t)return;let J=Math.max(.05,Math.min(H,1)),se=Math.max(.01,su()*J);if(Math.abs(L-se)<.001)return;L=se;let be=z||C,_e=U||k;if(be<=0||_e<=0)return;let{width:Pe,height:Ke}=Qp(be,_e);Nc(Pe,Ke,be,_e)},setFrameRateCap:H=>{re=H&&H>0?1e3/Math.max(H,10)-1:0},setTimeOrigin:H=>{ce=H},setOnReady:H=>{ft=H,H&&wt&&queueMicrotask(H)},setOnDeviceLost:H=>{kt=H},setOnUnavailable:H=>{if(Qt=H,H&&Yt&&!ns){ns=!0;let J=Yt;queueMicrotask(()=>{try{H(J)}catch(se){hr("[gpu] onUnavailable callback threw:",se)}})}},getFailureReason:()=>Yt,__testing:{needsTransformation:ml,findChildNodes:nr,buildFieldInits:H=>{let J=u.get(H);return J?Wf(J):null},ensureDriverState:H=>{let J=u.get(H);J&&Il(J)},stepMouseDrivers:H=>{ys.deltaTime=H,t1()},stepAnimatedTime:H=>{ys.deltaTime=H,s1()},getAnimatedTimeValue:H=>{let J=u.get(H);return J?.definition.animatedTime?Jd(tu(J)).value:null},writeExtraField:(H,J,se)=>{let be=u.get(H);be&&Vf(be,J,se)},readExtraField:(H,J)=>{let se=u.get(H)?._liveHandles?.[J];return se instanceof ai?se.value:void 0},getNodeRegistry:()=>({nodes:u,rootId:p,parentToChildren:_}),getParentToChildren:()=>_,getPendingRegistrations:()=>[...f],getFrameDiagnostics:()=>({deltaTime:ys.deltaTime,pointerX:we,pointerY:de,pointerActive:xe,globalElapsedTime:ne,lastRenderTime:ee,isVisible:$,forceFullFrameRate:Q,sharedTimeOrigin:ce,animating:Zs.running,mouseListenersNeeded:Ee}),computeStructuralHash:jf,isStructuralDirty:()=>P,clearStructuralDirty:()=>{P=!1},setTestReady:H=>{i=!0,c=!0,H&&(C=H.width,k=H.height,z=H.width,U=H.height,F=!0),i6()}}}}var eu={samplingRate:.05,collectionDuration:5e3,warmupDuration:500,sampleInterval:500,apiEndpoint:"https://shaders.com/api/telemetry"};function ufe(e){return e.includes("Edg/")||e.includes("EdgiOS")?"Edge":e.includes("OPR/")||e.includes("Opera/")?"Opera":e.includes("Chrome/")||e.includes("CriOS")?"Chrome":e.includes("Firefox/")||e.includes("FxiOS")?"Firefox":e.includes("Safari/")&&!e.includes("Chrome")?"Safari":"Other"}function pfe(e){return/iPad|Tablet|PlayBook/i.test(e)||/Android/i.test(e)&&!/Mobile/i.test(e)?"tablet":/Mobile|Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)?"mobile":"desktop"}function mfe(){if(typeof window>"u"||typeof navigator>"u")return{domain:"unknown",browserFamily:"unknown",deviceType:"unknown"};let e=navigator.userAgent;return{domain:window.location.hostname,browserFamily:ufe(e),deviceType:pfe(e)}}var _fe=class{renderer;version;sourceType;sessionId;frameSamples=[];sampleInterval=null;stopped=!1;constructor(e,t,s){this.renderer=e,this.version=t,this.sourceType=s,this.sessionId=`tel_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}stop(){this.stopped=!0,this.sampleInterval&&(clearInterval(this.sampleInterval),this.sampleInterval=null)}async start(){try{if(await this.sleep(eu.warmupDuration),this.stopped||(this.sampleInterval=setInterval(()=>{if(!this.stopped)try{let e=this.renderer.getPerformanceStats();this.frameSamples.push(e)}catch(e){hr("Telemetry sampling error:",e)}},eu.sampleInterval),await this.sleep(eu.collectionDuration-eu.warmupDuration),this.stopped))return;if(this.sampleInterval&&(clearInterval(this.sampleInterval),this.sampleInterval=null),!this.stopped&&this.frameSamples.length>=5){let e=this.aggregateData();await this.sendTelemetry(e)}}catch(e){hr("Telemetry collection error:",e)}}sleep(e){return new Promise(t=>setTimeout(t,e))}aggregateData(){let e=this.aggregatePerformance(),t=this.detectRendererType(),s=this.extractComponents(),r=mfe();return{sessionId:this.sessionId,timestamp:Date.now(),collectionDuration:eu.collectionDuration,version:this.version,sourceType:this.sourceType,performance:e,renderer:t,components:s,environment:r}}aggregatePerformance(){if(this.frameSamples.length===0)return{fps:0,frameTime:{avg:0,min:0,max:0,p99:0},jankPercent:0,budgetUsed:0};let e=this.frameSamples.map(p=>p.avgFrameTime),t=this.frameSamples.map(p=>p.jankPercent),s=this.frameSamples.map(p=>p.budgetUsed),r=this.frameSamples.map(p=>p.fps),o=this.calculateMedian(r),a=this.calculateMean(e),i=Math.min(...e),l=Math.max(...e),c=this.calculatePercentile(e,99),d=this.calculateMean(t),u=this.calculateMean(s);return{fps:Math.round(o*10)/10,frameTime:{avg:Math.round(a*10)/10,min:Math.round(i*10)/10,max:Math.round(l*10)/10,p99:Math.round(c*10)/10},jankPercent:Math.round(d*10)/10,budgetUsed:Math.round(u*10)/10}}detectRendererType(){let e=this.frameSamples[this.frameSamples.length-1];return{type:this.renderer.getRendererType?.()||"webgl",drawCalls:e?.drawCalls??null,textureCount:e?.textureCount??null}}extractComponents(){try{let e=this.renderer.getNodeRegistry(),t=[];for(let[s,r]of e.nodes)r.parentId!==null&&t.push({name:r.componentName,requiresRTT:r.requiresRTT,renderOrder:r.metadata.renderOrder});return t.sort((s,r)=>s.renderOrder-r.renderOrder)}catch(e){return hr("Failed to extract components:",e),[]}}async sendTelemetry(e){try{let t=await fetch(eu.apiEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});t.ok||rn("Telemetry send failed:",t.status,t.statusText)}catch(t){hr("Telemetry send error:",t)}}calculateMean(e){return e.length===0?0:e.reduce((t,s)=>t+s,0)/e.length}calculateMedian(e){if(e.length===0)return 0;let t=[...e].sort((r,o)=>r-o),s=Math.floor(t.length/2);return t.length%2===0?(t[s-1]+t[s])/2:t[s]}calculatePercentile(e,t){if(e.length===0)return 0;let s=[...e].sort((o,a)=>o-a),r=Math.ceil(t/100*s.length)-1;return s[Math.max(0,r)]}};function ffe(e=!1,t=!1){return e||typeof navigator<"u"&&navigator.doNotTrack==="1"?!1:t?!0:Math.random()<eu.samplingRate}function lq(e,t,s=!1,r=!1){return ffe(s,r)?new _fe(e,t,r?"preview":"shader"):null}function cq(){if(typeof window>"u"||!window.location)return!1;let e=window.location.hostname;return!e.includes("shaders.com")&&e!=="localhost"&&e!=="127.0.0.1"}function s6(e){if(typeof e!="object"||e===null||!("type"in e))return!1;let t=e;return t.type==="map"||t.type==="mouse"||t.type==="mouse-position"||t.type==="auto-animate"}var dq=new Set(["opacity","blendMode","visible","transform","boundingBox","maskSource","maskType","flow","absolute"]);async function r6(e,t,s){let r=new Map;if(ky().forEach(B=>{r.set(B.definition.name,B.definition);for(let D of B.definition.deprecatedNames??[])r.set(D,B.definition)}),!e.style.width||!e.style.height){let B=e.getBoundingClientRect(),D=B.width>0?B.width:e.width,G=B.height>0?B.height:e.height;D>0&&!e.style.width&&(e.style.width=`${D}px`),G>0&&!e.style.height&&(e.style.height=`${G}px`)}function o(B){return{...B,props:B.props?{...B.props}:void 0,children:B.children?.map(o)}}let a={...t,components:t.components.map(o)},i=null,l=!1,c=!1,d=3,u=6e4,p=0,_=0,f=null;function v(B){try{s?.onError?.(B)}catch(D){hr("[createShader] onError callback threw:",D)}}let g=!1;function y(B){g||(g=!0,f=B,v(B))}function x(B,D,G,F,V){let W=r.get(G.type);if(!W){console.warn(`[createShader] Unknown component type: ${G.type}`);return}let q=G.id||`${G.type}_${Date.now()}_${Math.random().toString(36).slice(2,9)}`,$={};for(let[re,ne]of Object.entries(G.props||{}))!dq.has(re)&&Object.prototype.hasOwnProperty.call(W.props,re)&&s6(ne)&&($[re]=ne);let Q=_3(W,Object.fromEntries(Object.entries(W.props).map(([re,ne])=>{let ce=G.props?.[re]!==void 0?G.props[re]:ne.default;return[re,s6(ce)?ne.default:ce]})),q),ee={blendMode:G.props?.blendMode||"normal",opacity:G.props?.opacity,visible:G.props?.visible,renderOrder:V,id:G.id,maps:Object.keys($).length>0?{...$}:void 0,mask:G.props?.maskSource?{source:G.props.maskSource,type:G.props.maskType||"alpha"}:void 0,transform:G.props?.transform?{offsetX:0,offsetY:0,rotation:0,scale:1,anchorX:.5,anchorY:.5,edges:"transparent",...G.props.transform}:void 0,boundingBox:Xv(G.props?.boundingBox),flow:G.props?.flow,absolute:G.props?.absolute};B.registerNode(q,W.fragment,F,ee,Q,W),D.set(q,{componentDef:W,uniforms:Q,nodeId:q,component:G,currentMaps:{...$}}),G.children?.forEach((re,ne)=>{x(B,D,re,q,ne)})}async function w(){let B=iq(),D=new Map;s?.onReady&&B.setOnReady(s.onReady),B.setOnUnavailable(V=>{l||y(V)}),await B.initialize({canvas:e,resizeTarget:e,enablePerformanceTracking:s?.enablePerformanceTracking||!1,colorSpace:s?.colorSpace,toneMapping:s?.toneMapping,observeElement:s?.observeElement,gpu:s?.gpu});let G={renderer:B,nodeEntryMap:D,telemetryCollector:null,telemetryStartTimeout:null};B.setOnDeviceLost(V=>{if(l||c||f||i!==null&&i!==G)return;c=!0,v(V);let W=Date.now();if(W-_>u&&(p=0),_=W,++p>d){P(G),i=null,c=!1,y("unrecoverable");return}(async()=>{try{if(P(G),i=null,l)return;let q=await w();if(l){P(q);return}i=q}catch(q){hr("[createShader] rebuild after device loss failed:",q),y("rebuild_failed")}finally{c=!1}})()});let F="shader-root";if(B.registerNode(F,ch.fragment,null,null,{},ch),a.components.forEach((V,W)=>{x(B,D,V,F,W)}),cq()){let W=0,q=()=>{if(l||f||i!==G||++W>40){G.telemetryStartTimeout=null;return}B.getPerformanceStats().fps>0?(G.telemetryCollector=lq(B,"3.2.469",s?.disableTelemetry||!1,!1),G.telemetryCollector&&G.telemetryCollector.start(),G.telemetryStartTimeout=null):G.telemetryStartTimeout=setTimeout(q,500)};G.telemetryStartTimeout=setTimeout(q,500)}return G}function P(B){if(B.telemetryCollector){try{B.telemetryCollector.stop()}catch{}B.telemetryCollector=null}B.telemetryStartTimeout!==null&&(clearTimeout(B.telemetryStartTimeout),B.telemetryStartTimeout=null);try{B.renderer.cleanup()}catch{}}i=await w();function C(B,D){if(!i)return;let{renderer:G,nodeEntryMap:F}=i,V=F.get(B);if(!V){console.warn(`[createShader] Component ID not found: ${B}`);return}V.component.props||(V.component.props={});let W=V.component.props;for(let[q,$]of Object.entries(D))if(dq.has(q))if(q==="maskSource")G.updateNodeMetadata(V.nodeId,{mask:$?{source:$,type:D.maskType||W.maskType||"alpha"}:void 0}),W.maskSource=$,"maskType"in D&&(W.maskType=D.maskType);else{if(q==="maskType")continue;q==="transform"?(G.updateNodeMetadata(V.nodeId,{transform:$}),W.transform=$):q==="boundingBox"?(G.updateNodeMetadata(V.nodeId,{boundingBox:Xv($)}),W.boundingBox=$):(G.updateNodeMetadata(V.nodeId,{[q]:$}),W[q]=$)}else s6($)?Object.prototype.hasOwnProperty.call(V.componentDef.props,q)?(V.currentMaps[q]=$,G.updateNodeMetadata(V.nodeId,{maps:{...V.currentMaps}}),W[q]=$):console.warn(`[createShader] Ignoring PropDriver for unknown prop "${q}" on ${V.component.type}`):(q in V.currentMaps&&(delete V.currentMaps[q],G.updateNodeMetadata(V.nodeId,{maps:Object.keys(V.currentMaps).length>0?{...V.currentMaps}:void 0})),Object.prototype.hasOwnProperty.call(V.componentDef.props,q)&&(G.updateUniformValue(V.nodeId,q,$),W[q]=$))}function k(B,D){let G=e.getBoundingClientRect(),F=B??(G.width>0?G.width:e.width),V=D??(G.height>0?G.height:e.height);F>0&&V>0&&(e.style.width=`${F}px`,e.style.height=`${V}px`,i&&i.renderer.resize(F,V))}function z(){l=!0,i&&(P(i),i=null)}function U(){i&&i.renderer.stopAnimation()}function L(){i&&i.renderer.startAnimation()}return{update:C,resize:k,pause:U,resume:L,destroy:z,getFailureReason:()=>f}}var vfe="shaders-preview-key";function hfe(e,t){let s=new TextEncoder().encode(t),r=new Uint8Array(e.length);for(let o=0;o<e.length;o++)r[o]=e[o]^s[o%s.length];return r}function uq(e){try{let t=atob(e),s=new Uint8Array(t.length);for(let i=0;i<t.length;i++)s[i]=t.charCodeAt(i);let r=hfe(s,vfe),o=new TextDecoder().decode(r),a=JSON.parse(o);if(typeof a!="object"||a===null||Array.isArray(a))throw new Error("unexpected shape");return a}catch{throw new Error("Failed to decode preview definition: invalid data")}}var gfe="https://shaders.com",yfe="Unlock your Shaders Pro license",bfe="https://shaders.com/dashboard?pricing=true",xfe=new Set(["break","case","catch","class","const","continue","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield"]);function Afe(e,t){let s=e.replace(/[^A-Za-z0-9]+/g," ").trim();if(!s)return t;let r=s.split(/\s+/).map((a,i)=>i===0?a.charAt(0).toLowerCase()+a.slice(1):a.charAt(0).toUpperCase()+a.slice(1)).join(""),o=/^[A-Za-z_$]/.test(r)?r:`_${r}`;return xfe.has(o)?`_${o}`:o}function wfe(e){let t=new Set(["style"]),s=new Map;return e?.length&&e.forEach((r,o)=>{if(!r.targets?.length)return;let a=Afe(r.label,`keyProp${o}`),i=a,l=1;for(;t.has(i);)l++,i=`${a}${l}`;t.add(i),s.set(i,r)}),s}function o6(e,t){for(let s of t){if(s.id===e)return s;let r=s.children;if(r?.length){let o=o6(e,r);if(o)return o}}return null}function Tfe(e,t,s){if(t)for(let[r,o]of Object.entries(t)){let a=s.get(r);if(a)for(let i of a.targets??[]){let l=o6(i.component_id,e);l?.props&&i.prop in l.props&&(l.props[i.prop]=o)}}}async function Sfe(e,t){if(!t.shader&&!t.presetId||t.shader&&t.presetId)throw new Error("Exactly one of shader (preview token) or presetId must be provided");let s=t.apiBaseUrl||gfe,r=t.presetId&&t.version?`?version=${encodeURIComponent(t.version)}`:"",o=t.shader?`${s}/api/preview/shader/${encodeURIComponent(t.shader)}`:`${s}/api/preview/preset/${encodeURIComponent(t.presetId)}${r}`,a=await fetch(o);if(!a.ok)throw new Error(`Failed to fetch preview: ${a.status} ${a.statusText}`);let i=await a.json(),l=i.preset??i.shader;if(!l?.definition||typeof l.definition!="string")throw new Error("Preview response missing encoded definition");let c=uq(l.definition),d=Array.isArray(l.key_props)?l.key_props:null,u=wfe(d),p=new Map;for(let w of u.values())for(let P of w.targets??[]){let C=o6(P.component_id,c.components);C?.props&&P.prop in C.props&&p.set(`${P.component_id}:${P.prop}`,C.props[P.prop])}Tfe(c.components,t.configuration,u);let _=await r6(e,c,{isPreview:!0,enablePerformanceTracking:!0}),{overlay:f,savedPosition:v,parentEl:g}=Pfe(e),y=_.destroy.bind(_),x=_;return x.destroy=()=>{g&&v!==void 0&&(g.style.position=v),f.remove(),y()},x.setConfiguration=w=>{if(d?.length)for(let[P,C]of u){let k=Object.prototype.hasOwnProperty.call(w,P)&&w[P]!==void 0;for(let z of C.targets??[]){let U=k?w[P]:p.get(`${z.component_id}:${z.prop}`);U!==void 0&&_.update(z.component_id,{[z.prop]:U})}}},x}function Pfe(e){let t=e.parentElement,s;t&&getComputedStyle(t).position==="static"&&(s=t.style.position,t.style.position="relative");let r=document.createElement("a");return r.href=bfe,r.target="_blank",r.rel="noopener noreferrer",r.textContent=yfe,Object.assign(r.style,{position:"absolute",bottom:"8px",right:"12px",fontSize:"11px",fontFamily:"system-ui, -apple-system, sans-serif",color:"rgba(255, 255, 255, 0.5)",textDecoration:"none",zIndex:"10",pointerEvents:"auto",transition:"color 0.2s ease"}),r.addEventListener("mouseenter",()=>{r.style.color="rgba(255, 255, 255, 0.8)"}),r.addEventListener("mouseleave",()=>{r.style.color="rgba(255, 255, 255, 0.5)"}),t&&t.appendChild(r),{overlay:r,savedPosition:s,parentEl:t}}async function Cfe(e){if(typeof navigator>"u"||!navigator.gpu)return null;try{let t=await navigator.gpu.requestAdapter({powerPreference:e?.powerPreference??"high-performance"});return t?{device:await t.requestDevice({requiredFeatures:[...t.features]}),adapter:t}:null}catch(t){return rn("[shaders] createSharedDevice failed; callers should fall back to per-instance device:",t),null}}export{Sfe as createPreview,r6 as createShader,Cfe as createSharedDevice,Hy as getWebGPUSupport,l1 as isShadersDebug,Xy as isWebGPUSupported,d6 as setShadersDebug};
@@ -184,7 +184,7 @@ async function createShader(canvas, preset, options) {
184
184
  return;
185
185
  }
186
186
  if (renderer.getPerformanceStats().fps > 0) {
187
- state.telemetryCollector = startTelemetry(renderer, "3.2.468", options?.disableTelemetry || false, false);
187
+ state.telemetryCollector = startTelemetry(renderer, "3.2.469", options?.disableTelemetry || false, false);
188
188
  if (state.telemetryCollector) state.telemetryCollector.start();
189
189
  state.telemetryStartTimeout = null;
190
190
  } else state.telemetryStartTimeout = setTimeout(checkRendering, 500);
@@ -93,7 +93,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
93
93
  return;
94
94
  }
95
95
  if (rendererRef.current.getPerformanceStats().fps > 0) {
96
- telemetryCollectorRef.current = startTelemetry(rendererRef.current, "3.2.468", disableTelemetry, isPreview);
96
+ telemetryCollectorRef.current = startTelemetry(rendererRef.current, "3.2.469", disableTelemetry, isPreview);
97
97
  if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
98
98
  telemetryStartTimeoutRef.current = null;
99
99
  } else telemetryStartTimeoutRef.current = window.setTimeout(checkRendering, 500);