xote 6.3.0 → 7.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +132 -33
  2. package/dist/RuntimeAttr.res-Cr5Qmz0i.js +1 -0
  3. package/dist/RuntimeAttr.res-DAZkL5CF.mjs +539 -0
  4. package/dist/RuntimeHydrationMarkers.res-C5-ieaOS.js +1 -0
  5. package/dist/RuntimeHydrationMarkers.res-DHikAvHr.mjs +6 -0
  6. package/dist/RuntimeJsxProp.res-A6N-qWoK.js +1 -0
  7. package/dist/RuntimeJsxProp.res-D3W5GXqT.mjs +64 -0
  8. package/dist/Stdlib_Array-1YCQzU_Y.mjs +22 -0
  9. package/dist/Stdlib_Array-BeBVUIuY.js +1 -0
  10. package/dist/View.res-C36--SJD.js +1 -0
  11. package/dist/View.res-SuqJrQPC.mjs +777 -0
  12. package/dist/client.cjs +1 -0
  13. package/dist/client.mjs +131 -0
  14. package/dist/hydration.cjs +1 -0
  15. package/dist/hydration.mjs +385 -0
  16. package/dist/mdx.cjs +1 -0
  17. package/dist/mdx.mjs +50 -0
  18. package/dist/router.cjs +1 -0
  19. package/dist/router.mjs +276 -0
  20. package/dist/ssr.cjs +17 -0
  21. package/dist/ssr.mjs +321 -0
  22. package/dist/xote.cjs +1 -17
  23. package/dist/xote.mjs +1450 -2459
  24. package/dist/xote.umd.js +1 -17
  25. package/package.json +42 -10
  26. package/rescript.json +2 -2
  27. package/src/Mdx.res +77 -0
  28. package/src/Mdx.res.mjs +93 -0
  29. package/src/Router.res +62 -8
  30. package/src/Router.res.mjs +60 -6
  31. package/src/RuntimeDom.res +7 -0
  32. package/src/RuntimeDom.res.mjs +8 -0
  33. package/src/RuntimeJsxProp.res +5 -8
  34. package/src/RuntimeJsxProp.res.mjs +9 -10
  35. package/src/RuntimeValue.res +35 -0
  36. package/src/RuntimeValue.res.mjs +67 -0
  37. package/src/SSRState.res +1 -4
  38. package/src/SSRState.res.mjs +4 -10
  39. package/src/View.res +233 -39
  40. package/src/View.res.mjs +309 -32
  41. package/src/XoteJSX.res +214 -0
  42. package/src/XoteJSX.res.mjs +63 -0
  43. package/src/jsx-dev-runtime.mjs +7 -0
  44. package/src/jsx-runtime.mjs +276 -0
  45. package/src/Node.res +0 -2
  46. package/src/Node.res.mjs +0 -82
  47. package/src/ReactiveProp.res +0 -2
  48. package/src/ReactiveProp.res.mjs +0 -19
package/dist/xote.umd.js CHANGED
@@ -1,17 +1 @@
1
- (function(M,Se){typeof exports=="object"&&typeof module<"u"?Se(exports):typeof define=="function"&&define.amd?define(["exports"],Se):(M=typeof globalThis<"u"?globalThis:M||self,Se(M.xote={}))})(this,(function(M){"use strict";let Se={contents:0};function je(){return Se.contents=Se.contents+1|0,Se.contents}let Te={contents:0},xe={contents:0};function wt(){return{first:void 0,last:void 0,computedSubscriberCount:0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0,deferEffectsUntilRecompute:!1,lastGlobalVersion:0}}function Ct(e,t){return{first:void 0,last:void 0,computedSubscriberCount:0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0,deferEffectsUntilRecompute:t!==void 0?t:!1,lastGlobalVersion:0}}function nr(e,t,n,r,i){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:i}}function Pt(e){e.flags=e.flags&-2}function rr(e){return(e.flags&2)!==0}function lr(e){e.flags=e.flags|2}function ir(e){e.flags=e.flags&-3}function jt(e){return(e.flags&1)!==0}function Ot(e){e.flags=e.flags|1}function ze(e){e.flags=e.flags&-2}function ur(e){return(e.flags&2)!==0}function or(e){e.flags=e.flags|2}function dr(e){e.flags=e.flags&-3}function _e(e){return e.compute!==void 0}function We(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,lastTrackedVersion:0}}function He(e,t){t.prevSub=e.last,t.nextSub=void 0;let n=e.last;if(n!==void 0?n.nextSub=t:e.first=t,e.last=t,t.observer.compute!==void 0){e.computedSubscriberCount=e.computedSubscriberCount+1|0;return}}function Mt(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}function qe(e){let t=e.subs,n=e.prevSub;n!==void 0?n.nextSub=e.nextSub:t.first=e.nextSub;let r=e.nextSub;if(r!==void 0?r.prevSub=e.prevSub:t.last=e.prevSub,e.prevSub=void 0,e.nextSub=void 0,e.observer.compute!==void 0&&t.computedSubscriberCount>0){t.computedSubscriberCount=t.computedSubscriberCount-1|0;return}}function ar(e,t){let n=t.prevDep;n!==void 0?n.nextDep=t.nextDep:e.firstDep=t.nextDep;let r=t.nextDep;r!==void 0?r.prevDep=t.prevDep:e.lastDep=t.prevDep,t.prevDep=void 0,t.nextDep=void 0}function cr(e,t){let n=t.prevDep;n!==void 0?n.nextDep=t.nextDep:e.firstDep=t.nextDep;let r=t.nextDep;r!==void 0?r.prevDep=t.prevDep:e.lastDep=t.prevDep,t.prevDep=void 0,t.nextDep=void 0}function sr(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;qe(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function fr(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;qe(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function Rt(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}let G={contents:void 0},N={contents:void 0},B={contents:0},I={contents:void 0},z={contents:void 0},te=[],ne=[],ce={contents:!1},Oe={contents:!1},Me={contents:!1},Lt={contents:0},Ft={contents:0},Re=[],hr=(function(e){e.length=0}),Gt=(function(e,t){if(!(t<=0)){if(t>=e.length){e.length=0;return}e.copyWithin(0,t),e.length=e.length-t}});function ut(e){if(rr(e))return;lr(e),te.length===0?Oe.contents=!1:e.level<Lt.contents&&(Oe.contents=!0),te.push(e),Lt.contents=e.level}function mr(e){if(ur(e))return;or(e),ne.length===0?Me.contents=!1:e.level<Ft.contents&&(Me.contents=!0),ne.push(e),Ft.contents=e.level}function gr(e,t){if(e.firstDep===void 0){let l=We(t,e);l.lastTrackedVersion=B.contents,Rt(e,l),He(t,l),I.contents=l;return}let n=B.contents,r=!1,i=I.contents;if(i!==void 0)if(i.subs===t&&i.observer===e)i.lastTrackedVersion=n,r=!0;else{let l=i.nextDep;l!==void 0&&l.subs===t&&l.observer===e&&(l.lastTrackedVersion=n,I.contents=l,r=!0)}if(!r){let l=t.last;l!==void 0&&l.lastTrackedVersion===n&&l.observer===e&&(l.lastTrackedVersion=n,I.contents=l,r=!0)}if(r)return;let u=!1,o,d=e.firstDep;for(;d!==void 0&&!u;){let l=d;l!==void 0&&(l.subs===t?(l.lastTrackedVersion=n,o=l,u=!0):d=l.nextDep)}if(u){I.contents=o;return}let a=We(t,e);a.lastTrackedVersion=n,Rt(e,a),He(t,a),I.contents=a}function pr(e,t){if(e.firstDep===void 0){let l=We(t,e);l.lastTrackedVersion=B.contents,Mt(e,l),He(t,l),z.contents=l;return}let n=B.contents,r=!1,i=z.contents;if(i!==void 0)if(i.subs===t&&i.observer===e)i.lastTrackedVersion=n,r=!0;else{let l=i.nextDep;l!==void 0&&l.subs===t&&l.observer===e&&(l.lastTrackedVersion=n,z.contents=l,r=!0)}if(!r){let l=t.last;l!==void 0&&l.lastTrackedVersion===n&&l.observer===e&&(l.lastTrackedVersion=n,z.contents=l,r=!0)}if(r)return;let u=!1,o,d=e.firstDep;for(;d!==void 0&&!u;){let l=d;l!==void 0&&(l.subs===t?(l.lastTrackedVersion=n,o=l,u=!0):d=l.nextDep)}if(u){z.contents=o;return}let a=We(t,e);a.lastTrackedVersion=n,Mt(e,a),He(t,a),z.contents=a}function yr(e){let t=G.contents;if(t!==void 0)return gr(t,e);let n=N.contents;if(n!==void 0)return pr(n,e)}function br(e,t){return e.level-t.level|0}function Sr(e,t){return e.level-t.level|0}function Vt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(_e(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Kt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(_e(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Nt(e,t){let n=B.contents,r=e.version;Te.contents=Te.contents+1|0,B.contents=Te.contents,t&&dr(e);let i=G.contents,u=I.contents;G.contents=e,I.contents=e.firstDep;try{let o=e.compute;o!==void 0&&o();let d=e.firstDep;for(;d!==void 0;){let a=d;if(a!==void 0){let l=a.nextDep;a.lastTrackedVersion!==B.contents&&(qe(a),cr(e,a)),d=l}}if(ze(e),e.lastGlobalVersion=xe.contents,e.first!==void 0&&e.version!==r){let a=e.first;for(;a!==void 0;){let l=a;if(l!==void 0){let c=l.observer;if(_e(c))Ot(c);else{let k=N.contents;k!==void 0&&k===l.observer||ut(l.observer)}a=l.nextSub}}}G.contents=i,I.contents=u,B.contents=n;return}catch(o){throw G.contents=i,I.contents=u,B.contents=n,o}}function _r(e){let t=e.level;if(Nt(e,!0),t===0){e.level=Vt(e);return}}function $r(e){let t=e.level,n=B.contents;Te.contents=Te.contents+1|0,B.contents=Te.contents,ir(e);let r=N.contents,i=z.contents;N.contents=e,z.contents=e.firstDep;try{e.run();let u=e.firstDep;for(;u!==void 0;){let o=u;if(o!==void 0){let d=o.nextDep;o.lastTrackedVersion!==B.contents&&(qe(o),ar(e,o)),u=d}}Pt(e),N.contents=r,z.contents=i,B.contents=n}catch(u){throw N.contents=r,z.contents=i,B.contents=n,u}if(t===0){e.level=Kt(e);return}}function Bt(){ce.contents=!0;try{for(;te.length!==0||ne.length!==0;){if(ne.length!==0){let e=ne.length;e>1&&Me.contents&&(ne.sort(Sr),Me.contents=!1);let t=0;for(;t<e;){let n=ne[t];n!==void 0&&_r(n),t=t+1|0}Gt(ne,e),ne.length===0&&(Me.contents=!1)}if(te.length!==0){let e=te.length;e>1&&Oe.contents&&(te.sort(br),Oe.contents=!1);let t=0;for(;t<e;){let n=te[t];n!==void 0&&$r(n),t=t+1|0}Gt(te,e),te.length===0&&(Oe.contents=!1)}}ce.contents=!1;return}catch(e){throw ce.contents=!1,e}}function vr(e){if(e.first!==void 0)if(!_e(e)&&e.computedSubscriberCount===0){let t=e.first;for(;t!==void 0;){let n=t;n!==void 0&&(ut(n.observer),t=n.nextSub)}}else{Re.push(e);let t=0;for(;t<Re.length;){let n=Re[t];if(t=t+1|0,n!==void 0){let r=n.first;for(;r!==void 0;){let i=r;if(i!==void 0){let u=i.observer;_e(u)?jt(u)||(Ot(u),Re.push(u)):_e(n)&&n.deferEffectsUntilRecompute?mr(n):ut(i.observer),r=i.nextSub}}}}hr(Re)}if((te.length!==0||ne.length!==0)&&!ce.contents)return Bt()}function It(e){if(!_e(e)||!jt(e))return;if(e.lastGlobalVersion===xe.contents)return ze(e);let t=e.level;if(Nt(e,!1),t===0){e.level=Vt(e);return}}function Er(e){let t=ce.contents;ce.contents=!0;try{let n=e();return t||(ce.contents=!1,(te.length!==0||ne.length!==0)&&Bt()),n}catch(n){throw t||(ce.contents=!1),n}}function Tr(e){let t=G.contents,n=N.contents,r=I.contents,i=z.contents;G.contents=void 0,N.contents=void 0,I.contents=void 0,z.contents=void 0;try{let u=e();return G.contents=t,N.contents=n,I.contents=r,z.contents=i,u}catch(u){throw G.contents=t,N.contents=n,I.contents=r,z.contents=i,u}}function zt(e,t){let n=je(),r={contents:void 0},u=nr(n,"Effect",()=>{let l=r.contents;l!==void 0&&l(),r.contents=e()},t,void 0),o=N.contents;N.contents=u;try{u.run(),Pt(u),N.contents=o}catch(l){throw N.contents=o,l}u.level=Kt(u);let d={contents:!1};return{dispose:()=>{if(d.contents)return;d.contents=!0;let l=r.contents;l!==void 0&&l(),sr(u)}}}function xr(e,t){zt(e,t)}let V=zt;const kr=Object.freeze(Object.defineProperty({__proto__:null,run:xr,runWithDisposer:V},Symbol.toStringTag,{value:"Module"}));function Wt(e,t){return e===t}function Ht(e,t){return!1}function Ar(e,t,n){return{id:je(),value:e,equals:n!==void 0?n:Wt,name:t,subs:wt()}}function Dr(e,t){return{id:je(),value:e,equals:Ht,name:t,subs:wt()}}function wr(e){return It(e.subs),yr(e.subs),e.value}function Cr(e){return It(e.subs),e.value}function qt(e,t){let n;try{n=!e.equals(e.value,t)}catch{n=!0}if(n)return e.value=t,e.subs.version=e.subs.version+1|0,xe.contents=xe.contents+1|0,vr(e.subs)}function Pr(e,t){qt(e,t(e.value))}let jr=Er,Or=Tr,Mr=Wt,Rr=Ht,ot=Ar,Lr=Dr,L=wr,re=Cr,$e=qt;const Fr=Object.freeze(Object.defineProperty({__proto__:null,batch:jr,defaultEquals:Mr,get:L,make:ot,makeForComputed:Lr,neverEquals:Rr,peek:re,set:$e,untrack:Or,update:Pr},Symbol.toStringTag,{value:"Module"}));function Le(e,t){delete e[t]}function Xt(e,t){let n=je(),r=(c,k)=>!1,i={contents:void 0},o=Ct(()=>{let c=i.contents,k=e();c.value=k,c.subs.version=c.subs.version+1|0},!1),d=G.contents;G.contents=o;let a=e();G.contents=d;let l={id:n,value:a,equals:r,name:t,subs:o};return i.contents=l,o.lastGlobalVersion=xe.contents,ze(o),l}function Ut(e,t,n){let r=je(),i={contents:void 0},o=Ct(()=>{let c=i.contents,k=c.value,v=e(),P;try{P=!c.equals(k,v)}catch{P=!0}if(P){c.value=v,c.subs.version=c.subs.version+1|0;return}},!0),d=G.contents;G.contents=o;let a=e();G.contents=d;let l={id:r,value:a,equals:t,name:n,subs:o};return i.contents=l,o.lastGlobalVersion=xe.contents,ze(o),l}function Gr(e,t,n){return n!==void 0?Ut(e,n,t):Xt(e,t)}function Vr(e){fr(e.subs)}let Kr=Xt,Nr=Ut,de=Gr,Yt=Vr;const Br=Object.freeze(Object.defineProperty({__proto__:null,dispose:Yt,make:de,makeWithEquals:Nr,makeWithoutEquals:Kr},Symbol.toStringTag,{value:"Module"}));function se(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function ke(e){if(e!=null)return se(e)}function m(e){if(e===null||e.BS_PRIVATE_NESTED_SOME_NONE===void 0)return e;let t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function Ir(e,t){if(e!==void 0)return se(t(m(e)))}function fe(e,t){return e!==void 0?m(e):t}function Jt(e){return e!==void 0}let zr=["checked","disabled","required","readonly","multiple","aria-hidden","aria-expanded","aria-selected","draggable","hidden","contenteditable","spellcheck","autofocus"];function Qt(e){return zr.includes(e)}function Fe(e){return e?"true":"false"}function Zt(e){return e==="true"}let Wr="http://www.w3.org/2000/svg",Hr=["svg","path","circle","ellipse","line","polygon","polyline","rect","g","defs","clipPath","mask","pattern","marker","symbol","use","text","tspan","image","foreignObject","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComposite","feFlood","feGaussianBlur","feMerge","feMergeNode","feOffset","animate","animateTransform","desc","title","metadata"],en={};Hr.forEach(e=>{en[e]=!0});function qr(e){return Jt(en[e])?document.createElementNS(Wr,e):document.createElement(e)}function he(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"value":e.value=n;return;default:Qt(t)?Zt(n)?e.setAttribute(t,""):e.removeAttribute(t):e.setAttribute(t,n);return}}function W(){return{disposers:[],computeds:[]}}function X(e,t){return t()}function H(e,t){e.disposers.push(t)}function tn(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(Yt)}function U(e,t){e.__xote_owner__=t}function nn(e){return ke(e.__xote_owner__)}function dt(e,t){return[e,{TAG:"Static",_0:t}]}function at(e,t){return[e,{TAG:"SignalValue",_0:t}]}function ct(e,t){return[e,{TAG:"Compute",_0:t}]}let rn={$$static:dt,signal:at,computed:ct},ln={string:dt,signal:at,compute:ct};function me(e){let t=nn(e);t!==void 0&&tn(t),Array.from(e.childNodes||[]).forEach(me)}function un(e,t){if(e===t)return!0;if(typeof e!="object"||typeof t!="object")return!1;let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{let u=e[i],o=t[i];return u!==void 0&&o!==void 0?m(u)===m(o):!1})}function on(e){Object.keys(e).forEach(t=>{Le(e,t)})}function dn(e){let t=[],n={contents:!0};if(e.forEach(r=>{if(r.TAG!=="Keyed"){n.contents=!1;return}t.push({key:r.key,identity:r.identity,child:r.child})}),n.contents)return t}function an(e,t,n){let r={};e.forEach(l=>{r[l.key]=l});let i=[];Object.keys(t).forEach(l=>{if(r[l]===void 0){i.push(l);return}}),i.forEach(l=>{let c=t[l];if(c!==void 0){me(c.element),c.element.remove(),Le(t,l);return}});let u=[],o={};e.forEach(l=>{let c=t[l.key];if(c!==void 0){if(un(c.item,l.identity)){u.push(c);return}let O=le(l.child),q=l.key,ee=l.identity,ie={key:q,item:ee,element:O};o[l.key]=c.element,u.push(ie),t[l.key]=ie;return}let k=le(l.child),v=l.key,P=l.identity,A={key:v,item:P,element:k};u.push(A),t[l.key]=A});let d=n.firstChild,a={contents:d!=null?se(d):void 0};u.forEach(l=>{let c=a.contents;if(c!==void 0){let v=m(c);if(v===l.element){a.contents=ke(v.nextSibling);return}let P=o[l.key];if(P!==void 0){let A=m(P);if(v===A){me(A),n.replaceChild(l.element,A),a.contents=ke(l.element.nextSibling);return}}n.insertBefore(l.element,v),a.contents=ke(l.element.nextSibling);return}let k=o[l.key];if(k!==void 0){let v=m(k);me(v),v.remove(),n.appendChild(l.element);return}n.appendChild(l.element)})}function le(e){for(;;){let t=e;switch(t.TAG){case"Element":let n=t.children,r=t.events,i=t.attrs,u=t.tag,o=qr(u),d=W();return U(o,d),X(d,()=>{let h=s=>u==="select"?s[0]==="value":!1,T=s=>{let D=s[1],j=s[0];switch(D.TAG){case"Static":return he(o,j,D._0);case"SignalValue":let p=D._0;he(o,j,re(p));let x=V(()=>{he(o,j,L(p))},void 0);return H(d,x);case"Compute":let b=D._0,C=V(()=>{he(o,j,b())},void 0);return H(d,C)}};i.forEach(s=>{if(!h(s))return T(s)}),r.forEach(s=>{o.addEventListener(s[0],s[1])}),n.forEach(s=>{let D=le(s);o.appendChild(D)}),i.forEach(s=>{if(h(s))return T(s)})}),o;case"Text":return document.createTextNode(t._0);case"SignalText":let a=t._0,l=document.createTextNode(re(a)),c=W();return U(l,c),X(c,()=>{let h=V(()=>{l.textContent=L(a)},void 0);H(c,h)}),l;case"Fragment":let k=document.createDocumentFragment();return t._0.forEach(h=>{let T=le(h);k.appendChild(T)}),k;case"SignalFragment":let v=t._0,P=W(),A=document.createElement("div");A.setAttribute("style","display: contents"),U(A,P);let O={};return X(P,()=>{let h=V(()=>{let T=L(v),s=dn(T);s!==void 0?an(s,O,A):(on(O),Array.from(A.childNodes||[]).forEach(me),A.innerHTML="",T.forEach(j=>{let p=le(j);A.appendChild(p)}))},void 0);H(P,h)}),A;case"Keyed":e=t.child;continue;case"LazyComponent":let q=W(),ee=X(q,t._0),ie=le(ee);return U(ie,q),ie;case"KeyedList":let ue=t.renderItem,K=t.keyFn,oe=t.signal,Ce=W(),R=document.createComment(" keyed-list-start "),_=document.createComment(" keyed-list-end ");U(R,Ce);let w={},E=()=>{let h=_.parentNode;if(h==null)return;let T=L(oe),s={};T.forEach(b=>{s[K(b)]=b});let D=[];Object.keys(w).forEach(b=>{if(s[b]===void 0){D.push(b);return}}),D.forEach(b=>{let C=w[b];if(C!==void 0){me(C.element),C.element.remove(),Le(w,b);return}});let j=[],p={};T.forEach(b=>{let C=K(b),Pe=w[C];if(Pe!==void 0){if(Pe.item!==b){p[C]=!0;let it=ue(b),ji=le(it),tr={key:C,item:b,element:ji};j.push(tr),w[C]=tr;return}j.push(Pe);return}let rt=ue(b),Dt=le(rt),lt={key:C,item:b,element:Dt};j.push(lt),w[C]=lt});let x={contents:R.nextSibling};j.forEach(b=>{let C=x.contents;if(C==null){h.insertBefore(b.element,_);return}if(C===_){h.insertBefore(b.element,_);return}if(C===b.element){x.contents=C.nextSibling;return}fe(p[b.key],!1)?(me(C),h.replaceChild(b.element,C),x.contents=b.element.nextSibling):(h.insertBefore(b.element,C),x.contents=b.element.nextSibling)})},$=document.createDocumentFragment();return $.appendChild(R),re(oe).forEach(h=>{let T=K(h),s=ue(h),D=le(s),j={key:T,item:h,element:D};w[T]=j,$.appendChild(D)}),$.appendChild(_),X(Ce,()=>{let h=V(()=>{E()},void 0);H(Ce,h)}),$}}}let F={disposeElement:me,shallowEqualIdentity:un,clearKeyedItems:on,getKeyedChildren:dn,reconcileKeyedChildren:an,render:le};function st(e){return{TAG:"Text",_0:e}}function cn(e){return{TAG:"SignalText",_0:de(e,void 0,void 0)}}function sn(e){return{TAG:"SignalText",_0:de(()=>e().toString(),void 0,void 0)}}function fn(e){return{TAG:"SignalText",_0:de(()=>e().toString(),void 0,void 0)}}function hn(e){return{TAG:"Text",_0:e.toString()}}function mn(e){return{TAG:"Text",_0:e.toString()}}function Xe(e){return{TAG:"Fragment",_0:e}}function Ue(e){return{TAG:"SignalFragment",_0:e}}function ft(e,t){return{TAG:"SignalFragment",_0:de(()=>L(e).map(t),void 0,void 0)}}function ht(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function Y(e,t,n,r,i){let u=t!==void 0?t:[].map(a=>a),o=n!==void 0?n:[].map(a=>a),d=r!==void 0?r:[].map(a=>a);return{TAG:"Element",tag:e,attrs:u,events:o,children:d}}function mt(){return{TAG:"Text",_0:""}}function gt(e,t){let n=le(e);t.appendChild(n)}function gn(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return gt(e,n)}let pn,yn,ae=dt,Ae=at,Ye=ct,bn=ft,Sn=ht,_n=mt;const Xr=Object.freeze(Object.defineProperty({__proto__:null,$$null:mt,Attr:ln,Attributes:rn,DOM:pn,Reactivity:yn,Render:F,attr:ae,computedAttr:Ye,each:ft,eachWithKey:ht,element:Y,empty:_n,float:mn,fragment:Xe,int:hn,keyedList:Sn,list:bn,mount:gt,mountById:gn,signalAttr:Ae,signalFloat:fn,signalFragment:Ue,signalInt:sn,signalText:cn,text:st},Symbol.toStringTag,{value:"Module"})),Ur=Object.freeze(Object.defineProperty({__proto__:null,$$null:mt,Attr:ln,Attributes:rn,DOM:pn,Reactivity:yn,Render:F,attr:ae,computedAttr:Ye,each:ft,eachWithKey:ht,element:Y,empty:_n,float:mn,fragment:Xe,int:hn,keyedList:Sn,list:bn,mount:gt,mountById:gn,signalAttr:Ae,signalFloat:fn,signalFragment:Ue,signalInt:sn,signalText:cn,text:st},Symbol.toStringTag,{value:"Module"}));function Yr(e,t,n,r){return Y("div",e,t,n)}function Jr(e,t,n,r){return Y("span",e,t,n)}function Qr(e,t,n,r){return Y("button",e,t,n)}function Zr(e,t,n){return Y("input",e,t,void 0)}function el(e,t,n,r){return Y("h1",e,t,n)}function tl(e,t,n,r){return Y("h2",e,t,n)}function nl(e,t,n,r){return Y("h3",e,t,n)}function rl(e,t,n,r){return Y("p",e,t,n)}function ll(e,t,n,r){return Y("ul",e,t,n)}function il(e,t,n,r){return Y("li",e,t,n)}function pt(e,t,n,r){return Y("a",e,t,n)}const ul=Object.freeze(Object.defineProperty({__proto__:null,a:pt,button:Qr,div:Yr,h1:el,h2:tl,h3:nl,input:Zr,li:il,p:rl,span:Jr,ul:ll},Symbol.toStringTag,{value:"Module"}));function $n(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function y(e,t){return $n(t)?t.TAG==="Reactive"?Ae(e,t._0):ae(e,t._0):typeof t=="function"?Ye(e,t):typeof t=="object"?Ae(e,t):ae(e,t)}function J(e,t){if($n(t)){if(t.TAG!=="Reactive")return ae(e,Fe(t._0));let r=t._0,i=de(()=>Fe(L(r)),void 0,void 0);return Ae(e,i)}if(typeof t=="function")return Ye(e,()=>Fe(t()));if(typeof t!="object")return ae(e,Fe(t));let n=de(()=>Fe(L(t)),void 0,void 0);return Ae(e,n)}function vn(e,t){return{TAG:"LazyComponent",_0:()=>e(t)}}function En(e,t,n,r){return n!==void 0?{TAG:"Keyed",key:n,identity:t,child:{TAG:"LazyComponent",_0:()=>e(t)}}:{TAG:"LazyComponent",_0:()=>e(t)}}function ol(e){let t=e.children;return t!==void 0?t:Xe([])}let dl=Xe;function al(){return st("")}function f(e,t,n,r){if(t!==void 0){e.push(r(n,m(t)));return}}function De(e,t,n){if(t!==void 0){e.push(ae(n,t.toString()));return}}function Tn(e){let t=[];f(t,e.id,"id",y),f(t,e.class,"class",y),f(t,e.style,"style",y),f(t,e.title,"title",y),f(t,e.type,"type",y),f(t,e.name,"name",y),f(t,e.value,"value",y),f(t,e.placeholder,"placeholder",y),f(t,e.disabled,"disabled",J),f(t,e.checked,"checked",J),f(t,e.required,"required",J),f(t,e.readOnly,"readonly",J),De(t,e.maxLength,"maxlength"),De(t,e.minLength,"minlength"),f(t,e.min,"min",y),f(t,e.max,"max",y),f(t,e.step,"step",y),f(t,e.pattern,"pattern",y),f(t,e.autoComplete,"autocomplete",y),f(t,e.multiple,"multiple",J),f(t,e.accept,"accept",y),De(t,e.rows,"rows"),De(t,e.cols,"cols"),f(t,e.autofocus,"autofocus",J),f(t,e.action,"action",y),f(t,e.method,"method",y),f(t,e.for,"for",y),f(t,e.href,"href",y),f(t,e.target,"target",y),f(t,e.src,"src",y),f(t,e.alt,"alt",y),f(t,e.width,"width",y),f(t,e.height,"height",y),f(t,e.draggable,"draggable",J),f(t,e.hidden,"hidden",J),f(t,e.contentEditable,"contenteditable",J),f(t,e.spellcheck,"spellcheck",J),f(t,e.role,"role",y),De(t,e.tabIndex,"tabindex"),f(t,e["aria-label"],"aria-label",y),f(t,e["aria-hidden"],"aria-hidden",J),f(t,e["aria-expanded"],"aria-expanded",J),f(t,e["aria-selected"],"aria-selected",J);let n=e.data;return n!==void 0&&Object.entries(n).forEach(i=>{t.push(y("data-"+i[0],i[1]))}),t}function g(e,t,n){if(t!==void 0){e.push([n,m(t)]);return}}function xn(e){let t=[];return g(t,e.onClick,"click"),g(t,e.onInput,"input"),g(t,e.onChange,"change"),g(t,e.onSubmit,"submit"),g(t,e.onFocus,"focus"),g(t,e.onBlur,"blur"),g(t,e.onKeyDown,"keydown"),g(t,e.onKeyUp,"keyup"),g(t,e.onMouseEnter,"mouseenter"),g(t,e.onMouseLeave,"mouseleave"),g(t,e.onMouseDown,"mousedown"),g(t,e.onMouseMove,"mousemove"),g(t,e.onMouseUp,"mouseup"),g(t,e.onContextMenu,"contextmenu"),g(t,e.onPointerDown,"pointerdown"),g(t,e.onPointerMove,"pointermove"),g(t,e.onPointerUp,"pointerup"),g(t,e.onPointerCancel,"pointercancel"),g(t,e.onPointerEnter,"pointerenter"),g(t,e.onPointerLeave,"pointerleave"),g(t,e.onPointerOver,"pointerover"),g(t,e.onPointerOut,"pointerout"),g(t,e.onGotPointerCapture,"gotpointercapture"),g(t,e.onLostPointerCapture,"lostpointercapture"),g(t,e.onDrag,"drag"),g(t,e.onDragStart,"dragstart"),g(t,e.onDragEnd,"dragend"),g(t,e.onDragOver,"dragover"),g(t,e.onDragEnter,"dragenter"),g(t,e.onDragLeave,"dragleave"),g(t,e.onDrop,"drop"),t}function kn(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function Je(e,t){return{TAG:"Element",tag:e,attrs:Tn(t),events:xn(t),children:kn(t)}}let An=Je;function Dn(e,t,n,r){return n!==void 0?{TAG:"Keyed",key:n,identity:t,child:Je(e,t)}:Je(e,t)}const cl=Object.freeze(Object.defineProperty({__proto__:null,$$null:al,Elements:{addAttr:f,addIntAttr:De,propsToAttrs:Tn,addEvent:g,propsToEvents:xn,getChildren:kn,createElement:Je,jsx:An,jsxs:An,jsxKeyed:Dn,jsxsKeyed:Dn},Prop:void 0,array:dl,jsx:vn,jsxFragment:ol,jsxKeyed:En,jsxs:vn,jsxsKeyed:En},Symbol.toStringTag,{value:"Module"}));function wn(e){return e.TAG==="Reactive"?L(e._0):e._0}function Cn(e){return{TAG:"Static",_0:e}}function yt(e){return{TAG:"Reactive",_0:e}}let Pn=yt;const sl=Object.freeze(Object.defineProperty({__proto__:null,$$static:Cn,get:wn,reactive:yt,signal:Pn},Symbol.toStringTag,{value:"Module"})),fl=Object.freeze(Object.defineProperty({__proto__:null,$$static:Cn,get:wn,reactive:yt,signal:Pn},Symbol.toStringTag,{value:"Module"}));function jn(e,t){let n=e.length,r=new Array(n),i=0;for(let u=0;u<n;++u){let o=e[u],d=t(o);d!==void 0&&(r[i]=m(d),i=i+1|0)}return r.length=i,r}function hl(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let i=t(e[r]);if(i!==void 0)return i;n=r+1|0}}function bt(e){return jn(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function St(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,o)=>{let d=n[o];return u.TAG==="Static"?d===u._0:(r[u._0]=d,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function Qe(e,t){return St(bt(e),t)}const ml=Object.freeze(Object.defineProperty({__proto__:null,compile:bt,match:Qe,matchCompiled:St,matchPath:St,matchPathname:Qe,parsePattern:bt},Symbol.toStringTag,{value:"Module"}));function gl(){return Symbol.for("xote.router.state")}function Q(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:ot({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function pl(){return Q().location}function yl(){return Q().basePath}function ve(e){if(!Q().initialized){console.warn("[Xote Router] "+e+" called before Router.init(). Make sure to call Router.init() at your app entry point. This may cause incorrect routing behavior.");return}}function _t(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function On(e){let t=Q().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function Ge(e){let t=Q().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function Mn(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function Ze(e,t){window.scrollTo(e,t)}function Rn(e,t){return{scrollX:e,scrollY:t}}function $t(){return{}}function Ln(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Fn(){let e=Mn(),t=Rn(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function vt(){let e=window.location.pathname;return{pathname:On(e),search:window.location.search,hash:window.location.hash}}function bl(e,t){let n=e!==void 0?e:"/",r=Q(),i=_t(n);if(r.basePath.contents=i,$e(r.location,vt()),r.initialized)return;let u=o=>{$e(Q().location,vt());let d=window["history.state"];if(d==null)return;let a=Ln(d);if(a!==void 0)return Ze(a[0],a[1])};r.popStateHandler=u,window.addEventListener("popstate",u),r.initialized=!0}function Sl(e,t,n,r,i){let u=e!==void 0?e:"/",o=t!==void 0?t:"/",d=n!==void 0?n:"",a=r!==void 0?r:"",l=Q(),c=_t(u);l.basePath.contents=c,$e(l.location,{pathname:o,search:d,hash:a}),l.initialized=!0}function Et(e,t,n,r){let i=t!==void 0?t:"",u=n!==void 0?n:"";ve("Router.push()"),Fn();let o={pathname:e,search:i,hash:u},a=Ge(e)+i+u;window.history.pushState($t(),"",a),$e(Q().location,o),Ze(0,0)}function _l(e,t,n,r){let i=t!==void 0?t:"",u=n!==void 0?n:"";ve("Router.replace()");let o={pathname:e,search:i,hash:u},a=Ge(e)+i+u;window.history.replaceState($t(),"",a),$e(Q().location,o),Ze(0,0)}function $l(e,t){return ve("Router.route()"),Ue(de(()=>{let n=L(Q().location),r=Qe(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0,void 0))}function vl(e){return ve("Router.routes()"),Ue(de(()=>{let t=L(Q().location),n=hl(e,r=>{let i=Qe(r.pattern,t.pathname);if(typeof i=="object")return r.render(i._0)});return n!==void 0?[n]:[]},void 0,void 0))}function El(e,t,n,r){let i=t!==void 0?t:[],u=n!==void 0?n:[];ve("Router.link()");let o=d=>{d.preventDefault(),Et(e,void 0,void 0)};return pt(i.concat([ae("href",Ge(e))]),[["click",o]],u)}function Gn(e){let t=[],n=e.class;n!==void 0&&t.push(y("class",m(n)));let r=e.id;r!==void 0&&t.push(y("id",m(r)));let i=e.style;i!==void 0&&t.push(y("style",m(i)));let u=e.target;u!==void 0&&t.push(y("target",m(u)));let o=e["aria-label"];return o!==void 0&&t.push(y("aria-label",m(o))),t}function Vn(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function Ve(e){ve("Router.Link");let t=n=>{n.preventDefault(),Et(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return pt(Gn(e).concat([ae("href",Ge(e.to))]),[["click",t]],Vn(e))}function Kn(e,t,n){return t!==void 0?{TAG:"Keyed",key:t,identity:e,child:Ve(e)}:Ve(e)}const Tl=Object.freeze(Object.defineProperty({__proto__:null,Link:{Prop:void 0,propsToAttrs:Gn,getChildren:Vn,make:Ve,jsx:Ve,jsxs:Ve,jsxKeyed:Kn,jsxsKeyed:Kn},Route:void 0,addBasePath:Ge,basePath:yl,emptyHistoryState:$t,getCurrentLocation:vt,getGlobalState:Q,getScrollFromState:Ln,getScrollPosition:Mn,getSymbolKey:gl,init:bl,initSSR:Sl,link:El,location:pl,makeHistoryState:Rn,normalizeBasePath:_t,push:Et,replace:_l,route:$l,routes:vl,saveScrollPosition:Fn,scrollTo:Ze,stripBasePath:On,warnIfNotInitialized:ve},Symbol.toStringTag,{value:"Module"}));function ge(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#x27;")}let xl=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function kl(e){return xl.includes(e)}let Ke="k:";function Al(e){return"<!--"+Ke+e+"-->"}let Dl="<!--$-->",wl="<!--/$-->",Cl="$",Pl="/$",jl="<!--#-->",Ol="<!--/#-->",Ml="#",Rl="/#",Ll="<!--kl-->",Fl="<!--/kl-->",Nn="kl",Bn="/kl",Gl="<!--/k-->",In="/k",Vl="<!--lc-->",Kl="<!--/lc-->",Nl="lc",Bl="/lc";function zn(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=re(t._0);break;case"Compute":r=t._0();break}return Qt(n)?Zt(r)?n:"":n+'="'+ge(r)+'"'}function Wn(e){let t=e.map(zn).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let Il={renderAttr:zn,renderAttrs:Wn};function pe(e){for(;;){let t=e;switch(t.TAG){case"Element":let n=t.tag,r=Wn(t.attrs);if(kl(n))return"<"+n+r+" />";let i=t.children.map(pe).join("");return"<"+n+r+">"+i+"</"+n+">";case"Text":return ge(t._0);case"SignalText":let u=re(t._0);return Dl+ge(u)+wl;case"Fragment":return t._0.map(pe).join("");case"SignalFragment":let d=re(t._0).map(pe).join("");return jl+d+Ol;case"Keyed":e=t.child;continue;case"LazyComponent":let a=t._0();return Vl+pe(a)+Kl;case"KeyedList":let l=t.renderItem,c=t.keyFn,v=re(t.signal).map(P=>{let A=c(P),O=pe(l(P));return Al(A)+O+Gl}).join("");return Ll+v+Fl}}}function Hn(e,t){return pe(e())}function zl(e,t,n){let r=t!==void 0?t:"root",i=e(),u=pe(i);return"<!--xote-root:"+r+"-->"+u+"<!--/xote-root-->"}function qn(e){return"<script"+(e!==void 0?' nonce="'+ge(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function Wl(e,t,n,r,i,u,o){let d=e!==void 0?e:"",a=t!==void 0?t:"",l=n!==void 0?n:[],c=r!==void 0?r:[],k=i!==void 0?i:"",v=Hn(o),P=qn(u),A=c.map(q=>'<link rel="stylesheet" href="'+ge(q)+'" />').join(`
2
- `),O=l.map(q=>{let ee=u!==void 0?' nonce="'+ge(u)+'"':"";return'<script type="module" src="'+ge(q)+'"'+ee+"><\/script>"}).join(`
3
- `);return`<!DOCTYPE html>
4
- <html>
5
- <head>
6
- <meta charset="UTF-8" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- `+A+`
9
- `+d+`
10
- </head>
11
- <body`+(a!==""?" "+a:"")+`>
12
- <div id="root">`+v+`</div>
13
- `+k+`
14
- `+P+`
15
- `+O+`
16
- </body>
17
- </html>`}const Hl=Object.freeze(Object.defineProperty({__proto__:null,Attributes:Il,Html:void 0,Markers:void 0,generateHydrationScript:qn,renderDocument:Wl,renderNodeToString:pe,renderToString:Hn,renderToStringWithRoot:zl},Symbol.toStringTag,{value:"Module"}));let Ne=typeof document>"u",et=!Ne;function ql(e){if(Ne)return se(e())}function Xl(e){if(et)return se(e())}function Xn(e,t){return Ne?e():t()}const Ul=Object.freeze(Object.defineProperty({__proto__:null,isClient:et,isServer:Ne,match:Xn,onClient:Xl,onServer:ql},Symbol.toStringTag,{value:"Module"}));function Yl(e){if(typeof e=="boolean")return e}function Jl(e){if(e===null)return null}function Ql(e){if(typeof e=="string")return e}function Zl(e){if(typeof e=="number")return e}function ei(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function ti(e){if(Array.isArray(e))return e}let Ee={bool:Yl,$$null:Jl,string:Ql,float:Zl,object:ei,array:ti};function ni(e){return e}function ri(e){let t=Ee.float(e);if(t!==void 0)return t|0}let li={encode:ni,decode:ri};function ii(e){return e}function ui(e){return Ee.float(e)}let oi={encode:ii,decode:ui};function di(e){return e}function ai(e){return Ee.string(e)}let ci={encode:di,decode:ai};function si(e){return e}function fi(e){return Ee.bool(e)}let hi={encode:si,decode:fi};function mi(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=Ee.array(t);if(n===void 0)return;let r=jn(n,e.decode);if(r.length===n.length)return r}}}function gi(e){return{encode:t=>t!==void 0?e.encode(m(t)):null,decode:t=>Jt(Ee.$$null(t))?se(void 0):Ir(e.decode(t),n=>se(n))}}function pi(e,t){return{encode:n=>[e.encode(n[0]),t.encode(n[1])],decode:n=>{let r=Array.isArray(n)?n:void 0;if(r===void 0||r.length!==2)return;let i=r[0],u=r[1],o=e.decode(i),d=t.decode(u);if(o!==void 0&&d!==void 0)return[m(o),m(d)]}}}function yi(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let i=Array.isArray(r)?r:void 0;if(i===void 0||i.length!==3)return;let u=i[0],o=i[1],d=i[2],a=e.decode(u),l=t.decode(o),c=n.decode(d);if(a!==void 0&&l!==void 0&&c!==void 0)return[m(a),m(l),m(c)]}}}function bi(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=Ee.object(t);if(n===void 0)return;let r={},i={contents:!0};if(Object.entries(n).forEach(u=>{let o=e.decode(u[1]);o!==void 0?r[u[0]]=m(o):i.contents=!1}),i.contents)return r}}}function Si(e,t){return{encode:e,decode:t}}let _i={int:li,float:oi,string:ci,bool:hi,array:mi,option:gi,tuple2:pi,tuple3:yi,dict:bi,make:Si},Be={};function Un(e,t,n){if(Ne){Be[e]=n.encode(re(t));return}}function $i(){Object.keys(Be).forEach(e=>{Le(Be,e)})}function Yn(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function vi(e){let t=fe(JSON.stringify(Be),"{}"),n=Yn(t);return"<script"+(e!==void 0?' nonce="'+ge(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function Jn(){return et?window.__XOTE_STATE__||{}:{}}function Qn(e,t,n){if(!et)return;let i=Jn()[e];if(i===void 0)return;let u=n.decode(i);if(u!==void 0)return $e(t,m(u))}function Tt(e,t,n){Xn(()=>Un(e,t,n),()=>Qn(e,t,n))}function Zn(e,t,n){let r=ot(t,void 0,void 0);return Tt(e,r,n),r}const Ei=Object.freeze(Object.defineProperty({__proto__:null,Codec:_i,clear:$i,escapeForScript:Yn,generateScript:vi,getClientState:Jn,make:Zn,register:Un,registry:Be,restore:Qn,signal:Zn,sync:Tt,syncSignal:Tt},Symbol.toStringTag,{value:"Module"}));let xt={};function Ti(e){let t=xt[e];if(t!==void 0){let n=t+1|0;return xt[e]=n,e+("/"+n)}return xt[e]=1,e}function xi(e){return Array.from(e.childNodes||[])}function Ie(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function tt(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function kt(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith(Ke))return t.slice(Ke.length)}function we(e){return{current:ke(e.firstChild),parent:e}}function ki(e){return e.current}function Z(e){let t=e.current;return t!==void 0&&(e.current=ke(m(t).nextSibling)),t}function ye(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let i=m(r);if(Ie(i,t))return Z(e),se(i);Z(e)}})()}function nt(e,t){let n=[];return(()=>{for(;;){let i=e.current;if(i===void 0)return;let u=m(i);if(Ie(u,t)){Z(e);return}n.push(u),Z(e)}})(),n}let Ai={elementNode:1,textNode:3,commentNode:8,getChildNodes:xi,isMarker:Ie,isMarkerPrefix:tt,extractKey:kt,make:we,peek:ki,next:Z,skipUntilMarker:ye,collectUntilMarker:nt},Di=Ti("Hydration-Xote.HydrationMismatch");function At(e){console.warn("[Xote Hydration] "+e)}function wi(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,i=n.events,u=n.attrs,o=W();return U(t,o),X(o,()=>{u.forEach(_=>{let w=_[1],E=_[0];switch(w.TAG){case"Static":return;case"SignalValue":let $=w._0,S=V(()=>{he(t,E,L($))},void 0);return H(o,S);case"Compute":let h=w._0,T=V(()=>{he(t,E,h())},void 0);return H(o,T)}}),i.forEach(_=>{t.addEventListener(_[0],_[1])});let R=we(t);r.forEach(_=>be(_,R))});case"Text":return;case"SignalText":let d=n._0,a=W();return U(t,a),X(a,()=>{let R=V(()=>{t.textContent=L(d)},void 0);H(a,R)});case"Fragment":let l=we(t);n._0.forEach(R=>be(R,l));return;case"SignalFragment":let c=n._0,k=W();U(t,k);let v={},P={contents:!1};return X(k,()=>{let R=V(()=>{let _=L(c),w=F.getKeyedChildren(_),E=0;w!==void 0&&P.contents?F.reconcileKeyedChildren(w,v,t):E=1,E===1&&(F.clearKeyedItems(v),Array.from(t.childNodes||[]).forEach(S=>tn(fe(nn(S),W()))),t.innerHTML="",w!==void 0?w.forEach(S=>{let h=F.render(S.child);v[S.key]={key:S.key,item:S.identity,element:h},t.appendChild(h)}):_.forEach(S=>{let h=F.render(S);t.appendChild(h)}),P.contents=!0)},void 0);H(k,R)});case"Keyed":e=n.child;continue;case"LazyComponent":let A=W(),O=X(A,n._0);U(t,A),e=O;continue;case"KeyedList":let q=n.renderItem,ee=n.keyFn,ie=n.signal,ue=W();U(t,ue);let K={},oe=we(t);return ye(oe,Nn),(()=>{for(;;){let R=oe.current;if(R===void 0)return;let _=m(R);if(!tt(_,Ke))if(Ie(_,Bn)){Z(oe);return}else return;let w=fe(kt(_),"");Z(oe);let $=nt(oe,In).find(S=>S.nodeType===1);if($!==void 0){let S=re(ie),h=fe(S.find(T=>ee(T)===w),{});K[w]={key:w,item:h,element:m($)}}}})(),X(ue,()=>{let R=document.createComment(" keyed-list-start "),_=document.createComment(" keyed-list-end "),w=t.firstChild;w==null?t.appendChild(R):t.insertBefore(R,w),t.appendChild(_);let E=()=>{let S=L(ie),h={};S.forEach(p=>{h[ee(p)]=p});let T=[];Object.keys(K).forEach(p=>{if(h[p]===void 0){T.push(p);return}}),T.forEach(p=>{let x=K[p];if(x!==void 0){F.disposeElement(x.element),x.element.remove(),Le(K,p);return}});let s=[],D={};S.forEach(p=>{let x=ee(p),b=K[x];if(b!==void 0){if(b.item!==p){D[x]=!0;let Dt=q(p),lt=F.render(Dt),it={key:x,item:p,element:lt};s.push(it),K[x]=it;return}s.push(b);return}let C=q(p),Pe=F.render(C),rt={key:x,item:p,element:Pe};s.push(rt),K[x]=rt});let j={contents:R.nextSibling};s.forEach(p=>{let x=j.contents;if(x==null){t.insertBefore(p.element,_);return}if(x===_){t.insertBefore(p.element,_);return}if(x===p.element){j.contents=x.nextSibling;return}fe(D[p.key],!1)?(F.disposeElement(x),t.replaceChild(p.element,x),j.contents=p.element.nextSibling):(t.insertBefore(p.element,x),j.contents=p.element.nextSibling)})},$=V(()=>{E()},void 0);H(ue,$)})}}}function be(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,i=n.events,u=n.attrs,o=Z(t);if(o===void 0)return At("Missing DOM element for Element node");let d=m(o),a=W();return U(d,a),X(a,()=>{u.forEach($=>{let S=$[1],h=$[0];switch(S.TAG){case"Static":return;case"SignalValue":let T=S._0,s=V(()=>{he(d,h,L(T))},void 0);return H(a,s);case"Compute":let D=S._0,j=V(()=>{he(d,h,D())},void 0);return H(a,j)}}),i.forEach($=>{d.addEventListener($[0],$[1])});let E=we(d);r.forEach($=>be($,E))});case"Text":Z(t);return;case"SignalText":let l=n._0;ye(t,Cl);let c=Z(t);if(c===void 0)return At("Missing text node for SignalText");let k=m(c),v=W();U(k,v),X(v,()=>{let E=V(()=>{k.textContent=L(l)},void 0);H(v,E)}),ye(t,Pl);return;case"Fragment":n._0.forEach(E=>be(E,t));return;case"SignalFragment":let P=n._0;ye(t,Ml);let A=nt(t,Rl),O=document.createElement("div");O.setAttribute("style","display: contents");let q=A[0],ee=q!==void 0?q.parentNode:void 0;A.forEach(E=>{O.appendChild(E)});let ie=t.current;if(ee!==void 0){let E=m(ee);ie!==void 0?E.insertBefore(O,m(ie)):E.appendChild(O)}let ue=W();U(O,ue);let K={},oe={contents:!1};return X(ue,()=>{let E=V(()=>{let $=L(P),S=F.getKeyedChildren($),h=0;S!==void 0&&oe.contents?F.reconcileKeyedChildren(S,K,O):h=1,h===1&&(F.clearKeyedItems(K),Array.from(O.childNodes||[]).forEach(F.disposeElement),O.innerHTML="",S!==void 0?S.forEach(s=>{let D=F.render(s.child);K[s.key]={key:s.key,item:s.identity,element:D},O.appendChild(D)}):$.forEach(s=>{let D=F.render(s);O.appendChild(D)}),oe.contents=!0)},void 0);H(ue,E)});case"Keyed":e=n.child;continue;case"LazyComponent":ye(t,Nl);let Ce=n._0();be(Ce,t),ye(t,Bl);return;case"KeyedList":let R=n.keyFn,_=n.signal;return ye(t,Nn),(()=>{for(;;){let E=t.current;if(E===void 0)return;let $=m(E);if(!tt($,Ke))if(Ie($,Bn)){Z(t);return}else return;let S=fe(kt($),"");Z(t);let T=nt(t,In).find(s=>s.nodeType===1);if(T!==void 0){let s=re(_),D=fe(s.find(j=>R(j)===S),{});m(T)}}})()}}}function er(e,t,n){let r=n!==void 0?n:{},i=e(),u=we(t),o=u.current;o!==void 0&&tt(m(o),"xote-root:")&&Z(u),be(i,u),window.__XOTE_HYDRATED__=!0;let d=r.onHydrated;if(d!==void 0)return d()}function Ci(e,t,n){let r=n!==void 0?n:{},i=document.getElementById(t);if(i==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return er(e,i,r)}const Pi=Object.freeze(Object.defineProperty({__proto__:null,DOM:void 0,DOMWalker:Ai,HydrationMismatch:Di,Markers:void 0,Reactivity:void 0,hydrate:er,hydrateById:Ci,hydrateNode:wi,hydrateNodeWithWalker:be,logHydrationWarning:At},Symbol.toStringTag,{value:"Module"}));M.Computed=Br,M.Effect=kr,M.Html=ul,M.Hydration=Pi,M.Node=Ur,M.Prop=sl,M.ReactiveProp=fl,M.Route=ml,M.Router=Tl,M.SSR=Hl,M.SSRContext=Ul,M.SSRState=Ei,M.Signal=Fr,M.View=Xr,M.XoteJSX=cl,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.xote={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r};function r(e){switch(Object.prototype.toString.call(e)){case`[object BigInt]`:return{TAG:`BigInt`,_0:e};case`[object Boolean]`:return{TAG:`Bool`,_0:e};case`[object AsyncFunction]`:case`[object Function]`:case`[object GeneratorFunction]`:return{TAG:`Function`,_0:e};case`[object Null]`:return`Null`;case`[object Number]`:return{TAG:`Number`,_0:e};case`[object String]`:return{TAG:`String`,_0:e};case`[object Symbol]`:return{TAG:`Symbol`,_0:e};case`[object Undefined]`:return`Undefined`;default:return{TAG:`Object`,_0:e}}}var i={classify:r};function a(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function o(e){if(e!=null)return a(e)}function s(e){if(e===null||e.BS_PRIVATE_NESTED_SOME_NONE===void 0)return e;let t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function c(e,t){let n=e.length,r=Array(n),i=0;for(let a=0;a<n;++a){let n=e[a],o=t(n);o!==void 0&&(r[i]=s(o),i=i+1|0)}return r.length=i,r}var l={contents:0};function u(){return l.contents=l.contents+1|0,l.contents}var d={contents:0},f={contents:0};function p(){return{first:void 0,last:void 0,computedSubscriberCount:0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0,deferEffectsUntilRecompute:!1,lastGlobalVersion:0}}function m(e,t){return{first:void 0,last:void 0,computedSubscriberCount:0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0,deferEffectsUntilRecompute:t===void 0?!1:t,lastGlobalVersion:0}}function ee(e,t,n,r,i){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:i}}function te(e){e.flags&=-2}function ne(e){return(e.flags&2)!=0}function h(e){e.flags|=2}function re(e){e.flags&=-3}function ie(e){return(e.flags&1)!=0}function g(e){e.flags|=1}function _(e){e.flags&=-2}function v(e){return(e.flags&2)!=0}function y(e){e.flags|=2}function ae(e){e.flags&=-3}function b(e){return e.compute!==void 0}function oe(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,lastTrackedVersion:0}}function se(e,t){t.prevSub=e.last,t.nextSub=void 0;let n=e.last;if(n===void 0?e.first=t:n.nextSub=t,e.last=t,t.observer.compute!==void 0){e.computedSubscriberCount=e.computedSubscriberCount+1|0;return}}function ce(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n===void 0?e.firstDep=t:n.nextDep=t,e.lastDep=t}function x(e){let t=e.subs,n=e.prevSub;n===void 0?t.first=e.nextSub:n.nextSub=e.nextSub;let r=e.nextSub;if(r===void 0?t.last=e.prevSub:r.prevSub=e.prevSub,e.prevSub=void 0,e.nextSub=void 0,e.observer.compute!==void 0&&t.computedSubscriberCount>0){t.computedSubscriberCount=t.computedSubscriberCount-1|0;return}}function le(e,t){let n=t.prevDep;n===void 0?e.firstDep=t.nextDep:n.nextDep=t.nextDep;let r=t.nextDep;r===void 0?e.lastDep=t.prevDep:r.prevDep=t.prevDep,t.prevDep=void 0,t.nextDep=void 0}function ue(e,t){let n=t.prevDep;n===void 0?e.firstDep=t.nextDep:n.nextDep=t.nextDep;let r=t.nextDep;r===void 0?e.lastDep=t.prevDep:r.prevDep=t.prevDep,t.prevDep=void 0,t.nextDep=void 0}function de(e){let t=e.firstDep;for(;t!==void 0;){let e=t;if(e!==void 0){let n=e.nextDep;x(e),t=n}}e.firstDep=void 0,e.lastDep=void 0}function fe(e){let t=e.firstDep;for(;t!==void 0;){let e=t;if(e!==void 0){let n=e.nextDep;x(e),t=n}}e.firstDep=void 0,e.lastDep=void 0}function pe(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n===void 0?e.firstDep=t:n.nextDep=t,e.lastDep=t}var S={contents:void 0},C={contents:void 0},w={contents:0},T={contents:void 0},E={contents:void 0},D=[],O=[],k={contents:!1},A={contents:!1},j={contents:!1},me={contents:0},he={contents:0},M=[],ge=(function(e){e.length=0}),_e=(function(e,t){if(!(t<=0)){if(t>=e.length){e.length=0;return}e.copyWithin(0,t),e.length-=t}});function ve(e){ne(e)||(h(e),D.length===0?A.contents=!1:e.level<me.contents&&(A.contents=!0),D.push(e),me.contents=e.level)}function ye(e){v(e)||(y(e),O.length===0?j.contents=!1:e.level<he.contents&&(j.contents=!0),O.push(e),he.contents=e.level)}function be(e,t){if(e.firstDep===void 0){let n=oe(t,e);n.lastTrackedVersion=w.contents,pe(e,n),se(t,n),T.contents=n;return}let n=w.contents,r=!1,i=T.contents;if(i!==void 0)if(i.subs===t&&i.observer===e)i.lastTrackedVersion=n,r=!0;else{let a=i.nextDep;a!==void 0&&a.subs===t&&a.observer===e&&(a.lastTrackedVersion=n,T.contents=a,r=!0)}if(!r){let i=t.last;i!==void 0&&i.lastTrackedVersion===n&&i.observer===e&&(i.lastTrackedVersion=n,T.contents=i,r=!0)}if(r)return;let a=!1,o,s=e.firstDep;for(;s!==void 0&&!a;){let e=s;e!==void 0&&(e.subs===t?(e.lastTrackedVersion=n,o=e,a=!0):s=e.nextDep)}if(a){T.contents=o;return}let c=oe(t,e);c.lastTrackedVersion=n,pe(e,c),se(t,c),T.contents=c}function xe(e,t){if(e.firstDep===void 0){let n=oe(t,e);n.lastTrackedVersion=w.contents,ce(e,n),se(t,n),E.contents=n;return}let n=w.contents,r=!1,i=E.contents;if(i!==void 0)if(i.subs===t&&i.observer===e)i.lastTrackedVersion=n,r=!0;else{let a=i.nextDep;a!==void 0&&a.subs===t&&a.observer===e&&(a.lastTrackedVersion=n,E.contents=a,r=!0)}if(!r){let i=t.last;i!==void 0&&i.lastTrackedVersion===n&&i.observer===e&&(i.lastTrackedVersion=n,E.contents=i,r=!0)}if(r)return;let a=!1,o,s=e.firstDep;for(;s!==void 0&&!a;){let e=s;e!==void 0&&(e.subs===t?(e.lastTrackedVersion=n,o=e,a=!0):s=e.nextDep)}if(a){E.contents=o;return}let c=oe(t,e);c.lastTrackedVersion=n,ce(e,c),se(t,c),E.contents=c}function Se(e){let t=S.contents;if(t!==void 0)return be(t,e);let n=C.contents;if(n!==void 0)return xe(n,e)}function Ce(e,t){return e.level-t.level|0}function we(e,t){return e.level-t.level|0}function Te(e){let t=0,n=e.firstDep;for(;n!==void 0;){let e=n;e!==void 0&&(b(e.subs)&&e.subs.level>t&&(t=e.subs.level),n=e.nextDep)}return t+1|0}function Ee(e){let t=0,n=e.firstDep;for(;n!==void 0;){let e=n;e!==void 0&&(b(e.subs)&&e.subs.level>t&&(t=e.subs.level),n=e.nextDep)}return t+1|0}function De(e,t){let n=w.contents,r=e.version;d.contents=d.contents+1|0,w.contents=d.contents,t&&ae(e);let i=S.contents,a=T.contents;S.contents=e,T.contents=e.firstDep;try{let t=e.compute;t!==void 0&&t();let o=e.firstDep;for(;o!==void 0;){let t=o;if(t!==void 0){let n=t.nextDep;t.lastTrackedVersion!==w.contents&&(x(t),ue(e,t)),o=n}}if(_(e),e.lastGlobalVersion=f.contents,e.first!==void 0&&e.version!==r){let t=e.first;for(;t!==void 0;){let e=t;if(e!==void 0){let n=e.observer;if(b(n))g(n);else{let t=C.contents;t!==void 0&&t===e.observer||ve(e.observer)}t=e.nextSub}}}S.contents=i,T.contents=a,w.contents=n;return}catch(e){throw S.contents=i,T.contents=a,w.contents=n,e}}function Oe(e){let t=e.level;if(De(e,!0),t===0){e.level=Te(e);return}}function ke(e){let t=e.level,n=w.contents;d.contents=d.contents+1|0,w.contents=d.contents,re(e);let r=C.contents,i=E.contents;C.contents=e,E.contents=e.firstDep;try{e.run();let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;n.lastTrackedVersion!==w.contents&&(x(n),le(e,n)),t=r}}te(e),C.contents=r,E.contents=i,w.contents=n}catch(e){throw C.contents=r,E.contents=i,w.contents=n,e}if(t===0){e.level=Ee(e);return}}function Ae(){k.contents=!0;try{for(;D.length!==0||O.length!==0;){if(O.length!==0){let e=O.length;e>1&&j.contents&&(O.sort(we),j.contents=!1);let t=0;for(;t<e;){let e=O[t];e!==void 0&&Oe(e),t=t+1|0}_e(O,e),O.length===0&&(j.contents=!1)}if(D.length!==0){let e=D.length;e>1&&A.contents&&(D.sort(Ce),A.contents=!1);let t=0;for(;t<e;){let e=D[t];e!==void 0&&ke(e),t=t+1|0}_e(D,e),D.length===0&&(A.contents=!1)}}k.contents=!1;return}catch(e){throw k.contents=!1,e}}function je(e){if(e.first!==void 0)if(!b(e)&&e.computedSubscriberCount===0){let t=e.first;for(;t!==void 0;){let e=t;e!==void 0&&(ve(e.observer),t=e.nextSub)}}else{M.push(e);let t=0;for(;t<M.length;){let e=M[t];if(t=t+1|0,e!==void 0){let t=e.first;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.observer;b(r)?ie(r)||(g(r),M.push(r)):b(e)&&e.deferEffectsUntilRecompute?ye(e):ve(n.observer),t=n.nextSub}}}}ge(M)}if((D.length!==0||O.length!==0)&&!k.contents)return Ae()}function Me(e){if(!b(e)||!ie(e))return;if(e.lastGlobalVersion===f.contents)return _(e);let t=e.level;if(De(e,!1),t===0){e.level=Te(e);return}}function Ne(e){let t=k.contents;k.contents=!0;try{let n=e();return t||(k.contents=!1,(D.length!==0||O.length!==0)&&Ae()),n}catch(e){throw t||(k.contents=!1),e}}function Pe(e){let t=S.contents,n=C.contents,r=T.contents,i=E.contents;S.contents=void 0,C.contents=void 0,T.contents=void 0,E.contents=void 0;try{let a=e();return S.contents=t,C.contents=n,T.contents=r,E.contents=i,a}catch(e){throw S.contents=t,C.contents=n,T.contents=r,E.contents=i,e}}function Fe(e,t){let n=u(),r={contents:void 0},i=ee(n,`Effect`,()=>{let t=r.contents;t!==void 0&&t(),r.contents=e()},t,void 0),a=C.contents;C.contents=i;try{i.run(),te(i),C.contents=a}catch(e){throw C.contents=a,e}i.level=Ee(i);let o={contents:!1};return{dispose:()=>{if(o.contents)return;o.contents=!0;let e=r.contents;e!==void 0&&e(),de(i)}}}function Ie(e,t){Fe(e,t)}var Le=n({run:()=>Re,runWithDisposer:()=>N}),N=Fe,Re=Ie;function ze(e,t){return e===t}function Be(e,t){return!1}function Ve(e,t,n){return{id:u(),value:e,equals:n===void 0?ze:n,name:t,subs:p()}}function He(e,t){return{id:u(),value:e,equals:Be,name:t,subs:p()}}function Ue(e){return Me(e.subs),Se(e.subs),e.value}function We(e){return Me(e.subs),e.value}function Ge(e,t){let n;try{n=!e.equals(e.value,t)}catch{n=!0}if(n)return e.value=t,e.subs.version=e.subs.version+1|0,f.contents=f.contents+1|0,je(e.subs)}function Ke(e,t){Ge(e,t(e.value))}var qe=Ne,Je=Pe,Ye=n({batch:()=>nt,defaultEquals:()=>Xe,get:()=>P,make:()=>Qe,makeForComputed:()=>$e,neverEquals:()=>Ze,peek:()=>F,set:()=>et,untrack:()=>rt,update:()=>tt}),Xe=ze,Ze=Be,Qe=Ve,$e=He,P=Ue,F=We,et=Ge,tt=Ke,nt=qe,rt=Je;function it(e,t){delete e[t]}function at(e,t){let n=u(),r=(e,t)=>!1,i={contents:void 0},a=m(()=>{let t=i.contents;t.value=e(),t.subs.version=t.subs.version+1|0},!1),o=S.contents;S.contents=a;let s=e();S.contents=o;let c={id:n,value:s,equals:r,name:t,subs:a};return i.contents=c,a.lastGlobalVersion=f.contents,_(a),c}function ot(e,t,n){let r=u(),i={contents:void 0},a=m(()=>{let t=i.contents,n=t.value,r=e(),a;try{a=!t.equals(n,r)}catch{a=!0}if(a){t.value=r,t.subs.version=t.subs.version+1|0;return}},!0),o=S.contents;S.contents=a;let s=e();S.contents=o;let c={id:r,value:s,equals:t,name:n,subs:a};return i.contents=c,a.lastGlobalVersion=f.contents,_(a),c}function st(e,t,n){return n===void 0?at(e,t):ot(e,n,t)}function ct(e){fe(e.subs)}var lt=n({dispose:()=>ft,make:()=>I,makeWithEquals:()=>dt,makeWithoutEquals:()=>ut}),ut=at,dt=ot,I=st,ft=ct;function pt(e,t){return e===void 0?t:s(e)}function mt(e){return e!==void 0}var ht=[`checked`,`disabled`,`required`,`readonly`,`multiple`,`aria-hidden`,`aria-expanded`,`aria-selected`,`draggable`,`hidden`,`contenteditable`,`spellcheck`,`autofocus`];function gt(e){return ht.includes(e)}function L(e){return e?`true`:`false`}function _t(e){return e===`true`}var vt=`http://www.w3.org/2000/svg`,yt=`svg.path.circle.ellipse.line.polygon.polyline.rect.g.defs.clipPath.mask.pattern.marker.symbol.use.text.tspan.image.foreignObject.linearGradient.radialGradient.stop.filter.feBlend.feColorMatrix.feComposite.feFlood.feGaussianBlur.feMerge.feMergeNode.feOffset.animate.animateTransform.desc.title.metadata`.split(`.`),bt={};yt.forEach(e=>{bt[e]=!0});function xt(e){return Array.from(e.childNodes)}function St(e){return mt(bt[e])?document.createElementNS(vt,e):document.createElement(e)}function Ct(e,t,n){switch(t){case`checked`:e.checked=n===`true`;return;case`disabled`:e.disabled=n===`true`;return;case`value`:e.value=n;return;default:gt(t)?_t(n)?e.setAttribute(t,``):e.removeAttribute(t):e.setAttribute(t,n);return}}var wt={contents:void 0};function R(){return{disposers:[],computeds:[]}}function z(e,t){let n=wt.contents;wt.contents=e;let r=t();return wt.contents=n,r}function B(e,t){e.disposers.push(t)}function Tt(e){e.disposers.forEach(e=>e.dispose()),e.computeds.forEach(ft)}function V(e,t){e.__xote_owner__=t}function Et(e){return o(e.__xote_owner__)}function Dt(e,t){let n=e.TAG;return n===void 0?!1:s(n)===t}function Ot(e){let t=i.classify(e);if(typeof t!=`object`||t.TAG!==`Object`)return!1;let n=t._0;return Object.prototype.hasOwnProperty.call(n,`TAG`)?Dt(n,`Static`)?!0:Dt(n,`Reactive`):!1}function kt(e){let t=i.classify(e);return typeof t==`object`?t.TAG===`Function`:!1}function At(e){let t=i.classify(e);return typeof t==`object`?t.TAG===`Object`:!1}function jt(e,t){return e[t]}var Mt=n({$$null:()=>fn,Attr:()=>Lt,Attributes:()=>It,Bool:()=>wn,Core:()=>Dn,DOM:()=>Tn,Float:()=>xn,For:()=>tn,Int:()=>yn,KeyedFor:()=>rn,Maybe:()=>ln,Reactivity:()=>En,Render:()=>Ht,Show:()=>on,Text:()=>_n,Value:()=>dn,attr:()=>q,bool:()=>Yt,childrenToArray:()=>W,computedAttr:()=>On,each:()=>Qt,eachWithKey:()=>$t,element:()=>G,empty:()=>kn,float:()=>Jt,fragment:()=>Xt,int:()=>qt,isReactiveProp:()=>An,mount:()=>pn,mountById:()=>mn,renderValuePrimitiveProps:()=>K,signalAttr:()=>J,signalFloat:()=>Kt,signalFragment:()=>Zt,signalInt:()=>Gt,signalText:()=>Wt,text:()=>Ut,valuePrimitive:()=>hn});function Nt(e,t){return[e,{TAG:`Static`,_0:t}]}function Pt(e,t){return[e,{TAG:`SignalValue`,_0:t}]}function Ft(e,t){return[e,{TAG:`Compute`,_0:t}]}var It={$$static:Nt,signal:Pt,computed:Ft},Lt={string:Nt,signal:Pt,compute:Ft};function H(e){let t=Et(e);t!==void 0&&Tt(t),xt(e).forEach(H)}function Rt(e,t){if(e===t)return!0;let n=i.classify(e),r=i.classify(t);if(typeof n!=`object`||n.TAG!==`Object`||typeof r!=`object`||r.TAG!==`Object`)return!1;let a=r._0,o=n._0,c=Object.keys(o),l=Object.keys(a);return c.length===l.length?c.every(e=>{let t=o[e],n=a[e];return t!==void 0&&n!==void 0?s(t)===s(n):!1}):!1}function zt(e){Object.keys(e).forEach(t=>{it(e,t)})}function Bt(e){if(e.length===0)return;let t=c(e,e=>{if(e.TAG===`Keyed`)return{key:e.key,identity:e.identity,child:e.child}});if(t.length===e.length)return t}function Vt(e,t,n){let r={};e.forEach(e=>{r[e.key]=e});let i=[];Object.keys(t).forEach(e=>{r[e]===void 0&&i.push(e)}),i.forEach(e=>{let n=t[e];if(n!==void 0){H(n.element),n.element.remove(),it(t,e);return}});let c=[],l={};e.forEach(e=>{let n=t[e.key];if(n!==void 0){if(Rt(n.item,e.identity)){c.push(n);return}let r=U(e.child),i={key:e.key,item:e.identity,element:r};l[e.key]=n.element,c.push(i),t[e.key]=i;return}let r=U(e.child),i={key:e.key,item:e.identity,element:r};c.push(i),t[e.key]=i});let u=n.firstChild,d={contents:u==null?void 0:a(u)};c.forEach(e=>{let t=d.contents;if(t!==void 0){let r=s(t);if(r===e.element){d.contents=o(r.nextSibling);return}let i=l[e.key];if(i!==void 0){let t=s(i);if(r===t){H(t),n.replaceChild(e.element,t),d.contents=o(e.element.nextSibling);return}}n.insertBefore(e.element,r),d.contents=o(e.element.nextSibling);return}let r=l[e.key];if(r!==void 0){let t=s(r);H(t),t.remove(),n.appendChild(e.element);return}n.appendChild(e.element)})}function U(e){for(;;){let t=e;switch(t.TAG){case`Element`:let n=t.children,r=t.events,i=t.attrs,a=t.tag,o=St(a),s=R();return V(o,s),z(s,()=>{let e=e=>a===`select`?e[0]===`value`:!1,t=e=>{let t=e[1],n=e[0];switch(t.TAG){case`Static`:return Ct(o,n,t._0);case`SignalValue`:let e=t._0;return Ct(o,n,F(e)),B(s,N(()=>{Ct(o,n,P(e))},void 0));case`Compute`:let r=t._0;return B(s,N(()=>{Ct(o,n,r())},void 0))}};i.forEach(n=>{if(!e(n))return t(n)}),r.forEach(e=>{o.addEventListener(e[0],e[1])}),n.forEach(e=>{let t=U(e);o.appendChild(t)}),i.forEach(n=>{if(e(n))return t(n)})}),o;case`Text`:return document.createTextNode(t._0);case`SignalText`:let c=t._0,l=document.createTextNode(F(c)),u=R();return V(l,u),z(u,()=>{B(u,N(()=>{l.textContent=P(c)},void 0))}),l;case`Fragment`:let d=document.createDocumentFragment();return t._0.forEach(e=>{let t=U(e);d.appendChild(t)}),d;case`SignalFragment`:let f=t._0,p=R(),m=document.createElement(`div`);m.setAttribute(`style`,`display: contents`),V(m,p);let ee={};return z(p,()=>{B(p,N(()=>{let e=P(f),t=Bt(e);t===void 0?(zt(ee),xt(m).forEach(H),m.innerHTML=``,e.forEach(e=>{let t=U(e);m.appendChild(t)})):Vt(t,ee,m)},void 0))}),m;case`Keyed`:e=t.child;continue;case`LazyComponent`:let te=R(),ne=U(z(te,t._0));return V(ne,te),ne;case`KeyedList`:let h=t.renderItem,re=t.keyFn,ie=t.signal,g=R(),_=document.createComment(` keyed-list-start `),v=document.createComment(` keyed-list-end `);V(_,g);let y={},ae=()=>{let e=v.parentNode;if(e==null)return;let t=P(ie),n={};t.forEach(e=>{n[re(e)]=e});let r=[];Object.keys(y).forEach(e=>{n[e]===void 0&&r.push(e)}),r.forEach(e=>{let t=y[e];if(t!==void 0){H(t.element),t.element.remove(),it(y,e);return}});let i=[],a={};t.forEach(e=>{let t=re(e),n=y[t];if(n!==void 0){if(n.item!==e){a[t]=!0;let n={key:t,item:e,element:U(h(e))};i.push(n),y[t]=n;return}i.push(n);return}let r={key:t,item:e,element:U(h(e))};i.push(r),y[t]=r});let o={contents:_.nextSibling};i.forEach(t=>{let n=o.contents;if(n==null){e.insertBefore(t.element,v);return}if(n===v){e.insertBefore(t.element,v);return}if(n===t.element){o.contents=n.nextSibling;return}pt(a[t.key],!1)?(H(n),e.replaceChild(t.element,n),o.contents=t.element.nextSibling):(e.insertBefore(t.element,n),o.contents=t.element.nextSibling)})},b=document.createDocumentFragment();return b.appendChild(_),F(ie).forEach(e=>{let t=re(e),n=U(h(e));y[t]={key:t,item:e,element:n},b.appendChild(n)}),b.appendChild(v),z(g,()=>{B(g,N(()=>{ae()},void 0))}),b}}}var Ht={disposeElement:H,shallowEqualIdentity:Rt,clearKeyedItems:zt,getKeyedChildren:Bt,reconcileKeyedChildren:Vt,render:U};function Ut(e){return{TAG:`Text`,_0:e}}function Wt(e){return{TAG:`SignalText`,_0:I(e,void 0,void 0)}}function Gt(e){return{TAG:`SignalText`,_0:I(()=>e().toString(),void 0,void 0)}}function Kt(e){return{TAG:`SignalText`,_0:I(()=>e().toString(),void 0,void 0)}}function qt(e){return{TAG:`Text`,_0:e.toString()}}function Jt(e){return{TAG:`Text`,_0:e.toString()}}function Yt(e){return{TAG:`Text`,_0:e?`true`:`false`}}function Xt(e){return{TAG:`Fragment`,_0:e}}function Zt(e){return{TAG:`SignalFragment`,_0:e}}function W(e){return e===void 0?[]:e.TAG===`Fragment`?e._0:[e]}function Qt(e,t){return{TAG:`SignalFragment`,_0:I(()=>P(e).map(t),void 0,void 0)}}function $t(e,t,n){return{TAG:`KeyedList`,signal:e,keyFn:t,renderItem:n}}function en(e){let t=e.each,n=e.by;if(t.TAG===`Reactive`){let r=t._0;return n===void 0?Qt(r,e.render):{TAG:`KeyedList`,signal:r,keyFn:n,renderItem:e.render}}let r=t._0;return n===void 0?{TAG:`Fragment`,_0:r.map(e.render)}:{TAG:`Fragment`,_0:r.map(t=>({TAG:`Keyed`,key:n(t),identity:t,child:e.render(t)}))}}var tn={make:en};function nn(e){let t=e.each;return t.TAG===`Reactive`?{TAG:`KeyedList`,signal:t._0,keyFn:e.by,renderItem:e.render}:{TAG:`Fragment`,_0:t._0.map(t=>({TAG:`Keyed`,key:e.by(t),identity:t,child:e.render(t)}))}}var rn={make:nn};function an(e){let t=e.when_;if(t.TAG!==`Reactive`)return t._0?{TAG:`Fragment`,_0:W(e.children)}:{TAG:`Fragment`,_0:W(e.fallback)};let n=t._0;return{TAG:`SignalFragment`,_0:I(()=>P(n)?W(e.children):W(e.fallback),void 0,void 0)}}var on={make:an};function sn(e,t){return t===void 0?W(e.fallback):[e.render(s(t))]}function cn(e){let t=e.value;if(t.TAG!==`Reactive`)return{TAG:`Fragment`,_0:sn(e,t._0)};let n=t._0;return{TAG:`SignalFragment`,_0:I(()=>sn(e,P(n)),void 0,void 0)}}var ln={renderValue:sn,make:cn};function un(e){let t=e.value;if(t.TAG!==`Reactive`)return e.render(t._0);let n=t._0;return{TAG:`SignalFragment`,_0:I(()=>[e.render(P(n))],void 0,void 0)}}var dn={make:un};function G(e,t,n,r,i){return{TAG:`Element`,tag:e,attrs:t===void 0?[]:t,events:n===void 0?[]:n,children:r===void 0?[]:r}}function fn(){return{TAG:`Text`,_0:``}}function pn(e,t){let n=U(e);t.appendChild(n)}function mn(e,t){let n=document.getElementById(t);if(n==null){console.error(`Container element not found: `+t);return}else return pn(e,n)}function hn(e,t){if(Ot(e)){if(e.TAG!==`Reactive`)return{TAG:`Text`,_0:t(e._0)};let n=e._0;return{TAG:`SignalText`,_0:I(()=>t(P(n)),void 0,void 0)}}let n=i.classify(e);if(typeof n!=`object`)return{TAG:`Text`,_0:``};switch(n.TAG){case`Object`:return{TAG:`SignalText`,_0:I(()=>t(P(e)),void 0,void 0)};case`Function`:return Wt(()=>t(e()));default:return{TAG:`Text`,_0:t(e)}}}function K(e,t){let n=jt(e,`children`),r=jt(e,`value`);return n===void 0?r===void 0?{TAG:`Text`,_0:``}:hn(s(r),t):hn(s(n),t)}function gn(e){return K(e,e=>e)}var _n={make:gn};function vn(e){return K(e,e=>e.toString())}var yn={make:vn};function bn(e){return K(e,e=>e.toString())}var xn={make:bn};function Sn(e){return e?`true`:`false`}function Cn(e){return K(e,Sn)}var wn={toString:Sn,make:Cn},Tn,En,Dn,q=Nt,J=Pt,On=Ft,kn=fn,An=Ot,jn=n({a:()=>Hn,button:()=>Pn,div:()=>Mn,h1:()=>In,h2:()=>Ln,h3:()=>Rn,input:()=>Fn,li:()=>Vn,p:()=>zn,span:()=>Nn,ul:()=>Bn});function Mn(e,t,n,r){return G(`div`,e,t,n,void 0)}function Nn(e,t,n,r){return G(`span`,e,t,n,void 0)}function Pn(e,t,n,r){return G(`button`,e,t,n,void 0)}function Fn(e,t,n){return G(`input`,e,t,void 0,void 0)}function In(e,t,n,r){return G(`h1`,e,t,n,void 0)}function Ln(e,t,n,r){return G(`h2`,e,t,n,void 0)}function Rn(e,t,n,r){return G(`h3`,e,t,n,void 0)}function zn(e,t,n,r){return G(`p`,e,t,n,void 0)}function Bn(e,t,n,r){return G(`ul`,e,t,n,void 0)}function Vn(e,t,n,r){return G(`li`,e,t,n,void 0)}function Hn(e,t,n,r){return G(`a`,e,t,n,void 0)}function Y(e,t){return Ot(t)?t.TAG===`Reactive`?J(e,t._0):q(e,t._0):kt(t)?On(e,t):At(t)?J(e,t):q(e,t)}function X(e,t){if(Ot(t)){if(t.TAG!==`Reactive`)return q(e,L(t._0));let n=t._0;return J(e,I(()=>L(P(n)),void 0,void 0))}return kt(t)?On(e,()=>L(t())):At(t)?J(e,I(()=>L(P(t)),void 0,void 0)):q(e,L(t))}var Un=n({$$null:()=>Jn,Elements:()=>tr,Prop:()=>nr,array:()=>qn,jsx:()=>Wn,jsxFragment:()=>Kn,jsxKeyed:()=>Gn,jsxs:()=>rr,jsxsKeyed:()=>ir});function Wn(e,t){return{TAG:`LazyComponent`,_0:()=>e(t)}}function Gn(e,t,n,r){return n===void 0?{TAG:`LazyComponent`,_0:()=>e(t)}:{TAG:`Keyed`,key:n,identity:t,child:{TAG:`LazyComponent`,_0:()=>e(t)}}}function Kn(e){let t=e.children;return t===void 0?Xt([]):t}var qn=Xt;function Jn(){return Ut(``)}function Z(e,t,n,r){if(t!==void 0){e.push(r(n,s(t)));return}}function Q(e,t,n){if(t!==void 0){e.push(q(n,t.toString()));return}}function Yn(e){let t=[];Z(t,e.id,`id`,Y),Z(t,e.class,`class`,Y),Z(t,e.style,`style`,Y),Z(t,e.title,`title`,Y),Z(t,e.type,`type`,Y),Z(t,e.name,`name`,Y),Z(t,e.value,`value`,Y),Z(t,e.placeholder,`placeholder`,Y),Z(t,e.disabled,`disabled`,X),Z(t,e.checked,`checked`,X),Z(t,e.required,`required`,X),Z(t,e.readOnly,`readonly`,X),Q(t,e.maxLength,`maxlength`),Q(t,e.minLength,`minlength`),Z(t,e.min,`min`,Y),Z(t,e.max,`max`,Y),Z(t,e.step,`step`,Y),Z(t,e.pattern,`pattern`,Y),Z(t,e.autoComplete,`autocomplete`,Y),Z(t,e.multiple,`multiple`,X),Z(t,e.accept,`accept`,Y),Q(t,e.rows,`rows`),Q(t,e.cols,`cols`),Z(t,e.autofocus,`autofocus`,X),Z(t,e.action,`action`,Y),Z(t,e.method,`method`,Y),Z(t,e.for,`for`,Y),Z(t,e.href,`href`,Y),Z(t,e.target,`target`,Y),Z(t,e.src,`src`,Y),Z(t,e.alt,`alt`,Y),Z(t,e.width,`width`,Y),Z(t,e.height,`height`,Y),Z(t,e.draggable,`draggable`,X),Z(t,e.hidden,`hidden`,X),Z(t,e.contentEditable,`contenteditable`,X),Z(t,e.spellcheck,`spellcheck`,X),Z(t,e.role,`role`,Y),Q(t,e.tabIndex,`tabindex`),Z(t,e[`aria-label`],`aria-label`,Y),Z(t,e[`aria-hidden`],`aria-hidden`,X),Z(t,e[`aria-expanded`],`aria-expanded`,X),Z(t,e[`aria-selected`],`aria-selected`,X),Z(t,e.xmlns,`xmlns`,Y),Z(t,e[`xmlns:xlink`],`xmlns:xlink`,Y),Z(t,e.version,`version`,Y),Z(t,e.viewBox,`viewBox`,Y),Z(t,e.preserveAspectRatio,`preserveAspectRatio`,Y),Z(t,e.d,`d`,Y),Z(t,e.pathLength,`pathLength`,Y),Z(t,e.cx,`cx`,Y),Z(t,e.cy,`cy`,Y),Z(t,e.r,`r`,Y),Z(t,e.rx,`rx`,Y),Z(t,e.ry,`ry`,Y),Z(t,e.x,`x`,Y),Z(t,e.y,`y`,Y),Z(t,e.x1,`x1`,Y),Z(t,e.y1,`y1`,Y),Z(t,e.x2,`x2`,Y),Z(t,e.y2,`y2`,Y),Z(t,e.fx,`fx`,Y),Z(t,e.fy,`fy`,Y),Z(t,e.dx,`dx`,Y),Z(t,e.dy,`dy`,Y),Z(t,e.points,`points`,Y),Z(t,e.transform,`transform`,Y),Z(t,e[`transform-origin`],`transform-origin`,Y),Z(t,e.fill,`fill`,Y),Z(t,e[`fill-opacity`],`fill-opacity`,Y),Z(t,e[`fill-rule`],`fill-rule`,Y),Z(t,e.stroke,`stroke`,Y),Z(t,e[`stroke-width`],`stroke-width`,Y),Z(t,e[`stroke-linecap`],`stroke-linecap`,Y),Z(t,e[`stroke-linejoin`],`stroke-linejoin`,Y),Z(t,e[`stroke-dasharray`],`stroke-dasharray`,Y),Z(t,e[`stroke-dashoffset`],`stroke-dashoffset`,Y),Z(t,e[`stroke-opacity`],`stroke-opacity`,Y),Z(t,e[`stroke-miterlimit`],`stroke-miterlimit`,Y),Z(t,e.opacity,`opacity`,Y),Z(t,e.color,`color`,Y),Z(t,e.visibility,`visibility`,Y),Z(t,e[`vector-effect`],`vector-effect`,Y),Z(t,e[`pointer-events`],`pointer-events`,Y),Z(t,e[`clip-path`],`clip-path`,Y),Z(t,e[`clip-rule`],`clip-rule`,Y),Z(t,e.mask,`mask`,Y),Z(t,e.filter,`filter`,Y),Z(t,e[`text-anchor`],`text-anchor`,Y),Z(t,e[`dominant-baseline`],`dominant-baseline`,Y),Z(t,e[`font-family`],`font-family`,Y),Z(t,e[`font-size`],`font-size`,Y),Z(t,e[`font-weight`],`font-weight`,Y),Z(t,e[`letter-spacing`],`letter-spacing`,Y),Z(t,e[`word-spacing`],`word-spacing`,Y),Z(t,e[`text-decoration`],`text-decoration`,Y),Z(t,e.offset,`offset`,Y),Z(t,e[`stop-color`],`stop-color`,Y),Z(t,e[`stop-opacity`],`stop-opacity`,Y),Z(t,e.gradientUnits,`gradientUnits`,Y),Z(t,e.gradientTransform,`gradientTransform`,Y),Z(t,e.spreadMethod,`spreadMethod`,Y),Z(t,e[`marker-start`],`marker-start`,Y),Z(t,e[`marker-mid`],`marker-mid`,Y),Z(t,e[`marker-end`],`marker-end`,Y),Z(t,e[`xlink:href`],`xlink:href`,Y);let n=e.data;return n!==void 0&&Object.entries(n).forEach(e=>{t.push(Y(`data-`+e[0],e[1]))}),t}function $(e,t,n){if(t!==void 0){e.push([n,s(t)]);return}}function Xn(e){let t=[];return $(t,e.onClick,`click`),$(t,e.onInput,`input`),$(t,e.onChange,`change`),$(t,e.onSubmit,`submit`),$(t,e.onFocus,`focus`),$(t,e.onBlur,`blur`),$(t,e.onKeyDown,`keydown`),$(t,e.onKeyUp,`keyup`),$(t,e.onMouseEnter,`mouseenter`),$(t,e.onMouseLeave,`mouseleave`),$(t,e.onMouseDown,`mousedown`),$(t,e.onMouseMove,`mousemove`),$(t,e.onMouseUp,`mouseup`),$(t,e.onContextMenu,`contextmenu`),$(t,e.onPointerDown,`pointerdown`),$(t,e.onPointerMove,`pointermove`),$(t,e.onPointerUp,`pointerup`),$(t,e.onPointerCancel,`pointercancel`),$(t,e.onPointerEnter,`pointerenter`),$(t,e.onPointerLeave,`pointerleave`),$(t,e.onPointerOver,`pointerover`),$(t,e.onPointerOut,`pointerout`),$(t,e.onGotPointerCapture,`gotpointercapture`),$(t,e.onLostPointerCapture,`lostpointercapture`),$(t,e.onDrag,`drag`),$(t,e.onDragStart,`dragstart`),$(t,e.onDragEnd,`dragend`),$(t,e.onDragOver,`dragover`),$(t,e.onDragEnter,`dragenter`),$(t,e.onDragLeave,`dragleave`),$(t,e.onDrop,`drop`),t}function Zn(e){let t=e.children;return t===void 0?[]:t.TAG===`Fragment`?t._0:[t]}function Qn(e,t){return{TAG:`Element`,tag:e,attrs:Yn(t),events:Xn(t),children:Zn(t)}}var $n=Qn;function er(e,t,n,r){return n===void 0?Qn(e,t):{TAG:`Keyed`,key:n,identity:t,child:Qn(e,t)}}var tr={addAttr:Z,addIntAttr:Q,propsToAttrs:Yn,addEvent:$,propsToEvents:Xn,getChildren:Zn,createElement:Qn,jsx:$n,jsxs:$n,jsxKeyed:er,jsxsKeyed:er},nr,rr=Wn,ir=Gn,ar=n({$$static:()=>sr,get:()=>or,reactive:()=>cr,signal:()=>lr});function or(e){return e.TAG===`Reactive`?P(e._0):e._0}function sr(e){return{TAG:`Static`,_0:e}}function cr(e){return{TAG:`Reactive`,_0:e}}var lr=cr;Object.defineProperty(e,"Computed",{enumerable:!0,get:function(){return lt}}),Object.defineProperty(e,"Effect",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(e,"Html",{enumerable:!0,get:function(){return jn}}),Object.defineProperty(e,"Prop",{enumerable:!0,get:function(){return ar}}),Object.defineProperty(e,"Signal",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(e,"View",{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(e,"XoteJSX",{enumerable:!0,get:function(){return Un}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xote",
3
- "version": "6.3.0",
3
+ "version": "7.0.0-beta.1",
4
4
  "repository": {
5
5
  "url": "https://github.com/brnrdog/xote"
6
6
  },
@@ -12,21 +12,43 @@
12
12
  "require": "./dist/xote.cjs",
13
13
  "default": "./dist/xote.mjs"
14
14
  },
15
+ "./client": {
16
+ "import": "./dist/client.mjs",
17
+ "require": "./dist/client.cjs",
18
+ "default": "./dist/client.mjs"
19
+ },
15
20
  "./view": "./src/View.res.mjs",
16
- "./node": "./src/Node.res.mjs",
17
21
  "./html": "./src/Html.res.mjs",
18
22
  "./jsx": "./src/XoteJSX.res.mjs",
19
23
  "./prop": "./src/Prop.res.mjs",
20
- "./reactive-prop": "./src/ReactiveProp.res.mjs",
21
24
  "./route": "./src/Route.res.mjs",
22
- "./router": "./src/Router.res.mjs",
23
- "./ssr": "./src/SSR.res.mjs",
25
+ "./router": {
26
+ "import": "./dist/router.mjs",
27
+ "require": "./dist/router.cjs",
28
+ "default": "./dist/router.mjs"
29
+ },
30
+ "./ssr": {
31
+ "import": "./dist/ssr.mjs",
32
+ "require": "./dist/ssr.cjs",
33
+ "default": "./dist/ssr.mjs"
34
+ },
24
35
  "./ssr-context": "./src/SSRContext.res.mjs",
25
36
  "./ssr-state": "./src/SSRState.res.mjs",
26
- "./hydration": "./src/Hydration.res.mjs",
37
+ "./hydration": {
38
+ "import": "./dist/hydration.mjs",
39
+ "require": "./dist/hydration.cjs",
40
+ "default": "./dist/hydration.mjs"
41
+ },
42
+ "./mdx": {
43
+ "import": "./dist/mdx.mjs",
44
+ "require": "./dist/mdx.cjs",
45
+ "default": "./dist/mdx.mjs"
46
+ },
27
47
  "./signal": "./src/Signal.res.mjs",
28
48
  "./computed": "./src/Computed.res.mjs",
29
49
  "./effect": "./src/Effect.res.mjs",
50
+ "./jsx-runtime": "./src/jsx-runtime.mjs",
51
+ "./jsx-dev-runtime": "./src/jsx-dev-runtime.mjs",
30
52
  "./src/*": "./src/*",
31
53
  "./package.json": "./package.json",
32
54
  "./rescript.json": "./rescript.json"
@@ -37,6 +59,7 @@
37
59
  "src/**/*.res",
38
60
  "src/**/*.resi",
39
61
  "src/**/*.res.mjs",
62
+ "src/*.mjs",
40
63
  "rescript.json"
41
64
  ],
42
65
  "scripts": {
@@ -45,12 +68,14 @@
45
68
  "res:dev": "rescript -w",
46
69
  "format": "rescript format",
47
70
  "dev": "vite",
48
- "build": "vite build",
71
+ "build": "vite build && vite build --config vite.subpath.config.js",
72
+ "bundle:size": "node scripts/bundle-size-report.mjs",
49
73
  "preview": "vite preview",
74
+ "mdx:poc": "npm run res:build && vite build --config examples/mdx/vite.config.mjs",
50
75
  "docs:start": "cd docs-website && npm run dev",
51
76
  "docs:build": "cd docs-website && npm run build",
52
77
  "docs:serve": "cd docs-website && npm run preview",
53
- "test": "npx rescript && node tests/Tests.res.mjs"
78
+ "test": "npx rescript && node tests/Tests.res.mjs && node tests/JSXRuntime_test.mjs"
54
79
  },
55
80
  "keywords": [
56
81
  "rescript",
@@ -60,7 +85,11 @@
60
85
  ],
61
86
  "release": {
62
87
  "branches": [
63
- "main"
88
+ "main",
89
+ {
90
+ "name": "beta",
91
+ "prerelease": true
92
+ }
64
93
  ],
65
94
  "plugins": [
66
95
  "@semantic-release/commit-analyzer",
@@ -86,6 +115,7 @@
86
115
  "author": "Bernardo Gurgel <brnrdog@hey.com>",
87
116
  "license": "SEE LICENSE IN LICENSE",
88
117
  "devDependencies": {
118
+ "@mdx-js/rollup": "^3.1.1",
89
119
  "@semantic-release/changelog": "^6.0.3",
90
120
  "@semantic-release/commit-analyzer": "^13.0.1",
91
121
  "@semantic-release/git": "^10.0.1",
@@ -93,12 +123,14 @@
93
123
  "@semantic-release/npm": "^13.1.1",
94
124
  "@semantic-release/release-notes-generator": "^14.1.0",
95
125
  "glob": "^11.1.0",
126
+ "remark-gfm": "^4.0.1",
96
127
  "rescript": "^12.0.0",
97
128
  "semantic-release": "^25.0.1",
98
- "vite": "^7.3.2",
129
+ "vite": "^8.0.16",
99
130
  "zekr": "^1.7.0"
100
131
  },
101
132
  "dependencies": {
133
+ "@rescript/core": "^1.6.1",
102
134
  "rescript-signals": "^3.1.0"
103
135
  }
104
136
  }
package/rescript.json CHANGED
@@ -7,17 +7,16 @@
7
7
  "subdirs": true,
8
8
  "public": [
9
9
  "View",
10
- "Node",
11
10
  "Html",
12
11
  "XoteJSX",
13
12
  "Prop",
14
- "ReactiveProp",
15
13
  "Route",
16
14
  "Router",
17
15
  "SSR",
18
16
  "SSRContext",
19
17
  "SSRState",
20
18
  "Hydration",
19
+ "Mdx",
21
20
  "Signal",
22
21
  "Computed",
23
22
  "Effect"
@@ -40,6 +39,7 @@
40
39
  },
41
40
  "suffix": ".res.mjs",
42
41
  "dependencies": [
42
+ "@rescript/core",
43
43
  "rescript-signals"
44
44
  ],
45
45
  "dev-dependencies": [
package/src/Mdx.res ADDED
@@ -0,0 +1,77 @@
1
+ type children = Obj.t
2
+
3
+ type components = dict<Obj.t => View.node>
4
+
5
+ type props = {components?: components}
6
+
7
+ type document = props => View.node
8
+
9
+ let component = (make: 'props => View.node): (Obj.t => View.node) =>
10
+ props => make(Obj.magic(props))
11
+
12
+ let components = (entries: array<(string, Obj.t => View.node)>): components => Dict.fromArray(entries)
13
+
14
+ let render = (document: document, ~components=?, ()): View.node =>
15
+ switch components {
16
+ | Some(components) => document({components: components})
17
+ | None => document({})
18
+ }
19
+
20
+ @val @scope("Array") external isArray: 'a => bool = "isArray"
21
+ @val external toString: 'a => string = "String"
22
+
23
+ let isEmptyChild = (value: 'a): bool => {
24
+ ignore(value)
25
+ %raw(`value === null || value === undefined || typeof value === "boolean"`)
26
+ }
27
+
28
+ let isXoteNode = (value: 'a): bool => {
29
+ ignore(value)
30
+ %raw(`value && typeof value === "object" && (
31
+ value.TAG === "Element" ||
32
+ value.TAG === "Text" ||
33
+ value.TAG === "SignalText" ||
34
+ value.TAG === "Fragment" ||
35
+ value.TAG === "SignalFragment" ||
36
+ value.TAG === "Keyed" ||
37
+ value.TAG === "LazyComponent" ||
38
+ value.TAG === "KeyedList"
39
+ )`)
40
+ }
41
+
42
+ let rec nodeToText = (node: View.node): string =>
43
+ switch node {
44
+ | Text(text) => text
45
+ | Fragment(children) => children->Array.map(nodeToText)->Array.join("")
46
+ | _ => ""
47
+ }
48
+
49
+ let rec childrenToNodes = (children: children): array<View.node> => {
50
+ if isEmptyChild(children) {
51
+ []
52
+ } else if isArray(children) {
53
+ let result = []
54
+ let childrenArray: array<children> = Obj.magic(children)
55
+ childrenArray->Array.forEach(child => {
56
+ childrenToNodes(child)->Array.forEach(node => result->Array.push(node)->ignore)
57
+ })
58
+ result
59
+ } else if isXoteNode(children) {
60
+ [Obj.magic(children)]
61
+ } else {
62
+ [View.text(toString(children))]
63
+ }
64
+ }
65
+
66
+ let rec childrenToText = (children: children): string => {
67
+ if isEmptyChild(children) {
68
+ ""
69
+ } else if isArray(children) {
70
+ let childrenArray: array<children> = Obj.magic(children)
71
+ childrenArray->Array.map(childrenToText)->Array.join("")
72
+ } else if isXoteNode(children) {
73
+ nodeToText(Obj.magic(children))
74
+ } else {
75
+ toString(children)
76
+ }
77
+ }
@@ -0,0 +1,93 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as View$Xote from "./View.res.mjs";
4
+
5
+ function component(make) {
6
+ return props => make(props);
7
+ }
8
+
9
+ function components(entries) {
10
+ return Object.fromEntries(entries);
11
+ }
12
+
13
+ function render(document, components, param) {
14
+ if (components !== undefined) {
15
+ return document({
16
+ components: components
17
+ });
18
+ } else {
19
+ return document({});
20
+ }
21
+ }
22
+
23
+ function isEmptyChild(value) {
24
+ return (value === null || value === undefined || typeof value === "boolean");
25
+ }
26
+
27
+ function isXoteNode(value) {
28
+ return (value && typeof value === "object" && (
29
+ value.TAG === "Element" ||
30
+ value.TAG === "Text" ||
31
+ value.TAG === "SignalText" ||
32
+ value.TAG === "Fragment" ||
33
+ value.TAG === "SignalFragment" ||
34
+ value.TAG === "Keyed" ||
35
+ value.TAG === "LazyComponent" ||
36
+ value.TAG === "KeyedList"
37
+ ));
38
+ }
39
+
40
+ function nodeToText(node) {
41
+ switch (node.TAG) {
42
+ case "Text" :
43
+ return node._0;
44
+ case "Fragment" :
45
+ return node._0.map(nodeToText).join("");
46
+ default:
47
+ return "";
48
+ }
49
+ }
50
+
51
+ function childrenToNodes(children) {
52
+ if (isEmptyChild(children)) {
53
+ return [];
54
+ }
55
+ if (!Array.isArray(children)) {
56
+ if (isXoteNode(children)) {
57
+ return [children];
58
+ } else {
59
+ return [View$Xote.text(String(children))];
60
+ }
61
+ }
62
+ let result = [];
63
+ children.forEach(child => {
64
+ childrenToNodes(child).forEach(node => {
65
+ result.push(node);
66
+ });
67
+ });
68
+ return result;
69
+ }
70
+
71
+ function childrenToText(children) {
72
+ if (isEmptyChild(children)) {
73
+ return "";
74
+ } else if (Array.isArray(children)) {
75
+ return children.map(childrenToText).join("");
76
+ } else if (isXoteNode(children)) {
77
+ return nodeToText(children);
78
+ } else {
79
+ return String(children);
80
+ }
81
+ }
82
+
83
+ export {
84
+ component,
85
+ components,
86
+ render,
87
+ isEmptyChild,
88
+ isXoteNode,
89
+ nodeToText,
90
+ childrenToNodes,
91
+ childrenToText,
92
+ }
93
+ /* View-Xote Not a pure module */
package/src/Router.res CHANGED
@@ -127,6 +127,28 @@ let addBasePath = (pathname: string): string => {
127
127
  }
128
128
  }
129
129
 
130
+ let parseTarget = (to: string): location => {
131
+ let hashParts = to->String.split("#")
132
+ let beforeHash = hashParts->Array.get(0)->Option.getOr("")
133
+ let hash = switch hashParts->Array.get(1) {
134
+ | Some(value) => "#" ++ value
135
+ | None => ""
136
+ }
137
+
138
+ let searchParts = beforeHash->String.split("?")
139
+ let pathname = searchParts->Array.get(0)->Option.getOr("/")
140
+ let search = switch searchParts->Array.get(1) {
141
+ | Some(value) => "?" ++ value
142
+ | None => ""
143
+ }
144
+
145
+ {pathname, search, hash}
146
+ }
147
+
148
+ let targetToHref = (target: location): string => {
149
+ addBasePath(target.pathname) ++ target.search ++ target.hash
150
+ }
151
+
130
152
  // External bindings for History API
131
153
  type historyState
132
154
 
@@ -152,6 +174,36 @@ let scrollTo = (x: float, y: float): unit => {
152
174
  let _: unit = %raw(`window.scrollTo(x, y)`)
153
175
  }
154
176
 
177
+ let queueMicrotask = (callback: unit => unit): unit => {
178
+ ignore(callback)
179
+ let _: unit = %raw(`globalThis.queueMicrotask(callback)`)
180
+ }
181
+
182
+ let scrollHashIntoView = (hash: string): unit => {
183
+ ignore(hash)
184
+ let _: unit = %raw(`
185
+ (() => {
186
+ if (!hash) {
187
+ return;
188
+ }
189
+
190
+ const id = decodeURIComponent(hash.startsWith("#") ? hash.slice(1) : hash);
191
+ const target = document.getElementById(id);
192
+ if (target && typeof target.scrollIntoView === "function") {
193
+ target.scrollIntoView();
194
+ }
195
+ })()
196
+ `)
197
+ }
198
+
199
+ let scrollAfterNavigation = (hash: string): unit => {
200
+ if hash == "" {
201
+ scrollTo(0.0, 0.0)
202
+ } else {
203
+ queueMicrotask(() => scrollHashIntoView(hash))
204
+ }
205
+ }
206
+
155
207
  // Create history state with scroll position
156
208
  let makeHistoryState = (scrollX: float, scrollY: float): historyState => {
157
209
  ignore(scrollX)
@@ -284,8 +336,8 @@ let push = (pathname: string, ~search: string="", ~hash: string="", ()): unit =>
284
336
  pushState(emptyHistoryState(), "", url)
285
337
  Signal.set(location(), newLocation)
286
338
 
287
- // Scroll to top for new navigation
288
- scrollTo(0.0, 0.0)
339
+ // Scroll to a fragment target when present, otherwise reset to top.
340
+ scrollAfterNavigation(hash)
289
341
  }
290
342
 
291
343
  // Imperative navigation - replace current history entry
@@ -302,8 +354,8 @@ let replace = (pathname: string, ~search: string="", ~hash: string="", ()): unit
302
354
  replaceState(emptyHistoryState(), "", url)
303
355
  Signal.set(location(), newLocation)
304
356
 
305
- // Scroll to top for new navigation
306
- scrollTo(0.0, 0.0)
357
+ // Scroll to a fragment target when present, otherwise reset to top.
358
+ scrollAfterNavigation(hash)
307
359
  }
308
360
 
309
361
  // Route definition for routes() component
@@ -355,14 +407,15 @@ let link = (
355
407
  (),
356
408
  ): View.node => {
357
409
  warnIfNotInitialized("Router.link()")
410
+ let target = parseTarget(to)
358
411
 
359
412
  let handleClick = (_evt: Dom.event) => {
360
413
  let _: unit = %raw(`_evt.preventDefault()`)
361
- push(to, ())
414
+ push(target.pathname, ~search=target.search, ~hash=target.hash, ())
362
415
  }
363
416
 
364
417
  Html.a(
365
- ~attrs=Array.concat(attrs, [View.attr("href", addBasePath(to))]),
418
+ ~attrs=Array.concat(attrs, [View.attr("href", targetToHref(target))]),
366
419
  ~events=[("click", handleClick)],
367
420
  ~children,
368
421
  (),
@@ -432,10 +485,11 @@ module Link = {
432
485
  /* JSX component function */
433
486
  let make = (props): View.node => {
434
487
  warnIfNotInitialized("Router.Link")
488
+ let target = parseTarget(props.to)
435
489
 
436
490
  let handleClick = (evt: Dom.event) => {
437
491
  let _: unit = %raw(`evt.preventDefault()`)
438
- push(props.to, ())
492
+ push(target.pathname, ~search=target.search, ~hash=target.hash, ())
439
493
 
440
494
  // Call user's onClick if provided
441
495
  switch props.onClick {
@@ -445,7 +499,7 @@ module Link = {
445
499
  }
446
500
 
447
501
  Html.a(
448
- ~attrs=Array.concat(propsToAttrs(props), [View.attr("href", addBasePath(props.to))]),
502
+ ~attrs=Array.concat(propsToAttrs(props), [View.attr("href", targetToHref(target))]),
449
503
  ~events=[("click", handleClick)],
450
504
  ~children=getChildren(props),
451
505
  (),