xote 6.4.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -36
- package/dist/RuntimeAttr.res-Cr5Qmz0i.js +1 -0
- package/dist/RuntimeAttr.res-DAZkL5CF.mjs +539 -0
- package/dist/RuntimeHydrationMarkers.res-C5-ieaOS.js +1 -0
- package/dist/RuntimeHydrationMarkers.res-DHikAvHr.mjs +6 -0
- package/dist/RuntimeJsxProp.res-A6N-qWoK.js +1 -0
- package/dist/RuntimeJsxProp.res-D3W5GXqT.mjs +64 -0
- package/dist/Stdlib_Array-1YCQzU_Y.mjs +22 -0
- package/dist/Stdlib_Array-BeBVUIuY.js +1 -0
- package/dist/View.res-C36--SJD.js +1 -0
- package/dist/View.res-SuqJrQPC.mjs +777 -0
- package/dist/client.cjs +1 -0
- package/dist/client.mjs +131 -0
- package/dist/hydration.cjs +1 -0
- package/dist/hydration.mjs +385 -0
- package/dist/mdx.cjs +1 -0
- package/dist/mdx.mjs +50 -0
- package/dist/router.cjs +1 -0
- package/dist/router.mjs +276 -0
- package/dist/ssr.cjs +17 -0
- package/dist/ssr.mjs +321 -0
- package/dist/xote.cjs +1 -17
- package/dist/xote.mjs +1456 -2467
- package/dist/xote.umd.js +1 -17
- package/package.json +42 -10
- package/rescript.json +2 -2
- package/src/Mdx.res +77 -0
- package/src/Mdx.res.mjs +93 -0
- package/src/Router.res +62 -8
- package/src/Router.res.mjs +60 -6
- package/src/RuntimeDom.res +7 -0
- package/src/RuntimeDom.res.mjs +8 -0
- package/src/RuntimeJsxProp.res +5 -8
- package/src/RuntimeJsxProp.res.mjs +9 -10
- package/src/RuntimeValue.res +35 -0
- package/src/RuntimeValue.res.mjs +67 -0
- package/src/SSRState.res +1 -4
- package/src/SSRState.res.mjs +4 -10
- package/src/View.res +224 -34
- package/src/View.res.mjs +306 -32
- package/src/jsx-dev-runtime.mjs +7 -0
- package/src/jsx-runtime.mjs +276 -0
- package/src/Node.res +0 -2
- package/src/Node.res.mjs +0 -82
- package/src/ReactiveProp.res +0 -2
- 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 Dt(){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 Ie(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 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 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 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},z={contents:void 0},I={contents:void 0},te=[],ne=[],ce={contents:!1},Oe={contents:!1},Me={contents:!1},Lt={contents:0},Ft={contents:0},Re=[],mr=(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 hr(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),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,a,c=e.firstDep;for(;c!==void 0&&!u;){let l=c;l!==void 0&&(l.subs===t?(l.lastTrackedVersion=n,a=l,u=!0):c=l.nextDep)}if(u){z.contents=a;return}let f=We(t,e);f.lastTrackedVersion=n,Rt(e,f),He(t,f),z.contents=f}function yr(e,t){if(e.firstDep===void 0){let l=We(t,e);l.lastTrackedVersion=B.contents,Mt(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,a,c=e.firstDep;for(;c!==void 0&&!u;){let l=c;l!==void 0&&(l.subs===t?(l.lastTrackedVersion=n,a=l,u=!0):c=l.nextDep)}if(u){I.contents=a;return}let f=We(t,e);f.lastTrackedVersion=n,Mt(e,f),He(t,f),I.contents=f}function pr(e){let t=G.contents;if(t!==void 0)return gr(t,e);let n=N.contents;if(n!==void 0)return yr(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=z.contents;G.contents=e,z.contents=e.firstDep;try{let a=e.compute;a!==void 0&&a();let c=e.firstDep;for(;c!==void 0;){let f=c;if(f!==void 0){let l=f.nextDep;f.lastTrackedVersion!==B.contents&&(qe(f),cr(e,f)),c=l}}if(Ie(e),e.lastGlobalVersion=xe.contents,e.first!==void 0&&e.version!==r){let f=e.first;for(;f!==void 0;){let l=f;if(l!==void 0){let s=l.observer;if(_e(s))Ot(s);else{let k=N.contents;k!==void 0&&k===l.observer||ut(l.observer)}f=l.nextSub}}}G.contents=i,z.contents=u,B.contents=n;return}catch(a){throw G.contents=i,z.contents=u,B.contents=n,a}}function _r(e){let t=e.level;if(Nt(e,!0),t===0){e.level=Vt(e);return}}function vr(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=I.contents;N.contents=e,I.contents=e.firstDep;try{e.run();let u=e.firstDep;for(;u!==void 0;){let a=u;if(a!==void 0){let c=a.nextDep;a.lastTrackedVersion!==B.contents&&(qe(a),ar(e,a)),u=c}}Pt(e),N.contents=r,I.contents=i,B.contents=n}catch(u){throw N.contents=r,I.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&&vr(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 $r(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?hr(n):ut(i.observer),r=i.nextSub}}}}mr(Re)}if((te.length!==0||ne.length!==0)&&!ce.contents)return Bt()}function zt(e){if(!_e(e)||!jt(e))return;if(e.lastGlobalVersion===xe.contents)return Ie(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=z.contents,i=I.contents;G.contents=void 0,N.contents=void 0,z.contents=void 0,I.contents=void 0;try{let u=e();return G.contents=t,N.contents=n,z.contents=r,I.contents=i,u}catch(u){throw G.contents=t,N.contents=n,z.contents=r,I.contents=i,u}}function It(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),a=N.contents;N.contents=u;try{u.run(),Pt(u),N.contents=a}catch(l){throw N.contents=a,l}u.level=Kt(u);let c={contents:!1};return{dispose:()=>{if(c.contents)return;c.contents=!0;let l=r.contents;l!==void 0&&l(),fr(u)}}}function xr(e,t){It(e,t)}let V=It;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 wr(e,t,n){return{id:je(),value:e,equals:n!==void 0?n:Wt,name:t,subs:Dt()}}function Ar(e,t){return{id:je(),value:e,equals:Ht,name:t,subs:Dt()}}function Dr(e){return zt(e.subs),pr(e.subs),e.value}function Cr(e){return zt(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,$r(e.subs)}function Pr(e,t){qt(e,t(e.value))}let jr=Er,Or=Tr,Mr=Wt,Rr=Ht,ot=wr,Lr=Ar,L=Dr,re=Cr,ve=qt;const Fr=Object.freeze(Object.defineProperty({__proto__:null,batch:jr,defaultEquals:Mr,get:L,make:ot,makeForComputed:Lr,neverEquals:Rr,peek:re,set:ve,untrack:Or,update:Pr},Symbol.toStringTag,{value:"Module"}));function Le(e,t){delete e[t]}function Ut(e,t){let n=je(),r=(s,k)=>!1,i={contents:void 0},a=Ct(()=>{let s=i.contents,k=e();s.value=k,s.subs.version=s.subs.version+1|0},!1),c=G.contents;G.contents=a;let f=e();G.contents=c;let l={id:n,value:f,equals:r,name:t,subs:a};return i.contents=l,a.lastGlobalVersion=xe.contents,Ie(a),l}function Xt(e,t,n){let r=je(),i={contents:void 0},a=Ct(()=>{let s=i.contents,k=s.value,$=e(),P;try{P=!s.equals(k,$)}catch{P=!0}if(P){s.value=$,s.subs.version=s.subs.version+1|0;return}},!0),c=G.contents;G.contents=a;let f=e();G.contents=c;let l={id:r,value:f,equals:t,name:n,subs:a};return i.contents=l,a.lastGlobalVersion=xe.contents,Ie(a),l}function Gr(e,t,n){return n!==void 0?Xt(e,n,t):Ut(e,t)}function Vr(e){sr(e.subs)}let Kr=Ut,Nr=Xt,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 fe(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 fe(e)}function g(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 zr(e,t){if(e!==void 0)return fe(t(g(e)))}function se(e,t){return e!==void 0?g(e):t}function Jt(e){return e!==void 0}let Ir=["checked","disabled","required","readonly","multiple","aria-hidden","aria-expanded","aria-selected","draggable","hidden","contenteditable","spellcheck","autofocus"];function Qt(e){return Ir.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 me(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 U(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 X(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 he(e){let t=nn(e);t!==void 0&&tn(t),Array.from(e.childNodes||[]).forEach(he)}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],a=t[i];return u!==void 0&&a!==void 0?g(u)===g(a):!1})}function on(e){Object.keys(e).forEach(t=>{Le(e,t)})}function dn(e){if(e.length===0)return;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 s=t[l];if(s!==void 0){he(s.element),s.element.remove(),Le(t,l);return}});let u=[],a={};e.forEach(l=>{let s=t[l.key];if(s!==void 0){if(un(s.item,l.identity)){u.push(s);return}let O=le(l.child),q=l.key,ee=l.identity,ie={key:q,item:ee,element:O};a[l.key]=s.element,u.push(ie),t[l.key]=ie;return}let k=le(l.child),$=l.key,P=l.identity,w={key:$,item:P,element:k};u.push(w),t[l.key]=w});let c=n.firstChild,f={contents:c!=null?fe(c):void 0};u.forEach(l=>{let s=f.contents;if(s!==void 0){let $=g(s);if($===l.element){f.contents=ke($.nextSibling);return}let P=a[l.key];if(P!==void 0){let w=g(P);if($===w){he(w),n.replaceChild(l.element,w),f.contents=ke(l.element.nextSibling);return}}n.insertBefore(l.element,$),f.contents=ke(l.element.nextSibling);return}let k=a[l.key];if(k!==void 0){let $=g(k);he($),$.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,a=qr(u),c=W();return X(a,c),U(c,()=>{let h=m=>u==="select"?m[0]==="value":!1,T=m=>{let A=m[1],j=m[0];switch(A.TAG){case"Static":return me(a,j,A._0);case"SignalValue":let p=A._0;me(a,j,re(p));let x=V(()=>{me(a,j,L(p))},void 0);return H(c,x);case"Compute":let b=A._0,C=V(()=>{me(a,j,b())},void 0);return H(c,C)}};i.forEach(m=>{if(!h(m))return T(m)}),r.forEach(m=>{a.addEventListener(m[0],m[1])}),n.forEach(m=>{let A=le(m);a.appendChild(A)}),i.forEach(m=>{if(h(m))return T(m)})}),a;case"Text":return document.createTextNode(t._0);case"SignalText":let f=t._0,l=document.createTextNode(re(f)),s=W();return X(l,s),U(s,()=>{let h=V(()=>{l.textContent=L(f)},void 0);H(s,h)}),l;case"Fragment":let k=document.createDocumentFragment();return t._0.forEach(h=>{let T=le(h);k.appendChild(T)}),k;case"SignalFragment":let $=t._0,P=W(),w=document.createElement("div");w.setAttribute("style","display: contents"),X(w,P);let O={};return U(P,()=>{let h=V(()=>{let T=L($),m=dn(T);m!==void 0?an(m,O,w):(on(O),Array.from(w.childNodes||[]).forEach(he),w.innerHTML="",T.forEach(j=>{let p=le(j);w.appendChild(p)}))},void 0);H(P,h)}),w;case"Keyed":e=t.child;continue;case"LazyComponent":let q=W(),ee=U(q,t._0),ie=le(ee);return X(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 ");X(R,Ce);let D={},E=()=>{let h=_.parentNode;if(h==null)return;let T=L(oe),m={};T.forEach(b=>{m[K(b)]=b});let A=[];Object.keys(D).forEach(b=>{if(m[b]===void 0){A.push(b);return}}),A.forEach(b=>{let C=D[b];if(C!==void 0){he(C.element),C.element.remove(),Le(D,b);return}});let j=[],p={};T.forEach(b=>{let C=K(b),Pe=D[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),D[C]=tr;return}j.push(Pe);return}let rt=ue(b),At=le(rt),lt={key:C,item:b,element:At};j.push(lt),D[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}se(p[b.key],!1)?(he(C),h.replaceChild(b.element,C),x.contents=b.element.nextSibling):(h.insertBefore(b.element,C),x.contents=b.element.nextSibling)})},v=document.createDocumentFragment();return v.appendChild(R),re(oe).forEach(h=>{let T=K(h),m=ue(h),A=le(m),j={key:T,item:h,element:A};D[T]=j,v.appendChild(A)}),v.appendChild(_),U(Ce,()=>{let h=V(()=>{E()},void 0);H(Ce,h)}),v}}}let F={disposeElement:he,shallowEqualIdentity:un,clearKeyedItems:on,getKeyedChildren:dn,reconcileKeyedChildren:an,render:le};function ft(e){return{TAG:"Text",_0:e}}function cn(e){return{TAG:"SignalText",_0:de(e,void 0,void 0)}}function fn(e){return{TAG:"SignalText",_0:de(()=>e().toString(),void 0,void 0)}}function sn(e){return{TAG:"SignalText",_0:de(()=>e().toString(),void 0,void 0)}}function mn(e){return{TAG:"Text",_0:e.toString()}}function hn(e){return{TAG:"Text",_0:e.toString()}}function Ue(e){return{TAG:"Fragment",_0:e}}function Xe(e){return{TAG:"SignalFragment",_0:e}}function st(e,t){return{TAG:"SignalFragment",_0:de(()=>L(e).map(t),void 0,void 0)}}function mt(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(f=>f),a=n!==void 0?n:[].map(f=>f),c=r!==void 0?r:[].map(f=>f);return{TAG:"Element",tag:e,attrs:u,events:a,children:c}}function ht(){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 yn,pn,ae=dt,we=at,Ye=ct,bn=st,Sn=mt,_n=ht;const Ur=Object.freeze(Object.defineProperty({__proto__:null,$$null:ht,Attr:ln,Attributes:rn,DOM:yn,Reactivity:pn,Render:F,attr:ae,computedAttr:Ye,each:st,eachWithKey:mt,element:Y,empty:_n,float:hn,fragment:Ue,int:mn,keyedList:Sn,list:bn,mount:gt,mountById:gn,signalAttr:we,signalFloat:sn,signalFragment:Xe,signalInt:fn,signalText:cn,text:ft},Symbol.toStringTag,{value:"Module"})),Xr=Object.freeze(Object.defineProperty({__proto__:null,$$null:ht,Attr:ln,Attributes:rn,DOM:yn,Reactivity:pn,Render:F,attr:ae,computedAttr:Ye,each:st,eachWithKey:mt,element:Y,empty:_n,float:hn,fragment:Ue,int:mn,keyedList:Sn,list:bn,mount:gt,mountById:gn,signalAttr:we,signalFloat:sn,signalFragment:Xe,signalInt:fn,signalText:cn,text:ft},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 yt(e,t,n,r){return Y("a",e,t,n)}const ul=Object.freeze(Object.defineProperty({__proto__:null,a:yt,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 vn(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function d(e,t){return vn(t)?t.TAG==="Reactive"?we(e,t._0):ae(e,t._0):typeof t=="function"?Ye(e,t):typeof t=="object"?we(e,t):ae(e,t)}function J(e,t){if(vn(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 we(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 we(e,n)}function $n(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:Ue([])}let dl=Ue;function al(){return ft("")}function o(e,t,n,r){if(t!==void 0){e.push(r(n,g(t)));return}}function Ae(e,t,n){if(t!==void 0){e.push(ae(n,t.toString()));return}}function Tn(e){let t=[];o(t,e.id,"id",d),o(t,e.class,"class",d),o(t,e.style,"style",d),o(t,e.title,"title",d),o(t,e.type,"type",d),o(t,e.name,"name",d),o(t,e.value,"value",d),o(t,e.placeholder,"placeholder",d),o(t,e.disabled,"disabled",J),o(t,e.checked,"checked",J),o(t,e.required,"required",J),o(t,e.readOnly,"readonly",J),Ae(t,e.maxLength,"maxlength"),Ae(t,e.minLength,"minlength"),o(t,e.min,"min",d),o(t,e.max,"max",d),o(t,e.step,"step",d),o(t,e.pattern,"pattern",d),o(t,e.autoComplete,"autocomplete",d),o(t,e.multiple,"multiple",J),o(t,e.accept,"accept",d),Ae(t,e.rows,"rows"),Ae(t,e.cols,"cols"),o(t,e.autofocus,"autofocus",J),o(t,e.action,"action",d),o(t,e.method,"method",d),o(t,e.for,"for",d),o(t,e.href,"href",d),o(t,e.target,"target",d),o(t,e.src,"src",d),o(t,e.alt,"alt",d),o(t,e.width,"width",d),o(t,e.height,"height",d),o(t,e.draggable,"draggable",J),o(t,e.hidden,"hidden",J),o(t,e.contentEditable,"contenteditable",J),o(t,e.spellcheck,"spellcheck",J),o(t,e.role,"role",d),Ae(t,e.tabIndex,"tabindex"),o(t,e["aria-label"],"aria-label",d),o(t,e["aria-hidden"],"aria-hidden",J),o(t,e["aria-expanded"],"aria-expanded",J),o(t,e["aria-selected"],"aria-selected",J),o(t,e.xmlns,"xmlns",d),o(t,e["xmlns:xlink"],"xmlns:xlink",d),o(t,e.version,"version",d),o(t,e.viewBox,"viewBox",d),o(t,e.preserveAspectRatio,"preserveAspectRatio",d),o(t,e.d,"d",d),o(t,e.pathLength,"pathLength",d),o(t,e.cx,"cx",d),o(t,e.cy,"cy",d),o(t,e.r,"r",d),o(t,e.rx,"rx",d),o(t,e.ry,"ry",d),o(t,e.x,"x",d),o(t,e.y,"y",d),o(t,e.x1,"x1",d),o(t,e.y1,"y1",d),o(t,e.x2,"x2",d),o(t,e.y2,"y2",d),o(t,e.fx,"fx",d),o(t,e.fy,"fy",d),o(t,e.dx,"dx",d),o(t,e.dy,"dy",d),o(t,e.points,"points",d),o(t,e.transform,"transform",d),o(t,e["transform-origin"],"transform-origin",d),o(t,e.fill,"fill",d),o(t,e["fill-opacity"],"fill-opacity",d),o(t,e["fill-rule"],"fill-rule",d),o(t,e.stroke,"stroke",d),o(t,e["stroke-width"],"stroke-width",d),o(t,e["stroke-linecap"],"stroke-linecap",d),o(t,e["stroke-linejoin"],"stroke-linejoin",d),o(t,e["stroke-dasharray"],"stroke-dasharray",d),o(t,e["stroke-dashoffset"],"stroke-dashoffset",d),o(t,e["stroke-opacity"],"stroke-opacity",d),o(t,e["stroke-miterlimit"],"stroke-miterlimit",d),o(t,e.opacity,"opacity",d),o(t,e.color,"color",d),o(t,e.visibility,"visibility",d),o(t,e["vector-effect"],"vector-effect",d),o(t,e["pointer-events"],"pointer-events",d),o(t,e["clip-path"],"clip-path",d),o(t,e["clip-rule"],"clip-rule",d),o(t,e.mask,"mask",d),o(t,e.filter,"filter",d),o(t,e["text-anchor"],"text-anchor",d),o(t,e["dominant-baseline"],"dominant-baseline",d),o(t,e["font-family"],"font-family",d),o(t,e["font-size"],"font-size",d),o(t,e["font-weight"],"font-weight",d),o(t,e["letter-spacing"],"letter-spacing",d),o(t,e["word-spacing"],"word-spacing",d),o(t,e["text-decoration"],"text-decoration",d),o(t,e.offset,"offset",d),o(t,e["stop-color"],"stop-color",d),o(t,e["stop-opacity"],"stop-opacity",d),o(t,e.gradientUnits,"gradientUnits",d),o(t,e.gradientTransform,"gradientTransform",d),o(t,e.spreadMethod,"spreadMethod",d),o(t,e["marker-start"],"marker-start",d),o(t,e["marker-mid"],"marker-mid",d),o(t,e["marker-end"],"marker-end",d),o(t,e["xlink:href"],"xlink:href",d);let n=e.data;return n!==void 0&&Object.entries(n).forEach(i=>{t.push(d("data-"+i[0],i[1]))}),t}function y(e,t,n){if(t!==void 0){e.push([n,g(t)]);return}}function xn(e){let t=[];return y(t,e.onClick,"click"),y(t,e.onInput,"input"),y(t,e.onChange,"change"),y(t,e.onSubmit,"submit"),y(t,e.onFocus,"focus"),y(t,e.onBlur,"blur"),y(t,e.onKeyDown,"keydown"),y(t,e.onKeyUp,"keyup"),y(t,e.onMouseEnter,"mouseenter"),y(t,e.onMouseLeave,"mouseleave"),y(t,e.onMouseDown,"mousedown"),y(t,e.onMouseMove,"mousemove"),y(t,e.onMouseUp,"mouseup"),y(t,e.onContextMenu,"contextmenu"),y(t,e.onPointerDown,"pointerdown"),y(t,e.onPointerMove,"pointermove"),y(t,e.onPointerUp,"pointerup"),y(t,e.onPointerCancel,"pointercancel"),y(t,e.onPointerEnter,"pointerenter"),y(t,e.onPointerLeave,"pointerleave"),y(t,e.onPointerOver,"pointerover"),y(t,e.onPointerOut,"pointerout"),y(t,e.onGotPointerCapture,"gotpointercapture"),y(t,e.onLostPointerCapture,"lostpointercapture"),y(t,e.onDrag,"drag"),y(t,e.onDragStart,"dragstart"),y(t,e.onDragEnd,"dragend"),y(t,e.onDragOver,"dragover"),y(t,e.onDragEnter,"dragenter"),y(t,e.onDragLeave,"dragleave"),y(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 wn=Je;function An(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:o,addIntAttr:Ae,propsToAttrs:Tn,addEvent:y,propsToEvents:xn,getChildren:kn,createElement:Je,jsx:wn,jsxs:wn,jsxKeyed:An,jsxsKeyed:An},Prop:void 0,array:dl,jsx:$n,jsxFragment:ol,jsxKeyed:En,jsxs:$n,jsxsKeyed:En},Symbol.toStringTag,{value:"Module"}));function Dn(e){return e.TAG==="Reactive"?L(e._0):e._0}function Cn(e){return{TAG:"Static",_0:e}}function pt(e){return{TAG:"Reactive",_0:e}}let Pn=pt;const fl=Object.freeze(Object.defineProperty({__proto__:null,$$static:Cn,get:Dn,reactive:pt,signal:Pn},Symbol.toStringTag,{value:"Module"})),sl=Object.freeze(Object.defineProperty({__proto__:null,$$static:Cn,get:Dn,reactive:pt,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 a=e[u],c=t(a);c!==void 0&&(r[i]=g(c),i=i+1|0)}return r.length=i,r}function ml(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,a)=>{let c=n[a];return u.TAG==="Static"?c===u._0:(r[u._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function Qe(e,t){return St(bt(e),t)}const hl=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 yl(){return Q().location}function pl(){return Q().basePath}function $e(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 vt(){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 $t(){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,ve(r.location,$t()),r.initialized)return;let u=a=>{ve(Q().location,$t());let c=window["history.state"];if(c==null)return;let f=Ln(c);if(f!==void 0)return Ze(f[0],f[1])};r.popStateHandler=u,window.addEventListener("popstate",u),r.initialized=!0}function Sl(e,t,n,r,i){let u=e!==void 0?e:"/",a=t!==void 0?t:"/",c=n!==void 0?n:"",f=r!==void 0?r:"",l=Q(),s=_t(u);l.basePath.contents=s,ve(l.location,{pathname:a,search:c,hash:f}),l.initialized=!0}function Et(e,t,n,r){let i=t!==void 0?t:"",u=n!==void 0?n:"";$e("Router.push()"),Fn();let a={pathname:e,search:i,hash:u},f=Ge(e)+i+u;window.history.pushState(vt(),"",f),ve(Q().location,a),Ze(0,0)}function _l(e,t,n,r){let i=t!==void 0?t:"",u=n!==void 0?n:"";$e("Router.replace()");let a={pathname:e,search:i,hash:u},f=Ge(e)+i+u;window.history.replaceState(vt(),"",f),ve(Q().location,a),Ze(0,0)}function vl(e,t){return $e("Router.route()"),Xe(de(()=>{let n=L(Q().location),r=Qe(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0,void 0))}function $l(e){return $e("Router.routes()"),Xe(de(()=>{let t=L(Q().location),n=ml(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:[];$e("Router.link()");let a=c=>{c.preventDefault(),Et(e,void 0,void 0)};return yt(i.concat([ae("href",Ge(e))]),[["click",a]],u)}function Gn(e){let t=[],n=e.class;n!==void 0&&t.push(d("class",g(n)));let r=e.id;r!==void 0&&t.push(d("id",g(r)));let i=e.style;i!==void 0&&t.push(d("style",g(i)));let u=e.target;u!==void 0&&t.push(d("target",g(u)));let a=e["aria-label"];return a!==void 0&&t.push(d("aria-label",g(a))),t}function Vn(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function Ve(e){$e("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 yt(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:pl,emptyHistoryState:vt,getCurrentLocation:$t,getGlobalState:Q,getScrollFromState:Ln,getScrollPosition:Mn,getSymbolKey:gl,init:bl,initSSR:Sl,link:El,location:yl,makeHistoryState:Rn,normalizeBasePath:_t,push:Et,replace:_l,route:vl,routes:$l,saveScrollPosition:Fn,scrollTo:Ze,stripBasePath:On,warnIfNotInitialized:$e},Symbol.toStringTag,{value:"Module"}));function ge(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}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 wl(e){return"<!--"+Ke+e+"-->"}let Al="<!--$-->",Dl="<!--/$-->",Cl="$",Pl="/$",jl="<!--#-->",Ol="<!--/#-->",Ml="#",Rl="/#",Ll="<!--kl-->",Fl="<!--/kl-->",Nn="kl",Bn="/kl",Gl="<!--/k-->",zn="/k",Vl="<!--lc-->",Kl="<!--/lc-->",Nl="lc",Bl="/lc";function In(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(In).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let zl={renderAttr:In,renderAttrs:Wn};function ye(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(ye).join("");return"<"+n+r+">"+i+"</"+n+">";case"Text":return ge(t._0);case"SignalText":let u=re(t._0);return Al+ge(u)+Dl;case"Fragment":return t._0.map(ye).join("");case"SignalFragment":let c=re(t._0).map(ye).join("");return jl+c+Ol;case"Keyed":e=t.child;continue;case"LazyComponent":let f=t._0();return Vl+ye(f)+Kl;case"KeyedList":let l=t.renderItem,s=t.keyFn,$=re(t.signal).map(P=>{let w=s(P),O=ye(l(P));return wl(w)+O+Gl}).join("");return Ll+$+Fl}}}function Hn(e,t){return ye(e())}function Il(e,t,n){let r=t!==void 0?t:"root",i=e(),u=ye(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,a){let c=e!==void 0?e:"",f=t!==void 0?t:"",l=n!==void 0?n:[],s=r!==void 0?r:[],k=i!==void 0?i:"",$=Hn(a),P=qn(u),w=s.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
|
-
`+w+`
|
|
9
|
-
`+c+`
|
|
10
|
-
</head>
|
|
11
|
-
<body`+(f!==""?" "+f:"")+`>
|
|
12
|
-
<div id="root">`+$+`</div>
|
|
13
|
-
`+k+`
|
|
14
|
-
`+P+`
|
|
15
|
-
`+O+`
|
|
16
|
-
</body>
|
|
17
|
-
</html>`}const Hl=Object.freeze(Object.defineProperty({__proto__:null,Attributes:zl,Html:void 0,Markers:void 0,generateHydrationScript:qn,renderDocument:Wl,renderNodeToString:ye,renderToString:Hn,renderToStringWithRoot:Il},Symbol.toStringTag,{value:"Module"}));let Ne=typeof document>"u",et=!Ne;function ql(e){if(Ne)return fe(e())}function Ul(e){if(et)return fe(e())}function Un(e,t){return Ne?e():t()}const Xl=Object.freeze(Object.defineProperty({__proto__:null,isClient:et,isServer:Ne,match:Un,onClient:Ul,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 fi(e){return e}function si(e){return Ee.bool(e)}let mi={encode:fi,decode:si};function hi(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(g(t)):null,decode:t=>Jt(Ee.$$null(t))?fe(void 0):zr(e.decode(t),n=>fe(n))}}function yi(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],a=e.decode(i),c=t.decode(u);if(a!==void 0&&c!==void 0)return[g(a),g(c)]}}}function pi(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],a=i[1],c=i[2],f=e.decode(u),l=t.decode(a),s=n.decode(c);if(f!==void 0&&l!==void 0&&s!==void 0)return[g(f),g(l),g(s)]}}}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 a=e.decode(u[1]);a!==void 0?r[u[0]]=g(a):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:mi,array:hi,option:gi,tuple2:yi,tuple3:pi,dict:bi,make:Si},Be={};function Xn(e,t,n){if(Ne){Be[e]=n.encode(re(t));return}}function vi(){Object.keys(Be).forEach(e=>{Le(Be,e)})}function Yn(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function $i(e){let t=se(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 ve(t,g(u))}function Tt(e,t,n){Un(()=>Xn(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:vi,escapeForScript:Yn,generateScript:$i,getClientState:Jn,make:Zn,register:Xn,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 ze(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 De(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(g(t).nextSibling)),t}function pe(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let i=g(r);if(ze(i,t))return Z(e),fe(i);Z(e)}})()}function nt(e,t){let n=[];return(()=>{for(;;){let i=e.current;if(i===void 0)return;let u=g(i);if(ze(u,t)){Z(e);return}n.push(u),Z(e)}})(),n}let wi={elementNode:1,textNode:3,commentNode:8,getChildNodes:xi,isMarker:ze,isMarkerPrefix:tt,extractKey:kt,make:De,peek:ki,next:Z,skipUntilMarker:pe,collectUntilMarker:nt},Ai=Ti("Hydration-Xote.HydrationMismatch");function wt(e){console.warn("[Xote Hydration] "+e)}function Di(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,i=n.events,u=n.attrs,a=W();return X(t,a),U(a,()=>{u.forEach(_=>{let D=_[1],E=_[0];switch(D.TAG){case"Static":return;case"SignalValue":let v=D._0,S=V(()=>{me(t,E,L(v))},void 0);return H(a,S);case"Compute":let h=D._0,T=V(()=>{me(t,E,h())},void 0);return H(a,T)}}),i.forEach(_=>{t.addEventListener(_[0],_[1])});let R=De(t);r.forEach(_=>be(_,R))});case"Text":return;case"SignalText":let c=n._0,f=W();return X(t,f),U(f,()=>{let R=V(()=>{t.textContent=L(c)},void 0);H(f,R)});case"Fragment":let l=De(t);n._0.forEach(R=>be(R,l));return;case"SignalFragment":let s=n._0,k=W();X(t,k);let $={},P={contents:!1};return U(k,()=>{let R=V(()=>{let _=L(s),D=F.getKeyedChildren(_),E=0;D!==void 0&&P.contents?F.reconcileKeyedChildren(D,$,t):E=1,E===1&&(F.clearKeyedItems($),Array.from(t.childNodes||[]).forEach(S=>tn(se(nn(S),W()))),t.innerHTML="",D!==void 0?D.forEach(S=>{let h=F.render(S.child);$[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 w=W(),O=U(w,n._0);X(t,w),e=O;continue;case"KeyedList":let q=n.renderItem,ee=n.keyFn,ie=n.signal,ue=W();X(t,ue);let K={},oe=De(t);return pe(oe,Nn),(()=>{for(;;){let R=oe.current;if(R===void 0)return;let _=g(R);if(!tt(_,Ke))if(ze(_,Bn)){Z(oe);return}else return;let D=se(kt(_),"");Z(oe);let v=nt(oe,zn).find(S=>S.nodeType===1);if(v!==void 0){let S=re(ie),h=se(S.find(T=>ee(T)===D),{});K[D]={key:D,item:h,element:g(v)}}}})(),U(ue,()=>{let R=document.createComment(" keyed-list-start "),_=document.createComment(" keyed-list-end "),D=t.firstChild;D==null?t.appendChild(R):t.insertBefore(R,D),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 m=[],A={};S.forEach(p=>{let x=ee(p),b=K[x];if(b!==void 0){if(b.item!==p){A[x]=!0;let At=q(p),lt=F.render(At),it={key:x,item:p,element:lt};m.push(it),K[x]=it;return}m.push(b);return}let C=q(p),Pe=F.render(C),rt={key:x,item:p,element:Pe};m.push(rt),K[x]=rt});let j={contents:R.nextSibling};m.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}se(A[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=V(()=>{E()},void 0);H(ue,v)})}}}function be(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,i=n.events,u=n.attrs,a=Z(t);if(a===void 0)return wt("Missing DOM element for Element node");let c=g(a),f=W();return X(c,f),U(f,()=>{u.forEach(v=>{let S=v[1],h=v[0];switch(S.TAG){case"Static":return;case"SignalValue":let T=S._0,m=V(()=>{me(c,h,L(T))},void 0);return H(f,m);case"Compute":let A=S._0,j=V(()=>{me(c,h,A())},void 0);return H(f,j)}}),i.forEach(v=>{c.addEventListener(v[0],v[1])});let E=De(c);r.forEach(v=>be(v,E))});case"Text":Z(t);return;case"SignalText":let l=n._0;pe(t,Cl);let s=Z(t);if(s===void 0)return wt("Missing text node for SignalText");let k=g(s),$=W();X(k,$),U($,()=>{let E=V(()=>{k.textContent=L(l)},void 0);H($,E)}),pe(t,Pl);return;case"Fragment":n._0.forEach(E=>be(E,t));return;case"SignalFragment":let P=n._0;pe(t,Ml);let w=nt(t,Rl),O=document.createElement("div");O.setAttribute("style","display: contents");let q=w[0],ee=q!==void 0?q.parentNode:void 0;w.forEach(E=>{O.appendChild(E)});let ie=t.current;if(ee!==void 0){let E=g(ee);ie!==void 0?E.insertBefore(O,g(ie)):E.appendChild(O)}let ue=W();X(O,ue);let K={},oe={contents:!1};return U(ue,()=>{let E=V(()=>{let v=L(P),S=F.getKeyedChildren(v),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(m=>{let A=F.render(m.child);K[m.key]={key:m.key,item:m.identity,element:A},O.appendChild(A)}):v.forEach(m=>{let A=F.render(m);O.appendChild(A)}),oe.contents=!0)},void 0);H(ue,E)});case"Keyed":e=n.child;continue;case"LazyComponent":pe(t,Nl);let Ce=n._0();be(Ce,t),pe(t,Bl);return;case"KeyedList":let R=n.keyFn,_=n.signal;return pe(t,Nn),(()=>{for(;;){let E=t.current;if(E===void 0)return;let v=g(E);if(!tt(v,Ke))if(ze(v,Bn)){Z(t);return}else return;let S=se(kt(v),"");Z(t);let T=nt(t,zn).find(m=>m.nodeType===1);if(T!==void 0){let m=re(_),A=se(m.find(j=>R(j)===S),{});g(T)}}})()}}}function er(e,t,n){let r=n!==void 0?n:{},i=e(),u=De(t),a=u.current;a!==void 0&&tt(g(a),"xote-root:")&&Z(u),be(i,u),window.__XOTE_HYDRATED__=!0;let c=r.onHydrated;if(c!==void 0)return c()}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:wi,HydrationMismatch:Ai,Markers:void 0,Reactivity:void 0,hydrate:er,hydrateById:Ci,hydrateNode:Di,hydrateNodeWithWalker:be,logHydrationWarning:wt},Symbol.toStringTag,{value:"Module"}));M.Computed=Br,M.Effect=kr,M.Html=ul,M.Hydration=Pi,M.Node=Xr,M.Prop=fl,M.ReactiveProp=sl,M.Route=hl,M.Router=Tl,M.SSR=Hl,M.SSRContext=Xl,M.SSRState=Ei,M.Signal=Fr,M.View=Ur,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": "
|
|
3
|
+
"version": "7.0.0",
|
|
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":
|
|
23
|
-
|
|
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":
|
|
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": "^
|
|
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
|
+
}
|
package/src/Mdx.res.mjs
ADDED
|
@@ -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
|
|
288
|
-
|
|
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
|
|
306
|
-
|
|
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(
|
|
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",
|
|
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(
|
|
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",
|
|
502
|
+
~attrs=Array.concat(propsToAttrs(props), [View.attr("href", targetToHref(target))]),
|
|
449
503
|
~events=[("click", handleClick)],
|
|
450
504
|
~children=getChildren(props),
|
|
451
505
|
(),
|