mancha 0.23.1 → 0.24.1
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 +25 -7
- package/dist/browser.d.ts +454 -3
- package/dist/browser.js +32 -1
- package/dist/css_custom.d.ts +1 -1
- package/dist/css_custom.js +44 -11
- package/dist/css_custom.js.map +1 -1
- package/dist/css_gen_utils.d.ts +8 -915
- package/dist/css_gen_utils.js +382 -641
- package/dist/css_gen_utils.js.map +1 -1
- package/dist/mancha.js +25 -36
- package/dist/plugins.js +11 -1
- package/dist/plugins.js.map +1 -1
- package/dist/renderer.js +5 -1
- package/dist/renderer.js.map +1 -1
- package/dist/store.d.ts +38 -2
- package/dist/store.js +215 -35
- package/dist/store.js.map +1 -1
- package/dist/trusted_attributes.d.ts +0 -3
- package/dist/trusted_attributes.js +1 -3
- package/dist/trusted_attributes.js.map +1 -1
- package/docs/02_initialization.md +2 -2
- package/docs/03_reactivity.md +26 -3
- package/docs/05_css.md +314 -282
- package/package.json +19 -4
- package/.biomeignore +0 -3
- package/.github/workflows/ci.yml +0 -109
- package/.vscode/extensions.json +0 -3
- package/.vscode/launch.json +0 -34
- package/biome.json +0 -46
- package/dist/browser.js.map +0 -1
- package/dist/expressions/ast.test.d.ts +0 -1
- package/dist/expressions/ast.test.js +0 -147
- package/dist/expressions/ast.test.js.map +0 -1
- package/dist/expressions/ast_factory.test.d.ts +0 -1
- package/dist/expressions/ast_factory.test.js +0 -94
- package/dist/expressions/ast_factory.test.js.map +0 -1
- package/dist/expressions/constants.test.d.ts +0 -1
- package/dist/expressions/constants.test.js +0 -84
- package/dist/expressions/constants.test.js.map +0 -1
- package/dist/expressions/eval.test.d.ts +0 -1
- package/dist/expressions/eval.test.js +0 -215
- package/dist/expressions/eval.test.js.map +0 -1
- package/dist/expressions/expressions.test.d.ts +0 -6
- package/dist/expressions/expressions.test.js +0 -7
- package/dist/expressions/expressions.test.js.map +0 -1
- package/dist/expressions/parser.test.d.ts +0 -1
- package/dist/expressions/parser.test.js +0 -174
- package/dist/expressions/parser.test.js.map +0 -1
- package/dist/expressions/tokenizer.test.d.ts +0 -1
- package/dist/expressions/tokenizer.test.js +0 -124
- package/dist/expressions/tokenizer.test.js.map +0 -1
- package/dist/interfaces-DhL-_vL-.d.ts +0 -423
- package/dist/mancha.js.map +0 -1
- package/dist/renderer-1jqgJa7K.js +0 -43
- package/dist/safe_browser.d.ts +0 -16
- package/dist/safe_browser.js +0 -1
- package/dist/safe_browser.js.map +0 -1
- package/dist/test_types/api.d.ts +0 -11
- package/dist/test_types/api.js +0 -3
- package/dist/test_types/api.js.map +0 -1
- package/dist/test_types/nested/child.d.ts +0 -12
- package/dist/test_types/nested/child.js +0 -2
- package/dist/test_types/nested/child.js.map +0 -1
- package/dist/test_types/product.d.ts +0 -11
- package/dist/test_types/product.js +0 -3
- package/dist/test_types/product.js.map +0 -1
- package/dist/test_types/user.d.ts +0 -10
- package/dist/test_types/user.js +0 -3
- package/dist/test_types/user.js.map +0 -1
- package/dist/test_utils.d.ts +0 -20
- package/dist/test_utils.js +0 -94
- package/dist/test_utils.js.map +0 -1
- package/global.d.ts +0 -4
- package/gulpfile.ts +0 -47
- package/scripts/generate-css-docs.ts +0 -582
- package/tsconfig.json +0 -37
- package/tsdown.config.ts +0 -32
- package/tsec_exemptions.json +0 -9
package/dist/browser.js
CHANGED
|
@@ -1 +1,32 @@
|
|
|
1
|
-
import{a as e,i as t,n,r,t as i}from"./renderer-1jqgJa7K.js";import{safeStyleEl as a}from"safevalues/dom";import{concatStyleSheets as o,safeStyleSheet as s}from"safevalues";function c(){return o([s`*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}`,s`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}`,s`body{margin:0;line-height:inherit}`,s`hr{height:0;color:inherit;border-top-width:1px}`,s`abbr:where([title]){text-decoration:underline dotted}`,s`b,strong{font-weight:bolder}`,s`code,kbd,samp,pre{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:1em}`,s`small{font-size:80%}`,s`sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}`,s`sub{bottom:-0.25em}`,s`sup{top:-0.5em}`,s`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}`,s`button,select{text-transform:none}`,s`button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;cursor:pointer}`,s`:-moz-focusring{outline:auto}`,s`:-moz-ui-invalid{box-shadow:none}`,s`progress{vertical-align:baseline}`,s`::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}`,s`[type='search']{-webkit-appearance:textfield;outline-offset:-2px}`,s`::-webkit-search-decoration{-webkit-appearance:none}`,s`::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}`,s`summary{display:list-item}`,s`blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}`,s`fieldset{margin:0;padding:0}`,s`legend{padding:0}`,s`ol,ul,menu{list-style:none;margin:0;padding:0}`,s`textarea{resize:vertical}`,s`::placeholder{opacity:1;color:#9ca3af}`,s`button,[role="button"]{cursor:pointer}`,s`:disabled{cursor:default;pointer-events:none;opacity:0.75}`,s`img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}`,s`img,video{max-width:100%;height:auto}`,s`[hidden]{display:none}`,s`dialog{padding:0}`,s`dialog::backdrop{background:rgba(0,0,0,0.5)}`])}function l(){return o([s`html{`,s`max-width: 70ch;`,s`padding: 2em 1em;`,s`margin: auto;`,s`line-height: 1.75;`,s`font-size: 1.25em;`,s`font-family: sans-serif;`,s`}`,s`h1,h2,h3,h4,h5,h6{`,s`margin: 1em 0 0.5em;`,s`}`,s`p,ul,ol{`,s`margin-bottom: 1em;`,s`color: #1d1d1d;`,s`}`])}var u=class extends i{impl=`browser`;dirpath=n(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 d=new u;function f(n){for(let r of n){r=r.trim();let n=document.createElement(`style`);switch(r){case`minimal`:a.setTextContent(n,l());break;case`basic`:case`custom`:console.warn(`css="${r}" is deprecated; use css="utils" instead.`);continue;case`utils`:{a.setTextContent(n,c()),n.setAttribute(`data-mancha`,`basic`),globalThis.document.head.appendChild(n);let r=document.createElement(`style`);r.textContent=e(),r.setAttribute(`data-mancha`,`utils`),globalThis.document.head.appendChild(r),t(document);continue}default:console.error(`Unknown style name: "${r}"`);continue}globalThis.document.head.appendChild(n)}}const p=`mancha-cloak`;function m(e,t){let n=`${e.join(`, `)} { opacity: 0 !important; ${t>0?`transition: opacity ${t}ms ease-in-out !important;`:``} }`,r=document.getElementById(p);r||(r=document.createElement(`style`),r.id=p,document.head.appendChild(r)),r.textContent=n}function h(e){let t=!1;return async()=>{if(t)return;t=!0;let n=document.getElementById(p);if(n){if(e!==!1){let t=n.sheet;t&&t.cssRules.length>0&&t.cssRules[0].style.setProperty(`opacity`,`1`,`important`),await new Promise(t=>setTimeout(t,e))}typeof globalThis.requestAnimationFrame==`function`&&(await new Promise(e=>globalThis.requestAnimationFrame(e)),await new Promise(e=>globalThis.requestAnimationFrame(e))),n.remove()}}}async function g(e={}){let t;document.documentElement.classList.add(`mancha-loading`);let n=e.cloak?e.cloak===!0?{}:e.cloak:void 0;if(n){let r=e.target?Array.isArray(e.target)?e.target:[e.target]:[`body`],i=n.selector&&(Array.isArray(n.selector)||typeof n.selector==`string`)?Array.isArray(n.selector)?n.selector:[n.selector]:r,a=n.duration??0;m(i,a),t=h(a>0?a:!1)}else t=h(!1);document.readyState===`loading`&&await new Promise(e=>{window.addEventListener(`DOMContentLoaded`,()=>e(),{once:!0})});let r=e.renderer??new u;if(e.css&&e.css.length>0&&f(e.css),e.debug&&r.debug(!0),e.state)for(let[t,n]of Object.entries(e.state))await r.set(t,n);try{if(e.callback)await e.callback(r);else if(e.target){let t=Array.isArray(e.target)?e.target:[e.target];for(let n of t){let t=globalThis.document.querySelector(n);t?await r.mount(t,{cache:e.cache}):console.error(`Target element not found: "${n}"`)}}}finally{document.documentElement.classList.remove(`mancha-loading`),t&&await t()}return r}export{i as IRenderer,d as Mancha,u as Renderer,r as _resetCustomCssForTesting,c as basicCssRules,g as initMancha,f as injectCss,l as minimalCssRules,e as utilsCssRules};
|
|
1
|
+
import{safeAnchorEl as e,safeAreaEl as t,safeElement as n,safeStyleEl as r}from"safevalues/dom";import{concatStyleSheets as i,safeAttrPrefix as a,safeStyleSheet as o}from"safevalues";const s={sm:640,md:768,lg:1024,xl:1280},c=Object.entries(s),l=.25,u=[...Array(15)].map((e,t)=>t+1),d=[16,20,24,28,32,36,40,48,56,64],f=[72,80,96,128,160,192,256,320,384,512],p=[...u,...d,...f,...Object.values(s)],m=Array.from({length:20},(e,t)=>(t+1)*5),h=[25,50,75,100,150,200,300,500,700,1e3],g={margin:`m`},_={padding:`p`},ee={...g,..._},te={width:`w`,height:`h`},ne={top:`top`,right:`right`,bottom:`bottom`,left:`left`},re={"min-width":`min-w`,"min-height":`min-h`,"max-width":`max-w`,"max-height":`max-h`},v=`transition-timing-function: ease-in-out; transition-duration: var(--transition-duration, 150ms)`,ie={"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`,"appearance-none":`appearance: none; -webkit-appearance: none; -moz-appearance: 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; ${v}`,"transition-all":`transition-property: all; ${v}`,"transition-opacity":`transition-property: opacity; ${v}`,"transition-transform":`transition-property: transform; ${v}`,"transition-shadow":`transition-property: box-shadow; ${v}`,"transition-colors":`transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; ${v}`,"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-center":`background-position: center`,"bg-top":`background-position: top`,"bg-bottom":`background-position: bottom`,"bg-left":`background-position: left`,"bg-right":`background-position: right`,"bg-left-top":`background-position: left top`,"bg-left-bottom":`background-position: left bottom`,"bg-right-top":`background-position: right top`,"bg-right-bottom":`background-position: right bottom`,"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`},ae=[`@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`,`@keyframes ping{75%,100%{transform:scale(2);opacity:0}}`,`@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}`],oe=`red pink purple deep-purple indigo blue light-blue cyan teal green light-green lime yellow amber orange deep-orange brown gray blue-gray`.split(` `),se=[50,100,200,300,400,500,600,700,800,900],y=Object.fromEntries(oe.map((e,t)=>[e,Object.fromEntries(se.map((e,n)=>{let r=(t*se.length+n)*6;return[e,`#${`ffebeeffcdd2ef9a9ae57373ef5350f44336e53935d32f2fc62828b71c1cfce4ecf8bbd0f48fb1f06292ec407ae91e63d81b60c2185bad1457880e4ff3e5f5e1bee7ce93d8ba68c8ab47bc9c27b08e24aa7b1fa26a1b9a4a148cede7f6d1c4e9b39ddb9575cd7e57c2673ab75e35b1512da84527a0311b92e8eaf6c5cae99fa8da7986cb5c6bc03f51b53949ab303f9f2835931a237ee3f2fdbbdefb90caf964b5f642a5f52196f31e88e51976d21565c00d47a1e1f5feb3e5fc81d4fa4fc3f729b6f603a9f4039be50288d10277bd01579be0f7fab2ebf280deea4dd0e126c6da00bcd400acc10097a700838f006064e0f2f1b2dfdb80cbc44db6ac26a69a00968800897b00796b00695c004d40e8f5e9c8e6c9a5d6a781c78466bb6a4caf5043a047388e3c2e7d321b5e20f1f8e9dcedc8c5e1a5aed5819ccc658bc34a7cb342689f38558b2f33691ef9fbe7f0f4c3e6ee9cdce775d4e157cddc39c0ca33afb42b9e9d24827717fffde7fff9c4fff59dfff176ffee58ffeb3bfdd835fbc02df9a825f57f17fff8e1ffecb3ffe082ffd54fffca28ffc107ffb300ffa000ff8f00ff6f00fff3e0ffe0b2ffcc80ffb74dffa726ff9800fb8c00f57c00ef6c00e65100fbe9e7ffccbcffab91ff8a65ff7043ff5722f4511ee64a19d84315bf360cefebe9d7ccc8bcaaa4a1887f8d6e637955486d4c415d40374e342e3e2723fafafaf5f5f5eeeeeee0e0e0bdbdbd9e9e9e757575616161424242212121eceff1cfd8dcb0bec590a4ae78909c607d8b546e7a455a6437474f263238`.slice(r,r+6)}`]}))]));function b(e){return e.map(([e,t])=>`.${e} { ${t} }`)}const ce=[``,`-`],x=[``],le=[[`top`,`t`],[`bottom`,`b`],[`left`,`l`],[`right`,`r`]];function S(e,t,n){let r=(r,i)=>[`${e}${t(r)}`,n(`${e}${i}`)];return[...p.map(e=>r(`${e}`,`${e*l}rem`)),...p.map(e=>r(`${e}px`,`${e}px`)),...m.map(e=>r(`${e}\\%`,`${e}%`))]}function C(e,t=ce){return b(Object.entries(e).flatMap(([e,n])=>[[`${n}-0`,`${e}: 0`],[`${n}-screen`,`${e}: 100v${e.includes(`height`)?`h`:`w`}`],[`${n}-full`,`${e}: 100%`],...t.flatMap(t=>S(t,e=>`${n}-${e}`,t=>`${e}: ${t}`)),...c.map(([t,r])=>[`${n}-${t}`,`${e}: ${r}px`])]))}function ue(e){return b(Object.entries(e).map(([e,t])=>[`${t}-auto`,`${e}: auto`]))}function de(e){return b(Object.entries(e).flatMap(([e,t])=>[[`${t}x-auto`,`${e}-left: auto; ${e}-right: auto;`],[`${t}y-auto`,`${e}-top: auto; ${e}-bottom: auto;`],...le.map(([n,r])=>[`${t}${r}-auto`,`${e}-${n}: auto`])]))}function fe(e){return b(Object.entries(e).flatMap(([e,t])=>[[`${t}x-0`,`${e}-left: 0; ${e}-right: 0;`],[`${t}y-0`,`${e}-top: 0; ${e}-bottom: 0;`],...S(``,e=>`${t}x-${e}`,t=>`${e}-left: ${t}; ${e}-right: ${t};`),...S(``,e=>`${t}y-${e}`,t=>`${e}-top: ${t}; ${e}-bottom: ${t};`)]))}function pe(e,t=ce){return b(Object.entries(e).flatMap(([e,n])=>[[`${n}t-0`,`${e}-top: 0`],[`${n}b-0`,`${e}-bottom: 0`],[`${n}l-0`,`${e}-left: 0`],[`${n}r-0`,`${e}-right: 0`],...t.flatMap(t=>le.flatMap(([r,i])=>S(t,e=>`${n}${i}-${e}`,t=>`${e}-${r}: ${t}`)))]))}function me(){return b([[`border`,`border-width: 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;`]),...le.flatMap(([e,t])=>[[`border-${t}`,`border-${e}-width: 1px`],...[0,...u].map(n=>[`border-${t}-${n}`,`border-${e}-width: ${n}px`])])])}function he(){return b(m.map(e=>[`z-${e}`,`z-index: ${e}`]))}function ge(){return b(h.map(e=>[`duration-${e}`,`--transition-duration: ${e}ms; transition-duration: ${e}ms`]))}function _e(){return b([[`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 ve(){return b([...Array.from({length:100},(e,t)=>[`text-${t}px`,`font-size: ${t}px`]),...Array.from({length:100},(e,t)=>[`text-${String(t*l).replace(`.`,`\\.`)}rem`,`font-size: ${t*l}rem`])])}function ye(){return b([`column`,`row`].flatMap(e=>{let t=e.slice(0,3);return[...Array.from({length:12},(e,t)=>t+1).map(n=>[`grid-${t}s-${n}`,`grid-template-${e}s: repeat(${n}, minmax(0, 1fr))`]),[`grid-${t}s-none`,`grid-template-${e}s: none`],...Array.from({length:12},(e,t)=>t+1).map(n=>[`${t}-span-${n}`,`grid-${e}: span ${n} / span ${n}`]),[`${t}-span-full`,`grid-${e}: 1 / -1`],...Array.from({length:13},(e,t)=>t+1).map(n=>[`${t}-start-${n}`,`grid-${e}-start: ${n}`]),[`${t}-start-auto`,`grid-${e}-start: auto`],...Array.from({length:13},(e,t)=>t+1).map(n=>[`${t}-end-${n}`,`grid-${e}-end: ${n}`]),[`${t}-end-auto`,`grid-${e}-end: auto`]]}))}function be(){return Object.entries(ie).map(([e,t])=>`.${e} { ${t} }`)}function xe(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 Se(){let e=(e,t)=>[[`text-${e}`,`color: ${t}`],[`fill-${e}`,`fill: ${t}`],[`bg-${e}`,`background-color: ${t}`],[`border-${e}`,`border-color: ${t}`],[`divide-${e} > :not(:last-child)`,`border-color: ${t}`]];return b([...e(`white`,`#fff`),...e(`black`,`#000`),...e(`transparent`,`transparent`),...Object.entries(y).flatMap(([t,n])=>[...e(t,n[500]),...Object.entries(n).flatMap(([n,r])=>e(`${t}-${n}`,r))])])}function Ce(){return b([[`opacity-0`,`opacity: 0`],...m.map(e=>[`opacity-${e}`,`opacity: ${e/100}`])])}let w=null;function we(){return w===null&&(w=[...ae,...be(),...Se(),...Ce(),...he(),...ge(),...C(ne),...C(te,x),...ue(te),...C(g),...C(_,x),...ue(g),...de(g),...fe(ee),...pe(g),...pe(_,x),..._e(),...C(re,x),...me(),...ve(),...ye()].join(`
|
|
2
|
+
`)),w}const Te={text:`color`,bg:`background-color`,border:`border-color`,fill:`fill`,divide:`border-color`},Ee=/^(text|bg|border|fill|divide)-([\w-]+)\/(\d+)$/,De={w:`width`,h:`height`,"min-w":`min-width`,"min-h":`min-height`,"max-w":`max-width`,"max-h":`max-height`,m:`margin`,mt:`margin-top`,mr:`margin-right`,mb:`margin-bottom`,ml:`margin-left`,mx:`margin-inline`,my:`margin-block`,p:`padding`,pt:`padding-top`,pr:`padding-right`,pb:`padding-bottom`,pl:`padding-left`,px:`padding-inline`,py:`padding-block`,top:`top`,right:`right`,bottom:`bottom`,left:`left`,gap:`gap`,"gap-x":`column-gap`,"gap-y":`row-gap`,text:`font-size`,z:`z-index`,bg:`background-color`,border:`border-color`},Oe=/^(-?)([\w-]+)-\[(.+)\]$/,ke=/^(hover|focus|disabled|sm|md|lg|xl|dark|landscape|portrait):(.+)$/,Ae=[`hover`,`focus`,`disabled`],je=[`landscape`,`portrait`],T=new Set;let E=null;function Me(e){if(typeof document>`u`)return null;let t=`.${Pe(e)}`;for(let e of document.styleSheets)try{for(let n of e.cssRules)if(n instanceof CSSStyleRule&&n.selectorText===t)return n.style.cssText}catch{}return null}function Ne(){return typeof document<`u`&&typeof CSSStyleSheet<`u`&&typeof document.createElement==`function`}function Pe(e){let t=globalThis.CSS;return typeof t?.escape==`function`?t.escape(e):e.replace(/[[\]#.:>+~()'"/%,!]/g,`\\$&`)}function Fe(){if(!Ne())return null;if(E&&!E.ownerNode?.isConnected&&(E=null,T.clear()),E)return E;let e=document.createElement(`style`);return e.setAttribute(`data-mancha`,`custom`),document.head.appendChild(e),e.sheet?(E=e.sheet,E):null}function Ie(e){let t=e.match(Oe);if(!t)return null;let[,n,r,i]=t,a=De[r];if(!a)return null;let o=i.replace(/_/g,` `);return{property:a,value:n?`-${o}`:o}}function Le(e){let t=e.match(Ee);if(!t)return null;let[,n,r,i]=t,a=Te[n];if(!a)return null;let o=Number.parseInt(i,10);if(o<0||o>100)return null;let s=null;if(r===`white`)s=`#fff`;else if(r===`black`)s=`#000`;else{let e=r.lastIndexOf(`-`);if(e>0){let t=r.substring(0,e),n=Number.parseInt(r.substring(e+1),10);s=y[t]?.[n]??null}s||=y[r]?.[500]??null}return s?{property:a,value:`rgb(${xe(s)} / ${o/100})`}:null}function Re(e,t){let n=t?`${t.name}:${e}`:e,r=Fe();if(!r)return!1;if(T.has(n))return!0;let i=Pe(n),a=Ie(e)??Le(e),o=a?`${a.property}: ${a.value};`:Me(e);if(!o)return!1;let c=e.startsWith(`divide-`)?` > :not(:last-child)`:``,l;l=t?t.type===`pseudo`?`.${i}${c}:${t.name} { ${o} }`:t.name===`dark`?`@media (prefers-color-scheme: dark) { .${i}${c} { ${o} } }`:je.includes(t.name)?`@media (orientation: ${t.name}) { .${i}${c} { ${o} } }`:`@media (min-width: ${s[t.name]}px) { .${i}${c} { ${o} } }`:`.${i}${c} { ${o} }`;try{let e=r.insertRule(l,r.cssRules.length),i=r.cssRules[e];return(t?.type===`media`?i.cssRules[0]:i)?.style?.length?(T.add(n),!0):(r.deleteRule(e),console.warn(`Injected CSS rule had no effect: ${l}`),!1)}catch(e){return console.warn(`Failed to inject CSS rule: ${l}`,e),!1}}function ze(e){return e.includes(`[`)||e.includes(`:`)||e.includes(`/`)}function Be(e){if(!(!e||!ze(e)))for(let t of e.trim().split(/\s+/)){let e=t.match(ke);if(e){let[,t,n]=e,r=Ae.includes(t),i=t in s,a=t===`dark`,o=je.includes(t);if(r||i||a||o){Re(n,{type:r?`pseudo`:`media`,name:t});continue}}ze(t)&&Re(t)}}function Ve(e){if(!Ne())return;let t=e??document;if(t instanceof Element){let e=t.getAttribute(`class`);e&&Be(e)}let n=t.querySelectorAll(`[class]`);for(let e of n){let t=e.getAttribute(`class`);t&&Be(t)}}function He(){return Ne()&&document.querySelector(`style[data-mancha="utils"]`)!==null}function Ue(e){if(!He())return;let t=e;typeof t.querySelectorAll==`function`&&Ve(t)}function We(e){!e||!ze(e)||He()&&Be(e)}function Ge(){T.clear(),E?.ownerNode&&E.ownerNode.remove(),E=null}function Ke(e){let t=e.childNodes;for(let e=0;e<t.length;e++){let n=t[e];n.prev=e>0?t[e-1]:null,n.next=e<t.length-1?t[e+1]:null}}const qe=[a`:`,a`style`,a`class`];function*D(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 O(e,t){return e?.[t]!==void 0}function k(e,t){return typeof e?.[t]==`function`}function Je(e){return e.replace(/-./g,e=>e[1].toUpperCase())}function A(e,t){return e.attribs?e.attribs[t]??null:e.getAttribute?.(t)??null}function Ye(e,t){return e.attribs?t in e.attribs:e.hasAttribute?.(t)??!1}function j(e,t,n=``){return A(e,n+t)||A(e,`data-${t}`)||(e.dataset?.[Je(t)]??null)}function M(e,t,n){e.attribs?e.attribs[t]=n:e.setAttribute?.(t,n)}function N(e,t,r){e.attribs?e.attribs[t]=r:n.setPrefixedAttribute(qe,e,t,r)}function P(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 F(e,t){e.attribs?delete e.attribs[t]:e.removeAttribute?.(t)}function Xe(e,t,n,r=``){Ye(e,`${r}${t}`)?M(e,`${r}${t}`,n):Ye(e,`data-${t}`)?M(e,`data-${t}`,n):M(e,`${r}${t}`,n)}function I(e,t,n=``){F(e,`${n}${t}`),F(e,`data-${t}`)}function Ze(e,t,n){if(e.attribs&&t.attribs)t.attribs[n]=e.attribs[n];else if(n.startsWith(`data-`)){let r=Je(n.slice(5));t.dataset&&e.dataset&&(t.dataset[r]=e.dataset[r])}else{let r=e?.getAttribute?.(n);N(t,n,r||``)}}function Qe(e){return O(e,`firstElementChild`)?e.firstElementChild:Array.from(e.children).find(e=>e.nodeType===1)}function L(e,...t){if(k(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)),Ke(r)}}function $e(e,...t){k(e,`replaceChildren`)?e.replaceChildren(...t):(e.childNodes=t,t.forEach(t=>{t.parentNode=e}),Ke(e))}function R(e,t){return k(t,`appendChild`)?e.appendChild(t):(e.childNodes.push(t),t.parentNode=e,Ke(e),t)}function z(e,t){return k(t,`removeChild`)?e.removeChild(t):($e(e,...Array.from(e.childNodes).filter(e=>e!==t)),t)}function B(e,t,n){return n?k(e,`insertBefore`)?e.insertBefore(t,n):(t.parentNode&&z(t.parentNode,t),L(n,t,n),t):R(e,t)}function V(e,t=0){return e?e.length<=t?e:`${e.slice(0,t-1)}…`:``}function H(e,t=0){return globalThis.DocumentFragment&&e instanceof DocumentFragment?Array.from(e.childNodes).map(e=>H(e,t)).join(``):V(e.outerHTML||e.nodeValue||String(e),t)}function U(e){return e.includes(`/`)?e.split(`/`).slice(0,-1).join(`/`):``}function et(e){return!e.includes(`://`)&&!e.startsWith(`/`)&&!e.startsWith(`#`)&&!e.startsWith(`data:`)}var tt=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 W;(function(n){n.resolveIncludes=async function(e,t){let n=e,r=n.tagName?.toLowerCase();if(![`include`,`link`].includes(r)||r===`link`&&A(n,`rel`)!==`subresource`)return;this.log(`include directive found in:
|
|
3
|
+
`,H(e,128)),this.log(`include params:`,t);let i=n.tagName.toLocaleLowerCase()===`link`?`href`:`src`,a=A(n,i);if(!a)throw Error(`"${i}" attribute missing from ${H(e,128)}.`);let o=[];r===`include`&&o.push(`src`),r===`link`&&o.push(`rel`,`href`);let s=t=>{let r=Qe(t);for(let e of Array.from(n.attributes))r&&!o.includes(e.name)&&Ze(n,r,e.name);L(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)}},n.rebaseRelativePaths=function(n,r){let i=n,a=i.tagName?.toLowerCase();if(!r?.dirpath)return;let o=A(i,`src`),s=A(i,`href`),c=j(i,`render`,`:`),l=o||s||c;if(!l||!et(l))return;let u=`${r.dirpath}/${l}`;this.log(`Rebasing relative path as:`,u),c?Xe(i,`render`,u,`:`):O(i,`attribs`)?N(i,o?`src`:`href`,u):a===`img`?i.src=u:a===`a`?e.setHref(i,u):a===`source`||a===`audio`||a===`video`||a===`track`||a===`input`?i.src=u:a===`area`?t.setHref(i,u):this.log(`Unable to rebase relative path for element:`,a)},n.registerCustomElements=function(e,t){let n=e,r=n.tagName?.toLowerCase(),i=(A(n,`is`)||A(n,`alt`))?.toLowerCase();if([`template`,`div`].includes(r)&&i){if(r===`div`&&A(n,`role`)!==`template`)return;if(!this._customElements.has(i)){this.log(`Registering custom element: ${i}\n`,H(n,128));let e=n.content||n,r=Array.from(D(e));for(let e=1;e<r.length;e++)W.rebaseRelativePaths.call(this,r[e],t);this._customElements.set(i,n),n?.parentNode&&z(n.parentNode,n)}}},n.resolveCustomElements=function(e,t){let n=e,r=n.tagName?.toLowerCase(),i=r;if(i===`div`&&(i=A(n,`role`)?.toLowerCase()||i),i&&this._customElements.has(i)){this.log(`Processing custom element: ${i}\n`,H(n,128));let t=this._customElements.get(i),a=(t.content||t).cloneNode(!0),o=Qe(a);if(o)for(let e of Array.from(n.attributes))(r!==`div`||e.name!==`role`)&&Ze(n,o,e.name);let s=new tt(D(a)).find(e=>e.tagName?.toLowerCase()===`slot`);s&&L(s,...n.childNodes),L(e,...a.childNodes)}},n.resolveTextNodeExpressions=function(e,t){let n=e.nodeValue||``;if(e.nodeType!==3||!n?.trim())return;this.log(`Processing node content value:
|
|
4
|
+
`,V(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} }}`,r==null?``:String(r))}e.nodeValue=t},{directive:`text`,element:e.parentElement??void 0,expression:i.join(`, `)})},n.resolveDataAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`data`,`:`);if(r){this.log(`:data attribute found in:
|
|
5
|
+
`,H(e,128)),I(n,`data`,`:`);let i;O(e,`renderer`)?(i=e.renderer,this.log(`Reusing existing subrenderer for node:`,H(e,64))):(i=this.subrenderer(),P(e,`renderer`,i),this.log(`Created and attached new subrenderer for node:`,H(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.set(e,t,!0))),i===this)return;for(let t of D(e,this._skipNodes))this._skipNodes.add(t);await i.mount(e,t)}},n.resolveClassAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`class`,`:`);if(r){this.log(`:class attribute found in:
|
|
6
|
+
`,H(e,128)),I(n,`class`,`:`);let t=A(n,`class`)||``;return this.effect(function(){let i=this.eval(r,{$elem:e}),a=(i?`${t} ${i}`:t).trim();N(n,`class`,a),We(a)},{directive:`class`,element:n,expression:r})}},n.resolveTextAttributes=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`text`,`:`);if(r){this.log(`:text attribute found in:
|
|
7
|
+
`,H(e,128)),I(n,`text`,`:`);let t=t=>this.textContent(e,t);return this.effect(function(){let n=this.eval(r,{$elem:e});t(n==null?``:String(n))},{directive:`:text`,element:n,expression:r})}},n.resolveHtmlAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`html`,`:`);if(r){this.log(`:html attribute found in:
|
|
8
|
+
`,H(e,128)),I(n,`html`,`:`);let i=null;return this.effect(function(){let a=this.eval(r,{$elem:e});return new Promise(e=>{(async()=>{i&&=(i.dispose(),null);let r=this.subrenderer();i=r;let o=await r.preprocessString(a,t);await r.renderNode(o),$e(n,o),Ue(n),r._store.set(`$rootNode`,n),e()})()})},{directive:`:html`,element:n,expression:r})}},n.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:
|
|
9
|
+
`,H(e,128)),I(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})))}},n.resolveForAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`for`,`:`)?.trim();if(r){this.log(`:for attribute found in:
|
|
10
|
+
`,H(e,128)),I(n,`for`,`:`);let i=j(n,`key`,`:`);i&&I(n,`key`,`:`);for(let t of D(e,this._skipNodes))this._skipNodes.add(t);let a=e.parentNode;if(!a)return;this.cloakElement(n);let o=this.createElement(`template`,e.ownerDocument);B(a,o,e),z(a,e),`content`in o?R(o.content,e):R(o,e),this.log(`:for template:
|
|
11
|
+
`,H(o,128));let s=r.split(` in `,2);if(s.length!==2)throw Error(`Invalid :for format: \`${r}\`. Expected "{key} in {expression}".`);let c=i?j(n,`data`,`:`):null,l=new Map,u=[],d=[],[f,p]=s;await this.effect(function(){let n=this.eval(p,{$elem:e});if(this.log(`:for list items:`,n),!Array.isArray(n)){console.error(`Expression did not yield a list: \`${p}\` => \`${n}\``);return}if(i){let r=new Set,s=new Map,u=[],d=o.nextSibling;for(let o=0;o<n.length;o++){let p=n[o],m=this.eval(i,{[f]:p,$index:o});r.has(m)&&console.warn(`:for duplicate key detected: ${m}. Using last item.`),r.add(m);let h,g,_=l.get(m);if(_){if(h=_.node,g=_.subrenderer,u.push(g.set(f,p,!0)),u.push(g.set(`$index`,o,!0)),c&&O(h,`renderer`)){let e=h.renderer,t=e.eval(c,{$elem:h});u.push(...Object.entries(t).map(([t,n])=>e.set(t,n,!0)))}h===d||h.nextSibling===d||B(a,h,d)}else{g=this.subrenderer(),g.set(f,p,!0),g.set(`$index`,o,!0);let n=e.cloneNode(!0);this.cloakElement(n),B(a,n,d),this._skipNodes.add(n),u.push(g.mount(n,t).then(()=>{this.uncloakElement(n)})),h=n,this.log(`Rendered list child:
|
|
12
|
+
`,H(n,128))}s.set(m,{node:h,subrenderer:g}),d=h.nextSibling}for(let[e,{node:t,subrenderer:n}]of l)r.has(e)||(n.dispose(),t.parentNode&&z(t.parentNode,t),this._skipNodes.delete(t));l.clear();for(let[e,t]of s)l.set(e,t);return Promise.all(u).then(()=>{})}else{d.splice(0,d.length).forEach(e=>{e.dispose()}),u.splice(0,u.length).forEach(e=>{e.parentNode&&z(e.parentNode,e),this._skipNodes.delete(e)});let r=o.nextSibling,i=[];for(let o=0;o<n.length;o++){let s=n[o],c=this.subrenderer();c.set(f,s,!0),c.set(`$index`,o,!0);let l=e.cloneNode(!0);this.cloakElement(l),B(a,l,r),u.push(l),d.push(c),this._skipNodes.add(l),i.push(c.mount(l,t).then(()=>{this.uncloakElement(l)})),this.log(`Rendered list child:
|
|
13
|
+
`,H(l,128))}return Promise.all(i).then(()=>{})}},{directive:`:for`,element:n,expression:r})}},n.resolveBindAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`bind`,`:`);if(r){this.log(`:bind attribute found in:
|
|
14
|
+
`,H(e,128));let t=A(n,`:bind:on`)?.split(`,`)||n.dataset?.bindOn?.split(`,`)||[`change`,`input`];I(n,`bind`,`:`),F(n,`:bind:on`),F(n,`data-bind-on`);let i=A(n,`type`)===`checkbox`?`checked`:`value`;!r.includes(`.`)&&!this.has(r)&&this.set(r,``);let a=this;this.effect(function(){let t=this.eval(r,{$elem:e});i===`checked`?n.checked=!!t:(n.value=t,n.value!==t&&t!=null&&a._pendingValueRetries.push(()=>{n.value=t}))},{directive:`:bind`,element:n,expression:r});let o=`${r} = $elem.${i}`;for(let n of t)e.addEventListener(n,()=>this.eval(o,{$elem:e}))}},n.resolveIfAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`if`,`:`);if(r){this.log(`:if attribute found in:
|
|
15
|
+
`,H(e,128)),I(n,`if`,`:`);let t=this.createComment(` :if placeholder `,e.ownerDocument);this.effect(function(){this.eval(r,{$elem:e})?!n.parentNode&&t.parentNode&&(L(t,n),Ue(n)):n.parentNode&&L(n,t)},{directive:`:if`,element:n,expression:r})}},n.resolveShowAttribute=function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`show`,`:`);if(r){this.log(`:show attribute found in:
|
|
16
|
+
`,H(e,128)),I(n,`show`,`:`);let t=n.style?.display===`none`?``:n.style?.display??A(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`:N(n,`style`,`display: ${i?t:`none`};`)},{directive:`:show`,element:n,expression:r})}},n.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:
|
|
17
|
+
`,H(e,128)),F(n,t.name);let a=(t.name.split(r,2).at(-1)||``).split(i,2).at(-1)??``;this.effect(function(){let r=this.eval(t.value,{$elem:e});M(n,a,r),a===`class`&&We(String(r??``))},{directive:`:attr:${a}`,element:n,expression:t.value})}}},n.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:
|
|
18
|
+
`,H(e,128)),F(n,t.name);let a=Je((t.name.split(r,2).at(-1)||``).split(i,2).at(-1)??``);this.effect(function(){P(n,a,this.eval(t.value,{$elem:e}))},{directive:`:prop:${a}`,element:n,expression:t.value})}}},n.stripTypes=(e,t)=>{let n=e;A(n,`:types`)&&F(n,`:types`),A(n,`data-types`)&&F(n,`data-types`)},n.resolveRenderAttribute=async function(e,t){if(this._skipNodes.has(e))return;let n=e,r=j(n,`render`,`:`);if(!r)return;this.log(`:render attribute found: ${r}`),I(n,`render`,`:`);let i;O(e,`renderer`)?(i=e.renderer,this.log(`Reusing existing subrenderer for :render:`,H(e,64))):(i=this.subrenderer(),P(n,`renderer`,i)),await i.mount(e,t);for(let t of D(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)}}})(W||={});function nt(){return new URL(globalThis.window?.location?.href||`http://localhost/`)}function rt(e){return e.substring(2)}function it(e){return`\$\$${e}`}function at(e){return e.keys().filter(e=>e.startsWith(`$$`))}async function ot(e,t){for(let[n,r]of t.searchParams.entries()){let t=it(n);e.get(t)!==r&&await e.set(t,r)}}function st(e,t,n){let r=rt(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 ct(e,t){let n=!1;for(let r of at(t))st(e,r,t.get(r))&&(n=!0);n&&globalThis.window?.history?.replaceState({},``,e.toString())}function lt(e){return async()=>{let t=nt(),n=new Set;for(let[r,i]of t.searchParams.entries()){let t=it(r);n.add(t),e.get(t)!==i&&e.set(t,i)}let r=at(e);for(let t of r)n.has(t)||e.del(t)}}async function ut(e){let t=nt();await ot(e,t),ct(t,e),e.addKeyHandler(/^\$\$/,(e,t)=>{let n=nt();st(n,e,t)&&globalThis.window?.history?.replaceState({},``,n.toString())}),globalThis.window?.addEventListener(`popstate`,lt(e))}
|
|
19
|
+
/*
|
|
20
|
+
* @license
|
|
21
|
+
* Portions Copyright (c) 2013, the Dart project authors.
|
|
22
|
+
*/
|
|
23
|
+
const dt=new Set([`this`,`typeof`]),ft=new Set([`in`]),pt=new Set([`+`,`-`,`!`,`typeof`]),mt=new Set([`=`,`+`,`-`,`*`,`/`,`%`,`^`,`==`,`!=`,`>`,`<`,`>=`,`<=`,`||`,`&&`,`??`,`&`,`===`,`!==`,`|`,`in`]),ht={"!":0,":":0,",":0,")":0,"]":0,"}":0,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,in:10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"?.":13,"{":13},gt={"+":(e,t)=>e+t,"-":(e,t)=>e-t,"*":(e,t)=>e*t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,"||":(e,t)=>e||t,"&&":(e,t)=>e&&t,"??":(e,t)=>e??t,"|":(e,t)=>t(e),in:(e,t)=>e in t},_t={"+":e=>e,"-":e=>-e,"!":e=>!e,typeof:e=>typeof e};var vt=class{empty(){return{type:`Empty`,evaluate(e){return e},getIds(e){return e}}}literal(e){return{type:`Literal`,value:e,evaluate(e){return this.value},getIds(e){return e}}}id(e){return{type:`ID`,value:e,evaluate(e){return this.value===`this`?e:e?.[this.value]},getIds(e){return e.push(this.value),e}}}unary(e,t){let n=_t[e];return{type:`Unary`,operator:e,child:t,evaluate(e){return n(this.child.evaluate(e))},getIds(e){return this.child.getIds(e)}}}binary(e,t,n){let r=gt[t];return{type:`Binary`,operator:t,left:e,right:n,evaluate(e){if(this.operator===`=`){if(this.left.type!==`ID`&&this.left.type!==`Getter`&&this.left.type!==`Index`)throw Error(`Invalid assignment target: ${this.left}`);let t=this.right.evaluate(e),n,r;return this.left.type===`Getter`?(n=this.left.receiver.evaluate(e),r=this.left.name):this.left.type===`Index`?(n=this.left.receiver.evaluate(e),r=String(this.left.argument.evaluate(e))):this.left.type===`ID`&&(n=e,r=this.left.value),n===void 0?void 0:(n[r]=t,t)}return r(this.left.evaluate(e),this.right.evaluate(e))},getIds(e){return this.left.getIds(e),this.right.getIds(e),e}}}getter(e,t,n){return{type:`Getter`,receiver:e,name:t,optional:n,evaluate(e){let t=this.receiver.evaluate(e);if(!(this.optional&&t==null))return t?.[this.name]},getIds(e){return this.receiver.getIds(e),e}}}invoke(e,t,n,r){if(t!=null&&typeof t!=`string`)throw Error(`method not a string`);return{type:`Invoke`,receiver:e,method:t,arguments:n,optional:r,evaluate(e){let t=this.receiver.evaluate(e);if(this.optional&&t==null)return;let n=this.method?t:e?.this??e,r=this.method?t?.[this.method]:t,i=this.arguments??[],a=[];for(let t of i)if(t?.type===`SpreadElement`){let n=t.evaluate(e);n&&typeof n[Symbol.iterator]==`function`&&a.push(...n)}else a.push(t?.evaluate(e));return r?.apply?.(n,a)},getIds(e){return this.receiver.getIds(e),this.arguments?.forEach(t=>{t?.getIds(e)}),e}}}paren(e){return e}index(e,t,n){return{type:`Index`,receiver:e,argument:t,optional:n,evaluate(e){let t=this.receiver.evaluate(e);if(this.optional&&t==null)return;let n=this.argument.evaluate(e);return t?.[n]},getIds(e){return this.receiver.getIds(e),e}}}ternary(e,t,n){return{type:`Ternary`,condition:e,trueExpr:t,falseExpr:n,evaluate(e){return this.condition.evaluate(e)?this.trueExpr.evaluate(e):this.falseExpr.evaluate(e)},getIds(e){return this.condition.getIds(e),this.trueExpr.getIds(e),this.falseExpr.getIds(e),e}}}map(e){return{type:`Map`,properties:e,evaluate(t){let n={};if(e&&this.properties)for(let e of this.properties)e.type===`SpreadProperty`?Object.assign(n,e.evaluate(t)):n[e.key]=e.value.evaluate(t);return n},getIds(t){if(e&&this.properties)for(let e of this.properties)e.type===`SpreadProperty`?e.expression.getIds(t):e.value.getIds(t);return t}}}property(e,t){return{type:`Property`,key:e,value:t,evaluate(e){return this.value.evaluate(e)},getIds(e){return this.value.getIds(e)}}}list(e){return{type:`List`,items:e,evaluate(e){if(!this.items)return[];let t=[];for(let n of this.items)if(n?.type===`SpreadElement`){let r=n.evaluate(e);r&&typeof r[Symbol.iterator]==`function`&&t.push(...r)}else t.push(n?.evaluate(e));return t},getIds(e){return this.items?.forEach(t=>{t?.getIds(e)}),e}}}arrowFunction(e,t){return{type:`ArrowFunction`,params:e,body:t,evaluate(e){let t=this.params,n=this.body;return function(...r){let i=Object.fromEntries(t.map((e,t)=>[e,r[t]])),a=this??e??{},o=new Proxy(a,{set(e,t,n){return Object.hasOwn(i,t)&&(i[t]=n),e[t]=n,n},get(e,t){return Object.hasOwn(i,t)?i[t]:e[t]}});return n.evaluate(o)}},getIds(e){return this.body.getIds(e).filter(e=>!this.params.includes(e))}}}spreadProperty(e){return{type:`SpreadProperty`,expression:e,evaluate(e){return this.expression.evaluate(e)},getIds(e){return this.expression.getIds(e)}}}spreadElement(e){return{type:`SpreadElement`,expression:e,evaluate(e){return this.expression.evaluate(e)},getIds(e){return this.expression.getIds(e)}}}};
|
|
24
|
+
/*
|
|
25
|
+
* @license
|
|
26
|
+
* Portions Copyright (c) 2013, the Dart project authors.
|
|
27
|
+
*/
|
|
28
|
+
const yt=new Set([`==`,`!=`,`<=`,`>=`,`||`,`&&`,`??`,`?.`]),bt=new Set([`===`,`!==`]);let G=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}({});const K=(e,t,n=0)=>({kind:e,value:t,precedence:n}),xt=e=>e===9||e===10||e===13||e===32,St=e=>{if(e===95||e===36)return!0;let t=e&-33;return 65<=t&&t<=90},Ct=e=>St(e)||q(e),wt=e=>dt.has(e),Tt=e=>e===34||e===39,q=e=>48<=e&&e<=57,Et=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,Dt=e=>e===40||e===41||e===91||e===93||e===123||e===125,Ot=e=>e.replace(/\\(.)/g,(e,t)=>{switch(t){case`n`:return`
|
|
29
|
+
`;case`r`:return`\r`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;default:return t}});var kt=class{_input;_index=-1;_tokenStart=0;_next;constructor(e){this._input=e,this._advance()}nextToken(){for(;xt(this._next??-1);)this._advance(!0);if(Tt(this._next??-1))return this._tokenizeString();if(St(this._next??-1))return this._tokenizeIdentOrKeyword();if(q(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(Et(this._next??-1))return this._tokenizeOperator();if(Dt(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=K(G.STRING,Ot(this._getValue()));return this._advance(),t}_tokenizeIdentOrKeyword(){do this._advance();while(Ct(this._next??-1));let e=this._getValue();return K(wt(e)?G.KEYWORD:ft.has(e)?G.OPERATOR:G.IDENTIFIER,e,ht[e]??0)}_tokenizeNumber(){do this._advance();while(q(this._next??-1));return this._next===46?this._tokenizeDot():K(G.INTEGER,this._getValue())}_tokenizeDot(){if(this._advance(),q(this._next??-1))return this._tokenizeFraction();if(this._next===46){if(this._advance(),this._next===46)return this._advance(),this._clearValue(),K(G.SPREAD,`...`);throw Error(`Unexpected token ..`)}return this._clearValue(),K(G.DOT,`.`,13)}_tokenizeComma(){return this._advance(!0),K(G.COMMA,`,`)}_tokenizeColon(){return this._advance(!0),K(G.COLON,`:`)}_tokenizeFraction(){do this._advance();while(q(this._next??-1));return K(G.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let e=this._getValue(2);if(bt.has(e))this._advance(),this._advance();else{if(e=this._getValue(1),e===`=>`)return this._advance(),K(G.ARROW,e);yt.has(e)&&this._advance()}return e=this._getValue(),e===`?.`?K(G.OPTIONAL_DOT,e,13):K(G.OPERATOR,e,ht[e])}_tokenizeGrouper(){let e=String.fromCharCode(this._next??0),t=K(G.GROUPER,e,ht[e]);return this._advance(!0),t}};const At=(e,t)=>new jt(e,t).parse();var jt=class{_kind;_tokenizer;_ast;_token;_value;constructor(e,t){this._tokenizer=new kt(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(G.GROUPER,`(`)){let t=this._parseArguments();e=this._ast.invoke(e,void 0,t)}else if(this._matches(G.GROUPER,`[`)){let t=this._parseIndex();e=this._ast.index(e,t)}else if(this._matches(G.DOT)||this._matches(G.OPTIONAL_DOT)){let t=this._kind===G.OPTIONAL_DOT;if(this._advance(),t&&this._matches(G.GROUPER,`[`)){let t=this._parseIndex();e=this._ast.index(e,t,!0)}else if(t&&this._matches(G.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(G.KEYWORD))break;else if(this._matches(G.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(!mt.has(t.value))throw Error(`unknown operator: ${t.value}`);this._advance();let n=this._parseUnary();for(;(this._kind===G.OPERATOR||this._kind===G.DOT||this._kind===G.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(G.KEYWORD,`typeof`)){this._advance();let e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(`typeof`,e)}if(this._matches(G.OPERATOR)){let e=this._value;if(this._advance(),e===`+`||e===`-`){if(this._matches(G.INTEGER))return this._parseInteger(e);if(this._matches(G.DECIMAL))return this._parseDecimal(e)}if(!e||!pt.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(G.OPERATOR,`?`);let t=this._parseExpression();this._advance(G.COLON);let n=this._parseExpression();return this._ast.ternary(e,t,n)}_parsePrimary(){switch(this._kind){case G.KEYWORD:{let e=this._value??``;if(e===`this`)return this._advance(),this._ast.id(e);throw dt.has(e)?Error(`unexpected keyword: ${e}`):Error(`unrecognized keyword: ${e}`)}case G.IDENTIFIER:return this._parseInvokeOrIdentifier();case G.STRING:return this._parseString();case G.INTEGER:return this._parseInteger();case G.DECIMAL:return this._parseDecimal();case G.GROUPER:return this._value===`(`?this._parseParenOrFunction():this._value===`{`?this._parseMap():this._value===`[`?this._parseList():void 0;case G.COLON:throw Error(`unexpected token ":"`);default:return}}_parseList(){let e=[];do{if(this._advance(),this._matches(G.GROUPER,`]`))break;if(this._matches(G.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else e.push(this._parseExpression())}while(this._matches(G.COMMA));return this._advance(G.GROUPER,`]`),this._ast.list(e)}_parseMap(){let e=[];do{if(this._advance(),this._matches(G.GROUPER,`}`))break;if(this._matches(G.SPREAD)){this._advance();let t=this._parseExpression();t&&e.push(this._ast.spreadProperty(t))}else{let t=this._value??``;if((this._matches(G.STRING)||this._matches(G.IDENTIFIER))&&this._advance(),this._matches(G.COLON)){this._advance(G.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(G.COMMA));return this._advance(G.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(G.IDENTIFIER))throw Error(`expected identifier: ${this._value}`);let e=this._value;return this._advance(),this._ast.id(e??``)}_parseArguments(){if(!this._matches(G.GROUPER,`(`))return;let e=[];do{if(this._advance(),this._matches(G.GROUPER,`)`))break;if(this._matches(G.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(G.COMMA));return this._advance(G.GROUPER,`)`),e}_parseIndex(){this._advance();let e=this._parseExpression();return this._advance(G.GROUPER,`]`),e}_parseParenOrFunction(){let e=this._parseArguments();if(this._matches(G.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}};const J=Symbol(`__computed__`);function Mt(e){return typeof e==`object`&&!!e&&J in e&&e[J]===!0}const Nt=new vt,Pt=`__is_proxy__`;function Ft(e){return e instanceof Ht||e[Pt]===!0}const Y=new WeakMap;function X(e){return typeof e==`object`&&!!e}function Z(e){return X(e)?Y.get(e):void 0}function It(e){return e.subscribers.size===0&&e.holders.size===0}function Lt(e,t){if(!t.has(e)){t.add(e);for(let n of Array.from(e.holders))It(n)?e.holders.delete(n):Lt(n,t);for(let t of Array.from(e.subscribers))t()}}function Rt(e){Lt(e,new Set)}function zt(e,t){Z(e)?.subscribers.add(t)}function Bt(e,t){Z(e)?.subscribers.delete(t)}function Q(e,t){let n=e?._store;if(n?.has(t))return n.get(t);if(n?.has(`$parent`))return Q(n.get(`$parent`),t)}function $(e,t){let n=e?._store;return n?.has(t)?e:n?.has(`$parent`)?$(n.get(`$parent`),t):null}function Vt(e,t,n){let r=$(e,t);r?r._store.set(t,n):e._store.set(t,n)}var Ht=class e{evalkeys=[`$elem`,`$event`];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_store=new Map;_lock=Promise.resolve();_pending=new Map;_executing=new Set;_dirty=new Set;_children=new Set;_mutationCallbacks=new Map;_disposed=!1;_computedDepth=0;constructor(e){for(let[t,n]of Object.entries(e||{}))this.set(t,n)}wrapObject(e){if(e==null||Ft(e)||Object.isFrozen(e)||Object.isSealed(e))return e;let t=Object.getPrototypeOf(e);if(!(t===Object.prototype||t===null)&&!Array.isArray(e))return e;let n=Y.get(e)??{subscribers:new Set,holders:new Set};Y.set(e,n);let r=()=>Rt(n),i=new Proxy(e,{deleteProperty:(e,t)=>typeof t==`string`&&t in e?(delete e[t],r(),!0):!1,set:(e,t,i,a)=>{if(Reflect.get(e,t,a)===i)return!0;X(i)&&(i=this.wrapObject(i),Z(i)?.holders.add(n));let o=Reflect.set(e,t,i,a);return r(),o},get:(e,t,r)=>{if(t===Pt)return!0;let i=Reflect.get(e,t,r);if(!X(i))return i;let a=this.wrapObject(i);return a!==i&&Reflect.set(e,t,a,r),Z(a)?.holders.add(n),a}});return Y.set(i,n),i}watch(e,t){let n=$(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),Array.from(n.observers.get(e)||[]).some(e=>e.observer===t)||n.observers.get(e)?.add({observer:t,store:this})}addKeyHandler(e,t){this.keyHandlers.has(e)||this.keyHandlers.set(e,new Set),this.keyHandlers.get(e)?.add(t)}tagObserversForComputed(e,t){for(let n of this.observers.values())for(let r of n)r.observer===e&&r.store===this&&(r.computedKey=t);let n=this._store.get(`$parent`);for(;n;){for(let r of n.observers.values())for(let n of r)n.observer===e&&n.store===this&&(n.computedKey=t);n=n._store.get(`$parent`)}}markDependentComputedsDirty(e){let t=$(this,e)?.observers.get(e);if(t){for(let e of t)if(e.computedKey){let t=e.store._store.get(e.computedKey);Mt(t)&&!t.dirty&&(t.dirty=!0,e.store.markDependentComputedsDirty(e.computedKey))}}}runObservers(e){return e.filter(e=>!e.store._disposed).map(e=>e.observer.call(e.store.proxify(e.observer)))}async notify(e,t=10){let n=$(this,e),r=Array.from(n?.observers.get(e)||[]);if(this._executing.has(e)){this._dirty.add(e);return}let i=this._pending.get(e);if(i){for(let e of r)i.entries.includes(e)||i.entries.push(e);return i.done}let a=new Promise(i=>{setTimeout(async()=>{this._pending.delete(e);try{this._executing.add(e);let t=this.runObservers(r);this._dirty.delete(e),await Promise.all(t)}finally{this._executing.delete(e),this._dirty.delete(e)&&this.notify(e,t)}let a=n?.observers.get(e);if(a)for(let e of r){let t=e.store._store.has(`$parent`),n=e.store._store.get(`$rootNode`);t&&n&&!n.isConnected&&!n.parentNode&&a.delete(e)}i()},t)});return this._pending.set(e,{done:a,entries:r}),a}get(e,t){t&&this.watch(e,t);let n=Q(this,e);if(Mt(n)){if(n.dirty){this._computedDepth++;try{let t=this.proxify(n.effectFn);n.value=n.fn.call(t,t),n.dirty=!1,n.effectFn&&this.tagObserversForComputed(n.effectFn,e),this.markDependentComputedsDirty(e)}finally{this._computedDepth--}}return n.value}return n}setupComputed(e,t){let n=this,r={[J]:!0,fn:t,dirty:!0};this._store.set(e,r);let i=function(){n._computedDepth++;try{let i=t.call(this,this);if(r.value!==i){r.value=i;let t=$(n,e),a=Array.from(t?.observers.get(e)||[]);for(let e of a)e.observer.call(e.store.proxify(e.observer))}r.dirty=!1}finally{n._computedDepth--}};r.effectFn=i,this.effect(i,{directive:`computed`,id:e}),this.tagObserversForComputed(i,e)}mutationCallback(e){let t=this._mutationCallbacks.get(e);if(t)return t;let n=()=>{this.markDependentComputedsDirty(e),this.notify(e)};return this._mutationCallbacks.set(e,n),n}async set(e,t,n){if(Mt(t)){this.setupComputed(e,t.fn);return}if(this._store.has(e)&&t===this._store.get(e))return;let r=Q(this,e);if(X(t)&&(t=this.wrapObject(t)),Z(t)||X(r)){let n=this.mutationCallback(e);Bt(r,n),zt(t,n)}if(n?this._store.set(e,t):Vt(this,e,t),!n){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))}this.markDependentComputedsDirty(e),await this.notify(e)}async del(e){await this.set(e,null),this._store.delete(e),this.observers.delete(e),this._mutationCallbacks.delete(e)}disposeSubtree(e){if(!e.has(this)){e.add(this),this._disposed=!0;for(let t of this._children)t.disposeSubtree(e);this._children.clear();for(let[e,t]of this._mutationCallbacks)Bt(Q(this,e),t);this._mutationCallbacks.clear();for(let e of this.observers.values())e.clear();this.observers.clear()}}dispose(){this._store.get(`$parent`)?._children.delete(this);let e=new Set;this.disposeSubtree(e);let t=this._store.get(`$parent`);for(;t;){for(let n of t.observers.values())for(let t of n)e.has(t.store)&&n.delete(t);t=t._store.get(`$parent`)}}keys(){return Array.from(this._store.keys())}has(e){return this._store.has(e)}getObserverStats(){let e={},t=0;for(let[n,r]of this.observers)e[n]=r.size,t+=r.size;return{totalKeys:this.observers.size,totalObservers:t,byKey:e}}effect(e,t){return e.call(this.proxify(e))}$computed(e){return{[J]:!0,fn:e,dirty:!0}}proxify(t){let n=Array.from(this._store.entries()).map(([e])=>e),r=Object.fromEntries(n.map(e=>[e,null])),i=(e,t,n)=>typeof e==`function`&&t!==`constructor`?(...t)=>e.call(n,...t):e;return new Proxy(r,{has:(e,t)=>typeof t==`string`&&($(this,t)||Reflect.has(this,t))?!0:Reflect.has(r,t),get:(n,r,a)=>{if(typeof r==`string`){if($(this,r)){let n=this.get(r,t);return t&&n instanceof e?n.proxify(t):i(n,r,a)}if(t&&r!==Pt&&!Reflect.has(this,r))return this.set(r,void 0),this.get(r,t)}return r===`$`?this.proxify(t):i(Reflect.get(this,r,a),r,a)},set:(e,t,n,r)=>(typeof t!=`string`||t in this?Reflect.set(this,t,n,r):(this._computedDepth>0&&console.warn(`[mancha] Computed wrote to '${t}'. Computeds should be pure; use $effect for side effects.`),this.set(t,n)),!0)})}get $(){return this.proxify()}makeEvalFunction(e){return(t,n)=>{let r=At(e,Nt),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.$;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}`,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}};const Ut=`data-m-cloak`,Wt=`mancha-runtime-cloak`,Gt=o`[data-m-cloak]{display:none!important}`;var Kt=class e extends Ht{_debugLevel=`off`;dirpath=``;_perfData={lifecycle:{},effects:new Map};static DEBUG_LEVELS=[`off`,`lifecycle`,`effects`,`verbose`];_skipNodes=new Set;_customElements=new Map;_pendingValueRetries=[];cloakElement(e){let t=e.ownerDocument??globalThis.document;if(t?.head&&!t.getElementById(Wt)){let e=t.createElement(`style`);e.id=Wt,r.setTextContent(e,Gt),t.head.appendChild(e)}M(e,Ut,``)}uncloakElement(e){F(e,Ut)}debug(e){return typeof e==`boolean`?this._debugLevel=e?`lifecycle`:`off`:this._debugLevel=e,this}get debugging(){return this._debugLevel!==`off`}shouldLog(t){return e.DEBUG_LEVELS.indexOf(this._debugLevel)>=e.DEBUG_LEVELS.indexOf(t)}clearPerformanceReport(){this._perfData={lifecycle:{},effects:new Map}}getNodePath(e){let t=[],n=e;for(;n?.tagName;){let e=n.tagName.toLowerCase(),r=n.parentElement;if(r){let i=Array.from(r.children).filter(t=>t.tagName.toLowerCase()===e);if(i.length>1){let r=i.indexOf(n)+1;t.unshift(`${e}:nth-child(${r})`)}else t.unshift(e)}else t.unshift(e);n=r}return t.join(`>`)}buildObserverId(e){let t=e?.directive??`unknown`,n=V(e?.expression??``,32),r=e?.element,i=e?.id??(r?r.dataset?.perfid??r.id??r.dataset?.testid??this.getNodePath(r):`unknown`);return n?`${t}:${i}:${n}`:`${t}:${i}`}recordObserverExecution(e,t){let n=this.buildObserverId(e),r=this._perfData.effects.get(n)??{count:0,totalTime:0};r.count++,r.totalTime+=t,this._perfData.effects.set(n,r)}getPerformanceReport(){let e=Array.from(this._perfData.effects.entries()),t={};for(let[n,r]of e){let e=n.split(`:`)[0];t[e]||(t[e]={count:0,totalTime:0}),t[e].count+=r.count,t[e].totalTime+=r.totalTime}let n=e.map(([e,t])=>({id:e,executionCount:t.count,totalTime:t.totalTime,avgTime:t.count>0?t.totalTime/t.count:0})).sort((e,t)=>t.totalTime-e.totalTime).slice(0,10);return{lifecycle:this._perfData.lifecycle,effects:{total:e.length,byDirective:t,slowest:n},observers:this.getObserverStats()}}effect(e,t){let n=this;function r(){if(!n.shouldLog(`lifecycle`))return e.call(this);let r=performance.now(),i=e.call(this),a=performance.now()-r;return t&&n.recordObserverExecution(t,a),a>16&&console.warn(`[mancha] Slow observer (${a.toFixed(1)}ms):`,n.buildObserverId(t)),n.shouldLog(`effects`)&&console.debug(`[mancha] Observer (${a.toFixed(2)}ms):`,n.buildObserverId(t)),i}return super.effect(r,t)}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:
|
|
30
|
+
`,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:U(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:U(e),rootDocument:t?.rootDocument??!e.endsWith(`.tpl.html`)})}subrenderer(){let e=new this.constructor().debug(this.debugging);return e._store.set(`$parent`,this),this._disposed||this._children.add(e),e._store.set(`$rootRenderer`,this.get(`$rootRenderer`)??this),e._customElements=this._customElements,e}log(...e){this.shouldLog(`verbose`)&&console.debug(...e)}async preprocessNode(e,t){let n=this.shouldLog(`lifecycle`)?performance.now():0;t={dirpath:this.dirpath,maxdepth:10,...t};let r=new tt(D(e,this._skipNodes)).map(async e=>{this.log(`Preprocessing node:
|
|
31
|
+
`,H(e,128)),await W.resolveIncludes.call(this,e,t),await W.rebaseRelativePaths.call(this,e,t),await W.registerCustomElements.call(this,e,t),await W.resolveCustomElements.call(this,e,t)});return await Promise.all(r.generator()),n&&(this._perfData.lifecycle.preprocessTime=(this._perfData.lifecycle.preprocessTime??0)+(performance.now()-n)),e}async renderNode(e,t){let n=this.shouldLog(`lifecycle`)?performance.now():0;for(let n of D(e,this._skipNodes))this.log(`Rendering node:
|
|
32
|
+
`,H(n,128)),await W.resolveForAttribute.call(this,n,t),await W.resolveRenderAttribute.call(this,n,t),await W.resolveDataAttribute.call(this,n,t),await W.resolveTextAttributes.call(this,n,t),await W.resolveHtmlAttribute.call(this,n,t),await W.resolveIfAttribute.call(this,n,t),await W.resolveShowAttribute.call(this,n,t),await W.resolveClassAttribute.call(this,n,t),await W.resolveBindAttribute.call(this,n,t),await W.resolveEventAttributes.call(this,n,t),await W.resolveTextNodeExpressions.call(this,n,t),await W.resolveCustomAttribute.call(this,n,t),await W.resolveCustomProperty.call(this,n,t),await W.stripTypes.call(this,n,t);for(let e of this._pendingValueRetries.splice(0))e();return n&&(this._perfData.lifecycle.renderTime=(this._perfData.lifecycle.renderTime??0)+(performance.now()-n)),e}async mount(e,t){let n=this.shouldLog(`lifecycle`)?performance.now():0;n&&this.clearPerformanceReport(),t={...t,rootNode:e},P(e,`renderer`,this),this._store.set(`$rootNode`,e),this.has(`$rootRenderer`)||this._store.set(`$rootRenderer`,this),this.get(`$rootRenderer`)===this&&await ut(this),await this.preprocessNode(e,t),await this.renderNode(e,t),Ue(e),n&&(this._perfData.lifecycle.mountTime=performance.now()-n)}};function qt(){return i([o`*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}`,o`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}`,o`body{margin:0;line-height:inherit}`,o`hr{height:0;color:inherit;border-top-width:1px}`,o`abbr:where([title]){text-decoration:underline dotted}`,o`b,strong{font-weight:bolder}`,o`code,kbd,samp,pre{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:1em}`,o`small{font-size:80%}`,o`sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}`,o`sub{bottom:-0.25em}`,o`sup{top:-0.5em}`,o`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}`,o`button,select{text-transform:none}`,o`button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;cursor:pointer}`,o`:-moz-focusring{outline:auto}`,o`:-moz-ui-invalid{box-shadow:none}`,o`progress{vertical-align:baseline}`,o`::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}`,o`[type='search']{-webkit-appearance:textfield;outline-offset:-2px}`,o`::-webkit-search-decoration{-webkit-appearance:none}`,o`::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}`,o`summary{display:list-item}`,o`blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}`,o`fieldset{margin:0;padding:0}`,o`legend{padding:0}`,o`ol,ul,menu{list-style:none;margin:0;padding:0}`,o`textarea{resize:vertical}`,o`::placeholder{opacity:1;color:#9ca3af}`,o`button,[role="button"]{cursor:pointer}`,o`:disabled{cursor:default;pointer-events:none;opacity:0.75}`,o`img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}`,o`img,video{max-width:100%;height:auto}`,o`[hidden]{display:none}`,o`dialog{padding:0}`,o`dialog::backdrop{background:rgba(0,0,0,0.5)}`])}function Jt(){return i([o`html{`,o`max-width: 70ch;`,o`padding: 2em 1em;`,o`margin: auto;`,o`line-height: 1.75;`,o`font-size: 1.25em;`,o`font-family: sans-serif;`,o`}`,o`h1,h2,h3,h4,h5,h6{`,o`margin: 1em 0 0.5em;`,o`}`,o`p,ul,ol{`,o`margin-bottom: 1em;`,o`color: #1d1d1d;`,o`}`])}var Yt=class extends Kt{impl=`browser`;dirpath=U(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 Xt=new Yt;function Zt(e){for(let t of e){t=t.trim();let e=document.createElement(`style`);switch(t){case`minimal`:r.setTextContent(e,Jt());break;case`basic`:case`custom`:continue;case`utils`:{r.setTextContent(e,qt()),e.setAttribute(`data-mancha`,`basic`),globalThis.document.head.appendChild(e);let t=document.createElement(`style`);t.textContent=we(),t.setAttribute(`data-mancha`,`utils`),globalThis.document.head.appendChild(t),Ve(document);continue}default:console.error(`Unknown style name: "${t}"`);continue}globalThis.document.head.appendChild(e)}}const Qt=`mancha-cloak`;function $t(e,t){let n=`${e.join(`, `)} { opacity: 0 !important; ${t>0?`transition: opacity ${t}ms ease-in-out !important;`:``} }`,r=document.getElementById(Qt);r||(r=document.createElement(`style`),r.id=Qt,document.head.appendChild(r)),r.textContent=n}function en(e){let t=!1;return async()=>{if(t)return;t=!0;let n=document.getElementById(Qt);if(n){if(e!==!1){let t=n.sheet;t&&t.cssRules.length>0&&t.cssRules[0].style.setProperty(`opacity`,`1`,`important`),await new Promise(t=>setTimeout(t,e))}typeof globalThis.requestAnimationFrame==`function`&&(await new Promise(e=>globalThis.requestAnimationFrame(e)),await new Promise(e=>globalThis.requestAnimationFrame(e))),n.remove()}}}async function tn(e={}){let t;document.documentElement.classList.add(`mancha-loading`);let n=e.cloak?e.cloak===!0?{}:e.cloak:void 0;if(n){let r=e.target?Array.isArray(e.target)?e.target:[e.target]:[`body`],i=n.selector&&(Array.isArray(n.selector)||typeof n.selector==`string`)?Array.isArray(n.selector)?n.selector:[n.selector]:r,a=n.duration??0;$t(i,a),t=en(a>0?a:!1)}else t=en(!1);document.readyState===`loading`&&await new Promise(e=>{window.addEventListener(`DOMContentLoaded`,()=>e(),{once:!0})});let r=e.renderer??new Yt;if(e.css&&e.css.length>0&&Zt(e.css),e.debug&&r.debug(!0),e.state)for(let[t,n]of Object.entries(e.state))await r.set(t,n);try{if(e.callback)await e.callback(r);else if(e.target){let t=Array.isArray(e.target)?e.target:[e.target];for(let n of t){let t=globalThis.document.querySelector(n);t?await r.mount(t,{cache:e.cache}):console.error(`Target element not found: "${n}"`)}}}finally{document.documentElement.classList.remove(`mancha-loading`),t&&await t()}return r}export{Kt as IRenderer,Xt as Mancha,Yt as Renderer,Ge as _resetCustomCssForTesting,qt as basicCssRules,tn as initMancha,Zt as injectCss,Jt as minimalCssRules,Ve as scanAndInject,we as utilsCssRules};
|
package/dist/css_custom.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare function injectCustomClass(className: string, variant?: {
|
|
|
17
17
|
}): boolean;
|
|
18
18
|
/** Process a class string, inject CSS for any custom values. */
|
|
19
19
|
export declare function processClassString(classString: string): void;
|
|
20
|
-
/** Scan a DOM tree and inject CSS for all custom values found. */
|
|
20
|
+
/** Scan a DOM tree and inject CSS for all custom values found. Defaults to the whole document. */
|
|
21
21
|
export declare function scanAndInject(root?: Element | Document | DocumentFragment): void;
|
|
22
22
|
/**
|
|
23
23
|
* Render hook: scan a tree rendered by mount() for on-demand rules.
|
package/dist/css_custom.js
CHANGED
|
@@ -60,7 +60,8 @@ let styleSheet = null;
|
|
|
60
60
|
function findRuleDeclarations(className) {
|
|
61
61
|
if (typeof document === "undefined")
|
|
62
62
|
return null;
|
|
63
|
-
|
|
63
|
+
// selectorText is serialized escaped (e.g. ".w-50\%"), so escape before comparing.
|
|
64
|
+
const targetSelector = `.${escapeSelector(className)}`;
|
|
64
65
|
for (const sheet of document.styleSheets) {
|
|
65
66
|
try {
|
|
66
67
|
for (const rule of sheet.cssRules) {
|
|
@@ -83,7 +84,13 @@ export function isSupported() {
|
|
|
83
84
|
}
|
|
84
85
|
/** Escape CSS selector special characters. */
|
|
85
86
|
function escapeSelector(str) {
|
|
86
|
-
|
|
87
|
+
// A consumer that installs a fuller set of DOM globals can make isSupported()
|
|
88
|
+
// true while leaving CSS undefined. The regex fallback is approximate, but it
|
|
89
|
+
// keeps those environments working.
|
|
90
|
+
const css = globalThis.CSS;
|
|
91
|
+
if (typeof css?.escape === "function")
|
|
92
|
+
return css.escape(str);
|
|
93
|
+
return str.replace(/[[\]#.:>+~()'"/%,!]/g, "\\$&");
|
|
87
94
|
}
|
|
88
95
|
/** Get or create the stylesheet. */
|
|
89
96
|
function getStyleSheet() {
|
|
@@ -93,6 +100,9 @@ function getStyleSheet() {
|
|
|
93
100
|
// otherwise new rules would be inserted into a detached (invisible) sheet.
|
|
94
101
|
if (styleSheet && !styleSheet.ownerNode?.isConnected) {
|
|
95
102
|
styleSheet = null;
|
|
103
|
+
// The rules that lived in the removed sheet went with it, so forget them:
|
|
104
|
+
// otherwise the dedup cache would suppress re-injecting them forever.
|
|
105
|
+
injectedRules.clear();
|
|
96
106
|
}
|
|
97
107
|
if (styleSheet)
|
|
98
108
|
return styleSheet;
|
|
@@ -157,12 +167,15 @@ export function parseColorOpacityClass(className) {
|
|
|
157
167
|
/** Inject a single custom value class (with optional variant). */
|
|
158
168
|
export function injectCustomClass(className, variant) {
|
|
159
169
|
const fullClassName = variant ? `${variant.name}:${className}` : className;
|
|
160
|
-
//
|
|
161
|
-
|
|
162
|
-
|
|
170
|
+
// Resolve the stylesheet before consulting the cache: getStyleSheet() drops
|
|
171
|
+
// the cache when it has to recreate a removed sheet, and only the rules in
|
|
172
|
+
// the live sheet count as injected.
|
|
163
173
|
const sheet = getStyleSheet();
|
|
164
174
|
if (!sheet)
|
|
165
175
|
return false;
|
|
176
|
+
// Already injected.
|
|
177
|
+
if (injectedRules.has(fullClassName))
|
|
178
|
+
return true;
|
|
166
179
|
const escapedClass = escapeSelector(fullClassName);
|
|
167
180
|
// Resolve CSS declarations: try parsers, then fall back to stylesheet lookup.
|
|
168
181
|
const parsed = parseCustomValueClass(className) ?? parseColorOpacityClass(className);
|
|
@@ -192,7 +205,24 @@ export function injectCustomClass(className, variant) {
|
|
|
192
205
|
rule = `@media (min-width: ${bp}px) { .${escapedClass}${selectorSuffix} { ${declarations} } }`;
|
|
193
206
|
}
|
|
194
207
|
try {
|
|
195
|
-
sheet.insertRule(rule, sheet.cssRules.length);
|
|
208
|
+
const index = sheet.insertRule(rule, sheet.cssRules.length);
|
|
209
|
+
// The browser accepts a rule whose selector parses but whose declaration it
|
|
210
|
+
// cannot use, and an @media wrapper parses even with an invalid inner
|
|
211
|
+
// selector. Both leave an inert rule behind, so require a surviving
|
|
212
|
+
// declaration before caching. Which level holds it follows from the rule we
|
|
213
|
+
// built, not from the rule's shape: CSS Nesting gives plain style rules a
|
|
214
|
+
// cssRules list too, and `instanceof CSSMediaRule` would throw in a DOM shim
|
|
215
|
+
// lacking that global.
|
|
216
|
+
const inserted = sheet.cssRules[index];
|
|
217
|
+
const styleRule = (variant?.type === "media" ? inserted.cssRules[0] : inserted);
|
|
218
|
+
if (!styleRule?.style?.length) {
|
|
219
|
+
sheet.deleteRule(index);
|
|
220
|
+
console.warn(`Injected CSS rule had no effect: ${rule}`);
|
|
221
|
+
// Deliberately left uncached, so every later scan re-inserts, re-detects
|
|
222
|
+
// and re-warns for this class. That repeats once per scan rather than
|
|
223
|
+
// being bounded, but it keeps dead classes out of the cache.
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
196
226
|
injectedRules.add(fullClassName);
|
|
197
227
|
return true;
|
|
198
228
|
}
|
|
@@ -235,17 +265,20 @@ export function processClassString(classString) {
|
|
|
235
265
|
injectCustomClass(cls);
|
|
236
266
|
}
|
|
237
267
|
}
|
|
238
|
-
/** Scan a DOM tree and inject CSS for all custom values found. */
|
|
239
|
-
export function scanAndInject(root
|
|
268
|
+
/** Scan a DOM tree and inject CSS for all custom values found. Defaults to the whole document. */
|
|
269
|
+
export function scanAndInject(root) {
|
|
270
|
+
// Guard first: a default parameter would evaluate `document` before this
|
|
271
|
+
// runs and throw on the server, where the global does not exist.
|
|
240
272
|
if (!isSupported())
|
|
241
273
|
return;
|
|
274
|
+
const target = root ?? document;
|
|
242
275
|
// querySelectorAll only matches descendants; include the root's own classes.
|
|
243
|
-
if (
|
|
244
|
-
const rootClass =
|
|
276
|
+
if (target instanceof Element) {
|
|
277
|
+
const rootClass = target.getAttribute("class");
|
|
245
278
|
if (rootClass)
|
|
246
279
|
processClassString(rootClass);
|
|
247
280
|
}
|
|
248
|
-
const elements =
|
|
281
|
+
const elements = target.querySelectorAll("[class]");
|
|
249
282
|
for (const el of elements) {
|
|
250
283
|
const classAttr = el.getAttribute("class");
|
|
251
284
|
if (classAttr)
|
package/dist/css_custom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css_custom.js","sourceRoot":"","sources":["../src/css_custom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE/E,iDAAiD;AACjD,MAAM,kBAAkB,GAA2B;IAClD,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,kBAAkB;IACtB,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,cAAc;CACtB,CAAC;AAEF,iFAAiF;AACjF,MAAM,qBAAqB,GAAG,gDAAgD,CAAC;AAE/E,2CAA2C;AAC3C,MAAM,YAAY,GAA2B;IAC5C,UAAU;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,QAAQ;IACX,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,YAAY;IAErB,WAAW;IACX,CAAC,EAAE,QAAQ;IACX,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,cAAc;IAClB,CAAC,EAAE,SAAS;IACZ,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,eAAe;IAEnB,YAAY;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IAEZ,SAAS;IACT,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,WAAW;IACjB,CAAC,EAAE,SAAS;IAEZ,UAAU;IACV,EAAE,EAAE,kBAAkB;IACtB,MAAM,EAAE,cAAc;CACtB,CAAC;AAEF,uDAAuD;AACvD,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AACvD,MAAM,eAAe,GAAG,mEAAmE,CAAC;AAC5F,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACrD,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAE/C,gBAAgB;AAChB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AACxC,IAAI,UAAU,GAAyB,IAAI,CAAC;AAE5C,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,SAAiB;IAC9C,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"css_custom.js","sourceRoot":"","sources":["../src/css_custom.ts"],"names":[],"mappings":"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"}
|