@jxsuite/compiler 8.3.0 → 8.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +184 -170
- package/dist/compiler.js +119 -106
- package/package.json +8 -7
- package/src/cli.ts +1 -1
- package/src/compiler.ts +3 -0
- package/src/erased.ts +60 -0
- package/src/shared.ts +64 -2
- package/src/site/image-cache.ts +8 -3
- package/src/site/image-optimizer.ts +20 -1
- package/src/site/image-transform.ts +19 -5
- package/src/site/layout-resolver.ts +5 -1
- package/src/site/pages-discovery.ts +4 -2
- package/src/site/site-loader.ts +8 -7
- package/src/site/validate-command.ts +50 -6
- package/src/targets/compile-class.ts +4 -1
- package/src/targets/compile-client.ts +3 -2
- package/src/targets/compile-element.ts +12 -7
package/dist/compiler.js
CHANGED
|
@@ -1,78 +1,87 @@
|
|
|
1
|
-
import{createRequire as al}from"node:module";var tl=Object.create;var{getPrototypeOf:nl,defineProperty:mo,getOwnPropertyNames:rl}=Object;var go=Object.prototype.hasOwnProperty;function sl(e){return this[e]}var ol,il,Uu=(e,t,n)=>{var r=e!=null&&typeof e==="object";if(r){var s=t?ol??=new WeakMap:il??=new WeakMap,o=s.get(e);if(o)return o}n=e!=null?tl(nl(e)):{};let i=t||!e||!e.__esModule||!go.call(e,"default")?mo(n,"default",{value:e,enumerable:!0}):n;if(e&&typeof e==="object"||typeof e==="function"){for(let c of rl(e))if(!go.call(i,c))mo(i,c,{get:sl.bind(e,c),enumerable:!0})}if(r)s.set(e,i);return i};var qu=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var v=(e,t,n)=>()=>{if(e)try{t=e(e=0)}catch(r){n=[r]}if(n)throw n[0];return t};var Ku=al(import.meta.url);function b(e){return typeof e==="string"}function se(e){return typeof e==="number"}function pe(e){return typeof e==="boolean"}function ye(e){return typeof e==="function"}function A(e){return typeof e==="object"&&e!==null}function D(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function H(e){return D(e)&&typeof e.$ref==="string"}function $e(e){return D(e)&&e.$prototype==="Function"}function Se(e){return D(e)&&D(e.$expression)}function gt(e){return Se(e)&&Array.isArray(e.parameters)&&e.parameters.length>0}function nt(e){return $e(e)&&Array.isArray(e.body)}function rt(e){return D(e)&&typeof e.$prototype==="string"&&e.$prototype!=="Function"}function He(e){return D(e)&&e.timing==="server"&&typeof e.$src==="string"&&typeof e.$export==="string"&&!e.$prototype}function ho(e){return D(e)&&!e.$prototype&&!e.$expression&&"default"in e}function st(e){if(!D(e))return!1;for(let t of Object.keys(e))if(!xo.has(t))return!1;return!0}function ne(e){return D(e)&&e.$prototype==="Array"}function Wr(e){return(Array.isArray(e)?e:[e]).some((n)=>ne(n))}function yo(e){return D(e)&&e.$prototype==="Class"}function rn(e){return D(e)}function L(e){return typeof e==="string"&&e.includes("${")}function ht(e){return/\breturn\b[^\S\n]*(?![;}\s]|$)/.test(e)}function ll(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(!e)return[];return e.map((t)=>b(t)?t:t.name)}function cl(e){return typeof e==="string"}function Ie(e){if(typeof e!=="object"||e===null||Array.isArray(e)||!D(e.$expression))return!1;let t=e.$expression;if(t.operator==="?:")return typeof t.value==="string"&&typeof t.initial==="string";if(t.operator==="switch")return D(t.cases)&&Object.values(t.cases).every((n)=>b(n))&&typeof t.default==="string";return!1}function vt(e){if(cl(e))return[e];if(!Ie(e))return[];let t=e.$expression;if(t.operator==="?:")return[...new Set([t.value,t.initial])];return[...new Set([...Object.values(t.cases),t.default])]}var xo;var K=v(()=>{xo=new Set(["type","enum","minimum","maximum","minLength","maxLength","pattern","format","items","properties","required","description","title","$comment"])});function de(e){return e.replaceAll(/[A-Z]/g,(t)=>`-${t.toLowerCase()}`)}function $o(e,t){if(e.startsWith("@--"))return t[e.slice(1)]??e.slice(1);if(e.startsWith("@(")){let n=e.slice(2,-1).trim();return ul.has(n.toLowerCase())?n:e.slice(1)}return null}function sn(e){return e.startsWith("@position-try")||e.startsWith("@property")||e.startsWith("@font-face")||e.startsWith("@counter-style")}function an(e){return e.startsWith("@keyframes")}function So(e,t){let n=[];for(let r of on(e))for(let s of on(t))n.push(fl(r,s));return n.join(", ")}function fl(e,t){let n=kn(t,e);if(n!==null)return n;if(t.startsWith("[")||t.startsWith(":")||t.startsWith("."))return`${e}${t}`;return`${e} ${t}`}function Vr(e){let t=[],n=null,r=0;for(let s=0;s<e.length;s+=1){let o=e[s];if(n){if(o==="\\")s+=1;else if(o===n)n=null;continue}if(o==="\\")s+=1;else if(o==='"'||o==="'")n=o;else if(o==="[")r+=1;else if(o==="]")r=Math.max(0,r-1);else if(o==="&"&&r===0)t.push(s)}return t}function kn(e,t){return Vr(e).length>0?pl(e,t):null}function pl(e,t){let n="",r=0;for(let s of Vr(e))n+=e.slice(r,s)+t,r=s+1;return n+e.slice(r)}function on(e){let t=[],n=0,r=null,s=0;for(let i=0;i<e.length;i+=1){let c=e[i];if(r){if(c==="\\")i+=1;else if(c===r)r=null;continue}if(c==='"'||c==="'")r=c;else if(c==="("||c==="[")n+=1;else if(c===")"||c==="]")n=Math.max(0,n-1);else if(c===","&&n===0)t.push(e.slice(s,i)),s=i+1}t.push(e.slice(s));let o=t.flatMap((i)=>{let c=i.trim();return c===""?[]:[c]});return o.length>0?o:[e]}function Ue(e){let t=/^\(\s*prefers-color-scheme\s*:\s*(light|dark)\s*\)$/.exec(e.trim())?.[1];return t==="light"||t==="dark"?t:null}function Hr(e,t){if(e===":root"||e==="html")return{auto:`${e}:where(:not([${Te}]))`,forced:`${e}:where([${Te}="${t}"])`};return{auto:`:where(:root:not([${Te}])) ${e}`,forced:`:where(:root[${Te}="${t}"]) ${e}`}}function ot(e){return e.startsWith(":")||e.startsWith(".")||e.startsWith("&")||e.startsWith("[")}function Br(e){return e.startsWith("--")?e:de(e)}function _n(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function bo(e,t,n){let r=n.map(([o,i])=>`${o}: ${i}`).join("; "),s=t===null?r:`${t} { ${r} }`;for(let o=e.length-1;o>=0;o-=1)s=`${e[o]} { ${s} }`;return s}function dl(e,t,n){let r=n.map(({selector:o,declarations:i})=>`${o} { ${i.map(([c,a])=>`${c}: ${a}`).join("; ")} }`).join(" "),s=`@keyframes ${t} { ${r} }`;for(let o=e.length-1;o>=0;o-=1)s=`${e[o]} { ${s} }`;return s}function ml(e){let t=Object.keys(e).filter((r)=>an(r));if(t.length===0)return e;let n={...e};for(let r of t)delete n[r];return n}function gl(e){let n=Vr(e).at(-1),r=n===void 0?e:e.slice(n+1);return r===""||r.startsWith(":")||r.startsWith(".")||r.startsWith("[")}function Tt(e,t={}){let{scope:n=null,mediaQueries:r={},transposeValue:s=(m)=>m,transposeSelector:o=(m)=>m,resolveValue:i}=t,c=[],a=(m)=>m!==null&&typeof m==="object"&&!Array.isArray(m)&&!H(m),l=(m,x)=>{if(a(x))return[x];if(!sn(m)||!Array.isArray(x)||x.length===0)return[];return x.every((E)=>a(E))?x:[]},u=(m,x,E,O)=>{if(x===void 0||x===null)return null;if(H(x))return E?i?.(m,x,O)??null:null;if(A(x))return null;let J=String(x);if(L(J))return E?i?.(m,J,O)??null:null;return s(J)},f=(m,x,E=!0,O="self")=>{let J=[];for(let[C,q]of Object.entries(m)){if(l(C,q).length>0)continue;if(x&&(C.startsWith("@")||ot(C)))continue;if(C.startsWith("$"))continue;let S=u(C,q,E,O);if(S!==null)J.push([Br(C),S])}return J},p=(m,x,E,O,J)=>{if(E.length===0)return;let C=x;if(C!==null){let y=o(C);if(y===null)return;C=y}let q=bo(m,C,E),S={text:q,conditions:[...m],selector:C,declarations:E,target:O,key:_n(q)};if(b(J)&&J!=="")S.description=J;c.push(S)},d=(m,x,E)=>{let O=m.slice(10).trim();if(O==="")return;let J=[];for(let[q,S]of Object.entries(x)){if(!a(S))continue;let y=f(S,!0,!1,"unscoped");if(y.length>0)J.push({declarations:y,selector:q.trim()})}if(J.length===0)return;let C=dl(E,O,J);c.push({blocks:J,conditions:[...E],declarations:[],key:_n(C),selector:null,target:"unscoped",text:C})},h=(m,x,E,O,J)=>{if(m==="@--")return;if(sn(m)){p([...O,m],null,f(x,!1,!0,"unscoped"),"unscoped",x.$description);return}if(an(m)){d(m,x,O);return}let C=$o(m,r),q=C===null?m:`@media ${C}`,S=C===null?null:Ue(C);if(S!==null&&E!==null){let{auto:y,forced:w}=Hr(E,S);g(x,y,[...O,q],J),g(ml(x),w,O,J);return}g(x,E,[...O,q],J)};function g(m,x,E,O){p(E,x,f(m,!0,!0,O),O,m.$description);for(let[J,C]of Object.entries(m))for(let q of l(J,C))if(J.startsWith("@"))h(J,q,x,E,O);else if(x!==null)g(q,So(x,J),E,gl(J)?O:"descendant")}return g(e,n,[],"self"),c}var ul,Te="data-color-scheme",Pn="jx-color-scheme";var ln=v(()=>{K();ul=new Set(["all","print","screen","speech"])});function Qu(){return`the Intl helpers ${qr.join(", ")}`}var De="en-US",Ur="UTC",wo,qr,Eo;var Jo=v(()=>{wo=[{api:"Intl.NumberFormat",params:["value","locale","options"],path:"Intl/formatNumber",summary:"Format a number for a locale — grouping, decimals, currency, percent, units."},{api:"Intl.DateTimeFormat",params:["value","locale","options"],path:"Intl/formatDate",summary:"Format a date or timestamp for a locale. Pass `timeZone` in options."},{api:"Intl.RelativeTimeFormat",params:["value","unit","locale","options"],path:"Intl/formatRelativeTime",summary:'Format a relative time — `-3, "day"` becomes "3 days ago".'},{api:"Intl.ListFormat",params:["values","locale","options"],path:"Intl/formatList",summary:'Join a list the way a locale does — "a, b, and c", not a hand-written comma join.'},{api:"Intl.PluralRules",params:["value","locale","options"],path:"Intl/plural",summary:'Which plural category a number falls in ("one", "few", "other") — many languages have '+"more than two, so a ternary on `n === 1` is wrong outside English."},{api:"Intl.Collator",params:["a","b","locale","options"],path:"Intl/compare",summary:'Compare two strings for sorting. `<` and `sort()` order by UTF-16 code unit, which puts "Zebra" before "apple" and sorts every accented word into the wrong place.'},{api:"Intl.DisplayNames",params:["code","type","locale","options"],path:"Intl/displayName",summary:'The name of a language, region, script or currency in a locale — "de" as "German" or '+'"Deutsch", from CLDR rather than a hand-kept table.'},{api:"Intl.Segmenter",params:["value","granularity","locale"],path:"Intl/segment",summary:"Split text into graphemes, words or sentences (UAX #29). `[...str]` splits code points, so it cuts an emoji with a skin-tone modifier in half."}],qr=wo.map((e)=>e.path),Eo=Object.fromEntries(wo.map((e)=>[e.path,e.params.indexOf("locale")]))});function hl(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function re(e){return e.replaceAll("~","~0").replaceAll("/","~1")}function qe(e){if(e==="")return[];return e.split("/").map((t)=>hl(t))}function oe(e,t){let n=e;for(let r of qe(t))n=n?.[r];return n}function P(e,t){let n=e;for(let r of qe(t))n+=zr.test(r)?`.${r}`:`[${JSON.stringify(r)}]`;return n}function No(e,t){let n=e;for(let[r,s]of qe(t).entries()){let o=r===0?"":"?.";n+=zr.test(s)?`${r===0?".":o}${s}`:`${o}[${JSON.stringify(s)}]`}return n}function ze(e){return zr.test(e)?e:JSON.stringify(e)}function Ao(e){let t=e.replaceAll(/[^A-Za-z0-9_$]/g,"_");if(t==="")return"ref";return/^\d/.test(t)?`_${t}`:t}var zr;var jt=v(()=>{zr=/^[A-Za-z_$][A-Za-z0-9_$]*$/});function Kr(e){let t=e.$map;return A(t)?t:void 0}function To(e){return A(e)&&!Array.isArray(e)&&"operator"in e}function cn(e){return A(e)&&!Array.isArray(e)&&"$ref"in e}function Sl(e,t,n){let r=Eo[e];if(r===void 0||r<0||t[r]!=null)return t;let s=oe(n.$page,"locale");if(!b(s)||s==="")return t;let o=[...t];return o[r]=s,o}function ko(e){return e.startsWith("window#/")&&yl.has(e.slice(8))}function Ke(e){return jo.has(e)}function G(e,t){if(!e)return;let n=(e.depth??0)+1;if(n>bl)return;return{depth:n,path:[...e.path??[],...Array.isArray(t)?t:[t]],report:e.report}}function z(e,t,n,r,s){if(e===null||e===void 0)return e;if(To(e))return be(e,t,n,r,s);if(cn(e)){let o=In(e.$ref,t,n,r);return s?.report(s.path??[],o),o}if(Array.isArray(e))return Po(e,t,n,r,s);return s?.report(s.path??[],e),e}function Po(e,t,n,r,s){return e.map((o,i)=>z(o,t,n,r,G(s,i)))}function wl(e,t,n,r){let s=(o)=>{if(!e.slice(o.length).includes("/"))return t;return In(e.slice(0,e.lastIndexOf("/")),t,n,r)};if(e.startsWith("#/state/"))return s("#/state/");if(e.startsWith("parent#/"))return s("parent#/");if(e.startsWith("$map/")||e.startsWith("$args/"))return e.split("/").length>2?In(e.slice(0,e.lastIndexOf("/")),t,n,r):void 0;return}function In(e,t,n,r){if(e==="$reduce/acc")return r?.acc;if(e.startsWith("$reduce/"))return r?.acc;if(e.startsWith("$args/")){let s=e.slice(6).split("/"),o=r?.args?.[s[0]];return s.length>1?oe(o,s.slice(1).join("/")):o}if(e.startsWith("event#/")){let s=e.slice(7);return oe(n,s)}if(e.startsWith("$map/")){let s=e.split("/"),[,o]=s,i,c=Kr(t);if(o==="item")i=r?.item??c?.item??t["$map/item"];else if(o==="index")i=r?.index??c?.index??t["$map/index"];else i=c?.[o]??t[`$map/${o}`];return s.length>2?oe(i,s.slice(2).join("/")):i}if(e.startsWith("#/state/"))return oe(t,e.slice(8));if(e.startsWith("parent#/"))return oe(t,e.slice(8));if(e.startsWith("window#/"))return oe(globalThis.window,e.slice(8));if(e.startsWith("document#/"))return oe(globalThis.document,e.slice(10));return oe(t,e)??null}function El(e,t,n,r){if(e.startsWith("$map/")){let s=e.split("/"),[,o]=s,i,c=Kr(t);if(o==="item")i=r?.item??c?.item??t["$map/item"];else if(o==="index")i=r?.index??c?.index??t["$map/index"];else i=c?.[o]??t[`$map/${o}`];if(s.length>2){let a=s.slice(2),l=a.pop(),u=a.length>0?oe(i,a.join("/")):i;return{key:l,obj:u}}return{key:o==="item"?"$map/item":"$map/index",obj:Kr(t)??t}}if(e.startsWith("#/state/")){let s=e.slice(8);if(s.indexOf("/")===-1)return{key:s,obj:t};let i=qe(s),c=i.pop(),a=t;for(let l of i)a=a[l];return{key:c,obj:a}}return{key:e,obj:t}}function be(e,t,n,r,s){let o=Jl(e,t,n,r,s);return s?.report(s.path??[],o),o}function Co(e,t,n){switch(e){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n;case"<":return t<n;case"<=":return t<=n;case">":return t>n;default:return t>=n}}function Jl(e,t,n,r,s){let{operator:o,target:i,value:c,initial:a}=e;if(!xl.has(o))throw Error(`$expression: unknown operator "${o}"`);if(Gr.has(o)&&!("value"in e)){let l=z(i,t,n,r,G(s,"target"));if(o==="!")return!l;if(o==="-")return-l}if(o==="call"){let l=cn(i)?i.$ref:void 0;if(!b(l))throw TypeError("$expression: call target must be a $ref pointer");let u=(r?.callDepth??0)+1;if(u>Oo)throw Error(`$expression: call depth exceeded (${Oo})`);let f=Array.isArray(c)?c.map((d,h)=>z(d,t,n,r,G(s,["value",h]))):[];if(l.startsWith("window#/")){if(!ko(l))throw Error(`$expression: "${l}" is not a blessed pure global`);let d=l.slice(8),h=$l.get(d);if(h)return h(...Sl(d,f,t));let g=oe(globalThis.window,d),m=d.lastIndexOf("/"),x=m===-1?globalThis.window:oe(globalThis.window,d.slice(0,m));return g.apply(x,f)}let p=In(l,t,n,r);if(ye(p))return p.apply(wl(l,t,n,r),f);if(A(p)&&"$expression"in p){let d=p,h={};for(let[g,m]of(d.parameters??[]).entries()){let x=b(m)?m:m?.name??"";if(!x)continue;h[x]=f[g]===void 0&&A(m)&&"default"in m?m.default:f[g]}return be(d.$expression,t,n,{args:h,callDepth:u})}throw TypeError(`$expression: call target "${l}" is not callable`)}if(Zr.has(o)){if(o==="?:"){let d=z(i,t,n,r,G(s,"target"));if(s){let h=z(c,t,n,r,G(s,"value")),g=z(a,t,n,r,G(s,"initial"));return d?h:g}return d?z(c,t,n,r):z(a,t,n,r)}let l=z(i,t,n,r,G(s,"target")),u=String(l),f=e.cases??{},p=Object.hasOwn(f,u);if(s){let d;for(let[g,m]of Object.entries(f)){let x=z(m,t,n,r,G(s,["cases",g]));if(g===u)d=x}let h=z(e.default,t,n,r,G(s,"default"));return p?d:h}return p?z(f[u],t,n,r):z(e.default,t,n,r)}if(Yr.has(o)){let l=z(i,t,n,r,G(s,"target")),u=z(c,t,n,r,G(s,"value"));switch(o){case"===":return l===u;case"!==":return l!==u;case"&&":return l&&u;case"||":return l||u;case"??":return l??u;default:return Co(o,l,u)}}if(Ro.has(o)){let l=z(c,t,n,r,G(s,"value")),{obj:u,key:f}=El(i.$ref,t,n,r);u[f]=o==="="?l:Co(o.slice(0,-1),u[f],l);return}if(_o.has(o)){let l=z(i,t,n,r,G(s,"target"));switch(o){case"push":return l.push(z(c,t,n,r,G(s,"value")));case"unshift":return l.unshift(z(c,t,n,r,G(s,"value")));case"pop":return l.pop();case"shift":return l.shift();case"splice":{let u=z(c,t,n,r,G(s,"value"));return l.splice(...u)}default:break}}if(Qr.has(o)){let l=z(i,t,n,r,G(s,"target")),u=c===void 0?[]:Array.isArray(c)?Po(c,t,n,r,G(s,"value")):[z(c,t,n,r,G(s,"value"))],f=oe(l,o);if(!ye(f))return;return f.apply(l,u)}if(Xr.has(o)){let l=z(i,t,n,r,G(s,"target")),u=c;if(o==="reduce"){let f=z(a,t,n,r,G(s,"initial"));for(let[p,d]of l.entries())f=be(u,t,n,{acc:f,index:p,item:d},p===0?G(s,"value"):void 0);return f}if(o==="map")return l.map((f,p)=>be(u,t,n,{...r,index:p,item:f},p===0?G(s,"value"):void 0));if(o==="filter")return l.filter((f,p)=>be(u,t,n,{...r,index:p,item:f},p===0?G(s,"value"):void 0))}return}function Y(e,t){if(e===null)return"null";if(e===void 0)return"undefined";if(To(e))return le(e,t);if(cn(e))return es(e.$ref,t);if(Array.isArray(e))return e.map((n)=>Y(n,t)).join(", ");return JSON.stringify(e)}function Nl(e){return`_fx_${e.replaceAll(/[^A-Za-z0-9_$]/g,"_")}`}function es(e,t){let n=t.statePrefix??"state",r=t.eventParam??"event";if(e==="$reduce/acc")return"_acc";if(e.startsWith("$reduce/"))return"_acc";if(e.startsWith("$args/"))return P("_args",e.slice(6));if(e.startsWith("event#/"))return P(r,e.slice(7));if(e.startsWith("$map/")){let s=e.split("/"),[,o]=s;if(o==="item")return s.length>2?P("_item",s.slice(2).join("/")):"_item";if(o==="index")return"_index";return`_${o}`}if(e.startsWith("#/state/"))return P(n,e.slice(8));if(e.startsWith("parent#/"))return P(n,e.slice(8));if(e.startsWith("window#/"))return P("window",e.slice(8));if(e.startsWith("document#/"))return P("document",e.slice(10));return P(n,e)}function vo(e,t){if(cn(e))return es(e.$ref,t);return Y(e,t)}function Al(e,t,n){let r=(i)=>t[i]??"undefined",s=`(${n.statePrefix??"state"}?.$page?.locale ?? ${JSON.stringify(De)})`,o=JSON.stringify(Ur);switch(e){case"Intl/formatNumber":return`new Intl.NumberFormat(${r(1)} ?? ${s}, ${r(2)}).format(${r(0)})`;case"Intl/formatDate":return`new Intl.DateTimeFormat(${r(1)} ?? ${s}, {timeZone: ${o}, ...${r(2)}}).format(new Date(${r(0)}))`;case"Intl/formatRelativeTime":return`new Intl.RelativeTimeFormat(${r(2)} ?? ${s}, ${r(3)}).format(${r(0)}, ${r(1)})`;case"Intl/formatList":return`new Intl.ListFormat(${r(1)} ?? ${s}, ${r(2)}).format(${r(0)})`;case"Intl/plural":return`new Intl.PluralRules(${r(1)} ?? ${s}, ${r(2)}).select(${r(0)})`;case"Intl/compare":return`new Intl.Collator(${r(2)} ?? ${s}, ${r(3)}).compare(${r(0)}, ${r(1)})`;case"Intl/displayName":return`new Intl.DisplayNames(${r(2)} ?? ${s}, {...${r(3)}, type: ${r(1)} ?? 'language'}).of(${r(0)})`;case"Intl/segment":return`[...new Intl.Segmenter(${r(2)} ?? ${s}, {granularity: ${r(1)} ?? 'grapheme'}).segment(${r(0)})].map((p) => p.segment)`;default:return null}}function le(e,t={}){let{operator:n,target:r,value:s,initial:o}=e;if(Gr.has(n)&&!("value"in e)){let i=Y(r,t);if(n==="!")return`!(${i})`;if(n==="-")return`-(${i})`}if(n==="call"){let i=(cn(r)?r.$ref:void 0)??"",c=Array.isArray(s)?s.map((a)=>Y(a,t)):[];if(i.startsWith("window#/")){if(!ko(i))throw Error(`$expression: "${i}" is not a blessed pure global`);let a=Al(i.slice(8),c,t);if(a)return a;return`window.${i.slice(8).replaceAll("/",".")}(${c.join(", ")})`}if(i.startsWith("#/state/")){let a=i.slice(8),l=t.formulaParams?.[a];if(l){let u=l.map((f,p)=>`${JSON.stringify(f)}: ${c[p]??"undefined"}`).join(", ");return`${Nl(a)}(${t.statePrefix??"state"}, { ${u} })`}}return`${es(i,t)}(${c.join(", ")})`}if(Zr.has(n)){if(n==="?:"){let l=Y(r,t),u=Y(s,t),f=Y(o,t);return`(${l} ? ${u} : ${f})`}let i=Y(r,t),c=Object.entries(e.cases??{}).map(([l,u])=>`_d === ${JSON.stringify(l)} ? ${Y(u,t)} : `).join(""),a="default"in e?Y(e.default,t):"undefined";return`((_d) => ${c}${a})(String(${i}))`}if(Yr.has(n)){let i=Y(r,t),c=Y(s,t);return`(${i} ${n} ${c})`}if(Ro.has(n)){let i=vo(r,t),c=Y(s,t);return`${i} ${n} ${c}`}if(_o.has(n)){let i=vo(r,t);switch(n){case"push":return`${i}.push(${Y(s,t)})`;case"unshift":return`${i}.unshift(${Y(s,t)})`;case"pop":return`${i}.pop()`;case"shift":return`${i}.shift()`;case"splice":{let c=Array.isArray(s)?s.map((a)=>Y(a,t)).join(", "):Y(s,t);return`${i}.splice(${c})`}default:break}}if(Qr.has(n)){let i=Y(r,t),c=s===void 0?"":Array.isArray(s)?s.map((a)=>Y(a,t)).join(", "):Y(s,t);return`(${i})?.${n}?.(${c})`}if(Xr.has(n)){let i=Y(r,t),c=le(s,t);if(n==="reduce"){let a=Y(o,t);return`${i}.reduce((_acc, _item, _index) => ${c}, ${a})`}if(n==="map")return`${i}.map((_item, _index) => ${c})`;if(n==="filter")return`${i}.filter((_item, _index) => ${c})`}return"undefined"}function Rt(e,t,n,r){return z(e,t,n,r)}function Ge(e,t={}){return Y(e,t)}var jo,Gr,Yr,Ro,_o,Xr,Zr,Qr,xl,yl,$l,Oo=64,bl=64;var un=v(()=>{Jo();K();jt();jo=new Set(["=","+=","-=","*=","/=","push","pop","shift","unshift","splice"]),Gr=new Set(["!","-"]),Yr=new Set(["+","-","*","/","%","===","!==","<","<=",">",">=","&&","||","??"]),Ro=new Set(["=","+=","-=","*=","/="]),_o=new Set(["push","pop","shift","unshift","splice"]),Xr=new Set(["reduce","map","filter"]),Zr=new Set(["?:","switch"]),Qr=new Set(["includes","indexOf","lastIndexOf","join","slice","concat","at","flat","toSorted","toReversed","toSpliced","with","toUpperCase","toLowerCase","trim","trimStart","trimEnd","split","startsWith","endsWith","padStart","padEnd","replaceAll","repeat","charAt","normalize","toLocaleUpperCase","toLocaleLowerCase","toFixed","toPrecision","toLocaleString"]),xl=new Set([...jo,...Gr,...Yr,...Xr,...Zr,...Qr,"call"]),yl=new Set(["isNaN","isFinite","parseFloat","parseInt","encodeURIComponent","decodeURIComponent","structuredClone","Math/abs","Math/ceil","Math/floor","Math/round","Math/trunc","Math/sign","Math/sqrt","Math/cbrt","Math/pow","Math/exp","Math/log","Math/log2","Math/log10","Math/min","Math/max","Math/hypot","Number/isInteger","Number/isFinite","Number/isNaN","Number/parseFloat","Number/parseInt","JSON/parse","JSON/stringify","Object/keys","Object/values","Object/entries","Object/fromEntries","Array/from","Array/isArray","Array/of","String/fromCharCode","String/fromCodePoint",...qr]),$l=new Map([["Intl/compare",(e,t,n,r)=>new Intl.Collator(n??De,r).compare(e,t)],["Intl/displayName",(e,t,n,r)=>new Intl.DisplayNames(n??De,{...r,type:t??"language"}).of(e)],["Intl/formatDate",(e,t,n)=>new Intl.DateTimeFormat(t??De,{timeZone:Ur,...n}).format(new Date(e))],["Intl/formatList",(e,t,n)=>new Intl.ListFormat(t??De,n).format(e)],["Intl/formatNumber",(e,t,n)=>new Intl.NumberFormat(t??De,n).format(e)],["Intl/formatRelativeTime",(e,t,n,r)=>new Intl.RelativeTimeFormat(n??De,r).format(e,t)],["Intl/plural",(e,t,n)=>new Intl.PluralRules(t??De,n).select(e)],["Intl/segment",(e,t,n)=>[...new Intl.Segmenter(n??De,{granularity:t??"grapheme"}).segment(e)].map((r)=>r.segment)]])});function Ol(e){return e.startsWith(Io)}function lf(e){let t=e;if(Ol(t))t=t.slice(Io.length);return t=t.replace(/^\.\//,"").replace(/\.(js|ts|mjs|mts)$/,"").replaceAll("@","").replaceAll(/[/\\]+/g,"-").replaceAll(/[^\w.-]/g,"-").replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,""),`${ts}${t}.js`}function cf(e){let t=/\.(\w+)$/.exec(e)?.[1]??"",n=e.replace(/\.\w+$/,"").replaceAll("@","").replaceAll(/[/\\]+/g,"-").replaceAll(/[^\w.-]/g,"-").replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,"");return t===""?`${ts}${n}`:`${ts}${n}.${t}`}function Do(e){let t=e.replaceAll("\\","/");return t.length>1&&t.endsWith("/")?t.slice(0,-1):t}function Mo(e){let t=Do(e);return t.startsWith("/")?t:`/${t}`}function Cl(e,t){return[...e].toSorted((n,r)=>r[t].length-n[t].length)}function uf(e,t){let n=t.split("#")[0].split("?")[0];if(!n.startsWith("/"))return null;let r;try{r=decodeURIComponent(n)}catch{return null}if(/%2e|%2f/i.test(r))return null;for(let s of Cl(e,"urlPrefix")){let o=Mo(s.urlPrefix);if(!r.startsWith(`${o}/`))continue;let c=r.slice(o.length+1).split("/");if(c.some((l)=>l===""||l==="."||l===".."))return null;let{filter:a}=s;if(a&&!a(c.join("/")))return null;return`${Do(s.dir)}/${c.join("/")}`}return null}function ff(e,t){let n=new Set;for(let r of t){let s=Mo(r.urlPrefix),o=new RegExp(`${s.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)}/[^${vl}]+`,"g");for(let i of e.matchAll(o)){let c=i[0].split("#")[0].split("?")[0];if(!c.endsWith("/"))n.add(c)}}return[...n].filter(Boolean)}function Tl(e){let t=[],n=0;while(n<e.length){while(n<e.length&&(/\s/.test(e[n])||e[n]===","))n+=1;if(n>=e.length)break;let r=n;while(n<e.length&&!/\s/.test(e[n]))n+=1;let s=e.slice(r,n);if(s.endsWith(",")){t.push({descriptor:"",url:s.replace(/,+$/,"")});continue}while(n<e.length&&/\s/.test(e[n]))n+=1;let o=n;while(n<e.length&&e[n]!==",")n+=1;let i=e.slice(o,n).trim();if(n+=1,s=s.replace(/,+$/,""),s!=="")t.push({descriptor:i,url:s})}return t}function jl(e){return e.map(({url:t,descriptor:n})=>n?`${t} ${n}`:t).join(", ")}function pf(e){if(!b(e)||e==="")return"";let t;try{({pathname:t}=new URL(e))}catch{return""}let n=t.replace(/\/+$/,"");if(n===""||n==="/")return"";return n.startsWith("/")?n:`/${n}`}function Lo(e,t){if(e===""||!t.startsWith("/")||t.startsWith("//"))return t;if(t===e||t.startsWith(`${e}/`))return t;return e+t}function df(e,t){let n=new URL(t);if(!n.pathname.endsWith("/"))n.pathname+="/";return new URL(e.replace(/^\/+/,""),n).href}var Io="npm:",ts="/assets/",vl;var ns=v(()=>{K();vl=String.raw`"'\s<>()\\`});function Fo(e){if("operator"in e)return{kind:"expression",node:e};if("if"in e)return{kind:"if",node:e};if("$switch"in e)return{kind:"switch",node:e};if("stopPropagation"in e)return{kind:"stopPropagation"};if("preventDefault"in e)return{kind:"preventDefault"};return{kind:"dispatch",node:e}}function Rl(e){return(A(e)||ye(e))&&"then"in e&&ye(e.then)}async function _t(e,t,n,r={}){let s=r.args?{args:r.args}:void 0;for(let o of e){let i=Fo(o);switch(i.kind){case"expression":{let c=be(i.node,t,n,s);if(Rl(c))await c;break}case"if":{let c=i.node,a=Rt(c.if,t,n,s)?c.then:c.else;if(Array.isArray(a))await _t(a,t,n,r);break}case"switch":{let c=i.node,a=String(Rt(c.$switch,t,n,s)),l=c.cases??{},u=Object.hasOwn(l,a)?l[a]:c.default;if(Array.isArray(u))await _t(u,t,n,r);break}case"dispatch":{let c=i.node,a=ye(r.target)?r.target():r.target,l=n?.currentTarget??a;if(!l)break;let u={};if("detail"in c)u.detail=Rt(c.detail,t,n,s);if(c.bubbles!==void 0)u.bubbles=c.bubbles;if(c.composed!==void 0)u.composed=c.composed;l.dispatchEvent(new CustomEvent(c.dispatchEvent,u));break}case"stopPropagation":{n?.stopPropagation();break}case"preventDefault":{n?.preventDefault();break}default:break}}}function Ne(e,t={}){let n=t.indent??"",r=[];for(let s of e){let o=Fo(s);switch(o.kind){case"expression":{r.push(`${n}${le(o.node,t)};`);break}case"if":{let i=o.node,c=Ge(i.if,t),a={...t,indent:`${n} `};if(r.push(`${n}if (${c}) {`,Ne(i.then??[],a)),i.else)r.push(`${n}} else {`,Ne(i.else,a));r.push(`${n}}`);break}case"switch":{let i=o.node,c=Ge(i.$switch,t),a={...t,indent:`${n} `};r.push(`${n}switch (String(${c})) {`);for(let[l,u]of Object.entries(i.cases??{}))r.push(`${n} case ${JSON.stringify(l)}: {`,Ne(u,a),`${n} break;`,`${n} }`);if(i.default)r.push(`${n} default: {`,Ne(i.default,a),`${n} }`);r.push(`${n}}`);break}case"dispatch":{let i=o.node,c=t.eventParam??"event",a=t.dispatchTarget??`(${c} && ${c}.currentTarget)`,l=[];if("detail"in i)l.push(`detail: ${Ge(i.detail,t)}`);if(i.bubbles!==void 0)l.push(`bubbles: ${JSON.stringify(i.bubbles)}`);if(i.composed!==void 0)l.push(`composed: ${JSON.stringify(i.composed)}`);let u=l.length>0?`, { ${l.join(", ")} }`:"";r.push(`${n}${a}?.dispatchEvent(new CustomEvent(${JSON.stringify(i.dispatchEvent)}${u}));`);break}case"stopPropagation":{r.push(`${n}${t.eventParam??"event"}?.stopPropagation();`);break}case"preventDefault":{r.push(`${n}${t.eventParam??"event"}?.preventDefault();`);break}default:break}}return r.join(`
|
|
2
|
-
`)
|
|
3
|
-
`)
|
|
4
|
-
`)
|
|
5
|
-
`)
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import{createRequire as Ml}from"node:module";var Rl=Object.create;var{getPrototypeOf:_l,defineProperty:Po,getOwnPropertyNames:Pl}=Object;var ko=Object.prototype.hasOwnProperty;function kl(e){return this[e]}var Il,Dl,Vf=(e,t,n)=>{var r=e!=null&&typeof e==="object";if(r){var s=t?Il??=new WeakMap:Dl??=new WeakMap,o=s.get(e);if(o)return o}n=e!=null?Rl(_l(e)):{};let i=t||!e||!e.__esModule||!ko.call(e,"default")?Po(n,"default",{value:e,enumerable:!0}):n;if(e&&typeof e==="object"||typeof e==="function"){for(let a of Pl(e))if(!ko.call(i,a))Po(i,a,{get:kl.bind(e,a),enumerable:!0})}if(r)s.set(e,i);return i};var Hf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var j=(e,t,n)=>()=>{if(e)try{t=e(e=0)}catch(r){n=[r]}if(n)throw n[0];return t};var Uf=Ml(import.meta.url);function b(e){return typeof e==="string"}function se(e){return typeof e==="number"}function me(e){return typeof e==="boolean"}function Se(e){return typeof e==="function"}function A(e){return typeof e==="object"&&e!==null}function _(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function H(e){return _(e)&&typeof e.$ref==="string"}function be(e){return _(e)&&e.$prototype==="Function"}function we(e){return _(e)&&_(e.$expression)}function xt(e){return we(e)&&Array.isArray(e.parameters)&&e.parameters.length>0}function st(e){return be(e)&&Array.isArray(e.body)}function ot(e){return _(e)&&typeof e.$prototype==="string"&&e.$prototype!=="Function"}function He(e){return _(e)&&e.timing==="server"&&typeof e.$src==="string"&&typeof e.$export==="string"&&!e.$prototype}function Io(e){return _(e)&&!e.$prototype&&!e.$expression&&"default"in e}function it(e){if(!_(e))return!1;for(let t of Object.keys(e))if(!Do.has(t))return!1;return!0}function ne(e){return _(e)&&e.$prototype==="Array"}function Qr(e){return(Array.isArray(e)?e:[e]).some((n)=>ne(n))}function Mo(e){return _(e)&&e.$prototype==="Class"}function un(e){return _(e)}function L(e){return typeof e==="string"&&e.includes("${")}function yt(e){return/\breturn\b[^\S\n]*(?![;}\s]|$)/.test($t(e))}function $t(e){if(!/[/'"`]/u.test(e))return e;let t=Bn.get(e);if(t!==void 0)return t;let n=Ll(e);if(Bn.size>=Fl)Bn.clear();return Bn.set(e,n),n}function Ll(e){let t=e.split(""),n=(i)=>{if(t[i]!==void 0&&t[i]!==`
|
|
2
|
+
`)t[i]=" "},r=[],s=!1,o=0;while(o<e.length){let i=e.charAt(o);if(s)if(i==="\\")n(o),n(o+1),o+=2;else if(i==="`")s=!1,o+=1;else if(i==="$"&&e.charAt(o+1)==="{")r.push(0),s=!1,o+=2;else n(o),o+=1;else if(i==="/"&&e.charAt(o+1)==="/")while(o<e.length&&e.charAt(o)!==`
|
|
3
|
+
`)n(o),o+=1;else if(i==="/"&&e.charAt(o+1)==="*"){let a=e.indexOf("*/",o+2),l=a===-1?e.length:a+2;for(;o<l;o+=1)n(o)}else if(i==="'"||i==='"'){o+=1;while(o<e.length&&e.charAt(o)!==i&&e.charAt(o)!==`
|
|
4
|
+
`){if(e.charAt(o)==="\\")n(o),o+=1;n(o),o+=1}o+=1}else if(i==="`")s=!0,o+=1;else{let a=r.length-1;if(a>=0&&i==="{")r[a]=(r[a]??0)+1;else if(a>=0&&i==="}")if(r[a]===0)r.pop(),s=!0;else r[a]=(r[a]??1)-1;o+=1}}return t.join("")}function Wl(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(!e)return[];return e.map((t)=>b(t)?t:t.name)}function Vl(e){return typeof e==="string"}function De(e){if(typeof e!=="object"||e===null||Array.isArray(e)||!_(e.$expression))return!1;let t=e.$expression;if(t.operator==="?:")return typeof t.value==="string"&&typeof t.initial==="string";if(t.operator==="switch")return _(t.cases)&&Object.values(t.cases).every((n)=>b(n))&&typeof t.default==="string";return!1}function vt(e){if(Vl(e))return[e];if(!De(e))return[];let t=e.$expression;if(t.operator==="?:")return[...new Set([t.value,t.initial])];return[...new Set([...Object.values(t.cases),t.default])]}var Do,Bn,Fl=2048;var U=j(()=>{Do=new Set(["type","enum","minimum","maximum","minLength","maxLength","pattern","format","items","properties","required","description","title","$comment"]);Bn=new Map});function Hl(e,t){let n=e.slice(0,t),r=n.split(`
|
|
5
|
+
`).length;return{column:t-n.lastIndexOf(`
|
|
6
|
+
`),line:r}}function es(e,t,n,r){return{...Hl(e,t),kind:n,message:r,offset:t}}function Bl(e,t){let n=t;while(n<e.length&&/\s/u.test(e.charAt(n)))n+=1;return n}function Wo(e){for(let t of[e,`return async function () {
|
|
7
|
+
${e}
|
|
8
|
+
}`])try{return Reflect.construct(Function,[t])!==null}catch{}return!1}function Vo(e){ns=e,Un=null}function ql(e,t){if(!Un){if(!ns)throw Error("@jxsuite/erase was imported without an entry that loads its stripper");Un=ns()}return Un(e,t)}function zl(e){return $t(e).includes("<")||!Wo(e)}function Kl(e){let t=ts.get(e);if(t)return t;if(!zl(e)){let i={code:e,problems:[]};return ts.set(e,i),i}let n=[],r=ql(e,(i)=>{let a=Bl(e,i.pos),[l="this"]=/^[\w$]+/u.exec(e.slice(a))??[];n.push(es(e,a,"unsupported",`\`${l}\` is TypeScript that has to be compiled rather than erased. A function body may use only types that can be removed: no enum, value namespace or parameter property`))}),s=$t(r);for(let i of s.matchAll(Ul)){let a=i.index+(i[1]?.length??0)+(i[2]?.length??0);n.push(es(e,a,"unsupported",`A function body cannot ${i[3]??"import"}. Move code that needs a module into one of its own, named by $src`))}if(r!==e&&n.length===0&&Wo(e)){let i=[...e].findIndex((a,l)=>a!==r[l]);n.push(es(e,Math.max(i,0),"meaning","This was already JavaScript, and reading it as TypeScript changes it: `a < b > (c)` is a generic call in TypeScript and two comparisons in JavaScript. Add parentheses if a comparison is meant"))}let o={code:r,problems:n};return ts.set(e,o),o}function Gl(e){return String(e).replaceAll("~","~0").replaceAll("/","~1")}function Fo(e,t,n){if(b(e))return Lo(e,t,n);if(Array.isArray(e)&&e.length>0&&e.every((r)=>b(r)))return Lo(e.join(`
|
|
9
|
+
`),t,n).split(`
|
|
10
|
+
`);return e}function Lo(e,t,n){let{code:r,problems:s}=Kl(e),[o,...i]=s.filter((a)=>a.kind==="unsupported");if(o)throw new Ho(t,[o,...i]);for(let a of s)n.push({...t,problem:a});return r}function rs(e,t,n){if(Array.isArray(e))return e.map((i,a)=>rs(i,{...t,pointer:`${t.pointer}/${a}`},n));if(!_(e))return e;let r=e.$prototype==="Function",s=[],o={set:(i,a)=>{s.push([i,a])}};for(let[i,a]of Object.entries(e)){let l={...t,pointer:`${t.pointer}/${Gl(i)}`};if(r&&i==="body")o.set(i,Fo(a,l,n));else if(r&&(i==="getter"||i==="setter")&&_(a)){let c={...a};if(a.body!==void 0)c.body=Fo(a.body,{...l,pointer:`${l.pointer}/body`},n);o.set(i,c)}else o.set(i,rs(a,l,n))}return Object.fromEntries(s)}function ss(e,t,n=[]){return rs(e,{path:t,pointer:""},n)}function Bo(e,t,n=[]){return ss(e,t,n)}var Ul,ts,Un=null,ns=null,Ho;var os=j(()=>{U();Ul=/(^|[\n;{}])(\s*)(import|export)(?=[\s{*"'])/gu;ts=new Map;Ho=class Ho extends Error{problems;site;constructor(e,t){let[n]=t;super(`${e.path}${e.pointer}: ${n.message} (line ${n.line}, column ${n.column})`);this.name="EraseError",this.problems=t,this.site=e}}});import{createRequire as Yl}from"node:module";var Uo=j(()=>{os();os();Vo(()=>Yl(import.meta.url)("ts-blank-space").default)});function zo(e){for(let{path:t,pointer:n,problem:r}of e){let s=`${t}${n} (line ${r.line}, column ${r.column}): ${r.message}`;if(!qo.has(s))qo.add(s),console.warn(`Warning: ${s}`)}}function fn(e,t){let n=[],r=ss(e,t,n);return zo(n),r}function Ko(e,t){let n=[],r=Bo(e,t,n);return zo(n),r}var qo;var qn=j(()=>{Uo();qo=new Set});function ge(e){return e.replaceAll(/[A-Z]/g,(t)=>`-${t.toLowerCase()}`)}function Go(e,t){if(e.startsWith("@--"))return t[e.slice(1)]??e.slice(1);if(e.startsWith("@(")){let n=e.slice(2,-1).trim();return Xl.has(n.toLowerCase())?n:e.slice(1)}return null}function pn(e){return e.startsWith("@position-try")||e.startsWith("@property")||e.startsWith("@font-face")||e.startsWith("@counter-style")}function mn(e){return e.startsWith("@keyframes")}function Yo(e,t){let n=[];for(let r of dn(e))for(let s of dn(t))n.push(Zl(r,s));return n.join(", ")}function Zl(e,t){let n=Kn(t,e);if(n!==null)return n;if(t.startsWith("[")||t.startsWith(":")||t.startsWith("."))return`${e}${t}`;return`${e} ${t}`}function is(e){let t=[],n=null,r=0;for(let s=0;s<e.length;s+=1){let o=e[s];if(n){if(o==="\\")s+=1;else if(o===n)n=null;continue}if(o==="\\")s+=1;else if(o==='"'||o==="'")n=o;else if(o==="[")r+=1;else if(o==="]")r=Math.max(0,r-1);else if(o==="&"&&r===0)t.push(s)}return t}function Kn(e,t){return is(e).length>0?Ql(e,t):null}function Ql(e,t){let n="",r=0;for(let s of is(e))n+=e.slice(r,s)+t,r=s+1;return n+e.slice(r)}function dn(e){let t=[],n=0,r=null,s=0;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){if(a==="\\")i+=1;else if(a===r)r=null;continue}if(a==='"'||a==="'")r=a;else if(a==="("||a==="[")n+=1;else if(a===")"||a==="]")n=Math.max(0,n-1);else if(a===","&&n===0)t.push(e.slice(s,i)),s=i+1}t.push(e.slice(s));let o=t.flatMap((i)=>{let a=i.trim();return a===""?[]:[a]});return o.length>0?o:[e]}function Ue(e){let t=/^\(\s*prefers-color-scheme\s*:\s*(light|dark)\s*\)$/.exec(e.trim())?.[1];return t==="light"||t==="dark"?t:null}function as(e,t){if(e===":root"||e==="html")return{auto:`${e}:where(:not([${Re}]))`,forced:`${e}:where([${Re}="${t}"])`};return{auto:`:where(:root:not([${Re}])) ${e}`,forced:`:where(:root[${Re}="${t}"]) ${e}`}}function at(e){return e.startsWith(":")||e.startsWith(".")||e.startsWith("&")||e.startsWith("[")}function ls(e){return e.startsWith("--")?e:ge(e)}function zn(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function Xo(e,t,n){let r=n.map(([o,i])=>`${o}: ${i}`).join("; "),s=t===null?r:`${t} { ${r} }`;for(let o=e.length-1;o>=0;o-=1)s=`${e[o]} { ${s} }`;return s}function ec(e,t,n){let r=n.map(({selector:o,declarations:i})=>`${o} { ${i.map(([a,l])=>`${a}: ${l}`).join("; ")} }`).join(" "),s=`@keyframes ${t} { ${r} }`;for(let o=e.length-1;o>=0;o-=1)s=`${e[o]} { ${s} }`;return s}function tc(e){let t=Object.keys(e).filter((r)=>mn(r));if(t.length===0)return e;let n={...e};for(let r of t)delete n[r];return n}function nc(e){let n=is(e).at(-1),r=n===void 0?e:e.slice(n+1);return r===""||r.startsWith(":")||r.startsWith(".")||r.startsWith("[")}function Tt(e,t={}){let{scope:n=null,mediaQueries:r={},transposeValue:s=(m)=>m,transposeSelector:o=(m)=>m,resolveValue:i}=t,a=[],l=(m)=>m!==null&&typeof m==="object"&&!Array.isArray(m)&&!H(m),c=(m,x)=>{if(l(x))return[x];if(!pn(m)||!Array.isArray(x)||x.length===0)return[];return x.every((E)=>l(E))?x:[]},u=(m,x,E,O)=>{if(x===void 0||x===null)return null;if(H(x))return E?i?.(m,x,O)??null:null;if(A(x))return null;let N=String(x);if(L(N))return E?i?.(m,N,O)??null:null;return s(N)},f=(m,x,E=!0,O="self")=>{let N=[];for(let[C,z]of Object.entries(m)){if(c(C,z).length>0)continue;if(x&&(C.startsWith("@")||at(C)))continue;if(C.startsWith("$"))continue;let S=u(C,z,E,O);if(S!==null)N.push([ls(C),S])}return N},p=(m,x,E,O,N)=>{if(E.length===0)return;let C=x;if(C!==null){let y=o(C);if(y===null)return;C=y}let z=Xo(m,C,E),S={text:z,conditions:[...m],selector:C,declarations:E,target:O,key:zn(z)};if(b(N)&&N!=="")S.description=N;a.push(S)},d=(m,x,E)=>{let O=m.slice(10).trim();if(O==="")return;let N=[];for(let[z,S]of Object.entries(x)){if(!l(S))continue;let y=f(S,!0,!1,"unscoped");if(y.length>0)N.push({declarations:y,selector:z.trim()})}if(N.length===0)return;let C=ec(E,O,N);a.push({blocks:N,conditions:[...E],declarations:[],key:zn(C),selector:null,target:"unscoped",text:C})},h=(m,x,E,O,N)=>{if(m==="@--")return;if(pn(m)){p([...O,m],null,f(x,!1,!0,"unscoped"),"unscoped",x.$description);return}if(mn(m)){d(m,x,O);return}let C=Go(m,r),z=C===null?m:`@media ${C}`,S=C===null?null:Ue(C);if(S!==null&&E!==null){let{auto:y,forced:w}=as(E,S);g(x,y,[...O,z],N),g(tc(x),w,O,N);return}g(x,E,[...O,z],N)};function g(m,x,E,O){p(E,x,f(m,!0,!0,O),O,m.$description);for(let[N,C]of Object.entries(m))for(let z of c(N,C))if(N.startsWith("@"))h(N,z,x,E,O);else if(x!==null)g(z,Yo(x,N),E,nc(N)?O:"descendant")}return g(e,n,[],"self"),a}var Xl,Re="data-color-scheme",Gn="jx-color-scheme";var gn=j(()=>{U();Xl=new Set(["all","print","screen","speech"])});function sp(){return`the Intl helpers ${us.join(", ")}`}var Me="en-US",cs="UTC",Zo,us,Qo;var ei=j(()=>{Zo=[{api:"Intl.NumberFormat",params:["value","locale","options"],path:"Intl/formatNumber",summary:"Format a number for a locale — grouping, decimals, currency, percent, units."},{api:"Intl.DateTimeFormat",params:["value","locale","options"],path:"Intl/formatDate",summary:"Format a date or timestamp for a locale. Pass `timeZone` in options."},{api:"Intl.RelativeTimeFormat",params:["value","unit","locale","options"],path:"Intl/formatRelativeTime",summary:'Format a relative time — `-3, "day"` becomes "3 days ago".'},{api:"Intl.ListFormat",params:["values","locale","options"],path:"Intl/formatList",summary:'Join a list the way a locale does — "a, b, and c", not a hand-written comma join.'},{api:"Intl.PluralRules",params:["value","locale","options"],path:"Intl/plural",summary:'Which plural category a number falls in ("one", "few", "other") — many languages have '+"more than two, so a ternary on `n === 1` is wrong outside English."},{api:"Intl.Collator",params:["a","b","locale","options"],path:"Intl/compare",summary:'Compare two strings for sorting. `<` and `sort()` order by UTF-16 code unit, which puts "Zebra" before "apple" and sorts every accented word into the wrong place.'},{api:"Intl.DisplayNames",params:["code","type","locale","options"],path:"Intl/displayName",summary:'The name of a language, region, script or currency in a locale — "de" as "German" or '+'"Deutsch", from CLDR rather than a hand-kept table.'},{api:"Intl.Segmenter",params:["value","granularity","locale"],path:"Intl/segment",summary:"Split text into graphemes, words or sentences (UAX #29). `[...str]` splits code points, so it cuts an emoji with a skin-tone modifier in half."}],us=Zo.map((e)=>e.path),Qo=Object.fromEntries(Zo.map((e)=>[e.path,e.params.indexOf("locale")]))});function rc(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function re(e){return e.replaceAll("~","~0").replaceAll("/","~1")}function qe(e){if(e==="")return[];return e.split("/").map((t)=>rc(t))}function oe(e,t){let n=e;for(let r of qe(t))n=n?.[r];return n}function I(e,t){let n=e;for(let r of qe(t))n+=fs.test(r)?`.${r}`:`[${JSON.stringify(r)}]`;return n}function ti(e,t){let n=e;for(let[r,s]of qe(t).entries()){let o=r===0?"":"?.";n+=fs.test(s)?`${r===0?".":o}${s}`:`${o}[${JSON.stringify(s)}]`}return n}function ze(e){return fs.test(e)?e:JSON.stringify(e)}function ni(e){let t=e.replaceAll(/[^A-Za-z0-9_$]/g,"_");if(t==="")return"ref";return/^\d/.test(t)?`_${t}`:t}var fs;var Rt=j(()=>{fs=/^[A-Za-z_$][A-Za-z0-9_$]*$/});function ps(e){let t=e.$map;return A(t)?t:void 0}function ii(e){return A(e)&&!Array.isArray(e)&&"operator"in e}function hn(e){return A(e)&&!Array.isArray(e)&&"$ref"in e}function ac(e,t,n){let r=Qo[e];if(r===void 0||r<0||t[r]!=null)return t;let s=oe(n.$page,"locale");if(!b(s)||s==="")return t;let o=[...t];return o[r]=s,o}function ui(e){return e.startsWith("window#/")&&oc.has(e.slice(8))}function Ke(e){return ai.has(e)}function G(e,t){if(!e)return;let n=(e.depth??0)+1;if(n>lc)return;return{depth:n,path:[...e.path??[],...Array.isArray(t)?t:[t]],report:e.report}}function K(e,t,n,r,s){if(e===null||e===void 0)return e;if(ii(e))return Ee(e,t,n,r,s);if(hn(e)){let o=Yn(e.$ref,t,n,r);return s?.report(s.path??[],o),o}if(Array.isArray(e))return fi(e,t,n,r,s);return s?.report(s.path??[],e),e}function fi(e,t,n,r,s){return e.map((o,i)=>K(o,t,n,r,G(s,i)))}function cc(e,t,n,r){let s=(o)=>{if(!e.slice(o.length).includes("/"))return t;return Yn(e.slice(0,e.lastIndexOf("/")),t,n,r)};if(e.startsWith("#/state/"))return s("#/state/");if(e.startsWith("parent#/"))return s("parent#/");if(e.startsWith("$map/")||e.startsWith("$args/"))return e.split("/").length>2?Yn(e.slice(0,e.lastIndexOf("/")),t,n,r):void 0;return}function Yn(e,t,n,r){if(e==="$reduce/acc")return r?.acc;if(e.startsWith("$reduce/"))return r?.acc;if(e.startsWith("$args/")){let s=e.slice(6).split("/"),o=r?.args?.[s[0]];return s.length>1?oe(o,s.slice(1).join("/")):o}if(e.startsWith("event#/")){let s=e.slice(7);return oe(n,s)}if(e.startsWith("$map/")){let s=e.split("/"),[,o]=s,i,a=ps(t);if(o==="item")i=r?.item??a?.item??t["$map/item"];else if(o==="index")i=r?.index??a?.index??t["$map/index"];else i=a?.[o]??t[`$map/${o}`];return s.length>2?oe(i,s.slice(2).join("/")):i}if(e.startsWith("#/state/"))return oe(t,e.slice(8));if(e.startsWith("parent#/"))return oe(t,e.slice(8));if(e.startsWith("window#/"))return oe(globalThis.window,e.slice(8));if(e.startsWith("document#/"))return oe(globalThis.document,e.slice(10));return oe(t,e)??null}function uc(e,t,n,r){if(e.startsWith("$map/")){let s=e.split("/"),[,o]=s,i,a=ps(t);if(o==="item")i=r?.item??a?.item??t["$map/item"];else if(o==="index")i=r?.index??a?.index??t["$map/index"];else i=a?.[o]??t[`$map/${o}`];if(s.length>2){let l=s.slice(2),c=l.pop(),u=l.length>0?oe(i,l.join("/")):i;return{key:c,obj:u}}return{key:o==="item"?"$map/item":"$map/index",obj:ps(t)??t}}if(e.startsWith("#/state/")){let s=e.slice(8);if(s.indexOf("/")===-1)return{key:s,obj:t};let i=qe(s),a=i.pop(),l=t;for(let c of i)l=l[c];return{key:a,obj:l}}return{key:e,obj:t}}function Ee(e,t,n,r,s){let o=fc(e,t,n,r,s);return s?.report(s.path??[],o),o}function si(e,t,n){switch(e){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n;case"<":return t<n;case"<=":return t<=n;case">":return t>n;default:return t>=n}}function fc(e,t,n,r,s){let{operator:o,target:i,value:a,initial:l}=e;if(!sc.has(o))throw Error(`$expression: unknown operator "${o}"`);if(ds.has(o)&&!("value"in e)){let c=K(i,t,n,r,G(s,"target"));if(o==="!")return!c;if(o==="-")return-c}if(o==="call"){let c=hn(i)?i.$ref:void 0;if(!b(c))throw TypeError("$expression: call target must be a $ref pointer");let u=(r?.callDepth??0)+1;if(u>ri)throw Error(`$expression: call depth exceeded (${ri})`);let f=Array.isArray(a)?a.map((d,h)=>K(d,t,n,r,G(s,["value",h]))):[];if(c.startsWith("window#/")){if(!ui(c))throw Error(`$expression: "${c}" is not a blessed pure global`);let d=c.slice(8),h=ic.get(d);if(h)return h(...ac(d,f,t));let g=oe(globalThis.window,d),m=d.lastIndexOf("/"),x=m===-1?globalThis.window:oe(globalThis.window,d.slice(0,m));return g.apply(x,f)}let p=Yn(c,t,n,r);if(Se(p))return p.apply(cc(c,t,n,r),f);if(A(p)&&"$expression"in p){let d=p,h={};for(let[g,m]of(d.parameters??[]).entries()){let x=b(m)?m:m?.name??"";if(!x)continue;h[x]=f[g]===void 0&&A(m)&&"default"in m?m.default:f[g]}return Ee(d.$expression,t,n,{args:h,callDepth:u})}throw TypeError(`$expression: call target "${c}" is not callable`)}if(hs.has(o)){if(o==="?:"){let d=K(i,t,n,r,G(s,"target"));if(s){let h=K(a,t,n,r,G(s,"value")),g=K(l,t,n,r,G(s,"initial"));return d?h:g}return d?K(a,t,n,r):K(l,t,n,r)}let c=K(i,t,n,r,G(s,"target")),u=String(c),f=e.cases??{},p=Object.hasOwn(f,u);if(s){let d;for(let[g,m]of Object.entries(f)){let x=K(m,t,n,r,G(s,["cases",g]));if(g===u)d=x}let h=K(e.default,t,n,r,G(s,"default"));return p?d:h}return p?K(f[u],t,n,r):K(e.default,t,n,r)}if(ms.has(o)){let c=K(i,t,n,r,G(s,"target")),u=K(a,t,n,r,G(s,"value"));switch(o){case"===":return c===u;case"!==":return c!==u;case"&&":return c&&u;case"||":return c||u;case"??":return c??u;default:return si(o,c,u)}}if(li.has(o)){let c=K(a,t,n,r,G(s,"value")),{obj:u,key:f}=uc(i.$ref,t,n,r);u[f]=o==="="?c:si(o.slice(0,-1),u[f],c);return}if(ci.has(o)){let c=K(i,t,n,r,G(s,"target"));switch(o){case"push":return c.push(K(a,t,n,r,G(s,"value")));case"unshift":return c.unshift(K(a,t,n,r,G(s,"value")));case"pop":return c.pop();case"shift":return c.shift();case"splice":{let u=K(a,t,n,r,G(s,"value"));return c.splice(...u)}default:break}}if(xs.has(o)){let c=K(i,t,n,r,G(s,"target")),u=a===void 0?[]:Array.isArray(a)?fi(a,t,n,r,G(s,"value")):[K(a,t,n,r,G(s,"value"))],f=oe(c,o);if(!Se(f))return;return f.apply(c,u)}if(gs.has(o)){let c=K(i,t,n,r,G(s,"target")),u=a;if(o==="reduce"){let f=K(l,t,n,r,G(s,"initial"));for(let[p,d]of c.entries())f=Ee(u,t,n,{acc:f,index:p,item:d},p===0?G(s,"value"):void 0);return f}if(o==="map")return c.map((f,p)=>Ee(u,t,n,{...r,index:p,item:f},p===0?G(s,"value"):void 0));if(o==="filter")return c.filter((f,p)=>Ee(u,t,n,{...r,index:p,item:f},p===0?G(s,"value"):void 0))}return}function Y(e,t){if(e===null)return"null";if(e===void 0)return"undefined";if(ii(e))return pe(e,t);if(hn(e))return ys(e.$ref,t);if(Array.isArray(e))return e.map((n)=>Y(n,t)).join(", ");return JSON.stringify(e)}function pc(e){return`_fx_${e.replaceAll(/[^A-Za-z0-9_$]/g,"_")}`}function ys(e,t){let n=t.statePrefix??"state",r=t.eventParam??"event";if(e==="$reduce/acc")return"_acc";if(e.startsWith("$reduce/"))return"_acc";if(e.startsWith("$args/"))return I("_args",e.slice(6));if(e.startsWith("event#/"))return I(r,e.slice(7));if(e.startsWith("$map/")){let s=e.split("/"),[,o]=s;if(o==="item")return s.length>2?I("_item",s.slice(2).join("/")):"_item";if(o==="index")return"_index";return`_${o}`}if(e.startsWith("#/state/"))return I(n,e.slice(8));if(e.startsWith("parent#/"))return I(n,e.slice(8));if(e.startsWith("window#/"))return I("window",e.slice(8));if(e.startsWith("document#/"))return I("document",e.slice(10));return I(n,e)}function oi(e,t){if(hn(e))return ys(e.$ref,t);return Y(e,t)}function dc(e,t,n){let r=(i)=>t[i]??"undefined",s=`(${n.statePrefix??"state"}?.$page?.locale ?? ${JSON.stringify(Me)})`,o=JSON.stringify(cs);switch(e){case"Intl/formatNumber":return`new Intl.NumberFormat(${r(1)} ?? ${s}, ${r(2)}).format(${r(0)})`;case"Intl/formatDate":return`new Intl.DateTimeFormat(${r(1)} ?? ${s}, {timeZone: ${o}, ...${r(2)}}).format(new Date(${r(0)}))`;case"Intl/formatRelativeTime":return`new Intl.RelativeTimeFormat(${r(2)} ?? ${s}, ${r(3)}).format(${r(0)}, ${r(1)})`;case"Intl/formatList":return`new Intl.ListFormat(${r(1)} ?? ${s}, ${r(2)}).format(${r(0)})`;case"Intl/plural":return`new Intl.PluralRules(${r(1)} ?? ${s}, ${r(2)}).select(${r(0)})`;case"Intl/compare":return`new Intl.Collator(${r(2)} ?? ${s}, ${r(3)}).compare(${r(0)}, ${r(1)})`;case"Intl/displayName":return`new Intl.DisplayNames(${r(2)} ?? ${s}, {...${r(3)}, type: ${r(1)} ?? 'language'}).of(${r(0)})`;case"Intl/segment":return`[...new Intl.Segmenter(${r(2)} ?? ${s}, {granularity: ${r(1)} ?? 'grapheme'}).segment(${r(0)})].map((p) => p.segment)`;default:return null}}function pe(e,t={}){let{operator:n,target:r,value:s,initial:o}=e;if(ds.has(n)&&!("value"in e)){let i=Y(r,t);if(n==="!")return`!(${i})`;if(n==="-")return`-(${i})`}if(n==="call"){let i=(hn(r)?r.$ref:void 0)??"",a=Array.isArray(s)?s.map((l)=>Y(l,t)):[];if(i.startsWith("window#/")){if(!ui(i))throw Error(`$expression: "${i}" is not a blessed pure global`);let l=dc(i.slice(8),a,t);if(l)return l;return`window.${i.slice(8).replaceAll("/",".")}(${a.join(", ")})`}if(i.startsWith("#/state/")){let l=i.slice(8),c=t.formulaParams?.[l];if(c){let u=c.map((f,p)=>`${JSON.stringify(f)}: ${a[p]??"undefined"}`).join(", ");return`${pc(l)}(${t.statePrefix??"state"}, { ${u} })`}}return`${ys(i,t)}(${a.join(", ")})`}if(hs.has(n)){if(n==="?:"){let c=Y(r,t),u=Y(s,t),f=Y(o,t);return`(${c} ? ${u} : ${f})`}let i=Y(r,t),a=Object.entries(e.cases??{}).map(([c,u])=>`_d === ${JSON.stringify(c)} ? ${Y(u,t)} : `).join(""),l="default"in e?Y(e.default,t):"undefined";return`((_d) => ${a}${l})(String(${i}))`}if(ms.has(n)){let i=Y(r,t),a=Y(s,t);return`(${i} ${n} ${a})`}if(li.has(n)){let i=oi(r,t),a=Y(s,t);return`${i} ${n} ${a}`}if(ci.has(n)){let i=oi(r,t);switch(n){case"push":return`${i}.push(${Y(s,t)})`;case"unshift":return`${i}.unshift(${Y(s,t)})`;case"pop":return`${i}.pop()`;case"shift":return`${i}.shift()`;case"splice":{let a=Array.isArray(s)?s.map((l)=>Y(l,t)).join(", "):Y(s,t);return`${i}.splice(${a})`}default:break}}if(xs.has(n)){let i=Y(r,t),a=s===void 0?"":Array.isArray(s)?s.map((l)=>Y(l,t)).join(", "):Y(s,t);return`(${i})?.${n}?.(${a})`}if(gs.has(n)){let i=Y(r,t),a=pe(s,t);if(n==="reduce"){let l=Y(o,t);return`${i}.reduce((_acc, _item, _index) => ${a}, ${l})`}if(n==="map")return`${i}.map((_item, _index) => ${a})`;if(n==="filter")return`${i}.filter((_item, _index) => ${a})`}return"undefined"}function _t(e,t,n,r){return K(e,t,n,r)}function Ge(e,t={}){return Y(e,t)}var ai,ds,ms,li,ci,gs,hs,xs,sc,oc,ic,ri=64,lc=64;var xn=j(()=>{ei();U();Rt();ai=new Set(["=","+=","-=","*=","/=","push","pop","shift","unshift","splice"]),ds=new Set(["!","-"]),ms=new Set(["+","-","*","/","%","===","!==","<","<=",">",">=","&&","||","??"]),li=new Set(["=","+=","-=","*=","/="]),ci=new Set(["push","pop","shift","unshift","splice"]),gs=new Set(["reduce","map","filter"]),hs=new Set(["?:","switch"]),xs=new Set(["includes","indexOf","lastIndexOf","join","slice","concat","at","flat","toSorted","toReversed","toSpliced","with","toUpperCase","toLowerCase","trim","trimStart","trimEnd","split","startsWith","endsWith","padStart","padEnd","replaceAll","repeat","charAt","normalize","toLocaleUpperCase","toLocaleLowerCase","toFixed","toPrecision","toLocaleString"]),sc=new Set([...ai,...ds,...ms,...gs,...hs,...xs,"call"]),oc=new Set(["isNaN","isFinite","parseFloat","parseInt","encodeURIComponent","decodeURIComponent","structuredClone","Math/abs","Math/ceil","Math/floor","Math/round","Math/trunc","Math/sign","Math/sqrt","Math/cbrt","Math/pow","Math/exp","Math/log","Math/log2","Math/log10","Math/min","Math/max","Math/hypot","Number/isInteger","Number/isFinite","Number/isNaN","Number/parseFloat","Number/parseInt","JSON/parse","JSON/stringify","Object/keys","Object/values","Object/entries","Object/fromEntries","Array/from","Array/isArray","Array/of","String/fromCharCode","String/fromCodePoint",...us]),ic=new Map([["Intl/compare",(e,t,n,r)=>new Intl.Collator(n??Me,r).compare(e,t)],["Intl/displayName",(e,t,n,r)=>new Intl.DisplayNames(n??Me,{...r,type:t??"language"}).of(e)],["Intl/formatDate",(e,t,n)=>new Intl.DateTimeFormat(t??Me,{timeZone:cs,...n}).format(new Date(e))],["Intl/formatList",(e,t,n)=>new Intl.ListFormat(t??Me,n).format(e)],["Intl/formatNumber",(e,t,n)=>new Intl.NumberFormat(t??Me,n).format(e)],["Intl/formatRelativeTime",(e,t,n,r)=>new Intl.RelativeTimeFormat(n??Me,r).format(e,t)],["Intl/plural",(e,t,n)=>new Intl.PluralRules(t??Me,n).select(e)],["Intl/segment",(e,t,n)=>[...new Intl.Segmenter(n??Me,{granularity:t??"grapheme"}).segment(e)].map((r)=>r.segment)]])});function mc(e){return e.startsWith(pi)}function pp(e){let t=e;if(mc(t))t=t.slice(pi.length);return t=t.replace(/^\.\//,"").replace(/\.(js|ts|mjs|mts)$/,"").replaceAll("@","").replaceAll(/[/\\]+/g,"-").replaceAll(/[^\w.-]/g,"-").replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,""),`${$s}${t}.js`}function dp(e){let t=/\.(\w+)$/.exec(e)?.[1]??"",n=e.replace(/\.\w+$/,"").replaceAll("@","").replaceAll(/[/\\]+/g,"-").replaceAll(/[^\w.-]/g,"-").replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,"");return t===""?`${$s}${n}`:`${$s}${n}.${t}`}function di(e){let t=e.replaceAll("\\","/");return t.length>1&&t.endsWith("/")?t.slice(0,-1):t}function mi(e){let t=di(e);return t.startsWith("/")?t:`/${t}`}function gc(e,t){return[...e].toSorted((n,r)=>r[t].length-n[t].length)}function mp(e,t){let n=t.split("#")[0].split("?")[0];if(!n.startsWith("/"))return null;let r;try{r=decodeURIComponent(n)}catch{return null}if(/%2e|%2f/i.test(r))return null;for(let s of gc(e,"urlPrefix")){let o=mi(s.urlPrefix);if(!r.startsWith(`${o}/`))continue;let a=r.slice(o.length+1).split("/");if(a.some((c)=>c===""||c==="."||c===".."))return null;let{filter:l}=s;if(l&&!l(a.join("/")))return null;return`${di(s.dir)}/${a.join("/")}`}return null}function gp(e,t){let n=new Set;for(let r of t){let s=mi(r.urlPrefix),o=new RegExp(`${s.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)}/[^${hc}]+`,"g");for(let i of e.matchAll(o)){let a=i[0].split("#")[0].split("?")[0];if(!a.endsWith("/"))n.add(a)}}return[...n].filter(Boolean)}function xc(e){let t=[],n=0;while(n<e.length){while(n<e.length&&(/\s/.test(e[n])||e[n]===","))n+=1;if(n>=e.length)break;let r=n;while(n<e.length&&!/\s/.test(e[n]))n+=1;let s=e.slice(r,n);if(s.endsWith(",")){t.push({descriptor:"",url:s.replace(/,+$/,"")});continue}while(n<e.length&&/\s/.test(e[n]))n+=1;let o=n;while(n<e.length&&e[n]!==",")n+=1;let i=e.slice(o,n).trim();if(n+=1,s=s.replace(/,+$/,""),s!=="")t.push({descriptor:i,url:s})}return t}function yc(e){return e.map(({url:t,descriptor:n})=>n?`${t} ${n}`:t).join(", ")}function hp(e){if(!b(e)||e==="")return"";let t;try{({pathname:t}=new URL(e))}catch{return""}let n=t.replace(/\/+$/,"");if(n===""||n==="/")return"";return n.startsWith("/")?n:`/${n}`}function gi(e,t){if(e===""||!t.startsWith("/")||t.startsWith("//"))return t;if(t===e||t.startsWith(`${e}/`))return t;return e+t}function xp(e,t){let n=new URL(t);if(!n.pathname.endsWith("/"))n.pathname+="/";return new URL(e.replace(/^\/+/,""),n).href}var pi="npm:",$s="/assets/",hc;var Ss=j(()=>{U();hc=String.raw`"'\s<>()\\`});function hi(e){if("operator"in e)return{kind:"expression",node:e};if("if"in e)return{kind:"if",node:e};if("$switch"in e)return{kind:"switch",node:e};if("stopPropagation"in e)return{kind:"stopPropagation"};if("preventDefault"in e)return{kind:"preventDefault"};return{kind:"dispatch",node:e}}function $c(e){return(A(e)||Se(e))&&"then"in e&&Se(e.then)}async function Pt(e,t,n,r={}){let s=r.args?{args:r.args}:void 0;for(let o of e){let i=hi(o);switch(i.kind){case"expression":{let a=Ee(i.node,t,n,s);if($c(a))await a;break}case"if":{let a=i.node,l=_t(a.if,t,n,s)?a.then:a.else;if(Array.isArray(l))await Pt(l,t,n,r);break}case"switch":{let a=i.node,l=String(_t(a.$switch,t,n,s)),c=a.cases??{},u=Object.hasOwn(c,l)?c[l]:a.default;if(Array.isArray(u))await Pt(u,t,n,r);break}case"dispatch":{let a=i.node,l=Se(r.target)?r.target():r.target,c=n?.currentTarget??l;if(!c)break;let u={};if("detail"in a)u.detail=_t(a.detail,t,n,s);if(a.bubbles!==void 0)u.bubbles=a.bubbles;if(a.composed!==void 0)u.composed=a.composed;c.dispatchEvent(new CustomEvent(a.dispatchEvent,u));break}case"stopPropagation":{n?.stopPropagation();break}case"preventDefault":{n?.preventDefault();break}default:break}}}function Ce(e,t={}){let n=t.indent??"",r=[];for(let s of e){let o=hi(s);switch(o.kind){case"expression":{r.push(`${n}${pe(o.node,t)};`);break}case"if":{let i=o.node,a=Ge(i.if,t),l={...t,indent:`${n} `};if(r.push(`${n}if (${a}) {`,Ce(i.then??[],l)),i.else)r.push(`${n}} else {`,Ce(i.else,l));r.push(`${n}}`);break}case"switch":{let i=o.node,a=Ge(i.$switch,t),l={...t,indent:`${n} `};r.push(`${n}switch (String(${a})) {`);for(let[c,u]of Object.entries(i.cases??{}))r.push(`${n} case ${JSON.stringify(c)}: {`,Ce(u,l),`${n} break;`,`${n} }`);if(i.default)r.push(`${n} default: {`,Ce(i.default,l),`${n} }`);r.push(`${n}}`);break}case"dispatch":{let i=o.node,a=t.eventParam??"event",l=t.dispatchTarget??`(${a} && ${a}.currentTarget)`,c=[];if("detail"in i)c.push(`detail: ${Ge(i.detail,t)}`);if(i.bubbles!==void 0)c.push(`bubbles: ${JSON.stringify(i.bubbles)}`);if(i.composed!==void 0)c.push(`composed: ${JSON.stringify(i.composed)}`);let u=c.length>0?`, { ${c.join(", ")} }`:"";r.push(`${n}${l}?.dispatchEvent(new CustomEvent(${JSON.stringify(i.dispatchEvent)}${u}));`);break}case"stopPropagation":{r.push(`${n}${t.eventParam??"event"}?.stopPropagation();`);break}case"preventDefault":{r.push(`${n}${t.eventParam??"event"}?.preventDefault();`);break}default:break}}return r.join(`
|
|
11
|
+
`)}var Xn=j(()=>{U();xn()});function Zn(e){if(!e.startsWith("${")||!e.endsWith("}"))return!1;let t=0;for(let n=1;n<e.length;n+=1){let r=e[n];if(r==="{")t+=1;else if(r==="}"){if(t-=1,t===0)return n===e.length-1}}return!1}function yi(){return[...xi].toSorted()}function St(e,t){let n=e.toLowerCase();if(n.startsWith("aria-")||xi.has(n))return String(t);return t?"":null}var Ye,xi,bs=32,Qn,er="jx-slot",ws="data-jx-slots",Es="jx.slot.group",Pp;var yn=j(()=>{gn();xn();Rt();U();Ss();Xn();gn();Ye=new Set(["$schema","$id","$defs","state","$ref","$props","$elements","$title","$description","$switch","$prototype","$src","$export","$media","$map","timing","default","description","body","parameters","arguments","name","tagName","children","style","attributes","items","map","filter","sort","cases","observedAttributes"]),xi=new Set(["contenteditable","draggable","spellcheck"]);Qn=/^[\t\n\f\r ]+$/u,Pp=(()=>{let e=Symbol.for(Es),t=globalThis;return t[e]??=new WeakMap,t[e]})()});function $i(e,t,n,r,s=bc){let o=[],i=(f,p)=>{let d={mediaQueries:t,scope:p,transposeValue:n};if(r)d.resolveValue=(h,g)=>r(h,g,p);for(let h of Tt(f,d))o.push(h.text)},a={},l={},c=[],u=[];for(let[f,p]of Object.entries(e)){if(A(p)&&!Array.isArray(p)){if(f.startsWith("@"))c.push([f,p]);else if(!f.startsWith("--"))u.push([f,p]);continue}if(at(f)||f.startsWith("@"))continue;if(f.startsWith("--")||f==="colorScheme"||f==="color-scheme")a[f]=p;else l[f]=p}i(a,s.root),i(l,s.body);for(let[f,p]of u)if(f.startsWith("&"))i({[f]:p},s.root);else i(p,f);for(let[f,p]of c){if(pn(f)||mn(f)){i({[f]:p},null);continue}let d={},h={},g=[];for(let[m,x]of Object.entries(p)){if(A(x)&&!Array.isArray(x)){if(!m.startsWith("@"))g.push([m,x]);continue}if(m.startsWith("--"))d[m]=x;else h[m]=x}i({[f]:d},s.root),i({[f]:h},s.body);for(let[m,x]of g)i({[f]:x},m)}if(Object.values(t).some((f)=>Ue(f)!==null)&&!("colorScheme"in e))o.push(`${s.root} { color-scheme: light dark }`,`${s.root}:where([${Re}="light"]) { color-scheme: light }`,`${s.root}:where([${Re}="dark"]) { color-scheme: dark }`);return o.join(`
|
|
12
|
+
`)}var bc;var Si=j(()=>{gn();U();bc={body:"body",root:":root"}});function bi(e){return e===!1||e==="open"||e==="closed"}function tr(e,t){let n=e?.$shadow;if(bi(n))return n===!1?null:n;let r=t?.shadow;return bi(r)&&r!==!1?r:null}function wi(e,t){return t===null?e:":host"}function Sn(e,t){let n=[];for(let[r,s]of(e.parameters??[]).entries()){let o=Ei(s);if(!o)continue;let i=Ji(s)?`_a[${r}] === undefined ? ${JSON.stringify(s.default)} : _a[${r}]`:`_a[${r}]`;n.push(`${JSON.stringify(o)}: ${i}`)}return`(..._a) => { const _args = { ${n.join(", ")} }; return ${t}; }`}function Ei(e){return b(e)?e:e?.name??""}function Ji(e){return A(e)&&"default"in e}function or(e,t){let n=js(e,t);return n===e?e:`${n} as ${e}`}function js(e,t){let n=t?.$export;return b(n)&&n!==""?n:e}function ir(e,t,n={}){let{statePrefix:r="state",indent:s="",collect:o}=n,{url:i}=t,a=L(i),l=t.method??"GET";if(t.manual)return`${s}// ${e}: manual Request — fetch triggered by user action`;let c=[`// ${e}: auto-fetch from ${a?"(dynamic URL)":i}`,o?`${o}.push(effect(() => {`:"effect(() => {"];if(a)c.push(` const url = \`${Ec(i,r)}\`;`,' if (!url || url === "undefined" || url.includes("undefined")) return;');else c.push(` const url = ${JSON.stringify(i)};`);let u=[];if(l!=="GET")u.push(`method: ${JSON.stringify(l)}`);if(t.headers)u.push(`headers: ${JSON.stringify(t.headers)}`);if(t.body){let p=A(t.body)?JSON.stringify(JSON.stringify(t.body)):JSON.stringify(t.body);u.push(`body: ${p}`)}let f=u.length>0?`, { ${u.join(", ")} }`:"";return c.push(` fetch(url${f})`," .then(r => r.ok ? r.json() : Promise.reject(r.statusText))",` .then(d => { ${r}.${e} = d; })`,` .catch(e => { ${r}.${e} = { error: String(e) }; });`,o?"}));":"});"),c.map((p)=>`${s}${p}`).join(`
|
|
13
|
+
`)}function ar(e,t,n={}){let{statePrefix:r="state",indent:s="",collect:o,serverBaseUrl:i="/_jx/server"}=n,a=JSON.stringify(`${i}/${t.$export}`),l=Object.entries(t.arguments??{}),c=l.map(([g,m])=>{if(!H(m))return`${ze(g)}: ${JSON.stringify(m)}`;if(wc.some((x)=>m.$ref.startsWith(x)))throw Error(`Server function "${e}": argument "${g}" references "${m.$ref}", which a state entry cannot read. Use a #/state/, parent#/, window#/ or document#/ reference.`);return`${ze(g)}: ${Ge({$ref:m.$ref},{statePrefix:r})}`}),u=l.some(([,g])=>H(g)),f=`${Ti}(${a}, ${c.length>0?`{ ${c.join(", ")} }`:"{}"})`,p=I(r,re(e)),d=`console.error(${JSON.stringify(`Jx server function ${t.$export}:`)}, e)`;return(u?[`// ${e}: server function ${t.$export}, called again when an argument changes`,"{"," let _jxSeq = 0;",o?` ${o}.push(effect(() => {`:" effect(() => {"," const _seq = ++_jxSeq;",` ${f}`,` .then((d) => { if (_seq === _jxSeq) ${p} = d; })`,` .catch((e) => { if (_seq === _jxSeq) ${d}; });`,o?" }));":" });","}"]:[`// ${e}: server function ${t.$export}, called once`,f,` .then((d) => { ${p} = d; })`,` .catch((e) => { ${d}; });`]).map((g)=>`${s}${g}`).join(`
|
|
14
|
+
`)}function Ec(e,t){if(t==="state")return e;return e.replaceAll(/\$\{([^}]*)\}/g,(n,r)=>`\${${r.replaceAll(/(?<!this\.)\bstate\./g,`${t}.`)}}`)}function ur(e){if(!A(e))return!1;if(e.state)for(let[t,n]of Object.entries(e.state)){if(t==="$site"||t==="$page")continue;if(!A(n)||Array.isArray(n))return!0;if(n.timing==="compiler")continue;if(n.$prototype)return!0;if("default"in n)return!0;if(it(n))continue;return!0}if(e.$switch)return!0;if(ne(e)||Qr(e.children))return!0;if(Array.isArray(e.children)&&e.children.some((t)=>ur(t)))return!0;for(let[t,n]of Object.entries(e)){if(Ye.has(t))continue;if(H(n))return!0;if(L(n))return!0}if(A(e.style)){for(let t of Object.values(e.style))if(L(t))return!0}if(A(e.attributes)){for(let t of Object.values(e.attributes))if(L(t))return!0}return!1}function Ai(e){if(!A(e))return!1;if(e.$switch)return!0;if(ne(e)||Qr(e.children))return!0;for(let[t,n]of Object.entries(e)){if(Ye.has(t))continue;if(H(n))return!0;if(L(n))return!0}if(A(e.style)){for(let t of Object.values(e.style))if(L(t))return!0}if(A(e.attributes)){for(let t of Object.values(e.attributes))if(L(t))return!0}return!1}function Dt(e,t=null,n={},r={}){let s=e?.state?Os(e.state,t):t??Oi();return{media:r,scope:s,scopeDefs:n}}function Oi(e=null){return Object.create(e)}function Ci(e){return e[Ni]}function Cc(e,t,n){if(t>0&&Ac.test(e.charAt(t-1)))return!1;let r=t+5;if(n)return!Oc.test(e.charAt(r));while(/\s/u.test(e.charAt(r)))r+=1;return e.charAt(r)==="."}function Mt(e,t,n={}){if(!e.includes("state"))return e;let r=n.bare===!0,s=n.code===!1?e:$t(e),o="",i=0;for(let a=s.indexOf("state");a!==-1;a=s.indexOf("state",a+1))if(Cc(s,a,r))o+=e.slice(i,a)+t,i=a+5;return o+e.slice(i)}function As(e,t){if(b(e)){if(!e.includes("state."))return;let o=$t(e);for(let i of o.matchAll(Jc))t.add(i[1]);for(let i of o.matchAll(Nc))t.add(i[1]);return}if(Array.isArray(e)){for(let o of e)As(o,t);return}if(!A(e))return;let n=e,{operator:r,target:s}=n;if(b(r)&&Ke(r)&&H(s)&&s.$ref.startsWith("#/state/"))t.add(s.$ref.slice(8).split("/")[0]);for(let o of Object.values(n))As(o,t)}function Os(e={},t=null){let n=Oi(t),r=t?Ci(t):void 0,s=new Set(r);Object.defineProperty(n,Ni,{configurable:!0,enumerable:!1,value:s,writable:!0});let o=new Set;for(let c of Object.values(e))if(be(c)||we(c))As(c.body??c.$expression,o);for(let c of o)if(c in e)s.add(c);for(let[c,u]of Object.entries(e)){if(!A(u)||Array.isArray(u)){Xe(n,c,nr(u));continue}if("default"in u){Xe(n,c,nr(u.default));continue}if(He(u)){s.add(c);continue}if(!u.$prototype&&!("$expression"in u)&&!it(u))Xe(n,c,nr(u))}let i=[],a=[];for(let[c,u]of Object.entries(e)){if(L(u)){i.push([c,u]);continue}if(!A(u))continue;if(we(u)){let f=u.$expression;if(xt(u)){let p=u.parameters;Xe(n,c,(...d)=>{let h={};for(let[g,m]of p.entries()){let x=Ei(m);if(!x)continue;h[x]=d[g]===void 0&&Ji(m)?m.default:d[g]}return Ee(f,n,null,{args:h})})}else if(Ke(f.operator))Xe(n,c,(p,d)=>Ee(f,p,d));else Js(n,c,()=>Ee(f,n,null));continue}if(be(u)){if(st(u)){let{body:f}=u;Xe(n,c,(p,d)=>{Pt(f,p??n,d??null)})}else if(b(u.body)){let f=u.parameters?Be(u.parameters):u.arguments??[],{body:p}=u,d=f.includes("state")?f:["state",...f],h=Function(...d,p),g=(m,x)=>h(...d.map((E)=>E==="state"?m:x));if(yt(p))Js(n,c,()=>g(n)),a.push([c,p]);else Xe(n,c,g)}else Xe(n,c,()=>{}),s.add(c);continue}if(ot(u)&&(u.$prototype==="LocalStorage"||u.$prototype==="SessionStorage")){Xe(n,c,nr(u.default??null));continue}if(ot(u)&&u.$prototype==="Request")s.add(c)}let l=!0;while(l){l=!1;for(let[c,u]of[...a,...i])if(!s.has(c)&&ji(u,n))s.add(c),l=!0}for(let[c,u]of i)Js(n,c,()=>vs(u,n));return n}function Xe(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function Js(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:n})}function B(e,t){if(H(e))return jc(e.$ref,t);if(L(e))return vs(e,t);return e}function he(e){return H(e)}function jc(e,t){if(!b(e))return e;if(e.startsWith("$map/")){let n=e.split("/"),r=n[1],o=t.$map?.[r]??t[`$map/${r}`];return n.length>2?Ns(o,n.slice(2).join("/")):o}if(e.startsWith("#/state/"))return Ns(t,e.slice(8));return Ns(t,e)??null}function ji(e,t){if(!t)return!1;let n=Ci(t);for(let r of e.matchAll(/\bstate\.([A-Za-z_$][\w$]*)\s*(\()?/g)){if(r[2])continue;let s=r[1];if(n?.has(s))return!0;let o;try{o=t[s]}catch{continue}if(Se(o))return!0}return!1}function fr(e){return Zn(e)?`(${e.slice(2,-1)})`:`\`${e}\``}function vs(e,t){if(ji(e,t))return null;let n=["state","$map","$site","$page"],r=[t,t?.$map,t?.$site,t?.$page];try{let s=Zn(e)?`return (${e.slice(2,-1)})`:`return \`${e}\``;return Function(...n,s)(...r)}catch{return null}}function Ns(e,t){return oe(e,t)}function nr(e){if(!A(e))return e;return structuredClone(e)}function vc(e,t){if(!e||!t)return"";return Object.entries(e).filter(([n,r])=>!n.startsWith(":")&&!n.startsWith(".")&&!n.startsWith("&")&&!n.startsWith("[")&&!n.startsWith("@")&&L(r)).map(([n,r])=>{let s=B(r,t);return s==null?null:`${ge(n)}: ${s}`}).filter(Boolean).join("; ")}function bt(e,t,n=""){let r="",s=B(e.id,t),o=B(e.className,t),i=B(e.hidden,t),a=B(e.tabIndex,t),l=B(e.title,t),c=B(e.lang,t),u=B(e.dir,t);if(s)r+=` id="${P(String(s))}"`;if(o)r+=` class="${P(String(o))}"`;if(i)r+=" hidden";if(a!==void 0&&a!==null)r+=` tabindex="${P(String(a))}"`;if(l)r+=` title="${P(String(l))}"`;if(c)r+=` lang="${P(String(c))}"`;if(u)r+=` dir="${P(String(u))}"`;let f=[vc(e.style,t),n].filter(Boolean).join("; ");if(f)r+=` style="${P(f)}"`;if(e.attributes)for(let[p,d]of Object.entries(e.attributes)){let h=B(d,t);if(me(h)){let g=St(p,h);if(g!==null)r+=g===""?` ${p}`:` ${p}="${P(g)}"`;continue}if(b(h)||se(h))r+=` ${p}="${P(String(h))}"`}if(e.$static)r+=" data-jx-static";else if(e.$prerendered)r+=" data-jx-prerendered";return r}function bn(e,t=" "){return e?"":`
|
|
15
|
+
${t}`}function pr(){let e=JSON.stringify(Gn),t=JSON.stringify(Re);return`(function(){try{var s=localStorage.getItem(${e});if(s==="light"||s==="dark"){document.documentElement.setAttribute(${t},s)}}catch(e){}})()`}function rr(e,t,n,r){for(let s of Tt(t,{mediaQueries:r,resolveValue:(o,i)=>vi(o,i,n),scope:n}))e.push(s.text)}function vi(e,t,n){let r=b(t)?t:t.$ref;return Tc.push({property:e,selector:n,source:r}),null}function dr(){return`const __jxEnumAttrs = new Set(${JSON.stringify(yi())});
|
|
16
|
+
function ${Ft}(n, v) {
|
|
8
17
|
if (typeof v !== 'boolean') return v;
|
|
9
18
|
const l = n.toLowerCase();
|
|
10
19
|
if (l.startsWith('aria-') || __jxEnumAttrs.has(l)) return String(v);
|
|
11
20
|
return v ? '' : null;
|
|
12
|
-
}`}function
|
|
13
|
-
`)}function
|
|
14
|
-
`)}function kt(e){for(let t of
|
|
15
|
-
${
|
|
21
|
+
}`}function mr(){return[`async function ${Ti}(url, args) {`," const r = await fetch(url, {"," method: 'POST',"," headers: { 'Content-Type': 'application/json' },"," body: JSON.stringify(args),"," });"," const text = await r.text();"," let body = null;"," if (text !== '') {"," try { body = JSON.parse(text); } catch (e) { if (r.ok) throw e; }"," }"," if (!r.ok) throw new Error((body && body.error) || text || r.statusText);"," return body;","}"].join(`
|
|
22
|
+
`)}function Ri(){let e=`new RegExp(${JSON.stringify(Qn.source)}, ${JSON.stringify(Qn.flags)})`,t=`Symbol.for(${JSON.stringify(Es)})`,n=JSON.stringify(ws),r=JSON.stringify(er);return[`const __jxSlotWs = ${e};`,`const __jxSlotRec = globalThis[${t}] || (globalThis[${t}] = new WeakMap());`,`function ${Ts}(host) {`,` const id = host.getAttribute(${n});`," if (id === null) return Array.from(host.childNodes);",` host.removeAttribute(${n});`,` const open = ${r} + ' ' + id + ' ';`,` const close = '/' + ${r} + ' ' + id;`," const openers = [];"," const w = host.ownerDocument.createTreeWalker(host, 128);"," for (let n = w.nextNode(); n; n = w.nextNode()) if (n.data.startsWith(open)) openers.push(n);"," const out = [];"," for (const o of openers) {"," const name = decodeURIComponent(o.data.slice(open.length));"," for (let n = o.nextSibling; n; n = n.nextSibling) {"," if (n.nodeType === 8 && n.data === close) break;"," __jxSlotRec.set(n, name);"," out.push(n);"," }"," }"," return out;","}",`function ${Rs}(host, captured) {`," const slots = Array.from(host.querySelectorAll('slot'));"," if (slots.length === 0) return;"," const groups = new Map();"," for (const n of captured) {"," if (n.nodeType === 3 && __jxSlotWs.test(n.data)) continue;"," const r = __jxSlotRec.get(n);"," __jxSlotRec.delete(n);"," const name = r !== undefined ? r : n.nodeType === 1 ? n.getAttribute('slot') || '' : '';"," let g = groups.get(name);"," if (!g) { g = []; groups.set(name, g); }"," g.push(n);"," }"," const taken = new Set();"," for (const slot of slots) {"," const name = slot.getAttribute('name') || '';"," let g = [];"," if (!taken.has(name)) { taken.add(name); g = groups.get(name) || []; }"," const content = g.some((n) => n.nodeType === 1 || (n.nodeType === 3 && n.data !== ''));"," const placed = content ? g : g.concat(Array.from(slot.childNodes));"," const p = slot.parentElement;"," if (p && p !== host && p.localName.includes('-')) {"," const r = __jxSlotRec.get(slot);"," const f = r !== undefined ? r : slot.getAttribute('slot') || '';"," for (const n of placed) __jxSlotRec.set(n, f);"," }"," slot.replaceWith(...placed);"," }","}"].join(`
|
|
23
|
+
`)}function kt(e){for(let t of _s(e)){if(ne(t)){if(t.map&&kt([t.map]))return!0;continue}if(!un(t))continue;if(t.tagName==="slot")return!0;let n=Object.values(t.cases??{}).filter((r)=>un(r)&&!he(r));if(kt(n)||kt(t.children))return!0}return!1}function _s(e){if(ne(e))return[e];if(!Array.isArray(e))return[];return e}function Wt(e,t={},n=null){let r=[],s=$i(A(n)?n:{},t,(i)=>i,vi);if(s!=="")r.push(s);if(It(e,r,t,"",{n:0}),r.length===0)return"";return`<style>
|
|
24
|
+
${Rc(r.join(`
|
|
16
25
|
`))}
|
|
17
|
-
</style>`}function
|
|
18
|
-
${
|
|
19
|
-
`);return""}function
|
|
20
|
-
`);if(!A(e))return"";if(e.$prototype==="Array")return"";if(e.$switch){let
|
|
21
|
-
${f}`}let o=r?.componentDefs.get(s);if(o&&r)return
|
|
22
|
-
`):"";
|
|
26
|
+
</style>`}function Rc(e){return e.replaceAll(/<\/(?=style)/gi,String.raw`<\/`)}function It(e,t,n,r="",s,o="jx"){let i=s??{n:0};if(!A(e))return;if(e.style&&!e.id&&!e.className)e.className=`${o}-${i.n}`,i.n+=1;let a=vt(e.tagName).join(", ")||"*",l=e.id?`#${e.id}`:e.className?`.${e.className.split(" ")[0]}`:a;if(e.style)rr(t,e.style,l,n);if(Array.isArray(e.children))for(let c of e.children)It(c,t,n,l,i,o);if(A(e.cases))for(let c of Object.values(e.cases))It(c,t,n,l,i,o)}function P(e){return String(e).replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function gr(e){return e.split("-").map((t)=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}function Yp(e){let t=[];return _i(e,t),t}function _i(e,t){if(!A(e))return;if(e.state){for(let[n,r]of Object.entries(e.state))if(He(r))t.push({exportName:r.$export,key:n,src:r.$src})}if(Array.isArray(e.children))for(let n of e.children)_i(n,t)}function ks(e,t){if(b(e))return e;let n=vt(e);if(n.length===0)return"div";if(!De(e))return n[0];let r=e.$expression,s=r.target;if(r.operator==="?:")return B(s,t)?r.value:r.initial;let o=B(s,t);return r.cases[String(o)]??r.default}function _c(e){if(!e?.slotIds)return null;return e.slotIds.n+=1,e.slotIds.n}function Pc(e,t,n,r=null){let s=new Map;for(let o of _s(e)){let i="",a=!0,l;if(b(o)||se(o)||me(o)){if(l=n(o),Qn.test(l))continue;a=l!==""}else if(ne(o))l="";else if(!un(o))l=n(o),a=l!=="";else{let u=B(o.attributes?.slot,t),f=b(o.slot)?B(o.slot,t):null;if(b(u)&&u!=="")i=u,l=n(o);else if(b(f)&&f!==""){i=f;let{slot:p,...d}=o;l=n({...d,attributes:{...d.attributes,slot:f}})}else l=n(o)}let c=s.get(i);if(c)c.html=c.html===""?l:`${c.html}
|
|
27
|
+
${l}`,c.content||=a;else s.set(i,{content:a,html:l})}return{groups:s,id:r,taken:new Set}}function Pi(e,t,n){for(let r of _s(e)){if(ne(r)||!un(r))continue;if(r.tagName==="slot"){let s=B(r.attributes?.name,t);n.taken.add(b(s)?s:"")}Pi(r.children,t,n)}}function kc(e){let t=null,n={};for(let[r,s]of Object.entries(e??{}))if(r.startsWith("props.")&&r.length>6)t??={},t[r.slice(6)]=s;else n[r]=s;return{lifted:t,rest:n}}function ki(e,t){if(!t)return Os(e.state??{},null);let n={...e.state};for(let[r,s]of Object.entries(t)){let o=n[r];n[r]=A(o)&&!Array.isArray(o)&&"default"in o?{...o,default:s}:s}return Os(n,null)}function Ic(e,t){return Object.fromEntries(Object.entries(e??{}).flatMap(([n,r])=>{if(!L(r))return[];let s=B(r,t);return s==null?[]:[[n,s]]}))}function $n(e,t,n,r){if(e.textContent!==void 0){let s=B(e.textContent,t);return s!=null?P(String(s)):""}if(e.innerHTML){let s=B(e.innerHTML,t);return s!=null?String(s):e.innerHTML}if(Array.isArray(e.children))return e.children.map((s)=>sr(s,t,n,r)).join(`
|
|
28
|
+
`);return""}function sr(e,t,n=null,r=null){if(b(e)){if(L(e)&&t){let a=vs(e,t);return a!=null?P(String(a)):P(e)}return P(e)}if(se(e)||me(e))return P(String(e));if(Array.isArray(e))return e.map((a)=>sr(a,t,n,r)).join(`
|
|
29
|
+
`);if(!A(e))return"";if(e.$prototype==="Array")return"";if(e.$switch){let a=e.tagName??"div",l=bt(e,t),c=B(e.$switch,t),u=c==null?void 0:e.cases?.[String(c)],f=u!==void 0&&!he(u)?sr(u,t,n,r):"";return`<${a}${l}>${f}</${a}>`}let s=ks(e.tagName,t);if(s==="slot"&&n){let a=B(e.attributes?.name,t),l=b(a)?a:"",c;if(!n.taken.has(l))n.taken.add(l),c=n.groups.get(l);let u=c?.html??"";if(u!==""&&n.id!==null)u=`<!--${er} ${n.id} ${encodeURIComponent(l)}-->${u}<!--/${er} ${n.id}-->`;if(c?.content)return Pi(e.children,t,n),u;let f=$n(e,t,n,r);return u===""?f:f===""?u:`${u}
|
|
30
|
+
${f}`}let o=r?.componentDefs.get(s);if(o&&r)return Dc(e,o,t,n,r);let i=bt(e,t);if(Ps.has(s))return`<${s}${i}>`;return`<${s}${i}>${$n(e,t,n,r)}</${s}>`}function Dc(e,t,n,r,s){let o=t.tagName,{lifted:i,rest:a}=kc(e.attributes),l={...i,...e.$props},c={};for(let[y,w]of Object.entries(l))c[y]=B(w,n)??w;let u=Object.keys(c).length>0,f=s.path??[],p={key:JSON.stringify(c),tag:o},d=[...f.map((y)=>y.tag),o].join(" → ");if(f.some((y)=>y.tag===p.tag&&y.key===p.key))throw Error(`Component <${o}> renders itself: ${d}. A component cannot appear inside its own `+"definition with the same props — the expansion would never end.");if(f.length>=bs)throw Error(`Component nesting exceeds ${bs} levels: ${d}. A component that renders itself with changing props needs a case that stops.`);let h={...s,path:[...f,p]},{children:g}=e,m=(y)=>sr(y,n,r,s),x=tr(t,s.defaults),E=Mc(t),O=ki(t,u?c:null),N,C=null;if(x){let y=Array.isArray(g)?g.map((w)=>m(w)).join(`
|
|
31
|
+
`):"";N=`<template shadowrootmode="${x}"><link rel="stylesheet" href="/components/${o}.css">${$n(t,O,null,h)}</template>${y}`}else{C=!E&&kt(t.children)?_c(s):null;let y=Pc(g,n,m,C);N=$n(t,O,y,h)}let z=Object.entries(Ic(t.style,O)).map(([y,w])=>`${ge(y)}: ${w}`).join("; "),S={...e};if(delete S.$props,delete S.children,S.attributes=!E&&u?{...a,"data-jx-props":JSON.stringify(c)}:a,C!==null)S.attributes={...S.attributes,[ws]:String(C)};if(E)S.$static=!0;else S.$prerendered=!0;return`<${o}${bt(S,n,z)}>${N}</${o}>`}function Xp(e,t=null,n=null,r=null){return $n(e,ki(e,t),n,r)}function Mc(e){return Cs(e)}function Cs(e){if(!A(e))return!0;if(Array.isArray(e))return e.every((t)=>Cs(t));if(e.$prototype)return!1;if(e.$ref)return!1;if(e.state)for(let t of Object.values(e.state)){if(!A(t)||Array.isArray(t))continue;if(t.$prototype)return!1;if(t.$ref)return!1}for(let t of Object.keys(e))if(t.startsWith("on")&&t!=="observedAttributes")return!1;if(Array.isArray(e.children))return e.children.every((t)=>Cs(t));if(ne(e.children))return!1;return!0}function Lc(e,t){return dn(e).map((n)=>Wc(n,t)).join(", ")}function Wc(e,t){let n=Kn(e,t);if(n!==null)return n;if(e.startsWith(":host")){let r=/^:host\((.*)\)$/.exec(e)?.[1];if(t===":host")return e;return r===void 0?t:`${t}${r}`}if(t===":host"&&Fc.test(e))return e;return`${t}${e}`}function Zp(e,t,n=null,r={},s=null){let o=[],i=wi(e,s);if(A(t)){let a={},l=[];for(let[c,u]of Object.entries(t))if(H(u))a[c]=u;else if(A(u)&&!Array.isArray(u))l.push([c,u]);else if(!c.startsWith("@")&&!at(c))a[c]=u;rr(o,a,i,r);for(let[c,u]of l)if(c.startsWith("@"))rr(o,{[c]:u},i,r);else if(at(c))rr(o,u,Lc(c,i),r)}if(n&&Array.isArray(n.children)){let a={n:0};for(let l of n.children)It(l,o,r,"",a,e)}return o.length>0?`${o.join(`
|
|
23
32
|
`)}
|
|
24
|
-
`:""}var
|
|
33
|
+
`:""}var wc,Ni,lr="https://esm.sh/@vue/reactivity@3.5.40",cr="https://esm.sh/lit-html@3.3.0",Jc,Nc,Ac,Oc,lt,Tc,Ft="__jxAttrText",Ti="__jxServerCall",Ts="__jxCaptureSlotted",Rs="__jxDistributeSlots",Lt="<!---->",Ps,Fc;var Vt=j(()=>{yn();gn();xn();Xn();Si();U();Rt();yn();xn();Xn();U();wc=["$map/","event#/","$args/","$reduce/"];Ni=Symbol("jx.runtimeOnlyStateKeys");Jc=/\bstate\.([A-Za-z_$][\w$]*)\s*(?:\+\+|--|(?:\*\*|\|\||&&|\?\?|<<|>>>|>>|[-+*/%&|^])?=(?!=))/g,Nc=/\bstate\.([A-Za-z_$][\w$]*)\s*\.\s*(?:push|pop|shift|unshift|splice|sort|reverse|fill|copyWithin)\s*\(/g,Ac=/[\w$.]/u,Oc=/[\w$]/u;lt=new Set(["pre","textarea","listing","plaintext","xmp"]);Tc=[];Ps=new Set(["input","br","hr","img","meta","link","area","col","source"]);Fc=/^(?:::slotted\(|::part\()/});class Ii{index;text;constructor(e){this.text=e,this.index=e.codePointAt(0)===65279?1:0}get done(){return this.index>=this.text.length}startsWith(e){return this.text.startsWith(e,this.index)}skipLine(){let e=this.text.indexOf(`
|
|
25
34
|
`,this.index);this.index=e===-1?this.text.length:e}skipBlock(){let e=1;this.index+=2;while(!this.done&&e>0)if(this.startsWith("/*"))e+=1,this.index+=2;else if(this.startsWith("*/"))e-=1,this.index+=2;else this.index+=1}skipTrivia(){for(;;){while(!this.done&&/[\s;]/u.test(this.text.charAt(this.index)))this.index+=1;if(this.startsWith("//"))this.skipLine();else if(this.startsWith("/*"))this.skipBlock();else if(this.startsWith("/-"))this.index+=2,this.skipNode();else return}}skipString(){let e=0,t=this.index;while(this.text.charAt(t)==="#")e+=1,t+=1;let n=this.text.startsWith('"""',t),r=n?'"""':'"',s=r+"#".repeat(e);t+=r.length;while(t<this.text.length)if(e===0&&this.text.charAt(t)==="\\")t+=2;else if(this.text.startsWith(s,t))return this.index=t+s.length,!0;else if(!n&&this.text.charAt(t)===`
|
|
26
35
|
`)return!1;else t+=1;return!1}skipNode(){let e=0;while(!this.done){let t=this.text.charAt(this.index);if(t==='"'||t==="#"&&/^#+"/u.test(this.text.slice(this.index,this.index+16))){if(!this.skipString())return!1}else if(this.startsWith("//"))this.skipLine();else if(this.startsWith("/*"))this.skipBlock();else if(t==="{")e+=1,this.index+=1;else if(t==="}"){if(e===0)return!1;e-=1,this.index+=1}else if((t===`
|
|
27
|
-
`||t===";")&&e===0)return this.index+=1,!0;else this.index+=1}return e===0}}function
|
|
28
|
-
`,"\r"]);
|
|
29
|
-
`],["r","\r"],["t","\t"]])});function sc(e){return e instanceof Error?e.message:String(e)}function pi(e){if(b(e))return fi.test(e)?e.normalize("NFC"):e;if(Array.isArray(e))return e.map((t)=>pi(t));if(D(e))return nr(e);return e}function nr(e){let t={};for(let[n,r]of Object.entries(e))t[fi.test(n)?n.normalize("NFC"):n]=pi(r);return t}function Ss(e,t,n){let r;try{r=JSON.parse(e)}catch(o){throw Error(`Failed to parse ${n} at ${t}: ${sc(o)}`,{cause:o})}if(!D(r))throw Error(`Invalid ${n} at ${t}: expected a JSON object`);let s=li(e);if(s.length>0){let o=s.map((i)=>ci(i)).join("; ");throw Error(`Invalid ${n} at ${t}: ${o}`)}return nr(r)}function di(e,t){return Ss(e,t,"Jx document")}function oc(e,t){return Ss(e,t,"project config")}function sp(e,t){return Ss(e,t,"class definition")}var fi;var rr=v(()=>{K();ui();fi=/[^\p{ASCII}]/u});function xn(e){switch(e){case 9:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:return!0}return!1}function ut(e){return e===13||e===10||e===133||e===11||e===12||e===8232||e===8233||!1}function mr(e){return e<8||e>=14&&e<=25||e===127||e>=55296&&e<=57343||e>1114111||e===8206||e===8207||e>=8234&&e<=8238||e>=8294&&e<=8297||e===65279}function U(e){return!isNaN(e)&&!xn(e)&&!ut(e)&&e!==61&&e!==92&&e!==47&&e!==40&&e!==41&&e!==123&&e!==125&&e!==59&&e!==91&&e!==93&&e!==34&&e!==35&&!0}function mi(e){return e>=65&&e<91||e>=97&&e<123||!1}function bs(e){return e>=48&&e<64||e>=65&&e<71||e>=97&&e<103||!1}function ws(e){return bs(e)||e===95}function Qe(e){return e>=48&&e<58}function wt(e){return Qe(e)||e===95}function Es(e){return e>=48&&e<56}function gi(e){return Es(e)||e===95}function Js(e){return e===48||e===49}function hi(e){return Js(e)||e===95}function xi(e){return e===45||e===43}var at=1,Wt=2,$t=3,sr=4,or=5,gn=6,ir=7,ar=8,hn=9,lt=10,ie=11,Vt=12,Ht=13,lr=14,Ze=15,cr=16,ur=17,St=18,ct=19,fr=20,pr=21,dr=22,Bt=23,bt=24,Me=28;function*ac(e){for(let t of(ic??=new Intl.Segmenter("en")).segment(e))yield t.segment}function lc(e){return e[Symbol.iterator]()}function yi(e,{flags:t,graphemeLocations:n=!1}){let r=n?ac(e):lc(e),s=r.next();return{text:e,graphemeLocations:n,line:1,column:1,offset:0,length:e.length,iterator:r,currentIter:s,current:s.done?NaN:s.value.codePointAt(0),start:{line:1,column:1,offset:0},errorsInToken:null,flags:t}}function*$i(e){if(k(e,65279))e.column=1,yield T(e,Wt);if(mr(e.current))throw Le(e,`Invalid character \\u${e.current.toString(16)}`)}function Z(e){e.offset+=e.currentIter.value.length,e.column++;let t=e.currentIter=e.iterator.next(),n=e.current=t.done?NaN:t.value.codePointAt(0);if(mr(n))if(n>=55296&&n<=57343||n>1114111)yn(e,`Invalid character \\u${n.toString(16)}`);else yn(e,`Invalid character \\u${n.toString(16)}, this character is not allowed but can be included in strings as \\u{${n.toString(16)}}`);return n}function je(e,t){if(t(e.current)){let n=e.current;return Z(e),n}}function k(e,t){if(e.current===t)return Z(e),t}function Ut(e){if(!ut(e.current))return!1;if(!e.graphemeLocations&&e.current===13&&e.text.codePointAt(e.offset+1)===10)e.iterator.next(),e.offset++;return Z(e),e.column=1,e.line++,!0}function Ns(e,t){while(e.current===t)Z(e)}function F(e,t){while(t(e.current))Z(e)}function T(e,t,n){let{line:r,column:s,offset:o}=e,i={line:r,column:s,offset:o},c=e.start;e.start=i;let a=e.errorsInToken;e.errorsInToken=null;let l={type:t,text:e.text.slice(c.offset,i.offset),start:c,end:i,errors:a};if(n){if(!l.errors)l.errors=[];l.errors.push(new I(n,{token:l}))}return l}function Le(e,t){if(t instanceof I)return t;let{line:n,column:r,offset:s}=e,o={line:n,column:r,offset:s},i;if(s<e.length)if(ut(e.current))i={line:n+1,column:1,offset:s+1};else i={line:n,column:r+1,offset:s+1};return new I(`${t}`,{start:o,end:i})}function yn(e,t){(e.errorsInToken??=[]).push(Le(e,t))}var ic;var Si=v(()=>{Et()});function Jt(e){return(t)=>(Z(t),T(t,e))}function $n(e){return F(e,xn),T(e,St)}function Nt(e){return Ut(e),T(e,ct)}function cc(e){Z(e);let t=!1,n=!1;if(k(e,34)){if(!k(e,34))return T(e,hn);if(n=!0,e.current===34)throw Le(e,"Multiline strings must start with exactly three quotes");while(!t&&e.offset<e.length)if(k(e,34)){if(k(e,34)&&k(e,34))t=!0}else k(e,92),Ut(e)||Z(e)}else while(!t&&e.offset<e.length)if(k(e,34))t=!0;else k(e,92),Ut(e)||Z(e);if(!t)throw Le(e,"Unexpected EOF inside string");return T(e,n?Bt:hn)}function bi(e){if(Z(e),e.current===35||e.current===34){let t=1;while(k(e,35))t++;if(!k(e,34))throw Le(e,`Expected a quote after ${"#".repeat(t)}`);let n=!1;if(k(e,34))if(k(e,34)){if(e.current===34)throw Le(e,"Multiline strings must start with exactly three quotes");n=!0}else{let r=0;while(k(e,35))r++;if(r===t)return T(e,lt)}while(!0){if(e.offset>=e.length)throw Le(e,"Unexpected EOF while parsing raw string");if(k(e,34)){if(n){if(!k(e,34)||!k(e,34))continue}let r=0;while(r<t&&k(e,35))r++;if(r===t)return T(e,n?bt:lt)}else Ut(e)||Z(e)}}else{let t;if(e.current<255){let n=j[e.current];t=n(e)}else if(xn(e.current))t=$n(e);else if(ut(e.current))t=Nt(e);else t=Os(e);if(t.type!==ie)(t.errors??=[]).push(new I("Expected a valid identifier",{token:t}));return t.type=Ht,t}}function uc(e){if(Z(e),je(e,Qe))return F(e,U),T(e,ie,"Invalid identifier, identifiers that start with a sign and a dot must be quoted if the next character is a digit to prevent confusion with decimal numbers");return F(e,U),T(e,ie)}function fc(e){if(Z(e),k(e,45))return T(e,$t);else if(k(e,47)){while(e.offset<e.length&&!ut(e.current))Z(e);return T(e,pr)}else if(k(e,42)){let t=1;while(e.offset<e.length)if(k(e,42)){if(k(e,47)){if(t--,t===0)return T(e,dr)}}else if(k(e,47)){if(k(e,42))t++}else Ut(e)||Z(e);throw Le(e,"Unexpected EOF in multiline comment")}else hr(e)}function wi(e){return Z(e),pc(e)}function pc(e){if(Qe(e.current))return Re(e);else if(k(e,46)){if(je(e,Qe))return F(e,U),T(e,ie,"Invalid identifier or number, surround with quotes to make it an identifier or add a zero between the sign and the decimal point");return F(e,U),T(e,ie)}else return F(e,U),T(e,ie)}function As(e,t,n,r){return(s)=>{let o=Z(s);if(je(s,n))return F(s,r),T(s,t);else if(!s.flags.experimentalSuffixedNumbers){if(k(s,95)){if(F(s,r),!U(s.current))return T(s,t,`Invalid ${e} number, the first character after 0${String.fromCodePoint(o)} cannot be an underscore`)}return F(s,U),T(s,ie,`Invalid ${e} number`)}else if(k(s,95)){if(Ns(s,95),n(s.current)){if(F(s,r),!U(s.current))return T(s,t,`Invalid ${e} number, the first character after 0${String.fromCodePoint(o)} cannot be an underscore`)}return F(s,U),T(s,ie,"Invalid number with suffix, a suffix cannot start with a letter followed by an underscore")}else if(Qe(s.current))return T(s,ie,"Invalid number with suffix, a suffix cannot start with a letter followed by a number");else return F(s,U),T(s,Me)}}function Re(e){if(k(e,48)){let t=gr[e.current];if(t)return t(e)}if(F(e,wt),k(e,46)){if(!je(e,Qe))if(e.current===95)yn(e,"Invalid decimal number, the part after the decimal point mustn't start on an underscore");else yn(e,"Invalid decimal number, a decimal point must be followed by a digit");F(e,wt)}if(k(e,101)||k(e,69))if(je(e,xi),je(e,Qe)){if(F(e,wt),U(e.current))return F(e,U),T(e,ie,"Invalid number with suffix, a number with an exponent cannot have a suffix");return T(e,Ze)}else if(!e.flags.experimentalSuffixedNumbers)if(e.current===95)return F(e,wt),T(e,Ze,"Invalid decimal number, the number after the exponent mustn't start on an underscore");else return F(e,U),T(e,Ze,"Invalid decimal number, missing a number after the exponent");else if(k(e,95)){if(Ns(e,95),Qe(e.current)){if(F(e,wt),!U(e.current))return T(e,Ze,"Invalid decimal number, the number after the exponent mustn't start on an underscore")}return F(e,U),T(e,ie,"Invalid number with suffix, a suffix cannot start with a letter followed by an underscore")}else return F(e,U),T(e,Me);else if(e.flags.experimentalSuffixedNumbers)if(e.current===88||e.current===120){Z(e);let t=null;if(je(e,ws))t="Invalid number with suffix, a suffix cannot start with an x followed by a hexidecimal number";return F(e,U),T(e,Me,t)}else if(je(e,mi)){let t=null;if(je(e,wt))t="Invalid number with suffix, a suffix cannot start with a letter followed by a digit";return F(e,U),T(e,Me,t)}else if(k(e,44))return F(e,U),T(e,Me,"Invalid number with suffix, a suffix cannot start with a comma");else if(k(e,46))return F(e,U),T(e,Me,"Invalid number with suffix, a suffix cannot start with a dot");else if(je(e,U))return F(e,U),T(e,Me);else return T(e,Ze);else return T(e,Ze)}function dc(e){if(Z(e),e.current!=35)return F(e,U),T(e,ie);let t=bi(e);t.start.offset--,t.start.column--;let n;switch(t.type){case lt:case bt:n='Invalid raw string, the correct syntax is #" "#, not r#" "#';break;default:n="Invalid token, did you forget a whitespace after this r?"}return(t.errors??=[]).push(new I(n,{token:t})),t}function Os(e){return Z(e),F(e,U),T(e,ie)}function hr(e){throw Le(e,`Unexpected character ${JSON.stringify(String.fromCodePoint(e.current))}, did you forget to quote an identifier?`)}function*Sn(e,t){let n=yi(e,t);yield*$i(n);while(!n.currentIter.done){if(n.current<255){let r=j[n.current];yield r(n);continue}if(xn(n.current)){yield $n(n);continue}if(ut(n.current)){yield Nt(n);continue}yield Os(n)}yield T(n,at)}var gr,j;var Ei=v(()=>{Et();Si();gr=Array(256).fill(null);gr[98]=As("binary",ur,Js,hi);gr[111]=As("octal",cr,Es,gi);gr[120]=As("hexadecimal",lr,bs,ws);j=Array(255);j.fill(Os);for(let e=0;e<32;e++)j[e]=hr;j[9]=$n;j[10]=Nt;j[11]=Nt;j[12]=Nt;j[13]=Nt;j[32]=$n;j[34]=cc;j[35]=bi;j[40]=Jt(sr);j[41]=Jt(gn);j[43]=wi;j[45]=wi;j[46]=uc;j[47]=fc;j[48]=Re;j[49]=Re;j[50]=Re;j[51]=Re;j[52]=Re;j[53]=Re;j[54]=Re;j[55]=Re;j[56]=Re;j[57]=Re;j[59]=Jt(ar);j[61]=Jt(Vt);j[91]=hr;j[92]=Jt(fr);j[93]=hr;j[114]=dc;j[123]=Jt(or);j[125]=Jt(ir);j[133]=Nt;j[160]=$n});var qt=v(()=>{Ei()});var I;var Et=v(()=>{qt();I=class I extends Error{name="InvalidKdlError";start;end;token;errors;constructor(e,{token:t,start:n=t?.start,end:r=t?.end,errors:s,...o}={}){if(t?.type===at)e=`${e} at end of input`;else if(n)e=`${e} at ${n.line}:${n.column}`;super(e,o);this.token=t,this.start=n,this.end=r,this.errors=s}*flat(){if(this.errors==null){yield this;return}for(let e of this.errors)yield*e.flat()}}});function zt(e){return Ji.get(e)}function Ni(e,{start:t},{end:n}){Ji.set(e,{start:t,end:n})}var Ji;var Cs=v(()=>{Ji=new WeakMap});function Ai({experimentalSuffixedNumbers:e=!1}={}){return{experimentalSuffixedNumbers:e}}class _e{type="identifier";static type="identifier";representation;constructor(e){this.name=e}getName(){return this.name}setName(e){if(e!==this.name)this.name=e,this.representation=void 0}clone(){let e=new _e(this.name);return e.representation=this.representation,e}}class Fe{type="tag";static type="tag";representation;leading;trailing;suffix;constructor(e){this.name,Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!1,value:e})}getName(){return this.name}setName(e){if(e!==this.name)this.name=e,this.representation=void 0}clone(){let e=new Fe(this.name);return e.representation=this.representation,e.leading=this.leading,e.trailing=this.trailing,e.suffix=this.suffix,e}}class ke{type="value";static type="value";representation;tag=null;betweenTagAndValue;constructor(e){this.value=e}clone(){let e=new ke(this.value);return e.tag=this.tag?.clone()??null,e.betweenTagAndValue=this.betweenTagAndValue,e.representation=this.representation,e}getValue(){return this.value}setValue(e){if(e!==this.value)this.value=e,this.representation=void 0}getTag(){return this.tag?this.tag.name:null}setTag(e){if(e==null)this.tag=null;else if(this.tag!=null)this.tag.setName(e);else this.tag=new Fe(e)}}var vs=()=>{};class we{static createArgument(e){return new we(new ke(e),null)}static createProperty(e,t){return new we(new ke(t),new _e(e))}type="entry";static type="entry";name;value;leading;trailing;equals;constructor(e,t){this.value=e,this.name=t}clone(){let e=new we(this.value.clone(),this.name?.clone()??null);return e.leading=this.leading,e.trailing=this.trailing,e.equals=this.equals,e}getTag(){return this.value.getTag()}setTag(e){this.value.setTag(e)}getName(){return this.name?this.name.name:null}setName(e){this.name=e!=null?new _e(e):null}getValue(){return this.value.value}setValue(e){this.value=new ke(e)}isArgument(){return this.name==null}isProperty(){return this.name!=null}}var Ts=v(()=>{vs()});function*Kt(e){for(let t=e.length-1;t>=0;t--)yield e[t]}function js(e){return e.children??(e.children=new ft)}class Gt{static create(e){return new Gt(new _e(e))}type="node";static type="node";name;tag=null;entries;children;leading;trailing;beforeChildren;betweenTagAndName;constructor(e,t=[],n=null){this.name=e,this.entries=t,this.children=n}clone({shallow:e=!1}={}){let t=new Gt(this.name.clone(),e?[]:this.entries.map((n)=>n.clone()),this.children?.clone({shallow:e}));if(this.tag)t.tag=this.tag.clone();return t.leading=this.leading,t.betweenTagAndName=this.betweenTagAndName,t.beforeChildren=this.beforeChildren,t.trailing=this.trailing,t}getTag(){return this.tag?this.tag.name:null}setTag(e){this.tag=e!=null?new Fe(e):null}getName(){return this.name.name}setName(e){this.name.setName(e)}hasArguments(){return this.entries.some((e)=>e.isArgument())}getArguments(){return this.getArgumentEntries().map((e)=>e.getValue())}getArgumentEntries(){return this.entries.filter((e)=>e.isArgument())}hasArgument(e){return this.getArgumentEntry(e)!=null}getArgument(e){return this.getArgumentEntry(e)?.getValue()}getArgumentEntry(e){for(let t of this.entries){if(!t.isArgument())continue;if(e===0)return t;e--}}addArgument(e,t,n){let r=we.createArgument(e);if(r.value.setTag(t),n!=null)for(let[s,o]of this.entries.entries()){if(!o.isArgument())continue;if(n===0){this.entries.splice(s,0,o);return}n--}this.entries.push(r)}removeArgument(e){for(let[t,n]of this.entries.entries()){if(!n.isArgument())continue;if(e===0){this.entries.splice(t,1);return}e--}}hasProperties(){return this.entries.some((e)=>e.isProperty())}getProperties(){return new Map(this.getPropertyEntries().map((e)=>[e.getName(),e.getValue()]))}getPropertyEntries(){return this.entries.filter((e)=>e.isProperty())}getPropertyEntryMap(){return new Map(this.getPropertyEntries().map((e)=>[e.getName(),e]))}hasProperty(e){return this.getPropertyEntry(e)!=null}getProperty(e){return this.getPropertyEntry(e)?.getValue()}getPropertyEntry(e){for(let t of Kt(this.entries))if(t.getName()===e)return t;return}setProperty(e,t,n){for(let s of Kt(this.entries))if(s.getName()===e){s.setValue(t),s.value.setTag(n);return}let r=we.createProperty(e,t);r.value.setTag(n),this.entries.push(r)}deleteProperty(e){this.entries=this.entries.filter((t)=>t.getName()!==e)}hasChildren(){return this.children!=null&&!this.children.isEmpty()}appendNode(e){js(this).appendNode(e)}insertNodeBefore(e,t){js(this).insertNodeBefore(e,t)}insertNodeAfter(e,t){js(this).insertNodeAfter(e,t)}removeNode(e){if(this.children==null)throw Error("Node to remove is not in document");this.children.removeNode(e)}replaceNode(e,t){if(this.children==null)throw Error("Node to remove is not in document");this.children.replaceNode(e,t)}findNodesByName(e){return this.children!=null?this.children.findNodesByName(e):[]}findNodeByName(e){return this.children?.findNodeByName(e)}findParameterizedNode(e,t){return this.children?.findParameterizedNode(e,t)}removeNodesByName(e){this.children?.removeNodesByName(e)}}var Oi=v(()=>{Rs();Ts()});function*Yt(e){if(e instanceof ft)yield*e.nodes;else yield e}class ft{type="document";static type="document";nodes;trailing;constructor(e=[]){this.nodes=e}clone({shallow:e}={}){let t=new ft(e?[]:this.nodes.map((n)=>n.clone()));return t.trailing=this.trailing,t}appendNode(e){this.nodes.push(...Yt(e))}insertNodeBefore(e,t){if(t==null){this.nodes.push(...Yt(e));return}let n=this.nodes.indexOf(t);if(n===-1)throw Error("Reference node is not in document");this.nodes.splice(n,0,...Yt(e))}insertNodeAfter(e,t){if(t==null){this.nodes.unshift(...Yt(e));return}let n=this.nodes.indexOf(t);if(n===-1)throw Error("Reference node is not in document");this.nodes.splice(n+1,0,...Yt(e))}removeNode(e){let t=this.nodes.indexOf(e);if(t===-1)throw Error("Node to remove is not in document");this.nodes.splice(t,1)}replaceNode(e,t){let n=this.nodes.indexOf(e);if(n===-1)throw Error("Node to replace is not in document");this.nodes.splice(n,1,...Yt(t))}findNodesByName(e){return this.nodes.filter((t)=>t.name.name===e)}findNodeByName(e){for(let t of Kt(this.nodes))if(t.name.name===e)return t;return}findParameterizedNode(e,t){for(let n of Kt(this.nodes)){if(n.name.name!==e)continue;let r=n.getArguments();if(r.length!==1||t!==void 0&&r[0]!==t)continue;return n}return}removeNodesByName(e){this.nodes=this.nodes.filter((t)=>t.name.name!==e)}isEmpty(){return this.nodes.length===0}}var Rs=()=>{};var Ci=v(()=>{Rs();Ts();Oi();vs()});function vi(e,t,n){let r;while(r=gc.exec(t)){let s=bn(n,t,r.index);e.push(new I("Raw strings with single quotes cannot contain any unescaped newlines, use triple-quotes for multiline strings",{token:n,start:s,end:{offset:s.offset+r[0].length,line:s.line+1,column:1}}))}return t}function Ti(e,t,n){if(!Xt.test(t))return e.push(new I("Raw strings with three quotes must be multiline strings",{token:n})),t;if(!Xt.test(t[0]))return e.push(new I("Multi-line strings must start with a newline",{token:n})),t;let r=yc.exec(t)?.[1];if(r==null)return e.push(new I("The final line in a multiline string may only contain whitespace",{token:n})),t;return t.replace(Sc,(s,o,i,c,a)=>{if(!c)return`
|
|
30
|
-
`;if(!i.startsWith(r)){let
|
|
36
|
+
`||t===";")&&e===0)return this.index+=1,!0;else this.index+=1}return e===0}}function Ht(e){if(Vc.test(e))return"unreadable";let t=new Ii(e);for(;;){if(t.skipTrivia(),t.done)return"document";if(t.startsWith("(")){let n=e.indexOf(")",t.index);if(n===-1)return"unreadable";t.index=n+1}else{let[n]=Hc.exec(e.slice(t.index,t.index+256))??[];if(!n)return t.startsWith('"')||t.startsWith("#")?"document":"unreadable";if(!n.startsWith("$"))return n==="project"?"project":"document";if(t.index+=n.length,!t.skipNode())return"unreadable"}}}var Vc,Hc;var wn=j(()=>{Vc=/\0/u,Hc=/^[^\s\\/(){};[\]"#=]+/u});function Mi(e){let t=[],n=[],r=null,s=0,o=()=>n.at(-1)?.path??"",i=()=>r===null?o():qc(o(),r),a=()=>{s+=1;let l="";while(s<e.length){let c=e[s];if(c==="\\"){let u=e[s+1]??"";if(u==="u")l+=String.fromCodePoint(Number.parseInt(e.slice(s+2,s+6),16)),s+=6;else l+=Bc.get(u)??u,s+=2;continue}if(c==='"')return s+=1,l;l+=c,s+=1}return l};while(s<e.length){let l=e[s];if(Di.has(l)||l===","||l===":"){s+=1;continue}if(l==="{"||l==="["){n.push(l==="{"?{keys:new Set,kind:"object",path:i()}:{kind:"array",path:i()}),r=null,s+=1;continue}if(l==="}"||l==="]"){n.pop(),r=null,s+=1;continue}if(l==='"'){let u=a(),f=n.at(-1);if(f?.kind==="object"&&Uc(e,s)===":"){if(f.keys.has(u))t.push({detail:u,kind:"duplicate-key",path:f.path});f.keys.add(u),r=u}else r=null;continue}if(l==="-"||l>="0"&&l<="9"){let u=s;while(s<e.length&&/[\d+.eE-]/.test(e[s]))s+=1;let f=e.slice(u,s);if(!zc(f))t.push({detail:f,kind:"unsafe-number",path:i()});r=null;continue}let c=s;while(s<e.length&&/[A-Za-z]/.test(e[s]))s+=1;if(s===c)s+=1;r=null}return t}function Uc(e,t){let n=t;while(n<e.length&&Di.has(e[n]))n+=1;return e[n]??""}function qc(e,t){return e===""?t:`${e}.${t}`}function zc(e){if(/[.eE]/.test(e))return!0;let t=Number(e);if(!Number.isFinite(t))return!1;return String(t)===e.replace(/^\+/,"")}function Fi(e){let t=e.path===""?"the document root":`"${e.path}"`;return e.kind==="duplicate-key"?`duplicate key "${e.detail}" in ${t} — JSON.parse keeps the last one and `+"silently discards the first (RFC 7493 §2.3)":`number ${e.detail} in ${t} cannot be represented exactly and will change when `+"the document is written back (RFC 7493 §2.2)"}var Di,Bc;var Li=j(()=>{Di=new Set([" ","\t",`
|
|
37
|
+
`,"\r"]);Bc=new Map([["b","\b"],["f","\f"],["n",`
|
|
38
|
+
`],["r","\r"],["t","\t"]])});function Kc(e){return e instanceof Error?e.message:String(e)}function Vi(e){if(b(e))return Wi.test(e)?e.normalize("NFC"):e;if(Array.isArray(e))return e.map((t)=>Vi(t));if(_(e))return Bt(e);return e}function Bt(e){let t={};for(let[n,r]of Object.entries(e))t[Wi.test(n)?n.normalize("NFC"):n]=Vi(r);return t}function Is(e,t,n){let r;try{r=JSON.parse(e)}catch(o){throw Error(`Failed to parse ${n} at ${t}: ${Kc(o)}`,{cause:o})}if(!_(r))throw Error(`Invalid ${n} at ${t}: expected a JSON object`);let s=Mi(e);if(s.length>0){let o=s.map((i)=>Fi(i)).join("; ");throw Error(`Invalid ${n} at ${t}: ${o}`)}return Bt(r)}function Hi(e,t){return Is(e,t,"Jx document")}function Bi(e,t){return Is(e,t,"project config")}function ld(e,t){return Is(e,t,"class definition")}var Wi;var En=j(()=>{U();Li();Wi=/[^\p{ASCII}]/u});function An(e){switch(e){case 9:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:return!0}return!1}function pt(e){return e===13||e===10||e===133||e===11||e===12||e===8232||e===8233||!1}function Ar(e){return e<8||e>=14&&e<=25||e===127||e>=55296&&e<=57343||e>1114111||e===8206||e===8207||e>=8234&&e<=8238||e>=8294&&e<=8297||e===65279}function q(e){return!isNaN(e)&&!An(e)&&!pt(e)&&e!==61&&e!==92&&e!==47&&e!==40&&e!==41&&e!==123&&e!==125&&e!==59&&e!==91&&e!==93&&e!==34&&e!==35&&!0}function Ui(e){return e>=65&&e<91||e>=97&&e<123||!1}function Ds(e){return e>=48&&e<64||e>=65&&e<71||e>=97&&e<103||!1}function Ms(e){return Ds(e)||e===95}function Qe(e){return e>=48&&e<58}function Nt(e){return Qe(e)||e===95}function Fs(e){return e>=48&&e<56}function qi(e){return Fs(e)||e===95}function Ls(e){return e===48||e===49}function zi(e){return Ls(e)||e===95}function Ki(e){return e===45||e===43}var ct=1,Ut=2,wt=3,hr=4,xr=5,Jn=6,yr=7,$r=8,Nn=9,ut=10,le=11,qt=12,zt=13,Sr=14,Ze=15,br=16,wr=17,Et=18,ft=19,Er=20,Jr=21,Nr=22,Kt=23,Jt=24,Fe=28;function*Yc(e){for(let t of(Gc??=new Intl.Segmenter("en")).segment(e))yield t.segment}function Xc(e){return e[Symbol.iterator]()}function Gi(e,{flags:t,graphemeLocations:n=!1}){let r=n?Yc(e):Xc(e),s=r.next();return{text:e,graphemeLocations:n,line:1,column:1,offset:0,length:e.length,iterator:r,currentIter:s,current:s.done?NaN:s.value.codePointAt(0),start:{line:1,column:1,offset:0},errorsInToken:null,flags:t}}function*Yi(e){if(k(e,65279))e.column=1,yield v(e,Ut);if(Ar(e.current))throw Le(e,`Invalid character \\u${e.current.toString(16)}`)}function Q(e){e.offset+=e.currentIter.value.length,e.column++;let t=e.currentIter=e.iterator.next(),n=e.current=t.done?NaN:t.value.codePointAt(0);if(Ar(n))if(n>=55296&&n<=57343||n>1114111)On(e,`Invalid character \\u${n.toString(16)}`);else On(e,`Invalid character \\u${n.toString(16)}, this character is not allowed but can be included in strings as \\u{${n.toString(16)}}`);return n}function _e(e,t){if(t(e.current)){let n=e.current;return Q(e),n}}function k(e,t){if(e.current===t)return Q(e),t}function Gt(e){if(!pt(e.current))return!1;if(!e.graphemeLocations&&e.current===13&&e.text.codePointAt(e.offset+1)===10)e.iterator.next(),e.offset++;return Q(e),e.column=1,e.line++,!0}function Ws(e,t){while(e.current===t)Q(e)}function W(e,t){while(t(e.current))Q(e)}function v(e,t,n){let{line:r,column:s,offset:o}=e,i={line:r,column:s,offset:o},a=e.start;e.start=i;let l=e.errorsInToken;e.errorsInToken=null;let c={type:t,text:e.text.slice(a.offset,i.offset),start:a,end:i,errors:l};if(n){if(!c.errors)c.errors=[];c.errors.push(new M(n,{token:c}))}return c}function Le(e,t){if(t instanceof M)return t;let{line:n,column:r,offset:s}=e,o={line:n,column:r,offset:s},i;if(s<e.length)if(pt(e.current))i={line:n+1,column:1,offset:s+1};else i={line:n,column:r+1,offset:s+1};return new M(`${t}`,{start:o,end:i})}function On(e,t){(e.errorsInToken??=[]).push(Le(e,t))}var Gc;var Xi=j(()=>{At()});function Ot(e){return(t)=>(Q(t),v(t,e))}function Cn(e){return W(e,An),v(e,Et)}function Ct(e){return Gt(e),v(e,ft)}function Zc(e){Q(e);let t=!1,n=!1;if(k(e,34)){if(!k(e,34))return v(e,Nn);if(n=!0,e.current===34)throw Le(e,"Multiline strings must start with exactly three quotes");while(!t&&e.offset<e.length)if(k(e,34)){if(k(e,34)&&k(e,34))t=!0}else k(e,92),Gt(e)||Q(e)}else while(!t&&e.offset<e.length)if(k(e,34))t=!0;else k(e,92),Gt(e)||Q(e);if(!t)throw Le(e,"Unexpected EOF inside string");return v(e,n?Kt:Nn)}function Zi(e){if(Q(e),e.current===35||e.current===34){let t=1;while(k(e,35))t++;if(!k(e,34))throw Le(e,`Expected a quote after ${"#".repeat(t)}`);let n=!1;if(k(e,34))if(k(e,34)){if(e.current===34)throw Le(e,"Multiline strings must start with exactly three quotes");n=!0}else{let r=0;while(k(e,35))r++;if(r===t)return v(e,ut)}while(!0){if(e.offset>=e.length)throw Le(e,"Unexpected EOF while parsing raw string");if(k(e,34)){if(n){if(!k(e,34)||!k(e,34))continue}let r=0;while(r<t&&k(e,35))r++;if(r===t)return v(e,n?Jt:ut)}else Gt(e)||Q(e)}}else{let t;if(e.current<255){let n=T[e.current];t=n(e)}else if(An(e.current))t=Cn(e);else if(pt(e.current))t=Ct(e);else t=Hs(e);if(t.type!==le)(t.errors??=[]).push(new M("Expected a valid identifier",{token:t}));return t.type=zt,t}}function Qc(e){if(Q(e),_e(e,Qe))return W(e,q),v(e,le,"Invalid identifier, identifiers that start with a sign and a dot must be quoted if the next character is a digit to prevent confusion with decimal numbers");return W(e,q),v(e,le)}function eu(e){if(Q(e),k(e,45))return v(e,wt);else if(k(e,47)){while(e.offset<e.length&&!pt(e.current))Q(e);return v(e,Jr)}else if(k(e,42)){let t=1;while(e.offset<e.length)if(k(e,42)){if(k(e,47)){if(t--,t===0)return v(e,Nr)}}else if(k(e,47)){if(k(e,42))t++}else Gt(e)||Q(e);throw Le(e,"Unexpected EOF in multiline comment")}else Cr(e)}function Qi(e){return Q(e),tu(e)}function tu(e){if(Qe(e.current))return Pe(e);else if(k(e,46)){if(_e(e,Qe))return W(e,q),v(e,le,"Invalid identifier or number, surround with quotes to make it an identifier or add a zero between the sign and the decimal point");return W(e,q),v(e,le)}else return W(e,q),v(e,le)}function Vs(e,t,n,r){return(s)=>{let o=Q(s);if(_e(s,n))return W(s,r),v(s,t);else if(!s.flags.experimentalSuffixedNumbers){if(k(s,95)){if(W(s,r),!q(s.current))return v(s,t,`Invalid ${e} number, the first character after 0${String.fromCodePoint(o)} cannot be an underscore`)}return W(s,q),v(s,le,`Invalid ${e} number`)}else if(k(s,95)){if(Ws(s,95),n(s.current)){if(W(s,r),!q(s.current))return v(s,t,`Invalid ${e} number, the first character after 0${String.fromCodePoint(o)} cannot be an underscore`)}return W(s,q),v(s,le,"Invalid number with suffix, a suffix cannot start with a letter followed by an underscore")}else if(Qe(s.current))return v(s,le,"Invalid number with suffix, a suffix cannot start with a letter followed by a number");else return W(s,q),v(s,Fe)}}function Pe(e){if(k(e,48)){let t=Or[e.current];if(t)return t(e)}if(W(e,Nt),k(e,46)){if(!_e(e,Qe))if(e.current===95)On(e,"Invalid decimal number, the part after the decimal point mustn't start on an underscore");else On(e,"Invalid decimal number, a decimal point must be followed by a digit");W(e,Nt)}if(k(e,101)||k(e,69))if(_e(e,Ki),_e(e,Qe)){if(W(e,Nt),q(e.current))return W(e,q),v(e,le,"Invalid number with suffix, a number with an exponent cannot have a suffix");return v(e,Ze)}else if(!e.flags.experimentalSuffixedNumbers)if(e.current===95)return W(e,Nt),v(e,Ze,"Invalid decimal number, the number after the exponent mustn't start on an underscore");else return W(e,q),v(e,Ze,"Invalid decimal number, missing a number after the exponent");else if(k(e,95)){if(Ws(e,95),Qe(e.current)){if(W(e,Nt),!q(e.current))return v(e,Ze,"Invalid decimal number, the number after the exponent mustn't start on an underscore")}return W(e,q),v(e,le,"Invalid number with suffix, a suffix cannot start with a letter followed by an underscore")}else return W(e,q),v(e,Fe);else if(e.flags.experimentalSuffixedNumbers)if(e.current===88||e.current===120){Q(e);let t=null;if(_e(e,Ms))t="Invalid number with suffix, a suffix cannot start with an x followed by a hexidecimal number";return W(e,q),v(e,Fe,t)}else if(_e(e,Ui)){let t=null;if(_e(e,Nt))t="Invalid number with suffix, a suffix cannot start with a letter followed by a digit";return W(e,q),v(e,Fe,t)}else if(k(e,44))return W(e,q),v(e,Fe,"Invalid number with suffix, a suffix cannot start with a comma");else if(k(e,46))return W(e,q),v(e,Fe,"Invalid number with suffix, a suffix cannot start with a dot");else if(_e(e,q))return W(e,q),v(e,Fe);else return v(e,Ze);else return v(e,Ze)}function nu(e){if(Q(e),e.current!=35)return W(e,q),v(e,le);let t=Zi(e);t.start.offset--,t.start.column--;let n;switch(t.type){case ut:case Jt:n='Invalid raw string, the correct syntax is #" "#, not r#" "#';break;default:n="Invalid token, did you forget a whitespace after this r?"}return(t.errors??=[]).push(new M(n,{token:t})),t}function Hs(e){return Q(e),W(e,q),v(e,le)}function Cr(e){throw Le(e,`Unexpected character ${JSON.stringify(String.fromCodePoint(e.current))}, did you forget to quote an identifier?`)}function*jn(e,t){let n=Gi(e,t);yield*Yi(n);while(!n.currentIter.done){if(n.current<255){let r=T[n.current];yield r(n);continue}if(An(n.current)){yield Cn(n);continue}if(pt(n.current)){yield Ct(n);continue}yield Hs(n)}yield v(n,ct)}var Or,T;var ea=j(()=>{At();Xi();Or=Array(256).fill(null);Or[98]=Vs("binary",wr,Ls,zi);Or[111]=Vs("octal",br,Fs,qi);Or[120]=Vs("hexadecimal",Sr,Ds,Ms);T=Array(255);T.fill(Hs);for(let e=0;e<32;e++)T[e]=Cr;T[9]=Cn;T[10]=Ct;T[11]=Ct;T[12]=Ct;T[13]=Ct;T[32]=Cn;T[34]=Zc;T[35]=Zi;T[40]=Ot(hr);T[41]=Ot(Jn);T[43]=Qi;T[45]=Qi;T[46]=Qc;T[47]=eu;T[48]=Pe;T[49]=Pe;T[50]=Pe;T[51]=Pe;T[52]=Pe;T[53]=Pe;T[54]=Pe;T[55]=Pe;T[56]=Pe;T[57]=Pe;T[59]=Ot($r);T[61]=Ot(qt);T[91]=Cr;T[92]=Ot(Er);T[93]=Cr;T[114]=nu;T[123]=Ot(xr);T[125]=Ot(yr);T[133]=Ct;T[160]=Cn});var Yt=j(()=>{ea()});var M;var At=j(()=>{Yt();M=class M extends Error{name="InvalidKdlError";start;end;token;errors;constructor(e,{token:t,start:n=t?.start,end:r=t?.end,errors:s,...o}={}){if(t?.type===ct)e=`${e} at end of input`;else if(n)e=`${e} at ${n.line}:${n.column}`;super(e,o);this.token=t,this.start=n,this.end=r,this.errors=s}*flat(){if(this.errors==null){yield this;return}for(let e of this.errors)yield*e.flat()}}});function Xt(e){return ta.get(e)}function na(e,{start:t},{end:n}){ta.set(e,{start:t,end:n})}var ta;var Bs=j(()=>{ta=new WeakMap});function ra({experimentalSuffixedNumbers:e=!1}={}){return{experimentalSuffixedNumbers:e}}class ke{type="identifier";static type="identifier";representation;constructor(e){this.name=e}getName(){return this.name}setName(e){if(e!==this.name)this.name=e,this.representation=void 0}clone(){let e=new ke(this.name);return e.representation=this.representation,e}}class We{type="tag";static type="tag";representation;leading;trailing;suffix;constructor(e){this.name,Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!1,value:e})}getName(){return this.name}setName(e){if(e!==this.name)this.name=e,this.representation=void 0}clone(){let e=new We(this.name);return e.representation=this.representation,e.leading=this.leading,e.trailing=this.trailing,e.suffix=this.suffix,e}}class Ie{type="value";static type="value";representation;tag=null;betweenTagAndValue;constructor(e){this.value=e}clone(){let e=new Ie(this.value);return e.tag=this.tag?.clone()??null,e.betweenTagAndValue=this.betweenTagAndValue,e.representation=this.representation,e}getValue(){return this.value}setValue(e){if(e!==this.value)this.value=e,this.representation=void 0}getTag(){return this.tag?this.tag.name:null}setTag(e){if(e==null)this.tag=null;else if(this.tag!=null)this.tag.setName(e);else this.tag=new We(e)}}var Us=()=>{};class Je{static createArgument(e){return new Je(new Ie(e),null)}static createProperty(e,t){return new Je(new Ie(t),new ke(e))}type="entry";static type="entry";name;value;leading;trailing;equals;constructor(e,t){this.value=e,this.name=t}clone(){let e=new Je(this.value.clone(),this.name?.clone()??null);return e.leading=this.leading,e.trailing=this.trailing,e.equals=this.equals,e}getTag(){return this.value.getTag()}setTag(e){this.value.setTag(e)}getName(){return this.name?this.name.name:null}setName(e){this.name=e!=null?new ke(e):null}getValue(){return this.value.value}setValue(e){this.value=new Ie(e)}isArgument(){return this.name==null}isProperty(){return this.name!=null}}var qs=j(()=>{Us()});function*Zt(e){for(let t=e.length-1;t>=0;t--)yield e[t]}function zs(e){return e.children??(e.children=new dt)}class Qt{static create(e){return new Qt(new ke(e))}type="node";static type="node";name;tag=null;entries;children;leading;trailing;beforeChildren;betweenTagAndName;constructor(e,t=[],n=null){this.name=e,this.entries=t,this.children=n}clone({shallow:e=!1}={}){let t=new Qt(this.name.clone(),e?[]:this.entries.map((n)=>n.clone()),this.children?.clone({shallow:e}));if(this.tag)t.tag=this.tag.clone();return t.leading=this.leading,t.betweenTagAndName=this.betweenTagAndName,t.beforeChildren=this.beforeChildren,t.trailing=this.trailing,t}getTag(){return this.tag?this.tag.name:null}setTag(e){this.tag=e!=null?new We(e):null}getName(){return this.name.name}setName(e){this.name.setName(e)}hasArguments(){return this.entries.some((e)=>e.isArgument())}getArguments(){return this.getArgumentEntries().map((e)=>e.getValue())}getArgumentEntries(){return this.entries.filter((e)=>e.isArgument())}hasArgument(e){return this.getArgumentEntry(e)!=null}getArgument(e){return this.getArgumentEntry(e)?.getValue()}getArgumentEntry(e){for(let t of this.entries){if(!t.isArgument())continue;if(e===0)return t;e--}}addArgument(e,t,n){let r=Je.createArgument(e);if(r.value.setTag(t),n!=null)for(let[s,o]of this.entries.entries()){if(!o.isArgument())continue;if(n===0){this.entries.splice(s,0,o);return}n--}this.entries.push(r)}removeArgument(e){for(let[t,n]of this.entries.entries()){if(!n.isArgument())continue;if(e===0){this.entries.splice(t,1);return}e--}}hasProperties(){return this.entries.some((e)=>e.isProperty())}getProperties(){return new Map(this.getPropertyEntries().map((e)=>[e.getName(),e.getValue()]))}getPropertyEntries(){return this.entries.filter((e)=>e.isProperty())}getPropertyEntryMap(){return new Map(this.getPropertyEntries().map((e)=>[e.getName(),e]))}hasProperty(e){return this.getPropertyEntry(e)!=null}getProperty(e){return this.getPropertyEntry(e)?.getValue()}getPropertyEntry(e){for(let t of Zt(this.entries))if(t.getName()===e)return t;return}setProperty(e,t,n){for(let s of Zt(this.entries))if(s.getName()===e){s.setValue(t),s.value.setTag(n);return}let r=Je.createProperty(e,t);r.value.setTag(n),this.entries.push(r)}deleteProperty(e){this.entries=this.entries.filter((t)=>t.getName()!==e)}hasChildren(){return this.children!=null&&!this.children.isEmpty()}appendNode(e){zs(this).appendNode(e)}insertNodeBefore(e,t){zs(this).insertNodeBefore(e,t)}insertNodeAfter(e,t){zs(this).insertNodeAfter(e,t)}removeNode(e){if(this.children==null)throw Error("Node to remove is not in document");this.children.removeNode(e)}replaceNode(e,t){if(this.children==null)throw Error("Node to remove is not in document");this.children.replaceNode(e,t)}findNodesByName(e){return this.children!=null?this.children.findNodesByName(e):[]}findNodeByName(e){return this.children?.findNodeByName(e)}findParameterizedNode(e,t){return this.children?.findParameterizedNode(e,t)}removeNodesByName(e){this.children?.removeNodesByName(e)}}var sa=j(()=>{Ks();qs()});function*en(e){if(e instanceof dt)yield*e.nodes;else yield e}class dt{type="document";static type="document";nodes;trailing;constructor(e=[]){this.nodes=e}clone({shallow:e}={}){let t=new dt(e?[]:this.nodes.map((n)=>n.clone()));return t.trailing=this.trailing,t}appendNode(e){this.nodes.push(...en(e))}insertNodeBefore(e,t){if(t==null){this.nodes.push(...en(e));return}let n=this.nodes.indexOf(t);if(n===-1)throw Error("Reference node is not in document");this.nodes.splice(n,0,...en(e))}insertNodeAfter(e,t){if(t==null){this.nodes.unshift(...en(e));return}let n=this.nodes.indexOf(t);if(n===-1)throw Error("Reference node is not in document");this.nodes.splice(n+1,0,...en(e))}removeNode(e){let t=this.nodes.indexOf(e);if(t===-1)throw Error("Node to remove is not in document");this.nodes.splice(t,1)}replaceNode(e,t){let n=this.nodes.indexOf(e);if(n===-1)throw Error("Node to replace is not in document");this.nodes.splice(n,1,...en(t))}findNodesByName(e){return this.nodes.filter((t)=>t.name.name===e)}findNodeByName(e){for(let t of Zt(this.nodes))if(t.name.name===e)return t;return}findParameterizedNode(e,t){for(let n of Zt(this.nodes)){if(n.name.name!==e)continue;let r=n.getArguments();if(r.length!==1||t!==void 0&&r[0]!==t)continue;return n}return}removeNodesByName(e){this.nodes=this.nodes.filter((t)=>t.name.name!==e)}isEmpty(){return this.nodes.length===0}}var Ks=()=>{};var oa=j(()=>{Ks();qs();sa();Us()});function ia(e,t,n){let r;while(r=su.exec(t)){let s=vn(n,t,r.index);e.push(new M("Raw strings with single quotes cannot contain any unescaped newlines, use triple-quotes for multiline strings",{token:n,start:s,end:{offset:s.offset+r[0].length,line:s.line+1,column:1}}))}return t}function aa(e,t,n){if(!tn.test(t))return e.push(new M("Raw strings with three quotes must be multiline strings",{token:n})),t;if(!tn.test(t[0]))return e.push(new M("Multi-line strings must start with a newline",{token:n})),t;let r=au.exec(t)?.[1];if(r==null)return e.push(new M("The final line in a multiline string may only contain whitespace",{token:n})),t;return t.replace(cu,(s,o,i,a,l)=>{if(!a)return`
|
|
39
|
+
`;if(!i.startsWith(r)){let c=vn(n,t,l+o.length);return e.push(new M("Every non-blank line of a multi-line string must start with the offset defined by the last line of the string",{token:n,start:c,end:{offset:c.offset+r.length,line:c.line,column:c.column+r.length}})),`
|
|
31
40
|
`}return`
|
|
32
|
-
`+i.slice(r.length)+
|
|
33
|
-
`;if(!i.startsWith(r)){let p=
|
|
41
|
+
`+i.slice(r.length)+a}).slice(1,-1)}function la(e,t,n){let r;while(r=iu.exec(t)){let s=vn(n,t,r.indices[1][0]);e.push(new M("Strings with single quotes cannot contain any unescaped newlines, use triple-quotes for multiline strings",{token:n,start:s,end:{offset:s.offset+r[1].length,line:s.line+1,column:1}}))}return t.replace(fu,(s,o,i,a,l)=>ua(e,t,n,s,o,i,a,l))}function ca(e,t,n){if(!ou.test(t))return e.push(new M("Strings with three quotes must be multiline strings",{token:n})),t;if(!tn.test(t[0]))return e.push(new M("Multi-line strings must start with a newline",{token:n})),t;let r=lu.exec(t)?.[1];if(r==null){let s=uu.exec(t),o=s?vn(n,t,s.index):void 0,i="The final line in a multiline string may only contain whitespace";if(s?.[0][0]==="\\")i+=" after removing escaped whitespace";return e.push(new M(i,{token:n,start:o,end:o&&{offset:o.offset,line:o.line,column:o.column+1}})),t}return t.replace(pu,(s,o,i,a,l,c,u)=>{if(!o)return ua(e,t,n,s,a,l,c,u);let f=t[u+o.length+(i?i.length:0)];if(tn.test(f))return`
|
|
42
|
+
`;if(!i.startsWith(r)){let p=vn(n,t,u+o.length);return e.push(new M("Every non-blank line of a multi-line string must start with the offset defined by the last line of the string",{token:n,start:p,end:{offset:p.offset+r.length,line:p.line,column:p.column+r.length}})),`
|
|
34
43
|
`}return`
|
|
35
|
-
`+i.slice(r.length)}).slice(1,-1)}function
|
|
36
|
-
`],["\\r","\r"],["\\t","\t"],["\\\\","\\"],["\\\"",'"'],["\\b","\b"],["\\f","\f"],["\\s"," "]]),Xt=/\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029]/,gc=/\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029]/g,hc=/(?:^|[^\\\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029])(?:\\\\)*[\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029]*(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])/s,xc=/(?:^|[^\\\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029])(?:\\\\)*[\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029]*(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])/dgs;yc=/[\x0A\x0B\x0C\x0D\x85\u2028\u2029]([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)$/,$c=/(?:^|[^\\\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000])(?:\\\\)*[\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*[\x0A\x0B\x0C\x0D\x85\u2028\u2029]([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)(?:\\[\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)*$/,Sc=/(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)([^\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]?)/g,bc=/([^\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000])[\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*$/;wc=/\\(?:$|u\{(0[0-9a-fA-F]{0,5}|10[0-9a-fA-F]{4}|[1-9a-fA-F][0-9a-fA-F]{0,4})\}|u(\{[^}]{1,6}\}?|[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})|([\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]+)|.)/g;Ec=/(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)|\\(?:$|u\{(0[0-9a-fA-F]{0,5}|10[0-9a-fA-F]{4}|[1-9a-fA-F][0-9a-fA-F]{0,4})\}|u(\{[^}]{1,6}\}?|[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})|([\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]+)|.)/g});function et(e){if(!e.current.done)e.lastToken=e.current.value;e.current=e.tokens.next();let t=!e.current.done&&e.current.value.errors;if(t)e.errors.push(...t)}function W(e,t){if(!e.current.done&&e.current.value.type===t){let n=e.current.value;return et(e),n}}function R(e,t){let n="current"in e?e.current.value??e.lastToken:e;return new I(t,{token:n})}function ge(e,t,n,r=n){if(e.storeLocations)Ni(t,n,r)}function ae(e="",t="",n=""){return e+t+n||void 0}function $r(e,t,{storeLocations:n=!1,flags:r}){let s={type:-1,text:"",start:{offset:0,line:1,column:1},end:{offset:0,line:1,column:1},errors:null},o={text:e,tokens:t[Symbol.iterator](),current:{done:!1,value:s},storeLocations:n,lastToken:s,errors:[],flags:r};return et(o),o}function ks(e,t){if(!t&&!e.current.done&&e.current.value.type!==at)t=R(e,`Unexpected token ${JSON.stringify(e.current.value.text)}, did you forget to quote an identifier?`);let n=e.errors??[];if(t!=null)if(t instanceof I)if(t.errors)n.push(...t.errors);else n.push(t);else n.push(new I(`An unexpected error occurred, ${String(t)}, this is likely a bug in the KDL parser`,{cause:t}));if(n.length)if(n.length===1)throw n[0];else throw new I("Encountered multiple errors",{errors:n})}function xr(e){switch(e){case"#null":return null;case"#true":return!0;case"#false":return!1;case"#inf":return 1/0;case"#-inf":return-1/0;case"#nan":return NaN}}function Pi(e){return e==="inf"||e==="-inf"||e==="nan"||e==="true"||e==="false"||e==="null"||!1}function Ps(e){let{value:t}=e.current,n,r,s,o,i,c=!1;if(t?.text[0]==="-"||t?.text[0]==="+")i=t.text[0];switch(t?.type){case Me:{if(!e.flags.experimentalSuffixedNumbers)throw new I("Unreachable code: got a suffixed number from the tokenizer but the suffixed number flag is not set",{token:t});let u=i?t.text.slice(1):t.text,f=u.search(/[^0-9._]/);if(r=(i??"")+u.slice(0,f),n=Number.parseFloat(r.replaceAll("_","")),o=s=u.slice(f),Pi(s))e.errors.push(R(e,`Invalid suffix ${s}, values that look like keywords cannot be used as suffix`))}break;case ur:c=!0,n=(i==="-"?-1:1)*Number.parseInt(t.text.slice(i?3:2).replaceAll("_",""),2);break;case cr:c=!0,n=(i==="-"?-1:1)*Number.parseInt(t.text.slice(i?3:2).replaceAll("_",""),8);break;case Ze:c=!0,n=Number.parseFloat(t.text.replaceAll("_",""));break;case lr:c=!0,n=(i==="-"?-1:1)*Number.parseInt(t.text.slice(i?3:2).replaceAll("_",""),16);break;case Ht:if(n=xr(t.text),n===void 0)if(n=null,xr(t.text.toLowerCase())!==void 0)e.errors.push(R(e,`Invalid keyword ${t.text}, keywords are case sensitive, write ${t.text.toLowerCase()} instead`));else switch(t.text.toLowerCase()){case"#nul":case"#nill":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #null?`));break;case"#fals":case"#fasle":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #false?`));break;case"#ture":case"#treu":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #true?`));break;case"#ifn":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #inf?`));break;case"#-ifn":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #-inf?`));break;default:e.errors.push(R(e,`Invalid keyword ${t.text}, surround it with quotes to use a string`))}break;default:return}et(e);let a=e.flags.experimentalSuffixedNumbers&&W(e,Ht);if(a)if(c){if(o=a.text,xr(o)!==void 0)e.errors.push(R(a,`Invalid number suffix ${o}, did you forget a space between the number and the keyword?`));s=o.slice(1)}else if(s)e.errors.push(R(a,"Unexpected hashed suffix, a number can only have one suffix"));else if(typeof n==="number")e.errors.push(R(a,"Unexpected hashed suffix, you cannot place suffixes on number keywords"));else e.errors.push(R(a,"Unexpected hashed suffix, you can only place suffixes on numbers"));let l=new ke(n);if(l.representation=r??t.text,ge(e,l,t),s){let u=new Fe(s);u.representation=o,u.suffix=!0,ge(e,u,e.lastToken),l.tag=u}return l}function wn(e){if(e.current.done)return;let{value:t}=e.current,n;switch(t.type){case ie:if(et(e),Pi(t.text))e.errors.push(R(e,`Invalid keyword "${t.text}", add a leading # to use the keyword or surround with quotes to make it a string`));n=[t.text,t.text,t];break;case hn:et(e),n=[ji(e.errors,t.text.slice(1,-1),t),t.text,t];break;case Bt:et(e),n=[Ri(e.errors,t.text.slice(3,-3),t),t.text,t];break;case lt:{et(e);let r=t.text,s=r.indexOf('"');n=[vi(e.errors,r.slice(s+1,-(s+1)),t),r,t];break}case bt:{et(e);let r=t.text,s=r.indexOf('"');n=[Ti(e.errors,r.slice(s+3,-(s+3)),t),r,t];break}default:return}if(W(e,Ht))e.errors.push(R(e.lastToken,xr(e.lastToken.text)===void 0?"Unexpected hashed suffix on a string, you can only place suffixes on numbers":"Unexpected keyword, did you forget to add whitespace?"));return n}function Is(e){let t=wn(e);if(!t)return;let n=new _e(t[0]);return n.representation=t[1],ge(e,n,t[2],e.lastToken),n}function yr(e){let t=Ps(e);if(t)return t;let n=wn(e);if(!n)return;let r=new ke(n[0]);return r.representation=n[1],ge(e,r,n[2],e.lastToken),r}function En(e){let t=W(e,pr);if(!t)return;let{value:n}=e.current;return et(e),t.text+(n?.text??"")}function Sr(e){return W(e,dr)?.text}function Ds(e){return W(e,St)??Sr(e)}function br(e){let t=W(e,fr);if(!t)return;while(Ds(e));if(!En(e)&&!W(e,ct)&&!W(e,at))e.errors.push(R(e,`Expected newline or single-line comment after backslash but got ${e.current.value?.text??"EOF"}`));return e.text.slice(t.start.offset,e.lastToken.end.offset)}function pt(e){let t=e.lastToken.end;while(W(e,ct)?.text??En(e)??Ds(e)??br(e));if(e.lastToken.end===t)return;return e.text.slice(t.offset,e.lastToken.end.offset)}function ee(e){let t=e.lastToken.end;while(Ds(e)??br(e));if(e.lastToken.end===t)return;return e.text.slice(t.offset,e.lastToken.end.offset)}function _s(e){let t=W(e,sr);if(!t)return;let n=ee(e),r=wn(e);if(!r&&e.current.value){let c=e.current.value;if(pt(e))e.errors.push(R(c,"This type of whitespace is not allowed inside a tag"));r=wn(e)}if(!r){if(Ps(e))e.errors.push(R(e,"Invalid tag, did you forget to quote a string?")),r=["error","error"]}if(!r)throw R(e,"Invalid tag, did you forget to quote a string?");let s=ee(e),o=W(e,gn);if(!o&&e.current.value){let c=e.current.value;if(pt(e))e.errors.push(R(c,"This type of whitespace is not allowed inside a tag"));o=W(e,gn)}if(!o)throw R(e,"Invalid tag, did you forget to quote a string?");let i=new Fe(r[0]);return i.representation=r[1],i.leading=n,i.trailing=s,ge(e,i,t,e.lastToken),i}function wr(e){return En(e)??W(e,ct)?.text??W(e,ar)?.text??W(e,at)?.text}function Ms(e){if(!W(e,or))return;let t=Li(e);if(!W(e,ir))throw R(e,"Invalid node children");return t}function Zt(e){let t=e.current.value;{let f=_s(e);if(f){let p=ee(e),d=yr(e);if(!d)throw R(e,"Invalid argument");if(d.tag)e.errors.push(R(e.lastToken,"A number suffix cannot be combined with a regular tag"));d.tag=f,d.betweenTagAndValue=p;let h=new we(d,null);ge(e,d,t,e.lastToken),ge(e,h,t,e.lastToken);let g=ee(e);if(W(e,Vt))e.errors.push(R(e.lastToken,typeof d.value==="string"?"Unexpected equals sign, properties are name=(tag)value not (tag)name=value":"Unexpected equals sign")),g=ae(g,ee(e))||" ";return[h,g]}}{let f=Ps(e);if(f){let p=new we(f,null);ge(e,p,t,e.lastToken);let d=ee(e);if(W(e,Vt))e.errors.push(R(e.lastToken,"Unexpected equals sign, did you forget to quote the property name?")),d=ae(d,ee(e))||" ";return[p,d]}}let n=wn(e);if(!n)return;let r=ee(e),s=W(e,Vt);if(!s){let f=new ke(n[0]);f.representation=n[1],ge(e,f,n[2]);let p=new we(f,null);return ge(e,p,t,e.lastToken),[p,r]}let o=new _e(n[0]);o.representation=n[1],ge(e,o,n[2]);let i=ee(e),c=_s(e),a=c&&ee(e),l=yr(e);if(!l)throw R(e,"Expected a value");if(c){if(l.tag)e.errors.push(R(e.lastToken,"A number suffix cannot be combined with a regular tag"));l.tag=c,l.betweenTagAndValue=a}let u=new we(l,o);return ge(e,u,t,e.lastToken),u.equals=ae(r,s.text,i),[u,void 0]}function Ii(e){let t=ee(e)??"",n;while(n=At(e)){let i=e.lastToken.end,c=Zt(e);if(!c)throw R(e,"Expected a property or argument");if(!(c[1]??ee(e)))throw R(e,"Expected space after slashdashed property or argument");t=t+n+e.text.slice(i.offset,e.lastToken.end.offset)}let r=Zt(e);if(!r)return;let s=r[1]??ee(e)??"";while(n=At(e)){let i=e.lastToken.end,c=Zt(e);if(!c)throw R(e,"Expected a property or argument");if(!(c[1]??ee(e)))break;s=s+n+e.text.slice(i.offset,e.lastToken.end.offset)}let o=r[0];return o.leading=t,o.trailing=s,o}function At(e){let t=W(e,$t)?.text;if(!t)return;return ae(t,pt(e))}function Er(e){let t=e.current.value,n=_s(e),r=n&&ee(e),s=Is(e);if(!s)if(n)throw R(e,"Couldn't find node name");else return;let o=ee(e),i=o!=null,c=At(e),a=[];while(i||c){let p=e.lastToken.end,d=Zt(e);if(!d)break;if(c)i=(d[1]||ee(e))!=null,o=ae(o,c,e.text.slice(p.offset,e.lastToken.end.offset)),c=At(e);else{let h=d[0];h.leading=o,a.push(h),o=d[1]||ee(e),i=o!=null,c=At(e)}}let l,u;while(!0){c??=At(e);let p=e.lastToken.end,d=Ms(e);if(!d){if(c)throw R(e,"Unexpected slashdash");break}if(c)o=ae(o,c,e.text.slice(p.offset,e.lastToken.end.offset)),c=void 0;else{if(l)e.errors.push(R(e,"A node can only have one children block"));l=d,u=o??"",o=void 0}o=ae(o,ee(e))}let f=new Gt(s,a,l);return f.tag=n??null,f.betweenTagAndName=r,f.beforeChildren=u,f.trailing=o??"",ge(e,f,t,e.lastToken),f}function Di(e){let t=pt(e),n=Er(e);if(!n)return;let r=ae(wr(e),pt(e));return n.leading=ae(t,n.leading),n.trailing=ae(n.trailing,r),n}function Mi(e){let t=W(e,Wt)?.text,n=Li(e);if(!t)return n;if(n.nodes[0])n.nodes[0].leading=ae(t,n.nodes[0].leading);else n.trailing=ae(t,n.trailing);return n}function Li(e){let t=e.current.value,n=[],r=!0,s=pt(e);while(r){let i=e.lastToken.end,c=At(e),a=Er(e);if(!a){if(c)throw R(e,"Unexpected slashdash");break}let l=ee(e),u=wr(e);if(c)s=ae(s,e.text.slice(i.offset,e.lastToken.end.offset),pt(e));else a.trailing=ae(a.trailing,l,u)??"",n.push(a),a.leading=s??"",s=pt(e);r=u!=null}let o=new ft(n);return ge(e,o,t,e.lastToken),o.trailing=s??"",o}var Ls=v(()=>{Et();Cs();Ci();ki();qt()});function Fi(e,t){let n=[],r;while(r=t(e))n.push(r);return n.length>0?n:void 0}function Jc(e){{let t=W(e,Wt);if(t)return{type:"bom",text:t.text}}{let t=W(e,ct);if(t)return{type:"newline",text:t.text}}{let t=W(e,St);if(t)return{type:"space",text:t.text}}{let t=En(e);if(t)return{type:"singleline",text:t}}{let t=Sr(e);if(t)return{type:"multiline",text:t}}return}function Jr(e){{let t=br(e);if(t)return{type:"line-escape",text:t}}{let t=W(e,St);if(t)return{type:"space",text:t.text}}{let t=Sr(e);if(t)return{type:"multiline",text:t}}return}function Wi(e){let t=[];while(!0){{let n=Jc(e);if(n){t.push(n);continue}}if(W(e,$t)?.text){let r,s=Fi(e,Jr)??[],o=Er(e);if(!o)throw R(e,"Invalid slashdash, expected a commented node");o.trailing=ae(o.trailing,Fi(e,Jr)?.map((i)=>i.text).join(""),wr(e)),t.push({type:"slashdash",preface:s,value:o});continue}break}return t}function Nc(e){let t=W(e,$t);if(t==null)return;let n,r=[];while(n=Jr(e))r.push(n);let s,o,i="";if(o=Zt(e)){if(s=o[0],o[1])i=o[1]}else if(o=Ms(e))s=o;else throw R(t,"Couldn't find argument, property, or children that were commented by slashdash");return[{type:"slashdash",preface:r,value:s},i]}function Fs(e){let t=[];while(!0){let n=Jr(e);if(!n)break;let r=!0;t.push(n);while(r){let s=Nc(e);if(!s)break;if(t.push(s[0]),s[1][0])t.push(...Fs($r(s[1][0],Sn(s[1][0],{flags:e.flags}),{flags:e.flags})));r=!!s[1][0]}}return t}var Vi=v(()=>{qt();Ls()});function dt(e,{as:t="document",flags:n,...r}={}){let s=Ac[t];if(s==null)throw TypeError(`Invalid "as" target passed: ${JSON.stringify(t)}`);if(typeof e!=="string"){if(typeof TextDecoder!=="function")throw TypeError("Uint8Array input is only supported on platforms that include TextDecoder");e=new TextDecoder("utf-8",{fatal:!0}).decode(e)}let o=Ai(n),i=Sn(e,{...r,flags:o}),c=$r(e,i,{...r,flags:o}),a;try{a=s(c)}catch(l){ks(c,l)}if(ks(c),!a)throw new I(`Expected ${/^[aeiouy]/.exec(t)?"an":"a"} ${t}`);return a}var Ac;var Hi=v(()=>{Et();qt();Ls();Vi();Ac={value:yr,identifier:Is,node:Di,entry:Ii,document:Mi,"whitespace in document":Wi,"whitespace in node":Fs}});var Nr=v(()=>{Et();Cs();Hi()});function Qt(e,t){let n=e.slice(0,t),r=n.split(`
|
|
44
|
+
`+i.slice(r.length)}).slice(1,-1)}function ua(e,t,n,r,s,o,i,a){if(i)return"";if(o){let l=n.text.startsWith('"""'),c=t.slice(0,a).split(tn),u={offset:n.start.offset+(l?3:1)+a,line:n.start.line+(c.length-1),column:c.length===1?n.start.column+(l?3:1)+a:c.at(-1).length},f={offset:u.offset+r.length,line:u.line,column:u.column+r.length};if(!o.startsWith("{"))e.push(new M(String.raw`Invalid unicode escape "\u${o}", did you forget to use {}? "\u{${o}}"`,{token:n,start:u,end:f}));else e.push(new M(String.raw`Invalid unicode escape "\u${o.endsWith("}")?o:`${o}...`}"`,{token:n,start:u,end:f}));return""}else if(s){let l=parseInt(s,16);if(l>=55296&&l<=57343)e.push(new M(String.raw`Invalid unicode escape "\u{${s}}, only scalar values can be added using an escape`,{token:n}));return String.fromCodePoint(l)}else{let l=ru.get(r);if(l==null)return e.push(new M(r.length<2?"Invalid whitespace escape at the end of a string":`Invalid escape "${r}"`,{token:n})),"";return l}}function vn(e,t,n){let r=1;switch(e.type){case Kt:r=3;break;case ut:r=e.text.indexOf('"')+1;break;case Jt:r=e.text.indexOf('"')+3;break}let s=t.slice(0,n).split(tn);return{offset:e.start.offset+r+n,line:e.start.line+(s.length-1),column:s.length===1?e.start.column+r+n:1+s[s.length-1].length}}var Yd,ru,tn,su,ou,iu,au,lu,cu,uu,fu,pu;var fa=j(()=>{At();Yt();Yd=new Map([...Array.from({length:32},(e,t)=>[t,`\\u{${t.toString(16).padStart(2,"0")}}`]),[127,"\\u{7f}"],[8206,"\\u{200e}"],[8207,"\\u{200f}"],[8234,"\\u{202a}"],[8235,"\\u{202b}"],[8236,"\\u{202c}"],[8237,"\\u{202d}"],[8238,"\\u{202e}"],[8294,"\\u{2066}"],[8295,"\\u{2067}"],[8296,"\\u{2068}"],[8297,"\\u{2069}"],[65279,"\\u{feff}"],[34,"\\\""],[92,"\\\\"],[10,"\\n"],[11,"\\u{0b}"],[12,"\\f"],[13,"\\r"],[133,"\\u{85}"],[8232,"\\u{2028}"],[8233,"\\u{2029}"],[8,"\\b"],[9,"\\t"]]),ru=new Map([["\\n",`
|
|
45
|
+
`],["\\r","\r"],["\\t","\t"],["\\\\","\\"],["\\\"",'"'],["\\b","\b"],["\\f","\f"],["\\s"," "]]),tn=/\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029]/,su=/\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029]/g,ou=/(?:^|[^\\\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029])(?:\\\\)*[\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029]*(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])/s,iu=/(?:^|[^\\\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029])(?:\\\\)*[\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\x0A\x0B\x0C\x0D\x85\u2028\u2029]*(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])/dgs;au=/[\x0A\x0B\x0C\x0D\x85\u2028\u2029]([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)$/,lu=/(?:^|[^\\\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000])(?:\\\\)*[\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*[\x0A\x0B\x0C\x0D\x85\u2028\u2029]([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)(?:\\[\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)*$/,cu=/(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)([^\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]?)/g,uu=/([^\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000])[\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*$/;fu=/\\(?:$|u\{(0[0-9a-fA-F]{0,5}|10[0-9a-fA-F]{4}|[1-9a-fA-F][0-9a-fA-F]{0,4})\}|u(\{[^}]{1,6}\}?|[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})|([\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]+)|.)/g;pu=/(\x0D\x0A|[\x0A\x0B\x0C\x0D\x85\u2028\u2029])([\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]*)|\\(?:$|u\{(0[0-9a-fA-F]{0,5}|10[0-9a-fA-F]{4}|[1-9a-fA-F][0-9a-fA-F]{0,4})\}|u(\{[^}]{1,6}\}?|[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})|([\x0A\x0B\x0C\x0D\x85\u2028\u2029\uFEFF\u0009\u0020\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]+)|.)/g});function et(e){if(!e.current.done)e.lastToken=e.current.value;e.current=e.tokens.next();let t=!e.current.done&&e.current.value.errors;if(t)e.errors.push(...t)}function V(e,t){if(!e.current.done&&e.current.value.type===t){let n=e.current.value;return et(e),n}}function R(e,t){let n="current"in e?e.current.value??e.lastToken:e;return new M(t,{token:n})}function xe(e,t,n,r=n){if(e.storeLocations)na(t,n,r)}function ce(e="",t="",n=""){return e+t+n||void 0}function Tr(e,t,{storeLocations:n=!1,flags:r}){let s={type:-1,text:"",start:{offset:0,line:1,column:1},end:{offset:0,line:1,column:1},errors:null},o={text:e,tokens:t[Symbol.iterator](),current:{done:!1,value:s},storeLocations:n,lastToken:s,errors:[],flags:r};return et(o),o}function Ys(e,t){if(!t&&!e.current.done&&e.current.value.type!==ct)t=R(e,`Unexpected token ${JSON.stringify(e.current.value.text)}, did you forget to quote an identifier?`);let n=e.errors??[];if(t!=null)if(t instanceof M)if(t.errors)n.push(...t.errors);else n.push(t);else n.push(new M(`An unexpected error occurred, ${String(t)}, this is likely a bug in the KDL parser`,{cause:t}));if(n.length)if(n.length===1)throw n[0];else throw new M("Encountered multiple errors",{errors:n})}function jr(e){switch(e){case"#null":return null;case"#true":return!0;case"#false":return!1;case"#inf":return 1/0;case"#-inf":return-1/0;case"#nan":return NaN}}function pa(e){return e==="inf"||e==="-inf"||e==="nan"||e==="true"||e==="false"||e==="null"||!1}function Xs(e){let{value:t}=e.current,n,r,s,o,i,a=!1;if(t?.text[0]==="-"||t?.text[0]==="+")i=t.text[0];switch(t?.type){case Fe:{if(!e.flags.experimentalSuffixedNumbers)throw new M("Unreachable code: got a suffixed number from the tokenizer but the suffixed number flag is not set",{token:t});let u=i?t.text.slice(1):t.text,f=u.search(/[^0-9._]/);if(r=(i??"")+u.slice(0,f),n=Number.parseFloat(r.replaceAll("_","")),o=s=u.slice(f),pa(s))e.errors.push(R(e,`Invalid suffix ${s}, values that look like keywords cannot be used as suffix`))}break;case wr:a=!0,n=(i==="-"?-1:1)*Number.parseInt(t.text.slice(i?3:2).replaceAll("_",""),2);break;case br:a=!0,n=(i==="-"?-1:1)*Number.parseInt(t.text.slice(i?3:2).replaceAll("_",""),8);break;case Ze:a=!0,n=Number.parseFloat(t.text.replaceAll("_",""));break;case Sr:a=!0,n=(i==="-"?-1:1)*Number.parseInt(t.text.slice(i?3:2).replaceAll("_",""),16);break;case zt:if(n=jr(t.text),n===void 0)if(n=null,jr(t.text.toLowerCase())!==void 0)e.errors.push(R(e,`Invalid keyword ${t.text}, keywords are case sensitive, write ${t.text.toLowerCase()} instead`));else switch(t.text.toLowerCase()){case"#nul":case"#nill":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #null?`));break;case"#fals":case"#fasle":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #false?`));break;case"#ture":case"#treu":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #true?`));break;case"#ifn":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #inf?`));break;case"#-ifn":e.errors.push(R(e,`Invalid keyword ${t.text}, did you mean #-inf?`));break;default:e.errors.push(R(e,`Invalid keyword ${t.text}, surround it with quotes to use a string`))}break;default:return}et(e);let l=e.flags.experimentalSuffixedNumbers&&V(e,zt);if(l)if(a){if(o=l.text,jr(o)!==void 0)e.errors.push(R(l,`Invalid number suffix ${o}, did you forget a space between the number and the keyword?`));s=o.slice(1)}else if(s)e.errors.push(R(l,"Unexpected hashed suffix, a number can only have one suffix"));else if(typeof n==="number")e.errors.push(R(l,"Unexpected hashed suffix, you cannot place suffixes on number keywords"));else e.errors.push(R(l,"Unexpected hashed suffix, you can only place suffixes on numbers"));let c=new Ie(n);if(c.representation=r??t.text,xe(e,c,t),s){let u=new We(s);u.representation=o,u.suffix=!0,xe(e,u,e.lastToken),c.tag=u}return c}function Tn(e){if(e.current.done)return;let{value:t}=e.current,n;switch(t.type){case le:if(et(e),pa(t.text))e.errors.push(R(e,`Invalid keyword "${t.text}", add a leading # to use the keyword or surround with quotes to make it a string`));n=[t.text,t.text,t];break;case Nn:et(e),n=[la(e.errors,t.text.slice(1,-1),t),t.text,t];break;case Kt:et(e),n=[ca(e.errors,t.text.slice(3,-3),t),t.text,t];break;case ut:{et(e);let r=t.text,s=r.indexOf('"');n=[ia(e.errors,r.slice(s+1,-(s+1)),t),r,t];break}case Jt:{et(e);let r=t.text,s=r.indexOf('"');n=[aa(e.errors,r.slice(s+3,-(s+3)),t),r,t];break}default:return}if(V(e,zt))e.errors.push(R(e.lastToken,jr(e.lastToken.text)===void 0?"Unexpected hashed suffix on a string, you can only place suffixes on numbers":"Unexpected keyword, did you forget to add whitespace?"));return n}function Zs(e){let t=Tn(e);if(!t)return;let n=new ke(t[0]);return n.representation=t[1],xe(e,n,t[2],e.lastToken),n}function vr(e){let t=Xs(e);if(t)return t;let n=Tn(e);if(!n)return;let r=new Ie(n[0]);return r.representation=n[1],xe(e,r,n[2],e.lastToken),r}function Rn(e){let t=V(e,Jr);if(!t)return;let{value:n}=e.current;return et(e),t.text+(n?.text??"")}function Rr(e){return V(e,Nr)?.text}function Qs(e){return V(e,Et)??Rr(e)}function _r(e){let t=V(e,Er);if(!t)return;while(Qs(e));if(!Rn(e)&&!V(e,ft)&&!V(e,ct))e.errors.push(R(e,`Expected newline or single-line comment after backslash but got ${e.current.value?.text??"EOF"}`));return e.text.slice(t.start.offset,e.lastToken.end.offset)}function mt(e){let t=e.lastToken.end;while(V(e,ft)?.text??Rn(e)??Qs(e)??_r(e));if(e.lastToken.end===t)return;return e.text.slice(t.offset,e.lastToken.end.offset)}function ee(e){let t=e.lastToken.end;while(Qs(e)??_r(e));if(e.lastToken.end===t)return;return e.text.slice(t.offset,e.lastToken.end.offset)}function Gs(e){let t=V(e,hr);if(!t)return;let n=ee(e),r=Tn(e);if(!r&&e.current.value){let a=e.current.value;if(mt(e))e.errors.push(R(a,"This type of whitespace is not allowed inside a tag"));r=Tn(e)}if(!r){if(Xs(e))e.errors.push(R(e,"Invalid tag, did you forget to quote a string?")),r=["error","error"]}if(!r)throw R(e,"Invalid tag, did you forget to quote a string?");let s=ee(e),o=V(e,Jn);if(!o&&e.current.value){let a=e.current.value;if(mt(e))e.errors.push(R(a,"This type of whitespace is not allowed inside a tag"));o=V(e,Jn)}if(!o)throw R(e,"Invalid tag, did you forget to quote a string?");let i=new We(r[0]);return i.representation=r[1],i.leading=n,i.trailing=s,xe(e,i,t,e.lastToken),i}function Pr(e){return Rn(e)??V(e,ft)?.text??V(e,$r)?.text??V(e,ct)?.text}function eo(e){if(!V(e,xr))return;let t=ha(e);if(!V(e,yr))throw R(e,"Invalid node children");return t}function nn(e){let t=e.current.value;{let f=Gs(e);if(f){let p=ee(e),d=vr(e);if(!d)throw R(e,"Invalid argument");if(d.tag)e.errors.push(R(e.lastToken,"A number suffix cannot be combined with a regular tag"));d.tag=f,d.betweenTagAndValue=p;let h=new Je(d,null);xe(e,d,t,e.lastToken),xe(e,h,t,e.lastToken);let g=ee(e);if(V(e,qt))e.errors.push(R(e.lastToken,typeof d.value==="string"?"Unexpected equals sign, properties are name=(tag)value not (tag)name=value":"Unexpected equals sign")),g=ce(g,ee(e))||" ";return[h,g]}}{let f=Xs(e);if(f){let p=new Je(f,null);xe(e,p,t,e.lastToken);let d=ee(e);if(V(e,qt))e.errors.push(R(e.lastToken,"Unexpected equals sign, did you forget to quote the property name?")),d=ce(d,ee(e))||" ";return[p,d]}}let n=Tn(e);if(!n)return;let r=ee(e),s=V(e,qt);if(!s){let f=new Ie(n[0]);f.representation=n[1],xe(e,f,n[2]);let p=new Je(f,null);return xe(e,p,t,e.lastToken),[p,r]}let o=new ke(n[0]);o.representation=n[1],xe(e,o,n[2]);let i=ee(e),a=Gs(e),l=a&&ee(e),c=vr(e);if(!c)throw R(e,"Expected a value");if(a){if(c.tag)e.errors.push(R(e.lastToken,"A number suffix cannot be combined with a regular tag"));c.tag=a,c.betweenTagAndValue=l}let u=new Je(c,o);return xe(e,u,t,e.lastToken),u.equals=ce(r,s.text,i),[u,void 0]}function da(e){let t=ee(e)??"",n;while(n=jt(e)){let i=e.lastToken.end,a=nn(e);if(!a)throw R(e,"Expected a property or argument");if(!(a[1]??ee(e)))throw R(e,"Expected space after slashdashed property or argument");t=t+n+e.text.slice(i.offset,e.lastToken.end.offset)}let r=nn(e);if(!r)return;let s=r[1]??ee(e)??"";while(n=jt(e)){let i=e.lastToken.end,a=nn(e);if(!a)throw R(e,"Expected a property or argument");if(!(a[1]??ee(e)))break;s=s+n+e.text.slice(i.offset,e.lastToken.end.offset)}let o=r[0];return o.leading=t,o.trailing=s,o}function jt(e){let t=V(e,wt)?.text;if(!t)return;return ce(t,mt(e))}function kr(e){let t=e.current.value,n=Gs(e),r=n&&ee(e),s=Zs(e);if(!s)if(n)throw R(e,"Couldn't find node name");else return;let o=ee(e),i=o!=null,a=jt(e),l=[];while(i||a){let p=e.lastToken.end,d=nn(e);if(!d)break;if(a)i=(d[1]||ee(e))!=null,o=ce(o,a,e.text.slice(p.offset,e.lastToken.end.offset)),a=jt(e);else{let h=d[0];h.leading=o,l.push(h),o=d[1]||ee(e),i=o!=null,a=jt(e)}}let c,u;while(!0){a??=jt(e);let p=e.lastToken.end,d=eo(e);if(!d){if(a)throw R(e,"Unexpected slashdash");break}if(a)o=ce(o,a,e.text.slice(p.offset,e.lastToken.end.offset)),a=void 0;else{if(c)e.errors.push(R(e,"A node can only have one children block"));c=d,u=o??"",o=void 0}o=ce(o,ee(e))}let f=new Qt(s,l,c);return f.tag=n??null,f.betweenTagAndName=r,f.beforeChildren=u,f.trailing=o??"",xe(e,f,t,e.lastToken),f}function ma(e){let t=mt(e),n=kr(e);if(!n)return;let r=ce(Pr(e),mt(e));return n.leading=ce(t,n.leading),n.trailing=ce(n.trailing,r),n}function ga(e){let t=V(e,Ut)?.text,n=ha(e);if(!t)return n;if(n.nodes[0])n.nodes[0].leading=ce(t,n.nodes[0].leading);else n.trailing=ce(t,n.trailing);return n}function ha(e){let t=e.current.value,n=[],r=!0,s=mt(e);while(r){let i=e.lastToken.end,a=jt(e),l=kr(e);if(!l){if(a)throw R(e,"Unexpected slashdash");break}let c=ee(e),u=Pr(e);if(a)s=ce(s,e.text.slice(i.offset,e.lastToken.end.offset),mt(e));else l.trailing=ce(l.trailing,c,u)??"",n.push(l),l.leading=s??"",s=mt(e);r=u!=null}let o=new dt(n);return xe(e,o,t,e.lastToken),o.trailing=s??"",o}var to=j(()=>{At();Bs();oa();fa();Yt()});function xa(e,t){let n=[],r;while(r=t(e))n.push(r);return n.length>0?n:void 0}function du(e){{let t=V(e,Ut);if(t)return{type:"bom",text:t.text}}{let t=V(e,ft);if(t)return{type:"newline",text:t.text}}{let t=V(e,Et);if(t)return{type:"space",text:t.text}}{let t=Rn(e);if(t)return{type:"singleline",text:t}}{let t=Rr(e);if(t)return{type:"multiline",text:t}}return}function Ir(e){{let t=_r(e);if(t)return{type:"line-escape",text:t}}{let t=V(e,Et);if(t)return{type:"space",text:t.text}}{let t=Rr(e);if(t)return{type:"multiline",text:t}}return}function ya(e){let t=[];while(!0){{let n=du(e);if(n){t.push(n);continue}}if(V(e,wt)?.text){let r,s=xa(e,Ir)??[],o=kr(e);if(!o)throw R(e,"Invalid slashdash, expected a commented node");o.trailing=ce(o.trailing,xa(e,Ir)?.map((i)=>i.text).join(""),Pr(e)),t.push({type:"slashdash",preface:s,value:o});continue}break}return t}function mu(e){let t=V(e,wt);if(t==null)return;let n,r=[];while(n=Ir(e))r.push(n);let s,o,i="";if(o=nn(e)){if(s=o[0],o[1])i=o[1]}else if(o=eo(e))s=o;else throw R(t,"Couldn't find argument, property, or children that were commented by slashdash");return[{type:"slashdash",preface:r,value:s},i]}function no(e){let t=[];while(!0){let n=Ir(e);if(!n)break;let r=!0;t.push(n);while(r){let s=mu(e);if(!s)break;if(t.push(s[0]),s[1][0])t.push(...no(Tr(s[1][0],jn(s[1][0],{flags:e.flags}),{flags:e.flags})));r=!!s[1][0]}}return t}var $a=j(()=>{Yt();to()});function gt(e,{as:t="document",flags:n,...r}={}){let s=gu[t];if(s==null)throw TypeError(`Invalid "as" target passed: ${JSON.stringify(t)}`);if(typeof e!=="string"){if(typeof TextDecoder!=="function")throw TypeError("Uint8Array input is only supported on platforms that include TextDecoder");e=new TextDecoder("utf-8",{fatal:!0}).decode(e)}let o=ra(n),i=jn(e,{...r,flags:o}),a=Tr(e,i,{...r,flags:o}),l;try{l=s(a)}catch(c){Ys(a,c)}if(Ys(a),!l)throw new M(`Expected ${/^[aeiouy]/.exec(t)?"an":"a"} ${t}`);return l}var gu;var Sa=j(()=>{At();Yt();to();$a();gu={value:vr,identifier:Zs,node:ma,entry:da,document:ga,"whitespace in document":ya,"whitespace in node":no}});var Dr=j(()=>{At();Bs();Sa()});function rn(e,t){let n=e.slice(0,t),r=n.split(`
|
|
37
46
|
`).length;return{column:t-n.lastIndexOf(`
|
|
38
|
-
`),line:r,offset:t}}var he;var Jn=v(()=>{he=class he extends Error{column;line;offset;reason;constructor(e,t=null){super(t?`${e} (line ${t.line}, column ${t.column})`:e);this.name="JxnError",this.column=t?.column??null,this.line=t?.line??null,this.offset=t?.offset??null,this.reason=e}inFile(e){let t=this.line!==null&&this.column!==null&&this.offset!==null?{column:this.column,line:this.line,offset:this.offset}:null;return new he(`${e}: ${this.reason}`,t)}}});var Bi;var Ui=v(()=>{Bi=new Set(["onabort","onactivate","onaddsourcebuffer","onaddtrack","onadvertisementreceived","onafterprint","onanimationcancel","onanimationend","onanimationiteration","onanimationstart","onappinstalled","onaudioend","onaudioprocess","onaudiostart","onauxclick","onavailabilitychanged","onbackgroundfetchabort","onbackgroundfetchclick","onbackgroundfetchfail","onbackgroundfetchsuccess","onbeforeinput","onbeforeinstallprompt","onbeforematch","onbeforeprint","onbeforetoggle","onbeforexrselect","onbegin","onblocked","onblur","onboundary","onbufferedamountlow","onbufferedchange","oncancel","oncanmakepayment","oncanplay","oncanplaythrough","oncaptureaction","oncapturedmousechange","oncapturehandlechange","onchange","oncharacterboundsupdate","oncharacteristicvaluechanged","onchargingchange","onchargingtimechange","onclick","onclose","onclosing","oncommand","oncomplete","oncompositionend","oncompositionstart","onconfigurationchange","onconnect","onconnecting","onconnectionavailable","onconnectionstatechange","oncontentdelete","oncontextlost","oncontextmenu","oncontextoverflow","oncontextrestored","oncontrollerchange","oncookiechange","oncopy","oncuechange","oncurrententrychange","oncurrentscreenchange","oncut","ondataavailable","ondatachannel","ondblclick","ondequeue","ondevicechange","ondevicemotion","ondeviceorientation","ondeviceorientationabsolute","ondischargingtimechange","ondisconnect","ondispose","ondownloadprogress","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onendstreaming","onenter","onenterpictureinpicture","onerror","onexit","onfencedtreeclick","onfetch","onfinish","onfocus","onformdata","onframeratechange","onfreeze","onfullscreenchange","onfullscreenerror","ongamepadconnected","ongamepaddisconnected","ongatheringstatechange","ongattserverdisconnected","ongeometrychange","ongotpointercapture","onhashchange","onicecandidate","onicecandidateerror","oniceconnectionstatechange","onicegatheringstatechange","oninput","oninputreport","oninputsourceschange","oninstall","oninstallresult","oninvalid","onisolationchange","onkeydown","onkeyframerequest","onkeypress","onkeystatuseschange","onkeyup","onlanguagechange","onlayoutchange","onleavepictureinpicture","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloading","onloadingdone","onloadingerror","onloadstart","onlocation","onlostpointercapture","onmanagedconfigurationchange","onmark","onmessage","onmessageerror","onmidimessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmute","onnavigate","onnavigateerror","onnavigatesuccess","onnegotiationneeded","onnomatch","onnotificationclick","onnotificationclose","onoffline","ononline","onopen","onorientationchange","onpagehide","onpagereveal","onpageshow","onpageswap","onpaste","onpause","onpayerdetailchange","onpaymentmethodchange","onpaymentrequest","onperiodicsync","onplay","onplaying","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerrawupdate","onpointerup","onpopstate","onportalactivate","onprerenderingchange","onprioritychange","onprocessorerror","onprogress","onpromptaction","onpromptdismiss","onpush","onpushsubscriptionchange","onquotaoverflow","onratechange","onreading","onreadingerror","onreadystatechange","onredraw","onreflectionchange","onrejectionhandled","onrelease","onremove","onremovesourcebuffer","onremovetrack","onrepeat","onreset","onresize","onresourcetimingbufferfull","onresult","onresume","onrtctransform","onscreenschange","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onselectedcandidatepairchange","onselectend","onselectionchange","onselectstart","onserviceadded","onservicechanged","onserviceremoved","onshippingaddresschange","onshippingoptionchange","onshow","onsignalingstatechange","onsinkchange","onslotchange","onsnapchanged","onsnapchanging","onsoundend","onsoundstart","onsourceclose","onsourceended","onsourceopen","onspeechend","onspeechstart","onsqueeze","onsqueezeend","onsqueezestart","onstalled","onstart","onstartstreaming","onstatechange","onstop","onstorage","onstream","onsubmit","onsuccess","onsuspend","onsync","onterminate","ontextformatupdate","ontextupdate","ontimeout","ontimeupdate","ontoggle","ontonechange","ontoolactivated","ontoolcancel","ontoolchange","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontrack","ontransitioncancel","ontransitionend","ontransitionrun","ontransitionstart","onuncapturederror","onunhandledrejection","onunload","onunmute","onupdate","onupdateend","onupdatefound","onupdatestart","onupgradeneeded","onvalidationstatuschange","onversionchange","onvisibilitychange","onvoiceschanged","onvolumechange","onwaiting","onwaitingforkey","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkittransitionend","onwheel","onzoomlevelchange"])});function M(e,t,n,r,s){let o=t.normalize("NFC");if(o==="__proto__")throw V(r,s,'"__proto__" cannot be a key: it would not be data');if(Object.hasOwn(e,o))throw V(r,s,`"${o}" is written twice, and one of them would be lost`);e[o]=n}function V(e,t,n){let r=qi(t)?.start;return new he(n,r===void 0?null:Qt(e.text,r))}function qi(e){let t=zt(e);return t?{end:t.end.offset,start:t.start.offset}:null}function xe(e,t,n){let r=e.spans?qi(n):null;if(r)e.spans?.set(t,r)}function Pe(e){return e.replaceAll("~","~0").replaceAll("/","~1")}function Or(e,t){let n=t.getTag();if(n!==null&&!Cc.has(n))throw V(e,t,`(${n}) is not an annotation Jx Notation has`);if(n==="ref")throw V(e,t,"(ref) annotates a value, and this is a name");return n}function en(e,t){let n=t.getTag(),r=t.getValue();if(n!==null&&n!=="ref")throw V(e,t,`(${n}) cannot annotate a value here; only (ref) can`);if(se(r)){if(!Number.isFinite(r))throw V(e,t,"JSON has no way to hold #inf or #nan");if(Number.isInteger(r)&&!Number.isSafeInteger(r))throw V(e,t,"This number is too large to survive being read as JSON")}if(n==="ref"){if(!b(r))throw V(e,t,"(ref) needs a string");return{$ref:r}}return r}function Ot(e,t){return t.entries.filter((n)=>!n.name).map((n)=>en(e,n))}function Ct(e){return e.entries.filter((t)=>t.name)}function Ae(e){return e.children?.nodes??[]}function Nn(e){return e.getName()??""}function Tc(e,t,n){let r={$prototype:"Function"},s=Ot(e,t),o=Ae(t);for(let i of Ct(t))M(r,Nn(i),en(e,i),e,i);if(o.length>0){if(s.length>0)M(r,"parameters",s,e,t);M(r,"body",Ws(e,o,`${n}/body`),e,t)}else if(s.length>0){let i=s.at(-1)??null,c=s.slice(0,-1);if(c.length>0)M(r,"parameters",c,e,t);M(r,"body",i,e,t)}return xe(e,n,t),r}function Ws(e,t,n){return t.map((r,s)=>{if(r.getName()!=="-")throw V(e,r,`A list holds only "-" items, and this is "${r.getName()}"`);return We(e,r,`${n}/${s}`)})}function We(e,t,n){let r=Or(e,t);if(xe(e,n,t),r==="fn")return Tc(e,t,n);let s=Ot(e,t),o=Ct(t),i=Ae(t);if(r==="array"){if(o.length>0)throw V(e,t,"(array) holds items, and these are named");return[...s,...Ws(e,i,n)]}if(r!=="object"){if(s.length>1){if(o.length>0||i.length>0)throw V(e,t,"A list of values cannot also have names or a block");return s}if(s.length===1){if(o.length>0||i.length>0)throw V(e,t,"A value cannot also have names or a block");return s[0]??null}if(i.length>0&&o.length===0&&i.every((a)=>a.getName()==="-"))return Ws(e,i,n)}else if(s.length>0)throw V(e,t,"(object) holds names, and this is a value");let c={};for(let a of o){let l=Nn(a);M(c,l,en(e,a),e,a),xe(e,`${n}/${Pe(l)}`,a)}for(let a of i){let l=a.getName();M(c,l,We(e,a,`${n}/${Pe(l)}`),e,a)}return c}function zi(e,t,n){let r={};if(xe(e,n,t),Ot(e,t).length>0)throw V(e,t,"A style block holds declarations, and this is a value");for(let s of Ct(t)){let o=Nn(s);M(r,o,en(e,s),e,s),xe(e,`${n}/${Pe(o)}`,s)}for(let s of Ae(t)){let o=s.getName(),i=`${n}/${Pe(o)}`,c=Ae(s);if(s.getTag()==="array"||c.length>0&&c.every((l)=>l.getName()==="-")){M(r,o,We(e,s,i),e,s);continue}let a=Ot(e,s);if(a.length>1)throw V(e,s,`"${o}" has more than one value. A selector with a space in it needs quotes`);if(a.length===1){if(Ct(s).length>0||Ae(s).length>0)throw V(e,s,`"${o}" has a value and names. A selector with a space in it needs quotes`);M(r,o,a[0]??null,e,s),xe(e,i,s)}else M(r,o,zi(e,s,i),e,s)}return r}function Ar(e,t,n){let r=Ae(t);if(r.length!==1||!r[0])throw V(e,t,`"${t.getName()}" holds one element`);return Gi(e,r[0],n)}function Ki(e,t,n){let r={$prototype:"Array"};if(xe(e,n,t),Ot(e,t).length>0)throw V(e,t,"$array holds names and one element, and this is a value");for(let s of Ct(t)){let o=Nn(s);M(r,o.startsWith(".")?o.slice(1):o,en(e,s),e,s)}if(Ae(t).length>0)M(r,"map",Ar(e,t,`${n}/map`),e,t);return r}function Gi(e,t,n){let r=t.getName();if(r==="-"){let s=Ot(e,t);if(s.length!==1||Ct(t).length>0||Ae(t).length>0)throw V(e,t,'"-" is one piece of text or one (ref)');return xe(e,n,t),s[0]??null}if(r==="$array")return Ki(e,t,n);return Vs(e,t,n)}function jc(e,t,n,r){let s=Or(e,n);if(t==="map")return Ar(e,n,r);if(t==="cases"){let o={};for(let i of Ae(n)){let c=i.getName();M(o,c,Ar(e,i,`${r}/${Pe(c)}`),e,i)}return o}if(t==="children"&&s!=="array"&&Ae(n).length>0)return Ar(e,n,r);return We(e,n,r)}function Vs(e,t,n){let r={},s=t.getName(),o=Or(e,t);if(xe(e,n,t),o!==null)throw V(e,t,`(${o}) cannot annotate an element`);let i=Ot(e,t);if(s==="$element"){let[a,l,...u]=i;if(u.length>0)throw V(e,t,"$element takes at most a tag and a text value");if(a!==void 0)M(r,"tagName",a,e,t);if(l!==void 0)M(r,"textContent",l,e,t)}else{if(s.startsWith("$"))throw V(e,t,`"${s}" is not a kind of element`);if(M(r,"tagName",s,e,t),i.length>1)throw V(e,t,"An element has one text value. A list of them needs a block");if(i[0]!==void 0)M(r,"textContent",i[0],e,t),xe(e,`${n}/textContent`,t)}Rc(e,t,r,n);let c=[];for(let a of Ae(t))_c(e,a,r,c,n);if(c.length>0)M(r,"children",c,e,t);return r}function Yi(e){let{attributes:t}=e;if(D(t))return t;let n={};return e.attributes=n,n}function Rc(e,t,n,r){for(let s of Ct(t)){let o=Nn(s),i=s.getTag();if(i==="fn")throw V(e,s,"A function has a block form: (fn)name, on a line of its own");let c=en(e,s);if(o.startsWith(".")||o.startsWith("$")){let a=o.startsWith(".")?o.slice(1):o;M(n,a,c,e,s),xe(e,`${r}/${Pe(a)}`,s)}else if(o.startsWith("on")&&i==="ref")M(n,o,c,e,s),xe(e,`${r}/${Pe(o)}`,s);else if(o.startsWith("on")&&Bi.has(o))throw V(e,s,`${o} needs (ref)"pointer", or a function on a line of its own: (fn)${o} "…"`);else M(Yi(n),o,c,e,s),xe(e,`${r}/attributes/${Pe(o)}`,s)}}function _c(e,t,n,r,s){let o=t.getName(),i=Or(e,t),c=(a)=>`${s}/${Pe(a)}`;if(i==="fn"||i==="on"){if(!o.startsWith("on"))throw V(e,t,`(${i}) in an element marks a handler, and "${o}" is not one`);M(n,o,We(e,t,c(o)),e,t)}else if(o==="script")throw V(e,t,'"script" is reserved. A <script> element is $element "script"');else if(o==="state")M(n,"state",We(e,t,c("state")),e,t);else if(o==="style")M(n,"style",zi(e,t,c("style")),e,t);else if(o==="attributes"){let a=We(e,t,c("attributes"));if(D(a))for(let[l,u]of Object.entries(a))M(Yi(n),l,u,e,t);else M(n,"attributes",a,e,t)}else if(o.startsWith(".")){let a=o.slice(1);M(n,a,jc(e,a,t,c(a)),e,t)}else if(o.startsWith("$")&&o!=="$array"&&o!=="$element")M(n,o,We(e,t,c(o)),e,t);else{if(vc.has(o))throw V(e,t,`"${o}" is reserved here`);r.push(Gi(e,t,`${s}/children/${r.length}`))}}function kc(e,t){return Ae(t).map((n,r)=>{let s=`/$head/${r}`;return n.getName()==="-"?We(e,n,s):Vs(e,n,s)})}function Pc(e){let t=Oc.exec(e);if(t)throw new he(`A raw control character (U+${t[0].codePointAt(0)?.toString(16).toUpperCase().padStart(4,"0")}) cannot be in a Jx Notation file. Escape it, as \\u{1b}`,Qt(e,t.index));try{return dt(e,{storeLocations:!0})}catch(n){let s=(n instanceof I?n.errors?.[0]??n:null)?.start,o=n instanceof Error?n.message:String(n);throw new he(o.split(`
|
|
39
|
-
`)[0]??o,s?
|
|
40
|
-
`,n);n=r===-1?e.length:r}else if(e.startsWith("/*",n)){t.comments+=1;let r=e.indexOf("*/",n+2);n=r===-1?e.length:r+2}else if(e.startsWith("/-",n))t.comments+=1,n+=2;else if(e.charAt(n)==="#"&&/^#+"/u.test(e.slice(n,n+16))){let[r=""]=/^#+/u.exec(e.slice(n))??[],s=n+r.length,o=e.startsWith('"""',s)?'"""':'"',i=e.indexOf(o+r,s+o.length);n=i===-1?e.length:i+o.length+r.length}else if(e.charAt(n)==='"'){let r=e.startsWith('"""',n)?'"""':'"';n+=r.length;while(n<e.length&&!e.startsWith(r,n))if(e.charAt(n)==="\\")t.escapes.push(n),n+=2;else n+=1;n+=r.length}else n+=1;return t}function
|
|
41
|
-
`)+1)}function
|
|
47
|
+
`),line:r,offset:t}}var ie;var sn=j(()=>{ie=class ie extends Error{column;line;offset;reason;constructor(e,t=null){super(t?`${e} (line ${t.line}, column ${t.column})`:e);this.name="JxnError",this.column=t?.column??null,this.line=t?.line??null,this.offset=t?.offset??null,this.reason=e}inFile(e){let t=this.line!==null&&this.column!==null&&this.offset!==null?{column:this.column,line:this.line,offset:this.offset}:null;return new ie(`${e}: ${this.reason}`,t)}}});var ba;var wa=j(()=>{ba=new Set(["onabort","onactivate","onaddsourcebuffer","onaddtrack","onadvertisementreceived","onafterprint","onanimationcancel","onanimationend","onanimationiteration","onanimationstart","onappinstalled","onaudioend","onaudioprocess","onaudiostart","onauxclick","onavailabilitychanged","onbackgroundfetchabort","onbackgroundfetchclick","onbackgroundfetchfail","onbackgroundfetchsuccess","onbeforeinput","onbeforeinstallprompt","onbeforematch","onbeforeprint","onbeforetoggle","onbeforexrselect","onbegin","onblocked","onblur","onboundary","onbufferedamountlow","onbufferedchange","oncancel","oncanmakepayment","oncanplay","oncanplaythrough","oncaptureaction","oncapturedmousechange","oncapturehandlechange","onchange","oncharacterboundsupdate","oncharacteristicvaluechanged","onchargingchange","onchargingtimechange","onclick","onclose","onclosing","oncommand","oncomplete","oncompositionend","oncompositionstart","onconfigurationchange","onconnect","onconnecting","onconnectionavailable","onconnectionstatechange","oncontentdelete","oncontextlost","oncontextmenu","oncontextoverflow","oncontextrestored","oncontrollerchange","oncookiechange","oncopy","oncuechange","oncurrententrychange","oncurrentscreenchange","oncut","ondataavailable","ondatachannel","ondblclick","ondequeue","ondevicechange","ondevicemotion","ondeviceorientation","ondeviceorientationabsolute","ondischargingtimechange","ondisconnect","ondispose","ondownloadprogress","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onendstreaming","onenter","onenterpictureinpicture","onerror","onexit","onfencedtreeclick","onfetch","onfinish","onfocus","onformdata","onframeratechange","onfreeze","onfullscreenchange","onfullscreenerror","ongamepadconnected","ongamepaddisconnected","ongatheringstatechange","ongattserverdisconnected","ongeometrychange","ongotpointercapture","onhashchange","onicecandidate","onicecandidateerror","oniceconnectionstatechange","onicegatheringstatechange","oninput","oninputreport","oninputsourceschange","oninstall","oninstallresult","oninvalid","onisolationchange","onkeydown","onkeyframerequest","onkeypress","onkeystatuseschange","onkeyup","onlanguagechange","onlayoutchange","onleavepictureinpicture","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloading","onloadingdone","onloadingerror","onloadstart","onlocation","onlostpointercapture","onmanagedconfigurationchange","onmark","onmessage","onmessageerror","onmidimessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmute","onnavigate","onnavigateerror","onnavigatesuccess","onnegotiationneeded","onnomatch","onnotificationclick","onnotificationclose","onoffline","ononline","onopen","onorientationchange","onpagehide","onpagereveal","onpageshow","onpageswap","onpaste","onpause","onpayerdetailchange","onpaymentmethodchange","onpaymentrequest","onperiodicsync","onplay","onplaying","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerrawupdate","onpointerup","onpopstate","onportalactivate","onprerenderingchange","onprioritychange","onprocessorerror","onprogress","onpromptaction","onpromptdismiss","onpush","onpushsubscriptionchange","onquotaoverflow","onratechange","onreading","onreadingerror","onreadystatechange","onredraw","onreflectionchange","onrejectionhandled","onrelease","onremove","onremovesourcebuffer","onremovetrack","onrepeat","onreset","onresize","onresourcetimingbufferfull","onresult","onresume","onrtctransform","onscreenschange","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onselectedcandidatepairchange","onselectend","onselectionchange","onselectstart","onserviceadded","onservicechanged","onserviceremoved","onshippingaddresschange","onshippingoptionchange","onshow","onsignalingstatechange","onsinkchange","onslotchange","onsnapchanged","onsnapchanging","onsoundend","onsoundstart","onsourceclose","onsourceended","onsourceopen","onspeechend","onspeechstart","onsqueeze","onsqueezeend","onsqueezestart","onstalled","onstart","onstartstreaming","onstatechange","onstop","onstorage","onstream","onsubmit","onsuccess","onsuspend","onsync","onterminate","ontextformatupdate","ontextupdate","ontimeout","ontimeupdate","ontoggle","ontonechange","ontoolactivated","ontoolcancel","ontoolchange","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontrack","ontransitioncancel","ontransitionend","ontransitionrun","ontransitionstart","onuncapturederror","onunhandledrejection","onunload","onunmute","onupdate","onupdateend","onupdatefound","onupdatestart","onupgradeneeded","onvalidationstatuschange","onversionchange","onvisibilitychange","onvoiceschanged","onvolumechange","onwaiting","onwaitingforkey","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkittransitionend","onwheel","onzoomlevelchange"])});function D(e,t,n,r,s){let o=t.normalize("NFC");if(o==="__proto__")throw F(r,s,'"__proto__" cannot be a key: it would not be data');if(Object.hasOwn(e,o))throw F(r,s,`"${o}" is written twice, and one of them would be lost`);e[o]=n}function F(e,t,n){let r=Ea(t)?.start;return new ie(n,r===void 0?null:rn(e.text,r))}function Ea(e){let t=Xt(e);return t?{end:t.end.offset,start:t.start.offset}:null}function ae(e,t,n){let r=e.spans?Ea(n):null;if(r)e.spans?.set(t,r)}function Ne(e){return e.replaceAll("~","~0").replaceAll("/","~1")}function on(e,t){let n=t.getTag();if(n!==null&&!xu.has(n))throw F(e,t,`(${n}) is not an annotation Jx Notation has`);if(n==="ref")throw F(e,t,"(ref) annotates a value, and this is a name");return n}function an(e,t){let n=t.getTag(),r=t.getValue();if(n!==null&&n!=="ref")throw F(e,t,`(${n}) cannot annotate a value here; only (ref) can`);if(se(r)){if(!Number.isFinite(r))throw F(e,t,"JSON has no way to hold #inf or #nan");if(Number.isInteger(r)&&!Number.isSafeInteger(r))throw F(e,t,"This number is too large to survive being read as JSON")}if(n==="ref"){if(!b(r))throw F(e,t,"(ref) needs a string");return{$ref:r}}return r}function tt(e,t){return t.entries.filter((n)=>!n.name).map((n)=>an(e,n))}function nt(e){return e.entries.filter((t)=>t.name)}function ye(e){return e.children?.nodes??[]}function _n(e){return e.getName()??""}function $u(e,t,n){let r={$prototype:"Function"},s=tt(e,t),o=ye(t);for(let i of nt(t))D(r,_n(i),an(e,i),e,i);if(o.length>0){if(s.length>0)D(r,"parameters",s,e,t);D(r,"body",ro(e,o,`${n}/body`),e,t)}else if(s.length>0){let i=s.at(-1)??null,a=s.slice(0,-1);if(a.length>0)D(r,"parameters",a,e,t);D(r,"body",i,e,t)}return ae(e,n,t),r}function ro(e,t,n){return t.map((r,s)=>{if(r.getName()!=="-")throw F(e,r,`A list holds only "-" items, and this is "${r.getName()}"`);return je(e,r,`${n}/${s}`)})}function je(e,t,n){let r=on(e,t);if(ae(e,n,t),r==="fn")return $u(e,t,n);let s=tt(e,t),o=nt(t),i=ye(t);if(r==="array"){if(o.length>0)throw F(e,t,"(array) holds items, and these are named");return[...s,...ro(e,i,n)]}if(r!=="object"){if(s.length>1){if(o.length>0||i.length>0)throw F(e,t,"A list of values cannot also have names or a block");return s}if(s.length===1){if(o.length>0||i.length>0)throw F(e,t,"A value cannot also have names or a block");return s[0]??null}if(i.length>0&&o.length===0&&i.every((l)=>l.getName()==="-"))return ro(e,i,n)}else if(s.length>0)throw F(e,t,"(object) holds names, and this is a value");let a={};for(let l of o){let c=_n(l);D(a,c,an(e,l),e,l),ae(e,`${n}/${Ne(c)}`,l)}for(let l of i){let c=l.getName();D(a,c,je(e,l,`${n}/${Ne(c)}`),e,l)}return a}function Fr(e,t,n){let r={};if(ae(e,n,t),tt(e,t).length>0)throw F(e,t,"A style block holds declarations, and this is a value");for(let s of nt(t)){let o=_n(s);D(r,o,an(e,s),e,s),ae(e,`${n}/${Ne(o)}`,s)}for(let s of ye(t)){let o=s.getName(),i=`${n}/${Ne(o)}`,a=ye(s);if(s.getTag()==="array"||a.length>0&&a.every((c)=>c.getName()==="-")){D(r,o,je(e,s,i),e,s);continue}let l=tt(e,s);if(l.length>1)throw F(e,s,`"${o}" has more than one value. A selector with a space in it needs quotes`);if(l.length===1){if(nt(s).length>0||ye(s).length>0)throw F(e,s,`"${o}" has a value and names. A selector with a space in it needs quotes`);D(r,o,l[0]??null,e,s),ae(e,i,s)}else D(r,o,Fr(e,s,i),e,s)}return r}function Mr(e,t,n){let r=ye(t);if(r.length!==1||!r[0])throw F(e,t,`"${t.getName()}" holds one element`);return Na(e,r[0],n)}function Ja(e,t,n){let r={$prototype:"Array"};if(ae(e,n,t),tt(e,t).length>0)throw F(e,t,"$array holds names and one element, and this is a value");for(let s of nt(t)){let o=_n(s);D(r,o.startsWith(".")?o.slice(1):o,an(e,s),e,s)}if(ye(t).length>0)D(r,"map",Mr(e,t,`${n}/map`),e,t);return r}function Na(e,t,n){let r=t.getName();if(r==="-"){let s=tt(e,t);if(s.length!==1||nt(t).length>0||ye(t).length>0)throw F(e,t,'"-" is one piece of text or one (ref)');return ae(e,n,t),s[0]??null}if(r==="$array")return Ja(e,t,n);return so(e,t,n)}function Su(e,t,n,r){let s=on(e,n);if(t==="map")return Mr(e,n,r);if(t==="cases"){let o={};for(let i of ye(n)){let a=i.getName();D(o,a,Mr(e,i,`${r}/${Ne(a)}`),e,i)}return o}if(t==="children"&&s!=="array"&&ye(n).length>0)return Mr(e,n,r);return je(e,n,r)}function so(e,t,n){let r={},s=t.getName(),o=on(e,t);if(ae(e,n,t),o!==null)throw F(e,t,`(${o}) cannot annotate an element`);let i=tt(e,t);if(s==="$element"){let[l,c,...u]=i;if(u.length>0)throw F(e,t,"$element takes at most a tag and a text value");if(l!==void 0)D(r,"tagName",l,e,t);if(c!==void 0)D(r,"textContent",c,e,t)}else{if(s.startsWith("$"))throw F(e,t,`"${s}" is not a kind of element`);if(D(r,"tagName",s,e,t),i.length>1)throw F(e,t,"An element has one text value. A list of them needs a block");if(i[0]!==void 0)D(r,"textContent",i[0],e,t),ae(e,`${n}/textContent`,t)}bu(e,t,r,n);let a=[];for(let l of ye(t))wu(e,l,r,a,n);if(a.length>0)D(r,"children",a,e,t);return r}function Aa(e){let{attributes:t}=e;if(_(t))return t;let n={};return e.attributes=n,n}function bu(e,t,n,r){for(let s of nt(t)){let o=_n(s),i=s.getTag();if(i==="fn")throw F(e,s,"A function has a block form: (fn)name, on a line of its own");let a=an(e,s);if(o.startsWith(".")||o.startsWith("$")){let l=o.startsWith(".")?o.slice(1):o;D(n,l,a,e,s),ae(e,`${r}/${Ne(l)}`,s)}else if(o.startsWith("on")&&i==="ref")D(n,o,a,e,s),ae(e,`${r}/${Ne(o)}`,s);else if(o.startsWith("on")&&ba.has(o))throw F(e,s,`${o} needs (ref)"pointer", or a function on a line of its own: (fn)${o} "…"`);else D(Aa(n),o,a,e,s),ae(e,`${r}/attributes/${Ne(o)}`,s)}}function wu(e,t,n,r,s){let o=t.getName(),i=on(e,t),a=(l)=>`${s}/${Ne(l)}`;if(i==="fn"||i==="on"){if(!o.startsWith("on"))throw F(e,t,`(${i}) in an element marks a handler, and "${o}" is not one`);D(n,o,je(e,t,a(o)),e,t)}else if(o==="script")throw F(e,t,'"script" is reserved. A <script> element is $element "script"');else if(o==="state")D(n,"state",je(e,t,a("state")),e,t);else if(o==="style")D(n,"style",Fr(e,t,a("style")),e,t);else if(o==="attributes"){let l=je(e,t,a("attributes"));if(_(l))for(let[c,u]of Object.entries(l))D(Aa(n),c,u,e,t);else D(n,"attributes",l,e,t)}else if(o.startsWith(".")){let l=o.slice(1);D(n,l,Su(e,l,t,a(l)),e,t)}else if(o.startsWith("$")&&o!=="$array"&&o!=="$element")D(n,o,je(e,t,a(o)),e,t);else{if(yu.has(o))throw F(e,t,`"${o}" is reserved here`);r.push(Na(e,t,`${s}/children/${r.length}`))}}function oo(e,t){return ye(t).map((n,r)=>{let s=`/$head/${r}`;return n.getName()==="-"?je(e,n,s):so(e,n,s)})}function io(e){let t=hu.exec(e);if(t)throw new ie(`A raw control character (U+${t[0].codePointAt(0)?.toString(16).toUpperCase().padStart(4,"0")}) cannot be in a Jx Notation file. Escape it, as \\u{1b}`,rn(e,t.index));try{return gt(e,{storeLocations:!0})}catch(n){let s=(n instanceof M?n.errors?.[0]??n:null)?.start,o=n instanceof Error?n.message:String(n);throw new ie(o.split(`
|
|
48
|
+
`)[0]??o,s?rn(e,s.offset):null)}}function Oa(e){if(Ht(e.text)==="project")throw new ie('This is a project file: its first node is "project". A document has an element there, and a <project> element is $element "project"');let n=io(e.text),r={},s=null;for(let o of n.nodes){let i=o.getName();if(i==="$head"&&o.getTag()===null)D(r,i,oo(e,o),e,o);else if(i.startsWith("$")&&i!=="$array"&&i!=="$element")D(r,i,je(e,o,`/${Ne(i)}`),e,o),ae(e,`/${Ne(i)}`,o);else if(s)throw F(e,o,"A document has one root element, and this is a second");else s=o}if(s){let o=s.getName()==="$array"?Ja(e,s,""):so(e,s,"");for(let[i,a]of Object.entries(o))D(r,i,a,e,s)}return Bt(r)}function Pn(e,t){try{return Oa({spans:null,text:e})}catch(n){throw t!==void 0&&n instanceof ie?n.inFile(t):n}}function ao(e){let t=new Map;return{document:Oa({spans:t,text:e}),spans:t}}var hu,xu,yu;var kn=j(()=>{Dr();U();En();wn();sn();wa();hu=/(?![\t\n\v\f\r])\p{Cc}/u,xu=new Set(["array","fn","object","on","ref"]),yu=new Set(["attributes","script","state","style"])});function In(e){return e.toLowerCase().endsWith(".jxn")}function Dn(e){return e.endsWith(".json")||In(e)}function Mn(e,t){return In(t)?Pn(e,t):Hi(e,t)}var lo=j(()=>{En();kn()});function Nu(e){let t={comments:0,escapes:[]},n=Ju.exec(e)?.[0].length??0;while(n<e.length)if(e.startsWith("//",n)){t.comments+=1;let r=e.indexOf(`
|
|
49
|
+
`,n);n=r===-1?e.length:r}else if(e.startsWith("/*",n)){t.comments+=1;let r=e.indexOf("*/",n+2);n=r===-1?e.length:r+2}else if(e.startsWith("/-",n))t.comments+=1,n+=2;else if(e.charAt(n)==="#"&&/^#+"/u.test(e.slice(n,n+16))){let[r=""]=/^#+/u.exec(e.slice(n))??[],s=n+r.length,o=e.startsWith('"""',s)?'"""':'"',i=e.indexOf(o+r,s+o.length);n=i===-1?e.length:i+o.length+r.length}else if(e.charAt(n)==='"'){let r=e.startsWith('"""',n)?'"""':'"';n+=r.length;while(n<e.length&&!e.startsWith(r,n))if(e.charAt(n)==="\\")t.escapes.push(n),n+=2;else n+=1;n+=r.length}else n+=1;return t}function Au(e){return Nu(e).escapes.flatMap((t)=>{let n=Eu.get(e.charAt(t+1));return n?[{...rn(e,t),message:n}]:[]})}var Eu,Ju;var Ca=j(()=>{sn();Eu=new Map([["b",String.raw`\b in a quoted string is a backspace, not a word boundary. Use a raw string, like #"…"#, if this is a pattern.`],["s",String.raw`\s in a quoted string is a space, not whitespace. Use a raw string, like #"…"#, if this is a pattern.`]]),Ju=/^\uFEFF?\s*\/-[^\S\n]*kdl-version[^\S\n]+\d+[^\S\n]*(?:\n|$)/u});function ln(e,t=!1){if(Array.isArray(e))return`[${e.map((s)=>ln(s,t)).join(",")}]`;if(!_(e))return e===void 0?"null":JSON.stringify(e);return`{${(t?Object.keys(e):Object.keys(e).toSorted()).map((s)=>`${JSON.stringify(s)}:${ln(e[s],t||s==="style")}`).join(",")}}`}function Ou(e,t){let n=e;for(let r of t.split("/").slice(1)){let s=r.replaceAll("~1","/").replaceAll("~0","~");if(Array.isArray(n))n=n[Number(s)];else n=_(n)?n[s]:void 0}return n}function Cu({spans:e}){let t=new Map;for(let[n,r]of e){let s=t.get(r.start);if(s===void 0||n.length<s.length)t.set(r.start,n)}return t}function ja(e,t){let n=Cu(e),r=new Map;for(let[s,o]of n)r.set(s,ln(Ou(e.document,o)));return{meanings:r,pointers:n,text:t}}function rt(e){let t=Xt(e);return{end:t?.end.offset??0,start:t?.start.offset??0}}function Wr(e,t){let{end:n,start:r}=rt(e);return t.slice(r,n).trimEnd()}function Lr(e,t){let{end:n,start:r}=rt(e);return`${e.leading??" "}${t.slice(r,n).trimEnd()}`}function po(e){return e.children?.nodes??[]}function co(e){let t=e.entries.map((o)=>`${o.getName()??""}=(${o.getTag()??""})${JSON.stringify(o.getValue())}`),n=t.filter((o)=>!o.startsWith("=")).toSorted(),r=t.filter((o)=>o.startsWith("=")),s=po(e).map((o)=>co(o));return`(${e.getTag()??""})${e.getName()} ${[...n,...r].join(" ")} {${s.join(";")}}`}function uo(e,t,n){if(co(t)===co(n))return!0;let r=e.previous.meanings.get(rt(t).start);return r!==void 0&&r===e.next.meanings.get(rt(n).start)}function va(e){let n=e.entries.filter((r)=>["$id","key"].includes(r.getName()??"")).map((r)=>JSON.stringify(r.getValue()));return`(${e.getTag()??""})${e.getName()} ${n.join(" ")}`}function Ta(e,t,n){let r=e.length+1,s=t.length+1,o=new Int32Array(r*s);for(let c=e.length-1;c>=0;c-=1)for(let u=t.length-1;u>=0;u-=1){let f=e[c],p=t[u];o[c*s+u]=f!==void 0&&p!==void 0&&n(f,p)?(o[(c+1)*s+u+1]??0)+1:Math.max(o[(c+1)*s+u]??0,o[c*s+u+1]??0)}let i=[],a=0,l=0;while(a<e.length&&l<t.length){let c=e[a],u=t[l];if(c!==void 0&&u!==void 0&&n(c,u))i.push([a,l]),a+=1,l+=1;else if((o[(a+1)*s+l]??0)>=(o[a*s+l+1]??0))a+=1;else l+=1}return i}function ju(e,t,n){let r=new Map,s=new Set,o=(c,u)=>{let f=t[c];if(f)r.set(u,f),s.add(c)},i=Ta(t,n,(c,u)=>uo(e,c,u)),a=0,l=0;for(let[c,u]of[...i,[t.length,n.length]]){let f=Ta(t.slice(a,c),n.slice(l,u),(p,d)=>va(p)===va(d));for(let[p,d]of f)o(a+p,l+d);if(c<t.length)o(c,u);a=c+1,l=u+1}for(let[c,u]of n.entries())if(!r.has(c)){let f=t.findIndex((p,d)=>!s.has(d)&&uo(e,p,u));if(f!==-1)o(f,c)}return r}function mo(e){let t=e.leading??"";return t.slice(t.lastIndexOf(`
|
|
50
|
+
`)+1)}function vu(e,t,n){return e.split(`
|
|
42
51
|
`).map((r,s)=>s>0&&r.startsWith(t)?n+r.slice(t.length):r).join(`
|
|
43
|
-
`)}function
|
|
44
|
-
${p.join("")}${r}}`}function
|
|
52
|
+
`)}function Tu(e,t,n){let r=[...n],s=(i)=>{let a=i.getName(),l=r.findIndex((c)=>c.getName()===a);return l===-1?void 0:r.splice(l,1)[0]},o="";for(let i of t.entries){let a=s(i);if(a){let l=a.getTag()===i.getTag()&&a.getValue()===i.getValue();o+=l?Lr(i,e.previous.text):`${i.leading??" "}${Lr(a,e.next.text).trimStart()}`}}for(let i of r)o+=` ${Lr(i,e.next.text).trimStart()}`;return o}function Ru(e,t,n){let r=new Map;for(let o of po(t)){let i=e.previous.pointers.get(rt(o).start);if(i!==void 0)r.set(i,o)}let s=new Map;for(let o of n.entries){let i=e.next.pointers.get(rt(o).start),a=i===void 0?void 0:r.get(i);if(a&&o.getName()!==null)s.set(a,o)}return s}function _u(e,t,n){let{text:r}=e.previous,s=Lr(n,e.next.text).trimStart().slice(`${n.getName()}=`.length),[o]=t.entries;if(o?.getName()===null&&t.entries.length===1&&!t.children){if(o.getValue()===n.getValue()&&o.getTag()===n.getTag())return Wr(t,r);return`${fo(t,r)}${o.leading??" "}${s}`}return`${fo(t,r)} ${s}`}function fo(e,t){let{start:n}=rt(e),[r]=e.entries;if(r)return t.slice(n,rt(r).start-(r.leading??"").length);let s=e.children&&Xt(e.children);if(s)return t.slice(n,s.start.offset-1).trimEnd();return Wr(e,t)}function Pu(e,t,n,r){let s=Ru(e,t,n),o=new Set(s.values()),i=n.entries.filter((d)=>!o.has(d)),a=`${fo(t,e.previous.text)}${Tu(e,t,i)}`,l=po(n);if(l.length===0&&s.size===0)return a;let c=l[0]?mo(l[0]):`${r} `,u=t.children,f=t.beforeChildren===""?" ":t.beforeChildren??" ";if(u&&u.nodes.length>0&&Iu(u,e.previous.text,t)){let d=`${r}${ku(u,r)}`;return`${a}${f}{${_a(e,u,l,d,c,s)}}`}let p=l.map((d)=>Ra(e,d,c,`${r} `));return`${a}${f}{
|
|
53
|
+
${p.join("")}${r}}`}function ku(e,t){let[n]=e.nodes,r=n?mo(n):"";return r.startsWith(t)?r.slice(t.length):" "}function Iu(e,t,n){let{end:r,start:s}=rt(n),[o]=e.nodes;return o!==void 0&&(o.leading??"").includes(`
|
|
45
54
|
`)&&t.slice(s,r).includes(`
|
|
46
|
-
`)}function
|
|
47
|
-
`}function
|
|
48
|
-
`),u=
|
|
55
|
+
`)}function Ra(e,t,n,r){return`${r}${vu(Wr(t,e.next.text),n,r)}
|
|
56
|
+
`}function _a(e,t,n,r,s,o){let i=t.nodes.filter((m)=>!o.has(m)),a=ju(e,i,n),l=t.nodes[0]?.leading??"",c=l.indexOf(`
|
|
57
|
+
`),u=c===-1?"":l.slice(0,c+1),f=u,p=-1,d=()=>{if(f!==""&&!f.endsWith(`
|
|
49
58
|
`)&&!f.endsWith(";"))f+=`
|
|
50
|
-
`},h=(m,x)=>{let E=t.nodes.indexOf(m),O=E===p+1||E>p;p=Math.max(p,E);let
|
|
51
|
-
`)||f===u||f.endsWith(";"))){f+=`${
|
|
59
|
+
`},h=(m,x)=>{let E=t.nodes.indexOf(m),O=E===p+1||E>p;p=Math.max(p,E);let N=m===t.nodes[0]?l.slice(u.length):m.leading??"";if(O&&(N.includes(`
|
|
60
|
+
`)||f===u||f.endsWith(";"))){f+=`${N}${x}${m.trailing??""}`;return}if(!f.endsWith(`
|
|
52
61
|
`))f+=`
|
|
53
|
-
`;let C=(m.trailing??"").replace(/^;/u,"");f+=`${
|
|
54
|
-
`)?
|
|
55
|
-
`)t+=String.raw`\n`;else if(n==="\t")t+=String.raw`\t`;else if(n==="\r")t+=String.raw`\r`;else if(
|
|
62
|
+
`;let C=(m.trailing??"").replace(/^;/u,"");f+=`${N.includes(`
|
|
63
|
+
`)?N:r}${x}${C}`},g=(m)=>{for(let[x,E]of t.nodes.entries()){let O=o.get(E);if(O&&x<m&&x>p)d(),h(E,_u(e,E,O))}};for(let[m,x]of n.entries()){let E=a.get(m);if(E){g(t.nodes.indexOf(E)),d();let O=uo(e,E,x)?Wr(E,e.previous.text):Pu(e,E,x,mo(E));h(E,O)}else d(),f+=Ra(e,x,s,r)}return g(t.nodes.length),`${f}${t.trailing??""}`}function Vr(e,t,n){let r;try{r=n(e)}catch{return t}let s=n(t),o=ln(s.document);if(ln(r.document)===o)return e;let i={next:ja(s,t),previous:ja(r,e)},a=_a(i,gt(e,{storeLocations:!0}),gt(t,{storeLocations:!0}).nodes,"","",new Map);try{return ln(n(a).document)===o?a:t}catch{return t}}var Hr=j(()=>{Dr();U()});function Da(e){return!/\p{Cs}/u.test(e)}function Ma(e,t){try{return gt(`x ${e}`).nodes[0]?.entries[0]?.getValue()===t}catch{return!1}}function Br(e){let t='"';for(let n of e)if(n==='"')t+=String.raw`\"`;else if(n==="\\")t+=String.raw`\\`;else if(n===`
|
|
64
|
+
`)t+=String.raw`\n`;else if(n==="\t")t+=String.raw`\t`;else if(n==="\r")t+=String.raw`\r`;else if(Ia.test(n))t+=`\\u{${n.codePointAt(0)?.toString(16)}}`;else t+=n;return`${t}"`}function Fa(e,t){let n="#";while(e.includes(t+n))n+="#";return n}function Fu(e,t){if(Du.test(e))return null;let n=Fa(e,'"""'),r=`${t}${ue}`,s=e.split(`
|
|
56
65
|
`).map((i)=>i===""?"":r+i),o=`${n}"""
|
|
57
66
|
${s.join(`
|
|
58
67
|
`)}
|
|
59
|
-
${r}"""${n}`;return
|
|
60
|
-
`)){let r=
|
|
61
|
-
`))){let p=`${o} ${u.join(" ")}`;if(p.length<=
|
|
62
|
-
`)?null:`${
|
|
63
|
-
`))break;i.push(`${
|
|
64
|
-
`)})}function
|
|
65
|
-
`)&&!e.startsWith("on")&&!e.startsWith("$")&&!e.startsWith(".")}function
|
|
66
|
-
`))o.push(...
|
|
67
|
-
`))t.push(...
|
|
68
|
-
`)}`);else if(s.startsWith("$"))n.push(...
|
|
68
|
+
${r}"""${n}`;return Ma(o,e)?o:null}function ho(e,t,n){if(!Da(e))throw new ie(`${n} holds a lone surrogate, which Jx Notation has no way to spell`);if(ka.test(e))return e;if(e.includes(`
|
|
69
|
+
`)){let r=Fu(e,t);if(r)return r}else if((e.includes("\\")||e.includes('"'))&&!Ia.test(e)){let r=Fa(e,'"'),s=`${r}"${e}"${r}`;if(Ma(s,e))return s}return Br(e)}function $e(e,t){if(!Da(e))throw new ie(`${t} is a key with a lone surrogate, which Jx Notation cannot spell`);return ka.test(e)?e:Br(e)}function fe(e,t,n){if(e===null)return"#null";if(e===!0)return"#true";if(e===!1)return"#false";if(se(e))return Object.is(e,-0)?"-0":String(e);if(b(e))return ho(e,t,n);return Ln(e)?`(ref)${Br(e.$ref)}`:null}function La(e){if(!ve(e)||e.$prototype!=="Function")return!1;let{$prototype:t,body:n,parameters:r,...s}=e,o=Object.values(s).every((c)=>fe(c,"","")!==null),i=r===void 0||Array.isArray(r)&&r.length>0&&r.every((c)=>b(c))&&n!==void 0,a=n===void 0||b(n)||Array.isArray(n),l=Array.isArray(n)&&n.length===0;return o&&i&&a&&!l}function Wa(e,t,n,r){let{$prototype:s,body:o,parameters:i,...a}=t,l=[`${n}(fn)${$e(e,r)}`];for(let[c,u]of Object.entries(a))l.push(`${$e(c,r)}=${fe(u,n,X(r,c))}`);if(Array.isArray(i))for(let c of i)l.push(ho(String(c),n,X(r,"parameters")));if(b(o))l.push(ho(o,n,X(r,"body")));else if(Array.isArray(o))return[`${l.join(" ")} {`,...o.flatMap((c,u)=>Ae("-",c,n+ue,X(X(r,"body"),u))),`${n}}`];return[l.join(" ")]}function Ae(e,t,n,r){let s=$e(e,r),o=n+s,i=fe(t,n,r);if(i!==null)return[`${o} ${i}`];if(La(t))return Wa(e,t,n,r);if(Array.isArray(t)){if(t.length===0)return[`${n}(array)${s}`];let u=t.map((p,d)=>fe(p,n,X(r,d)));if(t.length>1&&u.every((p)=>p!==null&&!p.includes(`
|
|
70
|
+
`))){let p=`${o} ${u.join(" ")}`;if(p.length<=go)return[p]}return[`${o} {`,...t.flatMap((p,d)=>Ae("-",p,n+ue,X(r,d))),`${n}}`]}let a=ve(t)?Object.entries(t):[];if(a.length===0)return[`${o} {}`];let l=a.every(([u])=>u==="-")?`${n}(object)${s}`:o,c=a.map(([u,f])=>{let p=fe(f,n,X(r,u));return p===null||p.includes(`
|
|
71
|
+
`)?null:`${$e(u,r)}=${p}`});if(c.every((u)=>u!==null)){let u=`${l} ${c.join(" ")}`;if(u.length<=go)return[u]}return[`${l} {`,...a.flatMap(([u,f])=>Ae(u,f,n+ue,X(r,u))),`${n}}`]}function Va(e,t,n,r){let s=Object.entries(t),o=n+$e(e,r);if(s.length===0)return[`${o} {}`];let i=[],a=0;for(let[p,d]of s){let h=fe(d,n,X(r,p));if(h===null||h.includes(`
|
|
72
|
+
`))break;i.push(`${$e(p,r)}=${h}`),a+=1}let l=`${o} ${i.join(" ")}`,c=i.length>0&&l.length<=go,u=c?a:0,f=s.slice(u).flatMap(([p,d])=>{if(ve(d)&&!Ln(d))return Va(p,d,n+ue,X(r,p));return Ae(p,d,n+ue,X(r,p))});if(c&&f.length===0)return[l];return[`${c?l:o} {`,...f,`${n}}`]}function Lu(e){if(!ve(e)||e.$prototype!=="Array"||!ve(e.map))return!1;let{$prototype:t,map:n,...r}=e;return Object.values(r).every((s)=>{let o=fe(s,"","");return o!==null&&!o.includes(`
|
|
73
|
+
`)})}function Wu(e,t,n){let{$prototype:r,map:s,...o}=e,i=[`${t}$array`];for(let[a,l]of Object.entries(o))i.push(`${$e(a,n)}=${fe(l,t,X(n,a))}`);return[`${i.join(" ")} {`,...Fn(s??null,t+ue,X(n,"map")),`${t}}`]}function Fn(e,t,n){let r=fe(e,t,n);if(r!==null)return[`${t}- ${r}`];if(Lu(e))return Wu(e,t,n);if(ve(e))return xo(e,t,n);throw new ie(`${n} is a list inside a list of children, which has no spelling`)}function Vu(e,t,n){let{tagName:r}=e;if(!b(r))return`${t}$element`;if(Mu.has(r)||r.startsWith("$")||r.startsWith("."))return`${t}$element ${Br(r)}`;return t+$e(r,n)}function Hu(e,t){return t!==null&&!t.includes(`
|
|
74
|
+
`)&&!e.startsWith("on")&&!e.startsWith("$")&&!e.startsWith(".")}function xo(e,t,n){let r=[Vu(e,t,n)],s=t+ue,o=[],i={},a=null;for(let[l,c]of Object.entries(e)){let u=X(n,l);if(l==="tagName"&&b(c))continue;if(l==="children")continue;if(l==="textContent"){let f=fe(c,t,u);if(f===null||!b(e.tagName))Pa(r,o,l,c,s,t,u);else a=f}else if(l==="attributes"&&ve(c))for(let[f,p]of Object.entries(c)){let d=fe(p,t,X(u,f));if(Hu(f,d))r.push(`${$e(f,u)}=${d}`);else i[f]=p}else if(l==="state")o.push(...Ae("state",c,s,u));else if(l==="style"&&ve(c))o.push(...Va("style",c,s,u));else if(l.startsWith("on")&&Ln(c))r.push(`${$e(l,u)}=${fe(c,t,u)}`);else if(l.startsWith("on"))o.push(...La(c)?Wa(l,c,s,u):Ae(l,c,s,u).map((f,p)=>p===0?f.replace(s,`${s}(on)`):f));else if(l.startsWith("$")){let f=fe(c,t,u);if(f===null||f.includes(`
|
|
75
|
+
`))o.push(...Ae(l,c,s,u));else r.push(`${$e(l,u)}=${f}`)}else Pa(r,o,l,c,s,t,u)}if(Object.keys(i).length>0)o.push(...Ae("attributes",i,s,X(n,"attributes")));if(o.push(...Bu(e.children,s,X(n,"children"))),a!==null)r.push(a);return o.length===0?[r.join(" ")]:[`${r.join(" ")} {`,...o,`${t}}`]}function Bu(e,t,n){if(e===void 0)return[];if(Array.isArray(e)){if(e.length===0)return[`${t}(array).children`];return e.flatMap((s,o)=>Fn(s,t,X(n,o)))}let r=fe(e,t,n);if(r!==null)return[`${t}.children ${r}`];return[`${t}.children {`,...Fn(e,t+ue,n),`${t}}`]}function Pa(e,t,n,r,s,o,i){let a=$e(`.${n}`,i);if(n==="map"&&ve(r)){t.push(`${s}${a} {`,...Fn(r,s+ue,i),`${s}}`);return}if(n==="cases"&&ve(r)){t.push(`${s}${a} {`);for(let[c,u]of Object.entries(r))t.push(`${s}${ue}${$e(c,i)} {`,...Fn(u,s+ue+ue,X(i,c)),`${s}${ue}}`);t.push(`${s}}`);return}let l=fe(r,o,i);if(l===null||l.includes(`
|
|
76
|
+
`))t.push(...Ae(`.${n}`,r,s,i));else e.push(`${a}=${l}`)}function Ha(e,t){return["$head {",...e.flatMap((n,r)=>ve(n)&&!Ln(n)&&b(n.tagName)&&!n.$ref?xo(n,t,`/$head/${r}`):Ae("-",n,t,`/$head/${r}`)),"}"]}function Uu(e){let{document:t,spans:n}=ao(e);return{document:_(t)?t:null,spans:n}}function yo(e,t){let n=qu(e);return t===void 0?n:Vr(t,n,Uu)}function qu(e){if(!_(e))throw new ie("A document is an object");let t=e,n=["/- kdl-version 2"],r={};for(let[s,o]of Object.entries(t))if(s==="$head"&&Array.isArray(o))n.push(...Ha(o,ue));else if(s==="$head")n.push(`(object)${Ae(s,o,"","/$head").join(`
|
|
77
|
+
`)}`);else if(s.startsWith("$"))n.push(...Ae(s,o,"",X("",s)));else r[s]=o;if(Object.keys(r).length>0)n.push("",...xo(r,"",""));return`${n.join(`
|
|
69
78
|
`)}
|
|
70
|
-
`}var ue=" ",Zs=100,ia,aa,Gc,Yc,Ce=(e)=>D(e),jr=(e)=>Ce(e)&&b(e.$ref)&&Object.keys(e).length===1,Q=(e,t)=>`${e}/${String(t).replaceAll("~","~0").replaceAll("/","~1")}`;var ma=v(()=>{Nr();K();Jn();Cr();Xs();ia=/^(?![-+]?\.?\d)(?!(?:true|false|null|inf|-inf|nan)$)[^\s\\/(){};[\]"#=,\p{Cc}\p{Cf}\p{Zl}\p{Zp}]+$/u,aa=/[\p{Cc}\p{Zl}\p{Zp}--]/u,Gc=/(?!\n)\p{Cc}|[\p{Zl}\p{Zp}--]/u,Yc=new Set(["-","attributes","script","state","style"])});var _r=v(()=>{$s();Zi();Jn();Qi();Cr();Xs();ma()});function ya(e){if(!b(e))return null;let[t,...n]=e.split(";"),r=(t??"").indexOf("/");if(r===-1)return null;let s=(t??"").slice(0,r).trim().toLowerCase(),o=(t??"").slice(r+1).trim().toLowerCase();if(!ga.test(s)||!ga.test(o))return null;let i=o.lastIndexOf("+"),c=i===-1?null:o.slice(i+1),a=i===-1?o:o.slice(0,i);if(c==="")return null;let l=a.indexOf("."),u=l===-1?null:a.slice(0,l),f=u!==null&&iu.has(u)?u:null,p=f===null?a:a.slice(f.length+1);if(p==="")return null;let d={};for(let h of n){let g=h.indexOf("=");if(g===-1)return null;let m=h.slice(0,g).trim().toLowerCase(),x=h.slice(g+1).trim();if(m==="")return null;if(x.startsWith('"')&&x.endsWith('"')&&x.length>=2)x=x.slice(1,-1);d[m]=x}return{parameters:d,subtype:p,suffix:c,tree:f,type:s}}function $a(e){if(!b(e)||e.trim()==="")return"expected a media type string";if(!e.includes("/"))return`"${e}" has no "/" — a media type is type/subtype (RFC 6838 §4.2)`;if(ya(e)===null)return`"${e}" is not a well-formed media type (RFC 6838 §4.2)`;return null}function Sa(e){let t=ya(e);if(t===null)return null;let n=t.tree===null?"":`${t.tree}.`,r=t.suffix===null?"":`+${t.suffix}`;return`${t.type}/${n}${t.subtype}${r}`}var ga,iu,ha="text/markdown; variant=GFM",xa="application/yaml",rm;var ba=v(()=>{K();ga=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}$/,iu=new Set(["vnd","prs","x"]);rm={".jxn":"text/plain; charset=utf-8",".markdown":`${ha}; charset=utf-8`,".md":`${ha}; charset=utf-8`,".yaml":`${xa}; charset=utf-8`,".yml":`${xa}; charset=utf-8`}});function Na(e){if(e===null)throw TypeError("A class descriptor cannot be null");return D(e)?e:{}}class Tn{name;classPath;classDef;extensions;mediaType;mediaTypeEssence;documentKinds;exportTarget;remote;studio;project;server;connector;capabilities;#t;#e=null;constructor(e,t,n,r){this.name=e,this.classPath=t,this.classDef=n,this.#t=r;let{format:s}=n;this.extensions=(s?.extensions??[]).map((o)=>o.toLowerCase()),this.mediaType=s?.mediaType??null,this.mediaTypeEssence=Sa(this.mediaType),this.documentKinds=s?.documentKinds??[],this.exportTarget=s?.exportTarget===!0,this.remote=s?.remote===!0,this.studio=n.$studio??null,this.project=n.project??null,this.server=n.server??null,this.connector=n.connector??null,this.capabilities=lu(n)}implementation(){if(!this.#e){let e=this.classDef.$implementation;if(!e)return Promise.reject(Error(`Format class "${this.name}" has no $implementation to import`));this.#e=this.#t.importModule(this.#t.resolvePath(this.classPath,e))}return this.#e}async implementationExport(){return this.#n(await this.implementation())}#n(e){let t=this.classDef.title??this.name;return e[t]??e.default?.[t]??e.default}async call(e,...t){let n=this.capabilities[e];if(!n)throw Error(`Format class "${this.name}" does not declare a "${e}" capability`);let r=this.#n(await this.implementation()),s=r?.[n.identifier];if(!ye(s)){let i=this.classDef.title??this.name;throw TypeError(`Format class "${this.name}": implementation export "${i}" has no static "${n.identifier}" method`)}return await s.call(r,...t)}async parseDocument(e,t){return await this.call("parse",e,t)}}class kr{#t;get#e(){return[...this.#t,pu]}constructor(e){this.#t=e;for(let t of e)if(t.extensions.includes(".jxn"))throw Error(`Format "${t.name}" claims ".jxn", which is built in`);for(let t of e){if(t.mediaType===null)continue;let n=$a(t.mediaType);if(n!==null)throw Error(`Format "${t.name}" declares an invalid mediaType: ${n}`)}for(let t of Ea){let n=new Map;for(let r of e){if(!r.capabilities[t])continue;for(let s of r.extensions){let o=n.get(s);if(o)throw Error(`Format conflict: "${o.name}" and "${r.name}" both claim "${s}" with the "${t}" capability`);n.set(s,r)}}}}get entries(){return this.#t}byExtension(e,t){let n=wa(e);return this.#e.find((r)=>r.extensions.includes(n)&&(!t||r.capabilities[t]))}byName(e){return this.#t.find((t)=>t.name===e)}withCapability(e){return this.#e.filter((t)=>t.capabilities[e])}documentExtensions(e){let t=new Set;for(let n of this.#e){if(e&&!n.documentKinds.includes(e))continue;for(let r of n.extensions)t.add(r)}return t.delete(".json"),[...t]}has(e){let t=wa(e);return this.#e.some((n)=>n.extensions.includes(t))}}function lu(e){let t={},n=e.$defs?.methods??{};for(let[r,s]of Object.entries(n)){let{role:o}=s;if(!uu(o))continue;let i={identifier:s.identifier??r,timing:s.timing??au};if(b(s.discriminator))i.discriminator=s.discriminator;t[o]=i}return t}function uu(e){return e!==void 0&&cu.has(e)}function wa(e){let t=e.toLowerCase();return t.startsWith(".")?t:`.${t}`}var Ea,Ja,au,cu,fu,pu;var no=v(()=>{K();ba();Ea=["parse","serialize","rewrite","discover","load"],Ja=[...Ea,"projectData","resolvePaths","lower","emit","head","assets","mount","dialect","deploySchema","bindings","testConnection"];au=["compiler","server"];cu=new Set(Ja);fu={importModule:async()=>{await Promise.resolve().then(() => _r());return{JxNotation:{parse:(n)=>An(n),serialize:(n)=>to(n)}}},loadJson:()=>Promise.reject(Error("Jx Notation reads no file of its own")),resolvePath:(e,t)=>t},pu=new Tn("jxn","",{$defs:{methods:{parse:{role:"parse"},serialize:{role:"serialize"}}},$implementation:"jxn",format:{documentKinds:["page","component"],extensions:[".jxn"]},title:"JxNotation"},fu)});class Aa{#t;#e;#n;constructor(e){this.#t=e,this.#e=e.flatMap((s)=>s.classes);let t=new Map;for(let s of e)for(let o of s.classes){let i=t.get(o.name);if(i&&i!==s.specifier)throw Error(`Extension conflict: "${i}" and "${s.specifier}" both provide a class named "${o.name}"`);t.set(o.name,s.specifier)}let n=new Map;for(let s of this.#e){if(!s.project)continue;let o=n.get(s.project.key);if(o)throw Error(`Extension conflict: "${o.name}" and "${s.name}" both claim the project section "${s.project.key}"`);n.set(s.project.key,s)}let r=new Map;for(let s of this.#e){if(!s.server)continue;let{basePath:o}=s.server;if(!o.startsWith("/_jx/"))throw Error(`Extension "${s.name}": server basePath "${o}" must be under /_jx/`);let i=r.get(o);if(i)throw Error(`Extension conflict: "${i.name}" and "${s.name}" both mount "${o}"`);r.set(o,s)}this.#n=new kr(this.#e.filter((s)=>s.extensions.length>0))}get extensions(){return this.#t}get classes(){return this.#e}get formats(){return this.#n}byName(e){return this.#e.find((t)=>t.name===e)}projectContributions(){return this.#e.filter((e)=>e.project!==null)}byProjectKey(e){return this.#e.find((t)=>t.project?.key===e)}byPathsDiscriminator(e){return this.#e.find((t)=>t.capabilities.resolvePaths?.discriminator===e)}emitters(){return this.#e.filter((e)=>e.capabilities.emit!==void 0)}headProviders(){return this.#e.filter((e)=>e.capabilities.head!==void 0)}assetProviders(){return this.#e.filter((e)=>e.capabilities.assets!==void 0)}serverMounts(){return this.#e.filter((e)=>e.server!==null).toSorted((e,t)=>(e.server?.order??100)-(t.server?.order??100)||e.name.localeCompare(t.name))}connectors(){return this.#e.filter((e)=>e.connector!==null)}schemaFragments(e){return this.#t.map((t)=>t.schemas[e]).filter((t)=>typeof t==="string")}}async function Oa(e,t,n){let r=[];for(let s of e??[])r.push(await du(s,t,n));return new Aa(r)}async function du(e,t,n){let r;if(e.startsWith("./")||e.startsWith("../")){let a=t.resolvePath(n,e);r=t.resolvePath(`${a}/package.json`,`./${jn}`)}else try{r=t.resolvePath(n,`${e}/${jn}`)}catch(a){throw Error(`Extension "${e}" is not resolvable: it must export ${jn} (is the package installed, and does its exports map include it?): ${ro(a)}`,{cause:a})}let s;try{s=await t.loadJson(r)}catch(a){throw Error(`Extension "${e}": cannot read manifest ${r}: ${ro(a)}`,{cause:a})}if(!D(s)||!b(s.name))throw Error(`Extension "${e}": ${jn} must declare a "name"`);let o=s;if(!e.startsWith(".")&&o.name!==e)throw Error(`Extension "${e}": manifest name "${o.name}" does not match the specifier`);let i=[];for(let[a,l]of Object.entries(o.classes??{})){let u=t.resolvePath(r,l),f;try{f=await t.loadJson(u)}catch(p){throw Error(`Extension "${e}": cannot read class "${a}" at ${u}: ${ro(p)}`,{cause:p})}i.push(new Tn(a,u,Na(f),t))}let c={};if(o.schemas?.project)c.project=t.resolvePath(r,o.schemas.project);if(o.schemas?.document)c.document=t.resolvePath(r,o.schemas.document);if(o.schemas?.fields)c.fields=t.resolvePath(r,o.schemas.fields);return{specifier:e,manifestPath:r,manifest:o,classes:i,schemas:c}}function ro(e){return e instanceof Error?e.message:String(e)}var jn="jx-extension.json";var Ca=v(()=>{no();K();no()});var va=v(()=>{K()});var Ta="project.json";var ja=v(()=>{K();va();rr()});import{dirname as Em,join as mu}from"node:path";function Ra(e){return mu(e,Ta)}var _a=v(()=>{ja()});import{readFileSync as gu}from"node:fs";import{dirname as hu,isAbsolute as xu,resolve as ka,sep as Pr}from"node:path";import{pathToFileURL as yu}from"node:url";import{createRequire as $u}from"node:module";async function Su(e){let t=[e],n=`${Pr}src${Pr}`,r=`${Pr}dist${Pr}`;if(e.includes(n)){let o=e.replace(n,r);if(t.push(o),o.endsWith(".ts"))t.push(`${o.slice(0,-3)}.js`)}if(e.endsWith(".js"))t.push(`${e.slice(0,-3)}.ts`);let s;for(let o of t)try{return await import(yu(o).href)}catch(i){s=i}throw s instanceof Error?s:Error(String(s))}function bu(e,t){return $u(ka(e,"package.json")).resolve(t)}function wu(e){return{importModule:(t)=>Su(t),loadJson:async(t)=>JSON.parse(gu(t,"utf8")),resolvePath:(t,n)=>{if(n.startsWith("./")||n.startsWith("../"))return ka(hu(t),n);if(xu(n))return n;return bu(e,n)}}}async function _m(e,t){return Oa(t?.extensions,wu(e),Ra(e))}function Ir(e,t){return Error(`No format class registered for "${t}" (${e}). Enable an extension providing this format in project.json "extensions", e.g. "@jxsuite/parser".`)}var so=v(()=>{Ca();K();_a()});async function Ma(e,t={}){let{resolveElementPath:n,$media:r,formats:s}=t,o=[],i=new Set;async function c(a,l){let u,f;if(b(a)){let{readFileSync:J}=await import("node:fs"),{resolve:C}=await import("node:path");if(f=l?C(l,a):C(a),i.has(f))return;if(i.add(f),On(f))u=Cn(J(f,"utf8"),f);else{let{extname:q}=await import("node:path"),S=q(f).toLowerCase(),y=s?.byExtension(S,"parse");if(!y){await Promise.resolve().then(() => so());throw Ir(f,S)}u=await y.parseDocument(J(f,"utf8"))}}else{if(u=a,f=null,u.tagName&&i.has(u.tagName))return;if(u.tagName)i.add(u.tagName)}let{tagName:p}=u;if(!p||!p.includes("-"))throw Error(`compileElement: tagName "${p}" must contain a hyphen`);let{dirname:d}=await import("node:path"),h=f?d(f):null,g=[];if(Array.isArray(u.$elements))for(let J of u.$elements){let C=H(J)?J.$ref:J;if(!b(C))continue;if(h)await c(C,h);let q=n?n(C,h):C.replace(/\.(?:json|jxn)$/i,".js");g.push(q)}let m=tr(p);if(r)u.$media={...r,...u.$media};let{rewriteSrc:x}=t,E=Rn(u,m,g,x?(J)=>x(J,h):void 0,Wn(u,t.defaults),t.serverBaseUrl),O=f?f.replace(/\.(?:json|jxn)$/i,".js"):`${p}.js`;o.push({content:E,path:O,tagName:p})}return await c(e,t.basePath??null),{files:o}}async function Eu(e,t={}){let{title:n="Jx App",reactivitySrc:r="https://esm.sh/@vue/reactivity@3.5.13",litHtmlSrc:s="https://esm.sh/lit-html@3.3.0"}=t,o=await Ma(e,t),i=o.files.at(-1);if(!i)throw Error("compileElementPage: no element modules were produced");let{basename:c}=await import("node:path"),a=c(i.path),l=`<!DOCTYPE html>
|
|
79
|
+
`}var ue=" ",go=100,ka,Ia,Du,Mu,ve=(e)=>_(e),Ln=(e)=>ve(e)&&b(e.$ref)&&Object.keys(e).length===1,X=(e,t)=>`${e}/${String(t).replaceAll("~","~0").replaceAll("/","~1")}`;var $o=j(()=>{Dr();U();sn();kn();Hr();ka=/^(?![-+]?\.?\d)(?!(?:true|false|null|inf|-inf|nan)$)[^\s\\/(){};[\]"#=,\p{Cc}\p{Cf}\p{Zl}\p{Zp}]+$/u,Ia=/[\p{Cc}\p{Zl}\p{Zp}--]/u,Du=/(?!\n)\p{Cc}|[\p{Zl}\p{Zp}--]/u,Mu=new Set(["-","attributes","script","state","style"])});function Gu(e,t,n){if(on(e,t)!==null)throw F(e,t,`"project" names the file's kind, and takes no annotation`);let r=tt(e,t);if(r.length>1||nt(t).length>0||ye(t).length>0)throw F(e,t,`"project" holds one value, the project's name, and nothing else`);if(r[0]!==void 0)D(n,"name",r[0],e,t),ae(e,"/name",t)}function Yu(e,t,n){let r=t.getName(),s=`/${Ne(r)}`,o=t.getTag()===null,i;if(r==="$head"&&o)i=oo(e,t),ae(e,s,t);else if(Ku.has(r)&&o)i=Fr(e,t,s);else i=je(e,t,s);D(n,r,i,e,t)}function Xu(e){if(Ht(e.text)==="document")throw new ie('A project file declares itself: its first node, after any $ metadata, is project "<name>"');let t=io(e.text),n={},r=!1;for(let s of t.nodes)if(s.getName()===zu){if(r)throw F(e,s,'"project" is written twice, and a file declares one project');Gu(e,s,n),r=!0}else Yu(e,s,n);return Bt(n)}function So(e,t){try{return Xu({spans:null,text:e})}catch(n){throw t!==void 0&&n instanceof ie?n.inFile(t):n}}var zu="project",Ku;var bo=j(()=>{U();En();wn();sn();kn();Hr();$o();Ku=new Set(["$media","style"])});var Ur=j(()=>{wn();lo();sn();Ca();kn();Hr();$o();bo()});function za(e){if(!b(e))return null;let[t,...n]=e.split(";"),r=(t??"").indexOf("/");if(r===-1)return null;let s=(t??"").slice(0,r).trim().toLowerCase(),o=(t??"").slice(r+1).trim().toLowerCase();if(!Ba.test(s)||!Ba.test(o))return null;let i=o.lastIndexOf("+"),a=i===-1?null:o.slice(i+1),l=i===-1?o:o.slice(0,i);if(a==="")return null;let c=l.indexOf("."),u=c===-1?null:l.slice(0,c),f=u!==null&&Qu.has(u)?u:null,p=f===null?l:l.slice(f.length+1);if(p==="")return null;let d={};for(let h of n){let g=h.indexOf("=");if(g===-1)return null;let m=h.slice(0,g).trim().toLowerCase(),x=h.slice(g+1).trim();if(m==="")return null;if(x.startsWith('"')&&x.endsWith('"')&&x.length>=2)x=x.slice(1,-1);d[m]=x}return{parameters:d,subtype:p,suffix:a,tree:f,type:s}}function Ka(e){if(!b(e)||e.trim()==="")return"expected a media type string";if(!e.includes("/"))return`"${e}" has no "/" — a media type is type/subtype (RFC 6838 §4.2)`;if(za(e)===null)return`"${e}" is not a well-formed media type (RFC 6838 §4.2)`;return null}function Ga(e){let t=za(e);if(t===null)return null;let n=t.tree===null?"":`${t.tree}.`,r=t.suffix===null?"":`+${t.suffix}`;return`${t.type}/${n}${t.subtype}${r}`}var Ba,Qu,Ua="text/markdown; variant=GFM",qa="application/yaml",yg;var Ya=j(()=>{U();Ba=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}$/,Qu=new Set(["vnd","prs","x"]);yg={".jxn":"text/plain; charset=utf-8",".markdown":`${Ua}; charset=utf-8`,".md":`${Ua}; charset=utf-8`,".yaml":`${qa}; charset=utf-8`,".yml":`${qa}; charset=utf-8`}});function el(e){if(e===null)throw TypeError("A class descriptor cannot be null");return _(e)?e:{}}class Wn{name;classPath;classDef;extensions;mediaType;mediaTypeEssence;documentKinds;exportTarget;remote;studio;project;server;connector;capabilities;#t;#e=null;constructor(e,t,n,r){this.name=e,this.classPath=t,this.classDef=n,this.#t=r;let{format:s}=n;this.extensions=(s?.extensions??[]).map((o)=>o.toLowerCase()),this.mediaType=s?.mediaType??null,this.mediaTypeEssence=Ga(this.mediaType),this.documentKinds=s?.documentKinds??[],this.exportTarget=s?.exportTarget===!0,this.remote=s?.remote===!0,this.studio=n.$studio??null,this.project=n.project??null,this.server=n.server??null,this.connector=n.connector??null,this.capabilities=tf(n)}implementation(){if(!this.#e){let e=this.classDef.$implementation;if(!e)return Promise.reject(Error(`Format class "${this.name}" has no $implementation to import`));this.#e=this.#t.importModule(this.#t.resolvePath(this.classPath,e))}return this.#e}async implementationExport(){return this.#n(await this.implementation())}#n(e){let t=this.classDef.title??this.name;return e[t]??e.default?.[t]??e.default}async call(e,...t){let n=this.capabilities[e];if(!n)throw Error(`Format class "${this.name}" does not declare a "${e}" capability`);let r=this.#n(await this.implementation()),s=r?.[n.identifier];if(!Se(s)){let i=this.classDef.title??this.name;throw TypeError(`Format class "${this.name}": implementation export "${i}" has no static "${n.identifier}" method`)}return await s.call(r,...t)}async parseDocument(e,t){return await this.call("parse",e,t)}}class qr{#t;get#e(){return[...this.#t,of]}constructor(e){this.#t=e;for(let t of e)if(t.extensions.includes(".jxn"))throw Error(`Format "${t.name}" claims ".jxn", which is built in`);for(let t of e){if(t.mediaType===null)continue;let n=Ka(t.mediaType);if(n!==null)throw Error(`Format "${t.name}" declares an invalid mediaType: ${n}`)}for(let t of Za){let n=new Map;for(let r of e){if(!r.capabilities[t])continue;for(let s of r.extensions){let o=n.get(s);if(o)throw Error(`Format conflict: "${o.name}" and "${r.name}" both claim "${s}" with the "${t}" capability`);n.set(s,r)}}}}get entries(){return this.#t}byExtension(e,t){let n=Xa(e);return this.#e.find((r)=>r.extensions.includes(n)&&(!t||r.capabilities[t]))}byName(e){return this.#t.find((t)=>t.name===e)}withCapability(e){return this.#e.filter((t)=>t.capabilities[e])}documentExtensions(e){let t=new Set;for(let n of this.#e){if(e&&!n.documentKinds.includes(e))continue;for(let r of n.extensions)t.add(r)}return t.delete(".json"),[...t]}has(e){let t=Xa(e);return this.#e.some((n)=>n.extensions.includes(t))}}function tf(e){let t={},n=e.$defs?.methods??{};for(let[r,s]of Object.entries(n)){let{role:o}=s;if(!rf(o))continue;let i={identifier:s.identifier??r,timing:s.timing??ef};if(b(s.discriminator))i.discriminator=s.discriminator;t[o]=i}return t}function rf(e){return e!==void 0&&nf.has(e)}function Xa(e){let t=e.toLowerCase();return t.startsWith(".")?t:`.${t}`}var Za,Qa,ef,nf,sf,of;var wo=j(()=>{U();Ya();Za=["parse","serialize","rewrite","discover","load"],Qa=[...Za,"projectData","resolvePaths","lower","emit","head","assets","mount","dialect","deploySchema","bindings","testConnection"];ef=["compiler","server"];nf=new Set(Qa);sf={importModule:async()=>{await Promise.resolve().then(() => Ur());return{JxNotation:{parse:(n)=>Pn(n),serialize:(n)=>yo(n)}}},loadJson:()=>Promise.reject(Error("Jx Notation reads no file of its own")),resolvePath:(e,t)=>t},of=new Wn("jxn","",{$defs:{methods:{parse:{role:"parse"},serialize:{role:"serialize"}}},$implementation:"jxn",format:{documentKinds:["page","component"],extensions:[".jxn"]},title:"JxNotation"},sf)});class tl{#t;#e;#n;constructor(e){this.#t=e,this.#e=e.flatMap((s)=>s.classes);let t=new Map;for(let s of e)for(let o of s.classes){let i=t.get(o.name);if(i&&i!==s.specifier)throw Error(`Extension conflict: "${i}" and "${s.specifier}" both provide a class named "${o.name}"`);t.set(o.name,s.specifier)}let n=new Map;for(let s of this.#e){if(!s.project)continue;let o=n.get(s.project.key);if(o)throw Error(`Extension conflict: "${o.name}" and "${s.name}" both claim the project section "${s.project.key}"`);n.set(s.project.key,s)}let r=new Map;for(let s of this.#e){if(!s.server)continue;let{basePath:o}=s.server;if(!o.startsWith("/_jx/"))throw Error(`Extension "${s.name}": server basePath "${o}" must be under /_jx/`);let i=r.get(o);if(i)throw Error(`Extension conflict: "${i.name}" and "${s.name}" both mount "${o}"`);r.set(o,s)}this.#n=new qr(this.#e.filter((s)=>s.extensions.length>0))}get extensions(){return this.#t}get classes(){return this.#e}get formats(){return this.#n}byName(e){return this.#e.find((t)=>t.name===e)}projectContributions(){return this.#e.filter((e)=>e.project!==null)}byProjectKey(e){return this.#e.find((t)=>t.project?.key===e)}byPathsDiscriminator(e){return this.#e.find((t)=>t.capabilities.resolvePaths?.discriminator===e)}emitters(){return this.#e.filter((e)=>e.capabilities.emit!==void 0)}headProviders(){return this.#e.filter((e)=>e.capabilities.head!==void 0)}assetProviders(){return this.#e.filter((e)=>e.capabilities.assets!==void 0)}serverMounts(){return this.#e.filter((e)=>e.server!==null).toSorted((e,t)=>(e.server?.order??100)-(t.server?.order??100)||e.name.localeCompare(t.name))}connectors(){return this.#e.filter((e)=>e.connector!==null)}schemaFragments(e){return this.#t.map((t)=>t.schemas[e]).filter((t)=>typeof t==="string")}}async function nl(e,t,n){let r=[];for(let s of e??[])r.push(await af(s,t,n));return new tl(r)}async function af(e,t,n){let r;if(e.startsWith("./")||e.startsWith("../")){let l=t.resolvePath(n,e);r=t.resolvePath(`${l}/package.json`,`./${Vn}`)}else try{r=t.resolvePath(n,`${e}/${Vn}`)}catch(l){throw Error(`Extension "${e}" is not resolvable: it must export ${Vn} (is the package installed, and does its exports map include it?): ${Eo(l)}`,{cause:l})}let s;try{s=await t.loadJson(r)}catch(l){throw Error(`Extension "${e}": cannot read manifest ${r}: ${Eo(l)}`,{cause:l})}if(!_(s)||!b(s.name))throw Error(`Extension "${e}": ${Vn} must declare a "name"`);let o=s;if(!e.startsWith(".")&&o.name!==e)throw Error(`Extension "${e}": manifest name "${o.name}" does not match the specifier`);let i=[];for(let[l,c]of Object.entries(o.classes??{})){let u=t.resolvePath(r,c),f;try{f=await t.loadJson(u)}catch(p){throw Error(`Extension "${e}": cannot read class "${l}" at ${u}: ${Eo(p)}`,{cause:p})}i.push(new Wn(l,u,el(f),t))}let a={};if(o.schemas?.project)a.project=t.resolvePath(r,o.schemas.project);if(o.schemas?.document)a.document=t.resolvePath(r,o.schemas.document);if(o.schemas?.fields)a.fields=t.resolvePath(r,o.schemas.fields);return{specifier:e,manifestPath:r,manifest:o,classes:i,schemas:a}}function Eo(e){return e instanceof Error?e.message:String(e)}var Vn="jx-extension.json";var rl=j(()=>{wo();U();wo()});var sl=j(()=>{U()});function cf(e){return`${e} holds both project.jxn and project.json, and a project has one. Keep the one you edit and delete the other`}function il(e){let t=lf.filter((n)=>e(n));if(t.length>1)return"conflict";return t[0]??null}function Dg(e,t){return In(t)?So(e,t):Bi(e,t)}var lf,ol="project.jxn",Jo;var al=j(()=>{U();sl();wn();lo();bo();En();lf=["project.jxn","project.json"];Jo=class Jo extends Error{constructor(e){super(cf(e));this.name="ProjectFileConflictError"}}});import{accessSync as Vg,closeSync as Hg,constants as Bg,existsSync as uf,fstatSync as Ug,lstatSync as qg,openSync as zg,readFileSync as Kg,statSync as Gg}from"node:fs";import{dirname as Xg,join as ll}from"node:path";function ff(e){return il((t)=>uf(ll(e,t)))}function cl(e){let t=ff(e);if(t==="conflict")throw new Jo(e);return ll(e,t??ol)}var ul=j(()=>{al()});import{readFileSync as pf}from"node:fs";import{dirname as df,isAbsolute as mf,resolve as fl,sep as zr}from"node:path";import{pathToFileURL as gf}from"node:url";import{createRequire as hf}from"node:module";async function xf(e){let t=[e],n=`${zr}src${zr}`,r=`${zr}dist${zr}`;if(e.includes(n)){let o=e.replace(n,r);if(t.push(o),o.endsWith(".ts"))t.push(`${o.slice(0,-3)}.js`)}if(e.endsWith(".js"))t.push(`${e.slice(0,-3)}.ts`);let s;for(let o of t)try{return await import(gf(o).href)}catch(i){s=i}throw s instanceof Error?s:Error(String(s))}function yf(e,t){return hf(fl(e,"package.json")).resolve(t)}function $f(e){return{importModule:(t)=>xf(t),loadJson:async(t)=>JSON.parse(pf(t,"utf8")),resolvePath:(t,n)=>{if(n.startsWith("./")||n.startsWith("../"))return fl(df(t),n);if(mf(n))return n;return yf(e,n)}}}async function ah(e,t){return nl(t?.extensions,$f(e),cl(e))}function Kr(e,t){return Error(`No format class registered for "${t}" (${e}). Enable an extension providing this format in project.json "extensions", e.g. "@jxsuite/parser".`)}var No=j(()=>{rl();U();ul()});async function gl(e,t={}){let{resolveElementPath:n,$media:r,formats:s}=t,o=[],i=new Set;async function a(l,c){let u,f;if(b(l)){let{readFileSync:N}=await import("node:fs"),{resolve:C}=await import("node:path");if(f=c?C(c,l):C(l),i.has(f))return;if(i.add(f),Dn(f))u=Mn(N(f,"utf8"),f);else{let{extname:z}=await import("node:path"),S=z(f).toLowerCase(),y=s?.byExtension(S,"parse");if(!y){await Promise.resolve().then(() => No());throw Kr(f,S)}u=await y.parseDocument(N(f,"utf8"))}u=fn(u,f)}else{if(u=fn(l,l.tagName??"a component"),f=null,u.tagName&&i.has(u.tagName))return;if(u.tagName)i.add(u.tagName)}let{tagName:p}=u;if(!p||!p.includes("-"))throw Error(`compileElement: tagName "${p}" must contain a hyphen`);let{dirname:d}=await import("node:path"),h=f?d(f):null,g=[];if(Array.isArray(u.$elements))for(let N of u.$elements){let C=H(N)?N.$ref:N;if(!b(C))continue;if(h)await a(C,h);let z=n?n(C,h):C.replace(/\.(?:json|jxn)$/i,".js");g.push(z)}let m=gr(p);if(r)u.$media={...r,...u.$media};let{rewriteSrc:x}=t,E=Hn(u,m,g,x?(N)=>x(N,h):void 0,tr(u,t.defaults),t.serverBaseUrl),O=f?f.replace(/\.(?:json|jxn)$/i,".js"):`${p}.js`;o.push({content:E,path:O,tagName:p})}return await a(e,t.basePath??null),{files:o}}async function Sf(e,t={}){let{title:n="Jx App",reactivitySrc:r="https://esm.sh/@vue/reactivity@3.5.13",litHtmlSrc:s="https://esm.sh/lit-html@3.3.0"}=t,o=await gl(e,t),i=o.files.at(-1);if(!i)throw Error("compileElementPage: no element modules were produced");let{basename:a}=await import("node:path"),l=a(i.path),c=`<!DOCTYPE html>
|
|
71
80
|
<html lang="en">
|
|
72
81
|
<head>
|
|
73
82
|
<meta charset="utf-8">
|
|
74
83
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
75
|
-
<title>${
|
|
84
|
+
<title>${P(n)}</title>
|
|
76
85
|
<script type="importmap">
|
|
77
86
|
{
|
|
78
87
|
"imports": {
|
|
@@ -84,99 +93,103 @@ ${r}"""${n}`;return ca(o,e)?o:null}function Qs(e,t,n){if(!la(e))throw new he(`${
|
|
|
84
93
|
</head>
|
|
85
94
|
<body>
|
|
86
95
|
<${i.tagName}></${i.tagName}>
|
|
87
|
-
<script type="module" src="./${
|
|
96
|
+
<script type="module" src="./${l}"></script>
|
|
88
97
|
</body>
|
|
89
|
-
</html>`;return{files:o.files,html:
|
|
90
|
-
`)}function
|
|
98
|
+
</html>`;return{files:o.files,html:c}}function bf(e){if(!A(e)||Array.isArray(e))return JSON.stringify(e);if("default"in e)return JSON.stringify(e.default);if(it(e))return;if(e.$prototype==="LocalStorage"||e.$prototype==="SessionStorage")return JSON.stringify(e.default??null);if(e.$prototype==="Request")return"null";if(He(e))return"null";return JSON.stringify(e)}function wf(e){let t=new Set,n=new Set,r=(o)=>{if(o.startsWith("#/state/"))t.add(o.slice(8).split("/")[0])},s=(o)=>{if(b(o)){for(let a of o.matchAll(/\bstate\.([A-Za-z_$][\w$]*)\s*\(/g))t.add(a[1]);return}if(!A(o)||n.has(o))return;if(n.add(o),Array.isArray(o)){for(let a of o)s(a);return}let i=o;if(i.operator==="call"&&H(i.target))r(i.target.$ref);for(let[a,l]of Object.entries(i)){if(a.startsWith("on")&&a!=="observedAttributes"&&H(l))r(l.$ref);s(l)}};return s(e.children),s(e.state),t}function Hn(e,t,n,r,s=null,o="/_jx/server"){let i=["// Generated by @jxsuite/compiler — do not edit manually"];if(e.$id)i.push(`// Source: ${e.$id}`);for(let S of n)i.push(`import '${S}';`);let a=new Map,l=new Map,c=e.state??{},u=wf(e);for(let[S,y]of Object.entries(c))if(be(y)&&y.$src){let w=y.$src;if(y.$lazy===!0){if(!u.has(S)&&!pl.has(S))throw Error(`"${S}" declares "$lazy": true but is used as a computed value, not called. A lazily loaded function resolves to a promise; a computed must resolve now. Remove "$lazy", or call ${S}() from a handler instead of binding its value.`);let Z=l.get(w);if(!Z)Z=[],l.set(w,Z);Z.push({binding:S,exportName:js(S,y)});continue}let J=a.get(w);if(!J)J=[],a.set(w,J);J.push(or(S,y))}for(let[S,y]of a){let w=r?r(S):S;i.push(`import { ${y.join(", ")} } from '${w}';`)}let f=Object.entries(c).flatMap(([S,y])=>ot(y)&&y.$prototype==="Request"?[[S,y]]:[]),p=Object.entries(c).flatMap(([S,y])=>He(y)?[[S,y]]:[]);if(i.push("import { reactive, computed, effect, stop } from '@vue/reactivity';","import { render, html, nothing } from 'lit-html';",dr()),p.length>0)i.push(mr());let d=s===null&&kt(e.children);if(d)i.push(Ri());let h=0;for(let[S,y]of l){let w=r?r(S):S,J=`_jxLazy${h}`;h+=1,i.push(`let ${J};`,`const ${J}Load = () => (${J} ??= import('${w}'));`,...y.map(({binding:Z,exportName:te})=>`const ${Z} = (...args) => ${J}Load().then((m) => m.${te}(...args));`))}i.push("",`class ${t} extends HTMLElement {`," #effects = [];",...s===null?[]:[" #root = null;"],""," constructor() {"," super();");let g=[],m=[],x=[],E=[],O=[];for(let[S,y]of Object.entries(c))if(we(y))if(xt(y))E.push([S,y]);else if(Ke(y.$expression.operator))x.push([S,y]);else m.push([S,y]);else if(be(y))if(y.$src&&!b(y.body))if(u.has(S)||pl.has(S))x.push([S,y]);else m.push([S,y]);else if(b(y.body)&&yt(y.body))m.push([S,y]);else x.push([S,y]);else if(b(y)&&y.includes("${"))O.push([S,y]);else{let w=bf(y);if(w!==void 0)g.push([S,w])}i.push(" this.state = reactive({");for(let[S,y]of g)i.push(` ${ze(S)}: ${y},`);i.push(" });");for(let[S,y]of x)if(i.push(""),we(y)){let w=pe(y.$expression,{eventParam:"e",statePrefix:"s"});i.push(` ${I("this.state",re(S))} = (s, e) => { ${w}; };`)}else if(st(y)){let w=Ce(y.body,{dispatchTarget:"this",eventParam:"e",indent:" ",statePrefix:"this.state"});i.push(` ${I("this.state",re(S))} = (s, e) => {`,w," };")}else{let w=y.parameters?Be(y.parameters):y.arguments??["state"],J=w.join(", "),Z=b(y.body)?y.body:"";if(w[0]==="state")if(y.$src)i.push(` ${I("this.state",re(S))} = (${J}) => ${S}(${J});`);else i.push(` ${I("this.state",re(S))} = (${J}) => {`,` ${Z}`," };");else{let te=w.map((Te)=>Te==="state"?"state":"e").join(", ");if(y.$src)i.push(` ${I("this.state",re(S))} = (state, e) => ${S}(${te});`);else i.push(` ${I("this.state",re(S))} = (state, e) => {`,` const _fn = (${J}) => {`,` ${Z}`," };",` return _fn(${te});`," };")}}for(let[S,y]of E){i.push("");let w=pe(y.$expression,{eventParam:"e",statePrefix:"this.state"});i.push(` ${I("this.state",re(S))} = ${Sn(y,w)};`)}for(let[S,y]of O)i.push("",` ${I("this.state",re(S))} = computed(() => ${fr(Mt(y,"this.state",{code:!1}))});`);for(let[S,y]of m)if(i.push(""),we(y)){let w=pe(y.$expression,{eventParam:"e",statePrefix:"this.state"});i.push(` ${I("this.state",re(S))} = computed(() => ${w});`)}else if(y.$src)i.push(` ${I("this.state",re(S))} = computed(() => ${S}(this.state));`);else{i.push(` ${I("this.state",re(S))} = computed(() => {`);let w=Mt(b(y.body)?y.body:"","this.state");i.push(` ${w}`," });")}i.push(" }","");let N=[];if(Array.isArray(e.children)){let S={n:0};for(let y of e.children)It(y,N,e.$media??{},"",S,e.tagName)}let C=hl(),z=!Array.isArray(e.children)&&e.textContent!==void 0?` ${Xr(e.textContent)}`:Yr(e.children,e.style," ",!1,!1,C);i.push(" template() {"," const s = this.state;",...C.decls," return html`",z," `;"," }","",...s===null?[]:[" #renderRoot() {"," if (this.#root) return this.#root;",s==="closed"?" this.#root = this.attachInternals().shadowRoot ?? this.attachShadow({ mode: 'closed' });":" this.#root = this.shadowRoot ?? this.attachShadow({ mode: 'open' });"," return this.#root;"," }",""]," connectedCallback() {"," const _pa = this.getAttribute('data-jx-props');"," if (_pa) {"," try {"," const _p = JSON.parse(_pa);"," for (const [k, v] of Object.entries(_p)) {"," if (k.startsWith('#')) continue;"," if (k in this.state) this.state[k] = v;"," }"," } catch {}"," this.removeAttribute('data-jx-props');"," }"," const _pn = this.getAttributeNames().filter(n => n.startsWith('props.') && n.length > 6);"," for (const _n of _pn) {"," const _k = _n.slice(6);"," if (_k.startsWith('#')) { this.removeAttribute(_n); continue; }"," if (_k in this.state) {"," this.state[_k] = this.getAttribute(_n);"," this.removeAttribute(_n);"," }"," }"," for (const key of Object.keys(this.state)) {"," if (key.startsWith('#')) continue;"," if (this.hasOwnProperty(key) && this[key] !== undefined) {"," this.state[key] = this[key];"," }"," }");for(let[S,y]of f)i.push(ir(S,y,{collect:"this.#effects",indent:" ",statePrefix:"this.state"}));for(let[S,y]of p)i.push(ar(S,y,{collect:"this.#effects",indent:" ",serverBaseUrl:o,statePrefix:"this.state"}));if(A(e.style)){let S=[];for(let[y,w]of Object.entries(e.style)){if(y.startsWith(":")||y.startsWith(".")||y.startsWith("&")||y.startsWith("[")||y.startsWith("@"))continue;if(b(w)&&w.includes("${"))S.push([ge(y),w])}if(S.length>0){i.push(" this.#effects.push(effect(() => {");for(let[y,w]of S){let J=w.replaceAll(/\$\{([^}]+)\}/g,(Z,te)=>`\${${Mt(te,"this.state")}}`);i.push(` this.style['${y}'] = \`${J}\`;`)}i.push(" }));")}}if(d)i.push(` const _slotted = ${Ts}(this);`);if(i.push(" if (this.hasAttribute('data-jx-prerendered')) {"," this.removeAttribute('data-jx-prerendered');"," }"),s===null)i.push(" this.replaceChildren();"," this.#effects.push(effect(() => render(this.template(), this)));");else i.push(" const _root = this.#renderRoot();"," for (const _n of [..._root.childNodes]) {"," if (!(_n.nodeType === 1 && _n.tagName === 'LINK')) _n.remove();"," }"," this.#effects.push(effect(() => render(this.template(), _root)));");if(d)i.push(` ${Rs}(this, _slotted);`);return i.push(" if (typeof this.state.onMount === 'function') {"," queueMicrotask(() => this.state.onMount(this.state));"," }"," }",""," disconnectedCallback() {"," for (const _e of this.#effects) { stop(_e); }"," this.#effects.length = 0;"," if (typeof this.state.onUnmount === 'function') { this.state.onUnmount(this.state); }"," }","}","",`customElements.define('${e.tagName}', ${t});`,""),i.join(`
|
|
99
|
+
`)}function hl(){return{byText:new Map,decls:[]}}function xl(e,t){let n=e.byText.get(t);if(n)return n;let r=`_c${e.decls.length}`;e.decls.push(` const ${r} = html\`
|
|
91
100
|
${t}
|
|
92
|
-
\`;`);let s=`\${${r}}`;return e.byText.set(t,s),s}function
|
|
93
|
-
`)}function
|
|
101
|
+
\`;`);let s=`\${${r}}`;return e.byText.set(t,s),s}function Yr(e,t,n,r=!1,s=!1,o=null,i=!1){if(!e)return"";let a=i?Lt:"";if(ne(e))return`${ml(e,n)}${a}`;if(!Array.isArray(e))return"";return e.map((l)=>{if(ne(l))return`${ml(l,n)}${a}`;let c=Oo(l,r?"":n,r,s,o);return b(l)&&l.includes("${")||A(l)&&De(l.tagName)?`${c}${a}`:c}).join(r?"":`
|
|
102
|
+
`)}function Oo(e,t,n=!1,r=!1,s=null,o=null){if(b(e)){if(e.includes("${"))return`${t}${Xr(e)}`;return`${t}${P(e)}`}if(se(e)||me(e))return`${t}${P(String(e))}`;if(!A(e))return"";if(De(e.tagName)){let g=e.tagName.$expression,m=Ge(g.target,{eventParam:"e",statePrefix:"s"}),x=g.operator==="?:"?[[!0,g.value],[!1,g.initial]]:[...Object.entries(g.cases),["__default__",g.default]],E=x.map(([,y])=>y),O=E.map((y)=>n||lt.has(y)),N=null;if(s&&O.every((y)=>y===O[0])){let y=dl(e,`${t} `,O[0]===!0,r,s,E.some((w)=>w.includes("-")));if(y.trim()!=="")N=xl(s,y)}let C=x.map(([y,w])=>{let J={...e,tagName:w};return[y,Oo(J,`${t} `,n,r,s,N)]});if(g.operator==="?:"){let[,y]=C[0],[,w]=C[1];return`${t}\${${m}
|
|
94
103
|
? html\`
|
|
95
104
|
${y}
|
|
96
105
|
\`
|
|
97
106
|
: html\`
|
|
98
107
|
${w}
|
|
99
|
-
\`}`}let
|
|
108
|
+
\`}`}let z=C.flatMap(([y,w])=>y==="__default__"?[]:[` ${JSON.stringify(y)}: html\`
|
|
100
109
|
${w}
|
|
101
110
|
\``]),[,S]=C.at(-1);return`${t}\${{
|
|
102
|
-
${
|
|
111
|
+
${z.join(`,
|
|
103
112
|
`)}
|
|
104
113
|
}[String(${m})] ?? html\`
|
|
105
114
|
${S}
|
|
106
|
-
\`}`}let i=e.tagName??"div",
|
|
107
|
-
${t} ${
|
|
115
|
+
\`}`}let i=e.tagName??"div",a=n||lt.has(i),l=[];if(e.attributes)for(let[g,m]of Object.entries(e.attributes))if(H(m))l.push(`${g}="\${${Ft}('${g}', ${Ve(m.$ref)}) ?? nothing}"`);else if(b(m)&&Ef(m))l.push(`${g}="\${${Ft}('${g}', ${Oe(m).slice(2,-1)}) ?? nothing}"`);else if(b(m)&&m.includes("${"))l.push(`${g}="${Oe(m)}"`);else if(me(m)){let x=St(g,m);if(x!==null)l.push(x===""?g:`${g}="${x}"`)}else l.push(`${g}="${m}"`);if(e.id)l.push(`id="${Oe(String(e.id))}"`);if(e.className)l.push(`class="${Oe(String(e.className))}"`);for(let[g,m]of Object.entries(e)){if(Ye.has(g)||g.startsWith("$")||g.startsWith("on")||g==="tagName"||g==="id"||g==="className"||g==="style"||g==="children"||g==="textContent"||g==="innerHTML"||g==="attributes")continue;if(Gr(m))l.push(`.${g}="\${${Ve(m.$ref)}}"`);else if(b(m)&&m.includes("${"))l.push(`.${g}="${Oe(m)}"`);else l.push(`.${g}="\${${JSON.stringify(m)}}"`)}if(e.$props)for(let[g,m]of Object.entries(e.$props))if(Gr(m))l.push(`.${g}="\${${Ve(m.$ref)}}"`);else if(b(m)&&m.includes("${"))l.push(`.${g}="${Oe(m)}"`);else l.push(`.${g}="\${${JSON.stringify(m)}}"`);let c=r?"s.$map = $map; ":"";for(let[g,m]of Object.entries(e)){if(!g.startsWith("on")||g==="observedAttributes")continue;let x=g.slice(2).toLowerCase();if(Gr(m))l.push(c?`@${x}="\${(e) => { ${c}${Ve(m.$ref)}(s, e); }}"`:`@${x}="\${(e) => ${Ve(m.$ref)}(s, e)}"`);else if(A(m)&&"$expression"in m){let E=pe(m.$expression,{eventParam:"e",statePrefix:"s"});l.push(`@${x}="\${(e) => { ${c}${E}; }}"`)}else if(be(m))l.push(`@${x}="\${(e) => { ${c}${Jf(m)} }}"`)}let u=$l(e.style);if(u)l.push(`style="${u}"`);let f=l.length>0?`
|
|
116
|
+
${t} ${l.join(`
|
|
108
117
|
${t} `)}`:"";if(new Set(["input","br","hr","img","meta","link"]).has(i))return`${t}<${i}${f}
|
|
109
|
-
${t}>`;let d=o??
|
|
110
|
-
${t}>${d}${h}</${i}>`}function
|
|
111
|
-
${
|
|
118
|
+
${t}>`;let d=o??dl(e,t,a,r,s,i.includes("-")),h=i==="slot"?Lt:"";return a?`${h}<${i}${f}>${d}${h}</${i}>`:`${t}${h}<${i}${f}
|
|
119
|
+
${t}>${d}${h}</${i}>`}function dl(e,t,n,r,s,o=!1){if(e.$switch){let i=H(e.$switch)?e.$switch.$ref:e.$switch,a=Ve(i),l=[];for(let[p,d]of Object.entries(e.cases??{})){if(!d||H(d))continue;l.push([p,Oo(d,`${t} `,!1,r,s)])}let c=l.map(([,p])=>p),u=new Set(c.filter((p,d)=>c.indexOf(p)!==d&&p.trim()!==""));return`\${{
|
|
120
|
+
${l.map(([p,d])=>{let h=s&&u.has(d)?xl(s,d):d;return` ${JSON.stringify(p)}: html\`
|
|
112
121
|
${h}
|
|
113
122
|
\``}).join(`,
|
|
114
123
|
`)}
|
|
115
|
-
}[${
|
|
116
|
-
${
|
|
117
|
-
${t}`;return""}function
|
|
124
|
+
}[${a}]}`}if(e.textContent!==void 0){let i=Xr(e.textContent),a=H(e.textContent)||b(e.textContent)&&e.textContent.includes("${");return o&&a?`${i}${Lt}`:i}if(e.innerHTML!==void 0)return e.innerHTML;if(e.children)return n?Yr(e.children,e.style,"",!0,r,s,o):`
|
|
125
|
+
${Yr(e.children,e.style,`${t} `,!1,r,s,o)}
|
|
126
|
+
${t}`;return""}function ml(e,t){let n=H(e.items)?Ve(e.items.$ref):"ITEMS",r=e.map;if(!r)return"";let s=r.tagName??"div",o=[];if(r.attributes)for(let[d,h]of Object.entries(r.attributes))if(H(h))o.push(`${d}="\${${Ao(h.$ref)}}"`);else if(b(h)&&h.includes("${"))o.push(`${d}="${Oe(h)}"`);else o.push(`${d}="${h}"`);if(r.id)o.push(`id="${Oe(String(r.id))}"`);if(r.className)o.push(`class="${Oe(String(r.className))}"`);for(let[d,h]of Object.entries(r)){if(Ye.has(d)||d.startsWith("$")||d.startsWith("on")||d==="tagName"||d==="id"||d==="className"||d==="style"||d==="children"||d==="textContent"||d==="innerHTML"||d==="attributes")continue;if(Gr(h))o.push(`.${d}="\${${Ao(h.$ref)}}"`);else if(b(h)&&h.includes("${"))o.push(`.${d}="${Oe(h)}"`);else o.push(`.${d}="\${${JSON.stringify(h)}}"`)}if(r.$props)for(let[d,h]of Object.entries(r.$props))if(H(h))o.push(`.${d}="\${${Ao(h.$ref)}}"`);else if(b(h)&&h.includes("${"))o.push(`.${d}="${Oe(h)}"`);else o.push(`.${d}="\${${JSON.stringify(h)}}"`);let i=$l(r.style);if(i)o.push(`style="${i}"`);for(let[d,h]of Object.entries(r)){if(!d.startsWith("on"))continue;let g=d.slice(2).toLowerCase();if(H(h))o.push(`@${g}="\${(e) => { s.$map = $map; ${Ve(h.$ref)}(s, e); }}"`);else if(we(h)){let m=pe(h.$expression,{eventParam:"e",statePrefix:"s"});o.push(`@${g}="\${(e) => { s.$map = $map; ${m}; }}"`)}}let a=o.length>0?`
|
|
118
127
|
${t} ${o.join(`
|
|
119
|
-
${t} `)}`:"",
|
|
120
|
-
${
|
|
128
|
+
${t} `)}`:"",l=hl(),c="";if(r.textContent!==void 0)c=Xr(r.textContent);else if(r.children)c=`
|
|
129
|
+
${Yr(r.children,null,`${t} `,!1,!0,l)}
|
|
121
130
|
${t} `;let u=`html\`
|
|
122
|
-
${t} <${s}${
|
|
123
|
-
${t} >${
|
|
124
|
-
${t}\``,f=(u.includes("$map")?"const $map = { item, index }; ":"")+
|
|
131
|
+
${t} <${s}${a}
|
|
132
|
+
${t} >${c}</${s}>
|
|
133
|
+
${t}\``,f=(u.includes("$map")?"const $map = { item, index }; ":"")+l.decls.map((d)=>`${d.trim()} `).join(""),p=f?`(item, index) => { ${f}return ${u}; }`:`(item, index) => ${u}`;return`${t}\${${n}.map(${p})}`}function Gr(e){return H(e)&&e.$ref!==""}function Ve(e){if(e.startsWith("#/state/"))return I("s",e.slice(8));if(e.startsWith("$map/"))return yl(e.slice(5));if(e.startsWith("parent#/"))return I("s",e.slice(8));if(e.startsWith("window#/"))return I("window",e.slice(8));if(e.startsWith("document#/"))return I("document",e.slice(10));return I("s",e)}function yl(e){let[t,...n]=qe(e);return I(t??"",n.map((r)=>re(r)).join("/"))}function Ao(e){if(e.startsWith("$map/"))return yl(e.slice(5));return Ve(e)}function Oe(e){return Mt(e,"s",{code:!1})}function Ef(e){return e.startsWith("${")&&e.endsWith("}")&&!e.slice(2).includes("${")}function Xr(e){if(H(e))return`\${${Ve(e.$ref)}}`;if(b(e)&&e.includes("${"))return Oe(e);return String(e)}function Jf(e){if(st(e))return Ce(e.body,{dispatchTarget:"e.currentTarget",eventParam:"e",statePrefix:"s"});let t=b(e.body)?e.body:"",n=e.parameters?Be(e.parameters):e.arguments??[];if(n.length>0){let r=n.map((s)=>s==="state"?"s":"e").join(", ");return`((${n.join(", ")}) => { ${t}
|
|
134
|
+
})(${r});`}return`${Mt(t,"s",{bare:!0})}
|
|
135
|
+
`}function $l(e){if(!A(e))return"";let t=[];for(let[n,r]of Object.entries(e)){if(n.startsWith(":")||n.startsWith(".")||n.startsWith("&")||n.startsWith("[")||n.startsWith("@"))continue;if(b(r)&&r.includes("${")){let s=ge(n);t.push(`${s}: ${Oe(r)}`)}}return t.join("; ")}var pl;var Zr=j(()=>{qn();yn();Vt();U();Ur();Rt();pl=new Set(["onMount","onUnmount","onAdopted"])});function Sl(e,t){let{title:n="Jx App",reactivitySrc:r,litHtmlSrc:s}=t,o=Dt(e,null,e.state??{},e.$media??{}),i=Wt(e,e.$media??{},t.projectStyle??null),a=[],l=bl(e,!1,o,a),c=[],u="",f="";if(a.length>0){for(let h of a){let g=Hn(h.def,h.className,[],t.rewriteSrc);c.push({content:g,path:`_islands/${h.tagName}.js`,tagName:h.tagName})}u=`<script type="importmap">
|
|
125
136
|
{
|
|
126
137
|
"imports": {
|
|
127
138
|
"@vue/reactivity": "${r}",
|
|
128
139
|
"lit-html": "${s}"
|
|
129
140
|
}
|
|
130
141
|
}
|
|
131
|
-
</script>`,f=
|
|
132
|
-
`)}let p=t.prePaintScheme!==!1&&Object.values(e.$media??{}).some((h)=>Ue(String(h))!==null)?`<script>${
|
|
142
|
+
</script>`,f=c.map((h)=>`<script type="module" src="./${h.path}"></script>`).join(`
|
|
143
|
+
`)}let p=t.prePaintScheme!==!1&&Object.values(e.$media??{}).some((h)=>Ue(String(h))!==null)?`<script>${pr()}</script>
|
|
133
144
|
`:"",d=`<!DOCTYPE html>
|
|
134
145
|
<html lang="en">
|
|
135
146
|
<head>
|
|
136
147
|
<meta charset="utf-8">
|
|
137
148
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
138
|
-
<title>${
|
|
149
|
+
<title>${P(n)}</title>
|
|
139
150
|
${p}${u}
|
|
140
151
|
${i}
|
|
141
152
|
</head>
|
|
142
153
|
<body>
|
|
143
|
-
${
|
|
154
|
+
${l}
|
|
144
155
|
${f}
|
|
145
156
|
</body>
|
|
146
|
-
</html>`;return{files:
|
|
147
|
-
${
|
|
148
|
-
})()`)};`);else g.push([w,{args:["state","e"],body:
|
|
157
|
+
</html>`;return{files:c,html:d}}function bl(e,t,n,r){if(b(e))return P(e);if(se(e)||me(e))return P(String(e));if(!A(e))return"";let s=Dt(e,n.scope,e.state??n.scopeDefs,e.$media??n.media);if(t){let c=r.length,u=`jx-island-${c}`,f=`JxIsland${c}`,p={...e,tagName:u};return r.push({className:f,def:p,tagName:u}),`<${u}></${u}>`}let o=ks(e.tagName,s.scope),i=bt(e,s.scope);if(Ps.has(o))return`<${o}${i}>`;let a=n.preformatted===!0||lt.has(o),l=Nf(e,{...s,preformatted:a},r);return`<${o}${i}>${l}</${o}>`}function Nf(e,t,n){if(e.textContent!==void 0){let r=B(e.textContent,t.scope);return r==null?"":P(String(r))}if(e.innerHTML){let r=B(e.innerHTML,t.scope);return r==null?e.innerHTML:String(r)}if(Array.isArray(e.children))return e.children.map((r)=>bl(r,Ai(r),t,n)).join(bn(t.preformatted));return""}var wl=j(()=>{Vt();Zr();U()});function To(e,t){let{title:n="Jx App",reactivitySrc:r=lr,litHtmlSrc:s=cr,modulePath:o="app.js",serverBaseUrl:i="/_jx/server"}=t,a=Dt(e,null,e.state??{},e.$media??{}),l=Wt(e,e.$media??{},t.projectStyle??null),c={h:0,l:0,m:0,needsLit:!1,s:0,sw:0,t:0},u=new Map,f=new Map,p=[],d=[],h=[],g=[],m=[],x=[],E=new Map,O=e.state??{};for(let[w,J]of Object.entries(O)){if(!A(J)||Array.isArray(J)){if(L(J))d.push([w,`() => ${fr(J)}`]);else p.push([w,J]);continue}if(we(J)){let Z=J.$expression,te=pe(Z,{eventParam:"e",statePrefix:"state"});if(xt(J))m.push(`state[${JSON.stringify(w)}] = ${Sn(J,te)};`);else if(Ke(Z.operator))g.push([w,{args:["state","e"],body:te}]);else d.push([w,`() => ${te}`]);continue}if(be(J)){let Z=J.parameters?Be(J.parameters):J.arguments,{body:te}=J;if(Array.isArray(te)){let Te=Ce(te,{eventParam:"e",statePrefix:"state"});if(J.parameters&&J.parameters.length>0)m.push(`state[${JSON.stringify(w)}] = ${Sn(J,`(() => {
|
|
158
|
+
${Te}
|
|
159
|
+
})()`)};`);else g.push([w,{args:["state","e"],body:Te}])}else if(J.$src){let Te=E.get(J.$src);if(!Te)Te=new Set,E.set(J.$src,Te);Te.add(or(w,J)),d.push([w,`() => { return ${w}(state); }`])}else if(b(te)&&yt(te))d.push([w,`() => { ${te} }`]);else g.push([w,{args:Z??["state"],body:te}]);continue}if(it(J))continue;if(Io(J)){p.push([w,J.default]);continue}if(ot(J)){if(J.$prototype==="LocalStorage"||J.$prototype==="SessionStorage"){let Z=J.$prototype==="LocalStorage"?"localStorage":"sessionStorage",te=J.key??w,Te=J.default??null;p.push([w,null]),m.push(Of(w,Z,te,Te));continue}if(J.$prototype==="Request"){p.push([w,null]),m.push(ir(w,J));continue}if(J.$prototype==="Cookie"){p.push([w,null]),m.push(Cf(w,J.name??w,J.default??null));continue}}if(He(J)){p.push([w,null]),x.push(ar(w,J,{serverBaseUrl:i}));continue}p.push([w,J])}let N=El(e,a,u,f,c);for(let[w,J]of u)if(!h.some(([Z])=>Z===w))h.push([w,J]);for(let[w,J]of f)if(!g.some(([Z])=>Z===w))g.push([w,J]);let C=Af(p,d,h,g,m,x,E,c,r,t.rewriteSrc),z=[` "@vue/reactivity": "${r}"`,` "lit-html": "${s}"`],S=t.prePaintScheme!==!1&&Object.values(e.$media??{}).some((w)=>Ue(String(w))!==null)?`<script>${pr()}</script>
|
|
149
160
|
`:"",y=`<!DOCTYPE html>
|
|
150
161
|
<html lang="en">
|
|
151
162
|
<head>
|
|
152
163
|
<meta charset="utf-8">
|
|
153
164
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
154
|
-
<title>${
|
|
165
|
+
<title>${P(n)}</title>
|
|
155
166
|
${S}<script type="importmap">
|
|
156
167
|
{
|
|
157
168
|
"imports": {
|
|
158
|
-
${
|
|
169
|
+
${z.join(`,
|
|
159
170
|
`)}
|
|
160
171
|
}
|
|
161
172
|
}
|
|
162
173
|
</script>
|
|
163
|
-
${
|
|
174
|
+
${l}
|
|
164
175
|
<script type="module" src="./${o}"></script>
|
|
165
176
|
</head>
|
|
166
177
|
<body>
|
|
167
|
-
${
|
|
178
|
+
${N}
|
|
168
179
|
</body>
|
|
169
|
-
</html>`;return{files:[{content:C,path:o}],html:y}}function
|
|
180
|
+
</html>`;return{files:[{content:C,path:o}],html:y}}function El(e,t,n,r,s){if(b(e))return P(e);if(se(e)||me(e))return P(String(e));if(!A(e))return"";let o=Dt(e,t.scope,e.state??t.scopeDefs,e.$media??t.media);if(De(e.tagName))throw Error(`A tag chosen at creation is not supported on a dynamic page yet (candidates: ${vt(e.tagName).join(", ")}). Move the element into a component, or give it a literal tagName.`);let i=e.tagName??"div";o.preformatted=t.preformatted===!0||lt.has(i);let a=[],l=!1;if(e.textContent!==void 0){let g=e.textContent;if(he(g)){let m=cn(g.$ref);a.push(`:text-content="${m}"`),Co(n,m,g.$ref),l=!0}else if(L(g)){let m=`_t${s.t}`;s.t+=1,a.push(`:text-content="${m}"`),n.set(m,`() => \`${g}\``),l=!0}}for(let[g,m]of Object.entries(e)){if(!g.startsWith("on")||g==="observedAttributes")continue;let x=g.slice(2).toLowerCase();if(he(m)){let E=cn(m.$ref);a.push(`@${x}="${E}"`),l=!0}else if(be(m)){let E=`_h${s.h}`;s.h+=1,a.push(`@${x}="${E}"`);let{body:O}=m;r.set(E,Array.isArray(O)?{args:["state","e"],body:Ce(O,{eventParam:"e",statePrefix:"state"})}:{args:m.parameters?Be(m.parameters):m.arguments??["state","event"],body:O}),l=!0}else if(we(m)){let E=`_h${s.h}`;s.h+=1,a.push(`@${x}="${E}"`);let O=pe(m.$expression,{eventParam:"e",statePrefix:"state"});r.set(E,{args:["state","e"],body:O}),l=!0}}if(A(e.style))for(let[g,m]of Object.entries(e.style)){if(g.startsWith(":")||g.startsWith(".")||g.startsWith("&")||g.startsWith("[")||g.startsWith("@"))continue;if(Nl(m))continue;if(L(m)){let x=`_s${s.s}`;s.s+=1,a.push(`:style.${ge(g)}="${x}"`),n.set(x,`() => \`${m}\``),l=!0}}if(A(e.attributes)){for(let[g,m]of Object.entries(e.attributes))if(he(m)){let x=cn(m.$ref);a.push(`:attr.${g}="${x}"`),Co(n,x,m.$ref),l=!0}else if(L(m)){let x=`_t${s.t}`;s.t+=1,a.push(`:attr.${g}="${x}"`),n.set(x,`() => \`${m}\``),l=!0}}for(let[g,m]of Object.entries(e)){if(Ye.has(g)||g.startsWith("on")||g.startsWith("$")||g==="tagName"||g==="id"||g==="className"||g==="style"||g==="children"||g==="textContent"||g==="innerHTML"||g==="attributes")continue;if(he(m)){let x=cn(m.$ref);a.push(`:${ge(g)}="${x}"`),Co(n,x,m.$ref),l=!0}else if(L(m)){let x=`_t${s.t}`;s.t+=1,a.push(`:${ge(g)}="${x}"`),n.set(x,`() => \`${m}\``),l=!0}}let c=bt(e,o.scope),u=l?" data-bind":"",f=a.length>0?` ${a.join(" ")}`:"",p="",d=e;if(d.$switch){s.needsLit=!0;let g=`_sw${s.sw}`;s.sw+=1;let m=he(d.$switch)?vo(d.$switch.$ref):`\`${String(d.$switch)}\``,x=d.cases??{},E=Object.entries(x).filter(([,N])=>N&&!he(N)).map(([N,C])=>`${JSON.stringify(N)}: html\`${jo(C,o.preformatted)}\``);n.set(g,`() => ({${E.join(", ")}})[String(${m})] ?? html\`\``),a.push(`:render="${g}"`);let O=` ${a.join(" ")}`;return`<${i}${c} data-bind${O}></${i}>`}if(d.textContent!==void 0&&!l){let g=B(d.textContent,o.scope);p=g==null?"":P(String(g))}else if(d.textContent!==void 0&&l){let g=B(d.textContent,o.scope);p=g==null?"":P(String(g))}else if(d.innerHTML){let g=B(d.innerHTML,o.scope);p=g==null?d.innerHTML:String(g)}else if(ne(d.children)){s.needsLit=!0;let g=`_list${s.l}`;s.l+=1;let m=d.children,x=he(m.items)?vo(m.items.$ref):JSON.stringify(m.items),E=Ro(m.map);n.set(g,`() => (${x} ?? []).map((item, index) => html\`${E}\`)`),a.push(`:render="${g}"`),l=!0;let O=" data-bind",N=` ${a.join(" ")}`;if(new Set(["input","br","hr","img","meta","link"]).has(i))return`<${i}${c}${O}${N}>`;return`<${i}${c}${O}${N}></${i}>`}else if(Array.isArray(d.children)&&d.children.some((g)=>ne(g))){s.needsLit=!0;let g=`_children${s.l}`;s.l+=1;let m=d.children.map((E)=>jo(E,o.preformatted)).join(bn(o.preformatted," "));n.set(g,o.preformatted?`() => html\`${m}\``:`() => html\`
|
|
170
181
|
${m}
|
|
171
|
-
\``),
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
182
|
+
\``),a.push(`:render="${g}"`),l=!0;let x=` ${a.join(" ")}`;return`<${i}${c} data-bind${x}></${i}>`}else if(Array.isArray(d.children))p=d.children.map((g)=>El(g,o,n,r,s)).join(bn(o.preformatted));if(new Set(["input","br","hr","img","meta","link"]).has(i))return`<${i}${c}${u}${f}>`;return`<${i}${c}${u}${f}>${p}</${i}>`}function Ro(e,t=!1){if(!e)return"";if(De(e.tagName))throw Error(`A tag chosen at creation is not supported inside a dynamic page's repeater yet (candidates: ${vt(e.tagName).join(", ")}). Move the item into a component, or give it a literal tagName.`);let n=e.tagName??"div",r=t||lt.has(n),s="";if(e.id)s+=` id="${e.id}"`;if(e.className)s+=` class="${ht(e.className)}"`;if(A(e.$props))for(let[l,c]of Object.entries(e.$props))if(he(c))s+=` .${l}="\${${jf(c.$ref)}}"`;else if(L(c))s+=` .${l}="${ht(c)}"`;else s+=` .${l}="\${${JSON.stringify(c)}}"`;if(A(e.attributes))for(let[l,c]of Object.entries(e.attributes)){if(L(c)){s+=` ${l}="${ht(c)}"`;continue}if(me(c)){let u=St(l,c);if(u!==null)s+=u===""?` ${l}`:` ${l}="${P(u)}"`;continue}s+=` ${l}="${P(String(c))}"`}if(A(e.style)){let l=[];for(let[c,u]of Object.entries(e.style)){if(c.startsWith(":")||c.startsWith(".")||c.startsWith("&")||c.startsWith("[")||c.startsWith("@"))continue;if(Nl(u))continue;let f=ge(c);if(L(String(u)))l.push(`${f}: ${ht(String(u))}`);else l.push(`${f}: ${u}`)}if(l.length>0)s+=` style="${l.join("; ")}"`}for(let[l,c]of Object.entries(e)){if(!l.startsWith("on")||l==="observedAttributes")continue;let u=l.slice(2).toLowerCase();if(he(c)){let f=cn(c.$ref);s+=` @${u}=\${(e) => { state.$map = { item, index }; on.${f}(e); }}`}else if(st(c)){let f=Ce(c.body,{eventParam:"e",statePrefix:"state"});s+=` @${u}=\${(e) => { state.$map = { item, index }; ${f} }}`}else if(be(c)){let f=ht(c.body);s+=` @${u}=\${(e) => { ${f}
|
|
183
|
+
}}`}else if(A(c)&&"$expression"in c){let f=pe(c.$expression,{eventParam:"e",statePrefix:"state"});s+=` @${u}=\${(e) => { state.$map = { item, index }; ${f}; }}`}}if(e.contentEditable)s+=` contenteditable="${e.contentEditable}"`;let o=n.includes("-")?Lt:"",i="";if(e.textContent!==void 0){let l=String(e.textContent);if(L(l))i=`${ht(l)}${o}`;else if(he(e.textContent))i=`\${state.${cn(e.textContent.$ref)}}${o}`;else i=P(l)}else if(e.innerHTML)i=ht(String(e.innerHTML));else if(ne(e.children))i=`
|
|
184
|
+
${Jl(e.children)}${o}
|
|
185
|
+
`;else if(Array.isArray(e.children)){let l=e.children.map((c)=>{let u=jo(c,r);return ne(c)||b(c)&&L(c)?`${u}${o}`:u});i=r?l.join(""):`
|
|
186
|
+
${l.join(`
|
|
175
187
|
`)}
|
|
176
|
-
`}if(new Set(["input","br","hr","img","meta","link"]).has(n))return`<${n}${s}>`;return`<${n}${s}>${i}</${n}>`}function
|
|
177
|
-
|
|
178
|
-
`)}function
|
|
179
|
-
`)}function
|
|
188
|
+
`}if(new Set(["input","br","hr","img","meta","link"]).has(n))return`<${n}${s}>`;return`<${n}${s}>${i}</${n}>`}function jo(e,t=!1){if(b(e))return L(e)?ht(e):P(e);if(se(e)||me(e))return P(String(e));if(ne(e))return Jl(e);return Ro(e,t)}function Jl(e){let{items:t}=e,n=he(t)?vo(t.$ref):JSON.stringify(t??[]),r=Ro(e.map);return`\${(${n} ?? []).map((item, index) => html\`${r}\`)}`}function ht(e){return e.replaceAll("$map.","")}function Af(e,t,n,r,s,o,i,a,l,c){let u=[],{needsLit:f}=a,p=t.length>0;u.push("// Generated by @jxsuite/compiler — do not edit manually");let d=["reactive","effect"];if(p)d.push("computed");if(u.push(`import { ${d.join(", ")} } from '@vue/reactivity';`),f)u.push("import { html, render } from 'lit-html';");for(let[h,g]of i){let m=c?c(h):h;u.push(`import { ${[...g].join(", ")} } from '${m}';`)}if(u.push("",dr()),o.length>0)u.push("",mr());u.push("","const state = reactive({");for(let[h,g]of e)u.push(` ${ze(h)}: ${JSON.stringify(g)},`);if(u.push("});",""),s.length>0){for(let h of s)u.push(h);u.push("")}if(t.length>0){for(let[h,g]of t)u.push(`${I("state",re(h))} = computed(${g});`);u.push("")}if(o.length>0){for(let h of o)u.push(h);u.push("")}if(n.length>0){u.push("const bind = {");for(let[h,g]of n)u.push(` ${ze(h)}: ${g},`);u.push("};")}else u.push("const bind = {};");if(u.push(""),r.length>0){u.push("const on = {");for(let[h,g]of r){let m=g.args??["state"],x=m.map((E)=>E==="state"?"state":"e").join(", ");u.push(` ${ze(h)}: (e) => { const fn = (${m.join(", ")}) => { ${g.body}
|
|
189
|
+
}; fn(${x}); },`)}u.push("};")}else u.push("const on = {};");if(u.push("","function hydrate(root) {"," root.querySelectorAll('[data-bind]').forEach(el => {"," [...el.attributes].forEach(a => {"," if (a.name.startsWith(':')) {"," const parts = a.name.slice(1).split('.');"," const key = a.value;"),f)u.push(" if (parts[0] === 'render') {"," effect(() => { render(bind[key](), el); });"," } else if (parts[0] === 'style' && parts.length > 1) {");else u.push(" if (parts[0] === 'style' && parts.length > 1) {");return u.push(" effect(() => { el.style[parts[1]] = bind[key](); });"," } else if (parts[0] === 'attr' && parts.length > 1) {"," effect(() => {",` const _t = ${Ft}(parts[1], bind[key]());`," if (_t === null) { el.removeAttribute(parts[1]); }"," else { el.setAttribute(parts[1], _t); }"," });"," } else {"," const prop = parts[0].replace(/-([a-z])/g, (_, c) => c.toUpperCase());"," effect(() => { el[prop] = bind[key](); });"," }"," } else if (a.name.startsWith('@')) {"," el.addEventListener(a.name.slice(1), on[a.value]);"," }"," });"," });","}","","hydrate(document);",""),u.join(`
|
|
190
|
+
`)}function Of(e,t,n,r){return[`// ${e}: ${t} (key: "${n}")`,"try {",` const _s = ${t}.getItem(${JSON.stringify(n)});`,` state.${e} = _s !== null ? JSON.parse(_s) : ${JSON.stringify(r)};`,`} catch { state.${e} = ${JSON.stringify(r)}; }`,"effect(() => {",` const v = state.${e};`," try {",` if (v === null) ${t}.removeItem(${JSON.stringify(n)});`,` else ${t}.setItem(${JSON.stringify(n)}, JSON.stringify(v));`," } catch {}","});"].join(`
|
|
191
|
+
`)}function Cf(e,t,n){return[`// ${e}: Cookie (name: "${t}")`,"{",` const _m = document.cookie.match(new RegExp("(?:^|; )${t}=([^;]*)"));`,` try { state.${e} = _m ? JSON.parse(decodeURIComponent(_m[1])) : ${JSON.stringify(n)}; }`,` catch { state.${e} = _m ? _m[1] : ${JSON.stringify(n)}; }`,"}"].join(`
|
|
192
|
+
`)}function Nl(e){return e===null||A(e)}function jf(e){if(e.startsWith("$map/")){let[t,...n]=qe(e.slice(5));return I(t??"",n.map((r)=>re(r)).join("/"))}if(e.startsWith("#/state/"))return I("state",e.slice(8));return I("state",e)}function vo(e){return ti("state",e.startsWith("#/state/")?e.slice(8):e)}function cn(e){return ni(e.startsWith("#/state/")?e.slice(8):e)}function Co(e,t,n){if(e.has(t))return;e.set(t,`() => ${I("state",n.startsWith("#/state/")?n.slice(8):n)}`)}var _o=j(()=>{yn();Vt();U();Rt()});function vf(e,t){if(t.routing==="prefix-except-default"&&e===t.defaultLocale)return"/";return`/${e.toLowerCase()}/`}function Al(e){if(e===null||e.locales.length<2)return"";let t=JSON.stringify(e.locales),n=JSON.stringify(e.defaultLocale),r=JSON.stringify(Object.fromEntries(e.locales.map((s)=>[s,vf(s,e)])));return`
|
|
180
193
|
// ─── Locale negotiation (RFC 4647 Lookup over Accept-Language) ───────────────
|
|
181
194
|
const JX_LOCALES = ${t}
|
|
182
195
|
const JX_DEFAULT_LOCALE = ${n}
|
|
@@ -245,24 +258,24 @@ app.use('/', async (c, next) => {
|
|
|
245
258
|
res.headers.set('Content-Language', locale)
|
|
246
259
|
c.res = res
|
|
247
260
|
})
|
|
248
|
-
`}function
|
|
249
|
-
`),
|
|
261
|
+
`}function Tf(e,t="/_jx/server"){return gi(e,t)}function Rf(e,t={}){let{adapter:n=null,mounts:r=[],connectors:s=[],i18n:o=null,base:i=""}=t,a=Tf(i,t.baseUrl);if(e.length===0&&r.length===0&&!n)return null;let l=e.map(({exportName:d,src:h})=>`import { ${d} } from '${h}'`).join(`
|
|
262
|
+
`),c=_f(r,s),u=e.map(({exportName:d})=>Pf(d,a)).join(`
|
|
250
263
|
`),f=n==="cloudflare-workers"||n==="cloudflare-pages"?`
|
|
251
264
|
app.all('*', (c) => c.env.ASSETS.fetch(c.req.raw))
|
|
252
265
|
`:`
|
|
253
|
-
`,p=
|
|
266
|
+
`,p=Al(o);return`// Generated by @jxsuite/compiler — do not edit manually
|
|
254
267
|
import { Hono } from 'hono'
|
|
255
|
-
${
|
|
268
|
+
${l}${c.imports}
|
|
256
269
|
|
|
257
270
|
const app = new Hono()
|
|
258
|
-
${p}${
|
|
271
|
+
${p}${c.routes}${u}
|
|
259
272
|
${f}
|
|
260
273
|
export default app
|
|
261
|
-
`}function
|
|
274
|
+
`}function _f(e,t){if(e.length===0)return{imports:"",routes:""};let n=e.toSorted((o,i)=>o.order-i.order),r=[];for(let o of n)r.push(`import { ${o.className} } from '${o.module}'`);for(let o of t)r.push(`import { ${o.className} } from '${o.module}'`);let s=["// Extension server mounts (specs/extensions.md §11): one shared ctx, mounted in order.","const jxCtx = {}",`const jxConnectors = { ${t.map((o)=>`${JSON.stringify(o.provider)}: ${o.className}`).join(", ")} }`];for(let[o,i]of n.entries()){let a=JSON.stringify(i.options);s.push(`const jxMount${o} = await ${i.className}.mount({ ...${a}, connectors: jxConnectors }, jxCtx)`,`app.all('${i.basePath}/*', (c) => jxMount${o}(c.req.raw, c.env))`,`app.all('${i.basePath}', (c) => jxMount${o}(c.req.raw, c.env))`)}return{imports:`
|
|
262
275
|
${r.join(`
|
|
263
276
|
`)}`,routes:`${s.join(`
|
|
264
277
|
`)}
|
|
265
|
-
`}}function
|
|
278
|
+
`}}function Pf(e,t){return`
|
|
266
279
|
app.post('${t}/${e}', async (c) => {
|
|
267
280
|
const args = await c.req.json().catch(() => ({}))
|
|
268
281
|
try {
|
|
@@ -270,14 +283,14 @@ app.post('${t}/${e}', async (c) => {
|
|
|
270
283
|
} catch (e) {
|
|
271
284
|
return c.json({ ok: false, error: e?.message ?? 'Server error' }, 500)
|
|
272
285
|
}
|
|
273
|
-
})`}var
|
|
274
|
-
`)}function
|
|
275
|
-
`):e.body??"").includes("await ")}var
|
|
286
|
+
})`}var Ol=j(()=>{Ss()});function jl(e){let t=Ko(e,e.title??"a class"),n=t.title;if(!n)throw Error("compileClassJson: missing title (class name)");let r=If(t.extends),s=t.$defs,o=s?.fields??{},i=s?.constructor,a=kf(i)?i:void 0,l=s?.methods??{},c=["// Generated by @jxsuite/compiler from .class.json — do not edit manually"];if(t.$id)c.push(`// Source: ${t.$id}`);c.push("");let u=r!=="Object"?` extends ${r}`:"";c.push(`class ${n}${u} {`);for(let[f,p]of Object.entries(o)){if(p.scope!=="static")continue;let d=p.identifier??f,h=p.access==="private"?"#":"",g=p.initializer!==void 0?JSON.stringify(p.initializer):p.default!==void 0?JSON.stringify(p.default):"null";c.push(` static ${h}${d} = ${g};`)}for(let[f,p]of Object.entries(o)){if(p.scope==="static")continue;if(p.access!=="private")continue;let d=p.identifier??f;c.push(` #${d};`)}if(Object.keys(o).length>0)c.push("");if(c.push(" constructor(config = {}) {"),a?.superCall||r!=="Object"){let f=a?.superCall?.arguments?a.superCall.arguments.join(", "):"";c.push(` super(${f});`)}for(let[f,p]of Object.entries(o)){if(p.scope==="static")continue;let d=p.identifier??f,h=p.access==="private"?"#":"",g=p.initializer!==void 0?JSON.stringify(p.initializer):p.default!==void 0?JSON.stringify(p.default):"null";c.push(` this.${h}${d} = config.${d} !== undefined ? config.${d} : ${g};`)}if(a?.body){let f=Array.isArray(a.body)?a.body:[a.body];for(let p of f)c.push(` ${p}`)}c.push(" }");for(let[f,p]of Object.entries(l)){let d=p.identifier??f,h=p.scope==="static",m=p.access==="private"?"#":"",x=h?"static ":"",E=p.returnType?.$ref?.includes("Promise")||Mf(p)?"async ":"",O=Cl(p.parameters??[]),N=Df(p.body);if(c.push(""),p.role==="accessor"){if(p.getter)c.push(` ${x}get ${m}${d}() {`,` ${p.getter.body}`," }");if(p.setter){let C=Cl(p.setter.parameters??[]);c.push(` ${x}set ${m}${d}(${C}) {`,` ${p.setter.body}`," }")}}else{c.push(` ${x}${E}${m}${d}(${O}) {`);for(let C of N)c.push(` ${C}`);c.push(" }")}}return c.push("}","",`export { ${n} };`,`export default ${n};`,""),c.join(`
|
|
287
|
+
`)}function kf(e){return typeof e==="object"}function If(e){if(!e)return"Object";if(b(e))return e;if(e.$ref){let t=e.$ref.match(/([A-Za-z0-9_]+)\.class\.json/);return t?t[1]:"Object"}return"Object"}function Cl(e){return e.map((t)=>{if(t.$ref)return t.$ref.split("/").pop();let n=t.identifier??t.name;return b(n)?n:"arg"}).join(", ")}function Df(e){if(!e)return[""];return Array.isArray(e)?e:[e]}function Mf(e){return(Array.isArray(e.body)?e.body.join(`
|
|
288
|
+
`):e.body??"").includes("await ")}var vl=j(()=>{qn();U()});import{readFileSync as Ff}from"node:fs";async function Lf(e,t={}){let{title:n="Jx App",reactivitySrc:r=lr,litHtmlSrc:s=cr,projectStyle:o=null}=t,i;if(b(e)){let l=Ff(e,"utf8");if(Dn(e))i=Mn(l,e);else{let{extname:c}=await import("node:path"),u=c(e).toLowerCase(),f=t.formats?.byExtension(u,"parse");if(!f){await Promise.resolve().then(() => No());throw Kr(e,u)}i=await f.parseDocument(l)}}else i=e;if(i=fn(i,b(e)?e:"the document"),Mo(i)){await Promise.resolve().then(() => vl());let c=jl(i),u=b(e)?e.replace(/\.class\.json$/,".js"):`${i.title}.js`;return{files:[{content:c,path:u}],html:""}}if(!ur(i))return Sl(i,{litHtmlSrc:s,projectStyle:o,reactivitySrc:r,...Tl(t),title:n});if(i.tagName&&i.tagName.includes("-")){let{tagName:l}=i,c=gr(l),f={content:Hn(i,c,[],t.rewriteSrc,null,t.serverBaseUrl),path:`${l}.js`,tagName:l},p=Wt(i,i.$media??{},o),d=`<!DOCTYPE html>
|
|
276
289
|
<html lang="en">
|
|
277
290
|
<head>
|
|
278
291
|
<meta charset="utf-8">
|
|
279
292
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
280
|
-
<title>${
|
|
293
|
+
<title>${P(n)}</title>
|
|
281
294
|
<script type="importmap">
|
|
282
295
|
{
|
|
283
296
|
"imports": {
|
|
@@ -289,7 +302,7 @@ app.post('${t}/${e}', async (c) => {
|
|
|
289
302
|
${p}
|
|
290
303
|
</head>
|
|
291
304
|
<body>
|
|
292
|
-
<${
|
|
293
|
-
<script type="module" src="./${
|
|
305
|
+
<${l}></${l}>
|
|
306
|
+
<script type="module" src="./${l}.js"></script>
|
|
294
307
|
</body>
|
|
295
|
-
</html>`;return{files:[f],html:d}}let
|
|
308
|
+
</html>`;return{files:[f],html:d}}let a={litHtmlSrc:s,projectStyle:o,reactivitySrc:r,...Tl(t),title:n};if(t.serverBaseUrl!==void 0)a.serverBaseUrl=t.serverBaseUrl;return To(i,a)}function Tl(e){let t={};if(e.prePaintScheme===!1)t.prePaintScheme=!1;if(e.rewriteSrc)t.rewriteSrc=e.rewriteSrc;return t}async function Wh(e,t){let n=await Lf(e),{writeFileSync:r,mkdirSync:s}=await import("node:fs"),{dirname:o,join:i}=await import("node:path");if(t){r(t,n.html,"utf8"),console.error(`Written to ${t}`);let a=o(t);for(let l of n.files){let c=i(a,l.path);s(o(c),{recursive:!0}),r(c,l.content,"utf8"),console.error(`Written to ${c}`)}}else process.stdout.write(n.html)}var Wf=j(()=>{qn();Vt();Zr();wl();_o();U();Ur();Vt();Ol();Zr();_o()});Wf();export{Lf as compile,To as compileClient,gl as compileElement,Sf as compileElementPage,Rf as compileSiteServer,ur as isDynamic,Wh as runCli};
|