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 +9 -8
- package/dist/browser.d.ts +24 -13
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +5 -11
- package/dist/cli.js.map +1 -1
- package/dist/mancha.js +24 -24
- package/dist/mancha.js.map +1 -1
- package/docs/{quickstart.md → 00_quickstart.md} +11 -8
- package/docs/02_initialization.md +157 -0
- package/docs/{css.md → 05_css.md} +3 -3
- package/package.json +1 -1
- package/scripts/generate-css-docs.ts +4 -4
- /package/docs/{syntax.md → 01_syntax.md} +0 -0
- /package/docs/{reactivity.md → 03_reactivity.md} +0 -0
- /package/docs/{components.md → 04_components.md} +0 -0
- /package/docs/{ssr.md → 06_ssr.md} +0 -0
- /package/docs/{typescript.md → 07_typescript.md} +0 -0
- /package/docs/{testing.md → 08_testing.md} +0 -0
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/
|
|
54
|
-
- **[Syntax](./docs/
|
|
55
|
-
- **[
|
|
56
|
-
- **[
|
|
57
|
-
- **[
|
|
58
|
-
- **[
|
|
59
|
-
- **[
|
|
60
|
-
- **[
|
|
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
|
-
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
|
|
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,
|
|
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
|
|
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};
|
package/dist/browser.js.map
CHANGED
|
@@ -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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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":"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
|
|
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{},
|
|
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
|
|
17
|
-
`,
|
|
18
|
-
`,
|
|
19
|
-
`,
|
|
20
|
-
`,
|
|
21
|
-
`,
|
|
22
|
-
`,
|
|
23
|
-
`,
|
|
24
|
-
`,
|
|
25
|
-
`,
|
|
26
|
-
`,
|
|
27
|
-
`,
|
|
28
|
-
`,
|
|
29
|
-
`,
|
|
30
|
-
`,
|
|
31
|
-
`,
|
|
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,
|
|
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:
|
|
44
|
-
`,
|
|
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
|
-
}`],
|
|
57
|
-
`)),
|
|
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 $})();
|
package/dist/mancha.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mancha.js","sourceRoot":"","sources":["../src/mancha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,
|
|
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](./
|
|
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](./
|
|
122
|
-
- **[
|
|
123
|
-
- **[
|
|
124
|
-
- **[
|
|
125
|
-
- **[
|
|
126
|
-
- **[
|
|
127
|
-
- **[
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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
|
@@ -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", "
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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
|