@hyperfixi/engine 3.3.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +921 -0
  2. package/LICENSE +20 -0
  3. package/README.md +272 -0
  4. package/dist/additions.d.ts +30 -0
  5. package/dist/ast.d.ts +277 -0
  6. package/dist/commands/animation.d.ts +34 -0
  7. package/dist/commands/control.d.ts +36 -0
  8. package/dist/commands/dom-more.d.ts +68 -0
  9. package/dist/commands/dom.d.ts +50 -0
  10. package/dist/commands/events.d.ts +25 -0
  11. package/dist/commands/js.d.ts +22 -0
  12. package/dist/commands/loops.d.ts +34 -0
  13. package/dist/commands/misc.d.ts +36 -0
  14. package/dist/commands/morph.d.ts +18 -0
  15. package/dist/commands/pick.d.ts +22 -0
  16. package/dist/commands/platform.d.ts +44 -0
  17. package/dist/commands/setters.d.ts +38 -0
  18. package/dist/common.js +3020 -0
  19. package/dist/common.min.js +17 -0
  20. package/dist/conversions.d.ts +6 -0
  21. package/dist/cookies.d.ts +10 -0
  22. package/dist/core.js +2190 -0
  23. package/dist/core.min.js +17 -0
  24. package/dist/engine.d.ts +79 -0
  25. package/dist/everything.d.ts +2 -0
  26. package/dist/expressions-extra.d.ts +2 -0
  27. package/dist/expressions.d.ts +51 -0
  28. package/dist/features.d.ts +47 -0
  29. package/dist/full.js +5673 -0
  30. package/dist/full.min.js +19 -0
  31. package/dist/hyperfixi-hs.dev.js +5676 -0
  32. package/dist/hyperfixi-hs.js +19 -0
  33. package/dist/index.d.ts +39 -0
  34. package/dist/index.js +5737 -0
  35. package/dist/live-templates.d.ts +3 -0
  36. package/dist/minimal.js +2580 -0
  37. package/dist/minimal.min.js +17 -0
  38. package/dist/on.d.ts +39 -0
  39. package/dist/parser.d.ts +97 -0
  40. package/dist/reactivity.d.ts +30 -0
  41. package/dist/runtime.d.ts +160 -0
  42. package/dist/statements.d.ts +24 -0
  43. package/dist/templates.d.ts +61 -0
  44. package/dist/tokenizer.d.ts +25 -0
  45. package/dist/util.d.ts +34 -0
  46. package/package.json +60 -0
@@ -0,0 +1,19 @@
1
+ "use strict";(()=>{var J=t=>typeof t=="object"&&t!==null&&"then"in t&&typeof t.then=="function",E=(t,e)=>J(t)?t.then(e):e(t),T=(t,e)=>t.some(J)?Promise.all(t).then(e):e(t),W=t=>t!=null,H=t=>typeof t=="function",w=(t,e)=>W(t)?t[e]:void 0,he=(t,e,n)=>{W(t)&&(t[e]=n)},x=t=>t instanceof Element,Q=t=>H(w(t,"addEventListener")),K=t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,Symbol.iterator)=="function",N=t=>t;var Z={attributes:"_, script, data-script",defaultTransition:"all 500ms ease-in",disableSelector:"[disable-scripting], [data-disable-scripting]",hideShowStrategies:{},fetchThrowsOn:[/^4/,/^5/]},ge=Object.assign(Object.create(null),{String:t=>String(t),Int:t=>parseInt(String(t)),Float:t=>parseFloat(String(t)),Number:t=>Number(t),Fragment:t=>ve(t)}),Me=[],z={process(t){},enter(t){}},Ke=new WeakMap,ce=t=>Ke.get(t),tn=t=>Ke.delete(t);function V(t){let e=Ke.get(t);return e||Ke.set(t,e={}),e}var P={tracking:!1,readGlobal(t){},readElement(t,e){},readProperty(t,e){},readAttribute(t,e){},readQuery(t){},wroteGlobal(t){},wroteElement(t,e){},wroteProperty(t){},stop(t){}},Je=t=>(P.tracking&&typeof t=="object"&&t!==null&&P.readProperty(t,"__mutation__"),t),lo={Array:["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"],Set:["add","delete","clear"],Map:["set","delete","clear"]};function Ye(t,e){let n=w(w(t,"constructor"),"name");typeof n=="string"&&lo[n]?.includes(e)&&P.wroteProperty(t)}var Et=t=>{if(t instanceof Node){let e=t.getRootNode();if(e instanceof Document||e instanceof ShadowRoot)return e}return document},fo=t=>t.replace(/[:&()[\]/]/g,e=>"\\"+e);function bt(t,e){return P.tracking&&P.readQuery(t),t.querySelectorAll(e)}var ne=class{constructor(e,n,r=!1){this.raw=e;this.relativeTo=n;this.escape=r}get css(){return this.escape?fo(this.raw):this.raw}get className(){return this.raw.slice(1)}get length(){return this.select().length}contains(e){for(let n of this)if(n.contains(e))return!0;return!1}select(){return bt(Et(this.relativeTo),this.css)}[Symbol.iterator](){return this.select()[Symbol.iterator]()}},Ne=t=>t instanceof ne||Array.isArray(t)||t instanceof NodeList||t instanceof HTMLCollection||t instanceof FileList;function O(t,e){if(Ne(t))for(let n of t)e(n);else e(t)}var Xe=(t,e)=>{if(t==null)return;let n=e(t);if(n!==void 0)return n;if(Ne(t))return Array.from(t,e)},ue=(t,e)=>(P.tracking&&P.readProperty(t,e),Xe(t,n=>w(n,e))),we=(t,e)=>(P.tracking&&P.readAttribute(t,e),Xe(t,n=>x(n)?n.getAttribute(e):void 0)),Ze=(t,e)=>Xe(t,n=>w(w(n,"style"),e)),et=(t,e)=>Xe(t,n=>x(n)?getComputedStyle(n).getPropertyValue(e):void 0),qe=(t,e,n)=>O(t,r=>{x(r)&&(n==null?r.removeAttribute(e):r.setAttribute(e,String(n)))}),tt=(t,e,n)=>O(t,r=>he(w(r,"style"),e,n)),nt=(t,e,n)=>O(t,r=>{he(r,e,n),P.wroteProperty(r)});function F(t,e){if(t==null)throw new Error(`'${e}' is null`)}var _e=t=>t==null||w(t,"length")===0;function nn(t){if(t==null)return!1;if(Ne(t)){for(let e of t)return!0;return!1}return!0}function rt(t,e,n){if(t==null&&n||Object.prototype.toString.call(t).slice(8,-1)===e)return!0;let r=w(globalThis,e);return H(r)&&t instanceof r}function ot(t,e){for(let r of Me){let o=r(e,t);if(o!==void 0)return o}if(t==null)return null;let n=ge[e];if(n)return n(t);throw new Error("Unknown conversion : "+e)}function ve(t){let e=document.createDocumentFragment();return t==null?e.append("null"):O(t,n=>{if(n instanceof Node)e.append(n);else{let r=document.createElement("template");r.innerHTML=n===null?"":String(n),e.append(r.content)}}),e}function Ee(t,e){O(t,n=>{if(!x(n))return;let r=n.parentElement;n.replaceWith(e instanceof Node?e.cloneNode(!0):ve(e)),r&&z.process(r)})}function _(t,e,n={},r){if(!Q(t))return!0;n.sender=r;let o=Object.assign(new Event(e,{bubbles:!0,cancelable:!0,composed:!0}),{detail:n});return t.dispatchEvent(o)}var Te=(t,e="elementScope")=>(V(t).scopes??={})[e]??={},xt=Object.create(null,{selection:{get:()=>getSelection()?.toString(),enumerable:!0},clipboard:{get:()=>navigator.clipboard.readText(),set:t=>void navigator.clipboard.writeText(String(t))}});function B(t,e,n,r){let o=w(r,"detail"),i=Object.create(xt);for(let s=x(t)?t:null;s;s=s.parentElement)Object.assign(i,ce(s)?.features);return{meta:{owner:t,feature:e},locals:i,me:n,you:void 0,result:void 0,beingTested:null,event:r,target:w(r,"target")??null,detail:o??null,sender:w(o,"sender")??null,body:typeof document>"u"?null:document.body}}function kt(t,e,n,r){let o=t==null||t===document.body||!W(t)?globalThis:V(t).features??={};for(let i of e)w(o,i)==null&&he(o,i,{}),o=w(o,i);he(o,n,r)}var vt=["meta","it","result","locals","event","target","detail","sender","body"],Fe=t=>{let e=t.meta.owner,n=t.meta.feature?.behavior;return W(e)?Te(e,n?n+"Scope":void 0):{}};function rn(t,e,n){let r=x(n)?n:x(e.meta.owner)?e.meta.owner:null;for(;r;){let o=ce(r)?.scopes?.elementScope;if(o&&t in o)return{value:o[t],element:r};let i=r.getAttribute("dom-scope");if(i==="isolated")break;let s=i?.match(/^closest\s+(.+)/),c=i?.match(/^parent\s+of\s+(.+)/);s?r=r.parentElement?.closest(s[1])??null:c?r=r.closest(c[1])?.parentElement??null:r=r.parentElement}return{value:void 0,element:null}}function le(t,e,n,r){if(t==="me"||t==="my"||t==="I")return e.me;if(t==="it"||t==="its")return e.beingTested??e.result;if(t==="result")return e.result;if(t==="you"||t==="your"||t==="yourself")return e.you;let o=e.meta.owner,i=()=>(P.tracking&&P.readGlobal(t),Je(w(globalThis,t)));if(n==="global")return i();if(n==="element")return P.tracking&&P.readElement(t,o),Je(Fe(e)[t]);if(n==="inherited"){let u=rn(t,e,r);return P.tracking&&P.readElement(t,u.element??(x(r)?r:o)),Je(u.value)}let s=e.meta.context;if(s!=null){let u=w(s,t);if(u!==void 0)return u;let l=w(w(s,"detail"),t);if(l!==void 0)return l}let c=vt.includes(t)?w(e,t):e.locals[t];if(c!==void 0)return c;let a=Fe(e)[t];return a!==void 0?(P.tracking&&P.readElement(t,o),Je(a)):i()}function st(t,e,n,r,o){if(n==="global")he(globalThis,t,r),P.wroteGlobal(t);else if(n==="element")Fe(e)[t]=r,P.wroteElement(t,e.meta.owner);else if(n==="inherited"){let s=rn(t,e,o).element??(x(o)?o:e.meta.owner);W(s)&&(Te(s)[t]=r),P.wroteElement(t,s)}else!vt.includes(t)&&e.locals[t]!==void 0?e.locals[t]=r:Fe(e)[t]!==void 0?(Fe(e)[t]=r,P.wroteElement(t,e.meta.owner)):vt.includes(t)?he(e,t,r):e.locals[t]=r}function j(t,e,n=0){for(let r=n;r<t.length;r++){let o=t[r].run(e);if(J(o))return o.then(i=>i||j(t,e,r+1));if(o)return o}}function ye(t,e){try{let n=t();return J(n)?n.then(void 0,e):n}catch(n){return e(n)}}function it(t,e,n){let{errorSymbol:r,errorHandler:o,finallyHandler:i}=n,s=()=>ye(()=>E(j(e,t),a=>{let u=w(a,"k");if(u==="break"||u==="continue")throw new Error(`Command \`${u}\` cannot be used outside of a \`repeat\` loop.`);return re(a)}),a=>{if(!o||!r)throw a;return t.locals[r]=a,j(o,t)});if(!i)return s();let c=()=>ye(()=>E(j(i,t),()=>{}),a=>console.error(" Exception in finally block: ",a));return ye(()=>E(s(),a=>E(c(),()=>re(a))),a=>E(c(),()=>{throw a}))}var re=t=>{let e=w(t,"k");if(e==="return")return{k:"return",value:w(t,"value")};if(e==="break"||e==="continue")return{k:e}};function at(t,e,n,r,o){let i=[];O(t,a=>i.push(a));let s=i.map(a=>(n.beingTested=a,e.ev(n)));n.beingTested=null;let c=a=>{n.result=i.filter((u,l)=>((a[l]?r:o)(u),a[l]))};return s.some(J)?Promise.all(s).then(c):c(s)}var on=new Set("+ - * / . .. \\ : % | ! ? # & $ ; , ( ) < > <= >= == === != !== { } [ ] = ~ ^".split(" ")),sn={b:"\b",f:"\f",n:`
2
+ `,r:"\r",t:" ",v:"\v"},oe=t=>t>="a"&&t<="z"||t>="A"&&t<="Z",se=t=>t>="0"&&t<="9",Nt=t=>t===" "||t===" "||t==="\r"||t===`
3
+ `,Tt=t=>oe(t)||se(t)||t==="-"||t==="_"||t===":",Ct=t=>oe(t)||se(t)||t==="_"||t==="$";function de(t,e=!1){let n=[],r=0,o=0,i=1,s="<START>",c=0,a=()=>t.charAt(r),u=b=>t.charAt(r+b),l=()=>(s=t.charAt(r++),s===`
4
+ `?(i++,o=0):o++,s),m=b=>({type:b,value:"",start:r,end:r+1,line:i,column:o}),f=(b,k)=>(b.value=k,b.end=r,b),p=b=>{let k="";for(;a()&&b(a());)k+=l();return k},d=()=>e&&c===0,y=()=>oe(s)||se(s)||")\"'`}]".includes(s),g=(b,k)=>{let L=m(b),G=l();if(a()==="{"){if(L.template=!0,G+=l(),G+=p(pe=>pe!=="}"),a()!=="}")throw new Error("Unterminated "+(k?"class":"id")+" reference");let X=l();k&&(G+=X)}else if(k)for(;Tt(a())||a()==="\\";)a()==="\\"&&l(),G+=l();else G+=p(Tt);return f(L,G)},v=()=>{let b=m("STRING"),k=l();b.template=k==="`";let L="";for(;a()&&a()!==k;)if(a()==="\\"){l();let G=l();if(G in sn)L+=sn[G];else if(b.template&&G==="$")L+="\\$";else if(G==="x"){let X=a()&&u(1)?parseInt(l()+l(),16):NaN;if(Number.isNaN(X))throw new Error(`Invalid hexadecimal escape at [Line: ${b.line}, Column: ${b.column}]`);L+=String.fromCharCode(X)}else L+=G}else L+=l();if(a()!==k)throw new Error(`Unterminated string at [Line: ${b.line}, Column: ${b.column}]`);return l(),f(b,L)},C=()=>{let b=m("IDENTIFIER"),k=l()+p(Ct);return a()==="!"&&k==="beep"&&(k+=l()),f(b,k)},S=()=>{let b=m("IDENTIFIER"),k=l(),L=k==="\\";for(L&&(k="");(Ct(a())||"\\{}".includes(a()||" "))&&!(a()==="$"&&!L);)a()==="\\"?(L=!0,l()):(L=!1,k+=l());return f(b,k)},R=()=>{let b=m("NUMBER"),k=l()+p(se);return a()==="."&&se(u(1))&&(k+=l()),k+=p(se),(a()==="e"||a()==="E")&&(se(u(1))?k+=l():u(1)==="-"&&(k+=l()+l())),f(b,k+p(se))},I=()=>{let b=m("OP");b.op=!0;let k=l();for(;a()&&on.has(k+a());)k+=l();return f(b,k)},A=()=>{let b=m("ATTRIBUTE_REF"),k=l();return k==="["?(k+=p(L=>L!=="]"),a()==="]"&&(k+=l())):(k+=p(Tt),a()==="="&&(k+=l(),a()==='"'||a()==="'"?k+=v().value:Ct(a())&&(k+=C().value))),f(b,k)},M=()=>{let b=n.at(-1);return b?b.type==="IDENTIFIER"||b.type==="CLASS_REF"||b.type==="ID_REF"?!1:!(b.op&&(b.value===">"||b.value===")")):!0},q=()=>{let b=a(),k=u(2);return(b==="-"||b==="/")&&u(1)===b&&(Nt(k)||k===""||k===b)};for(;r<t.length;){let b=a(),k=u(1);if(q())p(L=>L!=="\r"&&L!==`
5
+ `),l();else if(Nt(b))n.push(f(m("WHITESPACE"),p(Nt)));else if(!y()&&b==="."&&(oe(k)||k==="{"||k==="-"))n.push(g("CLASS_REF",!0));else if(!y()&&b==="#"&&(oe(k)||k==="{"))n.push(g("ID_REF",!1));else if(b==="@"||b==="["&&k==="@")n.push(A());else if(b==="*"&&oe(k)){let L=m("STYLE_REF");n.push(f(L,l()+p(G=>oe(G)||G==="-")))}else if(d()&&(oe(b)||b==="\\"))n.push(S());else if(!d()&&(oe(b)||b==="_"||b==="$"))n.push(C());else if(se(b))n.push(R());else if(!d()&&(b==='"'||b==="`"))n.push(v());else if(!d()&&b==="'")n.push(M()?v():I());else if(on.has(b))s==="$"&&b==="{"&&c++,b==="}"&&c--,n.push(I());else if(d()||b==="`"){let L=m("RESERVED");n.push(f(L,l()))}else throw new Error("Unknown token: "+b+" ")}return n}function h(t){return t.match("the"),mo(t)}function mo(t){let e=cn(t),n,r=()=>t.match("and")??t.match("or");for(let o=r();o;o=r())n??=o.value,n!==o.value&&t.err("You must parenthesize logical operations with different operators"),e=po(o.value,e,cn(t));return e}function po(t,e,n){let r=t==="or";return{type:"logicalOperator",operator:t,left:e,right:n,start:e.start,end:n.end,ev:o=>E(e.ev(o),i=>!!i===r?i:n.ev(o))}}var ho={"+":(t,e)=>Array.isArray(t)?t.concat(e):N(t)+N(e),"-":(t,e)=>N(t)-N(e),"*":(t,e)=>N(t)*N(e),"/":(t,e)=>N(t)/N(e),mod:(t,e)=>N(t)%N(e)};function St(t){let e=Rt(t),n,r=()=>t.matchAnyOp("+","-","*","/")??t.match("mod");for(let o=r();o;o=r()){n??=o.value,n!==o.value&&t.err("You must parenthesize math operations with different operators");let i=e,s=Rt(t),c=ho[o.value];e={type:"mathOperator",operator:o.value,left:i,right:s,start:i.start,end:s.end,ev:u=>T([i.ev(u),s.ev(u)],([l,m])=>c(l,m))}}return e}function Rt(t){let e=$(t);for(let n=!0;n;){n=!1;for(let r of t.g.collections){let o=r(t,e);if(o){e=o,n=!0;break}}}return e}function $(t){t.match("the");let e=t.pos();if(t.match("not"))return Ce(t,"logicalNot",e,$(t),n=>!n);if(t.match("no"))return Ce(t,"noExpression",e,Rt(t),_e);for(let n of t.g.unaries){let r=n(t);if(r)return ee(t,r)}return go(t)}function Ce(t,e,n,r,o,i=e!=="negativeNumber"){let s={type:e,root:r,start:n,end:t.endPos(),ev:c=>E(r.ev(c),a=>o(a,c))};return i?ee(t,s):s}var yo="em ex cap ch ic rem lh rlh vw vh vi vb vmin vmax cm mm Q pc pt px".split(" ");function go(t){let e=dn(t),n=t.matchAny(...yo)??t.matchOp("%");if(n)return an(t,"stringPostfixExpression",e,n.value);let r=t.matchAny("s","seconds")?1e3:t.matchAny("ms","milliseconds")?1:0;if(r)return an(t,"timeExpression",e,r);for(let o of t.g.postfixes){let i=o(t,e);if(i)return i}return e}function an(t,e,n,r){let o=s=>typeof r=="number"?N(s)*r:`${s}${r}`,i={type:e,root:n,suffix:r,start:n.start,end:t.endPos(),ev:s=>E(n.ev(s),o)};return n.stat&&(i.stat=()=>o(De(n))),i}function dn(t){let e=t.pos();return t.matchOp("-")?Ce(t,"negativeNumber",e,dn(t),n=>-N(n)):ut(t)}function ut(t){let e=At(t);return e?ee(t,e):t.err("Unexpected value: "+t.cur().value)}function ie(t){return t.match("the"),Ot(t,ut(t))}function Ot(t,e){let n=je(e);return n.put||t.err(`A target expression must be writable. The expression type '${n.type}' is not.`),n}function je(t){let e=t;for(;e.type==="parenthesized"&&"expr"in e&&wo(e.expr);)e=e.expr;return e}var wo=t=>H(w(t,"ev"));function De(t){if(t.stat)return t.stat();throw new Error("This expression cannot be evaluated statically: "+t.type)}function vo(t){let e=t.matchAnyOp("<",">","<=",">=","==","===","!=","!==");if(e)return{operator:e.value,right:!0,isType:!1};let n=(a,u=!0,l=!1)=>({operator:a,right:u,isType:l}),r=()=>t.match("equal")&&t.match("to"),o=(a,u)=>(t.req("than"),t.match("or")?(t.req("equal"),t.req("to"),n(u)):n(a));if(t.match("is")||t.match("am")){let a=!!t.match("not"),u=a?"not ":"";return t.match("in")?n(u+"in"):t.match("a")||t.match("an")?n(u+"a",!1,!0):t.match("empty")?n(u+"empty",!1):t.match("between")?n(u+"between"):!a&&t.match("less")?o("<","<="):!a&&t.match("greater")?o(">",">="):t.match("really")?(r(),n(a?"!==":"===")):t.match("equal")?(t.match("to"),n(a?"!=":"==")):n(a?"is not":"is")}if(t.match("equals"))return n("==");if(t.match("really"))return t.req("equals"),n("===");if(t.matchAny("exist","exists"))return n("exist",!1);let i=!!t.matchAny("do","does");i&&t.req("not");let s=i?"not ":"",c=(a,u)=>t.match(a)??(i&&a!=="match"&&a!=="contain"?void 0:t.match(u));if(c("match","matches"))return n(s+"match");if(c("contain","contains"))return n(s+"contain");if(i&&t.match("exist"))return n("not exist",!1);if(c("include","includes"))return n(s+"include");if(t.match(i?"start":"starts"))return t.req("with"),n(s+"start with");if(t.match(i?"end":"ends"))return t.req("with"),n(s+"end with");if(c("precede","precedes"))return n(s+"precede");if(c("follow","follows"))return n(s+"follow");i&&t.expected("matches","contains","starts with","ends with","precede","follow")}function cn(t){let e=St(t),n=vo(t);if(!n)return e;let{operator:r}=n,o,i=!0,s,c;n.isType?(o=t.reqType("IDENTIFIER").value,i=!t.matchOp("!")):n.right&&(s=St(t),r.endsWith("match")&&(c=s.css));let a;r.endsWith("between")&&(t.req("and"),a=St(t));let u=!1;t.match("ignoring")&&(t.req("case"),u=!0);let l=p=>u&&typeof p=="string"?p.toLowerCase():p,m=s?.type==="symbol"&&"scope"in s&&s.scope==="local"&&s.name!=="undefined"&&s.name!=="null"?s.name:void 0;return{type:"comparisonOperator",operator:r,left:e,right:s,right2:a,typeName:o,ignoringCase:u,start:e.start,end:t.endPos(),ev:p=>T([e.ev(p),c??s?.ev(p),a?.ev(p)],([d,y,g])=>{if(o){let v=rt(d,o,i);return r==="a"?v:!v}if(m&&y===void 0&&(r==="is"||r==="is not")){let v=!!ue(d,m);return r==="is"?v:!v}return fn(r,l(d),l(y),g)})}}function un(t,e){let n=w(t,"contains")??w(t,"includes");if(!H(n))throw new Error("The value does not have a contains or includes method on it");return!!Reflect.apply(n,t,[e])}function Eo(t,e){let n=w(t,"match")??w(t,"matches");if(!H(n))throw new Error("The value does not have a match or matches method on it");return!!Reflect.apply(n,t,[e])}var ln=(t,e,n)=>t instanceof Node&&e instanceof Node&&(t.compareDocumentPosition(e)&n)!==0;function fn(t,e,n,r){if(t==="not between")return N(e)<N(n)||N(e)>N(r);if(t.startsWith("not "))return!fn(t.slice(4),e,n,r);switch(t){case"is":case"==":return e==n;case"is not":case"!=":return e!=n;case"===":return e===n;case"!==":return e!==n;case"<":return N(e)<N(n);case">":return N(e)>N(n);case"<=":return N(e)<=N(n);case">=":return N(e)>=N(n);case"match":return e!=null&&Eo(e,n);case"in":return n!=null&&un(n,e);case"contain":case"include":return e!=null&&un(e,n);case"start with":return e!=null&&String(e).startsWith(String(n));case"end with":return e!=null&&String(e).endsWith(String(n));case"between":return N(e)>=N(n)&&N(e)<=N(r);case"precede":return ln(e,n,Node.DOCUMENT_POSITION_FOLLOWING);case"follow":return ln(e,n,Node.DOCUMENT_POSITION_PRECEDING);case"empty":return _e(e);case"exist":return nn(e)}throw new Error("Unknown comparison : "+t)}function At(t){let e=t.cur();switch(e.type){case"NUMBER":return t.consume(),Pt("number",parseFloat(e.value),e);case"STRING":return ko(t);case"ID_REF":return To(t);case"CLASS_REF":return te(t);case"ATTRIBUTE_REF":return Y(t);case"STYLE_REF":return hn(t)}if(e.op){if(e.value==="(")return bo(t);if(e.value==="[")return No(t);if(e.value==="{")return Ge(t);if(e.value==="<")return Co(t)}let n=t.match("true")??t.match("false");if(n)return Pt("boolean",n.value==="true",n);let r=t.match("null");if(r)return Pt("null",null,r);for(let o of t.g.leaves){let i=o(t);if(i)return i}return Ft(t)}function Pt(t,e,n){return{type:t,value:e,start:n.start,end:n.end,ev:()=>e,stat:()=>e}}function bo(t){let e=t.pos();t.consume();let n=t.withoutFollows(()=>h(t));return t.reqOp(")"),{type:"parenthesized",expr:n,start:e,end:t.endPos(),ev:r=>n.ev(r)}}var xo=(t,e)=>T(t.map(n=>typeof n=="string"?n:n.ev(e)),n=>n.map(r=>r===void 0?"":`${r}`).join(""));function mn(t,e){let n=t.child(de(e,!0),e),r=[],o="";do{o+=n.lastWs();let i=n.cur();if(i.value==="$"){n.consume();let s=n.matchOp("{");r.push(o,h(n)),o="",s&&n.reqOp("}")}else i.value==="\\"?(n.consume(),n.consume()):n.hasMore()&&(o+=n.consume().value)}while(n.hasMore());return r.push(o+n.lastWs()),r}function ko(t){let e=t.consume(),n=e.value,r={type:"string",value:n,start:e.start,end:e.end,ev:()=>n};if(e.template){let o=r.parts=mn(t,n);r.ev=i=>xo(o,i)}else r.stat=()=>n;return r}function No(t){let e=t.pos();t.consume();let n=[];if(!t.matchOp("]")){do n.push(h(t));while(t.matchOp(","));t.reqOp("]")}return{type:"arrayLiteral",values:n,start:e,end:t.endPos(),ev:r=>T(n.map(o=>o.ev(r)),o=>o)}}function Ge(t){let e=t.pos();t.consume();let n=[],r=[],o=()=>t.cur().op&&t.cur().value==="}";if(!t.matchOp("}")){do{let i=t.matchType("STRING");if(i)n.push(i.value);else if(t.matchOp("["))n.push(h(t)),t.reqOp("]");else{let s="";for(let c=t.matchType("IDENTIFIER")??t.matchOp("-");c;c=t.matchType("IDENTIFIER")??t.matchOp("-"))s+=c.value;n.push(s)}t.reqOp(":"),r.push(h(t))}while(t.matchOp(",")&&!o());t.reqOp("}")}return{type:"objectLiteral",keys:n,values:r,start:e,end:t.endPos(),ev:i=>T([...n.map(s=>typeof s=="string"?s:s.ev(i)),...r.map(s=>s.ev(i))],s=>Object.fromEntries(n.map((c,a)=>[String(s[a]),s[n.length+a]])))}}function lt(t){if(!t.matchOp("("))return;let e=t.last.start,n=He(t,e);return t.reqOp(")"),n.end=t.endPos(),n}function He(t,e=t.pos()){let n=[],r=[];if(t.cur().type==="IDENTIFIER")do n.push(t.reqType("IDENTIFIER").value),t.reqOp(":"),r.push(h(t));while(t.matchOp(","));return{type:"namedArgumentList",names:n,values:r,start:e,end:t.endPos(),ev:o=>T(r.map(i=>i.ev(o)),i=>Object.fromEntries([["_namedArgList_",!0],...n.map((s,c)=>[s,i[c]])]))}}function $e(t){return t.matchType("STRING")?.value??t.consumeUntil(void 0,"WHITESPACE").map(e=>e.value).join("")}function Lt(t){let e=t.cur();if(!(e.op&&e.value==="/"||e.type==="IDENTIFIER"&&["http","https","ws","wss"].includes(e.value)))return h(t);let r=$e(t);return{type:"string",value:r,start:e.start,end:t.endPos(),ev:()=>r,stat:()=>r}}function Ft(t){let e=t.pos(),n;t.match("global")?n="global":t.match("element")?(n="element",t.matchOp("'")&&t.req("s")):t.match("dom")?n="inherited":t.match("local")&&(n="local");let r=t.matchOp(":"),o=!r&&t.matchOp("^"),i=t.matchType("IDENTIFIER");if(!i?.value)return;let s=(r?":":o?"^":"")+i.value,a=n??{$:"global",":":"element","^":"inherited"}[s[0]]??"local",u;return a==="inherited"&&t.match("on")&&(u=t.withFollow(["to","into","before","after","then"],()=>h(t))),{type:"symbol",name:s,scope:a,start:e,end:t.endPos(),ev:l=>le(s,l,a,u?.ev(l)),lhs:()=>{},put:(l,m,f)=>st(s,l,a,f,u?.ev(l))}}var pn=(t,e)=>{let n=e.value.substring(2);return h(t.child(de(n),n))};function To(t){let e=t.consume(),n=(o,i)=>Et(o.me).getElementById(String(i)),r={type:"idRef",start:e.start,end:e.end,ev:()=>null,lhs:()=>{},put:(o,i,s)=>E(r.ev(o),c=>c&&Ee(c,s))};if(e.template){let o=r.expr=pn(t,e);r.ev=i=>E(o.ev(i),s=>n(i,s))}else{let o=r.value=e.value.substring(1);r.css=e.value,r.ev=i=>n(i,o)}return r}function te(t){let e=t.matchType("CLASS_REF");if(!e)return;let n={type:"classRef",start:e.start,end:e.end,ev:()=>null,lhs:()=>{},put:(r,o,i)=>E(n.ev(r),s=>Ee(Array.from(s instanceof ne?s:[]),i))};if(e.template){let r=n.expr=pn(t,e);n.ev=o=>E(r.ev(o),i=>new ne("."+i,o.me,!0))}else{let r=n.css=e.value;n.className=r.slice(1),n.ev=o=>new ne(r,o.me,!0)}return n}var It=class extends ne{constructor(n,r){super("",n);this.parts=r}get css(){let n=0;return this.parts.map(r=>x(r)?`[data-hs-query-id='${n++}']`:`${r??""}`).join("")}select(){let n=this.parts.filter(x);n.forEach((o,i)=>o.setAttribute("data-hs-query-id",String(i)));let r=super.select();return n.forEach(o=>o.removeAttribute("data-hs-query-id")),r}};function Co(t){let e=t.pos();t.consume();let n=t.consumeUntil("/").map(o=>o.type==="STRING"?`"${o.value}"`:o.value).join("");t.reqOp("/"),t.reqOp(">");let r={type:"queryRef",css:n,start:e,end:t.endPos(),ev:o=>new ne(n,o.me),lhs:()=>{},put:(o,i,s)=>E(r.ev(o),c=>Ee(Array.from(c instanceof ne?c:[]),s))};if(/\$[^=]/.test(n)){let o=r.parts=mn(t,n);r.ev=i=>T(o.map(s=>typeof s=="string"?s:s.ev(i)),s=>new It(i.me,s))}return r}function Y(t){let e=t.matchType("ATTRIBUTE_REF");if(!e)return;let n=e.value.startsWith("[")?e.value.slice(2,-1):e.value.slice(1),[r,o]=n.split("="),i=o&&/^["']/.test(o)?o.slice(1,-1):o;return{type:"attributeRef",name:r,value:i,css:`[${n}]`,start:e.start,end:e.end,ev:s=>we(s.you||s.me,r),lhs:()=>{},put:(s,c,a)=>qe(s.you||s.me,r,a)}}function hn(t){let e=t.matchType("STYLE_REF");if(!e)return;let n=e.value.startsWith("*computed-"),r=e.value.slice(n?10:1);return{type:n?"computedStyleRef":"styleRef",name:r,start:e.start,end:e.end,ev:o=>(n?et:Ze)(o.you||o.me,r),lhs:()=>{},put:(o,i,s)=>tt(o.you||o.me,r,s)}}function yn(t){let e=t.pos();if(!t.matchOp("{"))return;let n=[""],r=[];for(;t.hasMore();){if(t.matchOp("\\"))t.consume();else{if(t.matchOp("}"))break;if(t.match("$")){let o=t.matchOp("{");r.push(h(t)),o&&t.reqOp("}"),n.push("")}else n[n.length-1]+=t.text(t.consume())}n[n.length-1]+=t.lastWs()}return{type:"styleLiteral",parts:n,exprs:r,start:e,end:t.endPos(),ev:o=>T(r.map(i=>i.ev(o)),i=>n.map((s,c)=>s+(c in i?`${i[c]}`:"")).join(""))}}function U(t){let e=t.endPos();return{type:"implicitMeTarget",start:e,end:e,ev:n=>n.you||n.me}}function Se(t){let e=t.matchType("IDENTIFIER");if(!e)return;let n=[e.value],r=t.matchOp(".")??t.matchOp(":");if(r)do n.push(t.reqType("IDENTIFIER","NUMBER").value);while(t.matchOp(r.value));return n.join(r?.value??"")}function ae(t,e="Expected event name"){return t.matchType("STRING")?.value??Se(t)??t.err(e)}function ee(t,e){return Po(t,e)??Ro(t,e)??Fo(t,e)??Io(t,e)??Oo(t,e)??Ao(t,e)??Lo(t,e)??Mo(t,e)??So(t,e)??e}function So(t,e){for(let n of t.g.indirects){let r=n(t,e);if(r)return r}}function Po(t,e){if(!t.matchOp("."))return;let n=t.reqType("IDENTIFIER").value,r=t.text(e),o={type:"propertyAccess",root:e,prop:n,start:e.start,end:t.endPos(),ev:i=>E(o.root.ev(i),s=>ue(s,n)),lhs:i=>o.root.ev(i),put:(i,s,c)=>{F(s,r),nt(s,n,c)},del:(i,s)=>{F(s,r),O(s,c=>{W(c)&&delete c[n],P.wroteProperty(c)})}};return ee(t,o)}function Ro(t,e){if(!t.match("of"))return;let n=$(t),r,o=e;for(;o.root;)r=o,o=o.root;let s={symbol:"property",attributeRef:"attribute",styleRef:"style",computedStyleRef:"computed"}[o.type],c=o.name;if(!s||c===void 0)return t.err("Cannot take a property of a non-symbol: "+o.type);let a=t.text(n),u={property:ue,attribute:we,style:Ze,computed:et}[s],l={type:"ofExpression",root:n,name:c,kind:s,start:e.start,end:t.endPos(),ev:m=>E(l.root.ev(m),f=>u(f,c)),lhs:m=>l.root.ev(m),put:(m,f,p)=>{F(f,a),s==="attribute"?qe(f,c,p):s==="property"?nt(f,c,p):tt(f,c,p)},del:(m,f)=>{F(f,a),O(f,p=>{s==="attribute"?x(p)&&p.removeAttribute(c):s==="property"?(W(p)&&delete p[c],P.wroteProperty(p)):p instanceof HTMLElement&&p.style.removeProperty(c)})}};return r?(r.root=l,ee(t,e)):ee(t,l)}function Io(t,e){let n=t.matchOp("'"),r=e.type==="symbol"&&["my","its","your"].includes(e.name??"")&&["IDENTIFIER","ATTRIBUTE_REF","STYLE_REF"].includes(t.cur().type);if(!n&&!r)return;n&&t.req("s");let o=Y(t)??hn(t),i=o?void 0:t.reqType("IDENTIFIER").value,s=t.text(e),c=u=>i!==void 0?ue(u,i):o?.type==="attributeRef"?we(u,o.name):o?.type==="computedStyleRef"?et(u,o.name):o&&Ze(u,o.name),a={type:"possessive",root:e,prop:i,attribute:o,start:e.start,end:t.endPos(),ev:u=>E(a.root.ev(u),c),lhs:u=>a.root.ev(u),put:(u,l,m)=>{F(l,s),i!==void 0?nt(l,i,m):o?.type==="attributeRef"?qe(l,o.name,m):o&&tt(l,o.name,m)}};return ee(t,a)}function Oo(t,e){if(!t.match("in"))return;let n=$(t),r=(s,c)=>{if(s==null)return[];let a=[],u=w(s,"css");if(typeof u=="string")O(c,l=>x(l)&&a.push(...bt(l,u)));else if(x(s)){let l=!1;if(O(c,m=>{m instanceof Node&&m.contains(s)&&(l=!0)}),l)return s}else O(s,l=>O(c,m=>l===m&&a.push(l)));return a},o={type:"inExpression",root:e,target:n,start:e.start,end:t.endPos(),ev:s=>T([o.root.ev(s),n.ev(s)],([c,a])=>r(c,a)),lhs:s=>o.ev(s),put:(s,c,a)=>Ee(c,a)},i;if(t.peek("where"))for(let s of t.g.collections)i??=s(t,o);return ee(t,i??o)}function Ao(t,e){if(!t.match("as"))return;t.match("a")||t.match("an");let n=o=>{let i=Se(t)??t.err("Expected dotOrColonPath"),s={type:"asExpression",root:o,conversion:i,start:o.start,end:t.endPos(),ev:c=>E(s.root.ev(c),a=>ot(a,i))};return s},r=n(e);for(;t.matchOp("|");)r=n(r);return ee(t,r)}function Lo(t,e){if(!t.matchOp("("))return;let n=[];if(!t.matchOp(")")){do n.push(h(t));while(t.matchOp(","));t.reqOp(")")}let r=t.text(e),o=e.root?t.text(e.root):"",i={type:"functionCall",root:e,args:n,start:e.start,end:t.endPos(),ev:s=>{let c=i.root,a=c.prop,u=a===void 0?void 0:c.root;return T([(u??c).ev(s),...n.map(l=>l.ev(s))],([l,...m])=>{if(!u||a===void 0)return ct(l,void 0,m,s,r);F(l,o);let f=ct(w(l,a),l,m,s,r);return Ye(l,a),f})}};return ee(t,i)}function ct(t,e,n,r,o){if(!H(t))throw F(t,o),new Error(`'${o}' is not a function`);return w(t,"hyperfunc")&&n.push(r),Reflect.apply(t,e,n)}function Fo(t,e){let n=Y(t);return n&&Mt(t,e,n)}function Mt(t,e,n){let r=t.text(e),o={type:"attributeRefAccess",root:e,attribute:n,start:e.start,end:t.endPos(),ev:i=>E(o.root.ev(i),s=>we(s,n.name)),lhs:i=>o.root.ev(i),put:(i,s,c)=>{F(s,r),qe(s,n.name,c)}};return o}function Mo(t,e){if(!t.matchOp("["))return;let n=!!t.matchOp(".."),r=h(t),o=!1,i;!n&&t.matchOp("..")&&(o=!0,t.cur().op&&t.cur().value==="]"||(i=h(t))),t.reqOp("]");let s=t.text(e),c=(l,m)=>N(m)<0?N(w(l,"length"))+N(m):N(m),a=(l,m,f)=>{let p=w(l,"slice");return H(p)?Reflect.apply(p,l,[m,f]):void 0},u={type:"arrayIndex",root:e,first:r,second:i,andBefore:n,andAfter:o,start:e.start,end:t.endPos(),ev:l=>T([u.root.ev(l),r.ev(l),i?.ev(l)],([m,f,p])=>m==null?null:n?a(m,0,c(m,f)+1):o?p==null?a(m,N(f)):a(m,N(f),c(m,p)+1):w(m,String(f))),lhs:l=>T([u.root.ev(l),r.ev(l)],m=>m),put:(l,m,f)=>{let[p,d]=Array.isArray(m)?m:[];F(p,s),W(p)&&(p[String(d)]=f)},del:(l,m)=>{if(n||o)throw new Error("Cannot remove a slice - use a single index");let[f,p]=Array.isArray(m)?m:[];F(f,s),Array.isArray(f)?f.splice(c(f,p),1):W(f)&&delete f[String(p)],P.wroteProperty(f)}};return ee(t,u)}var be=class extends Error{constructor(n,r,o,i){super(n);this.token=r;this.source=o;this.expected=i}written},gn=()=>({commands:Object.create(null),features:Object.create(null),leaves:[],indirects:[],unaries:[],postfixes:[],collections:[]}),Pe=class t{constructor(e,n,r){this.g=e;this.tokens=n;this.src=r;let o=r.length;this.eof={type:"EOF",value:"<<<EOF>>>",start:o,end:o,line:0,column:0},this.last=this.eof,this.skipWs()}i=0;follows=[];eof;last;child(e,n){return new t(this.g,e,n)}tok(e=0,n=!1){let r=this.i;for(;;){if(!n)for(;this.tokens[r]?.type==="WHITESPACE";)r++;if(e--===0)return this.tokens[r]??this.eof;r++}}cur(){return this.tokens[this.i]??this.eof}hasMore(){return this.i<this.tokens.length}pos(){return this.cur().start}endPos(){return this.last.end}text(e){return this.src.substring(e.start,e.end)}match(e,n="IDENTIFIER"){if(this.follows.includes(e))return;let r=this.cur();if(r.value===e&&r.type===n)return this.consume()}matchOp(e){let n=this.cur();if(n.op&&n.value===e)return this.consume()}matchType(...e){if(e.includes(this.cur().type))return this.consume()}matchAny(...e){for(let n of e){let r=this.match(n);if(r)return r}}matchAnyOp(...e){for(let n of e){let r=this.matchOp(n);if(r)return r}}req(e){return this.match(e)??this.expected(e)}reqOp(e){return this.matchOp(e)??this.expected(e)}reqType(...e){return this.matchType(...e)??this.expected(...e)}peek(e,n=0,r="IDENTIFIER"){let o=this.tok(n);if(o.value===e&&o.type===r)return o}consume(){return this.hasMore()?(this.last=this.tokens[this.i++],this.skipWs(),this.last):this.eof}skipWs(){for(;this.tokens[this.i]?.type==="WHITESPACE";)this.i++}consumeUntil(e,n){let r=[],o=this.cur();for(;(n==null||o.type!==n)&&(e==null||o.value!==e)&&o.type!=="EOF";)r.push(o),this.i++,o=this.cur();return this.skipWs(),r}lastWs(){let e=this.tokens[this.i-1];return e?.type==="WHITESPACE"?e.value:""}pushFollow(...e){return this.follows.push(...e),e.length}popFollow(e=1){this.follows.length-=e}withFollow(e,n){let r=this.pushFollow(...e);try{return n()}finally{this.popFollow(r)}}withoutFollows(e){let n=this.follows;this.follows=[];try{return e()}finally{this.follows=n}}err(e,n){let r=this.cur();throw new be(e??"Unexpected Token : "+r.value,r,this.src,n)}expected(...e){this.err(e.length===1?`Expected '${e[0]}' but found '${this.cur().value}'`:"Expected one of: "+e.map(n=>`'${n}'`).join(", "),e)}commandStart(e){return e.value in this.g.commands}featureStart(e){return e.value in this.g.features}commandBoundary(e){return["end","then","else","otherwise",")"].includes(e.value)||this.commandStart(e)||this.featureStart(e)||e.type==="EOF"}};function qt(t){let e=t.source.split(`
6
+ `),n=t.token.line?t.token.line-1:e.length-1,r=e[n]??"",o=t.token.line?t.token.column:Math.max(0,r.length-1),i=String(n+1).length,s=" ".repeat(i+5+o);return` ${n+1} | ${r}
7
+ `+s+"^".repeat(Math.max(1,t.token.value.length))+`
8
+ `+s+t.message+`
9
+ `}function dt(t){let e=t.pos();if(t.matchOp("(")){let a=dt(t)??t.err("Expected command");return t.reqOp(")"),a}let n=t.cur(),r=t.g.commands[n.value],o;if(r?o=t.match(n.value)&&r(t,n.value,e):n.type==="IDENTIFIER"&&(o=t.g.pseudo?.(t,e)),!o||!t.match("unless"))return o;let i=o,s=h(t);return{type:"unlessStatementModifier",command:i,condition:s,start:e,end:t.endPos(),run:a=>E(s.ev(a),u=>u?void 0:i.run(a))}}function D(t){let e=[];for(;t.hasMore();){let n=dt(t);if(!n)break;e.push(n),t.match("then")}return e}function wn(t){let e=t.pos();if(t.matchOp("(")){let o=wn(t);return t.reqOp(")"),o}let n=t.cur(),r=t.g.features[n.value];return!r||!t.match(n.value)?t.err("Expected feature"):r(t,e)}function We(t){let e=t.pos(),n=[];for(;t.hasMore();){let r=t.cur();if(t.featureStart(r)||r.value==="(")n.push(wn(t)),t.match("end");else{if(r.value==="end")break;t.err()}}return{type:"hyperscript",features:n,start:e,end:t.endPos()}}function ft(t){let e={};return t.match("catch")&&(e.errorSymbol=t.reqType("IDENTIFIER").value,e.errorHandler=D(t)),t.match("finally")&&(e.finallyHandler=D(t)),e}function mt(t){let e=[],n=t.tok(1).value,r=t.tok(2).value;if(t.cur().value==="("&&(n===")"||r===","||r===")")){t.matchOp("(");do e.push(t.reqType("IDENTIFIER").value);while(t.matchOp(","));t.reqOp(")")}return e}var bn=gn();function xn(...t){for(let e of t)e(bn)}var kn=t=>new Pe(bn,de(t),t);function qo(t){let e=kn(t),n=We(e);return e.hasMore()&&e.err(),n}function Nn(t){let e=kn(t),n=e.cur(),r=e.commandStart(n)?{kind:"commands",commands:D(e)}:e.featureStart(n)?{kind:"features",program:We(e)}:{kind:"expression",expression:h(e)};return e.hasMore()&&e.err(),r}function vn(t,e){let n;try{n=Nn(t)}catch(i){throw i instanceof be?new Error(i.message+`
10
+
11
+ `+qt(i)):i}let r=document.body;if(n.kind==="features"){for(let i of n.program.features)i.install(r,r);return}let o=Object.assign(B(r,void 0,r,null),e);return n.kind==="expression"?n.expression.ev(o):E(j(n.commands,o),i=>{let s=w(i,"k")==="return"?w(i,"value"):void 0;return s!==void 0?s:o.result})}var Tn=()=>Z.attributes.replaceAll(" ","").split(","),Cn=t=>t instanceof HTMLScriptElement&&t.type==="text/hyperscript";function _o(t){for(let e of Tn())if(t.hasAttribute(e))return t.getAttribute(e);return Cn(t)?t.innerText:null}var jo=t=>{let e=5381;for(let n=0;n<t.length;n++)e=(e<<5)+e+t.charCodeAt(n);return e},Sn=[];function En(t){if(t.closest(Z.disableSelector))return;let e=_o(t);if(!e)return;let n=jo(e);if(ce(t)?.initialized){if(ce(t)?.scriptHash===n)return z.enter(t);xe(t)}if(!_(t,"hyperscript:before:init"))return;Object.assign(V(t),{initialized:!0,scriptHash:n});let r=Cn(t)?document.body:t,o=e;try{for(let s of Sn)o=s(o,t)??o;let{features:i}=qo(o);z.enter(t);for(let s of i)s.install(r,t);t.setAttribute("data-hyperscript-powered","true"),_(t,"hyperscript:after:init"),setTimeout(()=>_(r,"load",{hyperscript:!0}),1)}catch(i){if(i instanceof be){o!==e&&(i.written=e),_(t,"hyperscript:parse-error",{errors:[i]});let s=i.written?`
12
+ rewritten from: ${i.written}
13
+ `:"";console.error("hyperscript: 1 parse error(s) on:",t,`
14
+
15
+ `+qt(i)+s)}else _(t,"exception",{error:i}),console.error("hyperscript errors were found on the following element:",t,`
16
+
17
+ `,i)}}var Pn=[],Rn=[];function fe(t){if(!(t instanceof Element||t instanceof Document||t instanceof DocumentFragment))return;for(let n of Pn)n(t);let e=Tn().map(n=>`[${n}]`).join(", ")+", [type='text/hyperscript']";t instanceof Element&&t.matches(e)&&En(t),t.querySelectorAll(e).forEach(En);for(let n of Rn)n(t)}function xe(t){let e=ce(t);if(e){_(t,"hyperscript:before:cleanup");for(let{target:n,event:r,handler:o}of e.listeners??[])n.removeEventListener(r,o);for(let n of e.observers??[])n.disconnect();for(let n of e.timers??[])clearTimeout(n);P.stop(t),t.querySelectorAll("[data-hyperscript-powered]").forEach(xe),_(t,"hyperscript:after:cleanup"),t.removeAttribute("data-hyperscript-powered"),tn(t)}}z.process=fe;function Do(t){try{let e=Nn(t);return e.kind==="features"?{...e.program,errors:[]}:{...e.kind==="commands"?e.commands[0]:e.expression,errors:[]}}catch(e){if(e instanceof be)return{errors:[e]};throw e}}var Re=Object.assign(vn,{config:Object.assign(Z,{conversions:Object.assign(ge,{dynamicResolvers:Me})}),use(t){t(Re)},addBeforeProcessHook:t=>void Pn.push(t),addAfterProcessHook:t=>void Rn.push(t),addSourceTransform:t=>void Sn.push(t),evaluate:vn,parse:Do,process:fe,processNode:fe,cleanup:xe,internals:{runtime:{cleanup:xe,processNode:fe}},version:"3.3.0"});function In(){if(Object.assign(globalThis,{_hyperscript:Re}),typeof document>"u")return;let t=()=>{fe(document.documentElement),document.dispatchEvent(new Event("hyperscript:ready"))};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):setTimeout(t)}function On(t){t.unaries.push(e=>{let n=1;for(;e.tok(n).type==="IDENTIFIER"&&e.tok(n+1).op&&e.tok(n+1).value===".";)n+=2;let r=e.tok(n+1);if(!e.peek("new")||e.tok(n).type!=="IDENTIFIER"||!r.op||r.value!=="(")return;let o=e.pos();e.consume();let i=[e.consume().value];for(;e.matchOp(".");)i.push(e.consume().value);e.reqOp("(");let s=[];if(!e.matchOp(")")){do s.push(h(e));while(e.matchOp(","));e.reqOp(")")}return{type:"newExpression",path:i,args:s,start:o,end:e.endPos(),ev:a=>T(s.map(u=>u.ev(a)),u=>{let l=i.slice(1).reduce((m,f)=>w(m,f),le(i[0],a));if(!H(l))throw new Error(`'${i.join(".")}' is not a constructor`);return Reflect.construct(l,u)})}})}function Go(t,e){let n=t instanceof HTMLElement&&t.tagName==="SUMMARY"?t.parentElement:t;if(n instanceof HTMLDialogElement)n.open?n.close():e?n.showModal():n.show();else if(n instanceof HTMLDetailsElement)n.open=!n.open;else if(n instanceof HTMLSelectElement){if(document.activeElement===n)return n.blur();n.focus();try{n.showPicker()}catch{}}else if(n instanceof HTMLElement&&n.hasAttribute("popover"))n.togglePopover();else throw new Error("toggle needs a dialog, details, select or popover element")}function An(t){t.toggleElement=(e,n,r)=>{let o=e.match("as")?!!e.req("modal"):!!e.match("modal"),i=e.text(n);return{type:"toggleElementCommand",target:n,modal:o,start:r,end:e.endPos(),run:c=>E(n.ev(c),a=>{F(a,i),O(a,u=>Go(u,o))})}}}var Ln=(t,e,n)=>new Promise(r=>{let o=!1;t.addEventListener("transitionstart",()=>o=!0,{once:!0}),t.addEventListener("transitionend",()=>r(),{once:!0}),setTimeout(()=>o||r(),e),n?.()});function Fn(t){t.commands.settle=(e,n,r)=>{let o=e.commandBoundary(e.cur())?U(e):h(e),i=e.text(o);return{type:"settleCommand",target:o,start:r,end:e.endPos(),run:c=>E(o.ev(c),a=>{F(a,i);let u=x(a)?[a]:K(a)?Array.from(a).filter(x):[];return Promise.all(u.map(l=>Ln(l,500))).then(()=>{})})}}}function Mn(t){t.commands.transition=(e,n,r)=>{let o=[],i=[],s=[];do o.push(e.withFollow(["from","to"],()=>h(e))),i.push(e.match("from")?h(e):void 0),e.req("to"),s.push(e.match("initial")?"initial":h(e));while(!e.commandBoundary(e.cur())&&e.cur().value!=="over"&&e.cur().value!=="using");let c=e.match("over")?h(e):void 0,a=!c&&e.match("using")?h(e):void 0,u=o[0].root,l=u?e.text(u):"",m=(p,d)=>o.forEach((y,g)=>{d[g]!=null&&E(y.lhs?.(p),v=>y.put?.(p,v,d[g]))});return{type:"transitionCommand",properties:o,from:i,to:s,over:c,using:a,start:r,end:e.endPos(),run:p=>T([u?u.ev(p):p.me,c?.ev(p),a?.ev(p),T(i.map(d=>d?.ev(p)),d=>d),T(s.map(d=>d==="initial"?void 0:d.ev(p)),d=>d)],([d,y,g,v,C])=>{u&&F(d,l);let S=[];return O(d,R=>{if(!(R instanceof HTMLElement))return;let I=R.style.transition;R.style.transition=y?`all ${y}ms ease-in`:g?String(g):Z.defaultTransition;let A=V(R).transitionInitials??={};o.forEach((q,b)=>{b in A||(A[b]=q.ev(p))}),Array.isArray(v)&&m(p,v);let M=s.map((q,b)=>q==="initial"?A[b]:w(C,String(b)));S.push(Ln(R,100,()=>setTimeout(()=>m(p,M),0)).then(()=>{R.style.transition=I}))}),Promise.all(S).then(()=>{})})}}}function qn(t){t.commands.start=(e,n,r)=>{e.match("a"),e.req("view"),e.req("transition"),e.match("using");let o=e.matchType("STRING")?.value,i=D(e);e.hasMore()&&e.req("end");let s=!1;return{type:"viewTransitionCommand",body:i,transitionType:o,start:r,end:e.endPos(),run:a=>{if(!document.startViewTransition)return j(i,a);if(s)throw new Error("A view transition is already in progress");s=!0;let u=()=>{},l=new Promise(d=>u=d),m=()=>l,f=o?document.startViewTransition({update:m,types:[o]}):document.startViewTransition(m),p=d=>(s=!1,u(),d?(console.warn("hyperscript: view transition skipped due to early exit (return, halt, or break)"),f.finished.catch(()=>{}),f.skipTransition(),d):f.finished.then(()=>{}));return new Promise(d=>setTimeout(d,0)).then(()=>j(i,a)).then(d=>p(re(d)))}}}}function _n(t){t.commands.if=(e,n,r)=>{let o=h(e);e.match("then");let i=D(e),s,c=!1,a=e.match("else")??e.match("otherwise");if(a)if(c=e.peek("if")?.line===a.line,c){let l=dt(e);s=l?[l]:[]}else s=D(e);return e.hasMore()&&!c&&e.req("end"),{type:"ifCommand",condition:o,trueBranch:i,falseBranch:s,start:r,end:e.endPos(),run:l=>E(o.ev(l),m=>m?j(i,l):s&&j(s,l))}}}var jn={k:"return",value:null};function Dn(t){t.commands.halt=(e,n,r)=>{let o=!1;e.match("the")&&(e.req("event"),e.matchOp("'")&&e.req("s"),o=!0);let i=!!e.match("bubbling"),s=!i&&!!e.match("default");return{type:"haltCommand",keepExecuting:o,bubbling:i,haltDefault:s,start:r,end:e.endPos(),run:a=>{let u=a.event;if(u instanceof Event&&(s||u.stopPropagation(),i||u.preventDefault()),!o)return jn}}}}function Gn(t){t.commands.return=(e,n,r)=>{let o=e.commandBoundary(e.cur())?void 0:h(e);return{type:"returnCommand",value:o,start:r,end:e.endPos(),run:s=>E(o?o.ev(s):null,c=>(s.meta.returned=!0,s.meta.returnValue=c,{k:"return",value:c}))}},t.commands.exit=(e,n,r)=>({type:"exitCommand",start:r,end:e.endPos(),run:()=>jn})}function Hn(t){t.commands.throw=(e,n,r)=>{let o=h(e);return{type:"throwCommand",value:o,start:r,end:e.endPos(),run:s=>E(o.ev(s),c=>{throw c})}}}function Bn(t){let e=te(t);if(!e)return;let n=[e];for(let r=te(t);r;r=te(t))n.push(r);return n}var _t=(t,e)=>(t??[]).map(n=>E(n.ev(e),r=>String(w(r,"className")))),Ho=t=>t.split(";").map(e=>e.split(":")[0].trim()).filter(Boolean),jt=t=>t instanceof HTMLElement||t instanceof SVGElement?t.style:void 0,$n=(t,e,n,r,o)=>e?at(t,e,n,i=>x(i)&&r(i),i=>x(i)&&o(i)):O(t,i=>x(i)&&r(i)),Be=(t,{name:e,value:n},r)=>r?t.setAttribute(e,String(n)):t.removeAttribute(e),Un=(t,e,n,r,o,i)=>i?$n(e,n,r,s=>Be(s,i,t),s=>Be(s,i,!t)):T(o.map(s=>$n(e,n,r,c=>c.classList.toggle(String(s),t),c=>c.classList.toggle(String(s),!t))),()=>{});function Vn(t){let e=Bn(t),n=e?void 0:Y(t);return{refs:e,attribute:n,css:e||n?void 0:yn(t)}}function zn(t){t.commands.add=(e,n,r)=>{let{refs:o,attribute:i,css:s}=Vn(e),c;!o&&!i&&!s&&(c=e.withFollow(["to"],()=>h(e)),e.cur().value!=="to"&&e.err("Expected either a class reference or attribute expression"));let a=e.match("to")?h(e):U(e),u=e.match("when")?h(e):void 0,l=o||i?u:void 0,m=e.text(a);return{type:"addCommand",classRefs:o,attributeRef:i,css:s,value:c,to:a,when:l,start:r,end:e.endPos(),run:p=>T([a.ev(p),s?.ev(p),c?.ev(p),..._t(o,p)],([d,y,g,...v])=>{if(F(d,m),c){if(Array.isArray(d))d.push(g);else if(d instanceof Set)d.add(g);else throw d instanceof Map?new Error("Use 'set myMap[key] to value' for Maps"):new Error("Cannot add to "+typeof d);P.wroteProperty(d)}else if(s)O(d,C=>{let S=jt(C);S&&(S.cssText+=y)});else return Un(!0,d,l,p,v,i)})}}}var $o=t=>t instanceof Node||t instanceof NodeList||t instanceof HTMLCollection;function Qn(t){t.commands.remove=(e,n,r)=>{let{refs:o,attribute:i,css:s}=Vn(e),c=o||i||s?void 0:h(e),a=e.match("from")?h(e):c?void 0:U(e),u;e.match("when")&&(c&&e.err("'when' clause is not supported when removing elements"),u=h(e));let l=a?e.text(a):"",m=c?e.text(c):"",f=(d,y,g)=>{if(g==null&&c?.del&&c.lhs&&!$o(y)){let v=c;return E(c.lhs(d),C=>v.del?.(d,C))}if(F(y,m),Array.isArray(g)){let v=g.indexOf(y);v>-1&&g.splice(v,1),P.wroteProperty(g)}else g instanceof Set||g instanceof Map?(g.delete(y),P.wroteProperty(g)):O(y,v=>{x(v)&&v.parentElement&&(g==null||g instanceof Node&&g.contains(v))&&v.parentElement.removeChild(v)})};return{type:"removeCommand",classRefs:o,attributeRef:i,css:s,element:c,from:a,when:u,start:r,end:e.endPos(),run:d=>T([a?.ev(d),s?.ev(d),c?.ev(d),..._t(o,d)],([y,g,v,...C])=>{if(c)return f(d,v,y);if(F(y,l),s){let S=Ho(String(g));O(y,R=>S.forEach(I=>jt(R)?.removeProperty(I)))}else return Un(!1,y,u,d,C,i)})}}}var Wn=(t,e,n)=>(r,o,i)=>{i?o.style[t]=i:r==="toggle"?o.style[t]=getComputedStyle(o)[t]===e?n:e:o.style[t]=r==="hide"?e:n},Jn={display(t,e,n){if(!n&&e instanceof HTMLDialogElement){t==="hide"||t==="toggle"&&e.open?e.close():e.open||e.show();return}let r=V(e);n?e.style.display=n:t==="toggle"?Jn.display(getComputedStyle(e).display==="none"?"show":"hide",e):t==="hide"?(r.originalDisplay??=e.style.display,e.style.display="none"):r.originalDisplay&&r.originalDisplay!=="none"?e.style.display=r.originalDisplay:e.style.removeProperty("display")},visibility:Wn("visibility","hidden","visible"),opacity:Wn("opacity","0","1"),hidden(t,e){(t==="toggle"?!e.hasAttribute("hidden"):t==="hide")?e.setAttribute("hidden",""):e.removeAttribute("hidden")}};function Dt(t,e){let n=e??Z.defaultHideShowStrategy??"display";return Z.hideShowStrategies[n]??Jn[n]??t.err("Unknown show/hide strategy : "+n)}function Kn(t){t.commands.toggle=(e,n,r)=>{e.matchAny("the","my");let o={type:"toggleCommand",start:r,end:r,run:()=>{}},i;if(e.cur().type==="STYLE_REF"){let y=o.styleProp=e.consume().value.slice(1);i=Dt(e,y),o.on=e.match("of")?e.withFollow(["with","between"],()=>h(e)):U(e)}else if(e.match("between")){let y=te(e);if(y)e.req("and"),o.between=[y,te(e)??e.err("Expected classRef")];else{let g=Y(e)??e.err("Expected either a class reference or attribute expression");e.req("and"),o.between=[g,Y(e)??e.err("Expected attributeRef")]}}else if(!(o.classRefs=Bn(e))&&!(o.attributeRef=Y(e))){let y=e.g.toggleElement;if(!y)o.target=e.withFollow(["between"],()=>ie(e));else{let g=e.withFollow(["between","as"],()=>$(e));if(!e.peek("between"))return y(e,g,r);o.target=Ot(e,g)}}if(!o.styleProp&&!o.target&&(o.on=e.match("on")?h(e):U(e)),e.match("between")){let y=o.betweenValues=e.withFollow(["and"],()=>{let g=[h(e)];for(;e.matchOp(",");)g.push(h(e));return g});e.req("and"),y.push(h(e))}o.target&&!o.betweenValues&&e.err("toggle <expression> requires 'between' with values"),e.peek("for")&&!e.peek("in",2)?(e.match("for"),o.time=h(e)):e.match("until")&&(o.until=ae(e),e.match("from")&&(o.from=h(e))),o.end=e.endPos();let{on:s,target:c,betweenValues:a,between:u,attributeRef:l,styleProp:m}=o,f=s?e.text(s):"",p=(y,g)=>y[(y.findIndex(v=>v==g)+1)%y.length],d=(y,g,v,C)=>{if(a&&c?.lhs&&c.put){let S=c;return T([c.ev(y),c.lhs(y)],([R,I])=>S.put?.(y,I,p(v,R)))}if(a&&m)return O(g,S=>{let R=jt(S);if(!R||!x(S))return;let I=R.getPropertyValue(m)||getComputedStyle(S).getPropertyValue(m);R.setProperty(m,String(p(v,I)))});F(g,f),O(g,S=>{if(x(S))if(i)S instanceof HTMLElement&&i("toggle",S);else if(u){let[R,I]=u;if(R.type==="classRef"&&I.type==="classRef"){let[A,M]=[String(R.className),String(I.className)],q=S.classList.contains(A);S.classList.toggle(A,!q),S.classList.toggle(M,q)}else if(R.type==="attributeRef"&&I.type==="attributeRef"){let A=S.getAttribute(R.name)===String(R.value);Be(S,A?R:I,!1),Be(S,A?I:R,!0)}}else l?Be(S,l,!S.hasAttribute(l.name)):C.forEach(R=>S.classList.toggle(String(R)))})};return o.run=y=>T([s?.ev(y),o.time?.ev(y),o.from?.ev(y),T((a??[]).map(g=>g.ev(y)),g=>g),..._t(o.classRefs,y)],([g,v,C,S,...R])=>{let I=()=>d(y,g,Array.isArray(S)?S:[],R);if(o.time)return new Promise(A=>{I(),setTimeout(()=>{I(),A()},N(v))});if(o.until){let A=o.until,M=C||y.me;return new Promise(q=>{Q(M)&&M.addEventListener(A,()=>{I(),q()},{once:!0}),I()})}return E(I(),()=>{})}),o}}function Zn(t){for(let e of["hide","show"])t.commands[e]=(n,r,o)=>{let i=n.cur(),s=i.value==="when"||i.value==="with"||n.commandBoundary(i)?U(n):h(n),c;n.match("with")&&(c=n.reqType("IDENTIFIER","STYLE_REF").value.replace(/^\*/,""));let a;e==="show"&&n.matchOp(":")&&(a=n.consumeUntil(void 0,"WHITESPACE").map(d=>d.value).join(""));let u=n.match("when")?h(n):void 0,l=Dt(n,c),m=n.text(s),f=d=>y=>{y instanceof HTMLElement&&l(d,y,d==="show"?a:void 0)};return{type:`${e}Command`,target:s,strategy:c,arg:a,when:u,start:o,end:n.endPos(),run:d=>E(s.ev(d),y=>{if(F(y,m),u)return at(y,u,d,f(e),f(e==="hide"?"show":"hide"));O(y,f(e))})}}}function er(t){t.commands.take=(e,n,r)=>{let o=[];for(let v=te(e);v;v=te(e))o.push(v);let i=o.length>0,s=i?void 0:Y(e)??e.err("Expected either a class reference or attribute expression"),c,a,u=v=>(o.length>1&&e.err(`\`${v}\` cannot be combined with multiple class refs`),te(e)??e.err("Expected classRef"));e.match("with")&&(i?c=u("with"):a=h(e));let l;e.match("from")&&(l=h(e),e.match("giving")&&((c||a)&&e.err("`giving` cannot be combined with `with`"),i?c=u("giving"):a=h(e)));let m=e.match("for")?h(e):U(e),f=e.text(m),p=l?e.text(l):"",d=c?.className,y=(v,C)=>O(v,S=>x(S)&&C(S));return{type:"takeCommand",classRefs:o,attributeRef:s,from:l,for:m,replacementClass:c,replacementValue:a,start:r,end:e.endPos(),run:v=>T([l?.ev(v),m.ev(v),a?.ev(v),...o.map(C=>C.ev(v))],([C,S,R,...I])=>{if(F(S,f),s){F(C,p),y(C,A=>R?A.setAttribute(s.name,String(R)):A.removeAttribute(s.name)),y(S,A=>A.setAttribute(s.name,s.value||""));return}o.forEach((A,M)=>{let q=String(A.className);y(l?C:I[M],b=>{b.classList.remove(q),d&&b.classList.add(d)}),y(S,b=>{b.classList.add(q),d&&b.classList.remove(d)})})})}}}var Wo="x y left top right bottom width height bounds scrollLeft scrollTop scrollLeftMax scrollTopMax scrollWidth scrollHeight scroll".split(" ");function tr(t){t.commands.measure=(e,n,r)=>{let o=U(e),i=[];if(!e.commandBoundary(e.cur())){let a=h(e);a.type==="symbol"&&a.name&&Wo.includes(a.name)?i.push(a.name):a.type==="possessive"&&a.prop&&a.root?(o=a.root,i.push(a.prop)):a.type==="ofExpression"&&a.name&&a.root?(o=a.root,i.push(a.name)):o=a}for(;e.matchOp(",");)i.push(e.reqType("IDENTIFIER").value);let s=e.text(o);return{type:"measureCommand",target:o,properties:i,start:r,end:e.endPos(),run:a=>E(o.ev(a),u=>{F(u,s);let l=x(u)?u:K(u)?Array.from(u).find(x):void 0;if(!l)throw new Error(`'${s}' is not an element`);let m=l.getBoundingClientRect(),f={top:l.scrollTop,left:l.scrollLeft,topMax:w(l,"scrollTopMax"),leftMax:w(l,"scrollLeftMax"),height:l.scrollHeight,width:l.scrollWidth},{x:p,y:d,left:y,top:g,right:v,bottom:C,width:S,height:R}=m,I={x:p,y:d,left:y,top:g,right:v,bottom:C,width:S,height:R,bounds:m,scrollLeft:f.left,scrollTop:f.top,scrollLeftMax:f.leftMax,scrollTopMax:f.topMax,scrollWidth:f.width,scrollHeight:f.height,scroll:f};a.result=I;for(let A of i){if(!(A in I))throw new Error("No such measurement as "+A);a.locals[A]=I[A]}})}}}function Ue(t,e,n){for(let r of e)t.commands[r]=(o,i,s)=>{let c=o.commandBoundary(o.cur())?void 0:h(o);return{type:`${e[0]}Command`,target:c,start:s,end:o.endPos(),run:u=>E(c?.ev(u),l=>E(n(l||u.me),()=>{}))}}}var pt=t=>e=>{let n=w(e,t);H(n)&&Reflect.apply(n,e,[])},Yn=t=>t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement,nr=t=>t instanceof HTMLInputElement&&(t.type==="checkbox"||t.type==="radio"),Xn=(t,e)=>{if(Yn(t))e(t);else if(t instanceof HTMLFormElement)t.querySelectorAll("input, textarea, select").forEach(n=>Yn(n)&&e(n));else return!1;return!0},Bo=t=>{t instanceof HTMLSelectElement?t.selectedIndex=-1:nr(t)?t.checked=!1:t.value=""},Uo=t=>{if(t instanceof HTMLSelectElement)for(let e of t.options)e.selected=e.defaultSelected;else nr(t)?t.checked=t.defaultChecked:t.value=t.defaultValue},Vo=t=>e=>O(e,n=>{n instanceof HTMLDialogElement?t?n.open||n.showModal():n.close():n instanceof HTMLDetailsElement?n.open=t:n instanceof HTMLElement&&n.hasAttribute("popover")?n[t?"showPopover":"hidePopover"]():pt(t?"open":"close")(n)});function rr(t){Ue(t,["focus"],pt("focus")),Ue(t,["blur"],pt("blur")),Ue(t,["select"],pt("select")),Ue(t,["empty","clear"],e=>{Array.isArray(e)||e instanceof Set||e instanceof Map?(Array.isArray(e)?e.splice(0):e.clear(),P.wroteProperty(e)):O(e,n=>Xn(n,Bo)||x(n)&&n.replaceChildren())}),Ue(t,["reset"],e=>O(e,n=>n instanceof HTMLFormElement?n.reset():Xn(n,Uo)))}function or(t){for(let e of[!0,!1]){let n=e?"open":"close";t.commands[n]=(r,o,i)=>{let s=!!r.match("fullscreen"),c=r.commandBoundary(r.cur())?void 0:h(r);return{type:`${n}Command`,target:c,start:i,end:r.endPos(),run:u=>E(c?.ev(u),l=>s?e?(x(l)?l:document.documentElement).requestFullscreen():document.exitFullscreen():Vo(e)(l||u.me))}}}}function sr(t){t.commands.make=(e,n,r)=>{e.match("a")||e.match("an");let o=h(e),i=[],s=o.type==="queryRef"?o.css:void 0;if(s===void 0&&e.match("from"))do i.push(h(e));while(e.matchOp(","));let c=e.match("called")?Ft(e)??e.err("Expected symbol"):void 0,a=()=>{let l="div",m={classes:[]};for(let[,p,d]of(s??"").matchAll(/(^|#|\.)([^#. ]+)/g))p===""?l=d.trim():p==="#"?m.id=d.trim():m.classes.push(d.trim());let f=document.createElement(l);return m.id!==void 0&&(f.id=m.id),f.classList.add(...m.classes),f};return{type:"makeCommand",value:o,args:i,called:c,start:r,end:e.endPos(),run:l=>T([s===void 0?o.ev(l):void 0,...i.map(m=>m.ev(l))],([m,...f])=>{l.result=s===void 0?Reflect.construct(H(m)?m:Object,f):a(),c?.put?.(l,void 0,l.result)})}}}function ir(t){t.commands.append=(e,n,r)=>{let o=h(e),i=e.match("to")?je(h(e)):void 0;return{type:"appendCommand",value:o,target:i,start:r,end:e.endPos(),run:c=>T([i?i.ev(c):le("result",c),o.ev(c),i?.lhs?.(c)],([a,u,l])=>{if(Array.isArray(a)||a instanceof Set)Array.isArray(a)?a.push(u):a.add(u),P.wroteProperty(a);else if(x(a))x(u)?a.insertAdjacentElement("beforeend",u):a.insertAdjacentHTML("beforeend",String(u)),z.process(a);else{let m=N(a||"")+N(u);if(!i)st("result",c,void 0,m);else if(i.put)i.put(c,l,m);else throw new Error("Unable to append a value!")}})}}}function ar(t){t.commands.swap=(e,n,r)=>{let o=e.withFollow(["with"],()=>ie(e));e.req("with");let i=ie(e);return{type:"swapCommand",first:o,second:i,start:r,end:e.endPos(),run:c=>T([o.ev(c),i.ev(c),o.lhs?.(c),i.lhs?.(c)],([a,u,l,m])=>{if(x(a)&&x(u)){let f=document.createComment("");a.replaceWith(f),u.replaceWith(a),f.replaceWith(u)}else o.put?.(c,l,u),i.put?.(c,m,a)})}}}function cr(t){t.commands.send=t.commands.trigger=(e,n,r)=>{let o=ae(e),i=lt(e),s=e.match(n==="trigger"?"on":"to")?h(e):U(e),c=e.text(s);return{type:"sendCommand",event:o,details:i,to:s,start:r,end:e.endPos(),run:u=>T([s.ev(u),i?.ev(u)],([l,m])=>{F(l,c),O(l,f=>_(f,o,W(m)?m:{},u.me))})}}}function ur(t){t.commands.wait=(e,n,r)=>{let o={type:"waitCommand",start:r,end:r,run:()=>{}};if(e.match("for")){e.match("a");let i=o.events=[];do{let a=e.cur();a.type==="NUMBER"||a.op&&a.value==="("?i.push(h(e)):i.push({event:ae(e),args:mt(e)})}while(e.match("or"));let s=o.from=e.match("from")?h(e):void 0,c=s?e.text(s):"me";o.run=a=>E(s?s.ev(a):a.me,u=>{if(!Q(u))throw new Error("Not a valid event target: "+c);return new Promise(l=>{for(let m of i)"event"in m?u.addEventListener(m.event,f=>{a.result=f;for(let p of m.args)a.locals[p]=w(f,p)||w(w(f,"detail"),p)||null;l()},{once:!0}):E(m.ev(a),f=>setTimeout(()=>{a.result=f,l()},N(f)))})})}else{let i;e.match("a")?e.req("tick"):i=o.time=h(e),o.run=s=>E(i?.ev(s),c=>new Promise(a=>setTimeout(a,i?N(c):0)))}return o.end=e.endPos(),o}}function lr(t){let e=t.pos(),n=t.cur(),r=[],o="",i=!1;for(;t.hasMore();){n=t.consume();let s=t.tok(0,!0);if(s.type==="IDENTIFIER"&&s.value==="end")break;i?n.type==="IDENTIFIER"||n.type==="NUMBER"?o+=n.value:(o&&r.push(o),o="",i=!1):n.type==="IDENTIFIER"&&n.value==="function"&&(i=!0)}return{source:t.src.substring(e,n.end+1),functions:r}}function dr(t){t.commands.js=(e,n,r)=>{let o=[];if(e.matchOp("(")&&!e.matchOp(")")){do o.push(e.reqType("IDENTIFIER").value);while(e.matchOp(","));e.reqOp(")")}let{source:i}=lr(e);e.match("end");let s=new Function(...o,i);return{type:"jsCommand",source:i,inputs:o,start:r,end:e.endPos(),run:a=>E(Reflect.apply(s,globalThis,o.map(u=>le(u,a))),u=>{a.result=u})}},t.features.js=(e,n)=>{let{source:r,functions:o}=lr(e),i=new Function(`${r}
18
+ return { ${o.map(c=>`${c}:${c}`).join(",")} } `);return{type:"jsFeature",source:r,functions:o,start:n,end:e.endPos(),install:()=>void Object.assign(globalThis,i())}}}function fr(t){for(;;){let e=t();if(J(e))return e.then(n=>n??fr(t));if(e)return e}}var zo=t=>{if(t){if(W(t)&&Symbol.asyncIterator in Object(t)){let e=Reflect.get(Object(t),Symbol.asyncIterator);return typeof e=="function"?Reflect.apply(e,t,[]):void 0}return(K(t)?t:Object.keys(Object(t)))[Symbol.iterator]()}};function mr(t){t.commands.repeat=t.commands.for=(e,n,r)=>{let o={type:"repeatCommand",until:!1,bottomTested:!1,forever:!1,body:[],start:r,end:r,run:()=>{}};if(n==="for"||e.match("for")){let v=o.identifier=e.reqType("IDENTIFIER").value;e.req("in"),o.expression=h(e);for(let C=o.expression;C;C=C.root)C.type==="collectionExpression"&&(C.varName=v)}else e.match("in")?(o.identifier="it",o.expression=h(e)):e.match("while")?o.condition=h(e):e.match("until")?(o.until=!0,e.match("event")?(o.event=ae(e),e.match("from")&&(o.from=h(e))):o.condition=h(e)):!e.commandBoundary(e.cur())&&e.cur().value!=="forever"?(o.times=h(e),e.req("times")):(e.match("forever"),o.forever=!0);e.match("index")?o.indexIdentifier=e.reqType("IDENTIFIER").value:e.match("indexed")&&(e.req("by"),o.indexIdentifier=e.reqType("IDENTIFIER").value);let i=o.body=D(e);if(o.forever&&e.hasMore()){let v=e.match("until")??e.match("while");v&&(o.forever=!1,o.bottomTested=!0,o.until=v.value==="until",o.condition=h(e))}e.match("else")&&(o.elseBranch=D(e)),e.hasMore()&&e.req("end"),o.end=e.endPos();let{identifier:s,indexIdentifier:c,expression:a,times:u,condition:l,until:m,bottomTested:f,forever:p,event:d,from:y,elseBranch:g}=o;return o.run=v=>T([a?.ev(v),y?.ev(v)],([C,S])=>{let R=zo(C)??(g?[][Symbol.iterator]():void 0),I=0,A=!1,M=!1;if(d){let L=S||v.me;Q(L)&&L.addEventListener(d,()=>M=!0,{once:!0})}let q=()=>!A&&g?E(j(g,v),L=>({signal:re(L)})):{signal:void 0},b=L=>{let G=I++;A=!0,C&&s?v.result=v.locals[s]=L:v.result=G,c&&(v.locals[c]=G);let X=v.meta.template;if(X&&C){let pe=`${s}_${r}`;X.loops[pe]??={identifier:s,indexIdentifier:c,source:C},X.out.push(`<!--hs-scope:${pe}:${G}-->`)}return E(j(i,v),pe=>{let en=w(pe,"k");if(en==="break")return{signal:void 0};if(en==="return")return{signal:re(pe)};if(d)return new Promise(uo=>setTimeout(uo,0))})};return E(fr(()=>T([l?.ev(v),u?.ev(v)],([L,G])=>f&&I===0||p?b(void 0):m?(d?!M:L!==!0)?b(void 0):q():l?L?b(void 0):q():G?I<N(G)?b(void 0):q():R?E(R.next(),X=>w(X,"done")?q():b(w(X,"value"))):q())),L=>re(w(L,"signal")))}),o}}function pr(t){for(let e of["break","continue"]){let n={k:e};t.commands[e]=(r,o,i)=>({type:`${e}Command`,start:i,end:r.endPos(),run:()=>n})}}function hr(t){t.commands.tell=(e,n,r)=>{let o=h(e),i=D(e);e.hasMore()&&!e.featureStart(e.cur())&&e.req("end");let s=(a,u,l)=>{for(;l<u.length;l++){a.you=u[l];let m=j(i,a);if(J(m))return m.then(f=>re(f)??s(a,u,l+1));if(m)return m}};return{type:"tellCommand",value:o,body:i,start:r,end:e.endPos(),run:a=>E(o.ev(a),u=>{let l=u==null?[]:Array.isArray(u)?u:u instanceof NodeList?Array.from(u):[u],m=a.you;return E(s(a,l,0),f=>(a.you=m,re(f)))})}}}function Ht(t,e){let n;if(typeof e=="string"){let u=document.createElement("template");u.innerHTML=e,n=u.content}else if(e instanceof DocumentFragment)n=e;else if(e instanceof Element)n=document.createDocumentFragment(),n.append(e.cloneNode(!0));else throw new Error("morph requires an HTML string, element, or document fragment");let r=n.firstElementChild;r&&!r.nextElementSibling&&r.tagName===t.tagName&&(br(t,r),n=r);let o=[...t.matches("[id]")?[t]:[],...t.querySelectorAll("[id]")],i=[...n.querySelectorAll("[id]")],s=Ko(o,i),c=new Map;wr(c,s,t.parentElement,o),wr(c,s,n,i);let a=document.createElement("div");a.hidden=!0,(document.body??t.parentElement)?.after(a),vr({target:t,ids:c,persistent:s,pantry:a,futureMatches:new WeakSet},t,n),xe(a),a.remove()}function vr(t,e,n){e instanceof HTMLTemplateElement&&n instanceof HTMLTemplateElement&&(e=e.content,n=n.content);let r=e.firstChild,o=n.firstChild;for(;o;){let i=o,s=r&&Qo(t,i,r);if(s&&s!==r)for(let c=r;c&&c!==s;){let a=c;c=c.nextSibling,a instanceof Element&&(t.ids.has(a)||Er(t,a,i))?Gt(e,a,null):gr(t,a)}if(!s&&i instanceof Element&&t.persistent.has(i.id)){let c=`[id="${CSS.escape(i.id)}"]`,a=t.target.id===i.id?t.target:t.target.querySelector(c)??t.pantry.querySelector(c);if(a){for(let u=a.parentNode;u;u=u.parentNode){let l=t.ids.get(u);l?.delete(a.id),l?.size===0&&t.ids.delete(u)}Gt(e,a,r),s=a}}if(o=i.nextSibling,s&&i instanceof Element)yr(t,s,i),r=s.nextSibling;else if(i instanceof Element&&t.ids.has(i)){let c=document.createElement(i.tagName);e.insertBefore(c,r),yr(t,c,i),r=c.nextSibling}else e.insertBefore(i,r),i instanceof Element&&fe(i),r=i.nextSibling}for(;r;){let i=r;r=r.nextSibling,gr(t,i)}}function yr(t,e,n){e instanceof Element&&(br(e,n),e instanceof HTMLTextAreaElement&&n instanceof HTMLTextAreaElement&&e.defaultValue!==n.defaultValue&&(e.value=n.value),(!e.isEqualNode(n)||n.tagName==="TEMPLATE"||n.querySelector("template"))&&vr(t,e,n),fe(e))}function Qo(t,e,n){if(!(e instanceof Element))return null;let r=t.ids.get(e),o=r?.size??0;if(e.id&&!r)return null;let i=null,s=0,c=10;for(let a=n;a;a=a.nextSibling){let u=t.ids.get(a);if(Jo(a,e)){if(u&&r&&[...u].some(l=>r.has(l)))return a;if(!u){if(c>0&&a.isEqualNode(e))return a;i??=a}}if(s+=u?.size??0,s>o||a.contains(document.activeElement)||--c<1&&o===0)break}return i&&Er(t,i,e)?null:i}function Er(t,e,n){if(t.futureMatches.has(e))return!0;let r=n.nextSibling;for(let o=0;r&&o<10;r=r.nextSibling,o++)if(r instanceof Element&&e.isEqualNode(r))return t.futureMatches.add(e),!0;return!1}function gr(t,e){t.ids.has(e)?Gt(t.pantry,e,null):(e instanceof Element&&xe(e),e.remove())}function Gt(t,e,n){let r=w(t,"moveBefore");if(H(r))try{Reflect.apply(r,t,[e,n]);return}catch{}t.insertBefore(e,n)}function br(t,e){for(let{name:n,value:r}of e.attributes)t.getAttribute(n)!==r&&(t.setAttribute(n,r),n==="value"&&t instanceof HTMLInputElement&&t.type!=="file"&&(t.value=r));for(let{name:n}of[...t.attributes])e.hasAttribute(n)||t.removeAttribute(n)}function Jo(t,e){return!(t instanceof Element)||t.tagName!==e.tagName||t.tagName==="SCRIPT"&&!t.isEqualNode(e)?!1:!t.id||t.id===e.id}function Ko(t,e){let n=new Set,r=new Map;for(let{id:i,tagName:s}of t)r.has(i)?n.add(i):i&&r.set(i,s);let o=new Set;for(let{id:i,tagName:s}of e)o.has(i)?n.add(i):r.get(i)===s&&o.add(i);for(let i of n)o.delete(i);return o}function wr(t,e,n,r){for(let o of r)if(e.has(o.id))for(let i=o;i&&i!==n;i=i.parentElement){let s=t.get(i);s||t.set(i,s=new Set),s.add(o.id)}}function xr(t){t.commands.morph=(e,n,r)=>{let o=h(e);e.req("to");let i=h(e);return{type:"morphCommand",target:o,content:i,start:r,end:e.endPos(),run:c=>T([o.ev(c),i.ev(c)],([a,u])=>{O(a,l=>{l instanceof Element&&Ht(l,u)})})}}}function kr(t){t.commands.log=(e,n,r)=>{let o=[h(e)];for(;e.matchOp(",");)o.push(h(e));let i=e.match("with")?h(e):void 0;return{type:"logCommand",values:o,logger:i,start:r,end:e.endPos(),run:c=>T([i?.ev(c),...o.map(a=>a.ev(c))],([a,...u])=>{H(a)?a(...u):console.log(...u)})}}}function Nr(t){t.commands.get=t.commands.call=(e,n,r)=>{let o=h(e);return n==="call"&&o.type!=="functionCall"&&e.err("Must be a function invocation"),{type:"getCommand",value:o,start:r,end:e.endPos(),run:s=>E(o.ev(s),c=>{s.result=c})}}}function Tr(t){t.pseudo=(e,n)=>{let r=e.tok(1);if(!(r.op&&(r.value==="."||r.value==="(")))return;let o=ut(e);o.type!=="functionCall"&&e.err("Pseudo-commands must be function calls");let i=o.root,s="args"in o&&Array.isArray(o.args)?o.args:[],c;i&&!i.root&&(e.matchAny("the","to","on","with","into","from","at")?c=h(e):e.match("me")&&(c=U(e)));let a=i?.name??"",u=c?e.text(c):"",l=e.text(o),m=c;return{type:"pseudoCommand",value:o,target:c,start:n,end:e.endPos(),run:p=>m?T([m.ev(p),...s.map(d=>d.ev(p))],([d,...y])=>{F(d,u),p.result=ct(w(d,a),d,y,p,l),Ye(d,a)}):E(o.ev(p),d=>{p.result=d})}}}function Cr(t){t.commands.ask=(e,n,r)=>{let o=h(e);return{type:"askCommand",message:o,start:r,end:e.endPos(),run:s=>E(o.ev(s),c=>{s.result=prompt(String(c))})}},t.commands.answer=(e,n,r)=>{let o=h(e),i;if(e.match("with")){let c=e.withFollow(["or"],()=>h(e));e.req("or"),i=[c,h(e)]}return{type:"answerCommand",message:o,choices:i,start:r,end:e.endPos(),run:c=>T([o.ev(c),i?.[0].ev(c),i?.[1].ev(c)],([a,u,l])=>{i?c.result=confirm(String(a))?u:l:alert(String(a))})}}}function Sr(t){t.commands.breakpoint=(e,n,r)=>({type:"breakpointCommand",start:r,end:e.endPos(),run:()=>{debugger}})}var $t=(t,e,n)=>{let r=w(t,"slice");return H(r)?Reflect.apply(r,t,[e,n]):void 0},Yo=(t,e,n)=>({*[Symbol.iterator](){let r=new RegExp(t instanceof RegExp?t:String(t),e);for(let o=r.exec(n);o;o=r.exec(n))o[0].length===0&&r.lastIndex++,yield o}});function Pr(t){t.commands.pick=(e,n,r)=>{e.match("the");let o=e.matchAny("first","last","random","match","matches")??e.matchAny("item","items","character","characters");if(!o)return;let i=o.value==="first"||o.value==="last"||o.value==="random"||o.value==="match"||o.value==="matches"?o.value:"range",s={};(i==="match"||i==="matches")&&e.match("of"),e.withFollow(["of","from"],()=>{if(i==="first"||i==="last")s.count=h(e);else if(i==="random")e.cur().type==="NUMBER"&&(s.count=h(e));else if(i==="range")e.match("at")||e.match("from"),e.match("start")||(s.from=h(e)),(e.match("to")||e.matchOp(".."))&&(e.match("end")?s.toEnd=!0:s.to=h(e)),e.match("inclusive")?s.bounds="inclusive":e.match("exclusive")&&(s.bounds="exclusive");else{s.re=h(e);let g=e.matchOp("|")?e.reqType("IDENTIFIER").value:void 0;s.flags=i==="match"?g??"":g===void 0?"gu":"g"+g.replace("g","")}}),e.matchAny("of","from")||e.expected("of","from");let c=h(e),{count:a,from:u,to:l,toEnd:m,bounds:f,re:p,flags:d=""}=s;return{type:"pickCommand",variant:i,root:c,...s,start:r,end:e.endPos(),run:g=>T([c.ev(g),a?.ev(g),u?.ev(g),l?.ev(g),p?.ev(g)],([v,C,S,R,I])=>{if(v==null)g.result=v;else if(i==="first")g.result=$t(v,0,N(C));else if(i==="last")g.result=$t(v,-N(C));else if(i==="random"){let A=K(v)?Array.from(v):[],M=()=>A.splice(Math.floor(Math.random()*A.length),1)[0];g.result=C==null?M():Array.from({length:Math.min(N(C),A.length)},M)}else if(i==="range"){let A=N(S??0)+(f==="exclusive"?1:0),M=m?N(w(v,"length")):R==null?void 0:N(R),q=M===void 0?A+1:M+(f==="inclusive"?1:0);g.result=$t(v,A,q)}else i==="match"?g.result=new RegExp(I instanceof RegExp?I:String(I),d).exec(String(v)):g.result=Yo(I,d,String(v))})}}}var Xo={json:"json",JSON:"json",Object:"json",response:"response",Response:"response",html:"html",HTML:"html",text:"text",Text:"text",String:"text"};function Rr(t){t.commands.fetch=(e,n,r)=>{let o=e.withFollow(["as"],()=>Lt(e)),i=()=>{if(!e.match("as"))return;e.match("a")||e.match("an");let m=Se(e)??e.err("Expected dotOrColonPath");return Xo[m]??":"+m},s=i(),c;e.match("with")&&e.cur().value!=="{"?c=He(e):e.cur().op&&e.cur().value==="{"&&(c=Ge(e)),s??=i()??"text";let a=!1;e.match("do")?(e.req("not"),e.req("throw"),a=!0):e.cur().value==="don"&&e.tok(1,!0).value==="'"&&e.tok(2,!0).value==="t"&&(e.consume(),e.consume(),e.consume(),e.req("throw"),a=!0);let u=s;return{type:"fetchCommand",url:o,options:c,as:u,dontThrow:a,start:r,end:e.endPos(),run:m=>T([o.ev(m),c?.ev(m)],([f,p])=>{let d=m.me,y=W(p)?p:{};y.headers||={},y.conversion=u.startsWith(":")?u.slice(1):u;let g=new AbortController,v=()=>g.abort();Q(d)&&d.addEventListener("fetch:abort",v,{once:!0}),y.signal=g.signal,_(d,"hyperscript:beforeFetch",y,d),_(d,"fetch:beforeRequest",y,d);let C=!1;y.timeout&&setTimeout(()=>C||v(),N(y.timeout));let S=I=>{m.result=I,_(d,"fetch:afterRequest",{result:I}),C=!0},R=Reflect.apply(fetch,globalThis,[f,y]);return Promise.resolve(R).then(I=>{let A={response:I};_(d,"fetch:afterResponse",A);let M=A.response;if(!(M instanceof Response))throw new Error("fetch did not return a Response");if(!a&&u!=="response"&&Z.fetchThrowsOn.some(k=>k.test(String(M.status))))throw Object.assign(new Error(`fetch failed: ${M.status} ${M.statusText} (${f})`),{response:M,status:M.status});if(u==="response")return S(M);if(u==="json")return M.json().then(S);let q=u.startsWith(":")?u.slice(1):void 0,b=q?ge[q]:void 0;return b&&w(b,"_rawResponse")?S(b(M)):M.text().then(k=>S(u==="html"?ve(k):q?ot(k,q):k))}).catch(I=>{throw _(d,"fetch:error",{reason:I}),I}).finally(()=>Q(d)&&d.removeEventListener("fetch:abort",v))})}}}var Zo={top:"start",middle:"center",bottom:"end"},es={left:"start",center:"center",right:"end"},Ir=t=>{let e=t.matchAny("smoothly","instantly");return e?e.value==="smoothly"?"smooth":"instant":void 0};function Or(t){t.match("the");let e=t.matchAny("top","middle","bottom"),n=t.matchAny("left","center","right");(e||n)&&t.req("of");let r=$(t),o=t.matchAnyOp("+","-"),i=o?t.withFollow(["px"],()=>h(t)):void 0;t.match("px");let s=t.match("in")?$(t):void 0,c={block:e?Zo[e.value]:"start",inline:n?es[n.value]:"nearest"},a=Ir(t);return a&&(c.behavior=a),{target:r,offset:i,sign:o?.value==="-"?-1:o?1:0,options:c,container:s}}function Ar(t,e){return T([t.target.ev(e),t.offset?.ev(e),t.container?.ev(e)],([n,r,o])=>{let i=t.sign*N(r??0);O(n,s=>{let c=s===window?document.body:s;c instanceof HTMLElement&&(o instanceof HTMLElement?o.scrollTo({top:c.offsetTop-o.offsetTop+i,left:c.offsetLeft-o.offsetLeft,behavior:t.options.behavior??"auto"}):(t.sign?ts(c,i,t.options):c).scrollIntoView(t.options))})})}function ts(t,e,n){let r=t.getBoundingClientRect(),o=s=>s==="start"||s==="end"?e:0,i=document.createElement("div");return Object.assign(i.style,{position:"absolute",top:r.top+window.scrollY+o(n.block)+"px",left:r.left+window.scrollX+o(n.inline)+"px",height:r.height+"px",width:r.width+"px",zIndex:String(Number.MIN_SAFE_INTEGER),opacity:"0"}),document.body.appendChild(i),setTimeout(()=>i.remove(),100),i}function Lr(t){t.commands.scroll=(e,n,r)=>{let o={type:"scrollCommand",start:r,end:r,run:()=>{}};if(e.match("to")){let i=o.to=Or(e);o.run=s=>Ar(i,s)}else{let i=["up","down","left","right"],s=e.matchAny(...i),c;!s&&e.cur().value!=="by"&&(c=o.target=$(e),s=e.matchAny(...i)),e.req("by");let a=o.by=e.withFollow(["px"],()=>h(e));e.match("px");let u=o.behavior=Ir(e),l=o.direction=s?.value??"down";o.run=m=>T([c?.ev(m),a.ev(m)],([f,p])=>{let d=N(p)*(l==="up"||l==="left"?-1:1),y=l==="left"||l==="right",g={top:y?0:d,left:y?d:0};u&&(g.behavior=u),(x(f)?f:document.documentElement).scrollBy(g)})}return o.end=e.endPos(),o}}function Fr(t){t.commands.go=(e,n,r)=>{let o={type:"goCommand",back:!1,newWindow:!1,start:r,end:r,run:()=>{}},i=()=>e.match("in")?(e.req("new"),e.req("window"),!0):!1,s=c=>{if(c==null)return;if(x(c))return c.scrollIntoView({block:"start",inline:"nearest"});let a=String(c);a.startsWith("#")?window.location.hash=a:o.newWindow?window.open(a):window.location.href=a};if(e.match("back"))o.back=!0,o.run=()=>window.history.back();else if(e.match("to"),e.match("url")){let c=$e(e);o.newWindow=i(),o.run=()=>s(c)}else if(["the","top","middle","bottom","left","center","right"].includes(e.cur().value)){let c=o.scroll=Or(e);o.run=a=>Ar(c,a)}else{let c=o.target=Lt(e);o.newWindow=i(),o.run=a=>E(c.ev(a),s)}return o.end=e.endPos(),o}}function qr(t){t.commands.set=(e,n,r)=>Wt(e,r)}function Wt(t,e){{if(t.cur().op&&t.cur().value==="{"){let i=Ge(t);t.req("on");let s=h(t);return{type:"setCommand",target:s,object:i,start:e,end:t.endPos(),run:a=>T([i.ev(a),s.ev(a)],([u,l])=>void Object.assign(Object(l),u))}}let n=t.withFollow(["to"],()=>ie(t));t.req("to");let r=h(t);return{type:"setCommand",target:n,value:r,start:e,end:t.endPos(),run:i=>T([n.lhs?.(i),r.ev(i)],([s,c])=>n.put?.(i,s,c))}}}function _r(t){t.commands.default=(e,n,r)=>{let o=e.withFollow(["to"],()=>ie(e));e.req("to");let i=h(e);return{type:"defaultCommand",target:o,value:i,start:r,end:e.endPos(),run:c=>E(o.ev(c),a=>{if(!(a!=null&&a!==""))return T([o.lhs?.(c),i.ev(c)],([u,l])=>o.put?.(c,u,l))})}}}function jr(t){for(let e of["increment","decrement"]){let n=e==="increment"?1:-1;t.commands[e]=(r,o,i)=>{let s=r.withFollow(n<0?["by"]:[],()=>ie(r)),c=r.match("by")?h(r):void 0;return{type:`${e}Command`,target:s,amount:c,start:i,end:r.endPos(),run:u=>T([s.ev(u),c?.ev(u),s.lhs?.(u)],([l,m,f])=>{let p=(l?parseFloat(String(l)):0)+n*(c?parseFloat(String(m)):1);u.result=p,s.put?.(u,f,p)})}}}}function Mr(t,e){t.replaceChildren(ve(e)),z.process(t)}var ns=["arrayIndex","propertyAccess","possessive","ofExpression","attributeRef","styleRef","attributeRefAccess"],rs={into:"into",before:"before",after:"after",start:"start",end:"end"},os={before:"before",after:"after",start:"prepend",end:"append"};function Dr(t){t.commands.put=(e,n,r)=>{let o=h(e),i=e.matchAny("into","before","after");!i&&e.match("at")&&(e.match("the"),i=e.matchAny("start","end"),e.req("of"));let s=rs[(i??e.expected("into","before","at start of","at end of","after")).value],c=je(h(e)),a=e.text(c),u=(f,p)=>c.type==="symbol"?E(c.ev(f),d=>{x(d)||d instanceof Document?Mr(d,p):c.put?.(f,void 0,p)}):ns.includes(c.type)?E(c.lhs?.(f),d=>c.put?.(f,d,p)):E(c.ev(f),d=>{F(d,a),O(d,y=>{(x(y)||y instanceof Document)&&Mr(y,p)})}),l=(f,p,d)=>E(c.ev(f),y=>{if(F(y,a),Array.isArray(y)){d==="prepend"?y.unshift(p):y.push(p),P.wroteProperty(y);return}O(y,g=>{x(g)&&(g[d](p instanceof Node?p:ve(p)),z.process(g.parentElement??g))})});return{type:"putCommand",value:o,operation:s,target:c,start:r,end:e.endPos(),run:f=>E(o.ev(f),p=>s==="into"?u(f,p):l(f,p,os[s]))}}}var Ie=t=>K(t)?Array.from(t):Array.from(Object(t)),Gr=t=>Array.isArray(t)||t instanceof NodeList?Ie(t).map(Gr).join(""):t instanceof HTMLElement?t.outerHTML:t instanceof Node?"":String(t);function ss(t){let e={},n=r=>{let o=w(r,"name"),i=w(r,"value"),s=w(r,"type");if(typeof o!="string"||i==null||s==="radio"&&!w(r,"checked")||(s==="checkbox"?i=w(r,"checked")?[i]:void 0:r instanceof HTMLSelectElement&&r.multiple&&(i=Array.from(r.selectedOptions,a=>a.value)),i===void 0))return;let c=e[o];e[o]=c===void 0?i:(Array.isArray(c)?c:[c]).concat(i)};return O(t,r=>{w(r,"name")!=null&&w(r,"value")!=null?n(r):r instanceof Element&&r.querySelectorAll("input,select,textarea").forEach(n)}),e}function Hr(t){Object.assign(ge,{Boolean:e=>!!e,Date:e=>typeof e=="number"||e instanceof Date?new Date(e):new Date(String(e)),Array:Ie,JSON:e=>e instanceof Response?e.json():JSON.parse(String(e)),JSONString:e=>JSON.stringify(e),Object:e=>typeof e=="string"||e instanceof String?JSON.parse(String(e)):{...Object(e)},FormEncoded:e=>new URLSearchParams(Object(e)).toString(),Set:e=>new Set(Ie(e)),Map:e=>new Map(Object.entries(Object(e))),Keys:e=>e instanceof Map?Array.from(e.keys()):Object.keys(Object(e)),Entries:e=>e instanceof Map?Array.from(e.entries()):Object.entries(Object(e)),Reversed:e=>Ie(e).reverse(),Unique:e=>[...new Set(Ie(e))],Flat:e=>Ie(e).flat(),HTML:Gr}),Me.push((e,n)=>{if(e==="Fixed"||e.startsWith("Fixed:"))return Number(n).toFixed(parseInt(e.split(":")[1])||0)},(e,n)=>e==="Values"?ss(n):void 0)}var $r="=;expires=Thu, 01 Jan 1970 00:00:00 GMT",Ve=()=>document.cookie?document.cookie.split("; ").map(t=>{let e=t.indexOf("=");return{name:t.slice(0,e),value:decodeURIComponent(t.slice(e+1))}}):[],is=new Proxy({},{get(t,e){if(e===Symbol.iterator){let n=Ve();return n[Symbol.iterator].bind(n)}if(!(typeof e!="string"||e==="then"))return e==="length"?Ve().length:e==="clear"?n=>void(document.cookie=n+$r):e==="clearAll"?()=>Ve().forEach(n=>document.cookie=n.name+$r):e!==""&&!Number.isNaN(Number(e))?Ve()[parseInt(e)]:Ve().find(n=>n.name===e)?.value},set(t,e,n){let r=[];if(typeof n=="string")r.push(encodeURIComponent(n),"samesite=lax");else{r.push(encodeURIComponent(String(w(n,"value"))));let o=(i,s)=>{let c=w(n,i);c&&r.push(`${s}=${c}`)};o("expires","expires"),o("maxAge","max-age"),o("partitioned","partitioned"),o("path","path"),o("samesite","samesite"),w(n,"secure")&&r.push("secure")}return document.cookie=String(e)+"="+r.join(";"),!0}});function Wr(t){xt.cookies=is}var Bt=t=>K(t)?Array.from(t):[];function as(t){let e=t.pos(),n=t.matchAny("first","last","random");if(!n)return;t.matchAny("in","from","of");let r=$(t),o=n.value;return{type:"positionalExpression",operator:o,root:r,start:e,end:t.endPos(),ev:s=>E(r.ev(s),c=>{if(!c)return;let a=Array.isArray(c)?c:Bt(w(c,"children")??c),u=o==="first"?0:o==="last"?a.length-1:Math.floor(Math.random()*a.length);return a[u]})}}function cs(t){let e=t.pos(),n=t.matchAny("next","previous");if(!n)return;let r=n.value==="next",o=At(t)??t.err("Expected leaf"),i=t.match("from")?t.withFollow(["in"],()=>$(t)):U(t),s=t.match("in")?$(t):void 0,c=!s&&t.match("within")?$(t):void 0,a=!!t.match("with");a&&t.req("wrapping");let u=t.text(o),l=(p,d,y)=>{let g=d instanceof Element||d instanceof Document?d:document.body,v=Array.from(g.querySelectorAll(y));if(!(p instanceof Node))return;let C=r?Node.DOCUMENT_POSITION_PRECEDING:Node.DOCUMENT_POSITION_FOLLOWING,S=r?v:v.reverse();return S.find(R=>R.compareDocumentPosition(p)===C)??(a?S[0]:void 0)},m=(p,d,y)=>{let g=Bt(d).filter(R=>R===p||x(R)&&R.matches(y)),v=r?g:g.reverse(),C=v[v.indexOf(p)+1];if(v.includes(p)&&C!==void 0)return C;let S=v[0];return a&&x(S)&&S.matches(y)?S:void 0};return{type:"relativePositionalExpression",operator:n.value,thing:o,from:i,inElt:s,withinElt:c,wrapping:a,start:e,end:t.endPos(),ev:p=>T([o.ev(p),i.ev(p),s?.ev(p),c?.ev(p)],([d,y,g,v])=>{let C=w(d,"css");if(typeof C!="string")throw new Error("Expected a CSS value to be returned by "+u);return s?g&&m(y,g,C):l(y,v,C)})}}function us(t){let e=t.pos();if(!t.match("closest"))return;let n=!!t.match("parent"),r=t.cur().type==="ATTRIBUTE_REF"?Y(t):void 0,o=r?`[${r.name}]`:$(t).css??t.err("Expected a CSS expression"),i=t.match("to")?h(t):U(t),s={type:"closestExpr",css:o,parentSearch:n,to:i,start:e,end:t.endPos(),ev:c=>E(i.ev(c),a=>{if(a==null)return null;let u=[];return O(a,l=>{let m=n?w(l,"parentElement"):l;u.push(x(m)?m.closest(o):null)}),Ne(a)?u:u[0]}),lhs:c=>s.ev(c),put:(c,a,u)=>{a&&Ee(a,u)}};return r?Mt(t,s,r):s}var Br=["where","sorted","mapped","split","joined"];function ls(t,e){let n=t.matchAny(...Br);if(!n)return;let r=n.value;r==="mapped"?t.req("to"):r!=="where"&&t.req("by");let o=t.withFollow(Br,()=>h(t)),i=r==="sorted"&&!!t.match("descending"),s=(u,l)=>{let m=l.map(f=>(u.beingTested=f,a.varName&&(u.locals[a.varName]=f),o.ev(u)));return u.beingTested=null,m},c=(u,l)=>{if(!l)return l;if(r==="split")return E(o.ev(u),d=>String(l).split(String(d)));let m=Bt(l);if(r==="joined")return E(o.ev(u),d=>m.join(String(d)));let f=s(u,m);if(r==="where")return m.filter((d,y)=>f[y]);if(r==="mapped")return f;let p=i?-1:1;return m.map((d,y)=>y).sort((d,y)=>f[d]==f[y]?0:(N(f[d])<N(f[y])?-1:1)*p).map(d=>m[d])},a={type:"collectionExpression",operator:r==="where"||r==="sorted"||r==="mapped"||r==="split"?r:"joined",root:e,operand:o,descending:i,start:e.start,end:t.endPos(),ev:u=>E(e.ev(u),l=>c(u,l))};return a}function ds(t){let e=t.pos();if(!t.matchOp("\\"))return;let n=[],r=t.matchType("IDENTIFIER");if(r)for(n.push(r.value);t.matchOp(",");)n.push(t.reqType("IDENTIFIER").value);t.reqOp("-"),t.reqOp(">");let o=h(t);return{type:"blockLiteral",params:n,expr:o,start:e,end:t.endPos(),ev:s=>(...c)=>(n.forEach((a,u)=>s.locals[a]=c[u]),o.ev(s))}}function fs(t){let e=t.pos();if(t.match("some"))return Ce(t,"some",e,h(t),n=>!_e(n),!1)}function ms(t,e){if(!t.matchOp(":"))return;let n=t.reqType("IDENTIFIER").value,r=!t.matchOp("!");return{type:"typeCheckExpression",root:e,suffix:n,start:e.start,end:t.endPos(),ev:i=>E(e.ev(i),s=>{if(rt(s,n,r))return s;throw new Error("Typecheck failed! Expected: "+n)})}}function ps(t){let e=t.pos();if(!t.match("beep!"))return;let n=$(t),r=t.text(n);return Ce(t,"beepExpression",e,n,(o,i)=>{if(_(i.me,"hyperscript:beep",{element:i.me,expression:n,value:o})){let s=o==null?"object (null)":w(w(o,"constructor"),"name")??"unknown",c=typeof o=="string"?`"${o}"`:Ne(o)?Array.from(o):o;console.log(`///_ BEEP! The expression (${r}) evaluates to:`,c,"of type "+s)}return o},!1)}function Ur(t){t.leaves.push(us,fs,ds),t.unaries.push(ps,cs,as),t.postfixes.push(ms),t.collections.push(ls)}var Ut=t=>Se(t)??t.err("Expected dotOrColonPath");function Vr(t){t.features.def=(e,n)=>{let r=Ut(e),o=r.split("."),i=o.pop()??r,s=[];if(e.matchOp("(")&&!e.matchOp(")")){do s.push(e.reqType("IDENTIFIER").value);while(e.matchOp(","));e.reqOp(")")}let c=D(e),a={type:"defFeature",name:r,displayName:`${i}(${s.join(", ")})`,params:s,body:c,...ft(e),start:n,end:e.endPos(),install:(u,l)=>{kt(u,o,i,Object.assign((...f)=>{let p=B(l,a,u,null);s.forEach((y,g)=>p.locals[y]=f[g]);let d=E(it(p,c,a),y=>w(y,"value"));return J(d)&&a.finallyHandler?d.then(void 0,()=>{}):d},{hyperfunc:!0,hypername:r}))}};return a}}function zr(t){t.features.init=(e,n)=>{let r=!!e.match("immediately"),o=D(e),i={type:"initFeature",body:o,immediately:r,start:n,end:e.endPos(),install:s=>{let c=()=>void j(o,B(s,i,s,null));r?c():queueMicrotask(c)}};return i}}function Qr(t){t.features.behavior=(e,n)=>{let r=Ut(e),o=r.split("."),i=o.pop()??r,s=[];if(e.matchOp("(")&&!e.matchOp(")")){do s.push(e.reqType("IDENTIFIER").value);while(e.matchOp(","));e.reqOp(")")}let c=We(e).features;for(let u of c)u.behavior=r;return{type:"behaviorFeature",name:r,params:s,features:c,start:n,end:e.endPos(),install:()=>kt(null,o,i,(u,l,m)=>{if(W(u))for(let f of s)Te(u,r+"Scope")[f]=w(m,f);for(let f of c)f.install(u,l)})}}}function Jr(t){t.features.install=(e,n)=>{let r=Ut(e),o=lt(e),i={type:"installFeature",name:r,args:o,start:n,end:e.endPos(),install:(s,c)=>{let a=globalThis;for(let u of r.split("."))if(a=w(a,u),typeof a!="object"&&typeof a!="function")throw new Error("No such behavior defined as "+r);if(!H(a))throw new Error(r+" is not a behavior");a(s,c,o?.ev(B(s,i,s,null)))}};return i}}function Kr(t){t.features.set=(e,n)=>{let r=Wt(e,n);"scope"in r.target&&r.target.scope==="local"&&e.err("variables declared at the feature level cannot be locally scoped (use :foo, ^foo, $foo, or an @attribute target instead).");let o={type:"setFeature",command:r,start:n,end:e.endPos(),install:i=>queueMicrotask(()=>void r.run(B(i,o,i,null)))};return o}}function hs(t,e){if(typeof t!="object"||t===null)return{queue:[],executing:!1};let n=V(t).eventQueues??=new Map,r=n.get(e);return r||n.set(e,r={queue:[],executing:!1}),r}function Vt(t,e){let n=hs(t.me,e);if(n.executing&&!e.every){if(e.queue==="none"||e.queue==="first"&&n.queue.length>0)return;e.queue!=="all"&&(n.queue.length=0),n.queue.push(t);return}n.executing=!0;let r=o=>{n.executing=!1;let i=n.queue.shift();if(i&&setTimeout(()=>Vt(i,e),1),o){let{error:s}=o;console.error(w(s,"message")??s),console.error(w(s,"stack")),_(t.me,"exception",{error:s})}};ye(()=>E(it(t,e.body,e),()=>r()),o=>r({error:o}))}function ys(t,e){if(!Q(e))return;let n=V(e),r=n.listeners??=[],o=n.observers??=[],i=n.timers??=new Set;for(let s of t.events){let c={execCount:0},a=s.elsewhere?[document]:s.from?s.from.ev(B(e,t,e,null)):[e];O(a,u=>{if(!Q(u)){console.warn("'%s' feature ignored because target does not exists:",t.displayName,e);return}let l=s.on;if(s.mutationSpec&&u instanceof Node){l="hyperscript:mutation";let f=new MutationObserver(p=>_(u,l,{mutationList:p,observer:f}));f.observe(u,s.mutationSpec),o.push(f)}if(s.intersectionSpec&&u instanceof Element){l="hyperscript:intersection";let f=new IntersectionObserver(p=>{for(let d of p)_(u,l,{observer:f,entry:d,intersecting:d.isIntersecting,isIntersecting:d.isIntersecting,intersectionRatio:d.intersectionRatio})},s.intersectionSpec);f.observe(u),o.push(f)}if(s.resizeSpec&&u instanceof Element){l="hyperscript:resize";let f=new ResizeObserver(p=>{for(let d of p){let{width:y,height:g}=d.contentRect;_(u,l,{width:y,height:g,contentRect:d.contentRect,entry:d})}});f.observe(u),o.push(f)}let m=f=>{if(e instanceof Node&&u!==e&&!e.isConnected){u.removeEventListener(l,m);return}let p=B(e,t,e,f);if(!(s.elsewhere&&e instanceof Node&&f.target instanceof Node&&e.contains(f.target))){s.from&&(p.result=u);for(let d of s.args){let y=w(f,d);y!==void 0?p.locals[d]=y:p.detail!=null&&(p.locals[d]=w(p.detail,d))}if(s.filter){p.meta.context=f;try{if(!s.filter.ev(p))return}finally{p.meta.context=void 0}}if(s.inExpr?.css){let d=f.target instanceof Element?f.target:null;for(;d&&!d.matches(s.inExpr.css);)d=d.parentElement;if(!d)return;p.result=d}if(c.execCount++,s.startCount){let d=c.execCount;if(s.endCount?d<s.startCount||d>s.endCount:s.unbounded?d<s.startCount:d!==s.startCount)return}if(s.debounceTime){c.debounced&&(clearTimeout(c.debounced),i.delete(c.debounced)),i.add(c.debounced=setTimeout(()=>Vt(p,t),s.debounceTime));return}if(s.throttleTime){if(c.lastExec&&Date.now()<c.lastExec+s.throttleTime)return;c.lastExec=Date.now()}Vt(p,t)}};u.addEventListener(l,m),r.push({target:u,event:l,handler:m})})}}function gs(t){if(!t.match("of"))return{attributes:!0,characterData:!0,childList:!0,attributeOldValue:!0,characterDataOldValue:!0};let e={};do if(t.match("anything"))Object.assign(e,{attributes:!0,subtree:!0,characterData:!0,childList:!0});else if(t.match("childList"))e.childList=!0;else if(t.match("attributes"))e.attributes=!0;else if(t.match("subtree"))e.subtree=!0;else if(t.match("characterData"))e.characterData=!0;else if(t.cur().type==="ATTRIBUTE_REF"){let n=t.consume().value;n.startsWith("@")||t.err("Only shorthand attribute references are allowed here"),(e.attributeFilter??=[]).push(n.substring(1))}else t.err("Unknown mutation config specification");while(t.match("or"));return(e.attributes||e.attributeFilter)&&(e.attributeOldValue=!0),e.characterData&&(e.characterDataOldValue=!0),e}function ws(t){let e={};if(t.match("with")){let n=De(h(t));n instanceof Element&&(e.root=n)}if(t.match("having"))do t.match("margin")?e.rootMargin=$e(t):t.match("threshold")?e.threshold=Number(De(h(t))):t.err("Unknown intersection config specification");while(t.match("and"));return e}function vs(t,e){let n=ae(t),r=mt(t),o;t.matchOp("[")&&(o=h(t),t.reqOp("]"));let i,s,c=!1;e?i=1:t.cur().type==="NUMBER"&&(i=parseInt(t.consume().value),t.match("to")?s=parseInt(t.consume().value):t.match("and")&&(c=!0,t.req("on")));let a={on:n,args:r,filter:o,startCount:i,endCount:s,unbounded:c,elsewhere:!1,resizeSpec:n==="resize"};n==="intersection"?a.intersectionSpec=ws(t):n==="mutation"&&(a.mutationSpec=gs(t)),t.match("from")&&(t.match("elsewhere")?a.elsewhere=!0:a.from=t.withFollow(["or"],()=>h(t))),!a.from&&!a.elsewhere&&t.match("elsewhere")&&(a.elsewhere=!0),t.match("in")&&(a.inExpr=$(t));let u=()=>(t.req("at"),Number(De($(t))));return t.match("debounced")?a.debounceTime=u():t.match("throttled")&&(a.throttleTime=u()),a}function Yr(t){t.features.on=(e,n)=>{let r=!!e.match("every"),o=!r&&!!e.match("first"),i=[];do i.push(vs(e,o));while(e.match("or"));let s="last";!r&&e.match("queue")&&(e.match("all")?s="all":e.match("first")?s="first":e.match("none")?s="none":e.req("last"));let c=D(e),a={type:"onFeature",displayName:"on "+i.map(u=>u.on).join(" or "),events:i,body:c,every:r,queue:s,...ft(e),start:n,end:e.endPos(),install:u=>ys(a,u)};return a}}var Ae=new WeakMap,eo=new Map,Jt=new Map,wt=new Map,Kt=new Map,ze=new Set,Qe=new WeakMap,Es=0,me,zt=!1;function ke(t){let e=Ae.get(t);return e||Ae.set(t,e={id:++Es}),e}var ht=t=>typeof t=="object"&&t!==null;function bs(t,e){let n=me;me=t,P.tracking=!0;try{return e()}finally{me=n,P.tracking=n!==void 0}}var Qt=class{constructor(e,n,r){this.expression=e;this.handler=n;this.element=r}dependencies=new Map;stopped=!1;last;triggers=0;evaluate(){try{return this.next=bs(this,this.expression),!0}catch(e){return console.error("Error in reactive expression:",e),!1}}next;handle(e){try{this.handler(e)}catch(n){console.error("Error in reactive handler:",n)}}initialize(){this.evaluate()&&(this.last=this.next),Xr(this),this.last!=null&&this.handle(this.last)}run(){if(++this.triggers>100){console.error("Reactivity loop detected: an effect triggered 100 consecutive times without settling. This usually means an effect is modifying a variable it also depends on.",this.element??this);return}Zr(this);let e=this.dependencies;this.dependencies=new Map;let n=this.evaluate();n||(this.dependencies=e),Xr(this),n&&!Object.is(this.next,this.last)&&(this.last=this.next,this.handle(this.next))}settled(){this.triggers=0}stop(){this.stopped||(this.stopped=!0,Zr(this),ze.delete(this))}};function xs(t){t.stopped||(ze.add(t),!zt&&(zt=!0,queueMicrotask(()=>{zt=!1;let e=Array.from(ze);ze.clear();for(let n of e)n.stopped||(n.element&&!n.element.isConnected?n.stop():n.run());if(ze.size===0)for(let n of e)n.settled()})))}var Oe=t=>t?.forEach(xs);function to(t){for(let[e,n]of Kt)for(let r of t)if(e.contains(r)){Oe(n);break}}var yt;function ks(){yt??=new MutationObserver(t=>{let e=new Set;for(let n of t){if(n.type==="attributes"){let r=Ae.get(n.target);r&&Oe(Jt.get(`${n.attributeName}:${r.id}`))}e.add(n.target)}to(e)}),yt.observe(document,{attributes:!0,childList:!0,subtree:!0}),document.addEventListener("input",gt,!0),document.addEventListener("change",gt,!0)}function gt(t){let e=t.target;if(!(e instanceof Element))return;let n=Ae.get(e);n&&Oe(wt.get(n.id)),to([e])}function Ns(t,e,n){let r=t.get(e);r||t.set(e,r=new Set),r.add(n)}function Ts(t,e,n){let r=t.get(e);r?.delete(n),r?.size===0&&t.delete(e)}function no(t,e){let n=!1;for(let r of t.dependencies.values())r.type==="global"?e(eo,r.name,t):r.type==="element"?e(ke(r.element).symbols??=new Map,r.name,t):(n=!0,r.type==="query"?e(Kt,r.root,t):r.type==="property"?e(wt,ke(r.object).id,t):e(Jt,`${r.name}:${ke(r.element).id}`,t));return n}function Xr(t){no(t,Ns)&&ks()}function Zr(t){no(t,Ts),yt&&!Jt.size&&!wt.size&&!Kt.size&&(yt.disconnect(),document.removeEventListener("input",gt,!0),document.removeEventListener("change",gt,!0))}function Le(t,e,n){let r=new Qt(t,e,n);return r.initialize(),n&&(Qe.has(n)||Qe.set(n,new Set),Qe.get(n)?.add(r)),()=>r.stop()}function Cs(){P.readGlobal=t=>void me?.dependencies.set("symbol:global:"+t,{type:"global",name:t}),P.readElement=(t,e)=>{ht(e)&&me?.dependencies.set(`symbol:element:${t}:${ke(e).id}`,{type:"element",name:t,element:e})},P.readProperty=t=>{ht(t)&&!w(t,"_hsSkipTracking")&&me?.dependencies.set("property:"+ke(t).id,{type:"property",object:t})},P.readAttribute=(t,e)=>{x(t)&&me?.dependencies.set(`attribute:${e}:${ke(t).id}`,{type:"attribute",name:e,element:t})},P.wroteGlobal=t=>Oe(eo.get(t)),P.wroteElement=(t,e)=>{ht(e)&&Oe(Ae.get(e)?.symbols?.get(t))},P.readQuery=t=>void me?.dependencies.set("query:"+ke(t).id,{type:"query",root:t}),P.wroteProperty=t=>{let e=ht(t)&&!w(t,"_hsSkipTracking")&&Ae.get(t);e&&Oe(wt.get(e.id))},P.stop=t=>{Qe.get(t)?.forEach(e=>e.stop()),Qe.delete(t)}}var Ss=t=>e=>{console.error(w(e,"message")??e),_(t,"exception",{error:e})};function Ps(t){t.features.when=(e,n)=>{let r=[];do r.push(e.withFollow(["or"],()=>h(e)));while(e.match("or"));for(let s of r)s.type==="symbol"&&"scope"in s&&s.scope==="local"&&s.name&&e.err(`Cannot watch local variable '${s.name}'. Local variables are not reactive. Use '$${s.name}' (global) or ':${s.name}' (element-scoped) instead.`);e.req("changes");let o=D(e),i={type:"whenFeature",displayName:"when ... changes",watched:r,body:o,start:n,end:e.endPos(),install:s=>queueMicrotask(()=>{let c=()=>B(s,i,s,null);for(let a of r)Le(()=>a.ev(c()),u=>{let l=c();l.result=u,ye(()=>E(j(o,l),()=>{}),Ss(s))},x(s)?s:void 0)})};return i}}function Rs(t){t.features.live=(e,n)=>{let r=D(e),o={type:"liveFeature",displayName:"live",body:r,start:n,end:e.endPos(),install:i=>queueMicrotask(()=>Le(()=>void j(r,B(i,o,i,null)),()=>{},x(i)?i:void 0))};return o}}function Is(t){if(t instanceof HTMLInputElement){let n=t.getAttribute("type")??"text";return n==="checkbox"?"checked":n==="number"||n==="range"?"valueAsNumber":"value"}if(t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)return"value";let e=t.getAttribute("contenteditable");if(e!==null&&e!=="false")return"textContent";if(t.tagName.includes("-")&&"value"in t)return"value";throw new Error(`bind cannot auto-detect a property for <${t.tagName.toLowerCase()}>. Use an explicit property (e.g. 'bind $var to #el's value').`)}function Os(t){if(t instanceof HTMLInputElement&&t.type==="radio")return{element:t,writable:!0,read:()=>ue(t,"checked")?t.value:void 0,write:n=>t.checked=n===t.value};let e=Is(t);return{element:t,writable:!0,read:()=>{let n=ue(t,e);return e==="valueAsNumber"&&Number.isNaN(n)?null:n},write:n=>void Reflect.set(t,e,n)}}function As(t,e,n){let r=e.you||e.me;if(t.type==="classRef"&&"className"in t&&typeof t.className=="string")x(r)&&r.classList.toggle(t.className,!!n);else if(t.type==="attributeRef"&&typeof n=="boolean"&&t.name){if(!x(r))return;t.name.startsWith("aria-")?r.setAttribute(t.name,String(n)):r.toggleAttribute(t.name,n)}else E(t.lhs?.(e),o=>t.put?.(e,o,n))}function Ls(t,e,n){let r=()=>B(e,n,e,null);if(t.type==="classRef"&&"className"in t&&typeof t.className=="string"){let o=t.className;return{writable:!0,read:()=>(we(e,"class"),x(e)&&e.classList.contains(o)),write:i=>void(x(e)&&e.classList.toggle(o,!!i))}}return{writable:t.type==="attributeRef"||!!t.put,read:()=>t.ev(r()),write:o=>As(t,r(),o)}}function Fs(t){t.features.bind=(e,n)=>{let r=e.withFollow(["and","with","to"],()=>h(e));e.matchAny("and","with","to")||e.expected("and","with","to");let o=h(e),i={type:"bindFeature",displayName:"bind",left:r,right:o,start:n,end:e.endPos(),install:s=>queueMicrotask(()=>{let c=x(s)?s:void 0,a=u=>{let l=u.ev(B(s,i,s,null));return x(l)?Os(l):Ls(u,s,i)};try{let u=a(r),l=a(o);if(!u.writable&&!l.writable)throw new Error("bind requires at least one writable side");u.writable&&Le(l.read,u.write,c),l.writable&&Le(u.read,l.write,c);for(let[m,f]of[[u,l],[l,u]]){let p=m.element?.closest("form");if(!p||!c)continue;let d=()=>setTimeout(()=>c.isConnected&&f.write(m.read()),0);p.addEventListener("reset",d),(V(c).listeners??=[]).push({target:p,event:"reset",handler:d})}}catch(u){console.error(w(u,"message")??u)}})};return i}}function ro(t){Cs(),Ps(t),Rs(t),Fs(t)}var oo="#text";function Ms(t){let e=[],n=0,r=0;for(let o of t.split(/(?<=\n)/)){n++;let i=o.trimStart(),s=r+o.length-i.length;if(r+=o.length,!i||/^(--|\/\/)(\s|$|[-/])/.test(i))continue;let c=s-(r-o.length);if(/^#[a-zA-Z]/.test(i))for(let a of de(i.slice(1)))a.start+=s+1,a.end+=s+1,a.line=n,a.column+=c+1,e.push(a);else{let a=i.replace(/\r?\n$/,`
19
+ `);e.push({type:"IDENTIFIER",value:oo,content:a,start:s,end:r,line:n,column:c})}}return e}var Yt=[];function Xt(t,e){let n=Yt=[],r=new Pe(t,Ms(e),e),o=D(r);return r.hasMore()&&r.err(),{commands:o,errors:n}}var so=t=>String(t).replace(/[&<>"']/g,e=>`&${qs[e]};`),qs={"&":"amp","<":"lt",">":"gt",'"':"quot","'":"#039"};function _s(t,e){let n=t.child(de(e),e),r=!n.match("unescaped"),o=h(n);if(!n.match("if"))return{value:o,escape:r};let i=h(n);return{value:o,condition:i,otherwise:n.match("else")?h(n):void 0,escape:r}}function js(t,e){let{content:n="",line:r}=t.last,o=[];for(let c=0;c<n.length;){let a=n.indexOf("${",c);if(a===-1){o.push(n.slice(c));break}a>c&&o.push(n.slice(c,a));let u=1,l=a+2;for(;l<n.length&&u>0;l++)n[l]==="{"?u++:n[l]==="}"&&u--;if(u>0){let f=n.slice(a);Yt.push({line:r,message:"Unterminated ${} expression",expr:f});break}let m=n.slice(a+2,l-1);try{o.push(_s(t,m))}catch(f){Yt.push({line:r,message:f instanceof Error?f.message:String(f),expr:m})}c=l}let i=(c,a)=>typeof c=="string"?c:c.condition?E(c.condition.ev(a),u=>u?c.value.ev(a):c.otherwise?.ev(a)):c.value.ev(a),s=(c,a)=>typeof c=="string"?c:a==null?"":c.escape?so(a):String(a);return{type:"templateText",parts:o,start:e,end:t.endPos(),run:c=>T(o.map(a=>i(a,c)),a=>{c.meta.template?.out.push(a.map((u,l)=>s(o[l],u)).join(""))})}}var Ds=/<!--hs-scope:[^>]*-->/g;function Zt(t,e,n){let r=[],o={};return e.meta.template={out:r,loops:o},E(j(t,e),()=>n(r.join(""),o))}function Gs(t){let e=t.closest('[data-live-template], [dom-scope="isolated"]'),n=e&&ce(e)?.loops;if(n)for(let r=t;r&&r!==e;r=r.parentElement)for(let o=r.previousSibling;o;o=o.previousSibling){if(!(o instanceof Comment)||!o.data.startsWith("hs-scope:"))continue;let[,i,s]=o.data.split(":"),c=n[i];if(c){let a=parseInt(s),u=Te(t);c.identifier&&(u[c.identifier]=Reflect.get(Object(c.source),a)),c.indexIdentifier&&(u[c.indexIdentifier]=a)}break}}function io(t){z.enter=Gs,t.commands[oo]=(e,n,r)=>js(e,r),t.commands.render=(e,n,r)=>{let o=h(e),i=e.match("with")?He(e):void 0,s=!!e.match("here"),c=!s&&e.match("into")?h(e):void 0,a=e.text(o);return{type:"renderCommand",template:o,args:i,here:s,target:c,start:r,end:e.endPos(),run:l=>T([o.ev(l),i?.ev(l),c?.ev(l)],([m,f,p])=>{if(!x(m))throw new Error(a+" is not an element");let d;try{d=Xt(t,m.textContent??"")}catch(g){console.error("hyperscript template parse error:",g instanceof Error?g.message:g),l.result="";return}for(let g of d.errors)console.error(`hyperscript template error (line ${g.line}): ${g.message}`+(g.expr?" in ${"+g.expr+"}":""));let y=B(l.me,void 0,l.me,null);return Object.assign(y.locals,l.locals,f),Zt(d.commands,y,(g,v)=>{l.result=g.replace(Ds,"");for(let C of[s?l.me:void 0,p])x(C)&&(V(C).loops=v,C.innerHTML=g)})})}},t.leaves.push(e=>{let n=e.pos();if(!e.match("escape"))return;let r=e.reqType("IDENTIFIER").value,o=!!e.match("unescaped"),i=h(e);return{type:"escapeExpression",value:i,start:n,end:e.endPos(),ev:c=>E(i.ev(c),a=>{if(o)return a;if(a==null)return"";if(r!=="html")throw new Error("Unknown escape: "+r);return so(a)})}})}function ao(t){let e=new WeakSet;Re.addBeforeProcessHook(n=>{for(let r of n.querySelectorAll('script[type="text/hyperscript-template"][live]')){if(e.has(r))continue;e.add(r);let o=r.textContent??"",i=r.getAttribute("_")||r.getAttribute("data-script");r.removeAttribute("_"),r.removeAttribute("data-script");let s=document.createElement("div");s.style.display="contents",s.setAttribute("data-live-template",""),r.after(s),i&&(s.setAttribute("_",i),z.process(s));let c=()=>{let l;try{l=Xt(t,o).commands}catch(f){return console.error("live-template parse error:",f instanceof Error?f.message:f),""}let m=B(s,void 0,s,null);return Zt(l,m,(f,p)=>(V(s).loops=p,f))},a=!1,u=l=>{if(J(l))return void l.then(u);if(a)return Ht(s,l);s.innerHTML=String(l),z.process(s),a=!0};queueMicrotask(()=>E(c(),l=>{u(l),Le(c,u,s)}))}})}var co=[Yr,Vr,zr,Qr,Jr,Kr,dr,ro,ao,Hr,Ur,Wr,zn,Qn,Kn,Zn,er,tr,rr,or,sr,ir,ar,qr,_r,jr,Dr,Pr,_n,mr,pr,hr,Dn,Gn,Hn,cr,ur,Rr,Fr,Lr,Mn,Fn,qn,kr,Nr,Tr,Cr,Sr,io,xr,On,An];xn(...co);In();Reflect.set(globalThis,"hyperfixi",Reflect.get(globalThis,"hyperfixi")??Re);})();
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The engine as a library.
3
+ *
4
+ * An engine is assembled from grammar modules: `register(on, add, toggle)` makes those three
5
+ * exist, and nothing else. `boot()` installs it as `window._hyperscript` and initialises the
6
+ * document. Every module below is a function to pass to `register`.
7
+ */
8
+ export { api, boot, cleanup, evaluate, grammar, parse, parseProgram, processNode, register, } from './engine';
9
+ export type { Module, Parsed, SourceTransform } from './engine';
10
+ export { everything } from './everything';
11
+ export { ParseError, Parser, createGrammar, formatError } from './parser';
12
+ export type { ChainRule, CommandRule, FeatureRule, Grammar, LeafRule } from './parser';
13
+ export { tokenize } from './tokenizer';
14
+ export type { Token } from './tokenizer';
15
+ export { config } from './runtime';
16
+ export type { Config } from './runtime';
17
+ export type * from './ast';
18
+ export { on } from './on';
19
+ export { behavior, def, init, install, setFeature } from './features';
20
+ export { createEffect, reactivity } from './reactivity';
21
+ export { liveTemplates } from './live-templates';
22
+ export { conversions } from './conversions';
23
+ export { cookies } from './cookies';
24
+ export { expressionsExtra } from './expressions-extra';
25
+ export { settle, transition, viewTransition } from './commands/animation';
26
+ export { halt, ifCommand, returnCommand, throwCommand } from './commands/control';
27
+ export { add, remove, toggle } from './commands/dom';
28
+ export { append, hideShow, make, measure, openClose, swap, take, targetCommands, } from './commands/dom-more';
29
+ export { send, wait } from './commands/events';
30
+ export { js } from './commands/js';
31
+ export { loopControl, repeat, tell } from './commands/loops';
32
+ export { askAnswer, breakpoint, get_, log, pseudoCommand } from './commands/misc';
33
+ export { morph } from './commands/morph';
34
+ export { pick } from './commands/pick';
35
+ export { fetchCommand, go, scroll } from './commands/platform';
36
+ export { defaultCommand, increment, put, set } from './commands/setters';
37
+ export { render } from './templates';
38
+ export { construct, toggleElement } from './additions';
39
+ export type { ConstructNode, ToggleElementNode } from './additions';