xote 6.0.1 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -19
- package/dist/xote.cjs +10 -10
- package/dist/xote.mjs +1280 -1094
- package/dist/xote.umd.js +10 -10
- package/package.json +3 -2
- package/src/Computed.res.mjs +6 -0
- package/src/Hydration.res +0 -1
- package/src/Node.res +11 -2
- package/src/Node.res.mjs +9 -4
- package/src/ReactiveProp.res +0 -1
- package/src/Router.res +11 -5
- package/src/Router.res.mjs +2 -2
- package/src/SSR.res +6 -3
- package/src/SSR.res.mjs +5 -0
- package/src/SSRState.res +0 -1
- package/src/Signal.res.mjs +6 -0
- package/src/XoteJSX.res +51 -211
- package/src/XoteJSX.res.mjs +17 -2
package/dist/xote.umd.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
(function(A,oe){typeof exports=="object"&&typeof module<"u"?oe(exports):typeof define=="function"&&define.amd?define(["exports"],oe):(A=typeof globalThis<"u"?globalThis:A||self,oe(A.xote={}))})(this,(function(A){"use strict";let oe={contents:0};function Oe(){return oe.contents=oe.contents+1|0,oe.contents}function st(){return{first:void 0,last:void 0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0}}function $n(e){return{first:void 0,last:void 0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0}}function An(e,t,n,r,l){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:l}}function ft(e){e.flags=e.flags&-2}function xn(e){return(e.flags&2)!==0}function kn(e){e.flags=e.flags|2}function On(e){e.flags=e.flags&-3}function ht(e){return(e.flags&1)!==0}function Dn(e){e.flags=e.flags|1}function We(e){e.flags=e.flags&-2}function Cn(e){e.flags=e.flags&-3}function De(e){return e.compute!==void 0}function mt(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0}}function Ce(e,t){t.prevSub=e.last,t.nextSub=void 0;let n=e.last;n!==void 0?n.nextSub=t:e.first=t,e.last=t}function pt(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 gt(e){let t=e.subs,n=e.prevSub;n!==void 0?n.nextSub=e.nextSub:t.first=e.nextSub;let r=e.nextSub;r!==void 0?r.prevSub=e.prevSub:t.last=e.prevSub,e.prevSub=void 0,e.nextSub=void 0}function yt(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;gt(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function Ve(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;gt(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function St(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 D={contents:void 0},F={contents:void 0},ee=[],de=[],te={contents:!1},je=[],_t=(function(e){e.length=0});function jn(e){if(!xn(e)){kn(e),ee.push(e);return}}function Pn(e,t){if(e.firstDep===void 0){let i={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};return St(e,i),Ce(t,i)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let i=r;i!==void 0&&(i.subs===t?n=!0:r=i.nextDep)}if(n)return;let l={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};St(e,l),Ce(t,l)}function Mn(e,t){if(e.firstDep===void 0){let i=mt(t,e);return pt(e,i),Ce(t,i)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let i=r;i!==void 0&&(i.subs===t?n=!0:r=i.nextDep)}if(n)return;let l=mt(t,e);pt(e,l),Ce(t,l)}function Rn(e){let t=D.contents;if(t!==void 0)return Pn(t,e);let n=F.contents;if(n!==void 0)return Mn(n,e)}function Gn(e,t){return e.level-t.level|0}function Ln(e,t){return e.level-t.level|0}function bt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(De(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Et(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(De(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Fn(e){let t=e.level;Ve(e),Cn(e);let n=D.contents;D.contents=e;try{let r=e.compute;r!==void 0&&r(),We(e),D.contents=n}catch(r){throw D.contents=n,r}if(t===0){e.level=bt(e);return}}function Nn(e){let t=e.level;yt(e),On(e);let n=F.contents;F.contents=e;try{e.run(),ft(e),F.contents=n}catch(r){throw F.contents=n,r}if(t===0){e.level=Et(e);return}}function wt(){te.contents=!0;try{for(;ee.length!==0||de.length!==0;){if(de.length!==0){de.sort(Ln);let e=de.slice();_t(de),e.forEach(Fn)}if(ee.length!==0){ee.sort(Gn);let e=ee.slice();_t(ee),e.forEach(Nn)}}te.contents=!1;return}catch(e){throw te.contents=!1,e}}function zn(e){for(je.push(e);je.length!==0;){let t=je.pop();if(t!==void 0){let n=t.first;for(;n!==void 0;){let r=n;if(r!==void 0){let l=r.observer;De(l)?ht(l)||(Dn(l),je.push(l)):jn(r.observer),n=r.nextSub}}}}if((ee.length!==0||de.length!==0)&&!te.contents)return wt()}function Tt(e){if(!(De(e)&&ht(e)))return;let t=e.level;Ve(e);let n=D.contents;D.contents=e;try{let r=e.compute;r!==void 0&&r(),We(e),D.contents=n}catch(r){throw D.contents=n,r}if(t===0){e.level=bt(e);return}}function Bn(e){let t=te.contents;te.contents=!0;try{let n=e();return t||(te.contents=!1,(ee.length!==0||de.length!==0)&&wt()),n}catch(n){throw t||(te.contents=!1),n}}function In(e){let t=D.contents,n=F.contents;D.contents=void 0,F.contents=void 0;try{let r=e();return D.contents=t,F.contents=n,r}catch(r){throw D.contents=t,F.contents=n,r}}function vt(e,t){let n=Oe(),r={contents:void 0},i=An(n,"Effect",()=>{let y=r.contents;y!==void 0&&y(),r.contents=e()},t,void 0),u=F.contents;F.contents=i;try{i.run(),ft(i),F.contents=u}catch(y){throw F.contents=u,y}i.level=Et(i);let o={contents:!1};return{dispose:()=>{if(o.contents)return;o.contents=!0;let y=r.contents;y!==void 0&&y(),yt(i)}}}function Kn(e,t){vt(e,t)}let j=vt;const Wn=Object.freeze(Object.defineProperty({__proto__:null,run:Kn,runWithDisposer:j},Symbol.toStringTag,{value:"Module"}));function ae(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 He(e){if(e!=null)return ae(e)}function h(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 Vn(e,t){if(e!==void 0)return ae(t(h(e)))}function Y(e,t){return e!==void 0?h(e):t}function Xe(e){return e!==void 0}function Hn(e,t,n){return{id:Oe(),value:e,equals:Y(n,(l,i)=>l===i),name:t,subs:st()}}function Xn(e,t){return{id:Oe(),value:e,equals:(r,l)=>!1,name:t,subs:st()}}function qn(e){return Tt(e.subs),Rn(e.subs),e.value}function Un(e){return Tt(e.subs),e.value}function $t(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,zn(e.subs)}function Yn(e,t){$t(e,t(e.value))}let Jn=Bn,Qn=In,qe=Hn,Zn=Xn,x=qn,H=Un,ce=$t;const er=Object.freeze(Object.defineProperty({__proto__:null,batch:Jn,get:x,make:qe,makeForComputed:Zn,peek:H,set:ce,untrack:Qn,update:Yn},Symbol.toStringTag,{value:"Module"}));function Ue(e,t){delete e[t]}function tr(e,t){let n=Oe(),r={contents:void 0},i=$n(()=>{r.contents.value=e()}),u=D.contents;D.contents=i;let o=e();D.contents=u;let c={id:n,value:o,equals:(y,C)=>!1,name:t,subs:i};return r.contents=c,We(i),c}function nr(e){Ve(e.subs)}let J=tr,At=nr;const rr=Object.freeze(Object.defineProperty({__proto__:null,dispose:At,make:J},Symbol.toStringTag,{value:"Module"}));let xt="http://www.w3.org/2000/svg",kt=["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"],Pe={};kt.forEach(e=>{Pe[e]=!0});function ir(e){return Xe(Pe[e])}function we(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"aria-expanded":case"aria-hidden":case"aria-selected":case"multiple":case"readonly":case"required":break;case"value":e.value=n;return;default:e.setAttribute(t,n);return}n==="true"?e.setAttribute(t,""):e.removeAttribute(t)}let Te={setAttrOrProp:we},Me={contents:void 0};function lr(){return{disposers:[],computeds:[]}}function me(e,t){let n=Me.contents;Me.contents=e;let r=t();return Me.contents=n,r}function pe(e,t){e.disposers.push(t)}function Ot(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(At)}function ge(e,t){e.__xote_owner__=t}function Dt(e){return He(e.__xote_owner__)}let a={currentOwner:Me,createOwner:lr,runWithOwner:me,addDisposer:pe,disposeOwner:Ot,setOwner:ge,getOwner:Dt};function Ct(e,t){return[e,{TAG:"Static",_0:t}]}function jt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Pt(e,t){return[e,{TAG:"Compute",_0:t}]}let ur={$$static:Ct,signal:jt,computed:Pt};function ve(e){let t=Dt(e);t!==void 0&&Ot(t),Array.from(e.childNodes||[]).forEach(ve)}function Q(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=e.tag,i=Xe(Pe[l])?document.createElementNS(xt,l):document.createElement(l),u={disposers:[],computeds:[]};return ge(i,u),me(u,()=>{r.forEach(d=>{let m=d[1],$=d[0];switch(m.TAG){case"Static":return we(i,$,m._0);case"SignalValue":let O=m._0;we(i,$,H(O));let L=j(()=>{we(i,$,x(O))},void 0);return pe(u,L);case"Compute":let p=m._0,S=j(()=>{we(i,$,p())},void 0);return pe(u,S)}}),n.forEach(d=>{i.addEventListener(d[0],d[1])}),t.forEach(d=>{let m=Q(d);i.appendChild(m)})}),i;case"Text":return document.createTextNode(e._0);case"SignalText":let o=e._0,c=document.createTextNode(H(o)),y={disposers:[],computeds:[]};return ge(c,y),me(y,()=>{let d=j(()=>{c.textContent=x(o)},void 0);pe(y,d)}),c;case"Fragment":let C=document.createDocumentFragment();return e._0.forEach(d=>{let m=Q(d);C.appendChild(m)}),C;case"SignalFragment":let B=e._0,I={disposers:[],computeds:[]},M=document.createElement("div");return M.setAttribute("style","display: contents"),ge(M,I),me(I,()=>{let d=j(()=>{let m=x(B);Array.from(M.childNodes||[]).forEach(ve),M.innerHTML="",m.forEach(O=>{let L=Q(O);M.appendChild(L)})},void 0);pe(I,d)}),M;case"LazyComponent":let k={disposers:[],computeds:[]},q=me(k,e._0),W=Q(q);return ge(W,k),W;case"KeyedList":let V=e.renderItem,R=e.keyFn,U=e.signal,be={disposers:[],computeds:[]},v=document.createComment(" keyed-list-start "),_=document.createComment(" keyed-list-end ");ge(v,be);let s={},b=()=>{let d=_.parentNode;if(d==null)return;let m=x(U),$={};m.forEach(g=>{$[R(g)]=g});let O=[];Object.keys(s).forEach(g=>{if($[g]===void 0){O.push(g);return}}),O.forEach(g=>{let T=s[g];if(T!==void 0){ve(T.element),T.element.remove(),Ue(s,g);return}});let L=[],p={};m.forEach(g=>{let T=R(g),Ee=s[T];if(Ee!==void 0){if(Ee.item!==g){p[T]=!0;let Ke=V(g),Bi=Q(Ke),vn={key:T,item:g,element:Bi};L.push(vn),s[T]=vn;return}L.push(Ee);return}let Be=V(g),ct=Q(Be),Ie={key:T,item:g,element:ct};L.push(Ie),s[T]=Ie});let S={contents:v.nextSibling};L.forEach(g=>{let T=S.contents;if(T==null){d.insertBefore(g.element,_);return}if(T===_){d.insertBefore(g.element,_);return}if(T===g.element){S.contents=T.nextSibling;return}Y(p[g.key],!1)?(ve(T),d.replaceChild(g.element,T),S.contents=g.element.nextSibling):(d.insertBefore(g.element,T),S.contents=g.element.nextSibling)})},w=document.createDocumentFragment();return w.appendChild(v),H(U).forEach(d=>{let m=R(d),$=V(d),O=Q($),L={key:m,item:d,element:O};s[m]=L,w.appendChild(O)}),w.appendChild(_),me(be,()=>{let d=j(()=>{b()},void 0);pe(be,d)}),w}}let ne={disposeElement:ve,render:Q};function Mt(e){return{TAG:"Text",_0:e}}function or(e){return{TAG:"SignalText",_0:J(e,void 0)}}function dr(e){return{TAG:"SignalText",_0:J(()=>e().toString(),void 0)}}function ar(e){return{TAG:"SignalText",_0:J(()=>e().toString(),void 0)}}function cr(e){return{TAG:"Text",_0:e.toString()}}function sr(e){return{TAG:"Text",_0:e.toString()}}function Ye(e){return{TAG:"Fragment",_0:e}}function Je(e){return{TAG:"SignalFragment",_0:e}}function fr(e,t){return{TAG:"SignalFragment",_0:J(()=>x(e).map(t),void 0)}}function hr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function K(e,t,n,r,l){let i=t!==void 0?t:[].map(c=>c),u=n!==void 0?n:[].map(c=>c),o=r!==void 0?r:[].map(c=>c);return{TAG:"Element",tag:e,attrs:i,events:u,children:o}}function mr(){return{TAG:"Text",_0:""}}function Rt(e,t){let n=Q(e);t.appendChild(n)}function pr(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Rt(e,n)}let gr=Pe,X=Ct,se=jt,Re=Pt;const yr=Object.freeze(Object.defineProperty({__proto__:null,$$null:mr,Attributes:ur,DOM:Te,Reactivity:a,Render:ne,attr:X,computedAttr:Re,element:K,float:sr,fragment:Ye,int:cr,isSvgTag:ir,keyedList:hr,list:fr,mount:Rt,mountById:pr,signalAttr:se,signalFloat:ar,signalFragment:Je,signalInt:dr,signalText:or,svgNamespace:xt,svgTagSet:gr,svgTags:kt,text:Mt},Symbol.toStringTag,{value:"Module"}));function Sr(e,t,n,r){return K("div",e,t,n)}function _r(e,t,n,r){return K("span",e,t,n)}function br(e,t,n,r){return K("button",e,t,n)}function Er(e,t,n){return K("input",e,t,void 0)}function wr(e,t,n,r){return K("h1",e,t,n)}function Tr(e,t,n,r){return K("h2",e,t,n)}function vr(e,t,n,r){return K("h3",e,t,n)}function $r(e,t,n,r){return K("p",e,t,n)}function Ar(e,t,n,r){return K("ul",e,t,n)}function xr(e,t,n,r){return K("li",e,t,n)}function Qe(e,t,n,r){return K("a",e,t,n)}const kr=Object.freeze(Object.defineProperty({__proto__:null,a:Qe,button:br,div:Sr,h1:wr,h2:Tr,h3:vr,input:Er,li:xr,p:$r,span:_r,ul:Ar},Symbol.toStringTag,{value:"Module"}));function Gt(e,t){return{TAG:"LazyComponent",_0:()=>e(t)}}function Lt(e,t,n,r){return{TAG:"LazyComponent",_0:()=>e(t)}}function Or(e){let t=e.children;return t!==void 0?t:Ye([])}let Dr=Ye;function Cr(){return Mt("")}function Ze(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function E(e,t){return Ze(t)?t.TAG==="Reactive"?se(e,t._0):X(e,t._0):typeof t=="function"?Re(e,t):typeof t=="object"?se(e,t):X(e,t)}function Z(e,t){if(Ze(t)){if(t.TAG!=="Reactive")return X(e,t._0?"true":"false");let r=t._0,l=J(()=>x(r)?"true":"false",void 0);return se(e,l)}if(typeof t=="function")return Re(e,()=>t()?"true":"false");if(typeof t!="object")return X(e,t?"true":"false");let n=J(()=>x(t)?"true":"false",void 0);return se(e,n)}function f(e,t,n,r){if(t!==void 0){e.push(r(n,h(t)));return}}function ye(e,t,n){if(t!==void 0){e.push(X(n,t.toString()));return}}function Ft(e){let t=[];f(t,e.id,"id",E),f(t,e.class,"class",E),f(t,e.style,"style",E),f(t,e.type,"type",E),f(t,e.name,"name",E),f(t,e.value,"value",E),f(t,e.placeholder,"placeholder",E),f(t,e.disabled,"disabled",Z),f(t,e.checked,"checked",Z),f(t,e.required,"required",Z),f(t,e.readOnly,"readonly",Z),ye(t,e.maxLength,"maxlength"),ye(t,e.minLength,"minlength"),f(t,e.min,"min",E),f(t,e.max,"max",E),f(t,e.step,"step",E),f(t,e.pattern,"pattern",E),f(t,e.autoComplete,"autocomplete",E),f(t,e.multiple,"multiple",Z),f(t,e.accept,"accept",E),ye(t,e.rows,"rows"),ye(t,e.cols,"cols"),f(t,e.for,"for",E),f(t,e.href,"href",E),f(t,e.target,"target",E),f(t,e.src,"src",E),f(t,e.alt,"alt",E),f(t,e.width,"width",E),f(t,e.height,"height",E),f(t,e.role,"role",E),ye(t,e.tabIndex,"tabindex"),f(t,e["aria-label"],"aria-label",E),f(t,e["aria-hidden"],"aria-hidden",Z),f(t,e["aria-expanded"],"aria-expanded",Z),f(t,e["aria-selected"],"aria-selected",Z);let n=e.data;return n!==void 0&&Object.entries(n).forEach(([r,l])=>{t.push(E("data-"+r,l))}),t}function P(e,t,n){if(t!==void 0){e.push([n,h(t)]);return}}function Nt(e){let t=[];return P(t,e.onClick,"click"),P(t,e.onInput,"input"),P(t,e.onChange,"change"),P(t,e.onSubmit,"submit"),P(t,e.onFocus,"focus"),P(t,e.onBlur,"blur"),P(t,e.onKeyDown,"keydown"),P(t,e.onKeyUp,"keyup"),P(t,e.onMouseEnter,"mouseenter"),P(t,e.onMouseLeave,"mouseleave"),P(t,e.onMouseDown,"mousedown"),P(t,e.onMouseMove,"mousemove"),P(t,e.onMouseUp,"mouseup"),P(t,e.onContextMenu,"contextmenu"),t}function zt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function et(e,t){return{TAG:"Element",tag:e,attrs:Ft(t),events:Nt(t),children:zt(t)}}let Bt=et;function It(e,t,n,r){return et(e,t)}const jr=Object.freeze(Object.defineProperty({__proto__:null,$$null:Cr,Elements:{isReactiveProp:Ze,convertAttrValue:E,convertBoolAttrValue:Z,addAttr:f,addIntAttr:ye,propsToAttrs:Ft,addEvent:P,propsToEvents:Nt,getChildren:zt,createElement:et,jsx:Bt,jsxs:Bt,jsxKeyed:It,jsxsKeyed:It},ReactiveProp:void 0,array:Dr,jsx:Gt,jsxFragment:Or,jsxKeyed:Lt,jsxs:Gt,jsxsKeyed:Lt},Symbol.toStringTag,{value:"Module"}));function Pr(e){return e.TAG==="Reactive"?x(e._0):e._0}function Mr(e){return{TAG:"Static",_0:e}}function Rr(e){return{TAG:"Reactive",_0:e}}const Gr=Object.freeze(Object.defineProperty({__proto__:null,$$static:Mr,get:Pr,reactive:Rr},Symbol.toStringTag,{value:"Module"}));function Kt(e,t){let n=e.length,r=new Array(n),l=0;for(let i=0;i<n;++i){let u=e[i],o=t(u);o!==void 0&&(r[l]=h(o),l=l+1|0)}return r.length=l,r}function Lr(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let l=t(e[r]);if(l!==void 0)return l;n=r+1|0}}function Wt(e){return Kt(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Vt(e,t){let n=t.split("/").filter(i=>i!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((i,u)=>{let o=n[u];return i.TAG==="Static"?o===i._0:(r[i._0]=o,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function tt(e,t){return Vt(Wt(e),t)}const Fr=Object.freeze(Object.defineProperty({__proto__:null,match:tt,matchPath:Vt,parsePattern:Wt},Symbol.toStringTag,{value:"Module"}));function Nr(){return Symbol.for("xote.router.state")}function N(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:qe({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function zr(){return N().location}function Br(){return N().basePath}function fe(e){if(!N().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 nt(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function Ht(e){let t=N().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function $e(e){let t=N().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function Xt(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function Ge(e,t){window.scrollTo(e,t)}function qt(e,t){return{scrollX:e,scrollY:t}}function rt(){return{}}function Ut(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Yt(){let e=Xt(),t=qt(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function it(){let e=window.location.pathname;return{pathname:Ht(e),search:window.location.search,hash:window.location.hash}}function Ir(e,t){let n=e!==void 0?e:"/",r=N(),l=nt(n);if(r.basePath.contents=l,ce(r.location,it()),r.initialized)return;let i=u=>{ce(N().location,it());let o=window["history.state"];if(o==null)return;let c=Ut(o);if(c!==void 0)return Ge(c[0],c[1])};r.popStateHandler=i,window.addEventListener("popstate",i),r.initialized=!0}function Kr(e,t,n,r,l){let i=e!==void 0?e:"/",u=t!==void 0?t:"/",o=n!==void 0?n:"",c=r!==void 0?r:"",y=N(),C=nt(i);y.basePath.contents=C,ce(y.location,{pathname:u,search:o,hash:c}),y.initialized=!0}function lt(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";fe("Router.push()"),Yt();let u={pathname:e,search:l,hash:i},c=$e(e)+l+i;window.history.pushState(rt(),"",c),ce(N().location,u),Ge(0,0)}function Wr(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";fe("Router.replace()");let u={pathname:e,search:l,hash:i},c=$e(e)+l+i;window.history.replaceState(rt(),"",c),ce(N().location,u),Ge(0,0)}function Vr(e,t){return fe("Router.route()"),Je(J(()=>{let n=x(N().location),r=tt(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Hr(e){return fe("Router.routes()"),Je(J(()=>{let t=x(N().location),n=Lr(e,r=>{let l=tt(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function Xr(e,t,n,r){let l=t!==void 0?t:[],i=n!==void 0?n:[];fe("Router.link()");let u=o=>{o.preventDefault(),lt(e,void 0,void 0)};return Qe(l.concat([X("href",$e(e))]),[["click",u]],i)}function Jt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function Se(e,t){return Jt(t)?t.TAG==="Reactive"?se(e,t._0):X(e,t._0):typeof t=="function"?Re(e,t):typeof t=="object"?se(e,t):X(e,t)}function Qt(e){let t=[],n=e.class;n!==void 0&&t.push(Se("class",h(n)));let r=e.id;r!==void 0&&t.push(Se("id",h(r)));let l=e.style;l!==void 0&&t.push(Se("style",h(l)));let i=e.target;i!==void 0&&t.push(Se("target",h(i)));let u=e["aria-label"];return u!==void 0&&t.push(Se("aria-label",h(u))),t}function Zt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function Le(e){fe("Router.Link");let t=n=>{n.preventDefault(),lt(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return Qe(Qt(e).concat([X("href",$e(e.to))]),[["click",t]],Zt(e))}function en(e,t,n){return Le(e)}const qr=Object.freeze(Object.defineProperty({__proto__:null,Link:{ReactiveProp:void 0,isReactiveProp:Jt,convertAttrValue:Se,propsToAttrs:Qt,getChildren:Zt,make:Le,jsx:Le,jsxs:Le,jsxKeyed:en,jsxsKeyed:en},Route:void 0,addBasePath:$e,basePath:Br,emptyHistoryState:rt,getCurrentLocation:it,getGlobalState:N,getScrollFromState:Ut,getScrollPosition:Xt,getSymbolKey:Nr,init:Ir,initSSR:Kr,link:Xr,location:zr,makeHistoryState:qt,normalizeBasePath:nt,push:lt,replace:Wr,route:Vr,routes:Hr,saveScrollPosition:Yt,scrollTo:Ge,stripBasePath:Ht,warnIfNotInitialized:fe},Symbol.toStringTag,{value:"Module"}));function re(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}let ut=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function Ur(e){return ut.includes(e)}let tn={escape:re,voidElements:ut,isVoidElement:Ur},nn="<!--$-->",rn="<!--/$-->",ln="<!--#-->",un="<!--/#-->",on="<!--kl-->",dn="<!--/kl-->";function an(e){return"<!--k:"+e+"-->"}let cn="<!--/k-->",sn="<!--lc-->",fn="<!--/lc-->",Yr={signalTextStart:nn,signalTextEnd:rn,signalFragmentStart:ln,signalFragmentEnd:un,keyedListStart:on,keyedListEnd:dn,keyedItemStart:an,keyedItemEnd:cn,lazyComponentStart:sn,lazyComponentEnd:fn};function hn(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=H(t._0);break;case"Compute":r=t._0();break}switch(n){case"aria-expanded":case"aria-hidden":case"aria-selected":case"checked":case"disabled":case"multiple":case"readonly":case"required":break;default:return n+'="'+re(r)+'"'}return r==="true"?n:""}function mn(e){let t=e.map(hn).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let Jr={renderAttr:hn,renderAttrs:mn};function ie(e){switch(e.TAG){case"Element":let t=e.tag,n=mn(e.attrs);if(ut.includes(t))return"<"+t+n+" />";let r=e.children.map(ie).join("");return"<"+t+n+">"+r+"</"+t+">";case"Text":return re(e._0);case"SignalText":let l=H(e._0);return nn+re(l)+rn;case"Fragment":return e._0.map(ie).join("");case"SignalFragment":let u=H(e._0).map(ie).join("");return ln+u+un;case"LazyComponent":let o=e._0();return sn+ie(o)+fn;case"KeyedList":let c=e.renderItem,y=e.keyFn,B=H(e.signal).map(I=>{let M=y(I),k=ie(c(I));return an(M)+k+cn}).join("");return on+B+dn}}function pn(e,t){return ie(e())}function Qr(e,t,n){let r=t!==void 0?t:"root",l=e(),i=ie(l);return"<!--xote-root:"+r+"-->"+i+"<!--/xote-root-->"}function gn(e){return"<script"+(e!==void 0?' nonce="'+re(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function Zr(e,t,n,r,l,i,u){let o=e!==void 0?e:"",c=t!==void 0?t:"",y=n!==void 0?n:[],C=r!==void 0?r:[],B=l!==void 0?l:"",I=pn(u),M=gn(i),k=C.map(W=>'<link rel="stylesheet" href="'+re(W)+'" />').join(`
|
|
2
|
-
`),
|
|
1
|
+
(function(C,ae){typeof exports=="object"&&typeof module<"u"?ae(exports):typeof define=="function"&&define.amd?define(["exports"],ae):(C=typeof globalThis<"u"?globalThis:C||self,ae(C.xote={}))})(this,(function(C){"use strict";let ae={contents:0};function $e(){return ae.contents=ae.contents+1|0,ae.contents}let Se={contents:0},be={contents:0};function _t(){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 vt(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 Nn(e,t,n,r,l){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:l}}function Et(e){e.flags=e.flags&-2}function Bn(e){return(e.flags&2)!==0}function zn(e){e.flags=e.flags|2}function In(e){e.flags=e.flags&-3}function Tt(e){return(e.flags&1)!==0}function wt(e){e.flags=e.flags|1}function Fe(e){e.flags=e.flags&-2}function Wn(e){return(e.flags&2)!==0}function Kn(e){e.flags=e.flags|2}function Hn(e){e.flags=e.flags&-3}function fe(e){return e.compute!==void 0}function Ne(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,lastTrackedVersion:0}}function Be(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 xt(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 ze(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 qn(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 Xn(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 Un(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;ze(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function Yn(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;ze(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function Dt(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 M={contents:void 0},N={contents:void 0},B={contents:0},z={contents:void 0},I={contents:void 0},Y=[],J=[],le={contents:!1},Ae={contents:!1},Oe={contents:!1},kt={contents:0},$t={contents:0},Ce=[],Jn=(function(e){e.length=0}),At=(function(e,t){if(!(t<=0)){if(t>=e.length){e.length=0;return}e.copyWithin(0,t),e.length=e.length-t}});function et(e){if(Bn(e))return;zn(e),Y.length===0?Ae.contents=!1:e.level<kt.contents&&(Ae.contents=!0),Y.push(e),kt.contents=e.level}function Qn(e){if(Wn(e))return;Kn(e),J.length===0?Oe.contents=!1:e.level<$t.contents&&(Oe.contents=!0),J.push(e),$t.contents=e.level}function Zn(e,t){if(e.firstDep===void 0){let u=Ne(t,e);u.lastTrackedVersion=B.contents,Dt(e,u),Be(t,u),z.contents=u;return}let n=B.contents,r=!1,l=z.contents;if(l!==void 0)if(l.subs===t&&l.observer===e)l.lastTrackedVersion=n,r=!0;else{let u=l.nextDep;u!==void 0&&u.subs===t&&u.observer===e&&(u.lastTrackedVersion=n,z.contents=u,r=!0)}if(!r){let u=t.last;u!==void 0&&u.lastTrackedVersion===n&&u.observer===e&&(u.lastTrackedVersion=n,z.contents=u,r=!0)}if(r)return;let i=!1,o,d=e.firstDep;for(;d!==void 0&&!i;){let u=d;u!==void 0&&(u.subs===t?(u.lastTrackedVersion=n,o=u,i=!0):d=u.nextDep)}if(i){z.contents=o;return}let s=Ne(t,e);s.lastTrackedVersion=n,Dt(e,s),Be(t,s),z.contents=s}function er(e,t){if(e.firstDep===void 0){let u=Ne(t,e);u.lastTrackedVersion=B.contents,xt(e,u),Be(t,u),I.contents=u;return}let n=B.contents,r=!1,l=I.contents;if(l!==void 0)if(l.subs===t&&l.observer===e)l.lastTrackedVersion=n,r=!0;else{let u=l.nextDep;u!==void 0&&u.subs===t&&u.observer===e&&(u.lastTrackedVersion=n,I.contents=u,r=!0)}if(!r){let u=t.last;u!==void 0&&u.lastTrackedVersion===n&&u.observer===e&&(u.lastTrackedVersion=n,I.contents=u,r=!0)}if(r)return;let i=!1,o,d=e.firstDep;for(;d!==void 0&&!i;){let u=d;u!==void 0&&(u.subs===t?(u.lastTrackedVersion=n,o=u,i=!0):d=u.nextDep)}if(i){I.contents=o;return}let s=Ne(t,e);s.lastTrackedVersion=n,xt(e,s),Be(t,s),I.contents=s}function tr(e){let t=M.contents;if(t!==void 0)return Zn(t,e);let n=N.contents;if(n!==void 0)return er(n,e)}function nr(e,t){return e.level-t.level|0}function rr(e,t){return e.level-t.level|0}function Ot(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(fe(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Ct(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(fe(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Pt(e,t){let n=B.contents,r=e.version;Se.contents=Se.contents+1|0,B.contents=Se.contents,t&&Hn(e);let l=M.contents,i=z.contents;M.contents=e,z.contents=e.firstDep;try{let o=e.compute;o!==void 0&&o();let d=e.firstDep;for(;d!==void 0;){let s=d;if(s!==void 0){let u=s.nextDep;s.lastTrackedVersion!==B.contents&&(ze(s),Xn(e,s)),d=u}}if(Fe(e),e.lastGlobalVersion=be.contents,e.first!==void 0&&e.version!==r){let s=e.first;for(;s!==void 0;){let u=s;if(u!==void 0){let p=u.observer;if(fe(p))wt(p);else{let w=N.contents;w!==void 0&&w===u.observer||et(u.observer)}s=u.nextSub}}}M.contents=l,z.contents=i,B.contents=n;return}catch(o){throw M.contents=l,z.contents=i,B.contents=n,o}}function lr(e){let t=e.level;if(Pt(e,!0),t===0){e.level=Ot(e);return}}function ir(e){let t=e.level,n=B.contents;Se.contents=Se.contents+1|0,B.contents=Se.contents,In(e);let r=N.contents,l=I.contents;N.contents=e,I.contents=e.firstDep;try{e.run();let i=e.firstDep;for(;i!==void 0;){let o=i;if(o!==void 0){let d=o.nextDep;o.lastTrackedVersion!==B.contents&&(ze(o),qn(e,o)),i=d}}Et(e),N.contents=r,I.contents=l,B.contents=n}catch(i){throw N.contents=r,I.contents=l,B.contents=n,i}if(t===0){e.level=Ct(e);return}}function jt(){le.contents=!0;try{for(;Y.length!==0||J.length!==0;){if(J.length!==0){let e=J.length;e>1&&Oe.contents&&(J.sort(rr),Oe.contents=!1);let t=0;for(;t<e;){let n=J[t];n!==void 0&&lr(n),t=t+1|0}At(J,e),J.length===0&&(Oe.contents=!1)}if(Y.length!==0){let e=Y.length;e>1&&Ae.contents&&(Y.sort(nr),Ae.contents=!1);let t=0;for(;t<e;){let n=Y[t];n!==void 0&&ir(n),t=t+1|0}At(Y,e),Y.length===0&&(Ae.contents=!1)}}le.contents=!1;return}catch(e){throw le.contents=!1,e}}function ur(e){if(e.first!==void 0)if(!fe(e)&&e.computedSubscriberCount===0){let t=e.first;for(;t!==void 0;){let n=t;n!==void 0&&(et(n.observer),t=n.nextSub)}}else{Ce.push(e);let t=0;for(;t<Ce.length;){let n=Ce[t];if(t=t+1|0,n!==void 0){let r=n.first;for(;r!==void 0;){let l=r;if(l!==void 0){let i=l.observer;fe(i)?Tt(i)||(wt(i),Ce.push(i)):fe(n)&&n.deferEffectsUntilRecompute?Qn(n):et(l.observer),r=l.nextSub}}}}Jn(Ce)}if((Y.length!==0||J.length!==0)&&!le.contents)return jt()}function Rt(e){if(!fe(e)||!Tt(e))return;if(e.lastGlobalVersion===be.contents)return Fe(e);let t=e.level;if(Pt(e,!1),t===0){e.level=Ot(e);return}}function or(e){let t=le.contents;le.contents=!0;try{let n=e();return t||(le.contents=!1,(Y.length!==0||J.length!==0)&&jt()),n}catch(n){throw t||(le.contents=!1),n}}function dr(e){let t=M.contents,n=N.contents,r=z.contents,l=I.contents;M.contents=void 0,N.contents=void 0,z.contents=void 0,I.contents=void 0;try{let i=e();return M.contents=t,N.contents=n,z.contents=r,I.contents=l,i}catch(i){throw M.contents=t,N.contents=n,z.contents=r,I.contents=l,i}}function Mt(e,t){let n=$e(),r={contents:void 0},i=Nn(n,"Effect",()=>{let u=r.contents;u!==void 0&&u(),r.contents=e()},t,void 0),o=N.contents;N.contents=i;try{i.run(),Et(i),N.contents=o}catch(u){throw N.contents=o,u}i.level=Ct(i);let d={contents:!1};return{dispose:()=>{if(d.contents)return;d.contents=!0;let u=r.contents;u!==void 0&&u(),Un(i)}}}function sr(e,t){Mt(e,t)}let V=Mt;const cr=Object.freeze(Object.defineProperty({__proto__:null,run:sr,runWithDisposer:V},Symbol.toStringTag,{value:"Module"}));function Vt(e,t){return e===t}function Lt(e,t){return!1}function ar(e,t,n){return{id:$e(),value:e,equals:n!==void 0?n:Vt,name:t,subs:_t()}}function fr(e,t){return{id:$e(),value:e,equals:Lt,name:t,subs:_t()}}function hr(e){return Rt(e.subs),tr(e.subs),e.value}function mr(e){return Rt(e.subs),e.value}function Gt(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,be.contents=be.contents+1|0,ur(e.subs)}function pr(e,t){Gt(e,t(e.value))}let gr=or,yr=dr,Sr=Vt,br=Lt,tt=ar,_r=fr,P=hr,Q=mr,he=Gt;const vr=Object.freeze(Object.defineProperty({__proto__:null,batch:gr,defaultEquals:Sr,get:P,make:tt,makeForComputed:_r,neverEquals:br,peek:Q,set:he,untrack:yr,update:pr},Symbol.toStringTag,{value:"Module"}));function nt(e,t){delete e[t]}function Ft(e,t){let n=$e(),r=(p,w)=>!1,l={contents:void 0},o=vt(()=>{let p=l.contents,w=e();p.value=w,p.subs.version=p.subs.version+1|0},!1),d=M.contents;M.contents=o;let s=e();M.contents=d;let u={id:n,value:s,equals:r,name:t,subs:o};return l.contents=u,o.lastGlobalVersion=be.contents,Fe(o),u}function Nt(e,t,n){let r=$e(),l={contents:void 0},o=vt(()=>{let p=l.contents,w=p.value,R=e(),$;try{$=!p.equals(w,R)}catch{$=!0}if($){p.value=R,p.subs.version=p.subs.version+1|0;return}},!0),d=M.contents;M.contents=o;let s=e();M.contents=d;let u={id:r,value:s,equals:t,name:n,subs:o};return l.contents=u,o.lastGlobalVersion=be.contents,Fe(o),u}function Er(e,t,n){return n!==void 0?Nt(e,n,t):Ft(e,t)}function Tr(e){Yn(e.subs)}let wr=Ft,xr=Nt,ne=Er,Bt=Tr;const Dr=Object.freeze(Object.defineProperty({__proto__:null,dispose:Bt,make:ne,makeWithEquals:xr,makeWithoutEquals:wr},Symbol.toStringTag,{value:"Module"}));function me(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 rt(e){if(e!=null)return me(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 kr(e,t){if(e!==void 0)return me(t(m(e)))}function ie(e,t){return e!==void 0?m(e):t}function lt(e){return e!==void 0}let zt="http://www.w3.org/2000/svg",It=["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"],Ie={};It.forEach(e=>{Ie[e]=!0});function $r(e){return lt(Ie[e])}function Pe(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"aria-expanded":case"aria-hidden":case"aria-selected":case"autofocus":case"contenteditable":case"draggable":case"hidden":case"multiple":case"readonly":case"required":case"spellcheck":break;case"value":e.value=n;return;default:e.setAttribute(t,n);return}n==="true"?e.setAttribute(t,""):e.removeAttribute(t)}let je={setAttrOrProp:Pe},We={contents:void 0};function Ar(){return{disposers:[],computeds:[]}}function _e(e,t){let n=We.contents;We.contents=e;let r=t();return We.contents=n,r}function ve(e,t){e.disposers.push(t)}function Wt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(Bt)}function Ee(e,t){e.__xote_owner__=t}function Kt(e){return rt(e.__xote_owner__)}let f={currentOwner:We,createOwner:Ar,runWithOwner:_e,addDisposer:ve,disposeOwner:Wt,setOwner:Ee,getOwner:Kt};function Ht(e,t){return[e,{TAG:"Static",_0:t}]}function qt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Xt(e,t){return[e,{TAG:"Compute",_0:t}]}let Or={$$static:Ht,signal:qt,computed:Xt};function Re(e){let t=Kt(e);t!==void 0&&Wt(t),Array.from(e.childNodes||[]).forEach(Re)}function re(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=e.tag,i=lt(Ie[l])?document.createElementNS(zt,l):document.createElement(l),o={disposers:[],computeds:[]};return Ee(i,o),_e(o,()=>{r.forEach(a=>{let g=a[1],O=a[0];switch(g.TAG){case"Static":return Pe(i,O,g._0);case"SignalValue":let j=g._0;Pe(i,O,Q(j));let F=V(()=>{Pe(i,O,P(j))},void 0);return ve(o,F);case"Compute":let y=g._0,_=V(()=>{Pe(i,O,y())},void 0);return ve(o,_)}}),n.forEach(a=>{i.addEventListener(a[0],a[1])}),t.forEach(a=>{let g=re(a);i.appendChild(g)})}),i;case"Text":return document.createTextNode(e._0);case"SignalText":let d=e._0,s=document.createTextNode(Q(d)),u={disposers:[],computeds:[]};return Ee(s,u),_e(u,()=>{let a=V(()=>{s.textContent=P(d)},void 0);ve(u,a)}),s;case"Fragment":let p=document.createDocumentFragment();return e._0.forEach(a=>{let g=re(a);p.appendChild(g)}),p;case"SignalFragment":let w=e._0,R={disposers:[],computeds:[]},$=document.createElement("div");return $.setAttribute("style","display: contents"),Ee($,R),_e(R,()=>{let a=V(()=>{let g=P(w);Array.from($.childNodes||[]).forEach(Re),$.innerHTML="",g.forEach(j=>{let F=re(j);$.appendChild(F)})},void 0);ve(R,a)}),$;case"LazyComponent":let A={disposers:[],computeds:[]},ee=_e(A,e._0),X=re(ee);return Ee(X,A),X;case"KeyedList":let U=e.renderItem,L=e.keyFn,te=e.signal,De={disposers:[],computeds:[]},k=document.createComment(" keyed-list-start "),v=document.createComment(" keyed-list-end ");Ee(k,De);let h={},E=()=>{let a=v.parentNode;if(a==null)return;let g=P(te),O={};g.forEach(S=>{O[L(S)]=S});let j=[];Object.keys(h).forEach(S=>{if(O[S]===void 0){j.push(S);return}}),j.forEach(S=>{let D=h[S];if(D!==void 0){Re(D.element),D.element.remove(),nt(h,S);return}});let F=[],y={};g.forEach(S=>{let D=L(S),ke=h[D];if(ke!==void 0){if(ke.item!==S){y[D]=!0;let Ze=U(S),ai=re(Ze),Fn={key:D,item:S,element:ai};F.push(Fn),h[D]=Fn;return}F.push(ke);return}let Je=U(S),bt=re(Je),Qe={key:D,item:S,element:bt};F.push(Qe),h[D]=Qe});let _={contents:k.nextSibling};F.forEach(S=>{let D=_.contents;if(D==null){a.insertBefore(S.element,v);return}if(D===v){a.insertBefore(S.element,v);return}if(D===S.element){_.contents=D.nextSibling;return}ie(y[S.key],!1)?(Re(D),a.replaceChild(S.element,D),_.contents=S.element.nextSibling):(a.insertBefore(S.element,D),_.contents=S.element.nextSibling)})},x=document.createDocumentFragment();return x.appendChild(k),Q(te).forEach(a=>{let g=L(a),O=U(a),j=re(O),F={key:g,item:a,element:j};h[g]=F,x.appendChild(j)}),x.appendChild(v),_e(De,()=>{let a=V(()=>{E()},void 0);ve(De,a)}),x}}let ue={disposeElement:Re,render:re};function Ut(e){return{TAG:"Text",_0:e}}function Cr(e){return{TAG:"SignalText",_0:ne(e,void 0,void 0)}}function Pr(e){return{TAG:"SignalText",_0:ne(()=>e().toString(),void 0,void 0)}}function jr(e){return{TAG:"SignalText",_0:ne(()=>e().toString(),void 0,void 0)}}function Rr(e){return{TAG:"Text",_0:e.toString()}}function Mr(e){return{TAG:"Text",_0:e.toString()}}function it(e){return{TAG:"Fragment",_0:e}}function ut(e){return{TAG:"SignalFragment",_0:e}}function Vr(e,t){return{TAG:"SignalFragment",_0:ne(()=>P(e).map(t),void 0,void 0)}}function Lr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function q(e,t,n,r,l){let i=t!==void 0?t:[].map(s=>s),o=n!==void 0?n:[].map(s=>s),d=r!==void 0?r:[].map(s=>s);return{TAG:"Element",tag:e,attrs:i,events:o,children:d}}function Gr(){return{TAG:"Text",_0:""}}function Yt(e,t){let n=re(e);t.appendChild(n)}function Fr(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Yt(e,n)}let Nr=Ie,Z=Ht,pe=qt,Ke=Xt;const Br=Object.freeze(Object.defineProperty({__proto__:null,$$null:Gr,Attributes:Or,DOM:je,Reactivity:f,Render:ue,attr:Z,computedAttr:Ke,element:q,float:Mr,fragment:it,int:Rr,isSvgTag:$r,keyedList:Lr,list:Vr,mount:Yt,mountById:Fr,signalAttr:pe,signalFloat:jr,signalFragment:ut,signalInt:Pr,signalText:Cr,svgNamespace:zt,svgTagSet:Nr,svgTags:It,text:Ut},Symbol.toStringTag,{value:"Module"}));function zr(e,t,n,r){return q("div",e,t,n)}function Ir(e,t,n,r){return q("span",e,t,n)}function Wr(e,t,n,r){return q("button",e,t,n)}function Kr(e,t,n){return q("input",e,t,void 0)}function Hr(e,t,n,r){return q("h1",e,t,n)}function qr(e,t,n,r){return q("h2",e,t,n)}function Xr(e,t,n,r){return q("h3",e,t,n)}function Ur(e,t,n,r){return q("p",e,t,n)}function Yr(e,t,n,r){return q("ul",e,t,n)}function Jr(e,t,n,r){return q("li",e,t,n)}function ot(e,t,n,r){return q("a",e,t,n)}const Qr=Object.freeze(Object.defineProperty({__proto__:null,a:ot,button:Wr,div:zr,h1:Hr,h2:qr,h3:Xr,input:Kr,li:Jr,p:Ur,span:Ir,ul:Yr},Symbol.toStringTag,{value:"Module"}));function Jt(e,t){return{TAG:"LazyComponent",_0:()=>e(t)}}function Qt(e,t,n,r){return{TAG:"LazyComponent",_0:()=>e(t)}}function Zr(e){let t=e.children;return t!==void 0?t:it([])}let el=it;function tl(){return Ut("")}function dt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function b(e,t){return dt(t)?t.TAG==="Reactive"?pe(e,t._0):Z(e,t._0):typeof t=="function"?Ke(e,t):typeof t=="object"?pe(e,t):Z(e,t)}function W(e,t){if(dt(t)){if(t.TAG!=="Reactive")return Z(e,t._0?"true":"false");let r=t._0,l=ne(()=>P(r)?"true":"false",void 0,void 0);return pe(e,l)}if(typeof t=="function")return Ke(e,()=>t()?"true":"false");if(typeof t!="object")return Z(e,t?"true":"false");let n=ne(()=>P(t)?"true":"false",void 0,void 0);return pe(e,n)}function c(e,t,n,r){if(t!==void 0){e.push(r(n,m(t)));return}}function Te(e,t,n){if(t!==void 0){e.push(Z(n,t.toString()));return}}function Zt(e){let t=[];c(t,e.id,"id",b),c(t,e.class,"class",b),c(t,e.style,"style",b),c(t,e.title,"title",b),c(t,e.type,"type",b),c(t,e.name,"name",b),c(t,e.value,"value",b),c(t,e.placeholder,"placeholder",b),c(t,e.disabled,"disabled",W),c(t,e.checked,"checked",W),c(t,e.required,"required",W),c(t,e.readOnly,"readonly",W),Te(t,e.maxLength,"maxlength"),Te(t,e.minLength,"minlength"),c(t,e.min,"min",b),c(t,e.max,"max",b),c(t,e.step,"step",b),c(t,e.pattern,"pattern",b),c(t,e.autoComplete,"autocomplete",b),c(t,e.multiple,"multiple",W),c(t,e.accept,"accept",b),Te(t,e.rows,"rows"),Te(t,e.cols,"cols"),c(t,e.autofocus,"autofocus",W),c(t,e.action,"action",b),c(t,e.method,"method",b),c(t,e.for,"for",b),c(t,e.href,"href",b),c(t,e.target,"target",b),c(t,e.src,"src",b),c(t,e.alt,"alt",b),c(t,e.width,"width",b),c(t,e.height,"height",b),c(t,e.draggable,"draggable",W),c(t,e.hidden,"hidden",W),c(t,e.contentEditable,"contenteditable",W),c(t,e.spellcheck,"spellcheck",W),c(t,e.role,"role",b),Te(t,e.tabIndex,"tabindex"),c(t,e["aria-label"],"aria-label",b),c(t,e["aria-hidden"],"aria-hidden",W),c(t,e["aria-expanded"],"aria-expanded",W),c(t,e["aria-selected"],"aria-selected",W);let n=e.data;return n!==void 0&&Object.entries(n).forEach(([r,l])=>{t.push(b("data-"+r,l))}),t}function T(e,t,n){if(t!==void 0){e.push([n,m(t)]);return}}function en(e){let t=[];return T(t,e.onClick,"click"),T(t,e.onInput,"input"),T(t,e.onChange,"change"),T(t,e.onSubmit,"submit"),T(t,e.onFocus,"focus"),T(t,e.onBlur,"blur"),T(t,e.onKeyDown,"keydown"),T(t,e.onKeyUp,"keyup"),T(t,e.onMouseEnter,"mouseenter"),T(t,e.onMouseLeave,"mouseleave"),T(t,e.onMouseDown,"mousedown"),T(t,e.onMouseMove,"mousemove"),T(t,e.onMouseUp,"mouseup"),T(t,e.onContextMenu,"contextmenu"),T(t,e.onDrag,"drag"),T(t,e.onDragStart,"dragstart"),T(t,e.onDragEnd,"dragend"),T(t,e.onDragOver,"dragover"),T(t,e.onDragEnter,"dragenter"),T(t,e.onDragLeave,"dragleave"),T(t,e.onDrop,"drop"),t}function tn(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function st(e,t){return{TAG:"Element",tag:e,attrs:Zt(t),events:en(t),children:tn(t)}}let nn=st;function rn(e,t,n,r){return st(e,t)}const nl=Object.freeze(Object.defineProperty({__proto__:null,$$null:tl,Elements:{isReactiveProp:dt,convertAttrValue:b,convertBoolAttrValue:W,addAttr:c,addIntAttr:Te,propsToAttrs:Zt,addEvent:T,propsToEvents:en,getChildren:tn,createElement:st,jsx:nn,jsxs:nn,jsxKeyed:rn,jsxsKeyed:rn},ReactiveProp:void 0,array:el,jsx:Jt,jsxFragment:Zr,jsxKeyed:Qt,jsxs:Jt,jsxsKeyed:Qt},Symbol.toStringTag,{value:"Module"}));function rl(e){return e.TAG==="Reactive"?P(e._0):e._0}function ll(e){return{TAG:"Static",_0:e}}function il(e){return{TAG:"Reactive",_0:e}}const ul=Object.freeze(Object.defineProperty({__proto__:null,$$static:ll,get:rl,reactive:il},Symbol.toStringTag,{value:"Module"}));function ln(e,t){let n=e.length,r=new Array(n),l=0;for(let i=0;i<n;++i){let o=e[i],d=t(o);d!==void 0&&(r[l]=m(d),l=l+1|0)}return r.length=l,r}function ol(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let l=t(e[r]);if(l!==void 0)return l;n=r+1|0}}function un(e){return ln(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function on(e,t){let n=t.split("/").filter(i=>i!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((i,o)=>{let d=n[o];return i.TAG==="Static"?d===i._0:(r[i._0]=d,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function ct(e,t){return on(un(e),t)}const dl=Object.freeze(Object.defineProperty({__proto__:null,match:ct,matchPath:on,parsePattern:un},Symbol.toStringTag,{value:"Module"}));function sl(){return Symbol.for("xote.router.state")}function K(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:tt({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function cl(){return K().location}function al(){return K().basePath}function ge(e){if(!K().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 at(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function dn(e){let t=K().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function Me(e){let t=K().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function sn(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function He(e,t){window.scrollTo(e,t)}function cn(e,t){return{scrollX:e,scrollY:t}}function ft(){return{}}function an(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function fn(){let e=sn(),t=cn(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function ht(){let e=window.location.pathname;return{pathname:dn(e),search:window.location.search,hash:window.location.hash}}function fl(e,t){let n=e!==void 0?e:"/",r=K(),l=at(n);if(r.basePath.contents=l,he(r.location,ht()),r.initialized)return;let i=o=>{he(K().location,ht());let d=window["history.state"];if(d==null)return;let s=an(d);if(s!==void 0)return He(s[0],s[1])};r.popStateHandler=i,window.addEventListener("popstate",i),r.initialized=!0}function hl(e,t,n,r,l){let i=e!==void 0?e:"/",o=t!==void 0?t:"/",d=n!==void 0?n:"",s=r!==void 0?r:"",u=K(),p=at(i);u.basePath.contents=p,he(u.location,{pathname:o,search:d,hash:s}),u.initialized=!0}function mt(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";ge("Router.push()"),fn();let o={pathname:e,search:l,hash:i},s=Me(e)+l+i;window.history.pushState(ft(),"",s),he(K().location,o),He(0,0)}function ml(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";ge("Router.replace()");let o={pathname:e,search:l,hash:i},s=Me(e)+l+i;window.history.replaceState(ft(),"",s),he(K().location,o),He(0,0)}function pl(e,t){return ge("Router.route()"),ut(ne(()=>{let n=P(K().location),r=ct(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0,void 0))}function gl(e){return ge("Router.routes()"),ut(ne(()=>{let t=P(K().location),n=ol(e,r=>{let l=ct(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0,void 0))}function yl(e,t,n,r){let l=t!==void 0?t:[],i=n!==void 0?n:[];ge("Router.link()");let o=d=>{d.preventDefault(),mt(e,void 0,void 0)};return ot(l.concat([Z("href",Me(e))]),[["click",o]],i)}function hn(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function we(e,t){return hn(t)?t.TAG==="Reactive"?pe(e,t._0):Z(e,t._0):typeof t=="function"?Ke(e,t):typeof t=="object"?pe(e,t):Z(e,t)}function mn(e){let t=[],n=e.class;n!==void 0&&t.push(we("class",m(n)));let r=e.id;r!==void 0&&t.push(we("id",m(r)));let l=e.style;l!==void 0&&t.push(we("style",m(l)));let i=e.target;i!==void 0&&t.push(we("target",m(i)));let o=e["aria-label"];return o!==void 0&&t.push(we("aria-label",m(o))),t}function pn(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function qe(e){ge("Router.Link");let t=n=>{n.preventDefault(),mt(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return ot(mn(e).concat([Z("href",Me(e.to))]),[["click",t]],pn(e))}function gn(e,t,n){return qe(e)}const Sl=Object.freeze(Object.defineProperty({__proto__:null,Link:{ReactiveProp:void 0,isReactiveProp:hn,convertAttrValue:we,propsToAttrs:mn,getChildren:pn,make:qe,jsx:qe,jsxs:qe,jsxKeyed:gn,jsxsKeyed:gn},Route:void 0,addBasePath:Me,basePath:al,emptyHistoryState:ft,getCurrentLocation:ht,getGlobalState:K,getScrollFromState:an,getScrollPosition:sn,getSymbolKey:sl,init:fl,initSSR:hl,link:yl,location:cl,makeHistoryState:cn,normalizeBasePath:at,push:mt,replace:ml,route:pl,routes:gl,saveScrollPosition:fn,scrollTo:He,stripBasePath:dn,warnIfNotInitialized:ge},Symbol.toStringTag,{value:"Module"}));function oe(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}let pt=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function bl(e){return pt.includes(e)}let yn={escape:oe,voidElements:pt,isVoidElement:bl},Sn="<!--$-->",bn="<!--/$-->",_n="<!--#-->",vn="<!--/#-->",En="<!--kl-->",Tn="<!--/kl-->";function wn(e){return"<!--k:"+e+"-->"}let xn="<!--/k-->",Dn="<!--lc-->",kn="<!--/lc-->",_l={signalTextStart:Sn,signalTextEnd:bn,signalFragmentStart:_n,signalFragmentEnd:vn,keyedListStart:En,keyedListEnd:Tn,keyedItemStart:wn,keyedItemEnd:xn,lazyComponentStart:Dn,lazyComponentEnd:kn};function $n(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=Q(t._0);break;case"Compute":r=t._0();break}switch(n){case"aria-expanded":case"aria-hidden":case"aria-selected":case"autofocus":case"checked":case"contenteditable":case"disabled":case"draggable":case"hidden":case"multiple":case"readonly":case"required":case"spellcheck":break;default:return n+'="'+oe(r)+'"'}return r==="true"?n:""}function An(e){let t=e.map($n).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let vl={renderAttr:$n,renderAttrs:An};function de(e){switch(e.TAG){case"Element":let t=e.tag,n=An(e.attrs);if(pt.includes(t))return"<"+t+n+" />";let r=e.children.map(de).join("");return"<"+t+n+">"+r+"</"+t+">";case"Text":return oe(e._0);case"SignalText":let l=Q(e._0);return Sn+oe(l)+bn;case"Fragment":return e._0.map(de).join("");case"SignalFragment":let o=Q(e._0).map(de).join("");return _n+o+vn;case"LazyComponent":let d=e._0();return Dn+de(d)+kn;case"KeyedList":let s=e.renderItem,u=e.keyFn,w=Q(e.signal).map(R=>{let $=u(R),A=de(s(R));return wn($)+A+xn}).join("");return En+w+Tn}}function On(e,t){return de(e())}function El(e,t,n){let r=t!==void 0?t:"root",l=e(),i=de(l);return"<!--xote-root:"+r+"-->"+i+"<!--/xote-root-->"}function Cn(e){return"<script"+(e!==void 0?' nonce="'+oe(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function Tl(e,t,n,r,l,i,o){let d=e!==void 0?e:"",s=t!==void 0?t:"",u=n!==void 0?n:[],p=r!==void 0?r:[],w=l!==void 0?l:"",R=On(o),$=Cn(i),A=p.map(X=>'<link rel="stylesheet" href="'+oe(X)+'" />').join(`
|
|
2
|
+
`),ee=u.map(X=>{let U=i!==void 0?' nonce="'+oe(i)+'"':"";return'<script type="module" src="'+oe(X)+'"'+U+"><\/script>"}).join(`
|
|
3
3
|
`);return`<!DOCTYPE html>
|
|
4
4
|
<html>
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="UTF-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
`+
|
|
9
|
-
`+
|
|
8
|
+
`+A+`
|
|
9
|
+
`+d+`
|
|
10
10
|
</head>
|
|
11
|
-
<body`+(
|
|
12
|
-
<div id="root">`+
|
|
13
|
-
`+
|
|
14
|
-
|
|
15
|
-
`+
|
|
11
|
+
<body`+(s!==""?" "+s:"")+`>
|
|
12
|
+
<div id="root">`+R+`</div>
|
|
13
|
+
`+w+`
|
|
14
|
+
`+$+`
|
|
15
|
+
`+ee+`
|
|
16
16
|
</body>
|
|
17
|
-
</html>`}const
|
|
17
|
+
</html>`}const wl=Object.freeze(Object.defineProperty({__proto__:null,Attributes:vl,Html:yn,Markers:_l,generateHydrationScript:Cn,renderDocument:Tl,renderNodeToString:de,renderToString:On,renderToStringWithRoot:El},Symbol.toStringTag,{value:"Module"}));let Ve=typeof document>"u",Xe=!Ve;function xl(e){if(Ve)return me(e())}function Dl(e){if(Xe)return me(e())}function Pn(e,t){return Ve?e():t()}const kl=Object.freeze(Object.defineProperty({__proto__:null,isClient:Xe,isServer:Ve,match:Pn,onClient:Dl,onServer:xl},Symbol.toStringTag,{value:"Module"}));function $l(e){if(typeof e=="boolean")return e}function Al(e){if(e===null)return null}function Ol(e){if(typeof e=="string")return e}function Cl(e){if(typeof e=="number")return e}function Pl(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function jl(e){if(Array.isArray(e))return e}let ye={bool:$l,$$null:Al,string:Ol,float:Cl,object:Pl,array:jl};function Rl(e){return e}function Ml(e){let t=ye.float(e);if(t!==void 0)return t|0}let Vl={encode:Rl,decode:Ml};function Ll(e){return e}function Gl(e){return ye.float(e)}let Fl={encode:Ll,decode:Gl};function Nl(e){return e}function Bl(e){return ye.string(e)}let zl={encode:Nl,decode:Bl};function Il(e){return e}function Wl(e){return ye.bool(e)}let Kl={encode:Il,decode:Wl};function Hl(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=ye.array(t);if(n===void 0)return;let r=ln(n,e.decode);if(r.length===n.length)return r}}}function ql(e){return{encode:t=>t!==void 0?e.encode(m(t)):null,decode:t=>lt(ye.$$null(t))?me(void 0):kr(e.decode(t),n=>me(n))}}function Xl(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 l=r[0],i=r[1],o=e.decode(l),d=t.decode(i);if(o!==void 0&&d!==void 0)return[m(o),m(d)]}}}function Ul(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let l=Array.isArray(r)?r:void 0;if(l===void 0||l.length!==3)return;let i=l[0],o=l[1],d=l[2],s=e.decode(i),u=t.decode(o),p=n.decode(d);if(s!==void 0&&u!==void 0&&p!==void 0)return[m(s),m(u),m(p)]}}}function Yl(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=ye.object(t);if(n===void 0)return;let r={},l={contents:!0};if(Object.entries(n).forEach(i=>{let o=e.decode(i[1]);o!==void 0?r[i[0]]=m(o):l.contents=!1}),l.contents)return r}}}function Jl(e,t){return{encode:e,decode:t}}let Ql={int:Vl,float:Fl,string:zl,bool:Kl,array:Hl,option:ql,tuple2:Xl,tuple3:Ul,dict:Yl,make:Jl},Le={};function jn(e,t,n){if(Ve){Le[e]=n.encode(Q(t));return}}function Zl(){Object.keys(Le).forEach(e=>{nt(Le,e)})}function Rn(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function ei(e){let t=ie(JSON.stringify(Le),"{}"),n=Rn(t);return"<script"+(e!==void 0?' nonce="'+yn.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function Mn(){return Xe?window.__XOTE_STATE__||{}:{}}function Vn(e,t,n){if(!Xe)return;let l=Mn()[e];if(l===void 0)return;let i=n.decode(l);if(i!==void 0)return he(t,m(i))}function Ln(e,t,n){Pn(()=>jn(e,t,n),()=>Vn(e,t,n))}function ti(e,t,n){let r=tt(t,void 0,void 0);return Ln(e,r,n),r}const ni=Object.freeze(Object.defineProperty({__proto__:null,Codec:Ql,clear:Zl,escapeForScript:Rn,generateScript:ei,getClientState:Mn,make:ti,register:jn,registry:Le,restore:Vn,sync:Ln},Symbol.toStringTag,{value:"Module"}));let gt={};function ri(e){let t=gt[e];if(t!==void 0){let n=t+1|0;return gt[e]=n,e+("/"+n)}return gt[e]=1,e}function li(e){return Array.from(e.childNodes||[])}function Ge(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function Ue(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function yt(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function xe(e){return{current:rt(e.firstChild),parent:e}}function ii(e){return e.current}function H(e){let t=e.current;return t!==void 0&&(e.current=rt(m(t).nextSibling)),t}function se(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let l=m(r);if(Ge(l,t))return H(e),me(l);H(e)}})()}function Ye(e,t){let n=[];return(()=>{for(;;){let l=e.current;if(l===void 0)return;let i=m(l);if(Ge(i,t)){H(e);return}n.push(i),H(e)}})(),n}let ui={elementNode:1,textNode:3,commentNode:8,getChildNodes:li,isMarker:Ge,isMarkerPrefix:Ue,extractKey:yt,make:xe,peek:ii,next:H,skipUntilMarker:se,collectUntilMarker:Ye},oi=ri("Hydration-Xote.HydrationMismatch");function St(e){console.warn("[Xote Hydration] "+e)}function di(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,l=n.events,i=n.attrs,o=f.createOwner();return f.setOwner(t,o),f.runWithOwner(o,()=>{i.forEach(v=>{let h=v[1],E=v[0];switch(h.TAG){case"Static":return;case"SignalValue":let x=h._0,G=V(()=>{je.setAttrOrProp(t,E,P(x))},void 0);return f.addDisposer(o,G);case"Compute":let a=h._0,g=V(()=>{je.setAttrOrProp(t,E,a())},void 0);return f.addDisposer(o,g)}}),l.forEach(v=>{t.addEventListener(v[0],v[1])});let k=xe(t);r.forEach(v=>ce(v,k))});case"Text":return;case"SignalText":let d=n._0,s=f.createOwner();return f.setOwner(t,s),f.runWithOwner(s,()=>{let k=V(()=>{t.textContent=P(d)},void 0);f.addDisposer(s,k)});case"Fragment":let u=xe(t);n._0.forEach(k=>ce(k,u));return;case"SignalFragment":let p=n._0,w=f.createOwner();return f.setOwner(t,w),f.runWithOwner(w,()=>{let k=V(()=>{let v=P(p);Array.from(t.childNodes||[]).forEach(E=>f.disposeOwner(ie(f.getOwner(E),f.createOwner()))),t.innerHTML="",v.forEach(E=>{let x=ue.render(E);t.appendChild(x)})},void 0);f.addDisposer(w,k)});case"LazyComponent":let R=f.createOwner(),$=f.runWithOwner(R,n._0);f.setOwner(t,R),e=$;continue;case"KeyedList":let A=n.renderItem,ee=n.keyFn,X=n.signal,U=f.createOwner();f.setOwner(t,U);let L={},te=xe(t);return se(te,"kl"),(()=>{for(;;){let k=te.current;if(k===void 0)return;let v=m(k);if(!Ue(v,"k:"))if(Ge(v,"/kl")){H(te);return}else return;let h=ie(yt(v),"");H(te);let x=Ye(te,"/k").find(G=>G.nodeType===1);if(x!==void 0){let G=Q(X),a=ie(G.find(g=>ee(g)===h),{});L[h]={key:h,item:a,element:m(x)}}}})(),f.runWithOwner(U,()=>{let k=document.createComment(" keyed-list-start "),v=document.createComment(" keyed-list-end "),h=t.firstChild;h==null?t.appendChild(k):t.insertBefore(k,h),t.appendChild(v);let E=()=>{let G=P(X),a={};G.forEach(y=>{a[ee(y)]=y});let g=[];Object.keys(L).forEach(y=>{if(a[y]===void 0){g.push(y);return}}),g.forEach(y=>{let _=L[y];if(_!==void 0){ue.disposeElement(_.element),_.element.remove(),nt(L,y);return}});let O=[],j={};G.forEach(y=>{let _=ee(y),S=L[_];if(S!==void 0){if(S.item!==y){j[_]=!0;let bt=A(y),Qe=ue.render(bt),Ze={key:_,item:y,element:Qe};O.push(Ze),L[_]=Ze;return}O.push(S);return}let D=A(y),ke=ue.render(D),Je={key:_,item:y,element:ke};O.push(Je),L[_]=Je});let F={contents:k.nextSibling};O.forEach(y=>{let _=F.contents;if(_==null){t.insertBefore(y.element,v);return}if(_===v){t.insertBefore(y.element,v);return}if(_===y.element){F.contents=_.nextSibling;return}ie(j[y.key],!1)?(ue.disposeElement(_),t.replaceChild(y.element,_),F.contents=y.element.nextSibling):(t.insertBefore(y.element,_),F.contents=y.element.nextSibling)})},x=V(()=>{E()},void 0);f.addDisposer(U,x)})}}}function ce(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,l=e.attrs,i=H(t);if(i===void 0)return St("Missing DOM element for Element node");let o=m(i),d=f.createOwner();return f.setOwner(o,d),f.runWithOwner(d,()=>{l.forEach(E=>{let x=E[1],G=E[0];switch(x.TAG){case"Static":return;case"SignalValue":let a=x._0,g=V(()=>{je.setAttrOrProp(o,G,P(a))},void 0);return f.addDisposer(d,g);case"Compute":let O=x._0,j=V(()=>{je.setAttrOrProp(o,G,O())},void 0);return f.addDisposer(d,j)}}),r.forEach(E=>{o.addEventListener(E[0],E[1])});let h=xe(o);n.forEach(E=>ce(E,h))});case"Text":H(t);return;case"SignalText":let s=e._0;se(t,"$");let u=H(t);if(u===void 0)return St("Missing text node for SignalText");let p=m(u),w=f.createOwner();f.setOwner(p,w),f.runWithOwner(w,()=>{let h=V(()=>{p.textContent=P(s)},void 0);f.addDisposer(w,h)}),se(t,"/$");return;case"Fragment":e._0.forEach(h=>ce(h,t));return;case"SignalFragment":let R=e._0;se(t,"#");let $=Ye(t,"/#"),A=document.createElement("div");A.setAttribute("style","display: contents");let ee=$[0],X=ee!==void 0?ee.parentNode:void 0;$.forEach(h=>{A.appendChild(h)});let U=t.current;if(X!==void 0){let h=m(X);U!==void 0?h.insertBefore(A,m(U)):h.appendChild(A)}let L=f.createOwner();return f.setOwner(A,L),f.runWithOwner(L,()=>{let h=V(()=>{let E=P(R);Array.from(A.childNodes||[]).forEach(ue.disposeElement),A.innerHTML="",E.forEach(G=>{let a=ue.render(G);A.appendChild(a)})},void 0);f.addDisposer(L,h)});case"LazyComponent":se(t,"lc");let te=e._0();ce(te,t),se(t,"/lc");return;case"KeyedList":let De=e.keyFn,k=e.signal;return se(t,"kl"),(()=>{for(;;){let h=t.current;if(h===void 0)return;let E=m(h);if(!Ue(E,"k:"))if(Ge(E,"/kl")){H(t);return}else return;let x=ie(yt(E),"");H(t);let a=Ye(t,"/k").find(g=>g.nodeType===1);if(a!==void 0){let g=Q(k),O=ie(g.find(j=>De(j)===x),{});m(a)}}})()}}function Gn(e,t,n){let r=n!==void 0?n:{},l=e(),i=xe(t),o=i.current;o!==void 0&&Ue(m(o),"xote-root:")&&H(i),ce(l,i),window.__XOTE_HYDRATED__=!0;let d=r.onHydrated;if(d!==void 0)return d()}function si(e,t,n){let r=n!==void 0?n:{},l=document.getElementById(t);if(l==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return Gn(e,l,r)}const ci=Object.freeze(Object.defineProperty({__proto__:null,DOM:void 0,DOMWalker:ui,HydrationMismatch:oi,Reactivity:void 0,hydrate:Gn,hydrateById:si,hydrateNode:di,hydrateNodeWithWalker:ce,logHydrationWarning:St},Symbol.toStringTag,{value:"Module"}));C.Computed=Dr,C.Effect=cr,C.Html=Qr,C.Hydration=ci,C.Node=Br,C.ReactiveProp=ul,C.Route=dl,C.Router=Sl,C.SSR=wl,C.SSRContext=kl,C.SSRState=ni,C.Signal=vr,C.XoteJSX=nl,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xote",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "https://github.com/brnrdog/xote"
|
|
6
6
|
},
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"res:build": "rescript",
|
|
29
29
|
"res:clean": "rescript clean",
|
|
30
30
|
"res:dev": "rescript -w",
|
|
31
|
+
"format": "rescript format",
|
|
31
32
|
"dev": "vite",
|
|
32
33
|
"build": "vite build",
|
|
33
34
|
"preview": "vite preview",
|
|
@@ -83,6 +84,6 @@
|
|
|
83
84
|
"zekr": "^1.7.0"
|
|
84
85
|
},
|
|
85
86
|
"dependencies": {
|
|
86
|
-
"rescript-signals": "^
|
|
87
|
+
"rescript-signals": "^3.1.0"
|
|
87
88
|
}
|
|
88
89
|
}
|
package/src/Computed.res.mjs
CHANGED
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import * as Computed$Signals from "rescript-signals/src/signals/Computed.res.mjs";
|
|
4
4
|
|
|
5
|
+
let makeWithoutEquals = Computed$Signals.makeWithoutEquals;
|
|
6
|
+
|
|
7
|
+
let makeWithEquals = Computed$Signals.makeWithEquals;
|
|
8
|
+
|
|
5
9
|
let make = Computed$Signals.make;
|
|
6
10
|
|
|
7
11
|
let dispose = Computed$Signals.dispose;
|
|
8
12
|
|
|
9
13
|
export {
|
|
14
|
+
makeWithoutEquals,
|
|
15
|
+
makeWithEquals,
|
|
10
16
|
make,
|
|
11
17
|
dispose,
|
|
12
18
|
}
|
package/src/Hydration.res
CHANGED
package/src/Node.res
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
/* ============================================================================
|
|
3
2
|
* DOM Bindings
|
|
4
3
|
* ============================================================================ */
|
|
@@ -89,7 +88,17 @@ module DOM = {
|
|
|
89
88
|
| "checked" => setChecked(el, value == "true")
|
|
90
89
|
| "disabled" => setDisabled(el, value == "true")
|
|
91
90
|
/* Boolean attributes that should be added/removed based on value */
|
|
92
|
-
| "required"
|
|
91
|
+
| "required"
|
|
92
|
+
| "readonly"
|
|
93
|
+
| "multiple"
|
|
94
|
+
| "aria-hidden"
|
|
95
|
+
| "aria-expanded"
|
|
96
|
+
| "aria-selected"
|
|
97
|
+
| "draggable"
|
|
98
|
+
| "hidden"
|
|
99
|
+
| "contenteditable"
|
|
100
|
+
| "spellcheck"
|
|
101
|
+
| "autofocus" =>
|
|
93
102
|
if value == "true" {
|
|
94
103
|
setAttribute(el, key, "")
|
|
95
104
|
} else {
|
package/src/Node.res.mjs
CHANGED
|
@@ -70,9 +70,14 @@ function setAttrOrProp(el, key, value) {
|
|
|
70
70
|
case "aria-expanded" :
|
|
71
71
|
case "aria-hidden" :
|
|
72
72
|
case "aria-selected" :
|
|
73
|
+
case "autofocus" :
|
|
74
|
+
case "contenteditable" :
|
|
75
|
+
case "draggable" :
|
|
76
|
+
case "hidden" :
|
|
73
77
|
case "multiple" :
|
|
74
78
|
case "readonly" :
|
|
75
79
|
case "required" :
|
|
80
|
+
case "spellcheck" :
|
|
76
81
|
break;
|
|
77
82
|
case "value" :
|
|
78
83
|
el.value = value;
|
|
@@ -423,7 +428,7 @@ function text(content) {
|
|
|
423
428
|
}
|
|
424
429
|
|
|
425
430
|
function signalText(compute) {
|
|
426
|
-
let signal = Computed$Xote.make(compute, undefined);
|
|
431
|
+
let signal = Computed$Xote.make(compute, undefined, undefined);
|
|
427
432
|
return {
|
|
428
433
|
TAG: "SignalText",
|
|
429
434
|
_0: signal
|
|
@@ -431,7 +436,7 @@ function signalText(compute) {
|
|
|
431
436
|
}
|
|
432
437
|
|
|
433
438
|
function signalInt(compute) {
|
|
434
|
-
let signal = Computed$Xote.make(() => compute().toString(), undefined);
|
|
439
|
+
let signal = Computed$Xote.make(() => compute().toString(), undefined, undefined);
|
|
435
440
|
return {
|
|
436
441
|
TAG: "SignalText",
|
|
437
442
|
_0: signal
|
|
@@ -439,7 +444,7 @@ function signalInt(compute) {
|
|
|
439
444
|
}
|
|
440
445
|
|
|
441
446
|
function signalFloat(compute) {
|
|
442
|
-
let signal = Computed$Xote.make(() => compute().toString(), undefined);
|
|
447
|
+
let signal = Computed$Xote.make(() => compute().toString(), undefined, undefined);
|
|
443
448
|
return {
|
|
444
449
|
TAG: "SignalText",
|
|
445
450
|
_0: signal
|
|
@@ -475,7 +480,7 @@ function signalFragment(signal) {
|
|
|
475
480
|
}
|
|
476
481
|
|
|
477
482
|
function list(signal, renderItem) {
|
|
478
|
-
let nodesSignal = Computed$Xote.make(() => Signal$Xote.get(signal).map(renderItem), undefined);
|
|
483
|
+
let nodesSignal = Computed$Xote.make(() => Signal$Xote.get(signal).map(renderItem), undefined, undefined);
|
|
479
484
|
return {
|
|
480
485
|
TAG: "SignalFragment",
|
|
481
486
|
_0: nodesSignal
|
package/src/ReactiveProp.res
CHANGED
package/src/Router.res
CHANGED
|
@@ -253,7 +253,13 @@ let init = (~basePath as basePathArg: string="/", ()): unit => {
|
|
|
253
253
|
// Initialize router for server-side rendering
|
|
254
254
|
// Sets the base path and location signal without accessing browser APIs
|
|
255
255
|
// pathname: The app-relative path being rendered (e.g., "/docs/core-concepts/signals")
|
|
256
|
-
let initSSR = (
|
|
256
|
+
let initSSR = (
|
|
257
|
+
~basePath as basePathArg: string="/",
|
|
258
|
+
~pathname: string="/",
|
|
259
|
+
~search: string="",
|
|
260
|
+
~hash: string="",
|
|
261
|
+
(),
|
|
262
|
+
): unit => {
|
|
257
263
|
let state = getGlobalState()
|
|
258
264
|
let normalizedBasePath = normalizeBasePath(basePathArg)
|
|
259
265
|
state.basePath := normalizedBasePath
|
|
@@ -409,7 +415,7 @@ module Link = {
|
|
|
409
415
|
}
|
|
410
416
|
|
|
411
417
|
/* Convert props to attrs array */
|
|
412
|
-
let propsToAttrs = (props
|
|
418
|
+
let propsToAttrs = (props): array<(string, Node.attrValue)> => {
|
|
413
419
|
let attrs = []
|
|
414
420
|
|
|
415
421
|
switch props.class {
|
|
@@ -441,7 +447,7 @@ module Link = {
|
|
|
441
447
|
}
|
|
442
448
|
|
|
443
449
|
/* Extract children from props */
|
|
444
|
-
let getChildren = (props
|
|
450
|
+
let getChildren = (props): array<Node.node> => {
|
|
445
451
|
switch props.children {
|
|
446
452
|
| Some(Node.Fragment(children)) => children
|
|
447
453
|
| Some(child) => [child]
|
|
@@ -450,7 +456,7 @@ module Link = {
|
|
|
450
456
|
}
|
|
451
457
|
|
|
452
458
|
/* JSX component function */
|
|
453
|
-
let make = (props
|
|
459
|
+
let make = (props): Node.node => {
|
|
454
460
|
warnIfNotInitialized("Router.Link")
|
|
455
461
|
|
|
456
462
|
let handleClick = (evt: Dom.event) => {
|
|
@@ -475,7 +481,7 @@ module Link = {
|
|
|
475
481
|
/* JSX transform functions */
|
|
476
482
|
let jsx = make
|
|
477
483
|
let jsxs = make
|
|
478
|
-
let jsxKeyed = (props
|
|
484
|
+
let jsxKeyed = (props, ~key: option<string>=?, _: unit) => {
|
|
479
485
|
let _ = key
|
|
480
486
|
make(props)
|
|
481
487
|
}
|
package/src/Router.res.mjs
CHANGED
|
@@ -221,7 +221,7 @@ function route(pattern, render) {
|
|
|
221
221
|
} else {
|
|
222
222
|
return [render(params._0)];
|
|
223
223
|
}
|
|
224
|
-
}, undefined));
|
|
224
|
+
}, undefined, undefined));
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
function routes(configs) {
|
|
@@ -241,7 +241,7 @@ function routes(configs) {
|
|
|
241
241
|
} else {
|
|
242
242
|
return [];
|
|
243
243
|
}
|
|
244
|
-
}, undefined));
|
|
244
|
+
}, undefined, undefined));
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
function link(to, attrsOpt, childrenOpt, param) {
|
package/src/SSR.res
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
/* ============================================================================
|
|
4
2
|
* HTML Utilities
|
|
5
3
|
* ============================================================================ */
|
|
@@ -91,7 +89,12 @@ module Attributes = {
|
|
|
91
89
|
| "multiple"
|
|
92
90
|
| "aria-hidden"
|
|
93
91
|
| "aria-expanded"
|
|
94
|
-
| "aria-selected"
|
|
92
|
+
| "aria-selected"
|
|
93
|
+
| "draggable"
|
|
94
|
+
| "hidden"
|
|
95
|
+
| "contenteditable"
|
|
96
|
+
| "spellcheck"
|
|
97
|
+
| "autofocus" =>
|
|
95
98
|
if attrValue == "true" {
|
|
96
99
|
key
|
|
97
100
|
} else {
|
package/src/SSR.res.mjs
CHANGED
|
@@ -87,11 +87,16 @@ function renderAttr(param) {
|
|
|
87
87
|
case "aria-expanded" :
|
|
88
88
|
case "aria-hidden" :
|
|
89
89
|
case "aria-selected" :
|
|
90
|
+
case "autofocus" :
|
|
90
91
|
case "checked" :
|
|
92
|
+
case "contenteditable" :
|
|
91
93
|
case "disabled" :
|
|
94
|
+
case "draggable" :
|
|
95
|
+
case "hidden" :
|
|
92
96
|
case "multiple" :
|
|
93
97
|
case "readonly" :
|
|
94
98
|
case "required" :
|
|
99
|
+
case "spellcheck" :
|
|
95
100
|
break;
|
|
96
101
|
default:
|
|
97
102
|
return key + `="` + escape(attrValue) + `"`;
|
package/src/SSRState.res
CHANGED
package/src/Signal.res.mjs
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import * as Signal$Signals from "rescript-signals/src/signals/Signal.res.mjs";
|
|
4
4
|
|
|
5
|
+
let defaultEquals = Signal$Signals.defaultEquals;
|
|
6
|
+
|
|
7
|
+
let neverEquals = Signal$Signals.neverEquals;
|
|
8
|
+
|
|
5
9
|
let make = Signal$Signals.make;
|
|
6
10
|
|
|
7
11
|
let makeForComputed = Signal$Signals.makeForComputed;
|
|
@@ -19,6 +23,8 @@ let batch = Signal$Signals.batch;
|
|
|
19
23
|
let untrack = Signal$Signals.untrack;
|
|
20
24
|
|
|
21
25
|
export {
|
|
26
|
+
defaultEquals,
|
|
27
|
+
neverEquals,
|
|
22
28
|
make,
|
|
23
29
|
makeForComputed,
|
|
24
30
|
get,
|