tosijs 1.5.1 → 1.5.2

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.
@@ -1,5 +1,6 @@
1
- import { ElementCreator } from './xin-types';
1
+ import { ElementProps, ElementCreator } from './xin-types';
2
2
  import { type ElementsProxy } from './elements-types';
3
+ export declare const elementSet: (elt: HTMLElement, key: string, value: any) => void;
3
4
  /**
4
5
  * elements is a proxy that produces ElementCreators, e.g.
5
6
  * elements.div() creates <div> elements and
@@ -14,4 +15,5 @@ interface MathMLElementsProxy {
14
15
  [key: string]: ElementCreator<MathMLElement>;
15
16
  }
16
17
  export declare const mathML: MathMLElementsProxy;
18
+ export declare function bindParts(root: Element, bindingMap: Record<string, ElementProps>, dataAttribute?: string): void;
17
19
  export {};
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export type { XinStyleSheet, XinStyleMap, XinStyleRule } from './css-types';
6
6
  export { Color } from './color';
7
7
  export { Component } from './component';
8
8
  export { validateAgainstConstraints, type FormValidation, } from './form-validation';
9
- export { elements, svgElements, mathML } from './elements';
9
+ export { elements, svgElements, mathML, bindParts } from './elements';
10
10
  export type { ElementsProxy } from './elements-types';
11
11
  export { getCssVar } from './get-css-var';
12
12
  export { hotReload } from './hot-reload';
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- (()=>{var{defineProperty:gE,getOwnPropertyNames:_M,getOwnPropertyDescriptor:mM}=Object,NM=Object.prototype.hasOwnProperty;function PM(E){return this[E]}var cM=(E)=>{var f=(kf??=new WeakMap).get(E),M;if(f)return f;if(f=gE({},"__esModule",{value:!0}),E&&typeof E==="object"||typeof E==="function"){for(var L of _M(E))if(!NM.call(f,L))gE(f,L,{get:PM.bind(E,L),enumerable:!(M=mM(E,L))||M.enumerable})}return kf.set(E,f),f},kf;var bM=(E)=>E;function uM(E,f){this[E]=bM.bind(null,f)}var nM=(E,f)=>{for(var M in f)gE(E,M,{get:f[M],enumerable:!0,configurable:!0,set:uM.bind(f,M)})};var mL={};nM(mL,{xinValue:()=>_f,xinProxy:()=>nE,xinPath:()=>Sf,xin:()=>C,warnDeprecated:()=>V,version:()=>uE,vars:()=>BE,varDefault:()=>WE,validateAgainstConstraints:()=>cE,updates:()=>EE,unobserve:()=>m,touchElement:()=>PE,touch:()=>R,tosiValue:()=>T,tosiSetValue:()=>yf,tosiPath:()=>A,tosiLoader:()=>RM,tosiBlueprint:()=>kM,tosi:()=>KE,throttle:()=>fE,sync:()=>VM,svgElements:()=>SE,share:()=>CM,settings:()=>i,scrollListItemIntoView:()=>WM,onThemePreferencesChange:()=>LM,onStylesheetChange:()=>ef,on:()=>LE,observe:()=>GE,mathML:()=>_E,makeComponent:()=>TE,invertLuminance:()=>MM,initVars:()=>fM,hotReload:()=>KM,getThemePreferences:()=>Gf,getListItem:()=>NE,getListInstance:()=>mE,getListBinding:()=>QE,getCssVar:()=>RE,elements:()=>W,deprecated:()=>xE,deleteListItem:()=>zM,debounce:()=>ZE,css:()=>s,boxedProxy:()=>AE,boxed:()=>B,blueprintLoader:()=>SM,blueprint:()=>BM,bindings:()=>zE,bind:()=>P,StyleSheet:()=>af,MoreMath:()=>pf,Component:()=>c,Color:()=>w,BlueprintLoader:()=>dE,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 hE="-xin-data",g=`.${hE}`,sE="-xin-event",oE=`.${sE}`,S=Symbol.for("xin-path"),n=Symbol.for("xin-value"),rE="xinObserve",pE="xinBind",lE="xinOn",YE=Symbol("list-binding"),t=Symbol("list-instance"),iE=new Map;function If(E,f){let M=iE.get(E);if(M===void 0)M=new Set,iE.set(E,M);M.add(f)}function Bf(E){return iE.get(E)}var Rf=new Set;function V(E,f){if(!Rf.has(E))console.warn(f),Rf.add(E)}function xE(E,f){let M=!1;return(...L)=>{if(!M)console.warn(f),M=!0;return E(...L)}}var A=(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 yf(E,f){if(A(E)===void 0)throw Error("tosiSetValue requires a xin or boxed proxy");E[n]=f}var Sf=xE(A,"xinPath is deprecated. Use tosiPath instead."),_f=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 vM=(E)=>{try{return JSON.stringify(E)}catch(f){return"{has circular references}"}},tE=(...E)=>Error(E.map(vM).join(" "));var dM=()=>new Date(parseInt("1000000000",36)+Date.now()).valueOf().toString(36).slice(1),gM=0,iM=()=>(parseInt("10000",36)+ ++gM).toString(36).slice(-5),hM=()=>dM()+iM(),aE=Symbol("delete"),Pf=Symbol("new-object"),eE=Symbol("automatic-index");function cf(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 bf(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[eE]===void 0)L[eE]=hM();M[L[eE]+""]=H});else E.forEach((L,H)=>{M[j(L,f)+""]=H});return M}function sM(E,f){if(v.get(E)===void 0||v.get(E)[f]===void 0)return bf(E,f);else return v.get(E)[f]}function oM(E,f,M){M=M+"";let L=sM(E,f)[M];if(L===void 0||j(E[L],f)+""!==M)L=bf(E,f)[M];return L}function rM(E,f,M){if(E[f]===void 0&&M!==void 0)E[f]=M;return E[f]}function uf(E,f,M,L){let H=f!==""?oM(E,f,M):M;if(L===aE)return E.splice(H,1),v.delete(E),Symbol("deleted");else if(L===Pf){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 tE("setByPath failed: expected array, found",E)}function Nf(E){if(E==null||!(E instanceof Object))throw tE("setByPath failed: expected Object, found",E)}function j(E,f){let M=cf(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=uf(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=cf(f);while(L!=null&&H.length>0){let J=H.shift();if(typeof J==="string"){let $=J.indexOf("=");if($>-1){if($===0)Nf(L);else mf(L);let Z=J.slice(0,$),Y=J.slice($+1);if(L=uf(L,Z,Y,H.length>0?Pf:M),H.length===0)return!0}else{mf(L);let Z=parseInt(J,10);if(H.length>0)L=L[Z];else{if(M!==aE){if(L[Z]===M)return!1;L[Z]=M}else L.splice(Z,1);return!0}}}else if(Array.isArray(J)&&J.length>0){Nf(L);while(J.length>0){let $=J.shift();if(J.length>0||H.length>0)L=rM(L,$,J.length>0?{}:[]);else{if(M!==aE){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 k={},Ef=null,nf=(E)=>{Ef=E},VE=()=>{if(Ef===null)throw Error("xin proxy not initialized");return Ef},ff=null,Mf=null,vf=(E,f)=>{ff=E,Mf=f},wE=()=>{if(ff===null)throw Error("bind not initialized");return ff},FE=()=>{if(Mf===null)throw Error("on not initialized");return Mf};var df=Symbol("observer should be removed"),kE=[],$E=[],Lf=!1,Hf,Jf;function pM(E,f,M,L){let H=Bf(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 gf{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");kE.push(this)}}var EE=async()=>{if(Hf===void 0)return;await Hf},lM=()=>{if(i.perf)console.time("xin async update");let E=Array.from($E);$E.length=0,Lf=!1;for(let f of E)kE.filter((M)=>{let L;try{L=M.test(f)}catch(H){throw Error(`Listener ${M.description} threw "${H}" at "${f}"`)}if(L===df)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===df)m(M)});if(typeof Jf==="function")Jf();if(i.perf)console.timeEnd("xin async update")},R=(E)=>{let f=typeof E==="string"?E:A(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(Lf===!1)Hf=new Promise((L)=>{Jf=L}),Lf=setTimeout(lM);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(k,`${L}[${$}]`);if(Z!=null){let Y=pM(L,$,Z,J);for(let Q of Y)if($E.find((G)=>Q.startsWith(G))==null)$E.push(Q)}}},_=(E,f)=>{return new gf(E,f)},m=(E)=>{let f=kE.indexOf(E);if(f>-1)kE.splice(f,1);else throw Error("unobserve failed, listener not found")};var Yf=(E,f)=>{let M=new Event(f);E.dispatchEvent(M)},sf=(E)=>{if(E instanceof HTMLInputElement)return E.type;else if(E instanceof HTMLSelectElement&&E.hasAttribute("multiple"))return"multi-select";else return"other"},of=(E,f)=>{switch(sf(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}},rf=(E)=>{switch(sf(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:hf}=globalThis,XE=hf!=null?new hf((E)=>{for(let f of E){let M=f.target;Yf(M,"resize")}}):{observe(){},unobserve(){}},$f=(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:of,fromDOM(E){return rf(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 I(E){return E.replace(/[A-Z]/g,(f)=>{return`-${f.toLocaleLowerCase()}`})}function Zf(E){return E.replace(/-([a-z])/g,(f,M)=>{return M.toLocaleUpperCase()})}var tM=180/Math.PI,eM=Math.PI/180;function N(E,f,M){return M<E?NaN:f<E?E:f>M?M:f}function d(E,f,M,L=!0){if(L)M=N(0,M,1);return M*(f-E)+E}var pf={RADIANS_TO_DEGREES:tM,DEGREES_TO_RADIANS:eM,clamp:N,lerp:d};function RE(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 aM=(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 lf{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 w{r;g;b;a;static fromVar(E,f=document.body){return w.fromCss(RE(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 w(parseInt(Y[0]+Y[0],16),parseInt(Y[1]+Y[1],16),parseInt(Y[2]+Y[2],16));if(Y.length===4)return new w(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 w(parseInt(Y.slice(0,2),16),parseInt(Y.slice(2,4),16),parseInt(Y.slice(4,6),16));if(Y.length===8)return new w(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 w(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,x,X)=>{if(X<0)X+=1;if(X>1)X-=1;if(X<0.16666666666666666)return U+(x-U)*6*X;if(X<0.5)return x;if(X<0.6666666666666666)return U+(x-U)*(0.6666666666666666-X)*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 w(H*255,J*255,$*255,L);return Z.hslCached={h:(E%360+360)%360,s:f,l:M},Z}static black=new w(0,0,0);static white=new w(255,255,255);constructor(E,f,M,L=1){this.r=N(0,E,255),this.g=N(0,f,255),this.b=N(0,M,255),this.a=N(0,L,1)}get inverse(){return new w(255-this.r,255-this.g,255-this.b,this.a)}get inverseLuminance(){let{h:E,s:f,l:M}=this._hsl;return w.fromHsl(E,f,1-M,this.a)}get opaque(){return this.a===1?this:new w(this.r,this.g,this.b,1)}contrasting(E=1){return this.opaque.blend(this.brightness>0.5?w.black:w.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 lf(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 w(E,E,E)}get brightness(){return aM(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=N(0,L+E*(1-L),1);return w.fromHsl(f,M,H,this.a)}darken(E){let{h:f,s:M,l:L}=this._hsl,H=N(0,L*(1-E),1);return w.fromHsl(f,M,H,this.a)}saturate(E){let{h:f,s:M,l:L}=this._hsl,H=N(0,M+E*(1-M),1);return w.fromHsl(f,H,L,this.a)}desaturate(E){let{h:f,s:M,l:L}=this._hsl,H=N(0,M*(1-E),1);return w.fromHsl(f,H,L,this.a)}rotate(E){let{h:f,s:M,l:L}=this._hsl,H=(f+360+E)%360;return w.fromHsl(H,M,L,this.a)}opacity(E){let{h:f,s:M,l:L}=this._hsl;return w.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 w(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 w.fromHsl(M.s===0?L.h:L.s===0?M.h:w.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 w.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(!w.computedColors.has(E))w.computedColors.set(E,{varName:f,scale:M,method:L}),w.queueRecompute()}static queueRecompute(){if(w.recomputeQueued)return;w.recomputeQueued=!0,queueMicrotask(()=>{w.recomputeQueued=!1,w.recomputeColors()})}static recomputeColors(){if(w.computedColors.size===0)return;let E=[];for(let[M,{varName:L,scale:H,method:J}]of w.computedColors)try{let $=w.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:gE,getOwnPropertyNames:PM,getOwnPropertyDescriptor:cM}=Object,bM=Object.prototype.hasOwnProperty;function uM(E){return this[E]}var nM=(E)=>{var f=(Rf??=new WeakMap).get(E),M;if(f)return f;if(f=gE({},"__esModule",{value:!0}),E&&typeof E==="object"||typeof E==="function"){for(var L of PM(E))if(!bM.call(f,L))gE(f,L,{get:uM.bind(E,L),enumerable:!(M=cM(E,L))||M.enumerable})}return Rf.set(E,f),f},Rf;var vM=(E)=>E;function dM(E,f){this[E]=vM.bind(null,f)}var gM=(E,f)=>{for(var M in f)gE(E,M,{get:f[M],enumerable:!0,configurable:!0,set:dM.bind(f,M)})};var PL={};gM(PL,{xinValue:()=>_f,xinProxy:()=>nE,xinPath:()=>Sf,xin:()=>C,warnDeprecated:()=>V,version:()=>uE,vars:()=>BE,varDefault:()=>WE,validateAgainstConstraints:()=>cE,updates:()=>EE,unobserve:()=>m,touchElement:()=>PE,touch:()=>k,tosiValue:()=>A,tosiSetValue:()=>yf,tosiPath:()=>T,tosiLoader:()=>yM,tosiBlueprint:()=>BM,tosi:()=>KE,throttle:()=>fE,sync:()=>IM,svgElements:()=>SE,share:()=>RM,settings:()=>i,scrollListItemIntoView:()=>qM,onThemePreferencesChange:()=>LM,onStylesheetChange:()=>ef,on:()=>LE,observe:()=>GE,mathML:()=>_E,makeComponent:()=>AE,invertLuminance:()=>MM,initVars:()=>fM,hotReload:()=>jM,getThemePreferences:()=>Gf,getListItem:()=>NE,getListInstance:()=>mE,getListBinding:()=>QE,getCssVar:()=>kE,elements:()=>W,deprecated:()=>xE,deleteListItem:()=>DM,debounce:()=>ZE,css:()=>s,boxedProxy:()=>TE,boxed:()=>B,blueprintLoader:()=>NM,blueprint:()=>_M,bindings:()=>zE,bindParts:()=>GM,bind:()=>P,StyleSheet:()=>af,MoreMath:()=>pf,Component:()=>c,Color:()=>w,BlueprintLoader:()=>dE,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 hE="-xin-data",g=`.${hE}`,sE="-xin-event",oE=`.${sE}`,S=Symbol.for("xin-path"),n=Symbol.for("xin-value"),rE="xinObserve",pE="xinBind",lE="xinOn",YE=Symbol("list-binding"),t=Symbol("list-instance"),iE=new Map;function If(E,f){let M=iE.get(E);if(M===void 0)M=new Set,iE.set(E,M);M.add(f)}function Bf(E){return iE.get(E)}var kf=new Set;function V(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 T=(E)=>{return E&&E[S]||void 0};function A(E){if(typeof E==="object"&&E!==null){let f=E[n];return f!==void 0?f:E}return E}function yf(E,f){if(T(E)===void 0)throw Error("tosiSetValue requires a xin or boxed proxy");E[n]=f}var Sf=xE(T,"xinPath is deprecated. Use tosiPath instead."),_f=xE(A,"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 iM=(E)=>{try{return JSON.stringify(E)}catch(f){return"{has circular references}"}},tE=(...E)=>Error(E.map(iM).join(" "));var hM=()=>new Date(parseInt("1000000000",36)+Date.now()).valueOf().toString(36).slice(1),sM=0,oM=()=>(parseInt("10000",36)+ ++sM).toString(36).slice(-5),rM=()=>hM()+oM(),aE=Symbol("delete"),Pf=Symbol("new-object"),eE=Symbol("automatic-index");function cf(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 bf(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[eE]===void 0)L[eE]=rM();M[L[eE]+""]=H});else E.forEach((L,H)=>{M[j(L,f)+""]=H});return M}function pM(E,f){if(v.get(E)===void 0||v.get(E)[f]===void 0)return bf(E,f);else return v.get(E)[f]}function lM(E,f,M){M=M+"";let L=pM(E,f)[M];if(L===void 0||j(E[L],f)+""!==M)L=bf(E,f)[M];return L}function tM(E,f,M){if(E[f]===void 0&&M!==void 0)E[f]=M;return E[f]}function uf(E,f,M,L){let H=f!==""?lM(E,f,M):M;if(L===aE)return E.splice(H,1),v.delete(E),Symbol("deleted");else if(L===Pf){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 tE("setByPath failed: expected array, found",E)}function Nf(E){if(E==null||!(E instanceof Object))throw tE("setByPath failed: expected Object, found",E)}function j(E,f){let M=cf(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=uf(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=cf(f);while(L!=null&&H.length>0){let J=H.shift();if(typeof J==="string"){let $=J.indexOf("=");if($>-1){if($===0)Nf(L);else mf(L);let Z=J.slice(0,$),Y=J.slice($+1);if(L=uf(L,Z,Y,H.length>0?Pf:M),H.length===0)return!0}else{mf(L);let Z=parseInt(J,10);if(H.length>0)L=L[Z];else{if(M!==aE){if(L[Z]===M)return!1;L[Z]=M}else L.splice(Z,1);return!0}}}else if(Array.isArray(J)&&J.length>0){Nf(L);while(J.length>0){let $=J.shift();if(J.length>0||H.length>0)L=tM(L,$,J.length>0?{}:[]);else{if(M!==aE){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={},Ef=null,nf=(E)=>{Ef=E},VE=()=>{if(Ef===null)throw Error("xin proxy not initialized");return Ef},ff=null,Mf=null,vf=(E,f)=>{ff=E,Mf=f},wE=()=>{if(ff===null)throw Error("bind not initialized");return ff},FE=()=>{if(Mf===null)throw Error("on not initialized");return Mf};var df=Symbol("observer should be removed"),RE=[],$E=[],Lf=!1,Hf,Jf;function eM(E,f,M,L){let H=Bf(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 gf{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(Hf===void 0)return;await Hf},aM=()=>{if(i.perf)console.time("xin async update");let E=Array.from($E);$E.length=0,Lf=!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===df)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===df)m(M)});if(typeof Jf==="function")Jf();if(i.perf)console.timeEnd("xin async update")},k=(E)=>{let f=typeof E==="string"?E:T(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(Lf===!1)Hf=new Promise((L)=>{Jf=L}),Lf=setTimeout(aM);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=eM(L,$,Z,J);for(let Q of Y)if($E.find((G)=>Q.startsWith(G))==null)$E.push(Q)}}},_=(E,f)=>{return new gf(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 Yf=(E,f)=>{let M=new Event(f);E.dispatchEvent(M)},sf=(E)=>{if(E instanceof HTMLInputElement)return E.type;else if(E instanceof HTMLSelectElement&&E.hasAttribute("multiple"))return"multi-select";else return"other"},of=(E,f)=>{switch(sf(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}},rf=(E)=>{switch(sf(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:hf}=globalThis,XE=hf!=null?new hf((E)=>{for(let f of E){let M=f.target;Yf(M,"resize")}}):{observe(){},unobserve(){}},$f=(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:of,fromDOM(E){return rf(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 I(E){return E.replace(/[A-Z]/g,(f)=>{return`-${f.toLocaleLowerCase()}`})}function Zf(E){return E.replace(/-([a-z])/g,(f,M)=>{return M.toLocaleUpperCase()})}var EL=180/Math.PI,fL=Math.PI/180;function N(E,f,M){return M<E?NaN:f<E?E:f>M?M:f}function d(E,f,M,L=!0){if(L)M=N(0,M,1);return M*(f-E)+E}var pf={RADIANS_TO_DEGREES:EL,DEGREES_TO_RADIANS:fL,clamp:N,lerp:d};function kE(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 ML=(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 lf{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 w{r;g;b;a;static fromVar(E,f=document.body){return w.fromCss(kE(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 w(parseInt(Y[0]+Y[0],16),parseInt(Y[1]+Y[1],16),parseInt(Y[2]+Y[2],16));if(Y.length===4)return new w(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 w(parseInt(Y.slice(0,2),16),parseInt(Y.slice(2,4),16),parseInt(Y.slice(4,6),16));if(Y.length===8)return new w(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 w(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,x,X)=>{if(X<0)X+=1;if(X>1)X-=1;if(X<0.16666666666666666)return U+(x-U)*6*X;if(X<0.5)return x;if(X<0.6666666666666666)return U+(x-U)*(0.6666666666666666-X)*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 w(H*255,J*255,$*255,L);return Z.hslCached={h:(E%360+360)%360,s:f,l:M},Z}static black=new w(0,0,0);static white=new w(255,255,255);constructor(E,f,M,L=1){this.r=N(0,E,255),this.g=N(0,f,255),this.b=N(0,M,255),this.a=N(0,L,1)}get inverse(){return new w(255-this.r,255-this.g,255-this.b,this.a)}get inverseLuminance(){let{h:E,s:f,l:M}=this._hsl;return w.fromHsl(E,f,1-M,this.a)}get opaque(){return this.a===1?this:new w(this.r,this.g,this.b,1)}contrasting(E=1){return this.opaque.blend(this.brightness>0.5?w.black:w.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 lf(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 w(E,E,E)}get brightness(){return ML(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=N(0,L+E*(1-L),1);return w.fromHsl(f,M,H,this.a)}darken(E){let{h:f,s:M,l:L}=this._hsl,H=N(0,L*(1-E),1);return w.fromHsl(f,M,H,this.a)}saturate(E){let{h:f,s:M,l:L}=this._hsl,H=N(0,M+E*(1-M),1);return w.fromHsl(f,H,L,this.a)}desaturate(E){let{h:f,s:M,l:L}=this._hsl,H=N(0,M*(1-E),1);return w.fromHsl(f,H,L,this.a)}rotate(E){let{h:f,s:M,l:L}=this._hsl,H=(f+360+E)%360;return w.fromHsl(H,M,L,this.a)}opacity(E){let{h:f,s:M,l:L}=this._hsl;return w.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 w(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 w.fromHsl(M.s===0?L.h:L.s===0?M.h:w.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 w.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(!w.computedColors.has(E))w.computedColors.set(E,{varName:f,scale:M,method:L}),w.queueRecompute()}static queueRecompute(){if(w.recomputeQueued)return;w.recomputeQueued=!0,queueMicrotask(()=>{w.recomputeQueued=!1,w.recomputeColors()})}static recomputeColors(){if(w.computedColors.size===0)return;let E=[];for(let[M,{varName:L,scale:H,method:J}]of w.computedColors)try{let $=w.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 {
2
2
  ${E.join(`
3
3
  `)}
4
- }`;if(w.computedColorStylesheet===null)w.computedColorStylesheet=document.createElement("style"),w.computedColorStylesheet.id="tosijs-computed-colors",document.head.append(w.computedColorStylesheet);w.computedColorStylesheet.textContent=f}}var IE=new Set,tf=!1;function EL(){if(!tf)tf=!0,IE.add(()=>w.queueRecompute())}function ef(E){return IE.add(E),()=>IE.delete(E)}function fL(){EL();for(let E of IE)E()}function af(E,f){let M=T(f),L=W.style(s(M));L.id=E,document.head.append(L);let H=A(f);if(H!==void 0)GE(H,()=>{L.textContent=s(T(f)),fL()})}var ML=/^(animation-iteration-count|column-count|flex(-grow|-shrink)?|font-weight|line-height|opacity|order|orphans|scale|tab-size|widows|z-index|zoom)$/,Qf=(E,f)=>{if(typeof f==="number"&&!ML.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)}},LL=(E,f,M)=>{if(M===void 0)return"";if(M instanceof w)M=M.html;let L=Qf(f,M);return`${E} ${L.prop}: ${L.value};`},EM=(E,f,M="")=>{let L=I(E);if(typeof f==="object"&&!(f instanceof w)){let H=Object.keys(f).map((J)=>EM(J,f[J],`${M} `)).join(`
4
+ }`;if(w.computedColorStylesheet===null)w.computedColorStylesheet=document.createElement("style"),w.computedColorStylesheet.id="tosijs-computed-colors",document.head.append(w.computedColorStylesheet);w.computedColorStylesheet.textContent=f}}var IE=new Set,tf=!1;function LL(){if(!tf)tf=!0,IE.add(()=>w.queueRecompute())}function ef(E){return IE.add(E),()=>IE.delete(E)}function HL(){LL();for(let E of IE)E()}function af(E,f){let M=A(f),L=W.style(s(M));L.id=E,document.head.append(L);let H=T(f);if(H!==void 0)GE(H,()=>{L.textContent=s(A(f)),HL()})}var JL=/^(animation-iteration-count|column-count|flex(-grow|-shrink)?|font-weight|line-height|opacity|order|orphans|scale|tab-size|widows|z-index|zoom)$/,Qf=(E,f)=>{if(typeof f==="number"&&!JL.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)}},YL=(E,f,M)=>{if(M===void 0)return"";if(M instanceof w)M=M.html;let L=Qf(f,M);return`${E} ${L.prop}: ${L.value};`},EM=(E,f,M="")=>{let L=I(E);if(typeof f==="object"&&!(f instanceof w)){let H=Object.keys(f).map((J)=>EM(J,f[J],`${M} `)).join(`
5
5
  `);return`${M} ${E} {
6
6
  ${H}
7
- ${M} }`}else return LL(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(($)=>EM($,H[$])).join(`
7
+ ${M} }`}else return YL(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(($)=>EM($,H[$])).join(`
8
8
  `);return`${f}${L} {
9
9
  ${J}
10
10
  }`}).join(`
11
11
 
12
- `)},fM=(E)=>{V("initVars","initVars is deprecated. Just use _ and __ prefixes instead.");let f={};for(let M of Object.keys(E)){let L=E[M],H=I(M);f[`--${H}`]=typeof L==="number"&&L!==0?String(L)+"px":L}return f},MM=(E)=>{let f={};for(let M of Object.keys(E)){let L=E[M];if(L instanceof w)f[M]=L.inverseLuminance;else if(typeof L==="string"&&L.match(/^(#[0-9a-fA-F]{3}|rgba?\(|hsla?\()/))f[M]=w.fromCss(L).inverseLuminance}return f},WE=new Proxy({},{get(E,f){if(E[f]===void 0){let M="--"+I(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=I(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}`;w.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 Gf(){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 LM(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(Gf()),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 HM="http://www.w3.org/1998/Math/MathML",JM="http://www.w3.org/2000/svg";var yE={},YM=(E,f,M)=>{let L=Qf(I(f),M);if(L.prop.startsWith("--"))E.style.setProperty(L.prop,L.value);else E.style[f]=L.value},HL=(E)=>{return{toDOM(f,M){YM(f,E,M)}}},$M=(E,f,M)=>{if(f==="style")if(typeof M==="object")for(let L of Object.keys(M))if(A(M[L]))P(E,M[L],HL(L));else YM(E,L,M[L]);else E.setAttribute("style",M);else{let L=I(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={},JL=(E)=>{if(!wf[E])wf[E]={toDOM(f,M){$M(f,E,M)}};return wf[E]},YL=(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)P(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)P(E,M,H);else throw Error(`${f} is not allowed, bindings.${L} is not defined`)}else if(A(M))P(E,M,JL(f));else $M(E,f,M)},Ff=(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(A(H))M.append(W.span({bindText:H}));else Object.assign(L,H);for(let H of Object.keys(L)){let J=L[H];YL(M,H,J)}return M},Xf=(...E)=>{let f=globalThis.document.createDocumentFragment();for(let M of E)f.append(M);return f},W=new Proxy({fragment:Xf},{get(E,f){if(f=f.replace(/[A-Z]/g,(M)=>`-${M.toLocaleLowerCase()}`),E[f]===void 0)E[f]=(...M)=>Ff(f,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),SE=new Proxy({fragment:Xf},{get(E,f){if(E[f]===void 0)E[f]=(...M)=>Ff(`${f}|${JM}`,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),_E=new Proxy({fragment:Xf},{get(E,f){if(E[f]===void 0)E[f]=(...M)=>Ff(`${f}|${HM}`,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}});var $L=["sort","splice","copyWithin","fill","pop","push","reverse","shift","unshift"],ZL=!0,QL=/^\.?([^.[\](),])+(\.[^.[\](),]+|\[\d+\]|\[[^=[\](),]*=[^[\]()]+\])*$/,GL=(E)=>QL.test(E),o=(E="",f="")=>{if(E==="")return f;else if(f.match(/^\d+$/)!==null||f.includes("="))return`${E}[${f}]`;else return`${E}.${f}`},wM={};function zf(E,f){if(E!==null&&(typeof E==="object"||typeof E==="function"))return E;return new Proxy(wM,r(f,!0))}var UE=()=>new Proxy({},r("^",!0)),Wf=(E)=>{let M=E(UE())?.path;if(!M?.startsWith("^."))throw Error("selector must return a property of the item");return M.substring(2)},Uf=(E,f,M)=>{for(let L=0;L<E.length;L++)if(`${j(E[L],f)}`===`${M}`)return L;return-1},ZM=(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=Wf(M),J=Uf(f,H,L);return J!==-1?B[E][J]:void 0},listUpdate(M,L){let H=Wf(M),J=j(L,H),$=Uf(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=Wf(M),J=Uf(f,H,L);if(J===-1)return!1;return B[E].splice(J,1),!0}}),QM=!1;function HE(){if(!QM)console.warn("xinValue, tosiValue, xinPath, tosiPath, etc. are deprecated. Use value, path, observe, bind, on, binding, listBinding instead."),QM=!0}var GM=(E)=>{return E===wM},r=(E,f)=>({get(M,L){if(GM(M)){let Z=()=>j(k,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()=>R(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)=>{wE()(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 ZM(E,M)[L];case n:case"xinValue":case"tosiValue":return HE(),Z();case S:case"xinPath":case"tosiPath":return HE(),E;case rE:case"tosiObserve":return HE(),(Y)=>{let Q=_(E,Y);return()=>m(Q)};case lE:case"tosiOn":return HE(),(Y,Q)=>FE()(Y,Q,Z());case pE:case"tosiBind":return HE(),(Y,Q,G)=>{wE()(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()=>R(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)=>{wE()(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 ZM(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 rE:case"xinObserve":case"tosiObserve":return(Z)=>{let Y=_(E,Z);return()=>m(Y)};case lE:case"xinOn":case"tosiOn":return(Z,Y)=>FE()(Z,Y,T(M));case pE:case"xinBind":case"tosiBind":return(Z,Y,Q)=>{wE()(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?zf(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($L.includes(J))R(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?zf(Z,o(E,J)):Z}else return f?zf(M[J],o(E,J)):M[J]},set(M,L,H){H=T(H);let $=L===n||L==="xinValue"||L==="tosiValue"||L==="value"&&(GM(M)||f)?E:o(E,L);if(ZL&&!GL($))throw Error(`setting invalid path ${$}`);if(T(C[$])!==H&&a(k,$,H))R($);return!0}}),GE=(E,f)=>{let M=typeof f==="function"?f:C[f];if(typeof M!=="function")throw Error(`observe expects a function or path to a function, ${f} is neither`);return _(E,M)},C=new Proxy(k,r("",!1));nf(C);var B=new Proxy(k,r("",!0));var wL=16,FL=100;function FM(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,C[J.path])}}}class XM{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=A(f);if(H!=null)If(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(XE.observe(this.boundElement),this._update=fE(()=>{this.update(this.array,!0)},wL),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,x=Math.ceil(Y/U)+(E.rowChunkSize||1),X=G*x,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-x+1),O=y*z,K=Math.floor(O);if(E.rowChunkSize)K-=K%E.rowChunkSize;return M=K*G,L=M+X-1,H=Q,J=Math.max(0,q-Q-Y),{items:f,firstItem:M,lastItem:L,topBuffer:H,bottomBuffer:J,interpolation:{t:y,position:O,scrollTop:Q,viewportHeight:Y,totalScrollHeight:q,rowHeight:E.height}}}else{let U=Math.ceil(Y/E.height)+(E.rowChunkSize||1),x=G*U,X=Math.floor(Q/E.height);if(X>F-U+1)X=Math.max(0,F-U+1);if(E.rowChunkSize)X-=X%E.rowChunkSize;M=X*G,L=M+x-1,H=X*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)},FL);update(E,f){if(E==null)E=[];if(this.array=E,!f)this._filteredCache=void 0;let{hiddenProp:M,visibleProp:L}=this.options,H=A(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,x=0,X=0;for(let z of Array.from(this.boundElement.children)){if(z===this.listTop||z===this.listBottom)continue;let O=z[t];if(O==null)z.remove();else{let K=J.items.indexOf(O);if(K<Z||K>Y)z.remove(),this.itemToElement.delete(O),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 O=J.items[z];if(O===void 0)continue;let K=this.itemToElement.get(T(O));if(K==null){if(X++,K=e(this.template),typeof O==="object")this.itemToElement.set(T(O),K),K[t]=T(O);if(this.listBottom!=null)this.boundElement.insertBefore(K,this.listBottom);else this.boundElement.append(K);if(D!=null){let p=O[D],CE=`${H}[${D}=${p}]`;FM(K,CE)}else{let p=`${H}[${z}]`;FM(K,p)}}q.push(K)}let y=null;for(let z of q){if(z.previousElementSibling!==y)if(x++,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:X,moved:x})}_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 XM(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},NE=(E)=>{let f=mE(E);return f?f.item:void 0},zM=(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},XL={start:"start",middle:"center",end:"end",nearest:"nearest"},WM=(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),x=Y.scrollContainer==="window",X=x?window.innerHeight:E.offsetHeight,q;if(Y.minHeight!=null){let D=Math.ceil(X/F)+(Y.rowChunkSize||1),y=U*F,z=Math.max(0,y-X),O=Math.max(1,U-D+1),K=G/O;switch(H){case"start":q=K*z;break;case"end":q=Math.max(0,(G-D+1)/O*z);break;case"nearest":{let p=x?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop,CE=z>0?p/z:0,Vf=Math.floor(CE*O);if(G<Vf)q=K*z;else if(G>=Vf+D)q=Math.max(0,(G-D+1)/O*z);else return!0;break}default:{let p=G-Math.floor(D/2);q=Math.max(0,p)/O*z}}}else{let D=G*Y.height;switch(H){case"start":q=D;break;case"end":q=D-X+Y.height;break;case"nearest":{let y=x?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop;if(D<y)q=D;else if(D+Y.height>y+X)q=D-X+Y.height;else return!0;break}default:q=D-(X-Y.height)/2}}if(q=Math.max(0,q),x){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:XL[H]??"center",behavior:"smooth"})}return!0};var{document:DE,MutationObserver:UM}=globalThis,PE=(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=NE(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(UM!=null)new UM((f)=>{f.forEach((M)=>{Array.from(M.addedNodes).forEach((L)=>{if(L instanceof Element)Array.from(L.querySelectorAll(g)).forEach((H)=>PE(H))})})}).observe(DE.body,{subtree:!0,childList:!0});_(()=>!0,(E)=>{let f=Array.from(DE.querySelectorAll(g));for(let M of f)PE(M,E)});var DM=(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",DM,!0),DE.body.addEventListener("input",DM,!0);function P(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(hE);let $=u.get(E);if($==null)$=[],u.set(E,$);if($.push({path:H,binding:M,options:L}),J!=null&&!H.startsWith("^"))R(H);if(L?.filter&&L?.needle)P(E,L.needle,{toDOM(Z,Y){console.log({needle:Y}),Z[YE]?.filter(Y)}});return E}var qM=new Set,zL=(E)=>{let f=E?.target?.closest(oE),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(oE):null}};function LE(E,f,M){let L=l.get(E);if(E.classList.add(sE),L==null)L={},l.set(E,L);if(!L[f])L[f]=new Set;if(L[f].add(M),!qM.has(f))qM.add(f),DE.body.addEventListener(f,zL,!0);return()=>{L[f].delete(M)}}vf(P,LE);function cE(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 WL=0;function Df(){return`custom-elt${(WL++).toString(36)}`}var OM=0,qf=null;function UL(){if(qf===null)qf=new MutationObserver((E)=>{let f=new Set;for(let M of E)if(M.type==="attributes"&&M.target instanceof c){let L=M.target,H=Zf(M.attributeName);if(L._legacyTrackedAttrs?.has(H))f.add(L)}for(let M of f)M.queueRender(!1)});return qf}var qE={};function DL(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 qL(E){if(qE[E])document.head.append(W.style({id:E+"-component"},qE[E]));delete qE[E]}class c 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(I)];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)V("elementCreator-tag","Passing tag to elementCreator() is deprecated. Use static preferredTagName instead.");if(E.styleSpec!==void 0)V("elementCreator-styleSpec","Passing styleSpec to elementCreator() is deprecated. Use static lightStyleSpec instead.");if(E.extends!==void 0)V("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=I(f.name),M.startsWith("-"))M=M.slice(1)}else M=Df();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=Df();while(customElements.get(M)!==void 0)M=Df();f._tagName=M;let L=E.styleSpec??f.lightStyleSpec;if(L!==void 0)DL(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(V("initAttributes","initAttributes() is deprecated. Use static initAttributes = { ... } instead."),!this._legacyTrackedAttrs)this._legacyTrackedAttrs=new Set;for(let H of E)this._legacyTrackedAttrs.add(H);UL().observe(this,{attributes:!0});let M={},L={};E.forEach((H)=>{M[H]=b(this[H]);let J=I(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=Zf(E);if(!this._legacyTrackedAttrs?.has(L))this.queueRender(!1)}constructor(){super();if(OM+=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()}-${OM}`,this._value=b(this.defaultValue)}_setupAttributeAccessors(E){if(!this._attrValues)this._attrValues=new Map;for(let f of Object.keys(E)){let M=I(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(qL(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(Yf(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,M=this.constructor,L=M.shadowStyleSpec??M.styleSpec;if(M.styleSpec&&!M.shadowStyleSpec)V("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)),$f(J,f,E)}else if(f!==null){let J=Array.from(this.childNodes);$f(this,f,E),this.isSlotted=this.querySelector("slot,xin-slot")!==void 0;let $=Array.from(this.querySelectorAll("slot"));if($.length>0)$.forEach(Of.replaceSlot);if(J.length>0){let Z={"":this};Array.from(this.querySelectorAll("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);cE(this,E)}}class Of extends c{static preferredTagName="xin-slot";static initAttributes={name:""};content=null;static replaceSlot(E){let f=document.createElement("xin-slot");if(E.name!=="")f.setAttribute("name",E.name);E.replaceWith(f)}}var a0=Of.elementCreator();var KM=(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(C[H]!==void 0)Object.assign(C[H],L[H]);else C[H]=L[H]}let M=ZE(()=>{let L={},H=T(C);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 OL="tosijs-share",KL="tosijs-share",OE="shared",AL=1,Af=new Set,Tf=new Set,Kf=new Map,JE=null,jf="",bE=null,TL=null;function AM(){if(bE!=null)return Promise.resolve(bE);return new Promise((E,f)=>{let M=indexedDB.open(KL,AL);M.onupgradeneeded=()=>{M.result.createObjectStore(OE)},M.onsuccess=()=>{bE=M.result,E(bE)},M.onerror=()=>f(M.error)})}var jL={async get(E){let f=await AM();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 AM();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 TM(){return TL??jL}function CL(E){return E!=null&&E.type==="tosijs-share"&&typeof E.path==="string"}function jM(E){for(let f of Af)if(E===f||E.startsWith(f+"."))return f;return}function xL(E){for(let f of Tf)if(E===f||E.startsWith(f+"."))return!0;return!1}function VL(E,f){Tf.add(E),a(k,E,f),R(E),EE().then(()=>{Tf.delete(E)})}function kL(){if(JE!=null)return JE;return jf=crypto.randomUUID(),JE=new BroadcastChannel(OL),JE.onmessage=(E)=>{let f=E.data;if(!CL(f))return;if(f.origin===jf)return;if(jM(f.path)===void 0)return;VL(f.path,f.value)},JE}function RL(E,f){if(JE==null)return;let M={type:"tosijs-share",path:E,value:f,origin:jf};JE.postMessage(M)}function IL(E){if(!Kf.has(E))Kf.set(E,ZE(()=>{let f=j(k,E);TM().set(E,f)},500));Kf.get(E)()}async function CM(...E){if(typeof BroadcastChannel>"u")return{restored:[]};kL();let f=[],M=TM();for(let L of E){let H=typeof L==="string"?L:A(L);if(H===void 0)throw Error("share() requires boxed proxies or string paths. Got a non-proxy value.");if(Af.has(H))continue;Af.add(H);let J=await M.get(H);if(J!==void 0)a(k,H,J),R(H),f.push(L);else{let $=j(k,H);await M.set(H,$)}_(($)=>$===H||$.startsWith(H+"."),($)=>{if(xL($))return;let Z=jM($);if(Z===void 0)return;let Y=j(k,$);RL($,Y),IL(Z)})}return{restored:f}}var Cf=new Set;function xM(E,f){for(let M of E)if(f===M||f.startsWith(M+"."))return M;return}function BL(E){for(let f of Cf)if(E===f||E.startsWith(f+"."))return!0;return!1}function yL(E,f){Cf.add(E),a(k,E,f),R(E),EE().then(()=>{Cf.delete(E)})}async function VM(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(xM(L,Q.path)===void 0)continue;yL(Q.path,Q.value)}});for(let Y of M){let Q=typeof Y==="string"?Y:A(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(BL(F))return;if(xM(L,F)===void 0)return;let U=j(k,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 uE="1.5.1";function KE(E){return Object.assign(B,E),B}function AE(E){return V("boxedProxy","boxedProxy is deprecated, please use tosi() instead"),KE(E)}function nE(E,f=!1){if(f)return V("xinProxy-boxed","xinProxy(..., true) is deprecated; use tosi(...) instead"),AE(E);return Object.keys(E).forEach((M)=>{C[M]=E[M]}),C}var SL={};async function TE(E,f){let M=await f(E,{Color:w,Component:c,elements:W,svgElements:SE,mathML:_E,varDefault:WE,vars:BE,xin:C,boxed:B,xinProxy:nE,boxedProxy:AE,tosi:KE,makeComponent:TE,bind:P,on:LE,version:uE}),{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 SL[E]=J,J}var vE={":host":{display:"none"}},xf={},_L=(E)=>import(E);class jE extends c{static preferredTagName="tosi-blueprint";static lightStyleSpec=vE;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(xf[L]===void 0)xf[L]=_L(f).then((H)=>{let J=H[M];return TE(E,J)});else console.log(`using cached ${E} with signature ${L}`);this.loaded=await xf[L],this.blueprintLoaded(this.loaded)}return this.loaded}}var kM=jE.elementCreator();class dE extends c{static preferredTagName="tosi-loader";static lightStyleSpec=vE;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 RM=dE.elementCreator();class IM extends jE{static preferredTagName="xin-blueprint";static lightStyleSpec=vE;constructor(){super();V("xin-blueprint","<xin-blueprint> is deprecated. Use <tosi-blueprint> instead.")}}var BM=IM.elementCreator();class yM extends c{static preferredTagName="xin-loader";static lightStyleSpec=vE;allLoaded=()=>{};constructor(){super();V("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 SM=yM.elementCreator();})();
12
+ `)},fM=(E)=>{V("initVars","initVars is deprecated. Just use _ and __ prefixes instead.");let f={};for(let M of Object.keys(E)){let L=E[M],H=I(M);f[`--${H}`]=typeof L==="number"&&L!==0?String(L)+"px":L}return f},MM=(E)=>{let f={};for(let M of Object.keys(E)){let L=E[M];if(L instanceof w)f[M]=L.inverseLuminance;else if(typeof L==="string"&&L.match(/^(#[0-9a-fA-F]{3}|rgba?\(|hsla?\()/))f[M]=w.fromCss(L).inverseLuminance}return f},WE=new Proxy({},{get(E,f){if(E[f]===void 0){let M="--"+I(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=I(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}`;w.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 Gf(){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 LM(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(Gf()),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 HM="http://www.w3.org/1998/Math/MathML",JM="http://www.w3.org/2000/svg";var yE={},$M=(E,f,M)=>{let L=Qf(I(f),M);if(L.prop.startsWith("--"))E.style.setProperty(L.prop,L.value);else E.style[f]=L.value},$L=(E)=>{return{toDOM(f,M){$M(f,E,M)}}},ZM=(E,f,M)=>{if(f==="style")if(typeof M==="object")for(let L of Object.keys(M))if(T(M[L]))P(E,M[L],$L(L));else $M(E,L,M[L]);else E.setAttribute("style",M);else{let L=I(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={},ZL=(E)=>{if(!wf[E])wf[E]={toDOM(f,M){ZM(f,E,M)}};return wf[E]},QM=(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)P(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)P(E,M,H);else throw Error(`${f} is not allowed, bindings.${L} is not defined`)}else if(T(M))P(E,M,ZL(f));else ZM(E,f,M)},Ff=(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(T(H))M.append(W.span({bindText:H}));else Object.assign(L,H);for(let H of Object.keys(L)){let J=L[H];QM(M,H,J)}return M},Xf=(...E)=>{let f=globalThis.document.createDocumentFragment();for(let M of E)f.append(M);return f},W=new Proxy({fragment:Xf},{get(E,f){if(f=f.replace(/[A-Z]/g,(M)=>`-${M.toLocaleLowerCase()}`),E[f]===void 0)E[f]=(...M)=>Ff(f,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),SE=new Proxy({fragment:Xf},{get(E,f){if(E[f]===void 0)E[f]=(...M)=>Ff(`${f}|${JM}`,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),_E=new Proxy({fragment:Xf},{get(E,f){if(E[f]===void 0)E[f]=(...M)=>Ff(`${f}|${HM}`,...M);return E[f]},set(){throw Error("You may not add new properties to elements")}}),YM=new WeakSet;function GM(E,f,M="part"){let L=`[data-${M}]`;for(let H of Array.from(E.querySelectorAll(L))){if(YM.has(H))continue;let J=H.getAttribute(`data-${M}`);if(J==null)continue;let $=f[J];if($==null)continue;YM.add(H);for(let Z of Object.keys($))QM(H,Z,$[Z])}}var QL=["sort","splice","copyWithin","fill","pop","push","reverse","shift","unshift"],GL=!0,wL=/^\.?([^.[\](),])+(\.[^.[\](),]+|\[\d+\]|\[[^=[\](),]*=[^[\]()]+\])*$/,FL=(E)=>wL.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 zf(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)),Wf=(E)=>{let M=E(UE())?.path;if(!M?.startsWith("^."))throw Error("selector must return a property of the item");return M.substring(2)},Uf=(E,f,M)=>{for(let L=0;L<E.length;L++)if(`${j(E[L],f)}`===`${M}`)return L;return-1},wM=(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=Wf(M),J=Uf(f,H,L);return J!==-1?B[E][J]:void 0},listUpdate(M,L){let H=Wf(M),J=j(L,H),$=Uf(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=Wf(M),J=Uf(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 XM=(E)=>{return E===zM},r=(E,f)=>({get(M,L){if(XM(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()=>k(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)=>{wE()(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 wM(E,M)[L];case n:case"xinValue":case"tosiValue":return HE(),Z();case S:case"xinPath":case"tosiPath":return HE(),E;case rE:case"tosiObserve":return HE(),(Y)=>{let Q=_(E,Y);return()=>m(Q)};case lE:case"tosiOn":return HE(),(Y,Q)=>FE()(Y,Q,Z());case pE:case"tosiBind":return HE(),(Y,Q,G)=>{wE()(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()=>k(E);case"observe":return(Z)=>{let Y=_(E,Z);return()=>m(Y)};case"on":return(Z,Y)=>FE()(Z,Y,A(M));case"bind":return(Z,Y,Q)=>{wE()(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 wM(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 rE:case"xinObserve":case"tosiObserve":return(Z)=>{let Y=_(E,Z);return()=>m(Y)};case lE:case"xinOn":case"tosiOn":return(Z,Y)=>FE()(Z,Y,A(M));case pE:case"xinBind":case"tosiBind":return(Z,Y,Q)=>{wE()(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?zf(Z,o(E,J)):Z}else if(Array.isArray(M)){let Z=M[J];return typeof Z==="function"?(...Y)=>{let Q=Y.map((F)=>A(F)),G=Z.apply(M,Q);if(QL.includes(J))k(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?zf(Z,o(E,J)):Z}else return f?zf(M[J],o(E,J)):M[J]},set(M,L,H){H=A(H);let $=L===n||L==="xinValue"||L==="tosiValue"||L==="value"&&(XM(M)||f)?E:o(E,L);if(GL&&!FL($))throw Error(`setting invalid path ${$}`);if(A(C[$])!==H&&a(R,$,H))k($);return!0}}),GE=(E,f)=>{let M=typeof f==="function"?f:C[f];if(typeof M!=="function")throw Error(`observe expects a function or path to a function, ${f} is neither`);return _(E,M)},C=new Proxy(R,r("",!1));nf(C);var B=new Proxy(R,r("",!0));var XL=16,zL=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,C[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=T(f);if(H!=null)If(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(XE.observe(this.boundElement),this._update=fE(()=>{this.update(this.array,!0)},XL),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,x=Math.ceil(Y/U)+(E.rowChunkSize||1),X=G*x,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-x+1),O=y*z,K=Math.floor(O);if(E.rowChunkSize)K-=K%E.rowChunkSize;return M=K*G,L=M+X-1,H=Q,J=Math.max(0,q-Q-Y),{items:f,firstItem:M,lastItem:L,topBuffer:H,bottomBuffer:J,interpolation:{t:y,position:O,scrollTop:Q,viewportHeight:Y,totalScrollHeight:q,rowHeight:E.height}}}else{let U=Math.ceil(Y/E.height)+(E.rowChunkSize||1),x=G*U,X=Math.floor(Q/E.height);if(X>F-U+1)X=Math.max(0,F-U+1);if(E.rowChunkSize)X-=X%E.rowChunkSize;M=X*G,L=M+x-1,H=X*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)},zL);update(E,f){if(E==null)E=[];if(this.array=E,!f)this._filteredCache=void 0;let{hiddenProp:M,visibleProp:L}=this.options,H=T(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,x=0,X=0;for(let z of Array.from(this.boundElement.children)){if(z===this.listTop||z===this.listBottom)continue;let O=z[t];if(O==null)z.remove();else{let K=J.items.indexOf(O);if(K<Z||K>Y)z.remove(),this.itemToElement.delete(O),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 O=J.items[z];if(O===void 0)continue;let K=this.itemToElement.get(A(O));if(K==null){if(X++,K=e(this.template),typeof O==="object")this.itemToElement.set(A(O),K),K[t]=A(O);if(this.listBottom!=null)this.boundElement.insertBefore(K,this.listBottom);else this.boundElement.append(K);if(D!=null){let p=O[D],CE=`${H}[${D}=${p}]`;WM(K,CE)}else{let p=`${H}[${z}]`;WM(K,p)}}q.push(K)}let y=null;for(let z of q){if(z.previousElementSibling!==y)if(x++,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:X,moved:x})}_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},NE=(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},WL={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(),$=A(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),x=Y.scrollContainer==="window",X=x?window.innerHeight:E.offsetHeight,q;if(Y.minHeight!=null){let D=Math.ceil(X/F)+(Y.rowChunkSize||1),y=U*F,z=Math.max(0,y-X),O=Math.max(1,U-D+1),K=G/O;switch(H){case"start":q=K*z;break;case"end":q=Math.max(0,(G-D+1)/O*z);break;case"nearest":{let p=x?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop,CE=z>0?p/z:0,Vf=Math.floor(CE*O);if(G<Vf)q=K*z;else if(G>=Vf+D)q=Math.max(0,(G-D+1)/O*z);else return!0;break}default:{let p=G-Math.floor(D/2);q=Math.max(0,p)/O*z}}}else{let D=G*Y.height;switch(H){case"start":q=D;break;case"end":q=D-X+Y.height;break;case"nearest":{let y=x?Math.max(0,-E.getBoundingClientRect().top):E.scrollTop;if(D<y)q=D;else if(D+Y.height>y+X)q=D-X+Y.height;else return!0;break}default:q=D-(X-Y.height)/2}}if(q=Math.max(0,q),x){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:WL[H]??"center",behavior:"smooth"})}return!0};var{document:DE,MutationObserver:OM}=globalThis,PE=(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=NE(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)=>PE(H))})})}).observe(DE.body,{subtree:!0,childList:!0});_(()=>!0,(E)=>{let f=Array.from(DE.querySelectorAll(g));for(let M of f)PE(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 P(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(hE);let $=u.get(E);if($==null)$=[],u.set(E,$);if($.push({path:H,binding:M,options:L}),J!=null&&!H.startsWith("^"))k(H);if(L?.filter&&L?.needle)P(E,L.needle,{toDOM(Z,Y){console.log({needle:Y}),Z[YE]?.filter(Y)}});return E}var TM=new Set,UL=(E)=>{let f=E?.target?.closest(oE),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(oE):null}};function LE(E,f,M){let L=l.get(E);if(E.classList.add(sE),L==null)L={},l.set(E,L);if(!L[f])L[f]=new Set;if(L[f].add(M),!TM.has(f))TM.add(f),DE.body.addEventListener(f,UL,!0);return()=>{L[f].delete(M)}}vf(P,LE);function cE(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 DL=0;function Df(){return`custom-elt${(DL++).toString(36)}`}var AM=0,qf=null;function qL(){if(qf===null)qf=new MutationObserver((E)=>{let f=new Set;for(let M of E)if(M.type==="attributes"&&M.target instanceof c){let L=M.target,H=Zf(M.attributeName);if(L._legacyTrackedAttrs?.has(H))f.add(L)}for(let M of f)M.queueRender(!1)});return qf}var qE={};function OL(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 KL(E){if(qE[E])document.head.append(W.style({id:E+"-component"},qE[E]));delete qE[E]}class c 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(I)];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)V("elementCreator-tag","Passing tag to elementCreator() is deprecated. Use static preferredTagName instead.");if(E.styleSpec!==void 0)V("elementCreator-styleSpec","Passing styleSpec to elementCreator() is deprecated. Use static lightStyleSpec instead.");if(E.extends!==void 0)V("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=I(f.name),M.startsWith("-"))M=M.slice(1)}else M=Df();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=Df();while(customElements.get(M)!==void 0)M=Df();f._tagName=M;let L=E.styleSpec??f.lightStyleSpec;if(L!==void 0)OL(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(V("initAttributes","initAttributes() is deprecated. Use static initAttributes = { ... } instead."),!this._legacyTrackedAttrs)this._legacyTrackedAttrs=new Set;for(let H of E)this._legacyTrackedAttrs.add(H);qL().observe(this,{attributes:!0});let M={},L={};E.forEach((H)=>{M[H]=b(this[H]);let J=I(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=Zf(E);if(!this._legacyTrackedAttrs?.has(L))this.queueRender(!1)}constructor(){super();if(AM+=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()}-${AM}`,this._value=b(this.defaultValue)}_setupAttributeAccessors(E){if(!this._attrValues)this._attrValues=new Map;for(let f of Object.keys(E)){let M=I(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(KL(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(Yf(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,M=this.constructor,L=M.shadowStyleSpec??M.styleSpec;if(M.styleSpec&&!M.shadowStyleSpec)V("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)),$f(J,f,E)}else if(f!==null){let J=Array.from(this.childNodes);$f(this,f,E),this.isSlotted=this.querySelector("slot,xin-slot")!==void 0;let $=Array.from(this.querySelectorAll("slot"));if($.length>0)$.forEach(Of.replaceSlot);if(J.length>0){let Z={"":this};Array.from(this.querySelectorAll("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);cE(this,E)}}class Of extends c{static preferredTagName="xin-slot";static initAttributes={name:""};content=null;static replaceSlot(E){let f=document.createElement("xin-slot");if(E.name!=="")f.setAttribute("name",E.name);E.replaceWith(f)}}var fH=Of.elementCreator();var jM=(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(C[H]!==void 0)Object.assign(C[H],L[H]);else C[H]=L[H]}let M=ZE(()=>{let L={},H=A(C);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 TL="tosijs-share",AL="tosijs-share",OE="shared",jL=1,Tf=new Set,Af=new Set,Kf=new Map,JE=null,jf="",bE=null,CL=null;function CM(){if(bE!=null)return Promise.resolve(bE);return new Promise((E,f)=>{let M=indexedDB.open(AL,jL);M.onupgradeneeded=()=>{M.result.createObjectStore(OE)},M.onsuccess=()=>{bE=M.result,E(bE)},M.onerror=()=>f(M.error)})}var xL={async get(E){let f=await CM();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 CM();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 xM(){return CL??xL}function VL(E){return E!=null&&E.type==="tosijs-share"&&typeof E.path==="string"}function VM(E){for(let f of Tf)if(E===f||E.startsWith(f+"."))return f;return}function RL(E){for(let f of Af)if(E===f||E.startsWith(f+"."))return!0;return!1}function kL(E,f){Af.add(E),a(R,E,f),k(E),EE().then(()=>{Af.delete(E)})}function IL(){if(JE!=null)return JE;return jf=crypto.randomUUID(),JE=new BroadcastChannel(TL),JE.onmessage=(E)=>{let f=E.data;if(!VL(f))return;if(f.origin===jf)return;if(VM(f.path)===void 0)return;kL(f.path,f.value)},JE}function BL(E,f){if(JE==null)return;let M={type:"tosijs-share",path:E,value:f,origin:jf};JE.postMessage(M)}function yL(E){if(!Kf.has(E))Kf.set(E,ZE(()=>{let f=j(R,E);xM().set(E,f)},500));Kf.get(E)()}async function RM(...E){if(typeof BroadcastChannel>"u")return{restored:[]};IL();let f=[],M=xM();for(let L of E){let H=typeof L==="string"?L:T(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),k(H),f.push(L);else{let $=j(R,H);await M.set(H,$)}_(($)=>$===H||$.startsWith(H+"."),($)=>{if(RL($))return;let Z=VM($);if(Z===void 0)return;let Y=j(R,$);BL($,Y),yL(Z)})}return{restored:f}}var Cf=new Set;function kM(E,f){for(let M of E)if(f===M||f.startsWith(M+"."))return M;return}function SL(E){for(let f of Cf)if(E===f||E.startsWith(f+"."))return!0;return!1}function _L(E,f){Cf.add(E),a(R,E,f),k(E),EE().then(()=>{Cf.delete(E)})}async function IM(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(kM(L,Q.path)===void 0)continue;_L(Q.path,Q.value)}});for(let Y of M){let Q=typeof Y==="string"?Y:T(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(SL(F))return;if(kM(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 uE="1.5.2";function KE(E){return Object.assign(B,E),B}function TE(E){return V("boxedProxy","boxedProxy is deprecated, please use tosi() instead"),KE(E)}function nE(E,f=!1){if(f)return V("xinProxy-boxed","xinProxy(..., true) is deprecated; use tosi(...) instead"),TE(E);return Object.keys(E).forEach((M)=>{C[M]=E[M]}),C}var mL={};async function AE(E,f){let M=await f(E,{Color:w,Component:c,elements:W,svgElements:SE,mathML:_E,varDefault:WE,vars:BE,xin:C,boxed:B,xinProxy:nE,boxedProxy:TE,tosi:KE,makeComponent:AE,bind:P,on:LE,version:uE}),{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 mL[E]=J,J}var vE={":host":{display:"none"}},xf={},NL=(E)=>import(E);class jE extends c{static preferredTagName="tosi-blueprint";static lightStyleSpec=vE;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(xf[L]===void 0)xf[L]=NL(f).then((H)=>{let J=H[M];return AE(E,J)});else console.log(`using cached ${E} with signature ${L}`);this.loaded=await xf[L],this.blueprintLoaded(this.loaded)}return this.loaded}}var BM=jE.elementCreator();class dE extends c{static preferredTagName="tosi-loader";static lightStyleSpec=vE;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 yM=dE.elementCreator();class SM extends jE{static preferredTagName="xin-blueprint";static lightStyleSpec=vE;constructor(){super();V("xin-blueprint","<xin-blueprint> is deprecated. Use <tosi-blueprint> instead.")}}var _M=SM.elementCreator();class mM extends c{static preferredTagName="xin-loader";static lightStyleSpec=vE;allLoaded=()=>{};constructor(){super();V("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 NM=mM.elementCreator();})();
14
14
 
15
- //# debugId=C328FD2B58E1E41964756E2164756E21
15
+ //# debugId=8E8FF25BC6DF40F464756E2164756E21
16
16
  //# sourceMappingURL=index.js.map