tosijs 1.5.3 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/by-path.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { XinObject, XinArray } from './xin-types';
2
+ export declare const id: () => string;
2
3
  type Part = string | string[];
3
4
  type PartArray = Part[];
4
5
  declare function pathParts(path: string | PartArray): PartArray;
package/dist/index.d.ts CHANGED
@@ -24,4 +24,4 @@ export { version } from './version';
24
24
  export { xin, boxed, observe, unobserve, touch, updates } from './xin';
25
25
  export { tosiBlueprint, tosiLoader, blueprint, Blueprint, blueprintLoader, BlueprintLoader, } from './blueprint-loader';
26
26
  export * from './xin-types';
27
- export { tosi, xinProxy, boxedProxy } from './xin-proxy';
27
+ export { tosi, tosiUnique, xinProxy, boxedProxy } from './xin-proxy';
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- (()=>{var{defineProperty:hE,getOwnPropertyNames:uM,getOwnPropertyDescriptor:nM}=Object,vM=Object.prototype.hasOwnProperty;function dM(E){return this[E]}var gM=(E)=>{var f=(If??=new WeakMap).get(E),M;if(f)return f;if(f=hE({},"__esModule",{value:!0}),E&&typeof E==="object"||typeof E==="function"){for(var L of uM(E))if(!vM.call(f,L))hE(f,L,{get:dM.bind(E,L),enumerable:!(M=nM(E,L))||M.enumerable})}return If.set(E,f),f},If;var iM=(E)=>E;function hM(E,f){this[E]=iM.bind(null,f)}var sM=(E,f)=>{for(var M in f)hE(E,M,{get:f[M],enumerable:!0,configurable:!0,set:hM.bind(f,M)})};var uL={};sM(uL,{xinValue:()=>Nf,xinSlot:()=>xM,xinProxy:()=>dE,xinPath:()=>_f,xin:()=>x,warnDeprecated:()=>C,version:()=>vE,vars:()=>BE,varDefault:()=>WE,validateAgainstConstraints:()=>bE,updates:()=>EE,unobserve:()=>m,touchElement:()=>cE,touch:()=>I,tosiValue:()=>T,tosiSlot:()=>jM,tosiSetValue:()=>Sf,tosiPath:()=>O,tosiLoader:()=>NM,tosiBlueprint:()=>_M,tosi:()=>KE,throttle:()=>fE,sync:()=>SM,svgElements:()=>_E,share:()=>BM,settings:()=>i,scrollListItemIntoView:()=>qM,onThemePreferencesChange:()=>HM,onStylesheetChange:()=>af,on:()=>LE,observe:()=>GE,mathML:()=>NE,makeComponent:()=>TE,invertLuminance:()=>LM,initVars:()=>MM,hotReload:()=>VM,getThemePreferences:()=>Ff,getListItem:()=>PE,getListInstance:()=>mE,getListBinding:()=>QE,getCssVar:()=>IE,elements:()=>W,deprecated:()=>xE,deleteListItem:()=>DM,debounce:()=>ZE,css:()=>s,boxedProxy:()=>AE,boxed:()=>B,blueprintLoader:()=>bM,blueprint:()=>PM,bindings:()=>zE,bindParts:()=>GM,bind:()=>c,StyleSheet:()=>EM,MoreMath:()=>lf,Component:()=>N,Color:()=>X,BlueprintLoader:()=>iE,Blueprint:()=>jE});function b(E){if(E==null||typeof E!=="object")return E;if(E instanceof Set)return new Set(E);else if(Array.isArray(E))return E.map(b);let f={};for(let M in E){let L=E[M];if(E!=null&&typeof E==="object")f[M]=b(L);else f[M]=L}return f}var oE="-xin-data",g=`.${oE}`,rE="-xin-event",pE=`.${rE}`,S=Symbol.for("xin-path"),n=Symbol.for("xin-value"),lE="xinObserve",tE="xinBind",eE="xinOn",YE=Symbol("list-binding"),t=Symbol("list-instance"),sE=new Map;function Bf(E,f){let M=sE.get(E);if(M===void 0)M=new Set,sE.set(E,M);M.add(f)}function yf(E){return sE.get(E)}var kf=new Set;function C(E,f){if(!kf.has(E))console.warn(f),kf.add(E)}function xE(E,f){let M=!1;return(...L)=>{if(!M)console.warn(f),M=!0;return E(...L)}}var O=(E)=>{return E&&E[S]||void 0};function T(E){if(typeof E==="object"&&E!==null){let f=E[n];return f!==void 0?f:E}return E}function Sf(E,f){if(O(E)===void 0)throw Error("tosiSetValue requires a xin or boxed proxy");E[n]=f}var _f=xE(O,"xinPath is deprecated. Use tosiPath instead."),Nf=xE(T,"xinValue is deprecated. Use tosiValue instead."),l=new WeakMap,u=new WeakMap;var e=(E)=>{let f=E.cloneNode();if(f instanceof Element){let M=u.get(E),L=l.get(E);if(M!=null)u.set(f,b(M));if(L!=null)l.set(f,b(L))}for(let M of Array.from(E instanceof HTMLTemplateElement?E.content.childNodes:E.childNodes))if(M instanceof Element||M instanceof DocumentFragment)f.appendChild(e(M));else f.appendChild(M.cloneNode());return f};var i={debug:!1,perf:!1};var oM=(E)=>{try{return JSON.stringify(E)}catch(f){return"{has circular references}"}},aE=(...E)=>Error(E.map(oM).join(" "));var rM=()=>new Date(parseInt("1000000000",36)+Date.now()).valueOf().toString(36).slice(1),pM=0,lM=()=>(parseInt("10000",36)+ ++pM).toString(36).slice(-5),tM=()=>rM()+lM(),ff=Symbol("delete"),cf=Symbol("new-object"),Ef=Symbol("automatic-index");function bf(E){if(E==="")return[];if(Array.isArray(E))return E;else{let f=[];while(E.length>0){let M=E.search(/\[[^\]]+\]/);if(M===-1){f.push(E.split("."));break}else{let L=E.slice(0,M);if(E=E.slice(M),L!=="")f.push(L.split("."));if(M=E.indexOf("]")+1,f.push(E.slice(1,M-1)),E.slice(M,M+1)===".")M+=1;E=E.slice(M)}}return f}}var v=new WeakMap;function uf(E,f){if(v.get(E)===void 0)v.set(E,{});if(v.get(E)[f]===void 0)v.get(E)[f]={};let M=v.get(E)[f];if(f==="_auto_")E.forEach((L,H)=>{if(L[Ef]===void 0)L[Ef]=tM();M[L[Ef]+""]=H});else E.forEach((L,H)=>{M[j(L,f)+""]=H});return M}function eM(E,f){if(v.get(E)===void 0||v.get(E)[f]===void 0)return uf(E,f);else return v.get(E)[f]}function aM(E,f,M){M=M+"";let L=eM(E,f)[M];if(L===void 0||j(E[L],f)+""!==M)L=uf(E,f)[M];return L}function EL(E,f,M){if(E[f]===void 0&&M!==void 0)E[f]=M;return E[f]}function nf(E,f,M,L){let H=f!==""?aM(E,f,M):M;if(L===ff)return E.splice(H,1),v.delete(E),Symbol("deleted");else if(L===cf){if(f===""&&E[H]===void 0)E[H]={}}else if(L!==void 0)if(H!==void 0)E[H]=L;else if(f!==""&&j(L,f)+""===M+"")E.push(L),H=E.length-1;else throw Error(`byIdPath insert failed at [${f}=${M}]`);return E[H]}function mf(E){if(!Array.isArray(E))throw aE("setByPath failed: expected array, found",E)}function Pf(E){if(E==null||!(E instanceof Object))throw aE("setByPath failed: expected Object, found",E)}function j(E,f){let M=bf(f),L=E,H,J,$,Z;for(H=0,J=M.length;L!==void 0&&H<J;H++){let Y=M[H];if(Array.isArray(Y))for($=0,Z=Y.length;L!==void 0&&$<Z;$++){let Q=Y[$];L=L[Q]}else if(L.length===0){if(L=L[Number(Y.slice(1))],Y[0]!=="=")return}else if(Y.includes("=")){let[Q,...G]=Y.split("=");L=nf(L,Q,G.join("="))}else $=parseInt(Y,10),L=L[$]}return L}function a(E,f,M){let L=E;if(f==="")throw Error("setByPath cannot be used to set the root object");let H=bf(f);while(L!=null&&H.length>0){let J=H.shift();if(typeof J==="string"){let $=J.indexOf("=");if($>-1){if($===0)Pf(L);else mf(L);let Z=J.slice(0,$),Y=J.slice($+1);if(L=nf(L,Z,Y,H.length>0?cf:M),H.length===0)return!0}else{mf(L);let Z=parseInt(J,10);if(H.length>0)L=L[Z];else{if(M!==ff){if(L[Z]===M)return!1;L[Z]=M}else L.splice(Z,1);return!0}}}else if(Array.isArray(J)&&J.length>0){Pf(L);while(J.length>0){let $=J.shift();if(J.length>0||H.length>0)L=EL(L,$,J.length>0?{}:[]);else{if(M!==ff){if(L[$]===M)return!1;L[$]=M}else{if(!Object.prototype.hasOwnProperty.call(L,$))return!1;delete L[$]}return!0}}}else throw Error(`setByPath failed, bad path ${f}`)}throw Error(`setByPath(${E}, ${f}, ${M}) failed`)}var R={},Mf=null,vf=(E)=>{Mf=E},VE=()=>{if(Mf===null)throw Error("xin proxy not initialized");return Mf},Lf=null,Hf=null,df=(E,f)=>{Lf=E,Hf=f},XE=()=>{if(Lf===null)throw Error("bind not initialized");return Lf},FE=()=>{if(Hf===null)throw Error("on not initialized");return Hf};var gf=Symbol("observer should be removed"),RE=[],$E=[],Jf=!1,Yf,$f;function fL(E,f,M,L){let H=yf(E);if(H===void 0)return[];let J=[];for(let $ of H){let Z=j(M,$);if(Z!==void 0)J.push(`${E}[${$}=${Z}]${L}`)}return J}class hf{description;test;callback;constructor(E,f){let M=typeof f==="string"?`"${f}"`:`function ${f.name}`,L;if(typeof E==="string")this.test=(H)=>typeof H==="string"&&H!==""&&(E.startsWith(H)||H.startsWith(E)),L=`test = "${E}"`;else if(E instanceof RegExp)this.test=E.test.bind(E),L=`test = "${E.toString()}"`;else if(E instanceof Function)this.test=E,L=`test = function ${E.name}`;else throw Error("expect listener test to be a string, RegExp, or test function");if(this.description=`${L}, ${M}`,typeof f==="function")this.callback=f;else throw Error("expect callback to be a path or function");RE.push(this)}}var EE=async()=>{if(Yf===void 0)return;await Yf},ML=()=>{if(i.perf)console.time("xin async update");let E=Array.from($E);$E.length=0,Jf=!1;for(let f of E)RE.filter((M)=>{let L;try{L=M.test(f)}catch(H){throw Error(`Listener ${M.description} threw "${H}" at "${f}"`)}if(L===gf)return m(M),!1;return L}).forEach((M)=>{let L;try{L=M.callback(f)}catch(H){console.error(`Listener ${M.description} threw "${H}" handling "${f}"`)}if(L===gf)m(M)});if(typeof $f==="function")$f();if(i.perf)console.timeEnd("xin async update")},I=(E)=>{let f=typeof E==="string"?E:O(E);if(f===void 0)throw console.error("touch was called on an invalid target",E),Error("touch was called on an invalid target");if(Jf===!1)Yf=new Promise((L)=>{$f=L}),Jf=setTimeout(ML);if($E.find((L)=>f.startsWith(L))==null)$E.push(f);let M=f.match(/^(.+)\[(\d+)\](.*)$/);if(M!==null){let[,L,H,J]=M,$=parseInt(H,10),Z=j(R,`${L}[${$}]`);if(Z!=null){let Y=fL(L,$,Z,J);for(let Q of Y)if($E.find((G)=>Q.startsWith(G))==null)$E.push(Q)}}},_=(E,f)=>{return new hf(E,f)},m=(E)=>{let f=RE.indexOf(E);if(f>-1)RE.splice(f,1);else throw Error("unobserve failed, listener not found")};var Zf=(E,f)=>{let M=new Event(f);E.dispatchEvent(M)},of=(E)=>{if(E instanceof HTMLInputElement)return E.type;else if(E instanceof HTMLSelectElement&&E.hasAttribute("multiple"))return"multi-select";else return"other"},rf=(E,f)=>{switch(of(E)){case"radio":E.checked=E.value===f;break;case"checkbox":E.checked=!!f;break;case"date":E.valueAsDate=new Date(f);break;case"multi-select":for(let M of Array.from(E.querySelectorAll("option")))M.selected=f[M.value];break;default:E.value=f}},pf=(E)=>{switch(of(E)){case"radio":{let f=E.parentElement?.querySelector(`[name="${E.name}"]:checked`);return f!=null?f.value:null}case"checkbox":return E.checked;case"date":return E.valueAsDate?.toISOString();case"multi-select":return Array.from(E.querySelectorAll("option")).reduce((f,M)=>{return f[M.value]=M.selected,f},{});default:return E.value}},{ResizeObserver:sf}=globalThis,wE=sf!=null?new sf((E)=>{for(let f of E){let M=f.target;Zf(M,"resize")}}):{observe(){},unobserve(){}},Qf=(E,f,M=!0)=>{if(E!=null&&f!=null)if(typeof f==="string")E.textContent=f;else if(Array.isArray(f))f.forEach((L)=>{E.append(L instanceof Node&&M?e(L):L)});else if(f instanceof Node)E.append(M?e(f):f);else throw Error("expect text content or document node")};var ZE=(E,f=250)=>{let M;return(...L)=>{if(M!==void 0)clearTimeout(M);M=setTimeout(()=>{E(...L)},f)}},fE=(E,f=250)=>{let M,L=Date.now()-f,H=!1;return(...J)=>{if(clearTimeout(M),M=setTimeout(()=>{E(...J),L=Date.now()},f),!H&&Date.now()-L>=f){H=!0;try{E(...J),L=Date.now()}finally{H=!1}}}};var zE={value:{toDOM:rf,fromDOM(E){return pf(E)}},text:{toDOM(E,f){E.textContent=f}},enabled:{toDOM(E,f){E.disabled=!f}},disabled:{toDOM(E,f){E.disabled=Boolean(f)}},list:{toDOM(E,f,M){QE(E,f,M).update(f)}}};function k(E){return E.replace(/[A-Z]/g,(f)=>{return`-${f.toLocaleLowerCase()}`})}function Gf(E){return E.replace(/-([a-z])/g,(f,M)=>{return M.toLocaleUpperCase()})}var LL=180/Math.PI,HL=Math.PI/180;function P(E,f,M){return M<E?NaN:f<E?E:f>M?M:f}function d(E,f,M,L=!0){if(L)M=P(0,M,1);return M*(f-E)+E}var lf={RADIANS_TO_DEGREES:LL,DEGREES_TO_RADIANS:HL,clamp:P,lerp:d};function IE(E,f=document.body){let M=getComputedStyle(f);if(E.endsWith(")")&&E.startsWith("var("))E=E.slice(4,-1);return M.getPropertyValue(E).trim()}var JL=(E,f,M)=>{return(0.299*E+0.587*f+0.114*M)/255},ME=(E)=>("00"+Math.round(Number(E)).toString(16)).slice(-2);class tf{h;s;l;constructor(E,f,M){E/=255,f/=255,M/=255;let L=Math.max(E,f,M),H=L-Math.min(E,f,M),J=H!==0?L===E?(f-M)/H:L===f?2+(M-E)/H:4+(E-f)/H:0;this.h=60*J<0?60*J+360:60*J,this.s=H!==0?L<=0.5?H/(2*L-H):H/(2-(2*L-H)):0,this.l=(2*L-H)/2}}var h=globalThis.document!==void 0?globalThis.document.createElement("span"):void 0;if(h)h.style.display="none";class X{r;g;b;a;static fromVar(E,f=document.body){return X.fromCss(IE(E,f))}static fromCss(E){let f=E.match(/^#([0-9a-fA-F]+)$/);if(f){let Y=f[1];if(Y.length===3)return new X(parseInt(Y[0]+Y[0],16),parseInt(Y[1]+Y[1],16),parseInt(Y[2]+Y[2],16));if(Y.length===4)return new X(parseInt(Y[0]+Y[0],16),parseInt(Y[1]+Y[1],16),parseInt(Y[2]+Y[2],16),parseInt(Y[3]+Y[3],16)/255);if(Y.length===6)return new X(parseInt(Y.slice(0,2),16),parseInt(Y.slice(2,4),16),parseInt(Y.slice(4,6),16));if(Y.length===8)return new X(parseInt(Y.slice(0,2),16),parseInt(Y.slice(2,4),16),parseInt(Y.slice(4,6),16),parseInt(Y.slice(6,8),16)/255)}let M=E;if(h instanceof HTMLSpanElement)h.style.color="black",h.style.color=E,document.body.appendChild(h),M=getComputedStyle(h).color,h.remove();let[L,H,J,$]=M.match(/[\d.]+/g)||["0","0","0","0"],Z=M.startsWith("color(srgb")?255:1;return new X(Number(L)*Z,Number(H)*Z,Number(J)*Z,$==null?1:Number($))}static fromHsl(E,f,M,L=1){let H,J,$;if(f===0)H=J=$=M;else{let Y=(U,V,w)=>{if(w<0)w+=1;if(w>1)w-=1;if(w<0.16666666666666666)return U+(V-U)*6*w;if(w<0.5)return V;if(w<0.6666666666666666)return U+(V-U)*(0.6666666666666666-w)*6;return U},Q=M<0.5?M*(1+f):M+f-M*f,G=2*M-Q,F=(E%360+360)%360/360;H=Y(G,Q,F+0.3333333333333333),J=Y(G,Q,F),$=Y(G,Q,F-0.3333333333333333)}let Z=new X(H*255,J*255,$*255,L);return Z.hslCached={h:(E%360+360)%360,s:f,l:M},Z}static black=new X(0,0,0);static white=new X(255,255,255);constructor(E,f,M,L=1){this.r=P(0,E,255),this.g=P(0,f,255),this.b=P(0,M,255),this.a=P(0,L,1)}get inverse(){return new X(255-this.r,255-this.g,255-this.b,this.a)}get inverseLuminance(){let{h:E,s:f,l:M}=this._hsl;return X.fromHsl(E,f,1-M,this.a)}get opaque(){return this.a===1?this:new X(this.r,this.g,this.b,1)}contrasting(E=1){return this.opaque.blend(this.brightness>0.5?X.black:X.white,E)}get rgb(){let{r:E,g:f,b:M}=this;return`rgb(${E.toFixed(0)},${f.toFixed(0)},${M.toFixed(0)})`}get rgba(){let{r:E,g:f,b:M,a:L}=this;return`rgba(${E.toFixed(0)},${f.toFixed(0)},${M.toFixed(0)},${L.toFixed(2)})`}get RGBA(){return[this.r/255,this.g/255,this.b/255,this.a]}get ARGB(){return[this.a,this.r/255,this.g/255,this.b/255]}hslCached;get _hsl(){if(this.hslCached==null)this.hslCached=new tf(this.r,this.g,this.b);return this.hslCached}get hsl(){let{h:E,s:f,l:M}=this._hsl;return`hsl(${E.toFixed(0)}deg ${(f*100).toFixed(0)}% ${(M*100).toFixed(0)}%)`}get hsla(){let{h:E,s:f,l:M}=this._hsl;return`hsl(${E.toFixed(0)}deg ${(f*100).toFixed(0)}% ${(M*100).toFixed(0)}% / ${(this.a*100).toFixed(0)}%)`}get mono(){let E=this.brightness*255;return new X(E,E,E)}get brightness(){return JL(this.r,this.g,this.b)}get html(){return this.toString()}toString(){return this.a===1?"#"+ME(this.r)+ME(this.g)+ME(this.b):"#"+ME(this.r)+ME(this.g)+ME(this.b)+ME(Math.floor(255*this.a))}brighten(E){let{h:f,s:M,l:L}=this._hsl,H=P(0,L+E*(1-L),1);return X.fromHsl(f,M,H,this.a)}darken(E){let{h:f,s:M,l:L}=this._hsl,H=P(0,L*(1-E),1);return X.fromHsl(f,M,H,this.a)}saturate(E){let{h:f,s:M,l:L}=this._hsl,H=P(0,M+E*(1-M),1);return X.fromHsl(f,H,L,this.a)}desaturate(E){let{h:f,s:M,l:L}=this._hsl,H=P(0,M*(1-E),1);return X.fromHsl(f,H,L,this.a)}rotate(E){let{h:f,s:M,l:L}=this._hsl,H=(f+360+E)%360;return X.fromHsl(H,M,L,this.a)}opacity(E){let{h:f,s:M,l:L}=this._hsl;return X.fromHsl(f,M,L,E)}swatch(){return console.log(`%c %c ${this.html}, ${this.rgba}`,`background-color: ${this.html}`,"background-color: transparent"),this}blend(E,f){return new X(d(this.r,E.r,f),d(this.g,E.g,f),d(this.b,E.b,f),d(this.a,E.a,f))}static blendHue(E,f,M){let L=(f-E+720)%360;if(L<180)return E+M*L;else return E-(360-L)*M}mix(E,f){let M=this._hsl,L=E._hsl;return X.fromHsl(M.s===0?L.h:L.s===0?M.h:X.blendHue(M.h,L.h,f),d(M.s,L.s,f),d(M.l,L.l,f),d(this.a,E.a,f))}colorMix(E,f){return X.fromCss(`color-mix(in hsl, ${this.html}, ${E.html} ${(f*100).toFixed(0)}%)`)}static computedColorStylesheet=null;static computedColors=new Map;static recomputeQueued=!1;static registerComputedColor(E,f,M,L){if(!X.computedColors.has(E))X.computedColors.set(E,{varName:f,scale:M,method:L}),X.queueRecompute()}static queueRecompute(){if(X.recomputeQueued)return;X.recomputeQueued=!0,queueMicrotask(()=>{X.recomputeQueued=!1,X.recomputeColors()})}static recomputeColors(){if(X.computedColors.size===0)return;let E=[];for(let[M,{varName:L,scale:H,method:J}]of X.computedColors)try{let $=X.fromVar(L),Z;switch(J){case"b":Z=H>0?$.brighten(H):$.darken(-H);break;case"s":Z=H>0?$.saturate(H):$.desaturate(-H);break;case"h":Z=$.rotate(H*100);break;case"o":Z=$.opacity(H);break;default:continue}E.push(` ${M}: ${Z.rgba};`)}catch($){}if(E.length===0)return;let f=`:root {
1
+ (()=>{var{defineProperty:iE,getOwnPropertyNames:vf,getOwnPropertyDescriptor:gf}=Object,df=Object.prototype.hasOwnProperty;function hf(E){return this[E]}var nf=(E)=>{var M=(BM??=new WeakMap).get(E),f;if(M)return M;if(M=iE({},"__esModule",{value:!0}),E&&typeof E==="object"||typeof E==="function"){for(var L of vf(E))if(!df.call(M,L))iE(M,L,{get:hf.bind(E,L),enumerable:!(f=gf(E,L))||f.enumerable})}return BM.set(E,M),M},BM;var sf=(E)=>E;function pf(E,M){this[E]=sf.bind(null,M)}var rf=(E,M)=>{for(var f in M)iE(E,f,{get:M[f],enumerable:!0,configurable:!0,set:pf.bind(M,f)})};var gL={};rf(gL,{xinValue:()=>PM,xinSlot:()=>Rf,xinProxy:()=>dE,xinPath:()=>yM,xin:()=>V,warnDeprecated:()=>R,version:()=>gE,vars:()=>SE,varDefault:()=>UE,validateAgainstConstraints:()=>bE,updates:()=>EE,unobserve:()=>P,touchElement:()=>cE,touch:()=>B,tosiValue:()=>C,tosiUnique:()=>Nf,tosiSlot:()=>jf,tosiSetValue:()=>NM,tosiPath:()=>O,tosiLoader:()=>Pf,tosiBlueprint:()=>yf,tosi:()=>AE,throttle:()=>ME,sync:()=>xf,svgElements:()=>NE,share:()=>Sf,settings:()=>n,scrollListItemIntoView:()=>qf,onThemePreferencesChange:()=>Hf,onStylesheetChange:()=>eM,on:()=>LE,observe:()=>GE,mathML:()=>yE,makeComponent:()=>CE,invertLuminance:()=>Lf,initVars:()=>ff,hotReload:()=>Tf,getThemePreferences:()=>XM,getListItem:()=>mE,getListInstance:()=>PE,getListBinding:()=>QE,getCssVar:()=>kE,elements:()=>U,deprecated:()=>RE,deleteListItem:()=>Kf,debounce:()=>ZE,css:()=>s,boxedProxy:()=>wE,boxed:()=>k,blueprintLoader:()=>uf,blueprint:()=>cf,bindings:()=>WE,bindParts:()=>Gf,bind:()=>c,StyleSheet:()=>Ef,MoreMath:()=>lM,Component:()=>y,Color:()=>F,BlueprintLoader:()=>nE,Blueprint:()=>jE});function b(E){if(E==null||typeof E!=="object")return E;if(E instanceof Set)return new Set(E);else if(Array.isArray(E))return E.map(b);let M={};for(let f in E){let L=E[f];if(E!=null&&typeof E==="object")M[f]=b(L);else M[f]=L}return M}var pE="-xin-data",h=`.${pE}`,rE="-xin-event",oE=`.${rE}`,x=Symbol.for("xin-path"),v=Symbol.for("xin-value"),lE="xinObserve",aE="xinBind",tE="xinOn",$E=Symbol("list-binding"),a=Symbol("list-instance"),sE=new Map;function _M(E,M){let f=sE.get(E);if(f===void 0)f=new Set,sE.set(E,f);f.add(M)}function xM(E){return sE.get(E)}var SM=new Set;function R(E,M){if(!SM.has(E))console.warn(M),SM.add(E)}function RE(E,M){let f=!1;return(...L)=>{if(!f)console.warn(M),f=!0;return E(...L)}}var O=(E)=>{return E&&E[x]||void 0};function C(E){if(typeof E==="object"&&E!==null){let M=E[v];return M!==void 0?M:E}return E}function NM(E,M){if(O(E)===void 0)throw Error("tosiSetValue requires a xin or boxed proxy");E[v]=M}var yM=RE(O,"xinPath is deprecated. Use tosiPath instead."),PM=RE(C,"xinValue is deprecated. Use tosiValue instead."),l=new WeakMap,u=new WeakMap;var t=(E)=>{let M=E.cloneNode();if(M instanceof Element){let f=u.get(E),L=l.get(E);if(f!=null)u.set(M,b(f));if(L!=null)l.set(M,b(L))}for(let f of Array.from(E instanceof HTMLTemplateElement?E.content.childNodes:E.childNodes))if(f instanceof Element||f instanceof DocumentFragment)M.appendChild(t(f));else M.appendChild(f.cloneNode());return M};var n={debug:!1,perf:!1};var of=(E)=>{try{return JSON.stringify(E)}catch(M){return"{has circular references}"}},eE=(...E)=>Error(E.map(of).join(" "));var lf=()=>new Date(parseInt("1000000000",36)+Date.now()).valueOf().toString(36).slice(1),af=0,tf=()=>(parseInt("10000",36)+ ++af).toString(36).slice(-5),fM=()=>lf()+tf(),MM=Symbol("delete"),bM=Symbol("new-object"),EM=Symbol("automatic-index");function uM(E){if(E==="")return[];if(Array.isArray(E))return E;else{let M=[];while(E.length>0){let f=E.search(/\[[^\]]+\]/);if(f===-1){M.push(E.split("."));break}else{let L=E.slice(0,f);if(E=E.slice(f),L!=="")M.push(L.split("."));if(f=E.indexOf("]")+1,M.push(E.slice(1,f-1)),E.slice(f,f+1)===".")f+=1;E=E.slice(f)}}return M}}var g=new WeakMap;function vM(E,M){if(g.get(E)===void 0)g.set(E,{});if(g.get(E)[M]===void 0)g.get(E)[M]={};let f=g.get(E)[M];if(M==="_auto_")E.forEach((L,H)=>{if(L[EM]===void 0)L[EM]=fM();f[L[EM]+""]=H});else E.forEach((L,H)=>{f[j(L,M)+""]=H});return f}function ef(E,M){if(g.get(E)===void 0||g.get(E)[M]===void 0)return vM(E,M);else return g.get(E)[M]}function EL(E,M,f){f=f+"";let L=ef(E,M)[f];if(L===void 0||j(E[L],M)+""!==f)L=vM(E,M)[f];return L}function ML(E,M,f){if(E[M]===void 0&&f!==void 0)E[M]=f;return E[M]}function gM(E,M,f,L){let H=M!==""?EL(E,M,f):f;if(L===MM)return E.splice(H,1),g.delete(E),Symbol("deleted");else if(L===bM){if(M===""&&E[H]===void 0)E[H]={}}else if(L!==void 0)if(H!==void 0)E[H]=L;else if(M!==""&&j(L,M)+""===f+"")E.push(L),H=E.length-1;else throw Error(`byIdPath insert failed at [${M}=${f}]`);return E[H]}function mM(E){if(!Array.isArray(E))throw eE("setByPath failed: expected array, found",E)}function cM(E){if(E==null||!(E instanceof Object))throw eE("setByPath failed: expected Object, found",E)}function j(E,M){let f=uM(M),L=E,H,J,Y,Z;for(H=0,J=f.length;L!==void 0&&H<J;H++){let $=f[H];if(Array.isArray($))for(Y=0,Z=$.length;L!==void 0&&Y<Z;Y++){let Q=$[Y];L=L[Q]}else if(L.length===0){if(L=L[Number($.slice(1))],$[0]!=="=")return}else if($.includes("=")){let[Q,...G]=$.split("=");L=gM(L,Q,G.join("="))}else Y=parseInt($,10),L=L[Y]}return L}function e(E,M,f){let L=E;if(M==="")throw Error("setByPath cannot be used to set the root object");let H=uM(M);while(L!=null&&H.length>0){let J=H.shift();if(typeof J==="string"){let Y=J.indexOf("=");if(Y>-1){if(Y===0)cM(L);else mM(L);let Z=J.slice(0,Y),$=J.slice(Y+1);if(L=gM(L,Z,$,H.length>0?bM:f),H.length===0)return!0}else{mM(L);let Z=parseInt(J,10);if(H.length>0)L=L[Z];else{if(f!==MM){if(L[Z]===f)return!1;L[Z]=f}else L.splice(Z,1);return!0}}}else if(Array.isArray(J)&&J.length>0){cM(L);while(J.length>0){let Y=J.shift();if(J.length>0||H.length>0)L=ML(L,Y,J.length>0?{}:[]);else{if(f!==MM){if(L[Y]===f)return!1;L[Y]=f}else{if(!Object.prototype.hasOwnProperty.call(L,Y))return!1;delete L[Y]}return!0}}}else throw Error(`setByPath failed, bad path ${M}`)}throw Error(`setByPath(${E}, ${M}, ${f}) failed`)}var I={},LM=null,dM=(E)=>{LM=E},TE=()=>{if(LM===null)throw Error("xin proxy not initialized");return LM},HM=null,JM=null,hM=(E,M)=>{HM=E,JM=M},FE=()=>{if(HM===null)throw Error("bind not initialized");return HM},zE=()=>{if(JM===null)throw Error("on not initialized");return JM};var nM=Symbol("observer should be removed"),IE=[],YE=[],$M=!1,YM,ZM;function fL(E,M,f,L){let H=xM(E);if(H===void 0)return[];let J=[];for(let Y of H){let Z=j(f,Y);if(Z!==void 0)J.push(`${E}[${Y}=${Z}]${L}`)}return J}class iM{description;test;callback;constructor(E,M){let f=typeof M==="string"?`"${M}"`:`function ${M.name}`,L;if(typeof E==="string")this.test=(H)=>typeof H==="string"&&H!==""&&(E.startsWith(H)||H.startsWith(E)),L=`test = "${E}"`;else if(E instanceof RegExp)this.test=E.test.bind(E),L=`test = "${E.toString()}"`;else if(E instanceof Function)this.test=E,L=`test = function ${E.name}`;else throw Error("expect listener test to be a string, RegExp, or test function");if(this.description=`${L}, ${f}`,typeof M==="function")this.callback=M;else throw Error("expect callback to be a path or function");IE.push(this)}}var EE=async()=>{if(YM===void 0)return;await YM},LL=()=>{if(n.perf)console.time("xin async update");let E=Array.from(YE);YE.length=0,$M=!1;for(let M of E)IE.filter((f)=>{let L;try{L=f.test(M)}catch(H){throw Error(`Listener ${f.description} threw "${H}" at "${M}"`)}if(L===nM)return P(f),!1;return L}).forEach((f)=>{let L;try{L=f.callback(M)}catch(H){console.error(`Listener ${f.description} threw "${H}" handling "${M}"`)}if(L===nM)P(f)});if(typeof ZM==="function")ZM();if(n.perf)console.timeEnd("xin async update")},B=(E)=>{let M=typeof E==="string"?E:O(E);if(M===void 0)throw console.error("touch was called on an invalid target",E),Error("touch was called on an invalid target");if($M===!1)YM=new Promise((L)=>{ZM=L}),$M=setTimeout(LL);if(YE.find((L)=>M.startsWith(L))==null)YE.push(M);let f=M.match(/^(.+)\[(\d+)\](.*)$/);if(f!==null){let[,L,H,J]=f,Y=parseInt(H,10),Z=j(I,`${L}[${Y}]`);if(Z!=null){let $=fL(L,Y,Z,J);for(let Q of $)if(YE.find((G)=>Q.startsWith(G))==null)YE.push(Q)}}},N=(E,M)=>{return new iM(E,M)},P=(E)=>{let M=IE.indexOf(E);if(M>-1)IE.splice(M,1);else throw Error("unobserve failed, listener not found")};var QM=(E,M)=>{let f=new Event(M);E.dispatchEvent(f)},pM=(E)=>{if(E instanceof HTMLInputElement)return E.type;else if(E instanceof HTMLSelectElement&&E.hasAttribute("multiple"))return"multi-select";else return"other"},rM=(E,M)=>{switch(pM(E)){case"radio":E.checked=E.value===M;break;case"checkbox":E.checked=!!M;break;case"date":E.valueAsDate=new Date(M);break;case"multi-select":for(let f of Array.from(E.querySelectorAll("option")))f.selected=M[f.value];break;default:E.value=M}},oM=(E)=>{switch(pM(E)){case"radio":{let M=E.parentElement?.querySelector(`[name="${E.name}"]:checked`);return M!=null?M.value:null}case"checkbox":return E.checked;case"date":return E.valueAsDate?.toISOString();case"multi-select":return Array.from(E.querySelectorAll("option")).reduce((M,f)=>{return M[f.value]=f.selected,M},{});default:return E.value}},{ResizeObserver:sM}=globalThis,XE=sM!=null?new sM((E)=>{for(let M of E){let f=M.target;QM(f,"resize")}}):{observe(){},unobserve(){}},GM=(E,M,f=!0)=>{if(E!=null&&M!=null)if(typeof M==="string")E.textContent=M;else if(Array.isArray(M))M.forEach((L)=>{E.append(L instanceof Node&&f?t(L):L)});else if(M instanceof Node)E.append(f?t(M):M);else throw Error("expect text content or document node")};var ZE=(E,M=250)=>{let f;return(...L)=>{if(f!==void 0)clearTimeout(f);f=setTimeout(()=>{E(...L)},M)}},ME=(E,M=250)=>{let f,L=Date.now()-M,H=!1;return(...J)=>{if(clearTimeout(f),f=setTimeout(()=>{E(...J),L=Date.now()},M),!H&&Date.now()-L>=M){H=!0;try{E(...J),L=Date.now()}finally{H=!1}}}};var WE={value:{toDOM:rM,fromDOM(E){return oM(E)}},text:{toDOM(E,M){E.textContent=M}},enabled:{toDOM(E,M){E.disabled=!M}},disabled:{toDOM(E,M){E.disabled=Boolean(M)}},list:{toDOM(E,M,f){QE(E,M,f).update(M)}}};function S(E){return E.replace(/[A-Z]/g,(M)=>{return`-${M.toLocaleLowerCase()}`})}function FM(E){return E.replace(/-([a-z])/g,(M,f)=>{return f.toLocaleUpperCase()})}var HL=180/Math.PI,JL=Math.PI/180;function m(E,M,f){return f<E?NaN:M<E?E:M>f?f:M}function d(E,M,f,L=!0){if(L)f=m(0,f,1);return f*(M-E)+E}var lM={RADIANS_TO_DEGREES:HL,DEGREES_TO_RADIANS:JL,clamp:m,lerp:d};function kE(E,M=document.body){let f=getComputedStyle(M);if(E.endsWith(")")&&E.startsWith("var("))E=E.slice(4,-1);return f.getPropertyValue(E).trim()}var $L=(E,M,f)=>{return(0.299*E+0.587*M+0.114*f)/255},fE=(E)=>("00"+Math.round(Number(E)).toString(16)).slice(-2);class aM{h;s;l;constructor(E,M,f){E/=255,M/=255,f/=255;let L=Math.max(E,M,f),H=L-Math.min(E,M,f),J=H!==0?L===E?(M-f)/H:L===M?2+(f-E)/H:4+(E-M)/H:0;this.h=60*J<0?60*J+360:60*J,this.s=H!==0?L<=0.5?H/(2*L-H):H/(2-(2*L-H)):0,this.l=(2*L-H)/2}}var i=globalThis.document!==void 0?globalThis.document.createElement("span"):void 0;if(i)i.style.display="none";class F{r;g;b;a;static fromVar(E,M=document.body){return F.fromCss(kE(E,M))}static fromCss(E){let M=E.match(/^#([0-9a-fA-F]+)$/);if(M){let $=M[1];if($.length===3)return new F(parseInt($[0]+$[0],16),parseInt($[1]+$[1],16),parseInt($[2]+$[2],16));if($.length===4)return new F(parseInt($[0]+$[0],16),parseInt($[1]+$[1],16),parseInt($[2]+$[2],16),parseInt($[3]+$[3],16)/255);if($.length===6)return new F(parseInt($.slice(0,2),16),parseInt($.slice(2,4),16),parseInt($.slice(4,6),16));if($.length===8)return new F(parseInt($.slice(0,2),16),parseInt($.slice(2,4),16),parseInt($.slice(4,6),16),parseInt($.slice(6,8),16)/255)}let f=E;if(i instanceof HTMLSpanElement)i.style.color="black",i.style.color=E,document.body.appendChild(i),f=getComputedStyle(i).color,i.remove();let[L,H,J,Y]=f.match(/[\d.]+/g)||["0","0","0","0"],Z=f.startsWith("color(srgb")?255:1;return new F(Number(L)*Z,Number(H)*Z,Number(J)*Z,Y==null?1:Number(Y))}static fromHsl(E,M,f,L=1){let H,J,Y;if(M===0)H=J=Y=f;else{let $=(D,T,X)=>{if(X<0)X+=1;if(X>1)X-=1;if(X<0.16666666666666666)return D+(T-D)*6*X;if(X<0.5)return T;if(X<0.6666666666666666)return D+(T-D)*(0.6666666666666666-X)*6;return D},Q=f<0.5?f*(1+M):f+M-f*M,G=2*f-Q,z=(E%360+360)%360/360;H=$(G,Q,z+0.3333333333333333),J=$(G,Q,z),Y=$(G,Q,z-0.3333333333333333)}let Z=new F(H*255,J*255,Y*255,L);return Z.hslCached={h:(E%360+360)%360,s:M,l:f},Z}static black=new F(0,0,0);static white=new F(255,255,255);constructor(E,M,f,L=1){this.r=m(0,E,255),this.g=m(0,M,255),this.b=m(0,f,255),this.a=m(0,L,1)}get inverse(){return new F(255-this.r,255-this.g,255-this.b,this.a)}get inverseLuminance(){let{h:E,s:M,l:f}=this._hsl;return F.fromHsl(E,M,1-f,this.a)}get opaque(){return this.a===1?this:new F(this.r,this.g,this.b,1)}contrasting(E=1){return this.opaque.blend(this.brightness>0.5?F.black:F.white,E)}get rgb(){let{r:E,g:M,b:f}=this;return`rgb(${E.toFixed(0)},${M.toFixed(0)},${f.toFixed(0)})`}get rgba(){let{r:E,g:M,b:f,a:L}=this;return`rgba(${E.toFixed(0)},${M.toFixed(0)},${f.toFixed(0)},${L.toFixed(2)})`}get RGBA(){return[this.r/255,this.g/255,this.b/255,this.a]}get ARGB(){return[this.a,this.r/255,this.g/255,this.b/255]}hslCached;get _hsl(){if(this.hslCached==null)this.hslCached=new aM(this.r,this.g,this.b);return this.hslCached}get hsl(){let{h:E,s:M,l:f}=this._hsl;return`hsl(${E.toFixed(0)}deg ${(M*100).toFixed(0)}% ${(f*100).toFixed(0)}%)`}get hsla(){let{h:E,s:M,l:f}=this._hsl;return`hsl(${E.toFixed(0)}deg ${(M*100).toFixed(0)}% ${(f*100).toFixed(0)}% / ${(this.a*100).toFixed(0)}%)`}get mono(){let E=this.brightness*255;return new F(E,E,E)}get brightness(){return $L(this.r,this.g,this.b)}get html(){return this.toString()}toString(){return this.a===1?"#"+fE(this.r)+fE(this.g)+fE(this.b):"#"+fE(this.r)+fE(this.g)+fE(this.b)+fE(Math.floor(255*this.a))}brighten(E){let{h:M,s:f,l:L}=this._hsl,H=m(0,L+E*(1-L),1);return F.fromHsl(M,f,H,this.a)}darken(E){let{h:M,s:f,l:L}=this._hsl,H=m(0,L*(1-E),1);return F.fromHsl(M,f,H,this.a)}saturate(E){let{h:M,s:f,l:L}=this._hsl,H=m(0,f+E*(1-f),1);return F.fromHsl(M,H,L,this.a)}desaturate(E){let{h:M,s:f,l:L}=this._hsl,H=m(0,f*(1-E),1);return F.fromHsl(M,H,L,this.a)}rotate(E){let{h:M,s:f,l:L}=this._hsl,H=(M+360+E)%360;return F.fromHsl(H,f,L,this.a)}opacity(E){let{h:M,s:f,l:L}=this._hsl;return F.fromHsl(M,f,L,E)}swatch(){return console.log(`%c %c ${this.html}, ${this.rgba}`,`background-color: ${this.html}`,"background-color: transparent"),this}blend(E,M){return new F(d(this.r,E.r,M),d(this.g,E.g,M),d(this.b,E.b,M),d(this.a,E.a,M))}static blendHue(E,M,f){let L=(M-E+720)%360;if(L<180)return E+f*L;else return E-(360-L)*f}mix(E,M){let f=this._hsl,L=E._hsl;return F.fromHsl(f.s===0?L.h:L.s===0?f.h:F.blendHue(f.h,L.h,M),d(f.s,L.s,M),d(f.l,L.l,M),d(this.a,E.a,M))}colorMix(E,M){return F.fromCss(`color-mix(in hsl, ${this.html}, ${E.html} ${(M*100).toFixed(0)}%)`)}static computedColorStylesheet=null;static computedColors=new Map;static recomputeQueued=!1;static registerComputedColor(E,M,f,L){if(!F.computedColors.has(E))F.computedColors.set(E,{varName:M,scale:f,method:L}),F.queueRecompute()}static queueRecompute(){if(F.recomputeQueued)return;F.recomputeQueued=!0,queueMicrotask(()=>{F.recomputeQueued=!1,F.recomputeColors()})}static recomputeColors(){if(F.computedColors.size===0)return;let E=[];for(let[f,{varName:L,scale:H,method:J}]of F.computedColors)try{let Y=F.fromVar(L),Z;switch(J){case"b":Z=H>0?Y.brighten(H):Y.darken(-H);break;case"s":Z=H>0?Y.saturate(H):Y.desaturate(-H);break;case"h":Z=Y.rotate(H*100);break;case"o":Z=Y.opacity(H);break;default:continue}E.push(` ${f}: ${Z.rgba};`)}catch(Y){}if(E.length===0)return;let M=`:root {
2
2
  ${E.join(`
3
3
  `)}
4
- }`;if(X.computedColorStylesheet===null)X.computedColorStylesheet=document.createElement("style"),X.computedColorStylesheet.id="tosijs-computed-colors",document.head.append(X.computedColorStylesheet);X.computedColorStylesheet.textContent=f}}var kE=new Set,ef=!1;function YL(){if(!ef)ef=!0,kE.add(()=>X.queueRecompute())}function af(E){return kE.add(E),()=>kE.delete(E)}function $L(){YL();for(let E of kE)E()}function EM(E,f){let M=T(f),L=W.style(s(M));L.id=E,document.head.append(L);let H=O(f);if(H!==void 0)GE(H,()=>{L.textContent=s(T(f)),$L()})}var ZL=/^(animation-iteration-count|column-count|flex(-grow|-shrink)?|font-weight|line-height|opacity|order|orphans|scale|tab-size|widows|z-index|zoom)$/,Xf=(E,f)=>{if(typeof f==="number"&&!ZL.test(E))f=`${f}px`;if(E.startsWith("_"))if(E.startsWith("__"))E="--"+E.substring(2),f=`var(${E}-default, ${f})`;else E="--"+E.substring(1);return{prop:E,value:String(f)}},QL=(E,f,M)=>{if(M===void 0)return"";if(M instanceof X)M=M.html;let L=Xf(f,M);return`${E} ${L.prop}: ${L.value};`},fM=(E,f,M="")=>{let L=k(E);if(typeof f==="object"&&!(f instanceof X)){let H=Object.keys(f).map((J)=>fM(J,f[J],`${M} `)).join(`
5
- `);return`${M} ${E} {
4
+ }`;if(F.computedColorStylesheet===null)F.computedColorStylesheet=document.createElement("style"),F.computedColorStylesheet.id="tosijs-computed-colors",document.head.append(F.computedColorStylesheet);F.computedColorStylesheet.textContent=M}}var BE=new Set,tM=!1;function YL(){if(!tM)tM=!0,BE.add(()=>F.queueRecompute())}function eM(E){return BE.add(E),()=>BE.delete(E)}function ZL(){YL();for(let E of BE)E()}function Ef(E,M){let f=C(M),L=U.style(s(f));L.id=E,document.head.append(L);let H=O(M);if(H!==void 0)GE(H,()=>{L.textContent=s(C(M)),ZL()})}var QL=/^(animation-iteration-count|column-count|flex(-grow|-shrink)?|font-weight|line-height|opacity|order|orphans|scale|tab-size|widows|z-index|zoom)$/,zM=(E,M)=>{if(typeof M==="number"&&!QL.test(E))M=`${M}px`;if(E.startsWith("_"))if(E.startsWith("__"))E="--"+E.substring(2),M=`var(${E}-default, ${M})`;else E="--"+E.substring(1);return{prop:E,value:String(M)}},GL=(E,M,f)=>{if(f===void 0)return"";if(f instanceof F)f=f.html;let L=zM(M,f);return`${E} ${L.prop}: ${L.value};`},Mf=(E,M,f="")=>{let L=S(E);if(typeof M==="object"&&!(M instanceof F)){let H=Object.keys(M).map((J)=>Mf(J,M[J],`${f} `)).join(`
5
+ `);return`${f} ${E} {
6
6
  ${H}
7
- ${M} }`}else return QL(M,L,f)},s=(E,f="")=>{return Object.keys(E).map((L)=>{let H=E[L];if(typeof H==="string"){if(L==="@import")return`@import url('${H}');`;throw Error("top-level string value only allowed for `@import`")}let J=Object.keys(H).map(($)=>fM($,H[$])).join(`
8
- `);return`${f}${L} {
7
+ ${f} }`}else return GL(f,L,M)},s=(E,M="")=>{return Object.keys(E).map((L)=>{let H=E[L];if(typeof H==="string"){if(L==="@import")return`@import url('${H}');`;throw Error("top-level string value only allowed for `@import`")}let J=Object.keys(H).map((Y)=>Mf(Y,H[Y])).join(`
8
+ `);return`${M}${L} {
9
9
  ${J}
10
10
  }`}).join(`
11
11
 
12
- `)},MM=(E)=>{C("initVars","initVars is deprecated. Just use _ and __ prefixes instead.");let f={};for(let M of Object.keys(E)){let L=E[M],H=k(M);f[`--${H}`]=typeof L==="number"&&L!==0?String(L)+"px":L}return f},LM=(E)=>{let f={};for(let M of Object.keys(E)){let L=E[M];if(L instanceof X)f[M]=L.inverseLuminance;else if(typeof L==="string"&&L.match(/^(#[0-9a-fA-F]{3}|rgba?\(|hsla?\()/))f[M]=X.fromCss(L).inverseLuminance}return f},WE=new Proxy({},{get(E,f){if(E[f]===void 0){let M="--"+k(f);E[f]=(L)=>`var(${M}, ${L})`}return E[f]}}),BE=new Proxy({},{get(E,f){if(f==="default")return WE;if(E[f]==null){f=k(f);let[,M,,L,H,J]=f.match(/^([-\w]*?)((_)?(\d+)(\w?))?$/)||["",f],$=`--${M}`;if(H!=null){let Z=L==null?Number(H)/100:-Number(H)/100;switch(J){case"b":case"s":case"h":case"o":{let Y=`--${f}`;X.registerComputedColor(Y,$,Z,J),E[f]=`var(${Y})`}break;case"":E[f]=`calc(var(${$}) * ${Z})`;break;default:throw console.error(J),Error(`Unrecognized method ${J} for css variable ${$}`)}}else E[f]=`var(${$})`}return E[f]}});function Ff(){let E=(f)=>typeof matchMedia<"u"&&matchMedia(f).matches;return{colorScheme:E("(prefers-color-scheme: dark)")?"dark":"light",contrast:E("(prefers-contrast: more)")?"more":E("(prefers-contrast: less)")?"less":E("(prefers-contrast: custom)")?"custom":"no-preference",reducedMotion:E("(prefers-reduced-motion: reduce)"),reducedTransparency:E("(prefers-reduced-transparency: reduce)"),forcedColors:E("(forced-colors: active)")}}function HM(E){if(typeof matchMedia>"u")return()=>{};let f=["(prefers-color-scheme: dark)","(prefers-contrast: more)","(prefers-contrast: less)","(prefers-contrast: custom)","(prefers-reduced-motion: reduce)","(prefers-reduced-transparency: reduce)","(forced-colors: active)"],M=()=>E(Ff()),L=f.map((H)=>matchMedia(H));for(let H of L)H.addEventListener("change",M);return()=>{for(let H of L)H.removeEventListener("change",M)}}var JM="http://www.w3.org/1998/Math/MathML",YM="http://www.w3.org/2000/svg";var yE={},ZM=(E,f,M)=>{let L=Xf(k(f),M);if(L.prop.startsWith("--"))E.style.setProperty(L.prop,L.value);else E.style[f]=L.value},GL=(E)=>{return{toDOM(f,M){ZM(f,E,M)}}},QM=(E,f,M)=>{if(f==="style")if(typeof M==="object")for(let L of Object.keys(M))if(O(M[L]))c(E,M[L],GL(L));else ZM(E,L,M[L]);else E.setAttribute("style",M);else{let L=k(f),H=E.constructor.observedAttributes;if(H?.includes(f)||H?.includes(L))if(typeof M==="boolean")M?E.setAttribute(L,""):E.removeAttribute(L);else E.setAttribute(L,M);else if(E[f]!==void 0){let{MathMLElement:$}=globalThis;if(E instanceof SVGElement||$!==void 0&&E instanceof $)E.setAttribute(f,M);else E[f]=M}else if(L==="class")M.split(" ").forEach(($)=>{E.classList.add($)});else if(E[L]!==void 0)E[L]=M;else if(typeof M==="boolean")M?E.setAttribute(L,""):E.removeAttribute(L);else E.setAttribute(L,M)}},wf={},XL=(E)=>{if(!wf[E])wf[E]={toDOM(f,M){QM(f,E,M)}};return wf[E]},SE=(E,f,M)=>{if(f==="apply")M(E);else if(f.match(/^on[A-Z]/)!=null){let L=f.substring(2).toLowerCase();LE(E,L,M)}else if(f==="bind")if((typeof M.binding==="string"?zE[M.binding]:M.binding)!==void 0&&M.value!==void 0)c(E,M.value,M.binding instanceof Function?{toDOM:M.binding}:M.binding);else throw Error("bad binding");else if(f.match(/^bind[A-Z]/)!=null){let L=f.substring(4,5).toLowerCase()+f.substring(5),H=zE[L];if(H!==void 0)c(E,M,H);else throw Error(`${f} is not allowed, bindings.${L} is not defined`)}else if(O(M))c(E,M,XL(f));else QM(E,f,M)},zf=(E,...f)=>{if(yE[E]===void 0){let[H,J]=E.split("|");if(J===void 0)yE[E]=globalThis.document.createElement(H);else yE[E]=globalThis.document.createElementNS(J,H)}let M=yE[E].cloneNode(),L={};for(let H of f)if(H instanceof Element||H instanceof DocumentFragment||typeof H==="string"||typeof H==="number")if(M instanceof HTMLTemplateElement)M.content.append(H);else M.append(H);else if(O(H))M.append(W.span({bindText:H}));else Object.assign(L,H);for(let H of Object.keys(L)){let J=L[H];SE(M,H,J)}return M},Wf=(...E)=>{let f=globalThis.document.createDocumentFragment();for(let M of E)f.append(M);return f},W=new Proxy({fragment:Wf},{get(E,f){if(f=f.replace(/[A-Z]/g,(M)=>`-${M.toLocaleLowerCase()}`),E[f]===void 0)E[f]=(...M)=>zf(f,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),_E=new Proxy({fragment:Wf},{get(E,f){if(E[f]===void 0)E[f]=(...M)=>zf(`${f}|${YM}`,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),NE=new Proxy({fragment:Wf},{get(E,f){if(E[f]===void 0)E[f]=(...M)=>zf(`${f}|${JM}`,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),$M=new WeakSet;function GM(E,f,M="part"){let L=`[data-${M}]`;for(let H of Array.from(E.querySelectorAll(L))){if($M.has(H))continue;let J=H.getAttribute(`data-${M}`);if(J==null)continue;let $=f[J];if($==null)continue;$M.add(H);for(let Z of Object.keys($))SE(H,Z,$[Z])}}var FL=["sort","splice","copyWithin","fill","pop","push","reverse","shift","unshift"],wL=!0,zL=/^\.?([^.[\](),])+(\.[^.[\](),]+|\[\d+\]|\[[^=[\](),]*=[^[\]()]+\])*$/,WL=(E)=>zL.test(E),o=(E="",f="")=>{if(E==="")return f;else if(f.match(/^\d+$/)!==null||f.includes("="))return`${E}[${f}]`;else return`${E}.${f}`},zM={};function Uf(E,f){if(E!==null&&(typeof E==="object"||typeof E==="function"))return E;return new Proxy(zM,r(f,!0))}var UE=()=>new Proxy({},r("^",!0)),Df=(E)=>{let M=E(UE())?.path;if(!M?.startsWith("^."))throw Error("selector must return a property of the item");return M.substring(2)},qf=(E,f,M)=>{for(let L=0;L<E.length;L++)if(`${j(E[L],f)}`===`${M}`)return L;return-1},XM=(E,f)=>({listFind(M,L){if(M instanceof Element){let $=M;while($&&!$[t]&&$.parentElement)$=$.parentElement;let Z=$?.[t];if(Z==null)return;let Y=f.indexOf(Z);return Y!==-1?B[E][Y]:void 0}let H=Df(M),J=qf(f,H,L);return J!==-1?B[E][J]:void 0},listUpdate(M,L){let H=Df(M),J=j(L,H),$=qf(f,H,J);if($!==-1){let Z=B[E][$];for(let Y of Object.keys(L))Z[Y]=L[Y];return Z}return B[E].push(L),B[E][f.length-1]},listRemove(M,L){let H=Df(M),J=qf(f,H,L);if(J===-1)return!1;return B[E].splice(J,1),!0}}),FM=!1;function HE(){if(!FM)console.warn("xinValue, tosiValue, xinPath, tosiPath, etc. are deprecated. Use value, path, observe, bind, on, binding, listBinding instead."),FM=!0}var wM=(E)=>{return E===zM},r=(E,f)=>({get(M,L){if(wM(M)){let Z=()=>j(R,E);switch(L){case"path":return E;case"value":return Z();case"valueOf":case"toJSON":return()=>Z();case Symbol.toPrimitive:return(Y)=>{let Q=Z();if(Y==="number")return Number(Q);if(Y==="string")return String(Q);return Q};case"toString":return()=>String(Z());case"touch":return()=>I(E);case"observe":return(Y)=>{let Q=_(E,Y);return()=>m(Q)};case"on":return(Y,Q)=>FE()(Y,Q,Z());case"bind":return(Y,Q,G)=>{XE()(Y,E,Q,G)};case"binding":return(Y)=>({bind:{value:E,binding:Y}});case"listBinding":return(Y=({span:G})=>G({bindText:"^"}),Q={})=>[{bindList:{value:E,...Q}},W.template(Y(W,UE()))];case"listFind":case"listUpdate":case"listRemove":return XM(E,M)[L];case n:case"xinValue":case"tosiValue":return HE(),Z();case S:case"xinPath":case"tosiPath":return HE(),E;case lE:case"tosiObserve":return HE(),(Y)=>{let Q=_(E,Y);return()=>m(Q)};case eE:case"tosiOn":return HE(),(Y,Q)=>FE()(Y,Q,Z());case tE:case"tosiBind":return HE(),(Y,Q,G)=>{XE()(Y,E,Q,G)};case"tosiBinding":return HE(),(Y)=>({bind:{value:E,binding:Y}});case"tosiListBinding":return HE(),(Y=({span:G})=>G({bindText:"^"}),Q={})=>[{bindList:{value:E,...Q}},W.template(Y(W,UE()))]}if(typeof L==="string"&&/^\d+$/.test(L)){let Y=Z();if(typeof Y==="string")return Y[parseInt(L,10)]}if(L==="length"){let Y=Z();if(typeof Y==="string")return Y.length}return}if(f&&!(L in M))switch(L){case"path":return E;case"value":return M.valueOf?M.valueOf():M;case"valueOf":case"toJSON":return()=>M.valueOf?M.valueOf():M;case"touch":return()=>I(E);case"observe":return(Z)=>{let Y=_(E,Z);return()=>m(Y)};case"on":return(Z,Y)=>FE()(Z,Y,T(M));case"bind":return(Z,Y,Q)=>{XE()(Z,E,Y,Q)};case"binding":return(Z)=>({bind:{value:E,binding:Z}});case"listBinding":return(Z=({span:Q})=>Q({bindText:"^"}),Y={})=>[{bindList:{value:E,...Y}},W.template(Z(W,UE()))];case"listFind":case"listUpdate":case"listRemove":return XM(E,M)[L]}switch(L){case S:case"xinPath":case"tosiPath":return E;case n:case"xinValue":case"tosiValue":return M.valueOf?M.valueOf():M;case lE:case"xinObserve":case"tosiObserve":return(Z)=>{let Y=_(E,Z);return()=>m(Y)};case eE:case"xinOn":case"tosiOn":return(Z,Y)=>FE()(Z,Y,T(M));case tE:case"xinBind":case"tosiBind":return(Z,Y,Q)=>{XE()(Z,E,Y,Q)};case"tosiBinding":return(Z)=>({bind:{value:E,binding:Z}});case"tosiListBinding":return(Z=({span:Q})=>Q({bindText:"^"}),Y={})=>[{bindList:{value:E,...Y}},W.template(Z(W,UE()))]}if(typeof L==="symbol")return M[L];let H=Object.getOwnPropertyDescriptor(M,L);if(H&&!H.configurable&&!H.writable&&"value"in H)return H.value;let J=L,$=J.match(/^([^.[]+)\.(.+)$/)??J.match(/^([^\]]+)(\[.+)/)??J.match(/^(\[[^\]]+\])\.(.+)$/)??J.match(/^(\[[^\]]+\])\[(.+)$/);if($!==null){let[,Z,Y]=$,Q=o(E,Z),G=j(M,Z);return G!==null&&typeof G==="object"?new Proxy(G,r(Q,f))[Y]:G}if(J.startsWith("[")&&J.endsWith("]"))J=J.substring(1,J.length-1);if(!Array.isArray(M)&&M[J]!==void 0||Array.isArray(M)&&J.includes("=")){let Z;if(J.includes("=")){let[Y,Q]=J.split("=");Z=M.find((G)=>`${j(G,Y)}`===Q)}else Z=M[J];if(Z instanceof Object){let Y=o(E,J);return new Proxy(Z instanceof Function?Z.bind(M):Z,r(Y,f))}else return f?Uf(Z,o(E,J)):Z}else if(Array.isArray(M)){let Z=M[J];return typeof Z==="function"?(...Y)=>{let Q=Y.map((F)=>T(F)),G=Z.apply(M,Q);if(FL.includes(J))I(E);if(G!=null&&typeof G==="object"){if(J==="find"||J==="findLast"||J==="at"){let F=M.indexOf(G);if(F!==-1)return new Proxy(G,r(o(E,String(F)),f))}}return G}:typeof Z==="object"?new Proxy(Z,r(o(E,J),f)):f?Uf(Z,o(E,J)):Z}else return f?Uf(M[J],o(E,J)):M[J]},set(M,L,H){H=T(H);let $=L===n||L==="xinValue"||L==="tosiValue"||L==="value"&&(wM(M)||f)?E:o(E,L);if(wL&&!WL($))throw Error(`setting invalid path ${$}`);if(T(x[$])!==H&&a(R,$,H))I($);return!0}}),GE=(E,f)=>{let M=typeof f==="function"?f:x[f];if(typeof M!=="function")throw Error(`observe expects a function or path to a function, ${f} is neither`);return _(E,M)},x=new Proxy(R,r("",!1));vf(x);var B=new Proxy(R,r("",!0));var UL=16,DL=100;function WM(E,f){let M=Array.from(E.querySelectorAll(g));if(E.matches(g))M.unshift(E);for(let L of M){let H=u.get(L);for(let J of H){if(J.path.startsWith("^"))J.path=`${f}${J.path.substring(1)}`;if(J.binding.toDOM!=null)J.binding.toDOM(L,x[J.path])}}}class UM{boundElement;listTop;listBottom;isNamespaced;template;options;itemToElement;array=[];_filteredCache;_update;_previousSlice;static filterBoundObservers=new WeakMap;constructor(E,f,M={}){if(this.boundElement=E,this.itemToElement=new WeakMap,M.idPath!=null){let H=O(f);if(H!=null)Bf(H,M.idPath)}if(E.children.length!==1)throw Error("ListBinding expects an element with exactly one child element");if(E.children[0]instanceof HTMLTemplateElement){let H=E.children[0];if(H.content.children.length!==1)throw Error("ListBinding expects a template with exactly one child element");this.template=e(H.content.children[0])}else this.template=E.children[0],this.template.remove();this.options=M;let L=E.namespaceURI;if(this.isNamespaced=L==="http://www.w3.org/2000/svg"||L==="http://www.w3.org/1998/Math/MathML",this.isNamespaced)this.listTop=null,this.listBottom=null;else this.listTop=document.createElement("div"),this.listBottom=document.createElement("div"),this.listTop.classList.add("virtual-list-padding"),this.listBottom.classList.add("virtual-list-padding"),this.boundElement.append(this.listTop),this.boundElement.append(this.listBottom);if(this.boundElement[YE]=this,this.isNamespaced&&M.virtual!=null)console.warn("ListBinding: virtual scrolling is not supported in SVG/MathML containers, ignoring virtual option");if(!this.isNamespaced&&M.virtual!=null)if(wE.observe(this.boundElement),this._update=fE(()=>{this.update(this.array,!0)},UL),this.boundElement.addEventListener("resize",this._update),M.virtual.scrollContainer==="window")window.addEventListener("scroll",this._update),window.addEventListener("resize",this._update);else this.boundElement.addEventListener("scroll",this._update)}filteredArray(){if(this._filteredCache!=null)return this._filteredCache;let{hiddenProp:E,visibleProp:f}=this.options,M=this.array;if(E!==void 0)M=M.filter((L)=>L[E]!==!0);if(f!==void 0)M=M.filter((L)=>L[f]===!0);if(this.options.filter&&this.needle!==void 0)M=this.options.filter(M,this.needle);return this._filteredCache=M,M}visibleSlice(){let{virtual:E}=this.options,f=this.filteredArray(),M=0,L=f.length-1,H=0,J=0;if(E!=null&&this.boundElement instanceof HTMLElement){let $=this.boundElement.offsetWidth,Z=E.scrollContainer==="window",Y,Q;if(Z){Y=window.innerHeight;let U=this.boundElement.getBoundingClientRect();Q=Math.max(0,-U.top)}else Y=this.boundElement.offsetHeight,Q=this.boundElement.scrollTop;let G=E.width!=null?Math.max(1,Math.floor($/E.width)):E.visibleColumns??1,F=Math.ceil(f.length/G);if(E.minHeight!=null){let U=E.minHeight,V=Math.ceil(Y/U)+(E.rowChunkSize||1),w=G*V,q=F*U,D=Math.max(0,q-Y),y=D>0?Math.min(1,Math.max(0,Q/D)):0,z=Math.max(0,F-V+1),K=y*z,A=Math.floor(K);if(E.rowChunkSize)A-=A%E.rowChunkSize;return M=A*G,L=M+w-1,H=Q,J=Math.max(0,q-Q-Y),{items:f,firstItem:M,lastItem:L,topBuffer:H,bottomBuffer:J,interpolation:{t:y,position:K,scrollTop:Q,viewportHeight:Y,totalScrollHeight:q,rowHeight:E.height}}}else{let U=Math.ceil(Y/E.height)+(E.rowChunkSize||1),V=G*U,w=Math.floor(Q/E.height);if(w>F-U+1)w=Math.max(0,F-U+1);if(E.rowChunkSize)w-=w%E.rowChunkSize;M=w*G,L=M+V-1,H=w*E.height,J=Math.max((F-U)*E.height-H,0)}}return{items:f,firstItem:M,lastItem:L,topBuffer:H,bottomBuffer:J}}needle;filter=fE((E)=>{if(this.needle!==E)this.needle=E,this.update(this.array)},DL);update(E,f){if(E==null)E=[];if(this.array=E,!f)this._filteredCache=void 0;let{hiddenProp:M,visibleProp:L}=this.options,H=O(E),J=this.visibleSlice();this.boundElement.classList.toggle("-xin-empty-list",J.items.length===0);let $=this._previousSlice,{firstItem:Z,lastItem:Y,topBuffer:Q,bottomBuffer:G}=J,F=M===void 0&&L===void 0&&f===!0&&$!=null&&Z===$.firstItem&&Y===$.lastItem;if(F&&J.interpolation==null&&Q===$.topBuffer&&G===$.bottomBuffer)return;if(F&&J.interpolation!=null){this._updateInterpolatedBuffers(J);return}this._previousSlice=J;let U=0,V=0,w=0;for(let z of Array.from(this.boundElement.children)){if(z===this.listTop||z===this.listBottom)continue;let K=z[t];if(K==null)z.remove();else{let A=J.items.indexOf(K);if(A<Z||A>Y)z.remove(),this.itemToElement.delete(K),U++}}if(this.listTop!=null&&this.listBottom!=null)this.listTop.style.height=String(Q)+"px",this.listBottom.style.height=String(G)+"px";let q=[],{idPath:D}=this.options;for(let z=Z;z<=Y;z++){let K=J.items[z];if(K===void 0)continue;let A=this.itemToElement.get(T(K));if(A==null){if(w++,A=e(this.template),typeof K==="object")this.itemToElement.set(T(K),A),A[t]=T(K);if(this.listBottom!=null)this.boundElement.insertBefore(A,this.listBottom);else this.boundElement.append(A);if(D!=null){let p=K[D],CE=`${H}[${D}=${p}]`;WM(A,CE)}else{let p=`${H}[${z}]`;WM(A,p)}}q.push(A)}let y=null;for(let z of q){if(z.previousElementSibling!==y)if(V++,y?.nextElementSibling!=null)this.boundElement.insertBefore(z,y.nextElementSibling);else if(this.listBottom!=null)this.boundElement.insertBefore(z,this.listBottom);else this.boundElement.append(z);y=z}if(J.interpolation!=null)this._updateInterpolatedBuffers(J);if(i.perf)console.log(H,"updated",{removed:U,created:w,moved:V})}_updateInterpolatedBuffers(E){let{t:f,position:M,scrollTop:L,viewportHeight:H,totalScrollHeight:J,rowHeight:$}=E.interpolation,Z=0;for(let F of Array.from(this.boundElement.children)){if(F===this.listTop||F===this.listBottom)continue;Z+=F.offsetHeight||$}let Y=L,Q=L+H-Z,G=Math.max(0,f*Q+(1-f)*Y-M%1*$);if(this.listTop!=null&&this.listBottom!=null)this.listTop.style.height=String(G)+"px",this.listBottom.style.height=String(Math.max(0,J-G-Z))+"px"}}var QE=(E,f,M)=>{let L=E[YE];if(f&&L===void 0)L=new UM(E,f,M),E[YE]=L;return L},mE=(E)=>{let f;while(!(f=E[t])&&E&&E.parentElement)E=E.parentElement;return f?{element:E,item:f}:void 0},PE=(E)=>{let f=mE(E);return f?f.item:void 0},DM=(E)=>{let f=mE(E);if(!f)return console.error("deleteListItem failed, element is not part of a list instance",E),!1;let M=QE(f.element.parentElement);if(!M.options.idPath)return console.error("deleteListItem failed, list binding has no idPath",E.parentElement,M),!1;let L=M.array.indexOf(f.item);if(L>-1)return M.array.splice(L,1),!0;return!1},qL={start:"start",middle:"center",end:"end",nearest:"nearest"},qM=(E,f,M={})=>{let L=QE(E);if(L==null)return console.error("scrollListItemIntoView failed, element has no list binding",E),!1;let{position:H="middle"}=M,J=L.filteredArray(),$=T(f)??f,Z=J.indexOf($);if(Z===-1)return console.error("scrollListItemIntoView failed, item not found in list",f),!1;let{virtual:Y}=L.options;if(Y!=null&&E instanceof HTMLElement){let Q=Y.width!=null?Math.max(1,Math.floor(E.offsetWidth/Y.width)):Y.visibleColumns??1,G=Math.floor(Z/Q),F=Y.minHeight??Y.height,U=Math.ceil(J.length/Q),V=Y.scrollContainer==="window",w=V?window.innerHeight:E.offsetHeight,q;if(Y.minHeight!=null){let D=Math.ceil(w/F)+(Y.rowChunkSize||1),y=U*F,z=Math.max(0,y-w),K=Math.max(1,U-D+1),A=G/K;switch(H){case"start":q=A*z;break;case"end":q=Math.max(0,(G-D+1)/K*z);break;case"nearest":{let p=V?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop,CE=z>0?p/z:0,Rf=Math.floor(CE*K);if(G<Rf)q=A*z;else if(G>=Rf+D)q=Math.max(0,(G-D+1)/K*z);else return!0;break}default:{let p=G-Math.floor(D/2);q=Math.max(0,p)/K*z}}}else{let D=G*Y.height;switch(H){case"start":q=D;break;case"end":q=D-w+Y.height;break;case"nearest":{let y=V?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop;if(D<y)q=D;else if(D+Y.height>y+w)q=D-w+Y.height;else return!0;break}default:q=D-(w-Y.height)/2}}if(q=Math.max(0,q),V){let D=E.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:D+q,behavior:"smooth"})}else E.scrollTo({top:q,behavior:"smooth"})}else{let Q=L.itemToElement.get($);if(Q==null)return console.error("scrollListItemIntoView failed, no DOM element found for item",f),!1;Q.scrollIntoView({block:qL[H]??"center",behavior:"smooth"})}return!0};var{document:DE,MutationObserver:OM}=globalThis,cE=(E,f)=>{let M=u.get(E);if(M==null)return;for(let L of M){let{binding:H,options:J}=L,{path:$}=L,{toDOM:Z}=H;if(Z!=null){if($.startsWith("^")){let Y=PE(E);if(Y!=null&&Y[S]!=null)$=L.path=`${Y[S]}${$.substring(1)}`;else{if(E instanceof HTMLElement)console.warn(`Unresolved relative binding "${$}" —`,E,"is not part of a list. If this is a list template, wrap it in a <template>.");continue}}if(f==null||$.startsWith(f))Z(E,VE()[$],J)}}};if(OM!=null)new OM((f)=>{f.forEach((M)=>{Array.from(M.addedNodes).forEach((L)=>{if(L instanceof Element)Array.from(L.querySelectorAll(g)).forEach((H)=>cE(H))})})}).observe(DE.body,{subtree:!0,childList:!0});_(()=>!0,(E)=>{let f=Array.from(DE.querySelectorAll(g));for(let M of f)cE(M,E)});var KM=(E)=>{let f=E.target?.closest(g);while(f!=null){let M=u.get(f);for(let L of M){let{binding:H,path:J}=L,{fromDOM:$}=H;if($!=null){let Z;try{Z=$(f,L.options)}catch(Y){throw console.error("Cannot get value from",f,"via",L),Error("Cannot obtain value fromDOM")}if(Z!=null){let Y=VE(),Q=Y[J];if(Q==null)Y[J]=Z;else{let G=Q[S]!=null?Q[n]:Q,F=Z[S]!=null?Z[n]:Z;if(G!==F)Y[J]=F}}}}f=f.parentElement.closest(g)}};if(globalThis.document!=null)DE.body.addEventListener("change",KM,!0),DE.body.addEventListener("input",KM,!0);function c(E,f,M,L){if(E instanceof DocumentFragment)throw Error("bind cannot bind to a DocumentFragment");let H;if(typeof f==="object"&&f[S]===void 0&&L===void 0){let{value:Z}=f;H=typeof Z==="string"?Z:Z[S],L=f,delete L.value}else H=typeof f==="string"?f:f[S];if(H==null)throw Error("bind requires a path or object with xin Proxy");let{toDOM:J}=M;E.classList?.add(oE);let $=u.get(E);if($==null)$=[],u.set(E,$);if($.push({path:H,binding:M,options:L}),J!=null&&!H.startsWith("^"))I(H);if(L?.filter&&L?.needle)c(E,L.needle,{toDOM(Z,Y){console.log({needle:Y}),Z[YE]?.filter(Y)}});return E}var AM=new Set,OL=(E)=>{let f=E?.target?.closest(pE),M=!1,L=new Proxy(E,{get(J,$){if($==="stopPropagation")return()=>{E.stopPropagation(),M=!0};else{let Z=J[$];return typeof Z==="function"?Z.bind(J):Z}}}),H=new Set;while(!M&&f!=null){let $=l.get(f)[E.type]||H;for(let Z of $){if(typeof Z==="function")Z(L);else{let Y=VE()[Z];if(typeof Y==="function")Y(L);else throw Error(`no event handler found at path ${Z}`)}if(M)continue}f=f.parentElement!=null?f.parentElement.closest(pE):null}};function LE(E,f,M){let L=l.get(E);if(E.classList.add(rE),L==null)L={},l.set(E,L);if(!L[f])L[f]=new Set;if(L[f].add(M),!AM.has(f))AM.add(f),DE.body.addEventListener(f,OL,!0);return()=>{L[f].delete(M)}}df(c,LE);function bE(E,f){if(!E.internals)return;let M={},L="";if(E.hasAttribute("required")&&f==="")M.valueMissing=!0,L="Please fill out this field.";let H=E.getAttribute("minlength");if(H&&f.length<parseInt(H,10))M.tooShort=!0,L=`Please use at least ${H} characters.`;let J=E.getAttribute("maxlength");if(J&&f.length>parseInt(J,10))M.tooLong=!0,L=`Please use no more than ${J} characters.`;let $=E.getAttribute("pattern");if($&&f!=="")try{if(!new RegExp(`^(?:${$})$`).test(f))M.patternMismatch=!0,L="Please match the requested format."}catch{}if(Object.keys(M).length>0)E.internals.setValidity(M,L,E);else E.internals.setValidity({})}var KL=0;function Of(){return`custom-elt${(KL++).toString(36)}`}var TM=0,Kf=null;function AL(){if(Kf===null)Kf=new MutationObserver((E)=>{let f=new Set;for(let M of E)if(M.type==="attributes"&&M.target instanceof N){let L=M.target,H=Gf(M.attributeName);if(L._legacyTrackedAttrs?.has(H))f.add(L)}for(let M of f)M.queueRender(!1)});return Kf}var qE={};function TL(E,f){let M=qE[E],L=s(f).replace(/:host\(([^)]+)\)/g,`${E}$1`).replace(/:host\b/g,E);qE[E]=M?M+`
13
- `+L:L}function jL(E){if(qE[E])document.head.append(W.style({id:E+"-component"},qE[E]));delete qE[E]}class N extends HTMLElement{static elements=W;static _elementCreator;static initAttributes;static formAssociated;static preferredTagName;static shadowStyleSpec;static lightStyleSpec;static extends;internals;get validity(){return this.internals?.validity}get validationMessage(){return this.internals?.validationMessage??""}get willValidate(){return this.internals?.willValidate??!1}checkValidity(){return this.internals?.checkValidity()??!0}reportValidity(){return this.internals?.reportValidity()??!0}setCustomValidity(E){if(this.internals)if(E)this.internals.setValidity({customError:!0},E);else this.internals.setValidity({})}setValidity(E,f,M){this.internals?.setValidity(E,f,M)}setFormValue(E,f){this.internals?.setFormValue(E,f)}static get observedAttributes(){let E=this.initAttributes;if(E)return["hidden",...Object.keys(E).map(k)];return["hidden"]}instanceId;styleNode;static styleSpec;static styleNode;content=W.slot();isSlotted;static _tagName=null;static get tagName(){return this._tagName}_legacyTrackedAttrs;_attrValues;_valueChanged=!1;static StyleNode(E){return console.warn("StyleNode is deprecated, use static shadowStyleSpec instead"),W.style(s(E))}static elementCreator(E={}){let f=this;if(!Object.prototype.hasOwnProperty.call(f,"_elementCreator")){if(E.tag!==void 0)C("elementCreator-tag","Passing tag to elementCreator() is deprecated. Use static preferredTagName instead.");if(E.styleSpec!==void 0)C("elementCreator-styleSpec","Passing styleSpec to elementCreator() is deprecated. Use static lightStyleSpec instead.");if(E.extends!==void 0)C("elementCreator-extends","Passing extends to elementCreator() is deprecated. Use static extends instead.");let M=E.tag??f.preferredTagName;if(M==null)if(typeof f.name==="string"&&f.name!==""){if(M=k(f.name),M.startsWith("-"))M=M.slice(1)}else M=Of();if(customElements.get(M)!=null)console.warn(`${M} is already defined`);if(M.match(/\w+(-\w+)+/)==null)console.warn(`${M} is not a legal tag for a custom-element`),M=Of();while(customElements.get(M)!==void 0)M=Of();f._tagName=M;let L=E.styleSpec??f.lightStyleSpec;if(L!==void 0)TL(M,L);let H=E.extends??f.extends,J=H?{extends:H}:void 0;window.customElements.define(M,this,J),f._elementCreator=W[M]}return f._elementCreator}initAttributes(...E){if(C("initAttributes","initAttributes() is deprecated. Use static initAttributes = { ... } instead."),!this._legacyTrackedAttrs)this._legacyTrackedAttrs=new Set;for(let H of E)this._legacyTrackedAttrs.add(H);AL().observe(this,{attributes:!0});let M={},L={};E.forEach((H)=>{M[H]=b(this[H]);let J=k(H);Object.defineProperty(this,H,{enumerable:!1,get(){if(typeof M[H]==="boolean")return this.hasAttribute(J);else if(this.hasAttribute(J))return typeof M[H]==="number"?parseFloat(this.getAttribute(J)):this.getAttribute(J);else if(L[H]!==void 0)return L[H];else return M[H]},set($){if(typeof M[H]==="boolean"){if($!==this[H]){if($)this.setAttribute(J,"");else this.removeAttribute(J);this.queueRender()}}else if(typeof M[H]==="number"){if($!==parseFloat(this[H]))this.setAttribute(J,$),this.queueRender()}else if(typeof $==="object"||`${$}`!==`${this[H]}`){if($===null||$===void 0||typeof $==="object")this.removeAttribute(J);else this.setAttribute(J,$);this.queueRender(),L[H]=$}}})})}initValue(){let E=Object.getOwnPropertyDescriptor(this,"value");if(E===void 0||E.get!==void 0||E.set!==void 0)return;let f=this.hasAttribute("value")?this.getAttribute("value"):b(this.value);delete this.value,Object.defineProperty(this,"value",{enumerable:!1,get(){return f},set(M){if(f!==M)f=M,this._valueChanged=!0,this.queueRender(!0)}})}_parts;get parts(){let E=this.shadowRoot!=null?this.shadowRoot:this;if(this._parts==null)this._parts=new Proxy({},{get(f,M){if(f[M]===void 0){let L=E.querySelector(`[part="${M}"]`);if(L==null)L=E.querySelector(M);if(L==null)throw Error(`elementRef "${M}" does not exist!`);L.removeAttribute("data-ref"),f[M]=L}return f[M]}});return this._parts}attributeChangedCallback(E,f,M){let L=Gf(E);if(!this._legacyTrackedAttrs?.has(L))this.queueRender(!1)}constructor(){super();if(TM+=1,this.constructor.formAssociated&&typeof this.attachInternals==="function"&&!this.internals)this.internals=this.attachInternals();let E=this.constructor.initAttributes;if(E)this._setupAttributeAccessors(E);this.instanceId=`${this.tagName.toLocaleLowerCase()}-${TM}`,this._value=b(this.defaultValue)}_setupAttributeAccessors(E){if(!this._attrValues)this._attrValues=new Map;for(let f of Object.keys(E)){let M=k(f),L=E[f];if(f==="value"){console.warn(`${this.tagName}: 'value' cannot be an attribute. Use the Component value property instead.`);continue}if(typeof L==="object"&&L!==null){console.warn(`${this.tagName}: initAttributes.${f} is an object. Use a regular property instead.`);continue}let H=this,J=!1;while(H){let $=Object.getOwnPropertyDescriptor(H,f);if($){if(!$.configurable||$.get||$.set){J=!0;break}break}H=Object.getPrototypeOf(H)}if(J)continue;Object.defineProperty(this,f,{enumerable:!1,get:()=>{if(typeof L==="boolean")return this.hasAttribute(M);else if(this.hasAttribute(M))return typeof L==="number"?parseFloat(this.getAttribute(M)):this.getAttribute(M);else if(this._attrValues.has(f))return this._attrValues.get(f);else return L},set:($)=>{if(typeof L==="boolean"){if($!==this[f]){if($)this.setAttribute(M,"");else this.removeAttribute(M);this.queueRender()}}else if(typeof L==="number"){if($!==parseFloat(this[f]))this.setAttribute(M,$),this.queueRender()}else if(typeof $==="object"||`${$}`!==`${this[f]}`){if($===null||$===void 0||typeof $==="object")this.removeAttribute(M);else this.setAttribute(M,$);this.queueRender(),this._attrValues.set(f,$)}}})}}connectedCallback(){if(jL(this.constructor.tagName),this.hydrate(),this.role!=null)this.setAttribute("role",this.role);if(this.constructor.formAssociated&&!this.hasAttribute("tabindex"))this.setAttribute("tabindex","0");if(this.onResize!==void 0){if(wE.observe(this),this._onResize==null)this._onResize=this.onResize.bind(this);this.addEventListener("resize",this._onResize)}if(this.value!=null&&this.getAttribute("value")!=null)this._value=this.getAttribute("value");if(this.internals&&this.value!==void 0)this.internals.setFormValue(this.value),this.validateValue();this.queueRender()}disconnectedCallback(){wE.unobserve(this)}formResetCallback(){if(this.value!==void 0)this.value=this.defaultValue??""}formDisabledCallback(E){if(E)this.setAttribute("disabled","");else this.removeAttribute("disabled")}formStateRestoreCallback(E){if(this.value!==void 0&&typeof E==="string")this.value=E}_changeQueued=!1;_renderQueued=!1;queueRender(E=!1){if(!this._hydrated)return;if(!this._changeQueued)this._changeQueued=E;if(!this._renderQueued)this._renderQueued=!0,requestAnimationFrame(()=>{if(this._changeQueued){if(Zf(this,"change"),this.internals&&this.value!==void 0)this.internals.setFormValue(this.value)}this._changeQueued=!1,this._renderQueued=!1,this.render()})}_hydrated=!1;hydrate(){if(!this._hydrated){this.initValue();let E=typeof this.content!=="function",f=typeof this.content==="function"?this.content(W):this.content;if(Array.isArray(f)){let J={};f=f.filter(($)=>{if($ instanceof Node||typeof $==="string"||typeof $==="number"||O($))return!0;return Object.assign(J,$),!1});for(let $ of Object.keys(J))SE(this,$,J[$])}let M=this.constructor,L=M.shadowStyleSpec??M.styleSpec;if(M.styleSpec&&!M.shadowStyleSpec)C("static-styleSpec","static styleSpec is deprecated. Use static shadowStyleSpec instead.");let{styleNode:H}=M;if(L)H=M.styleNode=W.style(s(L)),delete M.styleNode;if(this.styleNode)console.warn(this,"styleNode is deprecated, use static shadowStyleSpec instead"),H=this.styleNode;if(H){let J=this.attachShadow({mode:"open"});J.appendChild(H.cloneNode(!0)),Qf(J,f,E)}else if(f!==null){let J=Array.from(this.childNodes);Qf(this,f,E),this.isSlotted=this.querySelector("slot,tosi-slot,xin-slot")!==void 0;let $=Array.from(this.querySelectorAll("slot"));if($.length>0)$.forEach(uE.replaceSlot);if(J.length>0){let Z={"":this};Array.from(this.querySelectorAll("tosi-slot,xin-slot")).forEach((Y)=>{Z[Y.name]=Y}),J.forEach((Y)=>{let Q=Z[""],G=Y instanceof Element?Z[Y.slot]:Q;(G!==void 0?G:Q).append(Y)})}}this._hydrated=!0}}render(){if(this._valueChanged&&this.internals&&this.value!==void 0)this.internals.setFormValue(this.value),this.validateValue();this._valueChanged=!1}validateValue(){if(!this.internals||this.value===void 0)return;let E=typeof this.value==="string"?this.value:String(this.value);bE(this,E)}}class uE extends N{static preferredTagName="tosi-slot";static initAttributes={name:""};content=null;static replaceSlot(E){let f=document.createElement("tosi-slot");if(E.name!=="")f.setAttribute("name",E.name);E.replaceWith(f)}}var jM=uE.elementCreator();class CM extends N{static preferredTagName="xin-slot";static initAttributes={name:""};content=null;constructor(){super();C("xin-slot","<xin-slot> is deprecated. Use <tosi-slot> instead.")}static replaceSlot=uE.replaceSlot}var xM=CM.elementCreator();var VM=(E=()=>!0)=>{let f=localStorage.getItem("xin-state");if(f!=null){let L=JSON.parse(f);for(let H of Object.keys(L).filter(E))if(x[H]!==void 0)Object.assign(x[H],L[H]);else x[H]=L[H]}let M=ZE(()=>{let L={},H=T(x);for(let J of Object.keys(H).filter(E))L[J]=H[J];localStorage.setItem("xin-state",JSON.stringify(L)),console.log("xin state saved to localStorage")},500);GE(E,M)};var CL="tosijs-share",xL="tosijs-share",OE="shared",VL=1,Tf=new Set,jf=new Set,Af=new Map,JE=null,Cf="",nE=null,RL=null;function RM(){if(nE!=null)return Promise.resolve(nE);return new Promise((E,f)=>{let M=indexedDB.open(xL,VL);M.onupgradeneeded=()=>{M.result.createObjectStore(OE)},M.onsuccess=()=>{nE=M.result,E(nE)},M.onerror=()=>f(M.error)})}var IL={async get(E){let f=await RM();return new Promise((M,L)=>{let J=f.transaction(OE,"readonly").objectStore(OE).get(E);J.onsuccess=()=>M(J.result),J.onerror=()=>L(J.error)})},async set(E,f){let M=await RM();return new Promise((L,H)=>{let J=M.transaction(OE,"readwrite");J.objectStore(OE).put(f,E),J.oncomplete=()=>L(),J.onerror=()=>H(J.error)})}};function IM(){return RL??IL}function kL(E){return E!=null&&E.type==="tosijs-share"&&typeof E.path==="string"}function kM(E){for(let f of Tf)if(E===f||E.startsWith(f+"."))return f;return}function BL(E){for(let f of jf)if(E===f||E.startsWith(f+"."))return!0;return!1}function yL(E,f){jf.add(E),a(R,E,f),I(E),EE().then(()=>{jf.delete(E)})}function SL(){if(JE!=null)return JE;return Cf=crypto.randomUUID(),JE=new BroadcastChannel(CL),JE.onmessage=(E)=>{let f=E.data;if(!kL(f))return;if(f.origin===Cf)return;if(kM(f.path)===void 0)return;yL(f.path,f.value)},JE}function _L(E,f){if(JE==null)return;let M={type:"tosijs-share",path:E,value:f,origin:Cf};JE.postMessage(M)}function NL(E){if(!Af.has(E))Af.set(E,ZE(()=>{let f=j(R,E);IM().set(E,f)},500));Af.get(E)()}async function BM(...E){if(typeof BroadcastChannel>"u")return{restored:[]};SL();let f=[],M=IM();for(let L of E){let H=typeof L==="string"?L:O(L);if(H===void 0)throw Error("share() requires boxed proxies or string paths. Got a non-proxy value.");if(Tf.has(H))continue;Tf.add(H);let J=await M.get(H);if(J!==void 0)a(R,H,J),I(H),f.push(L);else{let $=j(R,H);await M.set(H,$)}_(($)=>$===H||$.startsWith(H+"."),($)=>{if(BL($))return;let Z=kM($);if(Z===void 0)return;let Y=j(R,$);_L($,Y),NL(Z)})}return{restored:f}}var xf=new Set;function yM(E,f){for(let M of E)if(f===M||f.startsWith(M+"."))return M;return}function mL(E){for(let f of xf)if(E===f||E.startsWith(f+"."))return!0;return!1}function PL(E,f){xf.add(E),a(R,E,f),I(E),EE().then(()=>{xf.delete(E)})}async function SM(E,f,...M){let L=new Set,H=[],J=[],$=f.throttleInterval??100;await E.connect();let Z=fE(()=>{if(H.length===0)return;let Y=H.splice(0);E.send(Y)},$);E.onReceive((Y)=>{for(let Q of Y){if(yM(L,Q.path)===void 0)continue;PL(Q.path,Q.value)}});for(let Y of M){let Q=typeof Y==="string"?Y:O(Y);if(Q===void 0)throw Error("sync() requires boxed proxies or string paths. Got a non-proxy value.");L.add(Q);let G=_((F)=>F===Q||F.startsWith(Q+"."),(F)=>{if(mL(F))return;if(yM(L,F)===void 0)return;let U=j(R,F);H.push({path:F,value:U}),Z()});J.push(G)}return{disconnect(){for(let Y of J)m(Y);J.length=0,L.clear(),H.length=0,E.disconnect()}}}var vE="1.5.3";function KE(E){return Object.assign(B,E),B}function AE(E){return C("boxedProxy","boxedProxy is deprecated, please use tosi() instead"),KE(E)}function dE(E,f=!1){if(f)return C("xinProxy-boxed","xinProxy(..., true) is deprecated; use tosi(...) instead"),AE(E);return Object.keys(E).forEach((M)=>{x[M]=E[M]}),x}var cL={};async function TE(E,f){let M=await f(E,{Color:X,Component:N,elements:W,svgElements:_E,mathML:NE,varDefault:WE,vars:BE,xin:x,boxed:B,xinProxy:dE,boxedProxy:AE,tosi:KE,makeComponent:TE,bind:c,on:LE,version:vE}),{type:L}=M;L.preferredTagName=E;let H=M.lightStyleSpec??M.styleSpec;if(H)L.lightStyleSpec=H;let J={type:L,creator:L.elementCreator()};return cL[E]=J,J}var gE={":host":{display:"none"}},Vf={},bL=(E)=>import(E);class jE extends N{static preferredTagName="tosi-blueprint";static lightStyleSpec=gE;static initAttributes={tag:"anon-elt",src:"",property:"default"};loaded;blueprintLoaded=(E)=>{};async packaged(){let{tag:E,src:f,property:M}=this,L=`${E}.${M}:${f}`;if(!this.loaded){if(Vf[L]===void 0)Vf[L]=bL(f).then((H)=>{let J=H[M];return TE(E,J)});else console.log(`using cached ${E} with signature ${L}`);this.loaded=await Vf[L],this.blueprintLoaded(this.loaded)}return this.loaded}}var _M=jE.elementCreator();class iE extends N{static preferredTagName="tosi-loader";static lightStyleSpec=gE;allLoaded=()=>{};async load(){let f=Array.from(this.querySelectorAll("tosi-blueprint, xin-blueprint")).filter((M)=>M.src).map((M)=>M.packaged());await Promise.all(f),this.allLoaded()}connectedCallback(){super.connectedCallback(),this.load()}}var NM=iE.elementCreator();class mM extends jE{static preferredTagName="xin-blueprint";static lightStyleSpec=gE;constructor(){super();C("xin-blueprint","<xin-blueprint> is deprecated. Use <tosi-blueprint> instead.")}}var PM=mM.elementCreator();class cM extends N{static preferredTagName="xin-loader";static lightStyleSpec=gE;allLoaded=()=>{};constructor(){super();C("xin-loader","<xin-loader> is deprecated. Use <tosi-loader> instead.")}async load(){let f=Array.from(this.querySelectorAll("xin-blueprint")).filter((M)=>M.src).map((M)=>M.packaged());await Promise.all(f),this.allLoaded()}connectedCallback(){super.connectedCallback(),this.load()}}var bM=cM.elementCreator();})();
12
+ `)},ff=(E)=>{R("initVars","initVars is deprecated. Just use _ and __ prefixes instead.");let M={};for(let f of Object.keys(E)){let L=E[f],H=S(f);M[`--${H}`]=typeof L==="number"&&L!==0?String(L)+"px":L}return M},Lf=(E)=>{let M={};for(let f of Object.keys(E)){let L=E[f];if(L instanceof F)M[f]=L.inverseLuminance;else if(typeof L==="string"&&L.match(/^(#[0-9a-fA-F]{3}|rgba?\(|hsla?\()/))M[f]=F.fromCss(L).inverseLuminance}return M},UE=new Proxy({},{get(E,M){if(E[M]===void 0){let f="--"+S(M);E[M]=(L)=>`var(${f}, ${L})`}return E[M]}}),SE=new Proxy({},{get(E,M){if(M==="default")return UE;if(E[M]==null){M=S(M);let[,f,,L,H,J]=M.match(/^([-\w]*?)((_)?(\d+)(\w?))?$/)||["",M],Y=`--${f}`;if(H!=null){let Z=L==null?Number(H)/100:-Number(H)/100;switch(J){case"b":case"s":case"h":case"o":{let $=`--${M}`;F.registerComputedColor($,Y,Z,J),E[M]=`var(${$})`}break;case"":E[M]=`calc(var(${Y}) * ${Z})`;break;default:throw console.error(J),Error(`Unrecognized method ${J} for css variable ${Y}`)}}else E[M]=`var(${Y})`}return E[M]}});function XM(){let E=(M)=>typeof matchMedia<"u"&&matchMedia(M).matches;return{colorScheme:E("(prefers-color-scheme: dark)")?"dark":"light",contrast:E("(prefers-contrast: more)")?"more":E("(prefers-contrast: less)")?"less":E("(prefers-contrast: custom)")?"custom":"no-preference",reducedMotion:E("(prefers-reduced-motion: reduce)"),reducedTransparency:E("(prefers-reduced-transparency: reduce)"),forcedColors:E("(forced-colors: active)")}}function Hf(E){if(typeof matchMedia>"u")return()=>{};let M=["(prefers-color-scheme: dark)","(prefers-contrast: more)","(prefers-contrast: less)","(prefers-contrast: custom)","(prefers-reduced-motion: reduce)","(prefers-reduced-transparency: reduce)","(forced-colors: active)"],f=()=>E(XM()),L=M.map((H)=>matchMedia(H));for(let H of L)H.addEventListener("change",f);return()=>{for(let H of L)H.removeEventListener("change",f)}}var Jf="http://www.w3.org/1998/Math/MathML",$f="http://www.w3.org/2000/svg";var _E={},Zf=(E,M,f)=>{let L=zM(S(M),f);if(L.prop.startsWith("--"))E.style.setProperty(L.prop,L.value);else E.style[M]=L.value},FL=(E)=>{return{toDOM(M,f){Zf(M,E,f)}}},Qf=(E,M,f)=>{if(M==="style")if(typeof f==="object")for(let L of Object.keys(f))if(O(f[L]))c(E,f[L],FL(L));else Zf(E,L,f[L]);else E.setAttribute("style",f);else{let L=S(M),H=E.constructor.observedAttributes;if(H?.includes(M)||H?.includes(L))if(typeof f==="boolean")f?E.setAttribute(L,""):E.removeAttribute(L);else E.setAttribute(L,f);else if(E[M]!==void 0){let{MathMLElement:Y}=globalThis;if(E instanceof SVGElement||Y!==void 0&&E instanceof Y)E.setAttribute(M,f);else E[M]=f}else if(L==="class")f.split(" ").forEach((Y)=>{E.classList.add(Y)});else if(E[L]!==void 0)E[L]=f;else if(typeof f==="boolean")f?E.setAttribute(L,""):E.removeAttribute(L);else E.setAttribute(L,f)}},WM={},zL=(E)=>{if(!WM[E])WM[E]={toDOM(M,f){Qf(M,E,f)}};return WM[E]},xE=(E,M,f)=>{if(M==="apply")f(E);else if(M.match(/^on[A-Z]/)!=null){let L=M.substring(2).toLowerCase();LE(E,L,f)}else if(M==="bind")if((typeof f.binding==="string"?WE[f.binding]:f.binding)!==void 0&&f.value!==void 0)c(E,f.value,f.binding instanceof Function?{toDOM:f.binding}:f.binding);else throw Error("bad binding");else if(M.match(/^bind[A-Z]/)!=null){let L=M.substring(4,5).toLowerCase()+M.substring(5),H=WE[L];if(H!==void 0)c(E,f,H);else throw Error(`${M} is not allowed, bindings.${L} is not defined`)}else if(O(f))c(E,f,zL(M));else Qf(E,M,f)},UM=(E,...M)=>{if(_E[E]===void 0){let[H,J]=E.split("|");if(J===void 0)_E[E]=globalThis.document.createElement(H);else _E[E]=globalThis.document.createElementNS(J,H)}let f=_E[E].cloneNode(),L={};for(let H of M)if(H instanceof Element||H instanceof DocumentFragment||typeof H==="string"||typeof H==="number")if(f instanceof HTMLTemplateElement)f.content.append(H);else f.append(H);else if(O(H))f.append(U.span({bindText:H}));else Object.assign(L,H);for(let H of Object.keys(L)){let J=L[H];xE(f,H,J)}return f},DM=(...E)=>{let M=globalThis.document.createDocumentFragment();for(let f of E)M.append(f);return M},U=new Proxy({fragment:DM},{get(E,M){if(M=M.replace(/[A-Z]/g,(f)=>`-${f.toLocaleLowerCase()}`),E[M]===void 0)E[M]=(...f)=>UM(M,...f);return E[M]},set(){throw Error("You may not add new properties to elements")}}),NE=new Proxy({fragment:DM},{get(E,M){if(E[M]===void 0)E[M]=(...f)=>UM(`${M}|${$f}`,...f);return E[M]},set(){throw Error("You may not add new properties to elements")}}),yE=new Proxy({fragment:DM},{get(E,M){if(E[M]===void 0)E[M]=(...f)=>UM(`${M}|${Jf}`,...f);return E[M]},set(){throw Error("You may not add new properties to elements")}}),Yf=new WeakSet;function Gf(E,M,f="part"){let L=`[data-${f}]`;for(let H of Array.from(E.querySelectorAll(L))){if(Yf.has(H))continue;let J=H.getAttribute(`data-${f}`);if(J==null)continue;let Y=M[J];if(Y==null)continue;Yf.add(H);for(let Z of Object.keys(Y))xE(H,Z,Y[Z])}}var XL=["sort","splice","copyWithin","fill","pop","push","reverse","shift","unshift"],WL=!0,UL=/^\.?([^.[\](),])+(\.[^.[\](),]+|\[\d+\]|\[[^=[\](),]*=[^[\]()]+\])*$/,DL=(E)=>UL.test(E),p=(E="",M="")=>{if(E==="")return M;else if(M.match(/^\d+$/)!==null||M.includes("="))return`${E}[${M}]`;else return`${E}.${M}`},Wf={};function KM(E,M){if(E!==null&&(typeof E==="object"||typeof E==="function"))return E;return new Proxy(Wf,r(M,!0))}var DE=()=>new Proxy({},r("^",!0)),qM=(E)=>{let f=E(DE())?.path;if(!f?.startsWith("^."))throw Error("selector must return a property of the item");return f.substring(2)},OM=(E,M,f)=>{for(let L=0;L<E.length;L++)if(`${j(E[L],M)}`===`${f}`)return L;return-1},Ff=(E,M)=>({listFind(f,L){if(f instanceof Element){let Y=f;while(Y&&!Y[a]&&Y.parentElement)Y=Y.parentElement;let Z=Y?.[a];if(Z==null)return;let $=M.indexOf(Z);return $!==-1?k[E][$]:void 0}let H=qM(f),J=OM(M,H,L);return J!==-1?k[E][J]:void 0},listUpdate(f,L){let H=qM(f),J=j(L,H),Y=OM(M,H,J);if(Y!==-1){let Z=k[E][Y];for(let $ of Object.keys(L))Z[$]=L[$];return Z}return k[E].push(L),k[E][M.length-1]},listRemove(f,L){let H=qM(f),J=OM(M,H,L);if(J===-1)return!1;return k[E].splice(J,1),!0}}),zf=!1;function HE(){if(!zf)console.warn("xinValue, tosiValue, xinPath, tosiPath, etc. are deprecated. Use value, path, observe, bind, on, binding, listBinding instead."),zf=!0}var Xf=(E)=>{return E===Wf},r=(E,M)=>({get(f,L){if(Xf(f)){let Z=()=>j(I,E);switch(L){case"path":return E;case"value":return Z();case"valueOf":case"toJSON":return()=>Z();case Symbol.toPrimitive:return($)=>{let Q=Z();if($==="number")return Number(Q);if($==="string")return String(Q);return Q};case"toString":return()=>String(Z());case"touch":return()=>B(E);case"observe":return($)=>{let Q=N(E,$);return()=>P(Q)};case"on":return($,Q)=>zE()($,Q,Z());case"bind":return($,Q,G)=>{FE()($,E,Q,G)};case"binding":return($)=>({bind:{value:E,binding:$}});case"listBinding":return($=({span:G})=>G({bindText:"^"}),Q={})=>[{bindList:{value:E,...Q}},U.template($(U,DE()))];case"listFind":case"listUpdate":case"listRemove":return Ff(E,f)[L];case v:case"xinValue":case"tosiValue":return HE(),Z();case x:case"xinPath":case"tosiPath":return HE(),E;case lE:case"tosiObserve":return HE(),($)=>{let Q=N(E,$);return()=>P(Q)};case tE:case"tosiOn":return HE(),($,Q)=>zE()($,Q,Z());case aE:case"tosiBind":return HE(),($,Q,G)=>{FE()($,E,Q,G)};case"tosiBinding":return HE(),($)=>({bind:{value:E,binding:$}});case"tosiListBinding":return HE(),($=({span:G})=>G({bindText:"^"}),Q={})=>[{bindList:{value:E,...Q}},U.template($(U,DE()))]}if(typeof L==="string"&&/^\d+$/.test(L)){let $=Z();if(typeof $==="string")return $[parseInt(L,10)]}if(L==="length"){let $=Z();if(typeof $==="string")return $.length}return}if(M&&!(L in f))switch(L){case"path":return E;case"value":return f.valueOf?f.valueOf():f;case"valueOf":case"toJSON":return()=>f.valueOf?f.valueOf():f;case"touch":return()=>B(E);case"observe":return(Z)=>{let $=N(E,Z);return()=>P($)};case"on":return(Z,$)=>zE()(Z,$,C(f));case"bind":return(Z,$,Q)=>{FE()(Z,E,$,Q)};case"binding":return(Z)=>({bind:{value:E,binding:Z}});case"listBinding":return(Z=({span:Q})=>Q({bindText:"^"}),$={})=>[{bindList:{value:E,...$}},U.template(Z(U,DE()))];case"listFind":case"listUpdate":case"listRemove":return Ff(E,f)[L]}switch(L){case x:case"xinPath":case"tosiPath":return E;case v:case"xinValue":case"tosiValue":return f.valueOf?f.valueOf():f;case lE:case"xinObserve":case"tosiObserve":return(Z)=>{let $=N(E,Z);return()=>P($)};case tE:case"xinOn":case"tosiOn":return(Z,$)=>zE()(Z,$,C(f));case aE:case"xinBind":case"tosiBind":return(Z,$,Q)=>{FE()(Z,E,$,Q)};case"tosiBinding":return(Z)=>({bind:{value:E,binding:Z}});case"tosiListBinding":return(Z=({span:Q})=>Q({bindText:"^"}),$={})=>[{bindList:{value:E,...$}},U.template(Z(U,DE()))]}if(typeof L==="symbol")return f[L];let H=Object.getOwnPropertyDescriptor(f,L);if(H&&!H.configurable&&!H.writable&&"value"in H)return H.value;let J=L,Y=J.match(/^([^.[]+)\.(.+)$/)??J.match(/^([^\]]+)(\[.+)/)??J.match(/^(\[[^\]]+\])\.(.+)$/)??J.match(/^(\[[^\]]+\])\[(.+)$/);if(Y!==null){let[,Z,$]=Y,Q=p(E,Z),G=j(f,Z);return G!==null&&typeof G==="object"?new Proxy(G,r(Q,M))[$]:G}if(J.startsWith("[")&&J.endsWith("]"))J=J.substring(1,J.length-1);if(!Array.isArray(f)&&f[J]!==void 0||Array.isArray(f)&&J.includes("=")){let Z;if(J.includes("=")){let[$,Q]=J.split("=");Z=f.find((G)=>`${j(G,$)}`===Q)}else Z=f[J];if(Z instanceof Object){let $=p(E,J);return new Proxy(Z instanceof Function?Z.bind(f):Z,r($,M))}else return M?KM(Z,p(E,J)):Z}else if(Array.isArray(f)){let Z=f[J];return typeof Z==="function"?(...$)=>{let Q=$.map((z)=>C(z)),G=Z.apply(f,Q);if(XL.includes(J))B(E);if(G!=null&&typeof G==="object"){if(J==="find"||J==="findLast"||J==="at"){let z=f.indexOf(G);if(z!==-1)return new Proxy(G,r(p(E,String(z)),M))}}return G}:typeof Z==="object"?new Proxy(Z,r(p(E,J),M)):M?KM(Z,p(E,J)):Z}else return M?KM(f[J],p(E,J)):f[J]},set(f,L,H){H=C(H);let Y=L===v||L==="xinValue"||L==="tosiValue"||L==="value"&&(Xf(f)||M)?E:p(E,L);if(WL&&!DL(Y))throw Error(`setting invalid path ${Y}`);if(C(V[Y])!==H&&e(I,Y,H))B(Y);return!0}}),GE=(E,M)=>{let f=typeof M==="function"?M:V[M];if(typeof f!=="function")throw Error(`observe expects a function or path to a function, ${M} is neither`);return N(E,f)},V=new Proxy(I,r("",!1));dM(V);var k=new Proxy(I,r("",!0));var KL=16,qL=100;function Uf(E,M){let f=Array.from(E.querySelectorAll(h));if(E.matches(h))f.unshift(E);for(let L of f){let H=u.get(L);for(let J of H){if(J.path.startsWith("^"))J.path=`${M}${J.path.substring(1)}`;if(J.binding.toDOM!=null)J.binding.toDOM(L,V[J.path])}}}class Df{boundElement;listTop;listBottom;isNamespaced;template;options;itemToElement;array=[];_filteredCache;_update;_previousSlice;static filterBoundObservers=new WeakMap;constructor(E,M,f={}){if(this.boundElement=E,this.itemToElement=new WeakMap,f.idPath!=null){let H=O(M);if(H!=null)_M(H,f.idPath)}if(E.children.length!==1)throw Error("ListBinding expects an element with exactly one child element");if(E.children[0]instanceof HTMLTemplateElement){let H=E.children[0];if(H.content.children.length!==1)throw Error("ListBinding expects a template with exactly one child element");this.template=t(H.content.children[0])}else this.template=E.children[0],this.template.remove();this.options=f;let L=E.namespaceURI;if(this.isNamespaced=L==="http://www.w3.org/2000/svg"||L==="http://www.w3.org/1998/Math/MathML",this.isNamespaced)this.listTop=null,this.listBottom=null;else this.listTop=document.createElement("div"),this.listBottom=document.createElement("div"),this.listTop.classList.add("virtual-list-padding"),this.listBottom.classList.add("virtual-list-padding"),this.boundElement.append(this.listTop),this.boundElement.append(this.listBottom);if(this.boundElement[$E]=this,this.isNamespaced&&f.virtual!=null)console.warn("ListBinding: virtual scrolling is not supported in SVG/MathML containers, ignoring virtual option");if(!this.isNamespaced&&f.virtual!=null)if(XE.observe(this.boundElement),this._update=ME(()=>{this.update(this.array,!0)},KL),this.boundElement.addEventListener("resize",this._update),f.virtual.scrollContainer==="window")window.addEventListener("scroll",this._update),window.addEventListener("resize",this._update);else this.boundElement.addEventListener("scroll",this._update)}filteredArray(){if(this._filteredCache!=null)return this._filteredCache;let{hiddenProp:E,visibleProp:M}=this.options,f=this.array;if(E!==void 0)f=f.filter((L)=>L[E]!==!0);if(M!==void 0)f=f.filter((L)=>L[M]===!0);if(this.options.filter&&this.needle!==void 0)f=this.options.filter(f,this.needle);return this._filteredCache=f,f}visibleSlice(){let{virtual:E}=this.options,M=this.filteredArray(),f=0,L=M.length-1,H=0,J=0;if(E!=null&&this.boundElement instanceof HTMLElement){let Y=this.boundElement.offsetWidth,Z=E.scrollContainer==="window",$,Q;if(Z){$=window.innerHeight;let D=this.boundElement.getBoundingClientRect();Q=Math.max(0,-D.top)}else $=this.boundElement.offsetHeight,Q=this.boundElement.scrollTop;let G=E.width!=null?Math.max(1,Math.floor(Y/E.width)):E.visibleColumns??1,z=Math.ceil(M.length/G);if(E.minHeight!=null){let D=E.minHeight,T=Math.ceil($/D)+(E.rowChunkSize||1),X=G*T,q=z*D,K=Math.max(0,q-$),_=K>0?Math.min(1,Math.max(0,Q/K)):0,W=Math.max(0,z-T+1),A=_*W,w=Math.floor(A);if(E.rowChunkSize)w-=w%E.rowChunkSize;return f=w*G,L=f+X-1,H=Q,J=Math.max(0,q-Q-$),{items:M,firstItem:f,lastItem:L,topBuffer:H,bottomBuffer:J,interpolation:{t:_,position:A,scrollTop:Q,viewportHeight:$,totalScrollHeight:q,rowHeight:E.height}}}else{let D=Math.ceil($/E.height)+(E.rowChunkSize||1),T=G*D,X=Math.floor(Q/E.height);if(X>z-D+1)X=Math.max(0,z-D+1);if(E.rowChunkSize)X-=X%E.rowChunkSize;f=X*G,L=f+T-1,H=X*E.height,J=Math.max((z-D)*E.height-H,0)}}return{items:M,firstItem:f,lastItem:L,topBuffer:H,bottomBuffer:J}}needle;filter=ME((E)=>{if(this.needle!==E)this.needle=E,this.update(this.array)},qL);update(E,M){if(E==null)E=[];if(this.array=E,!M)this._filteredCache=void 0;let{hiddenProp:f,visibleProp:L}=this.options,H=O(E),J=this.visibleSlice();this.boundElement.classList.toggle("-xin-empty-list",J.items.length===0);let Y=this._previousSlice,{firstItem:Z,lastItem:$,topBuffer:Q,bottomBuffer:G}=J,z=f===void 0&&L===void 0&&M===!0&&Y!=null&&Z===Y.firstItem&&$===Y.lastItem;if(z&&J.interpolation==null&&Q===Y.topBuffer&&G===Y.bottomBuffer)return;if(z&&J.interpolation!=null){this._updateInterpolatedBuffers(J);return}this._previousSlice=J;let D=0,T=0,X=0;for(let W of Array.from(this.boundElement.children)){if(W===this.listTop||W===this.listBottom)continue;let A=W[a];if(A==null)W.remove();else{let w=J.items.indexOf(A);if(w<Z||w>$)W.remove(),this.itemToElement.delete(A),D++}}if(this.listTop!=null&&this.listBottom!=null)this.listTop.style.height=String(Q)+"px",this.listBottom.style.height=String(G)+"px";let q=[],{idPath:K}=this.options;for(let W=Z;W<=$;W++){let A=J.items[W];if(A===void 0)continue;let w=this.itemToElement.get(C(A));if(w==null){if(X++,w=t(this.template),typeof A==="object")this.itemToElement.set(C(A),w),w[a]=C(A);if(this.listBottom!=null)this.boundElement.insertBefore(w,this.listBottom);else this.boundElement.append(w);if(K!=null){let o=A[K],VE=`${H}[${K}=${o}]`;Uf(w,VE)}else{let o=`${H}[${W}]`;Uf(w,o)}}q.push(w)}let _=null;for(let W of q){if(W.previousElementSibling!==_)if(T++,_?.nextElementSibling!=null)this.boundElement.insertBefore(W,_.nextElementSibling);else if(this.listBottom!=null)this.boundElement.insertBefore(W,this.listBottom);else this.boundElement.append(W);_=W}if(J.interpolation!=null)this._updateInterpolatedBuffers(J);if(n.perf)console.log(H,"updated",{removed:D,created:X,moved:T})}_updateInterpolatedBuffers(E){let{t:M,position:f,scrollTop:L,viewportHeight:H,totalScrollHeight:J,rowHeight:Y}=E.interpolation,Z=0;for(let z of Array.from(this.boundElement.children)){if(z===this.listTop||z===this.listBottom)continue;Z+=z.offsetHeight||Y}let $=L,Q=L+H-Z,G=Math.max(0,M*Q+(1-M)*$-f%1*Y);if(this.listTop!=null&&this.listBottom!=null)this.listTop.style.height=String(G)+"px",this.listBottom.style.height=String(Math.max(0,J-G-Z))+"px"}}var QE=(E,M,f)=>{let L=E[$E];if(M&&L===void 0)L=new Df(E,M,f),E[$E]=L;return L},PE=(E)=>{let M;while(!(M=E[a])&&E&&E.parentElement)E=E.parentElement;return M?{element:E,item:M}:void 0},mE=(E)=>{let M=PE(E);return M?M.item:void 0},Kf=(E)=>{let M=PE(E);if(!M)return console.error("deleteListItem failed, element is not part of a list instance",E),!1;let f=QE(M.element.parentElement);if(!f.options.idPath)return console.error("deleteListItem failed, list binding has no idPath",E.parentElement,f),!1;let L=f.array.indexOf(M.item);if(L>-1)return f.array.splice(L,1),!0;return!1},OL={start:"start",middle:"center",end:"end",nearest:"nearest"},qf=(E,M,f={})=>{let L=QE(E);if(L==null)return console.error("scrollListItemIntoView failed, element has no list binding",E),!1;let{position:H="middle"}=f,J=L.filteredArray(),Y=C(M)??M,Z=J.indexOf(Y);if(Z===-1)return console.error("scrollListItemIntoView failed, item not found in list",M),!1;let{virtual:$}=L.options;if($!=null&&E instanceof HTMLElement){let Q=$.width!=null?Math.max(1,Math.floor(E.offsetWidth/$.width)):$.visibleColumns??1,G=Math.floor(Z/Q),z=$.minHeight??$.height,D=Math.ceil(J.length/Q),T=$.scrollContainer==="window",X=T?window.innerHeight:E.offsetHeight,q;if($.minHeight!=null){let K=Math.ceil(X/z)+($.rowChunkSize||1),_=D*z,W=Math.max(0,_-X),A=Math.max(1,D-K+1),w=G/A;switch(H){case"start":q=w*W;break;case"end":q=Math.max(0,(G-K+1)/A*W);break;case"nearest":{let o=T?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop,VE=W>0?o/W:0,kM=Math.floor(VE*A);if(G<kM)q=w*W;else if(G>=kM+K)q=Math.max(0,(G-K+1)/A*W);else return!0;break}default:{let o=G-Math.floor(K/2);q=Math.max(0,o)/A*W}}}else{let K=G*$.height;switch(H){case"start":q=K;break;case"end":q=K-X+$.height;break;case"nearest":{let _=T?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop;if(K<_)q=K;else if(K+$.height>_+X)q=K-X+$.height;else return!0;break}default:q=K-(X-$.height)/2}}if(q=Math.max(0,q),T){let K=E.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:K+q,behavior:"smooth"})}else E.scrollTo({top:q,behavior:"smooth"})}else{let Q=L.itemToElement.get(Y);if(Q==null)return console.error("scrollListItemIntoView failed, no DOM element found for item",M),!1;Q.scrollIntoView({block:OL[H]??"center",behavior:"smooth"})}return!0};var{document:KE,MutationObserver:Of}=globalThis,cE=(E,M)=>{let f=u.get(E);if(f==null)return;for(let L of f){let{binding:H,options:J}=L,{path:Y}=L,{toDOM:Z}=H;if(Z!=null){if(Y.startsWith("^")){let $=mE(E);if($!=null&&$[x]!=null)Y=L.path=`${$[x]}${Y.substring(1)}`;else{if(E instanceof HTMLElement)console.warn(`Unresolved relative binding "${Y}" —`,E,"is not part of a list. If this is a list template, wrap it in a <template>.");continue}}if(M==null||Y.startsWith(M))Z(E,TE()[Y],J)}}};if(Of!=null)new Of((M)=>{M.forEach((f)=>{Array.from(f.addedNodes).forEach((L)=>{if(L instanceof Element)Array.from(L.querySelectorAll(h)).forEach((H)=>cE(H))})})}).observe(KE.body,{subtree:!0,childList:!0});N(()=>!0,(E)=>{let M=Array.from(KE.querySelectorAll(h));for(let f of M)cE(f,E)});var Af=(E)=>{let M=E.target?.closest(h);while(M!=null){let f=u.get(M);for(let L of f){let{binding:H,path:J}=L,{fromDOM:Y}=H;if(Y!=null){let Z;try{Z=Y(M,L.options)}catch($){throw console.error("Cannot get value from",M,"via",L),Error("Cannot obtain value fromDOM")}if(Z!=null){let $=TE(),Q=$[J];if(Q==null)$[J]=Z;else{let G=Q[x]!=null?Q[v]:Q,z=Z[x]!=null?Z[v]:Z;if(G!==z)$[J]=z}}}}M=M.parentElement.closest(h)}};if(globalThis.document!=null)KE.body.addEventListener("change",Af,!0),KE.body.addEventListener("input",Af,!0);function c(E,M,f,L){if(E instanceof DocumentFragment)throw Error("bind cannot bind to a DocumentFragment");let H;if(typeof M==="object"&&M[x]===void 0&&L===void 0){let{value:Z}=M;H=typeof Z==="string"?Z:Z[x],L=M,delete L.value}else H=typeof M==="string"?M:M[x];if(H==null)throw Error("bind requires a path or object with xin Proxy");let{toDOM:J}=f;E.classList?.add(pE);let Y=u.get(E);if(Y==null)Y=[],u.set(E,Y);if(Y.push({path:H,binding:f,options:L}),J!=null&&!H.startsWith("^"))B(H);if(L?.filter&&L?.needle)c(E,L.needle,{toDOM(Z,$){console.log({needle:$}),Z[$E]?.filter($)}});return E}var wf=new Set,AL=(E)=>{let M=E?.target?.closest(oE),f=!1,L=new Proxy(E,{get(J,Y){if(Y==="stopPropagation")return()=>{E.stopPropagation(),f=!0};else{let Z=J[Y];return typeof Z==="function"?Z.bind(J):Z}}}),H=new Set;while(!f&&M!=null){let Y=l.get(M)[E.type]||H;for(let Z of Y){if(typeof Z==="function")Z(L);else{let $=TE()[Z];if(typeof $==="function")$(L);else throw Error(`no event handler found at path ${Z}`)}if(f)continue}M=M.parentElement!=null?M.parentElement.closest(oE):null}};function LE(E,M,f){let L=l.get(E);if(E.classList.add(rE),L==null)L={},l.set(E,L);if(!L[M])L[M]=new Set;if(L[M].add(f),!wf.has(M))wf.add(M),KE.body.addEventListener(M,AL,!0);return()=>{L[M].delete(f)}}hM(c,LE);function bE(E,M){if(!E.internals)return;let f={},L="";if(E.hasAttribute("required")&&M==="")f.valueMissing=!0,L="Please fill out this field.";let H=E.getAttribute("minlength");if(H&&M.length<parseInt(H,10))f.tooShort=!0,L=`Please use at least ${H} characters.`;let J=E.getAttribute("maxlength");if(J&&M.length>parseInt(J,10))f.tooLong=!0,L=`Please use no more than ${J} characters.`;let Y=E.getAttribute("pattern");if(Y&&M!=="")try{if(!new RegExp(`^(?:${Y})$`).test(M))f.patternMismatch=!0,L="Please match the requested format."}catch{}if(Object.keys(f).length>0)E.internals.setValidity(f,L,E);else E.internals.setValidity({})}var wL=0;function AM(){return`custom-elt${(wL++).toString(36)}`}var Cf=0,wM=null;function CL(){if(wM===null)wM=new MutationObserver((E)=>{let M=new Set;for(let f of E)if(f.type==="attributes"&&f.target instanceof y){let L=f.target,H=FM(f.attributeName);if(L._legacyTrackedAttrs?.has(H))M.add(L)}for(let f of M)f.queueRender(!1)});return wM}var qE={};function jL(E,M){let f=qE[E],L=s(M).replace(/:host\(([^)]+)\)/g,`${E}$1`).replace(/:host\b/g,E);qE[E]=f?f+`
13
+ `+L:L}function VL(E){if(qE[E])document.head.append(U.style({id:E+"-component"},qE[E]));delete qE[E]}class y extends HTMLElement{static elements=U;static _elementCreator;static initAttributes;static formAssociated;static preferredTagName;static shadowStyleSpec;static lightStyleSpec;static extends;internals;get validity(){return this.internals?.validity}get validationMessage(){return this.internals?.validationMessage??""}get willValidate(){return this.internals?.willValidate??!1}checkValidity(){return this.internals?.checkValidity()??!0}reportValidity(){return this.internals?.reportValidity()??!0}setCustomValidity(E){if(this.internals)if(E)this.internals.setValidity({customError:!0},E);else this.internals.setValidity({})}setValidity(E,M,f){this.internals?.setValidity(E,M,f)}setFormValue(E,M){this.internals?.setFormValue(E,M)}static get observedAttributes(){let E=this.initAttributes;if(E)return["hidden",...Object.keys(E).map(S)];return["hidden"]}instanceId;styleNode;static styleSpec;static styleNode;content=U.slot();isSlotted;static _tagName=null;static get tagName(){return this._tagName}_legacyTrackedAttrs;_attrValues;_valueChanged=!1;static StyleNode(E){return console.warn("StyleNode is deprecated, use static shadowStyleSpec instead"),U.style(s(E))}static elementCreator(E={}){let M=this;if(!Object.prototype.hasOwnProperty.call(M,"_elementCreator")){if(E.tag!==void 0)R("elementCreator-tag","Passing tag to elementCreator() is deprecated. Use static preferredTagName instead.");if(E.styleSpec!==void 0)R("elementCreator-styleSpec","Passing styleSpec to elementCreator() is deprecated. Use static lightStyleSpec instead.");if(E.extends!==void 0)R("elementCreator-extends","Passing extends to elementCreator() is deprecated. Use static extends instead.");let f=E.tag??M.preferredTagName;if(f==null)if(typeof M.name==="string"&&M.name!==""){if(f=S(M.name),f.startsWith("-"))f=f.slice(1)}else f=AM();if(customElements.get(f)!=null)console.warn(`${f} is already defined`);if(f.match(/\w+(-\w+)+/)==null)console.warn(`${f} is not a legal tag for a custom-element`),f=AM();while(customElements.get(f)!==void 0)f=AM();M._tagName=f;let L=E.styleSpec??M.lightStyleSpec;if(L!==void 0)jL(f,L);let H=E.extends??M.extends,J=H?{extends:H}:void 0;window.customElements.define(f,this,J),M._elementCreator=U[f]}return M._elementCreator}initAttributes(...E){if(R("initAttributes","initAttributes() is deprecated. Use static initAttributes = { ... } instead."),!this._legacyTrackedAttrs)this._legacyTrackedAttrs=new Set;for(let H of E)this._legacyTrackedAttrs.add(H);CL().observe(this,{attributes:!0});let f={},L={};E.forEach((H)=>{f[H]=b(this[H]);let J=S(H);Object.defineProperty(this,H,{enumerable:!1,get(){if(typeof f[H]==="boolean")return this.hasAttribute(J);else if(this.hasAttribute(J))return typeof f[H]==="number"?parseFloat(this.getAttribute(J)):this.getAttribute(J);else if(L[H]!==void 0)return L[H];else return f[H]},set(Y){if(typeof f[H]==="boolean"){if(Y!==this[H]){if(Y)this.setAttribute(J,"");else this.removeAttribute(J);this.queueRender()}}else if(typeof f[H]==="number"){if(Y!==parseFloat(this[H]))this.setAttribute(J,Y),this.queueRender()}else if(typeof Y==="object"||`${Y}`!==`${this[H]}`){if(Y===null||Y===void 0||typeof Y==="object")this.removeAttribute(J);else this.setAttribute(J,Y);this.queueRender(),L[H]=Y}}})})}initValue(){let E=Object.getOwnPropertyDescriptor(this,"value");if(E===void 0||E.get!==void 0||E.set!==void 0)return;let M=this.hasAttribute("value")?this.getAttribute("value"):b(this.value);delete this.value,Object.defineProperty(this,"value",{enumerable:!1,get(){return M},set(f){if(M!==f)M=f,this._valueChanged=!0,this.queueRender(!0)}})}_parts;get parts(){let E=this.shadowRoot!=null?this.shadowRoot:this;if(this._parts==null)this._parts=new Proxy({},{get(M,f){if(M[f]===void 0){let L=E.querySelector(`[part="${f}"]`);if(L==null)L=E.querySelector(f);if(L==null)throw Error(`elementRef "${f}" does not exist!`);L.removeAttribute("data-ref"),M[f]=L}return M[f]}});return this._parts}attributeChangedCallback(E,M,f){let L=FM(E);if(!this._legacyTrackedAttrs?.has(L))this.queueRender(!1)}constructor(){super();if(Cf+=1,this.constructor.formAssociated&&typeof this.attachInternals==="function"&&!this.internals)this.internals=this.attachInternals();let E=this.constructor.initAttributes;if(E)this._setupAttributeAccessors(E);this.instanceId=`${this.tagName.toLocaleLowerCase()}-${Cf}`,this._value=b(this.defaultValue)}_setupAttributeAccessors(E){if(!this._attrValues)this._attrValues=new Map;for(let M of Object.keys(E)){let f=S(M),L=E[M];if(M==="value"){console.warn(`${this.tagName}: 'value' cannot be an attribute. Use the Component value property instead.`);continue}if(typeof L==="object"&&L!==null){console.warn(`${this.tagName}: initAttributes.${M} is an object. Use a regular property instead.`);continue}let H=this,J=!1;while(H){let Y=Object.getOwnPropertyDescriptor(H,M);if(Y){if(!Y.configurable||Y.get||Y.set){J=!0;break}break}H=Object.getPrototypeOf(H)}if(J)continue;Object.defineProperty(this,M,{enumerable:!1,get:()=>{if(typeof L==="boolean")return this.hasAttribute(f);else if(this.hasAttribute(f))return typeof L==="number"?parseFloat(this.getAttribute(f)):this.getAttribute(f);else if(this._attrValues.has(M))return this._attrValues.get(M);else return L},set:(Y)=>{if(typeof L==="boolean"){if(Y!==this[M]){if(Y)this.setAttribute(f,"");else this.removeAttribute(f);this.queueRender()}}else if(typeof L==="number"){if(Y!==parseFloat(this[M]))this.setAttribute(f,Y),this.queueRender()}else if(typeof Y==="object"||`${Y}`!==`${this[M]}`){if(Y===null||Y===void 0||typeof Y==="object")this.removeAttribute(f);else this.setAttribute(f,Y);this.queueRender(),this._attrValues.set(M,Y)}}})}}connectedCallback(){if(VL(this.constructor.tagName),this.hydrate(),this.role!=null)this.setAttribute("role",this.role);if(this.constructor.formAssociated&&!this.hasAttribute("tabindex"))this.setAttribute("tabindex","0");if(this.onResize!==void 0){if(XE.observe(this),this._onResize==null)this._onResize=this.onResize.bind(this);this.addEventListener("resize",this._onResize)}if(this.value!=null&&this.getAttribute("value")!=null)this._value=this.getAttribute("value");if(this.internals&&this.value!==void 0)this.internals.setFormValue(this.value),this.validateValue();this.queueRender()}disconnectedCallback(){XE.unobserve(this)}formResetCallback(){if(this.value!==void 0)this.value=this.defaultValue??""}formDisabledCallback(E){if(E)this.setAttribute("disabled","");else this.removeAttribute("disabled")}formStateRestoreCallback(E){if(this.value!==void 0&&typeof E==="string")this.value=E}_changeQueued=!1;_renderQueued=!1;queueRender(E=!1){if(!this._hydrated)return;if(!this._changeQueued)this._changeQueued=E;if(!this._renderQueued)this._renderQueued=!0,requestAnimationFrame(()=>{if(this._changeQueued){if(QM(this,"change"),this.internals&&this.value!==void 0)this.internals.setFormValue(this.value)}this._changeQueued=!1,this._renderQueued=!1,this.render()})}_hydrated=!1;hydrate(){if(!this._hydrated){this.initValue();let E=typeof this.content!=="function",M=typeof this.content==="function"?this.content(U):this.content;if(Array.isArray(M)){let J={};M=M.filter((Y)=>{if(Y instanceof Node||typeof Y==="string"||typeof Y==="number"||O(Y))return!0;return Object.assign(J,Y),!1});for(let Y of Object.keys(J))xE(this,Y,J[Y])}let f=this.constructor,L=f.shadowStyleSpec??f.styleSpec;if(f.styleSpec&&!f.shadowStyleSpec)R("static-styleSpec","static styleSpec is deprecated. Use static shadowStyleSpec instead.");let{styleNode:H}=f;if(L)H=f.styleNode=U.style(s(L)),delete f.styleNode;if(this.styleNode)console.warn(this,"styleNode is deprecated, use static shadowStyleSpec instead"),H=this.styleNode;if(H){let J=this.attachShadow({mode:"open"});J.appendChild(H.cloneNode(!0)),GM(J,M,E)}else if(M!==null){let J=Array.from(this.childNodes);GM(this,M,E),this.isSlotted=this.querySelector("slot,tosi-slot,xin-slot")!==void 0;let Y=Array.from(this.querySelectorAll("slot"));if(Y.length>0)Y.forEach(uE.replaceSlot);if(J.length>0){let Z={"":this};Array.from(this.querySelectorAll("tosi-slot,xin-slot")).forEach(($)=>{Z[$.name]=$}),J.forEach(($)=>{let Q=Z[""],G=$ instanceof Element?Z[$.slot]:Q;(G!==void 0?G:Q).append($)})}}this._hydrated=!0}}render(){if(this._valueChanged&&this.internals&&this.value!==void 0)this.internals.setFormValue(this.value),this.validateValue();this._valueChanged=!1}validateValue(){if(!this.internals||this.value===void 0)return;let E=typeof this.value==="string"?this.value:String(this.value);bE(this,E)}}class uE extends y{static preferredTagName="tosi-slot";static initAttributes={name:""};content=null;static replaceSlot(E){let M=document.createElement("tosi-slot");if(E.name!=="")M.setAttribute("name",E.name);E.replaceWith(M)}}var jf=uE.elementCreator();class Vf extends y{static preferredTagName="xin-slot";static initAttributes={name:""};content=null;constructor(){super();R("xin-slot","<xin-slot> is deprecated. Use <tosi-slot> instead.")}static replaceSlot=uE.replaceSlot}var Rf=Vf.elementCreator();var Tf=(E=()=>!0)=>{let M=localStorage.getItem("xin-state");if(M!=null){let L=JSON.parse(M);for(let H of Object.keys(L).filter(E))if(V[H]!==void 0)Object.assign(V[H],L[H]);else V[H]=L[H]}let f=ZE(()=>{let L={},H=C(V);for(let J of Object.keys(H).filter(E))L[J]=H[J];localStorage.setItem("xin-state",JSON.stringify(L)),console.log("xin state saved to localStorage")},500);GE(E,f)};var RL="tosijs-share",TL="tosijs-share",OE="shared",IL=1,jM=new Set,VM=new Set,CM=new Map,JE=null,RM="",vE=null,kL=null;function If(){if(vE!=null)return Promise.resolve(vE);return new Promise((E,M)=>{let f=indexedDB.open(TL,IL);f.onupgradeneeded=()=>{f.result.createObjectStore(OE)},f.onsuccess=()=>{vE=f.result,E(vE)},f.onerror=()=>M(f.error)})}var BL={async get(E){let M=await If();return new Promise((f,L)=>{let J=M.transaction(OE,"readonly").objectStore(OE).get(E);J.onsuccess=()=>f(J.result),J.onerror=()=>L(J.error)})},async set(E,M){let f=await If();return new Promise((L,H)=>{let J=f.transaction(OE,"readwrite");J.objectStore(OE).put(M,E),J.oncomplete=()=>L(),J.onerror=()=>H(J.error)})}};function kf(){return kL??BL}function SL(E){return E!=null&&E.type==="tosijs-share"&&typeof E.path==="string"}function Bf(E){for(let M of jM)if(E===M||E.startsWith(M+"."))return M;return}function _L(E){for(let M of VM)if(E===M||E.startsWith(M+"."))return!0;return!1}function xL(E,M){VM.add(E),e(I,E,M),B(E),EE().then(()=>{VM.delete(E)})}function NL(){if(JE!=null)return JE;return RM=crypto.randomUUID(),JE=new BroadcastChannel(RL),JE.onmessage=(E)=>{let M=E.data;if(!SL(M))return;if(M.origin===RM)return;if(Bf(M.path)===void 0)return;xL(M.path,M.value)},JE}function yL(E,M){if(JE==null)return;let f={type:"tosijs-share",path:E,value:M,origin:RM};JE.postMessage(f)}function PL(E){if(!CM.has(E))CM.set(E,ZE(()=>{let M=j(I,E);kf().set(E,M)},500));CM.get(E)()}async function Sf(...E){if(typeof BroadcastChannel>"u")return{restored:[]};NL();let M=[],f=kf();for(let L of E){let H=typeof L==="string"?L:O(L);if(H===void 0)throw Error("share() requires boxed proxies or string paths. Got a non-proxy value.");if(jM.has(H))continue;jM.add(H);let J=await f.get(H);if(J!==void 0)e(I,H,J),B(H),M.push(L);else{let Y=j(I,H);await f.set(H,Y)}N((Y)=>Y===H||Y.startsWith(H+"."),(Y)=>{if(_L(Y))return;let Z=Bf(Y);if(Z===void 0)return;let $=j(I,Y);yL(Y,$),PL(Z)})}return{restored:M}}var TM=new Set;function _f(E,M){for(let f of E)if(M===f||M.startsWith(f+"."))return f;return}function mL(E){for(let M of TM)if(E===M||E.startsWith(M+"."))return!0;return!1}function cL(E,M){TM.add(E),e(I,E,M),B(E),EE().then(()=>{TM.delete(E)})}async function xf(E,M,...f){let L=new Set,H=[],J=[],Y=M.throttleInterval??100;await E.connect();let Z=ME(()=>{if(H.length===0)return;let $=H.splice(0);E.send($)},Y);E.onReceive(($)=>{for(let Q of $){if(_f(L,Q.path)===void 0)continue;cL(Q.path,Q.value)}});for(let $ of f){let Q=typeof $==="string"?$:O($);if(Q===void 0)throw Error("sync() requires boxed proxies or string paths. Got a non-proxy value.");L.add(Q);let G=N((z)=>z===Q||z.startsWith(Q+"."),(z)=>{if(mL(z))return;if(_f(L,z)===void 0)return;let D=j(I,z);H.push({path:z,value:D}),Z()});J.push(G)}return{disconnect(){for(let $ of J)P($);J.length=0,L.clear(),H.length=0,E.disconnect()}}}var gE="1.5.4";function AE(E){return Object.assign(k,E),k}function wE(E){return R("boxedProxy","boxedProxy is deprecated, please use tosi() instead"),AE(E)}var bL=new FinalizationRegistry((E)=>{E()});function Nf(E,M){let f=fM();k[f]=E;let L=k[f],H=()=>{delete V[f]};if(M)bL.register(M,H);return[L,H]}function dE(E,M=!1){if(M)return R("xinProxy-boxed","xinProxy(..., true) is deprecated; use tosi(...) instead"),wE(E);return Object.keys(E).forEach((f)=>{V[f]=E[f]}),V}var uL={};async function CE(E,M){let f=await M(E,{Color:F,Component:y,elements:U,svgElements:NE,mathML:yE,varDefault:UE,vars:SE,xin:V,boxed:k,xinProxy:dE,boxedProxy:wE,tosi:AE,makeComponent:CE,bind:c,on:LE,version:gE}),{type:L}=f;L.preferredTagName=E;let H=f.lightStyleSpec??f.styleSpec;if(H)L.lightStyleSpec=H;let J={type:L,creator:L.elementCreator()};return uL[E]=J,J}var hE={":host":{display:"none"}},IM={},vL=(E)=>import(E);class jE extends y{static preferredTagName="tosi-blueprint";static lightStyleSpec=hE;static initAttributes={tag:"anon-elt",src:"",property:"default"};loaded;blueprintLoaded=(E)=>{};async packaged(){let{tag:E,src:M,property:f}=this,L=`${E}.${f}:${M}`;if(!this.loaded){if(IM[L]===void 0)IM[L]=vL(M).then((H)=>{let J=H[f];return CE(E,J)});else console.log(`using cached ${E} with signature ${L}`);this.loaded=await IM[L],this.blueprintLoaded(this.loaded)}return this.loaded}}var yf=jE.elementCreator();class nE extends y{static preferredTagName="tosi-loader";static lightStyleSpec=hE;allLoaded=()=>{};async load(){let M=Array.from(this.querySelectorAll("tosi-blueprint, xin-blueprint")).filter((f)=>f.src).map((f)=>f.packaged());await Promise.all(M),this.allLoaded()}connectedCallback(){super.connectedCallback(),this.load()}}var Pf=nE.elementCreator();class mf extends jE{static preferredTagName="xin-blueprint";static lightStyleSpec=hE;constructor(){super();R("xin-blueprint","<xin-blueprint> is deprecated. Use <tosi-blueprint> instead.")}}var cf=mf.elementCreator();class bf extends y{static preferredTagName="xin-loader";static lightStyleSpec=hE;allLoaded=()=>{};constructor(){super();R("xin-loader","<xin-loader> is deprecated. Use <tosi-loader> instead.")}async load(){let M=Array.from(this.querySelectorAll("xin-blueprint")).filter((f)=>f.src).map((f)=>f.packaged());await Promise.all(M),this.allLoaded()}connectedCallback(){super.connectedCallback(),this.load()}}var uf=bf.elementCreator();})();
14
14
 
15
- //# debugId=CB0FAB542E5FDF3F64756E2164756E21
15
+ //# debugId=08DFEA7C82EA19CB64756E2164756E21
16
16
  //# sourceMappingURL=index.js.map