mancha 0.19.2 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,14 +50,15 @@ Here's a small sample of the things that you can do with `mancha`:
50
50
 
51
51
  ## Documentation
52
52
 
53
- - **[Quick Start](./docs/quickstart.md)**: Get up and running in minutes.
54
- - **[Syntax](./docs/syntax.md)**: Reference for attributes and expressions.
55
- - **[Reactivity](./docs/reactivity.md)**: How variables, scoping, and URL binding work.
56
- - **[Components](./docs/components.md)**: Creating reusable components and includes.
57
- - **[CSS](./docs/css.md)**: Built-in CSS utilities.
58
- - **[Server-Side Rendering](./docs/ssr.md)**: Using Mancha on the server (Node, Workers).
59
- - **[TypeScript](./docs/typescript.md)**: Type safety and checking.
60
- - **[Testing](./docs/testing.md)**: Testing your UI.
53
+ - **[Quick Start](./docs/00_quickstart.md)**: Get up and running in minutes.
54
+ - **[Syntax](./docs/01_syntax.md)**: Reference for attributes and expressions.
55
+ - **[Initialization](./docs/02_initialization.md)**: Script tag options, ESM API, cloaking, and callbacks.
56
+ - **[Reactivity](./docs/03_reactivity.md)**: How variables, scoping, and URL binding work.
57
+ - **[Components](./docs/04_components.md)**: Creating reusable components and includes.
58
+ - **[CSS](./docs/05_css.md)**: Built-in CSS utilities.
59
+ - **[Server-Side Rendering](./docs/06_ssr.md)**: Using Mancha on the server (Node, Workers).
60
+ - **[TypeScript](./docs/07_typescript.md)**: Type safety and checking.
61
+ - **[Testing](./docs/08_testing.md)**: Testing your UI.
61
62
 
62
63
  ## AI Agents
63
64
 
package/dist/browser.d.ts CHANGED
@@ -30,20 +30,17 @@ type CssName = "minimal" | "utils" | "basic";
30
30
  * @param names - Array of CSS names to inject ("minimal", "utils", "basic").
31
31
  */
32
32
  declare function injectCss(names: CssName[]): void;
33
- /**
34
- * Injects the minimal CSS rules into the document head.
35
- */
36
- declare function injectMinimalCss(): void;
37
- /**
38
- * Injects the basic CSS rules into the document head.
39
- */
40
- declare function injectBasicCss(): void;
41
- /**
42
- * Injects the utils CSS rules into the document head.
43
- */
44
- declare function injectUtilsCss(): void;
33
+ /** Options for cloaking (hiding content until rendered). */
34
+ interface CloakOptions {
35
+ /** Selector(s) for elements to cloak. Defaults to `target` option or 'body'. */
36
+ selector?: string | string[];
37
+ /** Fade-in animation duration in ms. Defaults to 0 (no animation). */
38
+ duration?: number;
39
+ }
45
40
  /** Options for initializing Mancha. */
46
41
  interface InitManchaOptions {
42
+ /** Use an existing Renderer instance instead of creating a new one. */
43
+ renderer?: Renderer;
47
44
  /** CSS styles to inject before mounting. */
48
45
  css?: CssName[];
49
46
  /** Target selector(s) to mount the renderer to. */
@@ -54,6 +51,20 @@ interface InitManchaOptions {
54
51
  cache?: RequestCache;
55
52
  /** Initial state to set before mounting. */
56
53
  state?: Record<string, unknown>;
54
+ /**
55
+ * Cloak (hide) content until rendering is complete.
56
+ * - `true`: cloak with no animation (instant reveal)
57
+ * - `CloakOptions`: advanced options with custom selector and/or fade-in duration
58
+ */
59
+ cloak?: boolean | CloakOptions;
60
+ /**
61
+ * Callback invoked after CSS injection and state setup, but before mounting.
62
+ * If provided, automatic mounting to `target` is skipped; call `renderer.mount()` manually.
63
+ * The `uncloak` function is provided to reveal content (called automatically after this resolves).
64
+ * @param renderer - The initialized Renderer instance.
65
+ * @param uncloak - Function to reveal cloaked content with optional animation.
66
+ */
67
+ callback?: (renderer: Renderer, uncloak: () => Promise<void>) => void | Promise<void>;
57
68
  }
58
69
  /**
59
70
  * Initializes Mancha with the provided options.
@@ -64,4 +75,4 @@ interface InitManchaOptions {
64
75
  */
65
76
  declare function initMancha<T extends StoreState = StoreState>(options?: InitManchaOptions): Promise<Renderer<T>>;
66
77
  //#endregion
67
- export { CssName, IRenderer, InitManchaOptions, Mancha, type ParserParams, type RenderParams, Renderer, type RendererPlugin, rules as basicCssRules, initMancha, injectBasicCss, injectCss, injectMinimalCss, injectUtilsCss, rules$1 as minimalCssRules, rules$2 as utilsCssRules };
78
+ export { CloakOptions, CssName, IRenderer, InitManchaOptions, Mancha, type ParserParams, type RenderParams, Renderer, type RendererPlugin, rules as basicCssRules, initMancha, injectCss, rules$1 as minimalCssRules, rules$2 as utilsCssRules };
package/dist/browser.js CHANGED
@@ -10,4 +10,4 @@ import{n as e,t}from"./renderer-B3R6_o-2.js";import{safeStyleEl as n}from"safeva
10
10
  0%, 100% { opacity: 1 }
11
11
  50% { opacity: .5 }
12
12
  }`],w={red:{50:`#ffebee`,100:`#ffcdd2`,200:`#ef9a9a`,300:`#e57373`,400:`#ef5350`,500:`#f44336`,600:`#e53935`,700:`#d32f2f`,800:`#c62828`,900:`#b71c1c`},pink:{50:`#fce4ec`,100:`#f8bbd0`,200:`#f48fb1`,300:`#f06292`,400:`#ec407a`,500:`#e91e63`,600:`#d81b60`,700:`#c2185b`,800:`#ad1457`,900:`#880e4f`},purple:{50:`#f3e5f5`,100:`#e1bee7`,200:`#ce93d8`,300:`#ba68c8`,400:`#ab47bc`,500:`#9c27b0`,600:`#8e24aa`,700:`#7b1fa2`,800:`#6a1b9a`,900:`#4a148c`},"deep-purple":{50:`#ede7f6`,100:`#d1c4e9`,200:`#b39ddb`,300:`#9575cd`,400:`#7e57c2`,500:`#673ab7`,600:`#5e35b1`,700:`#512da8`,800:`#4527a0`,900:`#311b92`},indigo:{50:`#e8eaf6`,100:`#c5cae9`,200:`#9fa8da`,300:`#7986cb`,400:`#5c6bc0`,500:`#3f51b5`,600:`#3949ab`,700:`#303f9f`,800:`#283593`,900:`#1a237e`},blue:{50:`#e3f2fd`,100:`#bbdefb`,200:`#90caf9`,300:`#64b5f6`,400:`#42a5f5`,500:`#2196f3`,600:`#1e88e5`,700:`#1976d2`,800:`#1565c0`,900:`#0d47a1`},"light-blue":{50:`#e1f5fe`,100:`#b3e5fc`,200:`#81d4fa`,300:`#4fc3f7`,400:`#29b6f6`,500:`#03a9f4`,600:`#039be5`,700:`#0288d1`,800:`#0277bd`,900:`#01579b`},cyan:{50:`#e0f7fa`,100:`#b2ebf2`,200:`#80deea`,300:`#4dd0e1`,400:`#26c6da`,500:`#00bcd4`,600:`#00acc1`,700:`#0097a7`,800:`#00838f`,900:`#006064`},teal:{50:`#e0f2f1`,100:`#b2dfdb`,200:`#80cbc4`,300:`#4db6ac`,400:`#26a69a`,500:`#009688`,600:`#00897b`,700:`#00796b`,800:`#00695c`,900:`#004d40`},green:{50:`#e8f5e9`,100:`#c8e6c9`,200:`#a5d6a7`,300:`#81c784`,400:`#66bb6a`,500:`#4caf50`,600:`#43a047`,700:`#388e3c`,800:`#2e7d32`,900:`#1b5e20`},"light-green":{50:`#f1f8e9`,100:`#dcedc8`,200:`#c5e1a5`,300:`#aed581`,400:`#9ccc65`,500:`#8bc34a`,600:`#7cb342`,700:`#689f38`,800:`#558b2f`,900:`#33691e`},lime:{50:`#f9fbe7`,100:`#f0f4c3`,200:`#e6ee9c`,300:`#dce775`,400:`#d4e157`,500:`#cddc39`,600:`#c0ca33`,700:`#afb42b`,800:`#9e9d24`,900:`#827717`},yellow:{50:`#fffde7`,100:`#fff9c4`,200:`#fff59d`,300:`#fff176`,400:`#ffee58`,500:`#ffeb3b`,600:`#fdd835`,700:`#fbc02d`,800:`#f9a825`,900:`#f57f17`},amber:{50:`#fff8e1`,100:`#ffecb3`,200:`#ffe082`,300:`#ffd54f`,400:`#ffca28`,500:`#ffc107`,600:`#ffb300`,700:`#ffa000`,800:`#ff8f00`,900:`#ff6f00`},orange:{50:`#fff3e0`,100:`#ffe0b2`,200:`#ffcc80`,300:`#ffb74d`,400:`#ffa726`,500:`#ff9800`,600:`#fb8c00`,700:`#f57c00`,800:`#ef6c00`,900:`#e65100`},"deep-orange":{50:`#fbe9e7`,100:`#ffccbc`,200:`#ffab91`,300:`#ff8a65`,400:`#ff7043`,500:`#ff5722`,600:`#f4511e`,700:`#e64a19`,800:`#d84315`,900:`#bf360c`},brown:{50:`#efebe9`,100:`#d7ccc8`,200:`#bcaaa4`,300:`#a1887f`,400:`#8d6e63`,500:`#795548`,600:`#6d4c41`,700:`#5d4037`,800:`#4e342e`,900:`#3e2723`},gray:{50:`#fafafa`,100:`#f5f5f5`,200:`#eeeeee`,300:`#e0e0e0`,400:`#bdbdbd`,500:`#9e9e9e`,600:`#757575`,700:`#616161`,800:`#424242`,900:`#212121`},"blue-gray":{50:`#eceff1`,100:`#cfd8dc`,200:`#b0bec5`,300:`#90a4ae`,400:`#78909c`,500:`#607d8b`,600:`#546e7a`,700:`#455a64`,800:`#37474f`,900:`#263238`}};function T(e){return _.map(t=>`.${t}\\:${e}:${t}`)}function E(e,t){return c.map(([n,r])=>`@media (min-width: ${r}px) { .${n}\\:${e} { ${t} } }`)}function D(e){return e.flatMap(([e,t])=>[`.${e} { ${t} }`,`${T(e).join(`,`)} { ${t} }`,...E(e,t)])}function O(e){return e.flatMap(([e,t])=>[`.${e} { ${t} }`,`${T(e).join(`,`)} { ${t} }`])}function k(e,t){let n=e[0]===`@`,r=t[0]===`@`;return n&&!r?1:!n&&r?-1:e.localeCompare(t)}function A(e){return D(Object.entries(e).flatMap(([e,t])=>[[`${t}-0`,`${e}: 0`],[`${t}-screen`,`${e}: 100v${e.includes(`height`)?`h`:`w`}`],[`${t}-full`,`${e}: 100%`],...p.map(n=>[`${t}-${n}`,`${e}: ${n*l}rem`]),...p.map(n=>[`-${t}-${n}`,`${e}: -${n*l}rem`]),...p.map(n=>[`${t}-${n}px`,`${e}: ${n}px`]),...p.map(n=>[`-${t}-${n}px`,`${e}: -${n}px`]),...m.map(n=>[`${t}-${n}\\%`,`${e}: ${n}%`]),...m.map(n=>[`-${t}-${n}\\%`,`${e}: -${n}%`]),...c.map(([n,r])=>[`${t}-${n}`,`${e}: ${r}px`])]))}function j(e){return D(Object.entries(e).flatMap(([e,t])=>[[`${t}-auto`,`${e}: auto`],[`${t}x-auto`,`${e}-left: auto; ${e}-right: auto;`],[`${t}y-auto`,`${e}-top: auto; ${e}-bottom: auto;`],[`${t}x-0`,`${e}-left: 0; ${e}-right: 0;`],[`${t}y-0`,`${e}-top: 0; ${e}-bottom: 0;`],...p.map(n=>[`${t}x-${n}`,`${e}-left: ${n*l}rem; ${e}-right: ${n*l}rem;`]),...p.map(n=>[`${t}y-${n}`,`${e}-top: ${n*l}rem; ${e}-bottom: ${n*l}rem;`]),...p.map(n=>[`${t}x-${n}px`,`${e}-left: ${n}px; ${e}-right: ${n}px;`]),...p.map(n=>[`${t}y-${n}px`,`${e}-top: ${n}px; ${e}-bottom: ${n}px;`]),...m.map(n=>[`${t}x-${n}\\%`,`${e}-left: ${n}%; ${e}-right: ${n}%;`]),...m.map(n=>[`${t}y-${n}\\%`,`${e}-top: ${n}%; ${e}-bottom: ${n}%;`])]))}function M(e){return D(Object.entries(e).flatMap(([e,t])=>[[`${t}t-0`,`${e}-top: 0`],[`${t}b-0`,`${e}-bottom: 0`],[`${t}l-0`,`${e}-left: 0`],[`${t}r-0`,`${e}-right: 0`],[`${t}t-auto`,`${e}-top: auto`],[`${t}b-auto`,`${e}-bottom: auto`],[`${t}l-auto`,`${e}-left: auto`],[`${t}r-auto`,`${e}-right: auto`],...[``,`-`].flatMap(n=>[...p.map(r=>[`${n}${t}t-${r}`,`${e}-top: ${n}${r*l}rem`]),...p.map(r=>[`${n}${t}b-${r}`,`${e}-bottom: ${n}${r*l}rem`]),...p.map(r=>[`${n}${t}l-${r}`,`${e}-left: ${n}${r*l}rem`]),...p.map(r=>[`${n}${t}r-${r}`,`${e}-right: ${n}${r*l}rem`]),...p.map(r=>[`${n}${t}t-${r}px`,`${e}-top: ${n}${r}px`]),...p.map(r=>[`${n}${t}b-${r}px`,`${e}-bottom: ${n}${r}px`]),...p.map(r=>[`${n}${t}l-${r}px`,`${e}-left: ${n}${r}px`]),...p.map(r=>[`${n}${t}r-${r}px`,`${e}-right: ${n}${r}px`]),...m.map(r=>[`${n}${t}t-${r}\\%`,`${e}-top: ${n}${r}%`]),...m.map(r=>[`${n}${t}b-${r}\\%`,`${e}-bottom: ${n}${r}%`]),...m.map(r=>[`${n}${t}l-${r}\\%`,`${e}-left: ${n}${r}%`]),...m.map(r=>[`${n}${t}r-${r}\\%`,`${e}-right: ${n}${r}%`])])]))}function N(){return D([[`border`,`border: 1px`],[`border-x`,`border-inline-width: 1px`],[`border-y`,`border-block-width: 1px`],...[0,...u].map(e=>[`border-${e}`,`border-width: ${e}px`]),...[0,...u].map(e=>[`border-x-${e}`,`border-inline-width: ${e}px;`]),...[0,...u].map(e=>[`border-y-${e}`,`border-block-width: ${e}px;`]),...[`top`,`bottom`,`left`,`right`].flatMap(e=>[[`border-${e.slice(0,1)}`,`border-${e}: 1px`],...[0,...u].map(t=>[`border-${e.slice(0,1)}-${t}`,`border-${e}-width: ${t}px`])])])}function P(){return D(m.map(e=>[`z-${e}`,`z-index: ${e}`]))}function F(){return D(g.map(e=>[`duration-${e}`,`--transition-duration: ${e}ms; transition-duration: ${e}ms`]))}function I(){return D([[`space-x-0 > *`,`margin-left: 0`],[`space-y-0 > *`,`margin-top: 0`],...p.map(e=>[`space-x-${e} > :not(:first-child)`,`margin-left: ${e*l}rem`]),...p.map(e=>[`space-y-${e} > :not(:first-child)`,`margin-top: ${e*l}rem`]),...p.map(e=>[`space-x-${e}px > :not(:first-child)`,`margin-left: ${e}px`]),...p.map(e=>[`space-y-${e}px > :not(:first-child)`,`margin-top: ${e}px`]),[`gap-0`,`gap: 0`],...p.map(e=>[`gap-${e}`,`gap: ${e*l}rem`]),...p.map(e=>[`gap-${e}px`,`gap: ${e}px`]),...p.map(e=>[`gap-x-${e}`,`column-gap: ${e*l}rem`]),...p.map(e=>[`gap-y-${e}`,`row-gap: ${e*l}rem`]),...p.map(e=>[`gap-x-${e}px`,`column-gap: ${e}px`]),...p.map(e=>[`gap-y-${e}px`,`row-gap: ${e}px`]),[`divide-x > :not(:last-child)`,`border-inline-end-width: 1px`],[`divide-y > :not(:last-child)`,`border-bottom-width: 1px`],[`divide-x-0 > :not(:last-child)`,`border-inline-end-width: 0px`],[`divide-y-0 > :not(:last-child)`,`border-bottom-width: 0px`],...[2,4,8].map(e=>[`divide-x-${e} > :not(:last-child)`,`border-inline-end-width: ${e}px`]),...[2,4,8].map(e=>[`divide-y-${e} > :not(:last-child)`,`border-bottom-width: ${e}px`]),[`divide-solid > :not(:last-child)`,`border-style: solid`],[`divide-dashed > :not(:last-child)`,`border-style: dashed`],[`divide-dotted > :not(:last-child)`,`border-style: dotted`],[`divide-none > :not(:last-child)`,`border-style: none`]])}function L(){return D([...Array.from({length:100},(e,t)=>[`text-${t}px`,`font-size: ${t}px`]),...Array.from({length:100},(e,t)=>[`text-${t*l}rem`,`font-size: ${t*l}rem`])])}function R(){return D([...Array.from({length:12},(e,t)=>t+1).map(e=>[`grid-cols-${e}`,`grid-template-columns: repeat(${e}, minmax(0, 1fr))`]),[`grid-cols-none`,`grid-template-columns: none`],...Array.from({length:12},(e,t)=>t+1).map(e=>[`col-span-${e}`,`grid-column: span ${e} / span ${e}`]),[`col-span-full`,`grid-column: 1 / -1`],...Array.from({length:13},(e,t)=>t+1).map(e=>[`col-start-${e}`,`grid-column-start: ${e}`]),[`col-start-auto`,`grid-column-start: auto`],...Array.from({length:13},(e,t)=>t+1).map(e=>[`col-end-${e}`,`grid-column-end: ${e}`]),[`col-end-auto`,`grid-column-end: auto`]])}function z(){return Object.entries(S).flatMap(([e,t])=>{let n=Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`; `);return[`.${e} { ${n} }`,`${T(e).join(`,`)} { ${n} }`,...E(e,n)]})}function B(e){let t=0,n=0,r=0;return e.length===4?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):e.length===7&&(t=parseInt(e.slice(1,3),16),n=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16)),`${t} ${n} ${r}`}function V(){let e=(e,t)=>{let n=[[`text-${e}`,`color: ${t}`],[`fill-${e}`,`fill: ${t}`],[`bg-${e}`,`background-color: ${t}`],[`border-${e}`,`border-color: ${t}`]];if(t.startsWith(`#`)){let r=B(t);for(let t of h){let i=t/100;n.push([`text-${e}\\/${t}`,`color: rgb(${r} / ${i})`],[`bg-${e}\\/${t}`,`background-color: rgb(${r} / ${i})`],[`border-${e}\\/${t}`,`border-color: rgb(${r} / ${i})`])}}return n};return O([...e(`white`,`#fff`),...e(`black`,`#000`),...e(`transparent`,`transparent`),...Object.entries(w).flatMap(([t,n])=>[...e(t,n[500]),...Object.entries(n).flatMap(([n,r])=>e(`${t}-${n}`,r))])])}function H(){return D([[`opacity-0`,`opacity: 0`],...m.map(e=>[`opacity-${e}`,`opacity: ${e/100}`])])}let U=null;function W(){return U===null&&(U=[...C,...z(),...V(),...H(),...P(),...F(),...A(b),...A(y),...j(y),...M(v),...A(v),...j(v),...I(),...A(x),...N(),...L(),...R()].sort(k).join(`
13
- `)),U}var G=class extends t{impl=`browser`;dirpath=e(globalThis.location?.href??`http://localhost/`);parseHTML(e,t={rootDocument:!1}){if(t.rootDocument)return new DOMParser().parseFromString(e,`text/html`);{let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}}serializeHTML(e){return new XMLSerializer().serializeToString(e).replace(/\s?xmlns="[^"]+"/gm,``)}preprocessLocal(e,t){return this.preprocessRemote(e,t)}createElement(e,t){return(t||document).createElement(e)}createComment(e,t){return(t||document).createComment(e)}textContent(e,t){e.textContent=t}};const K=new G;function q(e){for(let t of e){let e=document.createElement(`style`);switch(t){case`minimal`:n.setTextContent(e,o());break;case`basic`:n.setTextContent(e,a());break;case`utils`:e.textContent=W();break;default:console.error(`Unknown style name: "${t}"`);continue}globalThis.document.head.appendChild(e)}}function J(){q([`minimal`])}function Y(){q([`basic`])}function X(){q([`utils`])}async function Z(e={}){let t=new G;if(e.css&&e.css.length>0&&q(e.css),e.debug&&t.debug(!0),e.state)for(let[n,r]of Object.entries(e.state))await t.set(n,r);if(e.target){let n=Array.isArray(e.target)?e.target:[e.target];for(let r of n){let n=globalThis.document.querySelector(r);n?await t.mount(n,{cache:e.cache}):console.error(`Target element not found: "${r}"`)}}return t}export{t as IRenderer,K as Mancha,G as Renderer,a as basicCssRules,Z as initMancha,Y as injectBasicCss,q as injectCss,J as injectMinimalCss,X as injectUtilsCss,o as minimalCssRules,W as utilsCssRules};
13
+ `)),U}var G=class extends t{impl=`browser`;dirpath=e(globalThis.location?.href??`http://localhost/`);parseHTML(e,t={rootDocument:!1}){if(t.rootDocument)return new DOMParser().parseFromString(e,`text/html`);{let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}}serializeHTML(e){return new XMLSerializer().serializeToString(e).replace(/\s?xmlns="[^"]+"/gm,``)}preprocessLocal(e,t){return this.preprocessRemote(e,t)}createElement(e,t){return(t||document).createElement(e)}createComment(e,t){return(t||document).createComment(e)}textContent(e,t){e.textContent=t}};const K=new G;function q(e){for(let t of e){let e=document.createElement(`style`);switch(t){case`minimal`:n.setTextContent(e,o());break;case`basic`:n.setTextContent(e,a());break;case`utils`:e.textContent=W();break;default:console.error(`Unknown style name: "${t}"`);continue}globalThis.document.head.appendChild(e)}}const J=`mancha-cloak-style`,Y=`data-mancha-cloak`,X=`[${Y}] { opacity: 0 !important; }`;function Z(e){let t=document.createElement(`style`);t.id=J,t.textContent=X,document.head.appendChild(t);for(let t of e){let e=document.querySelectorAll(t);for(let t of e)t.setAttribute(Y,``)}return t}function Q(e){let t=!1;return async()=>{if(t)return;t=!0;let n=document.querySelectorAll(`[${Y}]`),r=document.getElementById(J);if(e!==!1&&n.length>0){r?.remove();for(let t of n){let n=t;n.style.opacity=`0`,n.style.transition=`opacity ${e}ms ease-in-out`}document.body.offsetHeight;for(let e of n){let t=e;t.style.opacity=`1`,e.removeAttribute(Y)}await new Promise(t=>setTimeout(t,e));for(let e of n){let t=e;t.style.transition=``,t.style.opacity=``}}else{r?.remove();for(let e of n)e.removeAttribute(Y)}}}async function $(e={}){let t=e.renderer??new G,n;if(e.cloak){let t=e.cloak===!0?{}:e.cloak,r=e.target?Array.isArray(e.target)?e.target:[e.target]:[`body`],i=t.selector?Array.isArray(t.selector)?t.selector:[t.selector]:r,a=t.duration??0;Z(i),n=Q(a>0?a:!1)}if(e.css&&e.css.length>0&&q(e.css),e.debug&&t.debug(!0),e.state)for(let[n,r]of Object.entries(e.state))await t.set(n,r);if(e.callback)await e.callback(t,n??(async()=>{}));else if(e.target){let n=Array.isArray(e.target)?e.target:[e.target];for(let r of n){let n=globalThis.document.querySelector(r);n?await t.mount(n,{cache:e.cache}):console.error(`Target element not found: "${r}"`)}}return n&&await n(),t}export{t as IRenderer,K as Mancha,G as Renderer,a as basicCssRules,$ as initMancha,q as injectCss,o as minimalCssRules,W as utilsCssRules};
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -119,17 +119,11 @@ const _args = yargs(hideBin(process.argv))
119
119
  }
120
120
  })
121
121
  .command("docs", "Print all documentation for AI model consumption", () => { }, async () => {
122
- const files = [
123
- "README.md",
124
- "docs/quickstart.md",
125
- "docs/syntax.md",
126
- "docs/reactivity.md",
127
- "docs/components.md",
128
- "docs/ssr.md",
129
- "docs/typescript.md",
130
- "docs/testing.md",
131
- "docs/css.md",
132
- ];
122
+ // List README.md first, then all docs/*.md files in lexicographical order.
123
+ const docsDir = path.join(packageRoot, "docs");
124
+ const docFiles = await fs.readdir(docsDir);
125
+ const mdFiles = docFiles.filter((f) => f.endsWith(".md")).sort();
126
+ const files = ["README.md", ...mdFiles.map((f) => `docs/${f}`)];
133
127
  for (const file of files) {
134
128
  const filePath = path.join(packageRoot, file);
135
129
  try {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACxC,OAAO,CACP,gBAAgB,EAChB,0BAA0B,EAC1B,CAAC,KAAK,EAAE,EAAE;IACT,OAAO,KAAK;SACV,UAAU,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,QAAQ;KACd,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QACjB,QAAQ,EAAE,iCAAiC;QAC3C,IAAI,EAAE,QAAQ;KACd,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACf,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,QAAQ;KACd,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QAChB,QAAQ,EAAE,uCAAuC;QACjD,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;AACL,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAClC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACtE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACpE,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACP,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;AACF,CAAC,CACD;KACA,OAAO,CACP,kBAAkB,EAClB,+BAA+B,EAC/B,CAAC,KAAK,EAAE,EAAE;IACT,OAAO,KAAK;SACV,UAAU,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,iDAAiD;QAC3D,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;KACX,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QACjB,QAAQ,EAAE,6BAA6B;QACvC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACd,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACpB,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACb,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QAC1B,QAAQ,EAAE,qDAAqD;QAC/D,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QACvC,OAAO,EAAE,OAAO;KAChB,CAAC,CAAC;AACL,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAiB,CAAC;IACtC,MAAM,OAAO,GAAG;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,mBAAmB,EAAE,IAAI,CAAC,cAAgD;KAC1E,CAAC;IAEF,6BAA6B;IAC7B,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,WAAW,GAAG,WAAW;YAC9B,CAAC,CAAC;gBACA,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;aAC5C;YACF,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE3E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,eAAe,EAAE,CAAC;YAClB,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;YAElC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC9E,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACzC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAC3D,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,KAAK,CAChB,CAAC;oBACF,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,KAAK,IAAI,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,WAAW,WAAW,gBAAgB,eAAe,WAAW,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,CAAC,MAAM,iCAAiC,CAAC,CAAC;IAChF,CAAC;AACF,CAAC,CACD;KACA,OAAO,CACP,MAAM,EACN,kDAAkD,EAClD,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACV,MAAM,KAAK,GAAG;QACb,WAAW;QACX,oBAAoB;QACpB,gBAAgB;QAChB,oBAAoB;QACpB,oBAAoB;QACpB,aAAa;QACb,oBAAoB;QACpB,iBAAiB;QACjB,aAAa;KACb,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;AACF,CAAC,CACD;KACA,aAAa,CAAC,CAAC,EAAE,gDAAgD,CAAC;KAClE,IAAI,EAAE,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/mancha.js CHANGED
@@ -8,27 +8,27 @@ function i(e,t){let n=r(t);n!==void 0&&(e.href=n)}
8
8
  * @license
9
9
  * SPDX-License-Identifier: Apache-2.0
10
10
  */
11
- function a(e,t){let n=r(t);n!==void 0&&(e.href=n)}let o={};var s=class{constructor(e,t){this.privateDoNotAccessOrElseWrappedAttributePrefix=t}toString(){return this.privateDoNotAccessOrElseWrappedAttributePrefix}};let c=s;function l(e){return new c(o,e)}function u(e){return e instanceof s}function ee(e){if(u(e))return e.privateDoNotAccessOrElseWrappedAttributePrefix;throw Error(``)}function te(e,t,n,r){if(e.length===0)throw Error(``);let i=e.map(e=>ee(e)),a=n.toLowerCase();if(i.every(e=>a.indexOf(e)!==0))throw Error(`Attribute "${n}" does not match any of the allowed prefixes.`);t.setAttribute(n,r)}var ne=class{},d=class extends ne{constructor(e,t){super(),this.privateDoNotAccessOrElseWrappedStyleSheet=e}toString(){return this.privateDoNotAccessOrElseWrappedStyleSheet}};function re(e){return new d(e,o)}function ie(e){if(e instanceof d)return e.privateDoNotAccessOrElseWrappedStyleSheet;throw Error(``)}
11
+ function a(e,t){let n=r(t);n!==void 0&&(e.href=n)}let o={};var s=class{constructor(e,t){this.privateDoNotAccessOrElseWrappedAttributePrefix=t}toString(){return this.privateDoNotAccessOrElseWrappedAttributePrefix}};let c=s;function l(e){return new c(o,e)}function u(e){return e instanceof s}function ee(e){if(u(e))return e.privateDoNotAccessOrElseWrappedAttributePrefix;throw Error(``)}function te(e,t,n,r){if(e.length===0)throw Error(``);let i=e.map(e=>ee(e)),a=n.toLowerCase();if(i.every(e=>a.indexOf(e)!==0))throw Error(`Attribute "${n}" does not match any of the allowed prefixes.`);t.setAttribute(n,r)}var ne=class{},re=class extends ne{constructor(e,t){super(),this.privateDoNotAccessOrElseWrappedStyleSheet=e}toString(){return this.privateDoNotAccessOrElseWrappedStyleSheet}};function ie(e){return new re(e,o)}function ae(e){if(e instanceof re)return e.privateDoNotAccessOrElseWrappedStyleSheet;throw Error(``)}
12
12
  /**
13
13
  * @license
14
14
  * SPDX-License-Identifier: Apache-2.0
15
15
  */
16
- function f(e,t){e.textContent=ie(t)}function p(e){return l(e[0].toLowerCase())}function m(e){let t=e[0];return re(t)}function ae(e){return re(e.map(ie).join(``))}let oe=[p`:`,p`style`,p`class`];function*h(e,t=new Set){let n=new Set,r=Array.from(e.childNodes).filter(e=>!t.has(e));for(yield e;r.length;){let e=r.shift();n.has(e)||(n.add(e),yield e),e.childNodes&&Array.from(e.childNodes).filter(e=>!t.has(e)).forEach(e=>{r.push(e)})}}function g(e,t){return e?.[t]!==void 0}function _(e,t){return typeof e?.[t]==`function`}function v(e){return e.replace(/-./g,e=>e[1].toUpperCase())}function y(e,t){return e.attribs?e.attribs[t]??null:e.getAttribute?.(t)??null}function se(e,t){return e.attribs?t in e.attribs:e.hasAttribute?.(t)??!1}function b(e,t,n=``){return y(e,n+t)||y(e,`data-${t}`)||(e.dataset?.[v(t)]??null)}function x(e,t,n){e.attribs?e.attribs[t]=n:e.setAttribute?.(t,n)}function S(e,t,n){e.attribs?e.attribs[t]=n:te(oe,e,t,n)}function C(e,t,n){switch(t){case`disabled`:e.disabled=n;return;case`selected`:e.selected=n;return;case`checked`:e.checked=n;return;default:e[t]=n}}function w(e,t){e.attribs?delete e.attribs[t]:e.removeAttribute?.(t)}function ce(e,t,n,r=``){se(e,`${r}${t}`)?x(e,`${r}${t}`,n):se(e,`data-${t}`)?x(e,`data-${t}`,n):x(e,`${r}${t}`,n)}function T(e,t,n=``){w(e,`${n}${t}`),w(e,`data-${t}`)}function le(e,t,n){if(e.attribs&&t.attribs)t.attribs[n]=e.attribs[n];else if(n.startsWith(`data-`)){let r=v(n.slice(5));t.dataset&&e.dataset&&(t.dataset[r]=e.dataset[r])}else{let r=e?.getAttribute?.(n);S(t,n,r||``)}}function ue(e){return g(e,`firstElementChild`)?e.firstElementChild:Array.from(e.children).find(e=>e.nodeType===1)}function E(e,...t){if(_(e,`replaceWith`)){e.replaceWith(...t);return}else{let n=e,r=n.parentNode;if(!r)return;let i=Array.from(r.childNodes).indexOf(n);n.parentNode=null,t.forEach(e=>{e.parentNode=r}),r.childNodes=[].concat(Array.from(r.childNodes).slice(0,i),t,Array.from(r.childNodes).slice(i+1))}}function de(e,...t){_(e,`replaceChildren`)?e.replaceChildren(...t):(e.childNodes=t,t.forEach(t=>{t.parentNode=e}))}function D(e,t){return _(t,`appendChild`)?e.appendChild(t):(e.childNodes.push(t),t.parentNode=e,t)}function O(e,t){return _(t,`removeChild`)?e.removeChild(t):(de(e,...Array.from(e.childNodes).filter(e=>e!==t)),t)}function k(e,t,n){return n?_(e,`insertBefore`)?e.insertBefore(t,n):(E(n,t,n),t):D(e,t)}function fe(e,t=0){return e?e.length<=t?e:`${e.slice(0,t-1)}…`:``}function A(e,t=0){return globalThis.DocumentFragment&&e instanceof DocumentFragment?Array.from(e.childNodes).map(e=>A(e,t)).join(``):fe(e.outerHTML||e.nodeValue||String(e),t)}function j(e){return e.includes(`/`)?e.split(`/`).slice(0,-1).join(`/`):``}function pe(e){return!e.includes(`://`)&&!e.startsWith(`/`)&&!e.startsWith(`#`)&&!e.startsWith(`data:`)}var me=class e{iterable;constructor(e){this.iterable=e}filter(t){return new e(e.filterGenerator(t,this.iterable))}map(t){return new e(e.mapGenerator(t,this.iterable))}find(e){for(let t of this.iterable)if(e(t))return t}array(){return Array.from(this.iterable)}*generator(){for(let e of this.iterable)yield e}static*filterGenerator(e,t){for(let n of t)e(n)&&(yield n)}static*mapGenerator(e,t){for(let n of t)yield e(n)}static equals(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(i.value!==a.value)return!1;i=n.next(),a=r.next()}return i.done===a.done}};let M;(function(e){e.resolveIncludes=async function(e,t){let n=e,r=n.tagName?.toLowerCase();if(![`include`,`link`].includes(r)||r===`link`&&y(n,`rel`)!==`subresource`)return;this.log(`include directive found in:
17
- `,A(e,128)),this.log(`include params:`,t);let i=n.tagName.toLocaleLowerCase()===`link`?`href`:`src`,a=y(n,i);if(!a)throw Error(`"${i}" attribute missing from ${A(e,128)}.`);let o=[];r===`include`&&o.push(`src`),r===`link`&&o.push(`rel`,`href`);let s=t=>{let r=ue(t);for(let e of Array.from(n.attributes))r&&!o.includes(e.name)&&le(n,r,e.name);E(e,...t.childNodes)},c={...t,rootDocument:!1,maxdepth:(t?.maxdepth??100)-1};if(c.maxdepth===0)throw Error(`Maximum recursion depth reached.`);if(a.includes(`://`)||a.startsWith(`//`))this.log(`Including remote file from absolute path:`,a),await this.preprocessRemote(a,c).then(s);else if(t?.dirpath?.includes(`://`)||t?.dirpath?.startsWith(`//`)){let e=a.startsWith(`/`)?a:`${t.dirpath}/${a}`;this.log(`Including remote file from relative path:`,e),await this.preprocessRemote(e,c).then(s)}else if(a.charAt(0)===`/`)this.log(`Including local file from absolute path:`,a),await this.preprocessLocal(a,c).then(s);else{let e=t?.dirpath&&t?.dirpath!==`.`?`${t?.dirpath}/${a}`:a;this.log(`Including local file from relative path:`,e),await this.preprocessLocal(e,c).then(s)}},e.rebaseRelativePaths=function(e,t){let n=e,r=n.tagName?.toLowerCase();if(!t?.dirpath)return;let o=y(n,`src`),s=y(n,`href`),c=b(n,`render`,`:`),l=o||s||c;if(!l||!pe(l))return;let u=`${t.dirpath}/${l}`;this.log(`Rebasing relative path as:`,u),c?ce(n,`render`,u,`:`):g(n,`attribs`)?S(n,o?`src`:`href`,u):r===`img`?n.src=u:r===`a`?i(n,u):r===`source`||r===`audio`||r===`video`||r===`track`||r===`input`?n.src=u:r===`area`?a(n,u):this.log(`Unable to rebase relative path for element:`,r)},e.registerCustomElements=function(e,t){let n=e,r=n.tagName?.toLowerCase(),i=(y(n,`is`)||y(n,`alt`))?.toLowerCase();if([`template`,`div`].includes(r)&&i){if(r===`div`&&y(n,`role`)!==`template`)return;if(!this._customElements.has(i)){this.log(`Registering custom element: ${i}\n`,A(n,128));let e=n.content||n,r=Array.from(h(e));for(let e=1;e<r.length;e++)M.rebaseRelativePaths.call(this,r[e],t);this._customElements.set(i,n),n?.parentNode&&O(n.parentNode,n)}}},e.resolveCustomElements=function(e,t){let n=e,r=n.tagName?.toLowerCase(),i=r;if(i===`div`&&(i=y(n,`role`)?.toLowerCase()||i),i&&this._customElements.has(i)){this.log(`Processing custom element: ${i}\n`,A(n,128));let t=this._customElements.get(i),a=(t.content||t).cloneNode(!0),o=ue(a);if(o)for(let e of Array.from(n.attributes))(r!==`div`||e.name!==`role`)&&le(n,o,e.name);let s=new me(h(a)).find(e=>e.tagName?.toLowerCase()===`slot`);s&&E(s,...n.childNodes),E(e,...a.childNodes)}},e.resolveTextNodeExpressions=function(e,t){let n=e.nodeValue||``;if(e.nodeType!==3||!n?.trim())return;this.log(`Processing node content value:
18
- `,fe(n,128));let r=new RegExp(/{{ ([^}]+) }}/gm),i=Array.from(n.matchAll(r)).map(e=>e[1]);return this.effect(function(){let t=n;for(let n of i){let r=this.eval(n,{$elem:e});t=t.replace(`{{ ${n} }}`,String(r))}e.nodeValue=t})},e.resolveDataAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`data`,`:`);if(r){this.log(`:data attribute found in:
19
- `,A(e,128)),T(n,`data`,`:`);let i;g(e,`renderer`)?(i=e.renderer,this.log(`Reusing existing subrenderer for node:`,A(e,64))):(i=this.subrenderer(),C(e,`renderer`,i),this.log(`Created and attached new subrenderer for node:`,A(e,64)));let a=i.eval(r,{$elem:e});if(await Promise.all(Object.entries(a).map(([e,t])=>e.startsWith(`$$`)?(i._store.get(`$rootRenderer`)||i).set(e,t):i._store.set(e,t))),i===this)return;for(let t of h(e,this._skipNodes))this._skipNodes.add(t);await i.mount(e,t)}},e.resolveClassAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`class`,`:`);if(r){this.log(`:class attribute found in:
20
- `,A(e,128)),T(n,`class`,`:`);let t=y(n,`class`)||``;return this.effect(function(){let i=this.eval(r,{$elem:e});S(n,`class`,(i?`${t} ${i}`:t).trim())})}},e.resolveTextAttributes=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`text`,`:`);if(r){this.log(`:text attribute found in:
21
- `,A(e,128)),T(n,`text`,`:`);let t=t=>this.textContent(e,t);return this.effect(function(){t(this.eval(r,{$elem:e}))})}},e.resolveHtmlAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`html`,`:`);if(r)return this.log(`:html attribute found in:
22
- `,A(e,128)),T(n,`html`,`:`),this.effect(function(){let i=this.eval(r,{$elem:e});return new Promise(e=>{(async()=>{let r=await this.preprocessString(i,t);await this.renderNode(r),de(n,r),e()})()})})},e.resolveEventAttributes=function(e,t){if(this._skipNodes.has(e))return;let n=e;for(let t of Array.from(n.attributes||[]))if(t.name.startsWith(`:on:`)||t.name.startsWith(`data-on-`)){let r=``,i=[];if(t.name.startsWith(`:on:`)?[r,...i]=t.name.substring(4).split(`.`):t.name.startsWith(`data-on-`)&&([r,...i]=t.name.substring(8).split(`.`)),!r)throw Error(`Invalid event attribute: ${t.name}`);this.log(t.name,`attribute found in:
23
- `,A(e,128)),T(n,t.name);let a=r===`submit`&&n.tagName.toUpperCase()===`FORM`;e.addEventListener?.(r,n=>((i.includes(`prevent`)||a)&&n.preventDefault(),this.eval(t.value,{$elem:e,$event:n})))}},e.resolveForAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`for`,`:`)?.trim();if(r){this.log(`:for attribute found in:
24
- `,A(e,128)),T(n,`for`,`:`);for(let t of h(e,this._skipNodes))this._skipNodes.add(t);let i=y(n,`style`)||``;x(n,`style`,`display: none;`);let a=e.parentNode;if(!a)return;let o=this.createElement(`template`,e.ownerDocument);k(a,o,e),O(a,e),`content`in o?D(o.content,e):D(o,e),this.log(`:for template:
25
- `,A(o,128));let s=r.split(` in `,2);if(s.length!==2)throw Error(`Invalid :for format: \`${r}\`. Expected "{key} in {expression}".`);let c=[],[l,u]=s;await this.effect(function(){let n=this.eval(u,{$elem:e});if(this.log(`:for list items:`,n),c.splice(0,c.length).forEach(e=>{e.parentNode===a&&O(a,e),this._skipNodes.delete(e)}),!Array.isArray(n))return console.error(`Expression did not yield a list: \`${u}\` => \`${n}\``),Promise.resolve();let r=[];for(let a of n){let n=this.subrenderer();n._store.set(l,a);let o=e.cloneNode(!0);x(o,`style`,i),c.push(o),this._skipNodes.add(o),r.push(n.mount(o,t)),this.log(`Rendered list child:
26
- `,A(o,128))}let s=o.nextSibling;for(let e of c)k(a,e,s);return Promise.all(r)})}},e.resolveBindAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`bind`,`:`);if(r){this.log(`:bind attribute found in:
27
- `,A(e,128));let t=y(n,`:bind:on`)?.split(`,`)||n.dataset?.bindOn?.split(`,`)||[`change`,`input`];T(n,`bind`,`:`),w(n,`:bind:on`),w(n,`data-bind-on`);let i=y(n,`type`)===`checkbox`?`checked`:`value`;!r.includes(`.`)&&!this.has(r)&&this.set(r,``),this.effect(function(){let t=this.eval(r,{$elem:e});i===`checked`?n.checked=!!t:n.value=t});let a=`${r} = $elem.${i}`;for(let n of t)e.addEventListener(n,()=>this.eval(a,{$elem:e}))}},e.resolveIfAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`if`,`:`);if(r){this.log(`:if attribute found in:
28
- `,A(e,128)),T(n,`if`,`:`);let t=this.createComment(` :if placeholder `,e.ownerDocument);this.effect(function(){this.eval(r,{$elem:e})?!n.parentNode&&t.parentNode&&E(t,n):n.parentNode&&E(n,t)})}},e.resolveShowAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`show`,`:`);if(r){this.log(`:show attribute found in:
29
- `,A(e,128)),T(n,`show`,`:`);let t=n.style?.display===`none`?``:n.style?.display??y(n,`style`)?.split(`;`)?.find(e=>e.split(`:`)[0]===`display`)?.split(`:`)?.at(1)?.trim();this.effect(function(){let i=this.eval(r,{$elem:e});n.style?n.style.display=i?t:`none`:S(n,`style`,`display: ${i?t:`none`};`)})}},e.resolveCustomAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e;for(let t of Array.from(n.attributes||[])){let r=`:attr:`,i=`data-attr-`;if(t.name.startsWith(r)||t.name.startsWith(i)){this.log(t.name,`attribute found in:
30
- `,A(e,128)),w(n,t.name);let a=(t.name.split(r,2).at(-1)||``).split(i,2).at(-1)??``;this.effect(function(){x(n,a,this.eval(t.value,{$elem:e}))})}}},e.resolveCustomProperty=function(e,t){if(this._skipNodes.has(e))return;let n=e;for(let t of Array.from(n.attributes||[])){let r=`:prop:`,i=`data-prop-`;if(t.name.startsWith(r)||t.name.startsWith(i)){this.log(t.name,`property found in:
31
- `,A(e,128)),w(n,t.name);let a=v((t.name.split(r,2).at(-1)||``).split(i,2).at(-1)??``);this.effect(function(){C(n,a,this.eval(t.value,{$elem:e}))})}}},e.stripTypes=(e,t)=>{let n=e;y(n,`:types`)&&w(n,`:types`),y(n,`data-types`)&&w(n,`data-types`)},e.resolveRenderAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=b(n,`render`,`:`);if(!r)return;this.log(`:render attribute found: ${r}`),T(n,`render`,`:`);let i;g(e,`renderer`)?(i=e.renderer,this.log(`Reusing existing subrenderer for :render:`,A(e,64))):(i=this.subrenderer(),C(n,`renderer`,i)),await i.mount(e,t);for(let t of h(e,this._skipNodes))this._skipNodes.add(t);try{let e=await import(r);typeof e.default==`function`?await e.default(n,i):e.default!==void 0&&console.warn(`Module ${r} default export is not a function`)}catch(e){console.error(`Failed to execute render init from ${r}:`,e)}}})(M||={});function N(){return new URL(globalThis.window?.location?.href||`http://localhost/`)}function he(e){return e.substring(2)}function ge(e){return`\$\$${e}`}function _e(e){return e.keys().filter(e=>e.startsWith(`$$`))}async function ve(e,t){for(let[n,r]of t.searchParams.entries()){let t=ge(n);e.get(t)!==r&&await e.set(t,r)}}function ye(e,t,n){let r=he(t),i=!1;if(!n)e.searchParams.has(r)&&(e.searchParams.delete(r),i=!0);else{let t=String(n);e.searchParams.get(r)!==t&&(e.searchParams.set(r,t),i=!0)}return i}function be(e,t){let n=!1;for(let r of _e(t))ye(e,r,t.get(r))&&(n=!0);n&&globalThis.window?.history?.replaceState({},``,e.toString())}function xe(e){return async()=>{let t=N(),n=new Set;for(let[r,i]of t.searchParams.entries()){let t=ge(r);n.add(t),e.get(t)!==i&&e.set(t,i)}let r=_e(e);for(let t of r)n.has(t)||e.del(t)}}async function Se(e){let t=N();await ve(e,t),be(t,e),e.addKeyHandler(/^\$\$/,(e,t)=>{let n=N();ye(n,e,t)&&globalThis.window?.history?.replaceState({},``,n.toString())}),globalThis.window?.addEventListener(`popstate`,xe(e))}
16
+ function d(e,t){e.textContent=ae(t)}function f(e){return l(e[0].toLowerCase())}function p(e){let t=e[0];return ie(t)}function oe(e){return ie(e.map(ae).join(``))}let se=[f`:`,f`style`,f`class`];function*m(e,t=new Set){let n=new Set,r=Array.from(e.childNodes).filter(e=>!t.has(e));for(yield e;r.length;){let e=r.shift();n.has(e)||(n.add(e),yield e),e.childNodes&&Array.from(e.childNodes).filter(e=>!t.has(e)).forEach(e=>{r.push(e)})}}function h(e,t){return e?.[t]!==void 0}function g(e,t){return typeof e?.[t]==`function`}function _(e){return e.replace(/-./g,e=>e[1].toUpperCase())}function v(e,t){return e.attribs?e.attribs[t]??null:e.getAttribute?.(t)??null}function ce(e,t){return e.attribs?t in e.attribs:e.hasAttribute?.(t)??!1}function y(e,t,n=``){return v(e,n+t)||v(e,`data-${t}`)||(e.dataset?.[_(t)]??null)}function b(e,t,n){e.attribs?e.attribs[t]=n:e.setAttribute?.(t,n)}function x(e,t,n){e.attribs?e.attribs[t]=n:te(se,e,t,n)}function S(e,t,n){switch(t){case`disabled`:e.disabled=n;return;case`selected`:e.selected=n;return;case`checked`:e.checked=n;return;default:e[t]=n}}function C(e,t){e.attribs?delete e.attribs[t]:e.removeAttribute?.(t)}function le(e,t,n,r=``){ce(e,`${r}${t}`)?b(e,`${r}${t}`,n):ce(e,`data-${t}`)?b(e,`data-${t}`,n):b(e,`${r}${t}`,n)}function w(e,t,n=``){C(e,`${n}${t}`),C(e,`data-${t}`)}function ue(e,t,n){if(e.attribs&&t.attribs)t.attribs[n]=e.attribs[n];else if(n.startsWith(`data-`)){let r=_(n.slice(5));t.dataset&&e.dataset&&(t.dataset[r]=e.dataset[r])}else{let r=e?.getAttribute?.(n);x(t,n,r||``)}}function de(e){return h(e,`firstElementChild`)?e.firstElementChild:Array.from(e.children).find(e=>e.nodeType===1)}function T(e,...t){if(g(e,`replaceWith`)){e.replaceWith(...t);return}else{let n=e,r=n.parentNode;if(!r)return;let i=Array.from(r.childNodes).indexOf(n);n.parentNode=null,t.forEach(e=>{e.parentNode=r}),r.childNodes=[].concat(Array.from(r.childNodes).slice(0,i),t,Array.from(r.childNodes).slice(i+1))}}function fe(e,...t){g(e,`replaceChildren`)?e.replaceChildren(...t):(e.childNodes=t,t.forEach(t=>{t.parentNode=e}))}function E(e,t){return g(t,`appendChild`)?e.appendChild(t):(e.childNodes.push(t),t.parentNode=e,t)}function D(e,t){return g(t,`removeChild`)?e.removeChild(t):(fe(e,...Array.from(e.childNodes).filter(e=>e!==t)),t)}function pe(e,t,n){return n?g(e,`insertBefore`)?e.insertBefore(t,n):(T(n,t,n),t):E(e,t)}function me(e,t=0){return e?e.length<=t?e:`${e.slice(0,t-1)}…`:``}function O(e,t=0){return globalThis.DocumentFragment&&e instanceof DocumentFragment?Array.from(e.childNodes).map(e=>O(e,t)).join(``):me(e.outerHTML||e.nodeValue||String(e),t)}function k(e){return e.includes(`/`)?e.split(`/`).slice(0,-1).join(`/`):``}function he(e){return!e.includes(`://`)&&!e.startsWith(`/`)&&!e.startsWith(`#`)&&!e.startsWith(`data:`)}var A=class e{iterable;constructor(e){this.iterable=e}filter(t){return new e(e.filterGenerator(t,this.iterable))}map(t){return new e(e.mapGenerator(t,this.iterable))}find(e){for(let t of this.iterable)if(e(t))return t}array(){return Array.from(this.iterable)}*generator(){for(let e of this.iterable)yield e}static*filterGenerator(e,t){for(let n of t)e(n)&&(yield n)}static*mapGenerator(e,t){for(let n of t)yield e(n)}static equals(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(i.value!==a.value)return!1;i=n.next(),a=r.next()}return i.done===a.done}};let j;(function(e){e.resolveIncludes=async function(e,t){let n=e,r=n.tagName?.toLowerCase();if(![`include`,`link`].includes(r)||r===`link`&&v(n,`rel`)!==`subresource`)return;this.log(`include directive found in:
17
+ `,O(e,128)),this.log(`include params:`,t);let i=n.tagName.toLocaleLowerCase()===`link`?`href`:`src`,a=v(n,i);if(!a)throw Error(`"${i}" attribute missing from ${O(e,128)}.`);let o=[];r===`include`&&o.push(`src`),r===`link`&&o.push(`rel`,`href`);let s=t=>{let r=de(t);for(let e of Array.from(n.attributes))r&&!o.includes(e.name)&&ue(n,r,e.name);T(e,...t.childNodes)},c={...t,rootDocument:!1,maxdepth:(t?.maxdepth??100)-1};if(c.maxdepth===0)throw Error(`Maximum recursion depth reached.`);if(a.includes(`://`)||a.startsWith(`//`))this.log(`Including remote file from absolute path:`,a),await this.preprocessRemote(a,c).then(s);else if(t?.dirpath?.includes(`://`)||t?.dirpath?.startsWith(`//`)){let e=a.startsWith(`/`)?a:`${t.dirpath}/${a}`;this.log(`Including remote file from relative path:`,e),await this.preprocessRemote(e,c).then(s)}else if(a.charAt(0)===`/`)this.log(`Including local file from absolute path:`,a),await this.preprocessLocal(a,c).then(s);else{let e=t?.dirpath&&t?.dirpath!==`.`?`${t?.dirpath}/${a}`:a;this.log(`Including local file from relative path:`,e),await this.preprocessLocal(e,c).then(s)}},e.rebaseRelativePaths=function(e,t){let n=e,r=n.tagName?.toLowerCase();if(!t?.dirpath)return;let o=v(n,`src`),s=v(n,`href`),c=y(n,`render`,`:`),l=o||s||c;if(!l||!he(l))return;let u=`${t.dirpath}/${l}`;this.log(`Rebasing relative path as:`,u),c?le(n,`render`,u,`:`):h(n,`attribs`)?x(n,o?`src`:`href`,u):r===`img`?n.src=u:r===`a`?i(n,u):r===`source`||r===`audio`||r===`video`||r===`track`||r===`input`?n.src=u:r===`area`?a(n,u):this.log(`Unable to rebase relative path for element:`,r)},e.registerCustomElements=function(e,t){let n=e,r=n.tagName?.toLowerCase(),i=(v(n,`is`)||v(n,`alt`))?.toLowerCase();if([`template`,`div`].includes(r)&&i){if(r===`div`&&v(n,`role`)!==`template`)return;if(!this._customElements.has(i)){this.log(`Registering custom element: ${i}\n`,O(n,128));let e=n.content||n,r=Array.from(m(e));for(let e=1;e<r.length;e++)j.rebaseRelativePaths.call(this,r[e],t);this._customElements.set(i,n),n?.parentNode&&D(n.parentNode,n)}}},e.resolveCustomElements=function(e,t){let n=e,r=n.tagName?.toLowerCase(),i=r;if(i===`div`&&(i=v(n,`role`)?.toLowerCase()||i),i&&this._customElements.has(i)){this.log(`Processing custom element: ${i}\n`,O(n,128));let t=this._customElements.get(i),a=(t.content||t).cloneNode(!0),o=de(a);if(o)for(let e of Array.from(n.attributes))(r!==`div`||e.name!==`role`)&&ue(n,o,e.name);let s=new A(m(a)).find(e=>e.tagName?.toLowerCase()===`slot`);s&&T(s,...n.childNodes),T(e,...a.childNodes)}},e.resolveTextNodeExpressions=function(e,t){let n=e.nodeValue||``;if(e.nodeType!==3||!n?.trim())return;this.log(`Processing node content value:
18
+ `,me(n,128));let r=new RegExp(/{{ ([^}]+) }}/gm),i=Array.from(n.matchAll(r)).map(e=>e[1]);return this.effect(function(){let t=n;for(let n of i){let r=this.eval(n,{$elem:e});t=t.replace(`{{ ${n} }}`,String(r))}e.nodeValue=t})},e.resolveDataAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`data`,`:`);if(r){this.log(`:data attribute found in:
19
+ `,O(e,128)),w(n,`data`,`:`);let i;h(e,`renderer`)?(i=e.renderer,this.log(`Reusing existing subrenderer for node:`,O(e,64))):(i=this.subrenderer(),S(e,`renderer`,i),this.log(`Created and attached new subrenderer for node:`,O(e,64)));let a=i.eval(r,{$elem:e});if(await Promise.all(Object.entries(a).map(([e,t])=>e.startsWith(`$$`)?(i._store.get(`$rootRenderer`)||i).set(e,t):i._store.set(e,t))),i===this)return;for(let t of m(e,this._skipNodes))this._skipNodes.add(t);await i.mount(e,t)}},e.resolveClassAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`class`,`:`);if(r){this.log(`:class attribute found in:
20
+ `,O(e,128)),w(n,`class`,`:`);let t=v(n,`class`)||``;return this.effect(function(){let i=this.eval(r,{$elem:e});x(n,`class`,(i?`${t} ${i}`:t).trim())})}},e.resolveTextAttributes=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`text`,`:`);if(r){this.log(`:text attribute found in:
21
+ `,O(e,128)),w(n,`text`,`:`);let t=t=>this.textContent(e,t);return this.effect(function(){t(this.eval(r,{$elem:e}))})}},e.resolveHtmlAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`html`,`:`);if(r)return this.log(`:html attribute found in:
22
+ `,O(e,128)),w(n,`html`,`:`),this.effect(function(){let i=this.eval(r,{$elem:e});return new Promise(e=>{(async()=>{let r=await this.preprocessString(i,t);await this.renderNode(r),fe(n,r),e()})()})})},e.resolveEventAttributes=function(e,t){if(this._skipNodes.has(e))return;let n=e;for(let t of Array.from(n.attributes||[]))if(t.name.startsWith(`:on:`)||t.name.startsWith(`data-on-`)){let r=``,i=[];if(t.name.startsWith(`:on:`)?[r,...i]=t.name.substring(4).split(`.`):t.name.startsWith(`data-on-`)&&([r,...i]=t.name.substring(8).split(`.`)),!r)throw Error(`Invalid event attribute: ${t.name}`);this.log(t.name,`attribute found in:
23
+ `,O(e,128)),w(n,t.name);let a=r===`submit`&&n.tagName.toUpperCase()===`FORM`;e.addEventListener?.(r,n=>((i.includes(`prevent`)||a)&&n.preventDefault(),this.eval(t.value,{$elem:e,$event:n})))}},e.resolveForAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`for`,`:`)?.trim();if(r){this.log(`:for attribute found in:
24
+ `,O(e,128)),w(n,`for`,`:`);for(let t of m(e,this._skipNodes))this._skipNodes.add(t);let i=v(n,`style`)||``;b(n,`style`,`display: none;`);let a=e.parentNode;if(!a)return;let o=this.createElement(`template`,e.ownerDocument);pe(a,o,e),D(a,e),`content`in o?E(o.content,e):E(o,e),this.log(`:for template:
25
+ `,O(o,128));let s=r.split(` in `,2);if(s.length!==2)throw Error(`Invalid :for format: \`${r}\`. Expected "{key} in {expression}".`);let c=[],[l,u]=s;await this.effect(function(){let n=this.eval(u,{$elem:e});if(this.log(`:for list items:`,n),c.splice(0,c.length).forEach(e=>{e.parentNode===a&&D(a,e),this._skipNodes.delete(e)}),!Array.isArray(n))return console.error(`Expression did not yield a list: \`${u}\` => \`${n}\``),Promise.resolve();let r=[];for(let a of n){let n=this.subrenderer();n._store.set(l,a);let o=e.cloneNode(!0);b(o,`style`,i),c.push(o),this._skipNodes.add(o),r.push(n.mount(o,t)),this.log(`Rendered list child:
26
+ `,O(o,128))}let s=o.nextSibling;for(let e of c)pe(a,e,s);return Promise.all(r)})}},e.resolveBindAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`bind`,`:`);if(r){this.log(`:bind attribute found in:
27
+ `,O(e,128));let t=v(n,`:bind:on`)?.split(`,`)||n.dataset?.bindOn?.split(`,`)||[`change`,`input`];w(n,`bind`,`:`),C(n,`:bind:on`),C(n,`data-bind-on`);let i=v(n,`type`)===`checkbox`?`checked`:`value`;!r.includes(`.`)&&!this.has(r)&&this.set(r,``),this.effect(function(){let t=this.eval(r,{$elem:e});i===`checked`?n.checked=!!t:n.value=t});let a=`${r} = $elem.${i}`;for(let n of t)e.addEventListener(n,()=>this.eval(a,{$elem:e}))}},e.resolveIfAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`if`,`:`);if(r){this.log(`:if attribute found in:
28
+ `,O(e,128)),w(n,`if`,`:`);let t=this.createComment(` :if placeholder `,e.ownerDocument);this.effect(function(){this.eval(r,{$elem:e})?!n.parentNode&&t.parentNode&&T(t,n):n.parentNode&&T(n,t)})}},e.resolveShowAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`show`,`:`);if(r){this.log(`:show attribute found in:
29
+ `,O(e,128)),w(n,`show`,`:`);let t=n.style?.display===`none`?``:n.style?.display??v(n,`style`)?.split(`;`)?.find(e=>e.split(`:`)[0]===`display`)?.split(`:`)?.at(1)?.trim();this.effect(function(){let i=this.eval(r,{$elem:e});n.style?n.style.display=i?t:`none`:x(n,`style`,`display: ${i?t:`none`};`)})}},e.resolveCustomAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e;for(let t of Array.from(n.attributes||[])){let r=`:attr:`,i=`data-attr-`;if(t.name.startsWith(r)||t.name.startsWith(i)){this.log(t.name,`attribute found in:
30
+ `,O(e,128)),C(n,t.name);let a=(t.name.split(r,2).at(-1)||``).split(i,2).at(-1)??``;this.effect(function(){b(n,a,this.eval(t.value,{$elem:e}))})}}},e.resolveCustomProperty=function(e,t){if(this._skipNodes.has(e))return;let n=e;for(let t of Array.from(n.attributes||[])){let r=`:prop:`,i=`data-prop-`;if(t.name.startsWith(r)||t.name.startsWith(i)){this.log(t.name,`property found in:
31
+ `,O(e,128)),C(n,t.name);let a=_((t.name.split(r,2).at(-1)||``).split(i,2).at(-1)??``);this.effect(function(){S(n,a,this.eval(t.value,{$elem:e}))})}}},e.stripTypes=(e,t)=>{let n=e;v(n,`:types`)&&C(n,`:types`),v(n,`data-types`)&&C(n,`data-types`)},e.resolveRenderAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=y(n,`render`,`:`);if(!r)return;this.log(`:render attribute found: ${r}`),w(n,`render`,`:`);let i;h(e,`renderer`)?(i=e.renderer,this.log(`Reusing existing subrenderer for :render:`,O(e,64))):(i=this.subrenderer(),S(n,`renderer`,i)),await i.mount(e,t);for(let t of m(e,this._skipNodes))this._skipNodes.add(t);try{let e=await import(r);typeof e.default==`function`?await e.default(n,i):e.default!==void 0&&console.warn(`Module ${r} default export is not a function`)}catch(e){console.error(`Failed to execute render init from ${r}:`,e)}}})(j||={});function M(){return new URL(globalThis.window?.location?.href||`http://localhost/`)}function ge(e){return e.substring(2)}function N(e){return`\$\$${e}`}function _e(e){return e.keys().filter(e=>e.startsWith(`$$`))}async function ve(e,t){for(let[n,r]of t.searchParams.entries()){let t=N(n);e.get(t)!==r&&await e.set(t,r)}}function ye(e,t,n){let r=ge(t),i=!1;if(!n)e.searchParams.has(r)&&(e.searchParams.delete(r),i=!0);else{let t=String(n);e.searchParams.get(r)!==t&&(e.searchParams.set(r,t),i=!0)}return i}function be(e,t){let n=!1;for(let r of _e(t))ye(e,r,t.get(r))&&(n=!0);n&&globalThis.window?.history?.replaceState({},``,e.toString())}function xe(e){return async()=>{let t=M(),n=new Set;for(let[r,i]of t.searchParams.entries()){let t=N(r);n.add(t),e.get(t)!==i&&e.set(t,i)}let r=_e(e);for(let t of r)n.has(t)||e.del(t)}}async function Se(e){let t=M();await ve(e,t),be(t,e),e.addKeyHandler(/^\$\$/,(e,t)=>{let n=M();ye(n,e,t)&&globalThis.window?.history?.replaceState({},``,n.toString())}),globalThis.window?.addEventListener(`popstate`,xe(e))}
32
32
  /*
33
33
  * @license
34
34
  * Portions Copyright (c) 2013, the Dart project authors.
@@ -38,11 +38,11 @@ let Ce=new Set([`this`,`typeof`]),we=new Set([`in`]),Te=new Set([`+`,`-`,`!`,`ty
38
38
  * @license
39
39
  * Portions Copyright (c) 2013, the Dart project authors.
40
40
  */
41
- let Ae=new Set([`==`,`!=`,`<=`,`>=`,`||`,`&&`,`??`,`?.`]),je=new Set([`===`,`!==`]),F=function(e){return e[e.STRING=1]=`STRING`,e[e.IDENTIFIER=2]=`IDENTIFIER`,e[e.DOT=3]=`DOT`,e[e.COMMA=4]=`COMMA`,e[e.COLON=5]=`COLON`,e[e.INTEGER=6]=`INTEGER`,e[e.DECIMAL=7]=`DECIMAL`,e[e.OPERATOR=8]=`OPERATOR`,e[e.GROUPER=9]=`GROUPER`,e[e.KEYWORD=10]=`KEYWORD`,e[e.ARROW=11]=`ARROW`,e[e.OPTIONAL_DOT=12]=`OPTIONAL_DOT`,e[e.SPREAD=13]=`SPREAD`,e}({}),I=(e,t,n=0)=>({kind:e,value:t,precedence:n}),Me=e=>e===9||e===10||e===13||e===32,L=e=>{if(e===95||e===36)return!0;let t=e&-33;return 65<=t&&t<=90},Ne=e=>L(e)||R(e),Pe=e=>Ce.has(e),Fe=e=>e===34||e===39,R=e=>48<=e&&e<=57,Ie=e=>e===43||e===45||e===42||e===47||e===33||e===38||e===37||e===60||e===61||e===62||e===63||e===94||e===124,Le=e=>e===40||e===41||e===91||e===93||e===123||e===125,Re=e=>e.replace(/\\(.)/g,(e,t)=>{switch(t){case`n`:return`
42
- `;case`r`:return`\r`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;default:return t}});var ze=class{_input;_index=-1;_tokenStart=0;_next;constructor(e){this._input=e,this._advance()}nextToken(){for(;Me(this._next??-1);)this._advance(!0);if(Fe(this._next??-1))return this._tokenizeString();if(L(this._next??-1))return this._tokenizeIdentOrKeyword();if(R(this._next??-1))return this._tokenizeNumber();if(this._next===46)return this._tokenizeDot();if(this._next===44)return this._tokenizeComma();if(this._next===58)return this._tokenizeColon();if(Ie(this._next??-1))return this._tokenizeOperator();if(Le(this._next??-1))return this._tokenizeGrouper();if(this._advance(),this._next!==void 0)throw Error(`Expected end of input, got ${this._next}`)}_advance(e){this._index++,this._index<this._input.length?(this._next=this._input.charCodeAt(this._index),e===!0&&(this._tokenStart=this._index)):this._next=void 0}_getValue(e=0){let t=this._input.substring(this._tokenStart,this._index+e);return e===0&&this._clearValue(),t}_clearValue(){this._tokenStart=this._index}_tokenizeString(){let e=this._next;for(this._advance(!0);this._next!==e;){if(this._next===void 0||this._next===92&&(this._advance(),this._next===void 0))throw Error(`unterminated string`);this._advance()}let t=I(F.STRING,Re(this._getValue()));return this._advance(),t}_tokenizeIdentOrKeyword(){do this._advance();while(Ne(this._next??-1));let e=this._getValue();return I(Pe(e)?F.KEYWORD:we.has(e)?F.OPERATOR:F.IDENTIFIER,e,P[e]??0)}_tokenizeNumber(){do this._advance();while(R(this._next??-1));return this._next===46?this._tokenizeDot():I(F.INTEGER,this._getValue())}_tokenizeDot(){if(this._advance(),R(this._next??-1))return this._tokenizeFraction();if(this._next===46){if(this._advance(),this._next===46)return this._advance(),this._clearValue(),I(F.SPREAD,`...`);throw Error(`Unexpected token ..`)}return this._clearValue(),I(F.DOT,`.`,13)}_tokenizeComma(){return this._advance(!0),I(F.COMMA,`,`)}_tokenizeColon(){return this._advance(!0),I(F.COLON,`:`)}_tokenizeFraction(){do this._advance();while(R(this._next??-1));return I(F.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let e=this._getValue(2);if(je.has(e))this._advance(),this._advance();else{if(e=this._getValue(1),e===`=>`)return this._advance(),I(F.ARROW,e);Ae.has(e)&&this._advance()}return e=this._getValue(),e===`?.`?I(F.OPTIONAL_DOT,e,13):I(F.OPERATOR,e,P[e])}_tokenizeGrouper(){let e=String.fromCharCode(this._next??0),t=I(F.GROUPER,e,P[e]);return this._advance(!0),t}};let Be=(e,t)=>new Ve(e,t).parse();var Ve=class{_kind;_tokenizer;_ast;_token;_value;constructor(e,t){this._tokenizer=new ze(e),this._ast=t}parse(){this._advance();let e=this._parseExpression();if(this._token)throw Error(`Unexpected token: ${this._token.value}`);return e}_advance(e,t){if(!this._matches(e,t))throw Error(`Expected kind ${e} (${t}), was ${this._token?.kind} (${this._token?.value})`);let n=this._tokenizer.nextToken();this._token=n,this._kind=n?.kind,this._value=n?.value}_matches(e,t){return!(e&&this._kind!==e||t&&this._value!==t)}_parseExpression(){if(!this._token)return this._ast.empty();let e=this._parseUnary();return e===void 0?void 0:this._parsePrecedence(e,0)}_parsePrecedence(e,t){if(e===void 0)throw Error(`Expected left to be defined.`);for(;this._token;)if(this._matches(F.GROUPER,`(`)){let t=this._parseArguments();e=this._ast.invoke(e,void 0,t)}else if(this._matches(F.GROUPER,`[`)){let t=this._parseIndex();e=this._ast.index(e,t)}else if(this._matches(F.DOT)||this._matches(F.OPTIONAL_DOT)){let t=this._kind===F.OPTIONAL_DOT;if(this._advance(),t&&this._matches(F.GROUPER,`[`)){let t=this._parseIndex();e=this._ast.index(e,t,!0)}else if(t&&this._matches(F.GROUPER,`(`)){let t=this._parseArguments();e=this._ast.invoke(e,void 0,t,!0)}else{let n=this._parseUnary();e=this._makeInvokeOrGetter(e,n,t)}}else if(this._matches(F.KEYWORD))break;else if(this._matches(F.OPERATOR)&&this._token.precedence>=t)e=this._value===`?`?this._parseTernary(e):this._parseBinary(e,this._token);else break;return e}_makeInvokeOrGetter(e,t,n){if(t===void 0)throw Error(`expected identifier`);if(t.type===`ID`)return this._ast.getter(e,t.value,n);if(t.type===`Invoke`&&t.receiver.type===`ID`){let r=t.receiver;return this._ast.invoke(e,r.value,t.arguments,n)}else throw Error(`expected identifier: ${t}`)}_parseBinary(e,t){if(!Ee.has(t.value))throw Error(`unknown operator: ${t.value}`);this._advance();let n=this._parseUnary();for(;(this._kind===F.OPERATOR||this._kind===F.DOT||this._kind===F.GROUPER)&&this._token&&(this._token.precedence??0)>t.precedence;)n=this._parsePrecedence(n,this._token?.precedence??0);if(n===void 0)throw Error(`Expected expression after ${t.value}`);return this._ast.binary(e,t.value,n)}_parseUnary(){if(this._matches(F.KEYWORD,`typeof`)){this._advance();let e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(`typeof`,e)}if(this._matches(F.OPERATOR)){let e=this._value;if(this._advance(),e===`+`||e===`-`){if(this._matches(F.INTEGER))return this._parseInteger(e);if(this._matches(F.DECIMAL))return this._parseDecimal(e)}if(!e||!Te.has(e))throw Error(`unexpected token: ${e}`);let t=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(e,t)}return this._parsePrimary()}_parseTernary(e){this._advance(F.OPERATOR,`?`);let t=this._parseExpression();this._advance(F.COLON);let n=this._parseExpression();return this._ast.ternary(e,t,n)}_parsePrimary(){switch(this._kind){case F.KEYWORD:{let e=this._value??``;if(e===`this`)return this._advance(),this._ast.id(e);throw Ce.has(e)?Error(`unexpected keyword: ${e}`):Error(`unrecognized keyword: ${e}`)}case F.IDENTIFIER:return this._parseInvokeOrIdentifier();case F.STRING:return this._parseString();case F.INTEGER:return this._parseInteger();case F.DECIMAL:return this._parseDecimal();case F.GROUPER:return this._value===`(`?this._parseParenOrFunction():this._value===`{`?this._parseMap():this._value===`[`?this._parseList():void 0;case F.COLON:throw Error(`unexpected token ":"`);default:return}}_parseList(){let e=[];do{if(this._advance(),this._matches(F.GROUPER,`]`))break;if(this._matches(F.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else e.push(this._parseExpression())}while(this._matches(F.COMMA));return this._advance(F.GROUPER,`]`),this._ast.list(e)}_parseMap(){let e=[];do{if(this._advance(),this._matches(F.GROUPER,`}`))break;if(this._matches(F.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadProperty(t))}else{let t=this._value??``;if((this._matches(F.STRING)||this._matches(F.IDENTIFIER))&&this._advance(),this._matches(F.COLON)){this._advance(F.COLON);let n=this._parseExpression();n&&e.push(this._ast.property(t,n))}else e.push(this._ast.property(t,this._ast.id(t)))}}while(this._matches(F.COMMA));return this._advance(F.GROUPER,`}`),this._ast.map(e)}_parseInvokeOrIdentifier(){let e=this._value;if(e===`true`)return this._advance(),this._ast.literal(!0);if(e===`false`)return this._advance(),this._ast.literal(!1);if(e===`null`)return this._advance(),this._ast.literal(null);if(e===`undefined`)return this._advance(),this._ast.literal(void 0);let t=this._parseIdentifier(),n=this._parseArguments();return n?this._ast.invoke(t,void 0,n):t}_parseIdentifier(){if(!this._matches(F.IDENTIFIER))throw Error(`expected identifier: ${this._value}`);let e=this._value;return this._advance(),this._ast.id(e??``)}_parseArguments(){if(!this._matches(F.GROUPER,`(`))return;let e=[];do{if(this._advance(),this._matches(F.GROUPER,`)`))break;if(this._matches(F.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else{let t=this._parseExpression();e.push(t)}}while(this._matches(F.COMMA));return this._advance(F.GROUPER,`)`),e}_parseIndex(){this._advance();let e=this._parseExpression();return this._advance(F.GROUPER,`]`),e}_parseParenOrFunction(){let e=this._parseArguments();if(this._matches(F.ARROW)){this._advance();let t=this._parseExpression(),n=e?.map(e=>e.value)??[];return this._ast.arrowFunction(n,t)}else return this._ast.paren(e?.[0])}_parseString(){let e=this._ast.literal(this._value??``);return this._advance(),e}_parseInteger(e=``){let t=this._ast.literal(parseInt(`${e}${this._value}`,10));return this._advance(),t}_parseDecimal(e=``){let t=this._ast.literal(parseFloat(`${e}${this._value}`));return this._advance(),t}},He=class{timeouts=new Map;debounce(e,t){return new Promise((n,r)=>{let i=this.timeouts.get(t);i&&clearTimeout(i),this.timeouts.set(t,setTimeout(()=>{try{n(t()),this.timeouts.delete(t)}catch(e){r(e)}},e))})}};let Ue=new ke,z=`__is_proxy__`;function We(e){return e instanceof Ke||e[z]===!0}function B(e,t){let n=e?._store;if(n?.has(t))return n.get(t);if(n?.has(`$parent`))return B(n.get(`$parent`),t)}function V(e,t){let n=e?._store;return n?.has(t)?e:n?.has(`$parent`)?V(n.get(`$parent`),t):null}function Ge(e,t,n){let r=V(e,t);r?r._store.set(t,n):e._store.set(t,n)}var Ke=class extends He{evalkeys=[`$elem`,`$event`];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_observer=null;_store=new Map;_lock=Promise.resolve();constructor(e){super();for(let[t,n]of Object.entries(e||{}))this.set(t,n)}wrapFunction(e){return(...t)=>e.call(this.$,...t)}wrapObject(e,t){return e==null||We(e)||e.constructor!==Object&&!Array.isArray(e)?e:new Proxy(e,{deleteProperty:(e,n)=>typeof n==`string`&&n in e?(delete e[n],t(),!0):!1,set:(e,n,r,i)=>{typeof r==`object`&&r&&(r=this.wrapObject(r,t));let a=Reflect.set(e,n,r,i);return t(),a},get:(e,t,n)=>t===z?!0:Reflect.get(e,t,n)})}watch(e,t){let n=V(this,e);if(!n)throw Error(`Cannot watch key "${e}" as it does not exist in the store.`);n.observers.has(e)||n.observers.set(e,new Set),n.observers.get(e)?.has(t)||n.observers.get(e)?.add(t)}addKeyHandler(e,t){this.keyHandlers.has(e)||this.keyHandlers.set(e,new Set),this.keyHandlers.get(e)?.add(t)}async notify(e,t=10){let n=V(this,e),r=Array.from(n?.observers.get(e)||[]);await this.debounce(t,()=>Promise.all(r.map(e=>e.call(this.proxify(e)))))}get(e,t){return t&&this.watch(e,t),B(this,e)}async set(e,t){if(this._store.has(e)&&t===this._store.get(e))return;let n=()=>this.notify(e);t&&typeof t==`function`&&(t=this.wrapFunction(t)),t&&typeof t==`object`&&(t=this.wrapObject(t,n)),Ge(this,e,t);for(let[n,r]of this.keyHandlers.entries())if(n.test(e))for(let n of r)await Promise.resolve(n.call(this.$,e,t));await n()}async del(e){await this.set(e,null),this._store.delete(e),this.observers.delete(e)}keys(){return Array.from(this._store.keys())}has(e){return this._store.has(e)}effect(e){return e.call(this.proxify(e))}proxify(e){let t=Array.from(this._store.entries()).map(([e])=>e),n=Object.fromEntries(t.map(e=>[e,null]));return new Proxy(n,{has:(e,t)=>typeof t==`string`&&(V(this,t)||Reflect.has(this,t))?!0:Reflect.has(n,t),get:(t,n,r)=>{if(typeof n==`string`){if(V(this,n))return this.get(n,e);if(e&&n!==z&&!Reflect.has(this,n))return this.set(n,void 0),this.get(n,e)}return n===`$`?this.proxify(e):Reflect.get(this,n,r)},set:(e,t,n,r)=>(typeof t!=`string`||t in this?Reflect.set(this,t,n,r):this.set(t,n),!0)})}get $(){return this.proxify()}makeEvalFunction(e){return(t,n)=>{let r=Be(e,Ue),i=new Proxy(n,{has(e,n){return n in e||n in t||n in globalThis},get(e,n){if(typeof n==`string`)return n in e?e[n]:n in t?t[n]:n in globalThis?globalThis[n]:t[n]},set(e,n,r){return typeof n==`string`?n in e?(e[n]=r,!0):(t[n]=r,!0):!1}});return r?.evaluate(i)}}cachedExpressionFunction(e){e=e.trim(),this.expressionCache.has(e)||this.expressionCache.set(e,this.makeEvalFunction(e));let t=this.expressionCache.get(e);if(!t)throw Error(`Failed to retrieve cached expression: ${e}`);return t}eval(e,t={}){let n=this._observer?this:this.$;if(this._store.has(e))return n[e];{let r=this.cachedExpressionFunction(e);try{return r(n,t)}catch(t){return console.error(`Failed to evaluate expression: ${e}`),console.error(t),null}}}$resolve(e,t){let n={$pending:!0,$result:null,$error:null};return Promise.resolve().then(()=>e(t)).then(e=>{n.$result=e}).catch(e=>{n.$error=e instanceof Error?e:Error(String(e))}).finally(()=>{n.$pending=!1}),n}},qe=class extends Ke{debugging=!1;dirpath=``;_skipNodes=new Set;_customElements=new Map;debug(e){return this.debugging=e,this}async fetchRemote(e,t){return fetch(e,{cache:t?.cache??`default`}).then(e=>e.text())}async fetchLocal(e,t){return this.fetchRemote(e,t)}async preprocessString(e,t){this.log(`Preprocessing string content with params:
43
- `,t);let n=this.parseHTML(e,t);return await this.preprocessNode(n,t),n}async preprocessRemote(e,t){let n={};t?.cache&&(n.cache=t.cache);let r=await fetch(e,n).then(e=>e.text());return this.preprocessString(r,{...t,dirpath:j(e),rootDocument:t?.rootDocument??!e.endsWith(`.tpl.html`)})}async preprocessLocal(e,t){let n=await this.fetchLocal(e,t);return this.preprocessString(n,{...t,dirpath:j(e),rootDocument:t?.rootDocument??!e.endsWith(`.tpl.html`)})}subrenderer(){let e=new this.constructor().debug(this.debugging);return e._store.set(`$parent`,this),e._store.set(`$rootRenderer`,this.get(`$rootRenderer`)??this),e._customElements=this._customElements,e}log(...e){this.debugging&&console.debug(...e)}async preprocessNode(e,t){t={dirpath:this.dirpath,maxdepth:10,...t};let n=new me(h(e,this._skipNodes)).map(async e=>{this.log(`Preprocessing node:
44
- `,A(e,128)),await M.resolveIncludes.call(this,e,t),await M.rebaseRelativePaths.call(this,e,t),await M.registerCustomElements.call(this,e,t),await M.resolveCustomElements.call(this,e,t)});return await Promise.all(n.generator()),e}async renderNode(e,t){for(let n of h(e,this._skipNodes))this.log(`Rendering node:
45
- `,A(n,128)),await M.resolveForAttribute.call(this,n,t),await M.resolveRenderAttribute.call(this,n,t),await M.resolveDataAttribute.call(this,n,t),await M.resolveTextAttributes.call(this,n,t),await M.resolveHtmlAttribute.call(this,n,t),await M.resolveIfAttribute.call(this,n,t),await M.resolveShowAttribute.call(this,n,t),await M.resolveClassAttribute.call(this,n,t),await M.resolveBindAttribute.call(this,n,t),await M.resolveEventAttributes.call(this,n,t),await M.resolveTextNodeExpressions.call(this,n,t),await M.resolveCustomAttribute.call(this,n,t),await M.resolveCustomProperty.call(this,n,t),await M.stripTypes.call(this,n,t);return e}async mount(e,t){t={...t,rootNode:e},C(e,`renderer`,this),this._store.set(`$rootNode`,e),this.has(`$rootRenderer`)||this._store.set(`$rootRenderer`,this),this.get(`$rootRenderer`)===this&&await Se(this),await this.preprocessNode(e,t),await this.renderNode(e,t)}};function Je(){return ae([m`*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}`,m`html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}`,m`body{margin:0;line-height:inherit}`,m`hr{height:0;color:inherit;border-top-width:1px}`,m`abbr:where([title]){text-decoration:underline dotted}`,m`b,strong{font-weight:bolder}`,m`code,kbd,samp,pre{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:1em}`,m`small{font-size:80%}`,m`sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}`,m`sub{bottom:-0.25em}`,m`sup{top:-0.5em}`,m`button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}`,m`button,select{text-transform:none}`,m`button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;cursor:pointer}`,m`:-moz-focusring{outline:auto}`,m`:-moz-ui-invalid{box-shadow:none}`,m`progress{vertical-align:baseline}`,m`::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}`,m`[type='search']{-webkit-appearance:textfield;outline-offset:-2px}`,m`::-webkit-search-decoration{-webkit-appearance:none}`,m`::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}`,m`summary{display:list-item}`,m`blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}`,m`fieldset{margin:0;padding:0}`,m`legend{padding:0}`,m`ol,ul,menu{list-style:none;margin:0;padding:0}`,m`textarea{resize:vertical}`,m`::placeholder{opacity:1;color:#9ca3af}`,m`button,[role="button"]{cursor:pointer}`,m`:disabled{cursor:default}`,m`img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}`,m`img,video{max-width:100%;height:auto}`,m`[hidden]{display:none}`,m`dialog{padding:0}`,m`dialog::backdrop{background:rgba(0,0,0,0.5)}`])}function Ye(){return ae([m`html{`,m`max-width: 70ch;`,m`padding: 2em 1em;`,m`margin: auto;`,m`line-height: 1.75;`,m`font-size: 1.25em;`,m`font-family: sans-serif;`,m`}`,m`h1,h2,h3,h4,h5,h6{`,m`margin: 1em 0 0.5em;`,m`}`,m`p,ul,ol{`,m`margin-bottom: 1em;`,m`color: #1d1d1d;`,m`}`])}let Xe={sm:640,md:768,lg:1024,xl:1280},Ze=Object.entries(Xe),H=.25,U=[...Array(15)].map((e,t)=>t+1),Qe=[16,20,24,28,32,36,40,48,56,64],$e=[72,80,96,128,160,192,256,320,384,512],W=[...U,...Qe,...$e,...Object.values(Xe)],G=Array.from({length:20},(e,t)=>(t+1)*5),et=[0,10,20,30,40,50,60,70,80,90,100],tt=[25,50,75,100,150,200,300,500,700,1e3],nt=[`hover`,`focus`],K={margin:`m`,padding:`p`},rt={width:`w`,height:`h`},it={top:`top`,right:`right`,bottom:`bottom`,left:`left`},at={"min-width":`min-w`,"min-height":`min-h`,"max-width":`max-w`,"max-height":`max-h`},ot={"font-mono":{"font-family":`monospace`},"font-sans":{"font-family":`sans-serif`},"font-serif":{"font-family":`serif`},"font-cursive":{"font-family":`cursive`},"text-xs":{"font-size":`.75rem`,"line-height":`calc(1 / 0.75)`},"text-sm":{"font-size":`.875rem`,"line-height":`calc(1.25 / 0.875)`},"text-base":{"font-size":`1rem`,"line-height":`calc(1.5 / 1)`},"text-lg":{"font-size":`1.125rem`,"line-height":`calc(1.75 / 1.125)`},"text-xl":{"font-size":`1.25rem`,"line-height":`calc(1.75 / 1.25)`},"text-2xl":{"font-size":`1.5rem`,"line-height":`calc(2 / 1.5)`},"text-3xl":{"font-size":`1.875rem`,"line-height":`calc(2.25 / 1.875)`},"text-4xl":{"font-size":`2.25rem`,"line-height":`calc(2.5 / 2.25)`},"text-5xl":{"font-size":`3rem`,"line-height":`1`},"text-6xl":{"font-size":`3.75rem`,"line-height":`1`},"text-7xl":{"font-size":`4.5rem`,"line-height":`1`},"font-thin":{"font-weight":100},"font-extralight":{"font-weight":200},"font-light":{"font-weight":300},"font-normal":{"font-weight":400},"font-medium":{"font-weight":500},"font-semibold":{"font-weight":600},"font-bold":{"font-weight":700},"font-extrabold":{"font-weight":800},"font-black":{"font-weight":900},italic:{"font-style":`italic`},"not-italic":{"font-style":`normal`},"w-max":{width:`max-content`},"w-min":{width:`min-content`},"w-fit":{width:`fit-content`},"h-max":{height:`max-content`},"h-min":{height:`min-content`},"h-fit":{height:`fit-content`},"size-auto":{width:`auto`,height:`auto`},"size-px":{width:`1px`,height:`1px`},"size-full":{width:`100%`,height:`100%`},"size-dvw":{width:`100dvw`,height:`100dvw`},"size-dvh":{width:`100dvh`,height:`100dvh`},"size-lvw":{width:`100lvw`,height:`100lvw`},"size-lvh":{width:`100lvh`,height:`100lvh`},"size-svw":{width:`100svw`,height:`100svw`},"size-svh":{width:`100svh`,height:`100svh`},"size-min":{width:`min-content`,height:`min-content`},"size-max":{width:`max-content`,height:`max-content`},"size-fit":{width:`fit-content`,height:`fit-content`},"tracking-tighter":{"letter-spacing":`-0.05em`},"tracking-tight":{"letter-spacing":`-0.025em`},"tracking-normal":{"letter-spacing":`0`},"tracking-wide":{"letter-spacing":`0.025em`},"tracking-wider":{"letter-spacing":`0.05em`},"tracking-widest":{"letter-spacing":`0.1em`},"leading-none":{"line-height":`1`},"leading-tight":{"line-height":`1.25`},"leading-snug":{"line-height":`1.375`},"leading-normal":{"line-height":`1.5`},"leading-relaxed":{"line-height":`1.625`},"leading-loose":{"line-height":`2`},"text-left":{"text-align":`left`},"text-right":{"text-align":`right`},"text-center":{"text-align":`center`},"text-justify":{"text-align":`justify`},underline:{"text-decoration":`underline`},"no-underline":{"text-decoration":`none`},"decoration-none":{"text-decoration":`none`},"line-through":{"text-decoration":`line-through`},uppercase:{"text-transform":`uppercase`},lowercase:{"text-transform":`lowercase`},capitalize:{"text-transform":`capitalize`},truncate:{"white-space":`nowrap`,overflow:`hidden`,"text-overflow":`ellipsis`},"text-elipsis":{"text-overflow":`ellipsis`},"text-clip":{"text-overflow":`clip`},"text-wrap":{"text-wrap":`wrap`},"text-nowrap":{"text-wrap":`nowrap`},"text-balance":{"text-wrap":`balance`},"text-pretty":{"text-wrap":`pretty`},"whitespace-normal":{"white-space":`normal`},"whitespace-nowrap":{"white-space":`nowrap`},"whitespace-pre":{"white-space":`pre`},"whitespace-pre-line":{"white-space":`pre-line`},"whitespace-pre-wrap":{"white-space":`pre-wrap`},"whitespace-break-spaces":{"white-space":`break-spaces`},relative:{position:`relative`},fixed:{position:`fixed`},absolute:{position:`absolute`},sticky:{position:`sticky`},"object-contain":{"object-fit":`contain`},"object-cover":{"object-fit":`cover`},"object-fill":{"object-fit":`fill`},"object-none":{"object-fit":`none`},block:{display:`block`},contents:{display:`contents`},hidden:{display:`none`},inline:{display:`inline`},"inline-block":{display:`inline-block`},visible:{visibility:`visible`},invisible:{visibility:`hidden`},collapse:{visibility:`collapse`},"list-none":{"list-style-type":`none`},"list-disc":{"list-style-type":`disc`},"list-decimal":{"list-style-type":`decimal`},flex:{display:`flex`},grid:{display:`grid`},"flex-1":{flex:`1 1 0%`},"flex-inline":{display:`inline-flex`},"flex-row":{"flex-direction":`row`},"flex-col":{"flex-direction":`column`},"flex-row-reverse":{"flex-direction":`row-reverse`},"flex-col-reverse":{"flex-direction":`column-reverse`},"flex-wrap":{"flex-wrap":`wrap`},"flex-wrap-reverse":{"flex-wrap":`wrap-reverse`},"flex-nowrap":{"flex-wrap":`nowrap`},"justify-start":{"justify-content":`flex-start`},"justify-end":{"justify-content":`flex-end`},"justify-center":{"justify-content":`center`},"justify-between":{"justify-content":`space-between`},"justify-around":{"justify-content":`space-around`},"justify-evenly":{"justify-content":`space-evenly`},"justify-stretch":{"justify-content":`stretch`},"items-start":{"align-items":`flex-start`},"items-end":{"align-items":`flex-end`},"items-center":{"align-items":`center`},"items-stretch":{"align-items":`stretch`},"flex-grow":{"flex-grow":1},"flex-shrink":{"flex-shrink":1},"align-baseline":{"vertical-align":`baseline`},"align-top":{"vertical-align":`top`},"align-middle":{"vertical-align":`middle`},"align-bottom":{"vertical-align":`bottom`},"align-text-top":{"vertical-align":`text-top`},"align-text-bottom":{"vertical-align":`text-bottom`},"overflow-auto":{overflow:`auto`},"overflow-x-auto":{"overflow-x":`auto`},"overflow-y-auto":{"overflow-y":`auto`},"overflow-hidden":{overflow:`hidden`},"overflow-x-hidden":{"overflow-x":`hidden`},"overflow-y-hidden":{"overflow-y":`hidden`},"overflow-visible":{overflow:`visible`},"overscroll-auto":{"overscroll-behavior":`auto`},"overscroll-contain":{"overscroll-behavior":`contain`},"overscroll-none":{"overscroll-behavior":`none`},"overscroll-x-auto":{"overscroll-behavior-x":`auto`},"overscroll-x-contain":{"overscroll-behavior-x":`contain`},"overscroll-x-none":{"overscroll-behavior-x":`none`},"overscroll-y-auto":{"overscroll-behavior-y":`auto`},"overscroll-y-contain":{"overscroll-behavior-y":`contain`},"overscroll-y-none":{"overscroll-behavior-y":`none`},"z-auto":{"z-index":`auto`},"cursor-pointer":{cursor:`pointer`},"cursor-wait":{cursor:`wait`},"cursor-not-allowed":{cursor:`not-allowed`},"select-none":{"user-select":`none`},"select-all":{"user-select":`all`},"pointer-events-auto":{"pointer-events":`auto`},"pointer-events-none":{"pointer-events":`none`},"box-border":{"box-sizing":`border-box`},"box-content":{"box-sizing":`content-box`},resize:{resize:`both`},"resize-x":{resize:`horizontal`},"resize-y":{resize:`vertical`},"resize-none":{resize:`none`},border:{border:`1px solid`},"border-none":{border:`none`},"border-solid":{"border-style":`solid`},"border-dashed":{"border-style":`dashed`},"border-dotted":{"border-style":`dotted`},"border-collapse":{"border-collapse":`collapse`},"rounded-none":{"border-radius":`0`},rounded:{"border-radius":`.25rem`},"rounded-sm":{"border-radius":`.125rem`},"rounded-md":{"border-radius":`.375rem`},"rounded-lg":{"border-radius":`.5rem`},"rounded-xl":{"border-radius":`.75rem`},"rounded-full":{"border-radius":`9999px`},"shadow-2xs":{"box-shadow":`0 1px rgb(0 0 0 / 0.05)`},"shadow-xs":{"box-shadow":`0 1px 2px 0 rgb(0 0 0 / 0.05)`},shadow:{"box-shadow":`0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)`},"shadow-sm":{"box-shadow":`0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)`},"shadow-md":{"box-shadow":`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`},"shadow-lg":{"box-shadow":`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`},"shadow-xl":{"box-shadow":`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`},"shadow-2xl":{"box-shadow":`0 25px 50px -12px rgb(0 0 0 / 0.25)`},"shadow-inner":{"box-shadow":`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},"shadow-none":{"box-shadow":`0 0 #0000`},ring:{"box-shadow":`var(--ring-inset, ) 0 0 0 3px rgb(59 130 246 / 0.5)`},"ring-0":{"box-shadow":`var(--ring-inset, ) 0 0 0 0px rgb(59 130 246 / 0.5)`},"ring-1":{"box-shadow":`var(--ring-inset, ) 0 0 0 1px rgb(59 130 246 / 0.5)`},"ring-2":{"box-shadow":`var(--ring-inset, ) 0 0 0 2px rgb(59 130 246 / 0.5)`},"ring-4":{"box-shadow":`var(--ring-inset, ) 0 0 0 4px rgb(59 130 246 / 0.5)`},"ring-8":{"box-shadow":`var(--ring-inset, ) 0 0 0 8px rgb(59 130 246 / 0.5)`},"ring-inset":{"--ring-inset":`inset`},outline:{"outline-style":`solid`},"outline-none":{outline:`2px solid transparent`,"outline-offset":`2px`},"outline-dashed":{"outline-style":`dashed`},"outline-dotted":{"outline-style":`dotted`},"outline-double":{"outline-style":`double`},"outline-0":{"outline-width":`0px`},"outline-1":{"outline-width":`1px`},"outline-2":{"outline-width":`2px`},"outline-4":{"outline-width":`4px`},"outline-8":{"outline-width":`8px`},"outline-offset-0":{"outline-offset":`0px`},"outline-offset-1":{"outline-offset":`1px`},"outline-offset-2":{"outline-offset":`2px`},"outline-offset-4":{"outline-offset":`4px`},"outline-offset-8":{"outline-offset":`8px`},"aspect-auto":{"aspect-ratio":`auto`},"aspect-square":{"aspect-ratio":`1 / 1`},"aspect-video":{"aspect-ratio":`16 / 9`},"backdrop-blur-none":{"backdrop-filter":`blur(0)`},"backdrop-blur-sm":{"backdrop-filter":`blur(4px)`},"backdrop-blur":{"backdrop-filter":`blur(8px)`},"backdrop-blur-md":{"backdrop-filter":`blur(12px)`},"backdrop-blur-lg":{"backdrop-filter":`blur(16px)`},"backdrop-blur-xl":{"backdrop-filter":`blur(24px)`},"backdrop-blur-2xl":{"backdrop-filter":`blur(40px)`},"backdrop-blur-3xl":{"backdrop-filter":`blur(64px)`},"transition-none":{transition:`none`},transition:{"transition-property":`all`,"transition-timing-function":`ease-in-out`,"transition-duration":`var(--transition-duration, 150ms)`},"animate-none":{animation:`none`},"animate-spin":{animation:`spin 1s linear infinite`},"animate-ping":{animation:`ping 1s cubic-bezier(0, 0, 0.2, 1) infinite`},"animate-pulse":{animation:`pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite`},"bg-auto":{"background-size":`auto`},"bg-cover":{"background-size":`cover`},"bg-contain":{"background-size":`contain`},"bg-no-repeat":{"background-repeat":`no-repeat`},"bg-fixed":{"background-attachment":`fixed`},"bg-local":{"background-attachment":`local`},"bg-scroll":{"background-attachment":`scroll`},"min-h-screen":{"min-height":`100vh`},"max-h-screen":{"max-height":`100vh`},"min-w-screen":{"min-width":`100vw`},"h-dvh":{height:`100dvh`},"h-svh":{height:`100svh`},"h-lvh":{height:`100lvh`},"w-dvw":{width:`100dvw`},"w-svw":{width:`100svw`},"w-lvw":{width:`100lvw`},"min-h-dvh":{"min-height":`100dvh`},"min-h-svh":{"min-height":`100svh`},"min-h-lvh":{"min-height":`100lvh`},"flex-none":{flex:`none`},"flex-auto":{flex:`1 1 auto`},"flex-initial":{flex:`0 1 auto`},grow:{"flex-grow":`1`},"grow-0":{"flex-grow":`0`},shrink:{"flex-shrink":`1`},"shrink-0":{"flex-shrink":`0`},"self-auto":{"align-self":`auto`},"self-start":{"align-self":`flex-start`},"self-end":{"align-self":`flex-end`},"self-center":{"align-self":`center`},"self-stretch":{"align-self":`stretch`},"self-baseline":{"align-self":`baseline`},"content-normal":{"align-content":`normal`},"content-start":{"align-content":`flex-start`},"content-end":{"align-content":`flex-end`},"content-center":{"align-content":`center`},"content-between":{"align-content":`space-between`},"content-around":{"align-content":`space-around`},"content-evenly":{"align-content":`space-evenly`},"content-stretch":{"align-content":`stretch`},"items-baseline":{"align-items":`baseline`},"inset-0":{inset:`0`},"inset-auto":{inset:`auto`},"inset-x-0":{left:`0`,right:`0`},"inset-y-0":{top:`0`,bottom:`0`},"inset-x-auto":{left:`auto`,right:`auto`},"inset-y-auto":{top:`auto`,bottom:`auto`},"sr-only":{position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,"white-space":`nowrap`,"border-width":`0`},"not-sr-only":{position:`static`,width:`auto`,height:`auto`,padding:`0`,margin:`0`,overflow:`visible`,clip:`auto`,"white-space":`normal`}},st=[`@keyframes spin {
41
+ let Ae=new Set([`==`,`!=`,`<=`,`>=`,`||`,`&&`,`??`,`?.`]),je=new Set([`===`,`!==`]),F=function(e){return e[e.STRING=1]=`STRING`,e[e.IDENTIFIER=2]=`IDENTIFIER`,e[e.DOT=3]=`DOT`,e[e.COMMA=4]=`COMMA`,e[e.COLON=5]=`COLON`,e[e.INTEGER=6]=`INTEGER`,e[e.DECIMAL=7]=`DECIMAL`,e[e.OPERATOR=8]=`OPERATOR`,e[e.GROUPER=9]=`GROUPER`,e[e.KEYWORD=10]=`KEYWORD`,e[e.ARROW=11]=`ARROW`,e[e.OPTIONAL_DOT=12]=`OPTIONAL_DOT`,e[e.SPREAD=13]=`SPREAD`,e}({}),I=(e,t,n=0)=>({kind:e,value:t,precedence:n}),Me=e=>e===9||e===10||e===13||e===32,Ne=e=>{if(e===95||e===36)return!0;let t=e&-33;return 65<=t&&t<=90},Pe=e=>Ne(e)||L(e),Fe=e=>Ce.has(e),Ie=e=>e===34||e===39,L=e=>48<=e&&e<=57,Le=e=>e===43||e===45||e===42||e===47||e===33||e===38||e===37||e===60||e===61||e===62||e===63||e===94||e===124,Re=e=>e===40||e===41||e===91||e===93||e===123||e===125,ze=e=>e.replace(/\\(.)/g,(e,t)=>{switch(t){case`n`:return`
42
+ `;case`r`:return`\r`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;default:return t}});var Be=class{_input;_index=-1;_tokenStart=0;_next;constructor(e){this._input=e,this._advance()}nextToken(){for(;Me(this._next??-1);)this._advance(!0);if(Ie(this._next??-1))return this._tokenizeString();if(Ne(this._next??-1))return this._tokenizeIdentOrKeyword();if(L(this._next??-1))return this._tokenizeNumber();if(this._next===46)return this._tokenizeDot();if(this._next===44)return this._tokenizeComma();if(this._next===58)return this._tokenizeColon();if(Le(this._next??-1))return this._tokenizeOperator();if(Re(this._next??-1))return this._tokenizeGrouper();if(this._advance(),this._next!==void 0)throw Error(`Expected end of input, got ${this._next}`)}_advance(e){this._index++,this._index<this._input.length?(this._next=this._input.charCodeAt(this._index),e===!0&&(this._tokenStart=this._index)):this._next=void 0}_getValue(e=0){let t=this._input.substring(this._tokenStart,this._index+e);return e===0&&this._clearValue(),t}_clearValue(){this._tokenStart=this._index}_tokenizeString(){let e=this._next;for(this._advance(!0);this._next!==e;){if(this._next===void 0||this._next===92&&(this._advance(),this._next===void 0))throw Error(`unterminated string`);this._advance()}let t=I(F.STRING,ze(this._getValue()));return this._advance(),t}_tokenizeIdentOrKeyword(){do this._advance();while(Pe(this._next??-1));let e=this._getValue();return I(Fe(e)?F.KEYWORD:we.has(e)?F.OPERATOR:F.IDENTIFIER,e,P[e]??0)}_tokenizeNumber(){do this._advance();while(L(this._next??-1));return this._next===46?this._tokenizeDot():I(F.INTEGER,this._getValue())}_tokenizeDot(){if(this._advance(),L(this._next??-1))return this._tokenizeFraction();if(this._next===46){if(this._advance(),this._next===46)return this._advance(),this._clearValue(),I(F.SPREAD,`...`);throw Error(`Unexpected token ..`)}return this._clearValue(),I(F.DOT,`.`,13)}_tokenizeComma(){return this._advance(!0),I(F.COMMA,`,`)}_tokenizeColon(){return this._advance(!0),I(F.COLON,`:`)}_tokenizeFraction(){do this._advance();while(L(this._next??-1));return I(F.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let e=this._getValue(2);if(je.has(e))this._advance(),this._advance();else{if(e=this._getValue(1),e===`=>`)return this._advance(),I(F.ARROW,e);Ae.has(e)&&this._advance()}return e=this._getValue(),e===`?.`?I(F.OPTIONAL_DOT,e,13):I(F.OPERATOR,e,P[e])}_tokenizeGrouper(){let e=String.fromCharCode(this._next??0),t=I(F.GROUPER,e,P[e]);return this._advance(!0),t}};let Ve=(e,t)=>new He(e,t).parse();var He=class{_kind;_tokenizer;_ast;_token;_value;constructor(e,t){this._tokenizer=new Be(e),this._ast=t}parse(){this._advance();let e=this._parseExpression();if(this._token)throw Error(`Unexpected token: ${this._token.value}`);return e}_advance(e,t){if(!this._matches(e,t))throw Error(`Expected kind ${e} (${t}), was ${this._token?.kind} (${this._token?.value})`);let n=this._tokenizer.nextToken();this._token=n,this._kind=n?.kind,this._value=n?.value}_matches(e,t){return!(e&&this._kind!==e||t&&this._value!==t)}_parseExpression(){if(!this._token)return this._ast.empty();let e=this._parseUnary();return e===void 0?void 0:this._parsePrecedence(e,0)}_parsePrecedence(e,t){if(e===void 0)throw Error(`Expected left to be defined.`);for(;this._token;)if(this._matches(F.GROUPER,`(`)){let t=this._parseArguments();e=this._ast.invoke(e,void 0,t)}else if(this._matches(F.GROUPER,`[`)){let t=this._parseIndex();e=this._ast.index(e,t)}else if(this._matches(F.DOT)||this._matches(F.OPTIONAL_DOT)){let t=this._kind===F.OPTIONAL_DOT;if(this._advance(),t&&this._matches(F.GROUPER,`[`)){let t=this._parseIndex();e=this._ast.index(e,t,!0)}else if(t&&this._matches(F.GROUPER,`(`)){let t=this._parseArguments();e=this._ast.invoke(e,void 0,t,!0)}else{let n=this._parseUnary();e=this._makeInvokeOrGetter(e,n,t)}}else if(this._matches(F.KEYWORD))break;else if(this._matches(F.OPERATOR)&&this._token.precedence>=t)e=this._value===`?`?this._parseTernary(e):this._parseBinary(e,this._token);else break;return e}_makeInvokeOrGetter(e,t,n){if(t===void 0)throw Error(`expected identifier`);if(t.type===`ID`)return this._ast.getter(e,t.value,n);if(t.type===`Invoke`&&t.receiver.type===`ID`){let r=t.receiver;return this._ast.invoke(e,r.value,t.arguments,n)}else throw Error(`expected identifier: ${t}`)}_parseBinary(e,t){if(!Ee.has(t.value))throw Error(`unknown operator: ${t.value}`);this._advance();let n=this._parseUnary();for(;(this._kind===F.OPERATOR||this._kind===F.DOT||this._kind===F.GROUPER)&&this._token&&(this._token.precedence??0)>t.precedence;)n=this._parsePrecedence(n,this._token?.precedence??0);if(n===void 0)throw Error(`Expected expression after ${t.value}`);return this._ast.binary(e,t.value,n)}_parseUnary(){if(this._matches(F.KEYWORD,`typeof`)){this._advance();let e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(`typeof`,e)}if(this._matches(F.OPERATOR)){let e=this._value;if(this._advance(),e===`+`||e===`-`){if(this._matches(F.INTEGER))return this._parseInteger(e);if(this._matches(F.DECIMAL))return this._parseDecimal(e)}if(!e||!Te.has(e))throw Error(`unexpected token: ${e}`);let t=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(e,t)}return this._parsePrimary()}_parseTernary(e){this._advance(F.OPERATOR,`?`);let t=this._parseExpression();this._advance(F.COLON);let n=this._parseExpression();return this._ast.ternary(e,t,n)}_parsePrimary(){switch(this._kind){case F.KEYWORD:{let e=this._value??``;if(e===`this`)return this._advance(),this._ast.id(e);throw Ce.has(e)?Error(`unexpected keyword: ${e}`):Error(`unrecognized keyword: ${e}`)}case F.IDENTIFIER:return this._parseInvokeOrIdentifier();case F.STRING:return this._parseString();case F.INTEGER:return this._parseInteger();case F.DECIMAL:return this._parseDecimal();case F.GROUPER:return this._value===`(`?this._parseParenOrFunction():this._value===`{`?this._parseMap():this._value===`[`?this._parseList():void 0;case F.COLON:throw Error(`unexpected token ":"`);default:return}}_parseList(){let e=[];do{if(this._advance(),this._matches(F.GROUPER,`]`))break;if(this._matches(F.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else e.push(this._parseExpression())}while(this._matches(F.COMMA));return this._advance(F.GROUPER,`]`),this._ast.list(e)}_parseMap(){let e=[];do{if(this._advance(),this._matches(F.GROUPER,`}`))break;if(this._matches(F.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadProperty(t))}else{let t=this._value??``;if((this._matches(F.STRING)||this._matches(F.IDENTIFIER))&&this._advance(),this._matches(F.COLON)){this._advance(F.COLON);let n=this._parseExpression();n&&e.push(this._ast.property(t,n))}else e.push(this._ast.property(t,this._ast.id(t)))}}while(this._matches(F.COMMA));return this._advance(F.GROUPER,`}`),this._ast.map(e)}_parseInvokeOrIdentifier(){let e=this._value;if(e===`true`)return this._advance(),this._ast.literal(!0);if(e===`false`)return this._advance(),this._ast.literal(!1);if(e===`null`)return this._advance(),this._ast.literal(null);if(e===`undefined`)return this._advance(),this._ast.literal(void 0);let t=this._parseIdentifier(),n=this._parseArguments();return n?this._ast.invoke(t,void 0,n):t}_parseIdentifier(){if(!this._matches(F.IDENTIFIER))throw Error(`expected identifier: ${this._value}`);let e=this._value;return this._advance(),this._ast.id(e??``)}_parseArguments(){if(!this._matches(F.GROUPER,`(`))return;let e=[];do{if(this._advance(),this._matches(F.GROUPER,`)`))break;if(this._matches(F.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else{let t=this._parseExpression();e.push(t)}}while(this._matches(F.COMMA));return this._advance(F.GROUPER,`)`),e}_parseIndex(){this._advance();let e=this._parseExpression();return this._advance(F.GROUPER,`]`),e}_parseParenOrFunction(){let e=this._parseArguments();if(this._matches(F.ARROW)){this._advance();let t=this._parseExpression(),n=e?.map(e=>e.value)??[];return this._ast.arrowFunction(n,t)}else return this._ast.paren(e?.[0])}_parseString(){let e=this._ast.literal(this._value??``);return this._advance(),e}_parseInteger(e=``){let t=this._ast.literal(parseInt(`${e}${this._value}`,10));return this._advance(),t}_parseDecimal(e=``){let t=this._ast.literal(parseFloat(`${e}${this._value}`));return this._advance(),t}},Ue=class{timeouts=new Map;debounce(e,t){return new Promise((n,r)=>{let i=this.timeouts.get(t);i&&clearTimeout(i),this.timeouts.set(t,setTimeout(()=>{try{n(t()),this.timeouts.delete(t)}catch(e){r(e)}},e))})}};let We=new ke,R=`__is_proxy__`;function Ge(e){return e instanceof qe||e[R]===!0}function z(e,t){let n=e?._store;if(n?.has(t))return n.get(t);if(n?.has(`$parent`))return z(n.get(`$parent`),t)}function B(e,t){let n=e?._store;return n?.has(t)?e:n?.has(`$parent`)?B(n.get(`$parent`),t):null}function Ke(e,t,n){let r=B(e,t);r?r._store.set(t,n):e._store.set(t,n)}var qe=class extends Ue{evalkeys=[`$elem`,`$event`];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_observer=null;_store=new Map;_lock=Promise.resolve();constructor(e){super();for(let[t,n]of Object.entries(e||{}))this.set(t,n)}wrapFunction(e){return(...t)=>e.call(this.$,...t)}wrapObject(e,t){return e==null||Ge(e)||e.constructor!==Object&&!Array.isArray(e)?e:new Proxy(e,{deleteProperty:(e,n)=>typeof n==`string`&&n in e?(delete e[n],t(),!0):!1,set:(e,n,r,i)=>{typeof r==`object`&&r&&(r=this.wrapObject(r,t));let a=Reflect.set(e,n,r,i);return t(),a},get:(e,t,n)=>t===R?!0:Reflect.get(e,t,n)})}watch(e,t){let n=B(this,e);if(!n)throw Error(`Cannot watch key "${e}" as it does not exist in the store.`);n.observers.has(e)||n.observers.set(e,new Set),n.observers.get(e)?.has(t)||n.observers.get(e)?.add(t)}addKeyHandler(e,t){this.keyHandlers.has(e)||this.keyHandlers.set(e,new Set),this.keyHandlers.get(e)?.add(t)}async notify(e,t=10){let n=B(this,e),r=Array.from(n?.observers.get(e)||[]);await this.debounce(t,()=>Promise.all(r.map(e=>e.call(this.proxify(e)))))}get(e,t){return t&&this.watch(e,t),z(this,e)}async set(e,t){if(this._store.has(e)&&t===this._store.get(e))return;let n=()=>this.notify(e);t&&typeof t==`function`&&(t=this.wrapFunction(t)),t&&typeof t==`object`&&(t=this.wrapObject(t,n)),Ke(this,e,t);for(let[n,r]of this.keyHandlers.entries())if(n.test(e))for(let n of r)await Promise.resolve(n.call(this.$,e,t));await n()}async del(e){await this.set(e,null),this._store.delete(e),this.observers.delete(e)}keys(){return Array.from(this._store.keys())}has(e){return this._store.has(e)}effect(e){return e.call(this.proxify(e))}proxify(e){let t=Array.from(this._store.entries()).map(([e])=>e),n=Object.fromEntries(t.map(e=>[e,null]));return new Proxy(n,{has:(e,t)=>typeof t==`string`&&(B(this,t)||Reflect.has(this,t))?!0:Reflect.has(n,t),get:(t,n,r)=>{if(typeof n==`string`){if(B(this,n))return this.get(n,e);if(e&&n!==R&&!Reflect.has(this,n))return this.set(n,void 0),this.get(n,e)}return n===`$`?this.proxify(e):Reflect.get(this,n,r)},set:(e,t,n,r)=>(typeof t!=`string`||t in this?Reflect.set(this,t,n,r):this.set(t,n),!0)})}get $(){return this.proxify()}makeEvalFunction(e){return(t,n)=>{let r=Ve(e,We),i=new Proxy(n,{has(e,n){return n in e||n in t||n in globalThis},get(e,n){if(typeof n==`string`)return n in e?e[n]:n in t?t[n]:n in globalThis?globalThis[n]:t[n]},set(e,n,r){return typeof n==`string`?n in e?(e[n]=r,!0):(t[n]=r,!0):!1}});return r?.evaluate(i)}}cachedExpressionFunction(e){e=e.trim(),this.expressionCache.has(e)||this.expressionCache.set(e,this.makeEvalFunction(e));let t=this.expressionCache.get(e);if(!t)throw Error(`Failed to retrieve cached expression: ${e}`);return t}eval(e,t={}){let n=this._observer?this:this.$;if(this._store.has(e))return n[e];{let r=this.cachedExpressionFunction(e);try{return r(n,t)}catch(t){return console.error(`Failed to evaluate expression: ${e}`),console.error(t),null}}}$resolve(e,t){let n={$pending:!0,$result:null,$error:null};return Promise.resolve().then(()=>e(t)).then(e=>{n.$result=e}).catch(e=>{n.$error=e instanceof Error?e:Error(String(e))}).finally(()=>{n.$pending=!1}),n}},Je=class extends qe{debugging=!1;dirpath=``;_skipNodes=new Set;_customElements=new Map;debug(e){return this.debugging=e,this}async fetchRemote(e,t){return fetch(e,{cache:t?.cache??`default`}).then(e=>e.text())}async fetchLocal(e,t){return this.fetchRemote(e,t)}async preprocessString(e,t){this.log(`Preprocessing string content with params:
43
+ `,t);let n=this.parseHTML(e,t);return await this.preprocessNode(n,t),n}async preprocessRemote(e,t){let n={};t?.cache&&(n.cache=t.cache);let r=await fetch(e,n).then(e=>e.text());return this.preprocessString(r,{...t,dirpath:k(e),rootDocument:t?.rootDocument??!e.endsWith(`.tpl.html`)})}async preprocessLocal(e,t){let n=await this.fetchLocal(e,t);return this.preprocessString(n,{...t,dirpath:k(e),rootDocument:t?.rootDocument??!e.endsWith(`.tpl.html`)})}subrenderer(){let e=new this.constructor().debug(this.debugging);return e._store.set(`$parent`,this),e._store.set(`$rootRenderer`,this.get(`$rootRenderer`)??this),e._customElements=this._customElements,e}log(...e){this.debugging&&console.debug(...e)}async preprocessNode(e,t){t={dirpath:this.dirpath,maxdepth:10,...t};let n=new A(m(e,this._skipNodes)).map(async e=>{this.log(`Preprocessing node:
44
+ `,O(e,128)),await j.resolveIncludes.call(this,e,t),await j.rebaseRelativePaths.call(this,e,t),await j.registerCustomElements.call(this,e,t),await j.resolveCustomElements.call(this,e,t)});return await Promise.all(n.generator()),e}async renderNode(e,t){for(let n of m(e,this._skipNodes))this.log(`Rendering node:
45
+ `,O(n,128)),await j.resolveForAttribute.call(this,n,t),await j.resolveRenderAttribute.call(this,n,t),await j.resolveDataAttribute.call(this,n,t),await j.resolveTextAttributes.call(this,n,t),await j.resolveHtmlAttribute.call(this,n,t),await j.resolveIfAttribute.call(this,n,t),await j.resolveShowAttribute.call(this,n,t),await j.resolveClassAttribute.call(this,n,t),await j.resolveBindAttribute.call(this,n,t),await j.resolveEventAttributes.call(this,n,t),await j.resolveTextNodeExpressions.call(this,n,t),await j.resolveCustomAttribute.call(this,n,t),await j.resolveCustomProperty.call(this,n,t),await j.stripTypes.call(this,n,t);return e}async mount(e,t){t={...t,rootNode:e},S(e,`renderer`,this),this._store.set(`$rootNode`,e),this.has(`$rootRenderer`)||this._store.set(`$rootRenderer`,this),this.get(`$rootRenderer`)===this&&await Se(this),await this.preprocessNode(e,t),await this.renderNode(e,t)}};function Ye(){return oe([p`*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}`,p`html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}`,p`body{margin:0;line-height:inherit}`,p`hr{height:0;color:inherit;border-top-width:1px}`,p`abbr:where([title]){text-decoration:underline dotted}`,p`b,strong{font-weight:bolder}`,p`code,kbd,samp,pre{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:1em}`,p`small{font-size:80%}`,p`sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}`,p`sub{bottom:-0.25em}`,p`sup{top:-0.5em}`,p`button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}`,p`button,select{text-transform:none}`,p`button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;cursor:pointer}`,p`:-moz-focusring{outline:auto}`,p`:-moz-ui-invalid{box-shadow:none}`,p`progress{vertical-align:baseline}`,p`::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}`,p`[type='search']{-webkit-appearance:textfield;outline-offset:-2px}`,p`::-webkit-search-decoration{-webkit-appearance:none}`,p`::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}`,p`summary{display:list-item}`,p`blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}`,p`fieldset{margin:0;padding:0}`,p`legend{padding:0}`,p`ol,ul,menu{list-style:none;margin:0;padding:0}`,p`textarea{resize:vertical}`,p`::placeholder{opacity:1;color:#9ca3af}`,p`button,[role="button"]{cursor:pointer}`,p`:disabled{cursor:default}`,p`img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}`,p`img,video{max-width:100%;height:auto}`,p`[hidden]{display:none}`,p`dialog{padding:0}`,p`dialog::backdrop{background:rgba(0,0,0,0.5)}`])}function Xe(){return oe([p`html{`,p`max-width: 70ch;`,p`padding: 2em 1em;`,p`margin: auto;`,p`line-height: 1.75;`,p`font-size: 1.25em;`,p`font-family: sans-serif;`,p`}`,p`h1,h2,h3,h4,h5,h6{`,p`margin: 1em 0 0.5em;`,p`}`,p`p,ul,ol{`,p`margin-bottom: 1em;`,p`color: #1d1d1d;`,p`}`])}let Ze={sm:640,md:768,lg:1024,xl:1280},Qe=Object.entries(Ze),V=.25,H=[...Array(15)].map((e,t)=>t+1),$e=[16,20,24,28,32,36,40,48,56,64],et=[72,80,96,128,160,192,256,320,384,512],U=[...H,...$e,...et,...Object.values(Ze)],W=Array.from({length:20},(e,t)=>(t+1)*5),tt=[0,10,20,30,40,50,60,70,80,90,100],nt=[25,50,75,100,150,200,300,500,700,1e3],rt=[`hover`,`focus`],G={margin:`m`,padding:`p`},it={width:`w`,height:`h`},at={top:`top`,right:`right`,bottom:`bottom`,left:`left`},ot={"min-width":`min-w`,"min-height":`min-h`,"max-width":`max-w`,"max-height":`max-h`},st={"font-mono":{"font-family":`monospace`},"font-sans":{"font-family":`sans-serif`},"font-serif":{"font-family":`serif`},"font-cursive":{"font-family":`cursive`},"text-xs":{"font-size":`.75rem`,"line-height":`calc(1 / 0.75)`},"text-sm":{"font-size":`.875rem`,"line-height":`calc(1.25 / 0.875)`},"text-base":{"font-size":`1rem`,"line-height":`calc(1.5 / 1)`},"text-lg":{"font-size":`1.125rem`,"line-height":`calc(1.75 / 1.125)`},"text-xl":{"font-size":`1.25rem`,"line-height":`calc(1.75 / 1.25)`},"text-2xl":{"font-size":`1.5rem`,"line-height":`calc(2 / 1.5)`},"text-3xl":{"font-size":`1.875rem`,"line-height":`calc(2.25 / 1.875)`},"text-4xl":{"font-size":`2.25rem`,"line-height":`calc(2.5 / 2.25)`},"text-5xl":{"font-size":`3rem`,"line-height":`1`},"text-6xl":{"font-size":`3.75rem`,"line-height":`1`},"text-7xl":{"font-size":`4.5rem`,"line-height":`1`},"font-thin":{"font-weight":100},"font-extralight":{"font-weight":200},"font-light":{"font-weight":300},"font-normal":{"font-weight":400},"font-medium":{"font-weight":500},"font-semibold":{"font-weight":600},"font-bold":{"font-weight":700},"font-extrabold":{"font-weight":800},"font-black":{"font-weight":900},italic:{"font-style":`italic`},"not-italic":{"font-style":`normal`},"w-max":{width:`max-content`},"w-min":{width:`min-content`},"w-fit":{width:`fit-content`},"h-max":{height:`max-content`},"h-min":{height:`min-content`},"h-fit":{height:`fit-content`},"size-auto":{width:`auto`,height:`auto`},"size-px":{width:`1px`,height:`1px`},"size-full":{width:`100%`,height:`100%`},"size-dvw":{width:`100dvw`,height:`100dvw`},"size-dvh":{width:`100dvh`,height:`100dvh`},"size-lvw":{width:`100lvw`,height:`100lvw`},"size-lvh":{width:`100lvh`,height:`100lvh`},"size-svw":{width:`100svw`,height:`100svw`},"size-svh":{width:`100svh`,height:`100svh`},"size-min":{width:`min-content`,height:`min-content`},"size-max":{width:`max-content`,height:`max-content`},"size-fit":{width:`fit-content`,height:`fit-content`},"tracking-tighter":{"letter-spacing":`-0.05em`},"tracking-tight":{"letter-spacing":`-0.025em`},"tracking-normal":{"letter-spacing":`0`},"tracking-wide":{"letter-spacing":`0.025em`},"tracking-wider":{"letter-spacing":`0.05em`},"tracking-widest":{"letter-spacing":`0.1em`},"leading-none":{"line-height":`1`},"leading-tight":{"line-height":`1.25`},"leading-snug":{"line-height":`1.375`},"leading-normal":{"line-height":`1.5`},"leading-relaxed":{"line-height":`1.625`},"leading-loose":{"line-height":`2`},"text-left":{"text-align":`left`},"text-right":{"text-align":`right`},"text-center":{"text-align":`center`},"text-justify":{"text-align":`justify`},underline:{"text-decoration":`underline`},"no-underline":{"text-decoration":`none`},"decoration-none":{"text-decoration":`none`},"line-through":{"text-decoration":`line-through`},uppercase:{"text-transform":`uppercase`},lowercase:{"text-transform":`lowercase`},capitalize:{"text-transform":`capitalize`},truncate:{"white-space":`nowrap`,overflow:`hidden`,"text-overflow":`ellipsis`},"text-elipsis":{"text-overflow":`ellipsis`},"text-clip":{"text-overflow":`clip`},"text-wrap":{"text-wrap":`wrap`},"text-nowrap":{"text-wrap":`nowrap`},"text-balance":{"text-wrap":`balance`},"text-pretty":{"text-wrap":`pretty`},"whitespace-normal":{"white-space":`normal`},"whitespace-nowrap":{"white-space":`nowrap`},"whitespace-pre":{"white-space":`pre`},"whitespace-pre-line":{"white-space":`pre-line`},"whitespace-pre-wrap":{"white-space":`pre-wrap`},"whitespace-break-spaces":{"white-space":`break-spaces`},relative:{position:`relative`},fixed:{position:`fixed`},absolute:{position:`absolute`},sticky:{position:`sticky`},"object-contain":{"object-fit":`contain`},"object-cover":{"object-fit":`cover`},"object-fill":{"object-fit":`fill`},"object-none":{"object-fit":`none`},block:{display:`block`},contents:{display:`contents`},hidden:{display:`none`},inline:{display:`inline`},"inline-block":{display:`inline-block`},visible:{visibility:`visible`},invisible:{visibility:`hidden`},collapse:{visibility:`collapse`},"list-none":{"list-style-type":`none`},"list-disc":{"list-style-type":`disc`},"list-decimal":{"list-style-type":`decimal`},flex:{display:`flex`},grid:{display:`grid`},"flex-1":{flex:`1 1 0%`},"flex-inline":{display:`inline-flex`},"flex-row":{"flex-direction":`row`},"flex-col":{"flex-direction":`column`},"flex-row-reverse":{"flex-direction":`row-reverse`},"flex-col-reverse":{"flex-direction":`column-reverse`},"flex-wrap":{"flex-wrap":`wrap`},"flex-wrap-reverse":{"flex-wrap":`wrap-reverse`},"flex-nowrap":{"flex-wrap":`nowrap`},"justify-start":{"justify-content":`flex-start`},"justify-end":{"justify-content":`flex-end`},"justify-center":{"justify-content":`center`},"justify-between":{"justify-content":`space-between`},"justify-around":{"justify-content":`space-around`},"justify-evenly":{"justify-content":`space-evenly`},"justify-stretch":{"justify-content":`stretch`},"items-start":{"align-items":`flex-start`},"items-end":{"align-items":`flex-end`},"items-center":{"align-items":`center`},"items-stretch":{"align-items":`stretch`},"flex-grow":{"flex-grow":1},"flex-shrink":{"flex-shrink":1},"align-baseline":{"vertical-align":`baseline`},"align-top":{"vertical-align":`top`},"align-middle":{"vertical-align":`middle`},"align-bottom":{"vertical-align":`bottom`},"align-text-top":{"vertical-align":`text-top`},"align-text-bottom":{"vertical-align":`text-bottom`},"overflow-auto":{overflow:`auto`},"overflow-x-auto":{"overflow-x":`auto`},"overflow-y-auto":{"overflow-y":`auto`},"overflow-hidden":{overflow:`hidden`},"overflow-x-hidden":{"overflow-x":`hidden`},"overflow-y-hidden":{"overflow-y":`hidden`},"overflow-visible":{overflow:`visible`},"overscroll-auto":{"overscroll-behavior":`auto`},"overscroll-contain":{"overscroll-behavior":`contain`},"overscroll-none":{"overscroll-behavior":`none`},"overscroll-x-auto":{"overscroll-behavior-x":`auto`},"overscroll-x-contain":{"overscroll-behavior-x":`contain`},"overscroll-x-none":{"overscroll-behavior-x":`none`},"overscroll-y-auto":{"overscroll-behavior-y":`auto`},"overscroll-y-contain":{"overscroll-behavior-y":`contain`},"overscroll-y-none":{"overscroll-behavior-y":`none`},"z-auto":{"z-index":`auto`},"cursor-pointer":{cursor:`pointer`},"cursor-wait":{cursor:`wait`},"cursor-not-allowed":{cursor:`not-allowed`},"select-none":{"user-select":`none`},"select-all":{"user-select":`all`},"pointer-events-auto":{"pointer-events":`auto`},"pointer-events-none":{"pointer-events":`none`},"box-border":{"box-sizing":`border-box`},"box-content":{"box-sizing":`content-box`},resize:{resize:`both`},"resize-x":{resize:`horizontal`},"resize-y":{resize:`vertical`},"resize-none":{resize:`none`},border:{border:`1px solid`},"border-none":{border:`none`},"border-solid":{"border-style":`solid`},"border-dashed":{"border-style":`dashed`},"border-dotted":{"border-style":`dotted`},"border-collapse":{"border-collapse":`collapse`},"rounded-none":{"border-radius":`0`},rounded:{"border-radius":`.25rem`},"rounded-sm":{"border-radius":`.125rem`},"rounded-md":{"border-radius":`.375rem`},"rounded-lg":{"border-radius":`.5rem`},"rounded-xl":{"border-radius":`.75rem`},"rounded-full":{"border-radius":`9999px`},"shadow-2xs":{"box-shadow":`0 1px rgb(0 0 0 / 0.05)`},"shadow-xs":{"box-shadow":`0 1px 2px 0 rgb(0 0 0 / 0.05)`},shadow:{"box-shadow":`0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)`},"shadow-sm":{"box-shadow":`0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)`},"shadow-md":{"box-shadow":`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`},"shadow-lg":{"box-shadow":`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`},"shadow-xl":{"box-shadow":`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`},"shadow-2xl":{"box-shadow":`0 25px 50px -12px rgb(0 0 0 / 0.25)`},"shadow-inner":{"box-shadow":`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},"shadow-none":{"box-shadow":`0 0 #0000`},ring:{"box-shadow":`var(--ring-inset, ) 0 0 0 3px rgb(59 130 246 / 0.5)`},"ring-0":{"box-shadow":`var(--ring-inset, ) 0 0 0 0px rgb(59 130 246 / 0.5)`},"ring-1":{"box-shadow":`var(--ring-inset, ) 0 0 0 1px rgb(59 130 246 / 0.5)`},"ring-2":{"box-shadow":`var(--ring-inset, ) 0 0 0 2px rgb(59 130 246 / 0.5)`},"ring-4":{"box-shadow":`var(--ring-inset, ) 0 0 0 4px rgb(59 130 246 / 0.5)`},"ring-8":{"box-shadow":`var(--ring-inset, ) 0 0 0 8px rgb(59 130 246 / 0.5)`},"ring-inset":{"--ring-inset":`inset`},outline:{"outline-style":`solid`},"outline-none":{outline:`2px solid transparent`,"outline-offset":`2px`},"outline-dashed":{"outline-style":`dashed`},"outline-dotted":{"outline-style":`dotted`},"outline-double":{"outline-style":`double`},"outline-0":{"outline-width":`0px`},"outline-1":{"outline-width":`1px`},"outline-2":{"outline-width":`2px`},"outline-4":{"outline-width":`4px`},"outline-8":{"outline-width":`8px`},"outline-offset-0":{"outline-offset":`0px`},"outline-offset-1":{"outline-offset":`1px`},"outline-offset-2":{"outline-offset":`2px`},"outline-offset-4":{"outline-offset":`4px`},"outline-offset-8":{"outline-offset":`8px`},"aspect-auto":{"aspect-ratio":`auto`},"aspect-square":{"aspect-ratio":`1 / 1`},"aspect-video":{"aspect-ratio":`16 / 9`},"backdrop-blur-none":{"backdrop-filter":`blur(0)`},"backdrop-blur-sm":{"backdrop-filter":`blur(4px)`},"backdrop-blur":{"backdrop-filter":`blur(8px)`},"backdrop-blur-md":{"backdrop-filter":`blur(12px)`},"backdrop-blur-lg":{"backdrop-filter":`blur(16px)`},"backdrop-blur-xl":{"backdrop-filter":`blur(24px)`},"backdrop-blur-2xl":{"backdrop-filter":`blur(40px)`},"backdrop-blur-3xl":{"backdrop-filter":`blur(64px)`},"transition-none":{transition:`none`},transition:{"transition-property":`all`,"transition-timing-function":`ease-in-out`,"transition-duration":`var(--transition-duration, 150ms)`},"animate-none":{animation:`none`},"animate-spin":{animation:`spin 1s linear infinite`},"animate-ping":{animation:`ping 1s cubic-bezier(0, 0, 0.2, 1) infinite`},"animate-pulse":{animation:`pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite`},"bg-auto":{"background-size":`auto`},"bg-cover":{"background-size":`cover`},"bg-contain":{"background-size":`contain`},"bg-no-repeat":{"background-repeat":`no-repeat`},"bg-fixed":{"background-attachment":`fixed`},"bg-local":{"background-attachment":`local`},"bg-scroll":{"background-attachment":`scroll`},"min-h-screen":{"min-height":`100vh`},"max-h-screen":{"max-height":`100vh`},"min-w-screen":{"min-width":`100vw`},"h-dvh":{height:`100dvh`},"h-svh":{height:`100svh`},"h-lvh":{height:`100lvh`},"w-dvw":{width:`100dvw`},"w-svw":{width:`100svw`},"w-lvw":{width:`100lvw`},"min-h-dvh":{"min-height":`100dvh`},"min-h-svh":{"min-height":`100svh`},"min-h-lvh":{"min-height":`100lvh`},"flex-none":{flex:`none`},"flex-auto":{flex:`1 1 auto`},"flex-initial":{flex:`0 1 auto`},grow:{"flex-grow":`1`},"grow-0":{"flex-grow":`0`},shrink:{"flex-shrink":`1`},"shrink-0":{"flex-shrink":`0`},"self-auto":{"align-self":`auto`},"self-start":{"align-self":`flex-start`},"self-end":{"align-self":`flex-end`},"self-center":{"align-self":`center`},"self-stretch":{"align-self":`stretch`},"self-baseline":{"align-self":`baseline`},"content-normal":{"align-content":`normal`},"content-start":{"align-content":`flex-start`},"content-end":{"align-content":`flex-end`},"content-center":{"align-content":`center`},"content-between":{"align-content":`space-between`},"content-around":{"align-content":`space-around`},"content-evenly":{"align-content":`space-evenly`},"content-stretch":{"align-content":`stretch`},"items-baseline":{"align-items":`baseline`},"inset-0":{inset:`0`},"inset-auto":{inset:`auto`},"inset-x-0":{left:`0`,right:`0`},"inset-y-0":{top:`0`,bottom:`0`},"inset-x-auto":{left:`auto`,right:`auto`},"inset-y-auto":{top:`auto`,bottom:`auto`},"sr-only":{position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,"white-space":`nowrap`,"border-width":`0`},"not-sr-only":{position:`static`,width:`auto`,height:`auto`,padding:`0`,margin:`0`,overflow:`visible`,clip:`auto`,"white-space":`normal`}},ct=[`@keyframes spin {
46
46
  from { transform: rotate(0deg) }
47
47
  to { transform: rotate(360deg) }
48
48
  }`,`@keyframes ping {
@@ -53,5 +53,5 @@ let Ae=new Set([`==`,`!=`,`<=`,`>=`,`||`,`&&`,`??`,`?.`]),je=new Set([`===`,`!==
53
53
  }`,`@keyframes pulse {
54
54
  0%, 100% { opacity: 1 }
55
55
  50% { opacity: .5 }
56
- }`],ct={red:{50:`#ffebee`,100:`#ffcdd2`,200:`#ef9a9a`,300:`#e57373`,400:`#ef5350`,500:`#f44336`,600:`#e53935`,700:`#d32f2f`,800:`#c62828`,900:`#b71c1c`},pink:{50:`#fce4ec`,100:`#f8bbd0`,200:`#f48fb1`,300:`#f06292`,400:`#ec407a`,500:`#e91e63`,600:`#d81b60`,700:`#c2185b`,800:`#ad1457`,900:`#880e4f`},purple:{50:`#f3e5f5`,100:`#e1bee7`,200:`#ce93d8`,300:`#ba68c8`,400:`#ab47bc`,500:`#9c27b0`,600:`#8e24aa`,700:`#7b1fa2`,800:`#6a1b9a`,900:`#4a148c`},"deep-purple":{50:`#ede7f6`,100:`#d1c4e9`,200:`#b39ddb`,300:`#9575cd`,400:`#7e57c2`,500:`#673ab7`,600:`#5e35b1`,700:`#512da8`,800:`#4527a0`,900:`#311b92`},indigo:{50:`#e8eaf6`,100:`#c5cae9`,200:`#9fa8da`,300:`#7986cb`,400:`#5c6bc0`,500:`#3f51b5`,600:`#3949ab`,700:`#303f9f`,800:`#283593`,900:`#1a237e`},blue:{50:`#e3f2fd`,100:`#bbdefb`,200:`#90caf9`,300:`#64b5f6`,400:`#42a5f5`,500:`#2196f3`,600:`#1e88e5`,700:`#1976d2`,800:`#1565c0`,900:`#0d47a1`},"light-blue":{50:`#e1f5fe`,100:`#b3e5fc`,200:`#81d4fa`,300:`#4fc3f7`,400:`#29b6f6`,500:`#03a9f4`,600:`#039be5`,700:`#0288d1`,800:`#0277bd`,900:`#01579b`},cyan:{50:`#e0f7fa`,100:`#b2ebf2`,200:`#80deea`,300:`#4dd0e1`,400:`#26c6da`,500:`#00bcd4`,600:`#00acc1`,700:`#0097a7`,800:`#00838f`,900:`#006064`},teal:{50:`#e0f2f1`,100:`#b2dfdb`,200:`#80cbc4`,300:`#4db6ac`,400:`#26a69a`,500:`#009688`,600:`#00897b`,700:`#00796b`,800:`#00695c`,900:`#004d40`},green:{50:`#e8f5e9`,100:`#c8e6c9`,200:`#a5d6a7`,300:`#81c784`,400:`#66bb6a`,500:`#4caf50`,600:`#43a047`,700:`#388e3c`,800:`#2e7d32`,900:`#1b5e20`},"light-green":{50:`#f1f8e9`,100:`#dcedc8`,200:`#c5e1a5`,300:`#aed581`,400:`#9ccc65`,500:`#8bc34a`,600:`#7cb342`,700:`#689f38`,800:`#558b2f`,900:`#33691e`},lime:{50:`#f9fbe7`,100:`#f0f4c3`,200:`#e6ee9c`,300:`#dce775`,400:`#d4e157`,500:`#cddc39`,600:`#c0ca33`,700:`#afb42b`,800:`#9e9d24`,900:`#827717`},yellow:{50:`#fffde7`,100:`#fff9c4`,200:`#fff59d`,300:`#fff176`,400:`#ffee58`,500:`#ffeb3b`,600:`#fdd835`,700:`#fbc02d`,800:`#f9a825`,900:`#f57f17`},amber:{50:`#fff8e1`,100:`#ffecb3`,200:`#ffe082`,300:`#ffd54f`,400:`#ffca28`,500:`#ffc107`,600:`#ffb300`,700:`#ffa000`,800:`#ff8f00`,900:`#ff6f00`},orange:{50:`#fff3e0`,100:`#ffe0b2`,200:`#ffcc80`,300:`#ffb74d`,400:`#ffa726`,500:`#ff9800`,600:`#fb8c00`,700:`#f57c00`,800:`#ef6c00`,900:`#e65100`},"deep-orange":{50:`#fbe9e7`,100:`#ffccbc`,200:`#ffab91`,300:`#ff8a65`,400:`#ff7043`,500:`#ff5722`,600:`#f4511e`,700:`#e64a19`,800:`#d84315`,900:`#bf360c`},brown:{50:`#efebe9`,100:`#d7ccc8`,200:`#bcaaa4`,300:`#a1887f`,400:`#8d6e63`,500:`#795548`,600:`#6d4c41`,700:`#5d4037`,800:`#4e342e`,900:`#3e2723`},gray:{50:`#fafafa`,100:`#f5f5f5`,200:`#eeeeee`,300:`#e0e0e0`,400:`#bdbdbd`,500:`#9e9e9e`,600:`#757575`,700:`#616161`,800:`#424242`,900:`#212121`},"blue-gray":{50:`#eceff1`,100:`#cfd8dc`,200:`#b0bec5`,300:`#90a4ae`,400:`#78909c`,500:`#607d8b`,600:`#546e7a`,700:`#455a64`,800:`#37474f`,900:`#263238`}};function q(e){return nt.map(t=>`.${t}\\:${e}:${t}`)}function lt(e,t){return Ze.map(([n,r])=>`@media (min-width: ${r}px) { .${n}\\:${e} { ${t} } }`)}function J(e){return e.flatMap(([e,t])=>[`.${e} { ${t} }`,`${q(e).join(`,`)} { ${t} }`,...lt(e,t)])}function ut(e){return e.flatMap(([e,t])=>[`.${e} { ${t} }`,`${q(e).join(`,`)} { ${t} }`])}function dt(e,t){let n=e[0]===`@`,r=t[0]===`@`;return n&&!r?1:!n&&r?-1:e.localeCompare(t)}function Y(e){return J(Object.entries(e).flatMap(([e,t])=>[[`${t}-0`,`${e}: 0`],[`${t}-screen`,`${e}: 100v${e.includes(`height`)?`h`:`w`}`],[`${t}-full`,`${e}: 100%`],...W.map(n=>[`${t}-${n}`,`${e}: ${n*H}rem`]),...W.map(n=>[`-${t}-${n}`,`${e}: -${n*H}rem`]),...W.map(n=>[`${t}-${n}px`,`${e}: ${n}px`]),...W.map(n=>[`-${t}-${n}px`,`${e}: -${n}px`]),...G.map(n=>[`${t}-${n}\\%`,`${e}: ${n}%`]),...G.map(n=>[`-${t}-${n}\\%`,`${e}: -${n}%`]),...Ze.map(([n,r])=>[`${t}-${n}`,`${e}: ${r}px`])]))}function ft(e){return J(Object.entries(e).flatMap(([e,t])=>[[`${t}-auto`,`${e}: auto`],[`${t}x-auto`,`${e}-left: auto; ${e}-right: auto;`],[`${t}y-auto`,`${e}-top: auto; ${e}-bottom: auto;`],[`${t}x-0`,`${e}-left: 0; ${e}-right: 0;`],[`${t}y-0`,`${e}-top: 0; ${e}-bottom: 0;`],...W.map(n=>[`${t}x-${n}`,`${e}-left: ${n*H}rem; ${e}-right: ${n*H}rem;`]),...W.map(n=>[`${t}y-${n}`,`${e}-top: ${n*H}rem; ${e}-bottom: ${n*H}rem;`]),...W.map(n=>[`${t}x-${n}px`,`${e}-left: ${n}px; ${e}-right: ${n}px;`]),...W.map(n=>[`${t}y-${n}px`,`${e}-top: ${n}px; ${e}-bottom: ${n}px;`]),...G.map(n=>[`${t}x-${n}\\%`,`${e}-left: ${n}%; ${e}-right: ${n}%;`]),...G.map(n=>[`${t}y-${n}\\%`,`${e}-top: ${n}%; ${e}-bottom: ${n}%;`])]))}function pt(e){return J(Object.entries(e).flatMap(([e,t])=>[[`${t}t-0`,`${e}-top: 0`],[`${t}b-0`,`${e}-bottom: 0`],[`${t}l-0`,`${e}-left: 0`],[`${t}r-0`,`${e}-right: 0`],[`${t}t-auto`,`${e}-top: auto`],[`${t}b-auto`,`${e}-bottom: auto`],[`${t}l-auto`,`${e}-left: auto`],[`${t}r-auto`,`${e}-right: auto`],...[``,`-`].flatMap(n=>[...W.map(r=>[`${n}${t}t-${r}`,`${e}-top: ${n}${r*H}rem`]),...W.map(r=>[`${n}${t}b-${r}`,`${e}-bottom: ${n}${r*H}rem`]),...W.map(r=>[`${n}${t}l-${r}`,`${e}-left: ${n}${r*H}rem`]),...W.map(r=>[`${n}${t}r-${r}`,`${e}-right: ${n}${r*H}rem`]),...W.map(r=>[`${n}${t}t-${r}px`,`${e}-top: ${n}${r}px`]),...W.map(r=>[`${n}${t}b-${r}px`,`${e}-bottom: ${n}${r}px`]),...W.map(r=>[`${n}${t}l-${r}px`,`${e}-left: ${n}${r}px`]),...W.map(r=>[`${n}${t}r-${r}px`,`${e}-right: ${n}${r}px`]),...G.map(r=>[`${n}${t}t-${r}\\%`,`${e}-top: ${n}${r}%`]),...G.map(r=>[`${n}${t}b-${r}\\%`,`${e}-bottom: ${n}${r}%`]),...G.map(r=>[`${n}${t}l-${r}\\%`,`${e}-left: ${n}${r}%`]),...G.map(r=>[`${n}${t}r-${r}\\%`,`${e}-right: ${n}${r}%`])])]))}function mt(){return J([[`border`,`border: 1px`],[`border-x`,`border-inline-width: 1px`],[`border-y`,`border-block-width: 1px`],...[0,...U].map(e=>[`border-${e}`,`border-width: ${e}px`]),...[0,...U].map(e=>[`border-x-${e}`,`border-inline-width: ${e}px;`]),...[0,...U].map(e=>[`border-y-${e}`,`border-block-width: ${e}px;`]),...[`top`,`bottom`,`left`,`right`].flatMap(e=>[[`border-${e.slice(0,1)}`,`border-${e}: 1px`],...[0,...U].map(t=>[`border-${e.slice(0,1)}-${t}`,`border-${e}-width: ${t}px`])])])}function ht(){return J(G.map(e=>[`z-${e}`,`z-index: ${e}`]))}function gt(){return J(tt.map(e=>[`duration-${e}`,`--transition-duration: ${e}ms; transition-duration: ${e}ms`]))}function _t(){return J([[`space-x-0 > *`,`margin-left: 0`],[`space-y-0 > *`,`margin-top: 0`],...W.map(e=>[`space-x-${e} > :not(:first-child)`,`margin-left: ${e*H}rem`]),...W.map(e=>[`space-y-${e} > :not(:first-child)`,`margin-top: ${e*H}rem`]),...W.map(e=>[`space-x-${e}px > :not(:first-child)`,`margin-left: ${e}px`]),...W.map(e=>[`space-y-${e}px > :not(:first-child)`,`margin-top: ${e}px`]),[`gap-0`,`gap: 0`],...W.map(e=>[`gap-${e}`,`gap: ${e*H}rem`]),...W.map(e=>[`gap-${e}px`,`gap: ${e}px`]),...W.map(e=>[`gap-x-${e}`,`column-gap: ${e*H}rem`]),...W.map(e=>[`gap-y-${e}`,`row-gap: ${e*H}rem`]),...W.map(e=>[`gap-x-${e}px`,`column-gap: ${e}px`]),...W.map(e=>[`gap-y-${e}px`,`row-gap: ${e}px`]),[`divide-x > :not(:last-child)`,`border-inline-end-width: 1px`],[`divide-y > :not(:last-child)`,`border-bottom-width: 1px`],[`divide-x-0 > :not(:last-child)`,`border-inline-end-width: 0px`],[`divide-y-0 > :not(:last-child)`,`border-bottom-width: 0px`],...[2,4,8].map(e=>[`divide-x-${e} > :not(:last-child)`,`border-inline-end-width: ${e}px`]),...[2,4,8].map(e=>[`divide-y-${e} > :not(:last-child)`,`border-bottom-width: ${e}px`]),[`divide-solid > :not(:last-child)`,`border-style: solid`],[`divide-dashed > :not(:last-child)`,`border-style: dashed`],[`divide-dotted > :not(:last-child)`,`border-style: dotted`],[`divide-none > :not(:last-child)`,`border-style: none`]])}function vt(){return J([...Array.from({length:100},(e,t)=>[`text-${t}px`,`font-size: ${t}px`]),...Array.from({length:100},(e,t)=>[`text-${t*H}rem`,`font-size: ${t*H}rem`])])}function yt(){return J([...Array.from({length:12},(e,t)=>t+1).map(e=>[`grid-cols-${e}`,`grid-template-columns: repeat(${e}, minmax(0, 1fr))`]),[`grid-cols-none`,`grid-template-columns: none`],...Array.from({length:12},(e,t)=>t+1).map(e=>[`col-span-${e}`,`grid-column: span ${e} / span ${e}`]),[`col-span-full`,`grid-column: 1 / -1`],...Array.from({length:13},(e,t)=>t+1).map(e=>[`col-start-${e}`,`grid-column-start: ${e}`]),[`col-start-auto`,`grid-column-start: auto`],...Array.from({length:13},(e,t)=>t+1).map(e=>[`col-end-${e}`,`grid-column-end: ${e}`]),[`col-end-auto`,`grid-column-end: auto`]])}function bt(){return Object.entries(ot).flatMap(([e,t])=>{let n=Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`; `);return[`.${e} { ${n} }`,`${q(e).join(`,`)} { ${n} }`,...lt(e,n)]})}function xt(e){let t=0,n=0,r=0;return e.length===4?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):e.length===7&&(t=parseInt(e.slice(1,3),16),n=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16)),`${t} ${n} ${r}`}function St(){let e=(e,t)=>{let n=[[`text-${e}`,`color: ${t}`],[`fill-${e}`,`fill: ${t}`],[`bg-${e}`,`background-color: ${t}`],[`border-${e}`,`border-color: ${t}`]];if(t.startsWith(`#`)){let r=xt(t);for(let t of et){let i=t/100;n.push([`text-${e}\\/${t}`,`color: rgb(${r} / ${i})`],[`bg-${e}\\/${t}`,`background-color: rgb(${r} / ${i})`],[`border-${e}\\/${t}`,`border-color: rgb(${r} / ${i})`])}}return n};return ut([...e(`white`,`#fff`),...e(`black`,`#000`),...e(`transparent`,`transparent`),...Object.entries(ct).flatMap(([t,n])=>[...e(t,n[500]),...Object.entries(n).flatMap(([n,r])=>e(`${t}-${n}`,r))])])}function Ct(){return J([[`opacity-0`,`opacity: 0`],...G.map(e=>[`opacity-${e}`,`opacity: ${e/100}`])])}let X=null;function wt(){return X===null&&(X=[...st,...bt(),...St(),...Ct(),...ht(),...gt(),...Y(it),...Y(rt),...ft(rt),...pt(K),...Y(K),...ft(K),..._t(),...Y(at),...mt(),...vt(),...yt()].sort(dt).join(`
57
- `)),X}var Z=class extends qe{impl=`browser`;dirpath=j(globalThis.location?.href??`http://localhost/`);parseHTML(e,t={rootDocument:!1}){if(t.rootDocument)return new DOMParser().parseFromString(e,`text/html`);{let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}}serializeHTML(e){return new XMLSerializer().serializeToString(e).replace(/\s?xmlns="[^"]+"/gm,``)}preprocessLocal(e,t){return this.preprocessRemote(e,t)}createElement(e,t){return(t||document).createElement(e)}createComment(e,t){return(t||document).createComment(e)}textContent(e,t){e.textContent=t}};new Z;function Tt(e){for(let t of e){let e=document.createElement(`style`);switch(t){case`minimal`:f(e,Ye());break;case`basic`:f(e,Je());break;case`utils`:e.textContent=wt();break;default:console.error(`Unknown style name: "${t}"`);continue}globalThis.document.head.appendChild(e)}}let Q=new Z;globalThis.Mancha=Q;let $=globalThis.document?.currentScript;if(globalThis.document?.currentScript?.hasAttribute(`init`)){let e=$?.hasAttribute(`debug`),t=$?.getAttribute(`cache`),n=$?.getAttribute(`target`)?.split(`+`)||[`body`];window.addEventListener(`load`,()=>{n.map(async n=>{let r=globalThis.document.querySelector(n);await Q.debug(!!e).mount(r,{cache:t})})})}if(globalThis.document?.currentScript?.hasAttribute(`css`)){let e=$?.getAttribute(`css`)?.split(`+`);Tt(e)}return Q})();
56
+ }`],lt={red:{50:`#ffebee`,100:`#ffcdd2`,200:`#ef9a9a`,300:`#e57373`,400:`#ef5350`,500:`#f44336`,600:`#e53935`,700:`#d32f2f`,800:`#c62828`,900:`#b71c1c`},pink:{50:`#fce4ec`,100:`#f8bbd0`,200:`#f48fb1`,300:`#f06292`,400:`#ec407a`,500:`#e91e63`,600:`#d81b60`,700:`#c2185b`,800:`#ad1457`,900:`#880e4f`},purple:{50:`#f3e5f5`,100:`#e1bee7`,200:`#ce93d8`,300:`#ba68c8`,400:`#ab47bc`,500:`#9c27b0`,600:`#8e24aa`,700:`#7b1fa2`,800:`#6a1b9a`,900:`#4a148c`},"deep-purple":{50:`#ede7f6`,100:`#d1c4e9`,200:`#b39ddb`,300:`#9575cd`,400:`#7e57c2`,500:`#673ab7`,600:`#5e35b1`,700:`#512da8`,800:`#4527a0`,900:`#311b92`},indigo:{50:`#e8eaf6`,100:`#c5cae9`,200:`#9fa8da`,300:`#7986cb`,400:`#5c6bc0`,500:`#3f51b5`,600:`#3949ab`,700:`#303f9f`,800:`#283593`,900:`#1a237e`},blue:{50:`#e3f2fd`,100:`#bbdefb`,200:`#90caf9`,300:`#64b5f6`,400:`#42a5f5`,500:`#2196f3`,600:`#1e88e5`,700:`#1976d2`,800:`#1565c0`,900:`#0d47a1`},"light-blue":{50:`#e1f5fe`,100:`#b3e5fc`,200:`#81d4fa`,300:`#4fc3f7`,400:`#29b6f6`,500:`#03a9f4`,600:`#039be5`,700:`#0288d1`,800:`#0277bd`,900:`#01579b`},cyan:{50:`#e0f7fa`,100:`#b2ebf2`,200:`#80deea`,300:`#4dd0e1`,400:`#26c6da`,500:`#00bcd4`,600:`#00acc1`,700:`#0097a7`,800:`#00838f`,900:`#006064`},teal:{50:`#e0f2f1`,100:`#b2dfdb`,200:`#80cbc4`,300:`#4db6ac`,400:`#26a69a`,500:`#009688`,600:`#00897b`,700:`#00796b`,800:`#00695c`,900:`#004d40`},green:{50:`#e8f5e9`,100:`#c8e6c9`,200:`#a5d6a7`,300:`#81c784`,400:`#66bb6a`,500:`#4caf50`,600:`#43a047`,700:`#388e3c`,800:`#2e7d32`,900:`#1b5e20`},"light-green":{50:`#f1f8e9`,100:`#dcedc8`,200:`#c5e1a5`,300:`#aed581`,400:`#9ccc65`,500:`#8bc34a`,600:`#7cb342`,700:`#689f38`,800:`#558b2f`,900:`#33691e`},lime:{50:`#f9fbe7`,100:`#f0f4c3`,200:`#e6ee9c`,300:`#dce775`,400:`#d4e157`,500:`#cddc39`,600:`#c0ca33`,700:`#afb42b`,800:`#9e9d24`,900:`#827717`},yellow:{50:`#fffde7`,100:`#fff9c4`,200:`#fff59d`,300:`#fff176`,400:`#ffee58`,500:`#ffeb3b`,600:`#fdd835`,700:`#fbc02d`,800:`#f9a825`,900:`#f57f17`},amber:{50:`#fff8e1`,100:`#ffecb3`,200:`#ffe082`,300:`#ffd54f`,400:`#ffca28`,500:`#ffc107`,600:`#ffb300`,700:`#ffa000`,800:`#ff8f00`,900:`#ff6f00`},orange:{50:`#fff3e0`,100:`#ffe0b2`,200:`#ffcc80`,300:`#ffb74d`,400:`#ffa726`,500:`#ff9800`,600:`#fb8c00`,700:`#f57c00`,800:`#ef6c00`,900:`#e65100`},"deep-orange":{50:`#fbe9e7`,100:`#ffccbc`,200:`#ffab91`,300:`#ff8a65`,400:`#ff7043`,500:`#ff5722`,600:`#f4511e`,700:`#e64a19`,800:`#d84315`,900:`#bf360c`},brown:{50:`#efebe9`,100:`#d7ccc8`,200:`#bcaaa4`,300:`#a1887f`,400:`#8d6e63`,500:`#795548`,600:`#6d4c41`,700:`#5d4037`,800:`#4e342e`,900:`#3e2723`},gray:{50:`#fafafa`,100:`#f5f5f5`,200:`#eeeeee`,300:`#e0e0e0`,400:`#bdbdbd`,500:`#9e9e9e`,600:`#757575`,700:`#616161`,800:`#424242`,900:`#212121`},"blue-gray":{50:`#eceff1`,100:`#cfd8dc`,200:`#b0bec5`,300:`#90a4ae`,400:`#78909c`,500:`#607d8b`,600:`#546e7a`,700:`#455a64`,800:`#37474f`,900:`#263238`}};function K(e){return rt.map(t=>`.${t}\\:${e}:${t}`)}function ut(e,t){return Qe.map(([n,r])=>`@media (min-width: ${r}px) { .${n}\\:${e} { ${t} } }`)}function q(e){return e.flatMap(([e,t])=>[`.${e} { ${t} }`,`${K(e).join(`,`)} { ${t} }`,...ut(e,t)])}function dt(e){return e.flatMap(([e,t])=>[`.${e} { ${t} }`,`${K(e).join(`,`)} { ${t} }`])}function ft(e,t){let n=e[0]===`@`,r=t[0]===`@`;return n&&!r?1:!n&&r?-1:e.localeCompare(t)}function J(e){return q(Object.entries(e).flatMap(([e,t])=>[[`${t}-0`,`${e}: 0`],[`${t}-screen`,`${e}: 100v${e.includes(`height`)?`h`:`w`}`],[`${t}-full`,`${e}: 100%`],...U.map(n=>[`${t}-${n}`,`${e}: ${n*V}rem`]),...U.map(n=>[`-${t}-${n}`,`${e}: -${n*V}rem`]),...U.map(n=>[`${t}-${n}px`,`${e}: ${n}px`]),...U.map(n=>[`-${t}-${n}px`,`${e}: -${n}px`]),...W.map(n=>[`${t}-${n}\\%`,`${e}: ${n}%`]),...W.map(n=>[`-${t}-${n}\\%`,`${e}: -${n}%`]),...Qe.map(([n,r])=>[`${t}-${n}`,`${e}: ${r}px`])]))}function pt(e){return q(Object.entries(e).flatMap(([e,t])=>[[`${t}-auto`,`${e}: auto`],[`${t}x-auto`,`${e}-left: auto; ${e}-right: auto;`],[`${t}y-auto`,`${e}-top: auto; ${e}-bottom: auto;`],[`${t}x-0`,`${e}-left: 0; ${e}-right: 0;`],[`${t}y-0`,`${e}-top: 0; ${e}-bottom: 0;`],...U.map(n=>[`${t}x-${n}`,`${e}-left: ${n*V}rem; ${e}-right: ${n*V}rem;`]),...U.map(n=>[`${t}y-${n}`,`${e}-top: ${n*V}rem; ${e}-bottom: ${n*V}rem;`]),...U.map(n=>[`${t}x-${n}px`,`${e}-left: ${n}px; ${e}-right: ${n}px;`]),...U.map(n=>[`${t}y-${n}px`,`${e}-top: ${n}px; ${e}-bottom: ${n}px;`]),...W.map(n=>[`${t}x-${n}\\%`,`${e}-left: ${n}%; ${e}-right: ${n}%;`]),...W.map(n=>[`${t}y-${n}\\%`,`${e}-top: ${n}%; ${e}-bottom: ${n}%;`])]))}function mt(e){return q(Object.entries(e).flatMap(([e,t])=>[[`${t}t-0`,`${e}-top: 0`],[`${t}b-0`,`${e}-bottom: 0`],[`${t}l-0`,`${e}-left: 0`],[`${t}r-0`,`${e}-right: 0`],[`${t}t-auto`,`${e}-top: auto`],[`${t}b-auto`,`${e}-bottom: auto`],[`${t}l-auto`,`${e}-left: auto`],[`${t}r-auto`,`${e}-right: auto`],...[``,`-`].flatMap(n=>[...U.map(r=>[`${n}${t}t-${r}`,`${e}-top: ${n}${r*V}rem`]),...U.map(r=>[`${n}${t}b-${r}`,`${e}-bottom: ${n}${r*V}rem`]),...U.map(r=>[`${n}${t}l-${r}`,`${e}-left: ${n}${r*V}rem`]),...U.map(r=>[`${n}${t}r-${r}`,`${e}-right: ${n}${r*V}rem`]),...U.map(r=>[`${n}${t}t-${r}px`,`${e}-top: ${n}${r}px`]),...U.map(r=>[`${n}${t}b-${r}px`,`${e}-bottom: ${n}${r}px`]),...U.map(r=>[`${n}${t}l-${r}px`,`${e}-left: ${n}${r}px`]),...U.map(r=>[`${n}${t}r-${r}px`,`${e}-right: ${n}${r}px`]),...W.map(r=>[`${n}${t}t-${r}\\%`,`${e}-top: ${n}${r}%`]),...W.map(r=>[`${n}${t}b-${r}\\%`,`${e}-bottom: ${n}${r}%`]),...W.map(r=>[`${n}${t}l-${r}\\%`,`${e}-left: ${n}${r}%`]),...W.map(r=>[`${n}${t}r-${r}\\%`,`${e}-right: ${n}${r}%`])])]))}function ht(){return q([[`border`,`border: 1px`],[`border-x`,`border-inline-width: 1px`],[`border-y`,`border-block-width: 1px`],...[0,...H].map(e=>[`border-${e}`,`border-width: ${e}px`]),...[0,...H].map(e=>[`border-x-${e}`,`border-inline-width: ${e}px;`]),...[0,...H].map(e=>[`border-y-${e}`,`border-block-width: ${e}px;`]),...[`top`,`bottom`,`left`,`right`].flatMap(e=>[[`border-${e.slice(0,1)}`,`border-${e}: 1px`],...[0,...H].map(t=>[`border-${e.slice(0,1)}-${t}`,`border-${e}-width: ${t}px`])])])}function gt(){return q(W.map(e=>[`z-${e}`,`z-index: ${e}`]))}function _t(){return q(nt.map(e=>[`duration-${e}`,`--transition-duration: ${e}ms; transition-duration: ${e}ms`]))}function vt(){return q([[`space-x-0 > *`,`margin-left: 0`],[`space-y-0 > *`,`margin-top: 0`],...U.map(e=>[`space-x-${e} > :not(:first-child)`,`margin-left: ${e*V}rem`]),...U.map(e=>[`space-y-${e} > :not(:first-child)`,`margin-top: ${e*V}rem`]),...U.map(e=>[`space-x-${e}px > :not(:first-child)`,`margin-left: ${e}px`]),...U.map(e=>[`space-y-${e}px > :not(:first-child)`,`margin-top: ${e}px`]),[`gap-0`,`gap: 0`],...U.map(e=>[`gap-${e}`,`gap: ${e*V}rem`]),...U.map(e=>[`gap-${e}px`,`gap: ${e}px`]),...U.map(e=>[`gap-x-${e}`,`column-gap: ${e*V}rem`]),...U.map(e=>[`gap-y-${e}`,`row-gap: ${e*V}rem`]),...U.map(e=>[`gap-x-${e}px`,`column-gap: ${e}px`]),...U.map(e=>[`gap-y-${e}px`,`row-gap: ${e}px`]),[`divide-x > :not(:last-child)`,`border-inline-end-width: 1px`],[`divide-y > :not(:last-child)`,`border-bottom-width: 1px`],[`divide-x-0 > :not(:last-child)`,`border-inline-end-width: 0px`],[`divide-y-0 > :not(:last-child)`,`border-bottom-width: 0px`],...[2,4,8].map(e=>[`divide-x-${e} > :not(:last-child)`,`border-inline-end-width: ${e}px`]),...[2,4,8].map(e=>[`divide-y-${e} > :not(:last-child)`,`border-bottom-width: ${e}px`]),[`divide-solid > :not(:last-child)`,`border-style: solid`],[`divide-dashed > :not(:last-child)`,`border-style: dashed`],[`divide-dotted > :not(:last-child)`,`border-style: dotted`],[`divide-none > :not(:last-child)`,`border-style: none`]])}function yt(){return q([...Array.from({length:100},(e,t)=>[`text-${t}px`,`font-size: ${t}px`]),...Array.from({length:100},(e,t)=>[`text-${t*V}rem`,`font-size: ${t*V}rem`])])}function bt(){return q([...Array.from({length:12},(e,t)=>t+1).map(e=>[`grid-cols-${e}`,`grid-template-columns: repeat(${e}, minmax(0, 1fr))`]),[`grid-cols-none`,`grid-template-columns: none`],...Array.from({length:12},(e,t)=>t+1).map(e=>[`col-span-${e}`,`grid-column: span ${e} / span ${e}`]),[`col-span-full`,`grid-column: 1 / -1`],...Array.from({length:13},(e,t)=>t+1).map(e=>[`col-start-${e}`,`grid-column-start: ${e}`]),[`col-start-auto`,`grid-column-start: auto`],...Array.from({length:13},(e,t)=>t+1).map(e=>[`col-end-${e}`,`grid-column-end: ${e}`]),[`col-end-auto`,`grid-column-end: auto`]])}function xt(){return Object.entries(st).flatMap(([e,t])=>{let n=Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`; `);return[`.${e} { ${n} }`,`${K(e).join(`,`)} { ${n} }`,...ut(e,n)]})}function St(e){let t=0,n=0,r=0;return e.length===4?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):e.length===7&&(t=parseInt(e.slice(1,3),16),n=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16)),`${t} ${n} ${r}`}function Ct(){let e=(e,t)=>{let n=[[`text-${e}`,`color: ${t}`],[`fill-${e}`,`fill: ${t}`],[`bg-${e}`,`background-color: ${t}`],[`border-${e}`,`border-color: ${t}`]];if(t.startsWith(`#`)){let r=St(t);for(let t of tt){let i=t/100;n.push([`text-${e}\\/${t}`,`color: rgb(${r} / ${i})`],[`bg-${e}\\/${t}`,`background-color: rgb(${r} / ${i})`],[`border-${e}\\/${t}`,`border-color: rgb(${r} / ${i})`])}}return n};return dt([...e(`white`,`#fff`),...e(`black`,`#000`),...e(`transparent`,`transparent`),...Object.entries(lt).flatMap(([t,n])=>[...e(t,n[500]),...Object.entries(n).flatMap(([n,r])=>e(`${t}-${n}`,r))])])}function wt(){return q([[`opacity-0`,`opacity: 0`],...W.map(e=>[`opacity-${e}`,`opacity: ${e/100}`])])}let Y=null;function Tt(){return Y===null&&(Y=[...ct,...xt(),...Ct(),...wt(),...gt(),..._t(),...J(at),...J(it),...pt(it),...mt(G),...J(G),...pt(G),...vt(),...J(ot),...ht(),...yt(),...bt()].sort(ft).join(`
57
+ `)),Y}var X=class extends Je{impl=`browser`;dirpath=k(globalThis.location?.href??`http://localhost/`);parseHTML(e,t={rootDocument:!1}){if(t.rootDocument)return new DOMParser().parseFromString(e,`text/html`);{let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}}serializeHTML(e){return new XMLSerializer().serializeToString(e).replace(/\s?xmlns="[^"]+"/gm,``)}preprocessLocal(e,t){return this.preprocessRemote(e,t)}createElement(e,t){return(t||document).createElement(e)}createComment(e,t){return(t||document).createComment(e)}textContent(e,t){e.textContent=t}};new X;function Et(e){for(let t of e){let e=document.createElement(`style`);switch(t){case`minimal`:d(e,Xe());break;case`basic`:d(e,Ye());break;case`utils`:e.textContent=Tt();break;default:console.error(`Unknown style name: "${t}"`);continue}globalThis.document.head.appendChild(e)}}let Dt=`mancha-cloak-style`,Z=`data-mancha-cloak`,Ot=`[${Z}] { opacity: 0 !important; }`;function kt(e){let t=document.createElement(`style`);t.id=Dt,t.textContent=Ot,document.head.appendChild(t);for(let t of e){let e=document.querySelectorAll(t);for(let t of e)t.setAttribute(Z,``)}return t}function At(e){let t=!1;return async()=>{if(t)return;t=!0;let n=document.querySelectorAll(`[${Z}]`),r=document.getElementById(Dt);if(e!==!1&&n.length>0){r?.remove();for(let t of n){let n=t;n.style.opacity=`0`,n.style.transition=`opacity ${e}ms ease-in-out`}document.body.offsetHeight;for(let e of n){let t=e;t.style.opacity=`1`,e.removeAttribute(Z)}await new Promise(t=>setTimeout(t,e));for(let e of n){let t=e;t.style.transition=``,t.style.opacity=``}}else{r?.remove();for(let e of n)e.removeAttribute(Z)}}}async function jt(e={}){let t=e.renderer??new X,n;if(e.cloak){let t=e.cloak===!0?{}:e.cloak,r=e.target?Array.isArray(e.target)?e.target:[e.target]:[`body`],i=t.selector?Array.isArray(t.selector)?t.selector:[t.selector]:r,a=t.duration??0;kt(i),n=At(a>0?a:!1)}if(e.css&&e.css.length>0&&Et(e.css),e.debug&&t.debug(!0),e.state)for(let[n,r]of Object.entries(e.state))await t.set(n,r);if(e.callback)await e.callback(t,n??(async()=>{}));else if(e.target){let n=Array.isArray(e.target)?e.target:[e.target];for(let r of n){let n=globalThis.document.querySelector(r);n?await t.mount(n,{cache:e.cache}):console.error(`Target element not found: "${r}"`)}}return n&&await n(),t}let Q=globalThis.document?.currentScript,$=new X;if(globalThis.Mancha=$,Q?.hasAttribute(`init`)){let e=Q.hasAttribute(`debug`),t=Q.getAttribute(`cache`)||void 0,n=Q.getAttribute(`target`)?.split(`+`)||[`body`],r=Q.getAttribute(`css`)?.split(`+`),i,a=Q.getAttribute(`cloak`);if(a===`false`)i=void 0;else if(a&&!Number.isNaN(parseInt(a,10))){let e=parseInt(a,10);i=e>0?{duration:e}:!0}else i=!0;window.addEventListener(`load`,async()=>{await jt({renderer:$,css:r,target:n,debug:e,cache:t,cloak:i})})}else if(Q?.hasAttribute(`css`)){let e=Q.getAttribute(`css`)?.split(`+`);jt({css:e})}return $})();
@@ -1 +1 @@
1
- {"version":3,"file":"mancha.js","sourceRoot":"","sources":["../src/mancha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;AAEzD,gFAAgF;AAChF,IAAI,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,aAAa,EAAE,YAAY,CAAC,OAAO,CAAwB,CAAC;IAChF,MAAM,OAAO,GAAG,aAAa,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9E,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAgC,CAAC;YAC1F,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,IAAI,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAc,CAAC;IAC/E,SAAS,CAAC,UAAU,CAAC,CAAC;AACvB,CAAC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"mancha.js","sourceRoot":"","sources":["../src/mancha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAElE,gDAAgD;AAChD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;AAEzD,qEAAqE;AACrE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;AAE7B,6FAA6F;AAC7F,IAAI,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IACzC,sDAAsD;IACtD,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAkB,IAAI,SAAS,CAAC;IACvF,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAA0B,CAAC;IAExF,iDAAiD;IACjD,oCAAoC;IACpC,8DAA8D;IAC9D,gFAAgF;IAChF,IAAI,KAAiD,CAAC;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC5B,KAAK,GAAG,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1C,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;SAAM,CAAC;QACP,+CAA+C;QAC/C,KAAK,GAAG,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QAC1C,mEAAmE;QACnE,MAAM,UAAU,CAAC;YAChB,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,OAAO;YACf,KAAK;YACL,KAAK,EAAE,WAAW;YAClB,KAAK;SACL,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;KAAM,IAAI,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/C,gFAAgF;IAChF,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAc,CAAC;IAC9E,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -8,9 +8,11 @@ To get started, simply add this to your HTML head attribute:
8
8
  <script src="//unpkg.com/mancha" css="utils" init></script>
9
9
  ```
10
10
 
11
+ The `init` attribute automatically hides content until rendering is complete, preventing users from seeing raw template syntax. For advanced options like fade-in animations, see [Initialization](./02_initialization.md).
12
+
11
13
  ## Basic Form
12
14
 
13
- After importing `Mancha`, you can take advantage of reactivity and tailwind-compatible CSS styling. For a full list of supported CSS utilities and minimal styles, see the [CSS Documentation](./css.md).
15
+ After importing `Mancha`, you can take advantage of reactivity and tailwind-compatible CSS styling. For a full list of supported CSS utilities and minimal styles, see the [CSS Documentation](./05_css.md).
14
16
 
15
17
  For example, a basic form might look like this:
16
18
 
@@ -118,10 +120,11 @@ If you want more control over the initialization lifecycle, you can remove the `
118
120
 
119
121
  Now that you've seen the basics, explore the full capabilities of `mancha`:
120
122
 
121
- - **[Syntax](./syntax.md)**: Learn about all the attributes (`:data`, `:for`, `:if`, etc.) and the expression language.
122
- - **[Reactivity](./reactivity.md)**: Dive deep into variable scoping and URL binding.
123
- - **[Components](./components.md)**: Build reusable components with `<include>`, `<template>`, and `:render`.
124
- - **[CSS](./css.md)**: Explore the built-in utility classes.
125
- - **[Server-Side Rendering](./ssr.md)**: Render templates on the server or in workers.
126
- - **[TypeScript](./typescript.md)**: Use TypeScript for type-safe state and template checking.
127
- - **[Testing](./testing.md)**: Test your components with JSDOM.
123
+ - **[Syntax](./01_syntax.md)**: Learn about all the attributes (`:data`, `:for`, `:if`, etc.) and the expression language.
124
+ - **[Initialization](./02_initialization.md)**: Script tag options, ESM API, cloaking, and callbacks.
125
+ - **[Reactivity](./03_reactivity.md)**: Dive deep into variable scoping and URL binding.
126
+ - **[Components](./04_components.md)**: Build reusable components with `<include>`, `<template>`, and `:render`.
127
+ - **[CSS](./05_css.md)**: Explore the built-in utility classes.
128
+ - **[Server-Side Rendering](./06_ssr.md)**: Render templates on the server or in workers.
129
+ - **[TypeScript](./07_typescript.md)**: Use TypeScript for type-safe state and template checking.
130
+ - **[Testing](./08_testing.md)**: Test your components with JSDOM.
@@ -0,0 +1,157 @@
1
+ # Initialization
2
+
3
+ This document covers the different ways to initialize mancha and configure its behavior.
4
+
5
+ ## Script Tag
6
+
7
+ The simplest way to use mancha is via a script tag with the `init` attribute:
8
+
9
+ ```html
10
+ <script src="//unpkg.com/mancha" css="utils" init></script>
11
+ ```
12
+
13
+ ### Script Tag Attributes
14
+
15
+ | Attribute | Description | Example |
16
+ |-----------|-------------|---------|
17
+ | `init` | Enables automatic initialization on page load | `init` |
18
+ | `target` | CSS selector(s) to mount to (default: `body`). Use `+` to separate multiple targets | `target="main"` or `target="#app+#sidebar"` |
19
+ | `css` | CSS bundles to inject. Use `+` to separate multiple | `css="utils"` or `css="basic+utils"` |
20
+ | `debug` | Enable debug logging | `debug` |
21
+ | `cache` | Fetch cache policy for includes | `cache="no-cache"` |
22
+ | `cloak` | Control FOUC prevention (see below) | `cloak="200"` or `cloak="false"` |
23
+
24
+ ## ES Module API
25
+
26
+ For more control, use the `initMancha` function:
27
+
28
+ ```typescript
29
+ import { initMancha } from "mancha/browser";
30
+
31
+ const renderer = await initMancha({
32
+ target: "#app",
33
+ css: ["utils"],
34
+ state: { message: "Hello" },
35
+ });
36
+ ```
37
+
38
+ ### InitManchaOptions
39
+
40
+ | Option | Type | Description |
41
+ |--------|------|-------------|
42
+ | `renderer` | `Renderer` | Use an existing Renderer instance instead of creating a new one |
43
+ | `target` | `string \| string[]` | CSS selector(s) to mount to |
44
+ | `css` | `CssName[]` | CSS bundles to inject: `"minimal"`, `"basic"`, `"utils"` |
45
+ | `state` | `Record<string, unknown>` | Initial state to set before mounting |
46
+ | `debug` | `boolean` | Enable debug logging |
47
+ | `cache` | `RequestCache` | Fetch cache policy for includes |
48
+ | `cloak` | `boolean \| CloakOptions` | FOUC prevention (see below) |
49
+ | `callback` | `Function` | Custom initialization callback (see below) |
50
+
51
+ ## Cloaking (FOUC Prevention)
52
+
53
+ Cloaking hides your content until rendering is complete, preventing users from seeing raw template syntax like `{{ variable }}` or `:text="expr"` before JavaScript processes them.
54
+
55
+ ### How It Works
56
+
57
+ Cloaking sets `opacity: 0` on target elements via a `data-mancha-cloak` attribute, then removes it once rendering completes.
58
+
59
+ ### Script Tag Defaults
60
+
61
+ Cloaking is **enabled by default** when using the script tag with `init`:
62
+
63
+ ```html
64
+ <!-- Cloaking ON by default (instant reveal) -->
65
+ <script src="//unpkg.com/mancha" css="utils" init></script>
66
+
67
+ <!-- Cloaking with 200ms fade-in animation -->
68
+ <script src="//unpkg.com/mancha" css="utils" init cloak="200"></script>
69
+
70
+ <!-- Disable cloaking (not recommended) -->
71
+ <script src="//unpkg.com/mancha" css="utils" init cloak="false"></script>
72
+ ```
73
+
74
+ ### ESM Defaults
75
+
76
+ Cloaking is **opt-in** when using the ES module API:
77
+
78
+ ```typescript
79
+ import { initMancha } from "mancha/browser";
80
+
81
+ // No cloaking (default)
82
+ await initMancha({ target: "#app" });
83
+
84
+ // Enable with instant reveal
85
+ await initMancha({ target: "#app", cloak: true });
86
+
87
+ // Enable with 200ms fade-in
88
+ await initMancha({ target: "#app", cloak: { duration: 200 } });
89
+
90
+ // Cloak a different element than the mount target
91
+ await initMancha({
92
+ target: "#app",
93
+ cloak: { selector: "#loading-container", duration: 150 },
94
+ });
95
+ ```
96
+
97
+ ### CloakOptions
98
+
99
+ | Option | Type | Description |
100
+ |--------|------|-------------|
101
+ | `selector` | `string \| string[]` | Element(s) to cloak. Defaults to `target` or `body` |
102
+ | `duration` | `number` | Fade-in animation duration in ms. Defaults to 0 (instant) |
103
+
104
+ ## Custom Initialization Callback
105
+
106
+ For advanced use cases, provide a `callback` function. When used, automatic mounting is skipped—you must call `renderer.mount()` yourself:
107
+
108
+ ```typescript
109
+ import { initMancha } from "mancha/browser";
110
+
111
+ await initMancha({
112
+ cloak: { duration: 150 },
113
+ callback: async (renderer, uncloak) => {
114
+ // Fetch data before mounting
115
+ const data = await fetch("/api/data").then((r) => r.json());
116
+ await renderer.set("items", data.items);
117
+
118
+ // Mount to the DOM
119
+ await renderer.mount(document.getElementById("app"));
120
+
121
+ // uncloak() is called automatically after callback returns
122
+ },
123
+ });
124
+ ```
125
+
126
+ The callback receives:
127
+ - `renderer`: The initialized Renderer instance
128
+ - `uncloak`: A function to manually reveal cloaked content (called automatically after callback returns)
129
+
130
+ ## Manual Initialization
131
+
132
+ If you need full control, omit the `init` attribute and call `mount()` directly:
133
+
134
+ ```html
135
+ <script src="//unpkg.com/mancha" css="utils"></script>
136
+
137
+ <body :data="{ name: 'World' }">
138
+ <p>Hello, {{ name }}!</p>
139
+ </body>
140
+
141
+ <script type="module">
142
+ const { $ } = Mancha;
143
+ await $.mount(document.body);
144
+ </script>
145
+ ```
146
+
147
+ Or using the ESM API without `initMancha`:
148
+
149
+ ```typescript
150
+ import { Renderer, injectCss } from "mancha/browser";
151
+
152
+ injectCss(["utils"]);
153
+
154
+ const renderer = new Renderer();
155
+ await renderer.set("name", "World");
156
+ await renderer.mount(document.body);
157
+ ```
@@ -4,7 +4,7 @@ Mancha provides a set of CSS utilities and minimal styles to help you build your
4
4
 
5
5
  ## Minimal CSS
6
6
 
7
- The minimal CSS rules provide a clean, readable default style for standard HTML elements. You can inject them using `injectMinimalCss()` or by adding `css="minimal"` to your script tag.
7
+ The minimal CSS rules provide a clean, readable default style for standard HTML elements. You can inject them using `injectCss(["minimal"])` or by adding `css="minimal"` to your script tag.
8
8
 
9
9
  ### Reset & Defaults
10
10
  - **Max Width**: 70ch (centered)
@@ -16,7 +16,7 @@ The minimal CSS rules provide a clean, readable default style for standard HTML
16
16
 
17
17
  ## Basic CSS
18
18
 
19
- The basic CSS rules provide a more comprehensive reset and set of defaults, widely based on Tailwind CSS Preflight. You can inject them using `injectBasicCss()` or by adding `css="basic"` to your script tag.
19
+ The basic CSS rules provide a more comprehensive reset and set of defaults, widely based on Tailwind CSS Preflight. You can inject them using `injectCss(["basic"])` or by adding `css="basic"` to your script tag.
20
20
 
21
21
  ### Key Features
22
22
  - **Box Sizing**: `border-box` globally
@@ -28,7 +28,7 @@ The basic CSS rules provide a more comprehensive reset and set of defaults, wide
28
28
 
29
29
  ## Utility CSS
30
30
 
31
- The utility CSS rules are inspired by Tailwind CSS. You can inject them using `injectUtilsCss()` or by adding `css="utils"` to your script tag.
31
+ The utility CSS rules are inspired by Tailwind CSS. You can inject them using `injectCss(["utils"])` or by adding `css="utils"` to your script tag.
32
32
 
33
33
  ### Media Breakpoints
34
34
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mancha",
3
- "version": "0.19.2",
3
+ "version": "0.19.3",
4
4
  "description": "Javscript HTML rendering engine",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -12,7 +12,7 @@ import rules, {
12
12
  PROPS_SPACING,
13
13
  } from "../src/css_gen_utils.js";
14
14
 
15
- const DOCS_PATH = path.join(process.cwd(), "docs", "css.md");
15
+ const DOCS_PATH = path.join(process.cwd(), "docs", "05_css.md");
16
16
 
17
17
  function handledBySize(klass: string) {
18
18
  return klass.startsWith("text-") && (klass.endsWith("px") || klass.endsWith("rem"));
@@ -26,7 +26,7 @@ function generateMarkdown() {
26
26
 
27
27
  md += "## Minimal CSS\n\n";
28
28
  md +=
29
- 'The minimal CSS rules provide a clean, readable default style for standard HTML elements. You can inject them using `injectMinimalCss()` or by adding `css="minimal"` to your script tag.\n\n';
29
+ 'The minimal CSS rules provide a clean, readable default style for standard HTML elements. You can inject them using `injectCss(["minimal"])` or by adding `css="minimal"` to your script tag.\n\n';
30
30
  md += "### Reset & Defaults\n";
31
31
  md += "- **Max Width**: 70ch (centered)\n";
32
32
  md += "- **Padding**: 2em 1em\n";
@@ -37,7 +37,7 @@ function generateMarkdown() {
37
37
 
38
38
  md += "## Basic CSS\n\n";
39
39
  md +=
40
- 'The basic CSS rules provide a more comprehensive reset and set of defaults, widely based on Tailwind CSS Preflight. You can inject them using `injectBasicCss()` or by adding `css="basic"` to your script tag.\n\n';
40
+ 'The basic CSS rules provide a more comprehensive reset and set of defaults, widely based on Tailwind CSS Preflight. You can inject them using `injectCss(["basic"])` or by adding `css="basic"` to your script tag.\n\n';
41
41
  md += "### Key Features\n";
42
42
  md += "- **Box Sizing**: `border-box` globally\n";
43
43
  md += "- **Typography**: Default sans-serif font stack, consistent line-height\n";
@@ -49,7 +49,7 @@ function generateMarkdown() {
49
49
 
50
50
  md += "## Utility CSS\n\n";
51
51
  md +=
52
- 'The utility CSS rules are inspired by Tailwind CSS. You can inject them using `injectUtilsCss()` or by adding `css="utils"` to your script tag.\n\n';
52
+ 'The utility CSS rules are inspired by Tailwind CSS. You can inject them using `injectCss(["utils"])` or by adding `css="utils"` to your script tag.\n\n';
53
53
 
54
54
  md += "### Media Breakpoints\n\n";
55
55
  md += "| Prefix | Min Width |\n";
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes