xote 6.0.0 → 6.1.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 +34 -192
- package/dist/xote.cjs +9 -9
- package/dist/xote.mjs +361 -351
- package/dist/xote.umd.js +8 -8
- package/package.json +12 -1
- package/src/Hydration.res +0 -1
- package/src/Node.res +11 -2
- package/src/Node.res.mjs +5 -0
- package/src/ReactiveProp.res +0 -1
- package/src/Router.res +7 -1
- package/src/SSR.res +6 -3
- package/src/SSR.res.mjs +5 -0
- package/src/SSRState.res +0 -1
- package/src/XoteJSX.res +93 -2
- package/src/XoteJSX.res.mjs +15 -0
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(x,oe){typeof exports=="object"&&typeof module<"u"?oe(exports):typeof define=="function"&&define.amd?define(["exports"],oe):(x=typeof globalThis<"u"?globalThis:x||self,oe(x.xote={}))})(this,(function(x){"use strict";let oe={contents:0};function De(){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 Dn(e){e.flags=e.flags&-3}function ht(e){return(e.flags&1)!==0}function On(e){e.flags=e.flags|1}function We(e){e.flags=e.flags&-2}function Cn(e){e.flags=e.flags&-3}function Oe(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 C={contents:void 0},N={contents:void 0},ee=[],ae=[],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=C.contents;if(t!==void 0)return Pn(t,e);let n=N.contents;if(n!==void 0)return Mn(n,e)}function Ln(e,t){return e.level-t.level|0}function Gn(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&&(Oe(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&&(Oe(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=C.contents;C.contents=e;try{let r=e.compute;r!==void 0&&r(),We(e),C.contents=n}catch(r){throw C.contents=n,r}if(t===0){e.level=bt(e);return}}function Nn(e){let t=e.level;yt(e),Dn(e);let n=N.contents;N.contents=e;try{e.run(),ft(e),N.contents=n}catch(r){throw N.contents=n,r}if(t===0){e.level=Et(e);return}}function wt(){te.contents=!0;try{for(;ee.length!==0||ae.length!==0;){if(ae.length!==0){ae.sort(Gn);let e=ae.slice();_t(ae),e.forEach(Fn)}if(ee.length!==0){ee.sort(Ln);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;Oe(l)?ht(l)||(On(l),je.push(l)):jn(r.observer),n=r.nextSub}}}}if((ee.length!==0||ae.length!==0)&&!te.contents)return wt()}function Tt(e){if(!(Oe(e)&&ht(e)))return;let t=e.level;Ve(e);let n=C.contents;C.contents=e;try{let r=e.compute;r!==void 0&&r(),We(e),C.contents=n}catch(r){throw C.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||ae.length!==0)&&wt()),n}catch(n){throw t||(te.contents=!1),n}}function In(e){let t=C.contents,n=N.contents;C.contents=void 0,N.contents=void 0;try{let r=e();return C.contents=t,N.contents=n,r}catch(r){throw C.contents=t,N.contents=n,r}}function vt(e,t){let n=De(),r={contents:void 0},i=An(n,"Effect",()=>{let y=r.contents;y!==void 0&&y(),r.contents=e()},t,void 0),u=N.contents;N.contents=i;try{i.run(),ft(i),N.contents=u}catch(y){throw N.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 P=vt;const Wn=Object.freeze(Object.defineProperty({__proto__:null,run:Kn,runWithDisposer:P},Symbol.toStringTag,{value:"Module"}));function de(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 de(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 de(t(h(e)))}function J(e,t){return e!==void 0?h(e):t}function Xe(e){return e!==void 0}function Hn(e,t,n){return{id:De(),value:e,equals:J(n,(l,i)=>l===i),name:t,subs:st()}}function Xn(e,t){return{id:De(),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,k=qn,X=Un,ce=$t;const er=Object.freeze(Object.defineProperty({__proto__:null,batch:Jn,get:k,make:qe,makeForComputed:Zn,peek:X,set:ce,untrack:Qn,update:Yn},Symbol.toStringTag,{value:"Module"}));function Ue(e,t){delete e[t]}function tr(e,t){let n=De(),r={contents:void 0},i=$n(()=>{r.contents.value=e()}),u=C.contents;C.contents=i;let o=e();C.contents=u;let s={id:n,value:o,equals:(y,j)=>!1,name:t,subs:i};return r.contents=s,We(i),s}function nr(e){Ve(e.subs)}let Q=tr,At=nr;const rr=Object.freeze(Object.defineProperty({__proto__:null,dispose:At,make:Q},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"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 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 Dt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(At)}function ge(e,t){e.__xote_owner__=t}function Ot(e){return He(e.__xote_owner__)}let c={currentOwner:Me,createOwner:lr,runWithOwner:me,addDisposer:pe,disposeOwner:Dt,setOwner:ge,getOwner:Ot};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=Ot(e);t!==void 0&&Dt(t),Array.from(e.childNodes||[]).forEach(ve)}function Z(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],A=d[0];switch(m.TAG){case"Static":return we(i,A,m._0);case"SignalValue":let O=m._0;we(i,A,X(O));let G=P(()=>{we(i,A,k(O))},void 0);return pe(u,G);case"Compute":let p=m._0,_=P(()=>{we(i,A,p())},void 0);return pe(u,_)}}),n.forEach(d=>{i.addEventListener(d[0],d[1])}),t.forEach(d=>{let m=Z(d);i.appendChild(m)})}),i;case"Text":return document.createTextNode(e._0);case"SignalText":let o=e._0,s=document.createTextNode(X(o)),y={disposers:[],computeds:[]};return ge(s,y),me(y,()=>{let d=P(()=>{s.textContent=k(o)},void 0);pe(y,d)}),s;case"Fragment":let j=document.createDocumentFragment();return e._0.forEach(d=>{let m=Z(d);j.appendChild(m)}),j;case"SignalFragment":let I=e._0,K={disposers:[],computeds:[]},M=document.createElement("div");return M.setAttribute("style","display: contents"),ge(M,K),me(K,()=>{let d=P(()=>{let m=k(I);Array.from(M.childNodes||[]).forEach(ve),M.innerHTML="",m.forEach(O=>{let G=Z(O);M.appendChild(G)})},void 0);pe(K,d)}),M;case"LazyComponent":let D={disposers:[],computeds:[]},U=me(D,e._0),V=Z(U);return ge(V,D),V;case"KeyedList":let H=e.renderItem,R=e.keyFn,Y=e.signal,be={disposers:[],computeds:[]},$=document.createComment(" keyed-list-start "),b=document.createComment(" keyed-list-end ");ge($,be);let f={},E=()=>{let d=b.parentNode;if(d==null)return;let m=k(Y),A={};m.forEach(g=>{A[R(g)]=g});let O=[];Object.keys(f).forEach(g=>{if(A[g]===void 0){O.push(g);return}}),O.forEach(g=>{let v=f[g];if(v!==void 0){ve(v.element),v.element.remove(),Ue(f,g);return}});let G=[],p={};m.forEach(g=>{let v=R(g),Ee=f[v];if(Ee!==void 0){if(Ee.item!==g){p[v]=!0;let Ke=H(g),Bi=Z(Ke),vn={key:v,item:g,element:Bi};G.push(vn),f[v]=vn;return}G.push(Ee);return}let Be=H(g),ct=Z(Be),Ie={key:v,item:g,element:ct};G.push(Ie),f[v]=Ie});let _={contents:$.nextSibling};G.forEach(g=>{let v=_.contents;if(v==null){d.insertBefore(g.element,b);return}if(v===b){d.insertBefore(g.element,b);return}if(v===g.element){_.contents=v.nextSibling;return}J(p[g.key],!1)?(ve(v),d.replaceChild(g.element,v),_.contents=g.element.nextSibling):(d.insertBefore(g.element,v),_.contents=g.element.nextSibling)})},T=document.createDocumentFragment();return T.appendChild($),X(Y).forEach(d=>{let m=R(d),A=H(d),O=Z(A),G={key:m,item:d,element:O};f[m]=G,T.appendChild(O)}),T.appendChild(b),me(be,()=>{let d=P(()=>{E()},void 0);pe(be,d)}),T}}let ne={disposeElement:ve,render:Z};function Mt(e){return{TAG:"Text",_0:e}}function or(e){return{TAG:"SignalText",_0:Q(e,void 0)}}function ar(e){return{TAG:"SignalText",_0:Q(()=>e().toString(),void 0)}}function dr(e){return{TAG:"SignalText",_0:Q(()=>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:Q(()=>k(e).map(t),void 0)}}function hr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function W(e,t,n,r,l){let i=t!==void 0?t:[].map(s=>s),u=n!==void 0?n:[].map(s=>s),o=r!==void 0?r:[].map(s=>s);return{TAG:"Element",tag:e,attrs:i,events:u,children:o}}function mr(){return{TAG:"Text",_0:""}}function Rt(e,t){let n=Z(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,q=Ct,se=jt,Re=Pt;const yr=Object.freeze(Object.defineProperty({__proto__:null,$$null:mr,Attributes:ur,DOM:Te,Reactivity:c,Render:ne,attr:q,computedAttr:Re,element:W,float:sr,fragment:Ye,int:cr,isSvgTag:ir,keyedList:hr,list:fr,mount:Rt,mountById:pr,signalAttr:se,signalFloat:dr,signalFragment:Je,signalInt:ar,signalText:or,svgNamespace:xt,svgTagSet:gr,svgTags:kt,text:Mt},Symbol.toStringTag,{value:"Module"}));function Sr(e,t,n,r){return W("div",e,t,n)}function _r(e,t,n,r){return W("span",e,t,n)}function br(e,t,n,r){return W("button",e,t,n)}function Er(e,t,n){return W("input",e,t,void 0)}function wr(e,t,n,r){return W("h1",e,t,n)}function Tr(e,t,n,r){return W("h2",e,t,n)}function vr(e,t,n,r){return W("h3",e,t,n)}function $r(e,t,n,r){return W("p",e,t,n)}function Ar(e,t,n,r){return W("ul",e,t,n)}function xr(e,t,n,r){return W("li",e,t,n)}function Qe(e,t,n,r){return W("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 Lt(e,t){return{TAG:"LazyComponent",_0:()=>e(t)}}function Gt(e,t,n,r){return{TAG:"LazyComponent",_0:()=>e(t)}}function Dr(e){let t=e.children;return t!==void 0?t:Ye([])}let Or=Ye;function Cr(){return Mt("")}function Ze(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function S(e,t){return Ze(t)?t.TAG==="Reactive"?se(e,t._0):q(e,t._0):typeof t=="function"?Re(e,t):typeof t=="object"?se(e,t):q(e,t)}function F(e,t){if(Ze(t)){if(t.TAG!=="Reactive")return q(e,t._0?"true":"false");let r=t._0,l=Q(()=>k(r)?"true":"false",void 0);return se(e,l)}if(typeof t=="function")return Re(e,()=>t()?"true":"false");if(typeof t!="object")return q(e,t?"true":"false");let n=Q(()=>k(t)?"true":"false",void 0);return se(e,n)}function a(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(q(n,t.toString()));return}}function Ft(e){let t=[];a(t,e.id,"id",S),a(t,e.class,"class",S),a(t,e.style,"style",S),a(t,e.title,"title",S),a(t,e.type,"type",S),a(t,e.name,"name",S),a(t,e.value,"value",S),a(t,e.placeholder,"placeholder",S),a(t,e.disabled,"disabled",F),a(t,e.checked,"checked",F),a(t,e.required,"required",F),a(t,e.readOnly,"readonly",F),ye(t,e.maxLength,"maxlength"),ye(t,e.minLength,"minlength"),a(t,e.min,"min",S),a(t,e.max,"max",S),a(t,e.step,"step",S),a(t,e.pattern,"pattern",S),a(t,e.autoComplete,"autocomplete",S),a(t,e.multiple,"multiple",F),a(t,e.accept,"accept",S),ye(t,e.rows,"rows"),ye(t,e.cols,"cols"),a(t,e.autofocus,"autofocus",F),a(t,e.action,"action",S),a(t,e.method,"method",S),a(t,e.for,"for",S),a(t,e.href,"href",S),a(t,e.target,"target",S),a(t,e.src,"src",S),a(t,e.alt,"alt",S),a(t,e.width,"width",S),a(t,e.height,"height",S),a(t,e.draggable,"draggable",F),a(t,e.hidden,"hidden",F),a(t,e.contentEditable,"contenteditable",F),a(t,e.spellcheck,"spellcheck",F),a(t,e.role,"role",S),ye(t,e.tabIndex,"tabindex"),a(t,e["aria-label"],"aria-label",S),a(t,e["aria-hidden"],"aria-hidden",F),a(t,e["aria-expanded"],"aria-expanded",F),a(t,e["aria-selected"],"aria-selected",F);let n=e.data;return n!==void 0&&Object.entries(n).forEach(([r,l])=>{t.push(S("data-"+r,l))}),t}function w(e,t,n){if(t!==void 0){e.push([n,h(t)]);return}}function Nt(e){let t=[];return w(t,e.onClick,"click"),w(t,e.onInput,"input"),w(t,e.onChange,"change"),w(t,e.onSubmit,"submit"),w(t,e.onFocus,"focus"),w(t,e.onBlur,"blur"),w(t,e.onKeyDown,"keydown"),w(t,e.onKeyUp,"keyup"),w(t,e.onMouseEnter,"mouseenter"),w(t,e.onMouseLeave,"mouseleave"),w(t,e.onMouseDown,"mousedown"),w(t,e.onMouseMove,"mousemove"),w(t,e.onMouseUp,"mouseup"),w(t,e.onContextMenu,"contextmenu"),w(t,e.onDrag,"drag"),w(t,e.onDragStart,"dragstart"),w(t,e.onDragEnd,"dragend"),w(t,e.onDragOver,"dragover"),w(t,e.onDragEnter,"dragenter"),w(t,e.onDragLeave,"dragleave"),w(t,e.onDrop,"drop"),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:S,convertBoolAttrValue:F,addAttr:a,addIntAttr:ye,propsToAttrs:Ft,addEvent:w,propsToEvents:Nt,getChildren:zt,createElement:et,jsx:Bt,jsxs:Bt,jsxKeyed:It,jsxsKeyed:It},ReactiveProp:void 0,array:Or,jsx:Lt,jsxFragment:Dr,jsxKeyed:Gt,jsxs:Lt,jsxsKeyed:Gt},Symbol.toStringTag,{value:"Module"}));function Pr(e){return e.TAG==="Reactive"?k(e._0):e._0}function Mr(e){return{TAG:"Static",_0:e}}function Rr(e){return{TAG:"Reactive",_0:e}}const Lr=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 Gr(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 z(){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 z().location}function Br(){return z().basePath}function fe(e){if(!z().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=z().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function $e(e){let t=z().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 Le(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=z(),l=nt(n);if(r.basePath.contents=l,ce(r.location,it()),r.initialized)return;let i=u=>{ce(z().location,it());let o=window["history.state"];if(o==null)return;let s=Ut(o);if(s!==void 0)return Le(s[0],s[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:"",s=r!==void 0?r:"",y=z(),j=nt(i);y.basePath.contents=j,ce(y.location,{pathname:u,search:o,hash:s}),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},s=$e(e)+l+i;window.history.pushState(rt(),"",s),ce(z().location,u),Le(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},s=$e(e)+l+i;window.history.replaceState(rt(),"",s),ce(z().location,u),Le(0,0)}function Vr(e,t){return fe("Router.route()"),Je(Q(()=>{let n=k(z().location),r=tt(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Hr(e){return fe("Router.routes()"),Je(Q(()=>{let t=k(z().location),n=Gr(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([q("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):q(e,t._0):typeof t=="function"?Re(e,t):typeof t=="object"?se(e,t):q(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 Ge(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([q("href",$e(e.to))]),[["click",t]],Zt(e))}function en(e,t,n){return Ge(e)}const qr=Object.freeze(Object.defineProperty({__proto__:null,Link:{ReactiveProp:void 0,isReactiveProp:Jt,convertAttrValue:Se,propsToAttrs:Qt,getChildren:Zt,make:Ge,jsx:Ge,jsxs:Ge,jsxKeyed:en,jsxsKeyed:en},Route:void 0,addBasePath:$e,basePath:Br,emptyHistoryState:rt,getCurrentLocation:it,getGlobalState:z,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:Le,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-->",an="<!--/kl-->";function dn(e){return"<!--k:"+e+"-->"}let cn="<!--/k-->",sn="<!--lc-->",fn="<!--/lc-->",Yr={signalTextStart:nn,signalTextEnd:rn,signalFragmentStart:ln,signalFragmentEnd:un,keyedListStart:on,keyedListEnd:an,keyedItemStart:dn,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=X(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+'="'+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=X(e._0);return nn+re(l)+rn;case"Fragment":return e._0.map(ie).join("");case"SignalFragment":let u=X(e._0).map(ie).join("");return ln+u+un;case"LazyComponent":let o=e._0();return sn+ie(o)+fn;case"KeyedList":let s=e.renderItem,y=e.keyFn,I=X(e.signal).map(K=>{let M=y(K),D=ie(s(K));return dn(M)+D+cn}).join("");return on+I+an}}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:"",s=t!==void 0?t:"",y=n!==void 0?n:[],j=r!==void 0?r:[],I=l!==void 0?l:"",K=pn(u),M=gn(i),D=j.map(V=>'<link rel="stylesheet" href="'+re(V)+'" />').join(`
|
|
2
|
+
`),U=y.map(V=>{let H=i!==void 0?' nonce="'+re(i)+'"':"";return'<script type="module" src="'+re(V)+'"'+H+"><\/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
|
-
`+
|
|
8
|
+
`+D+`
|
|
9
9
|
`+o+`
|
|
10
10
|
</head>
|
|
11
|
-
<body`+(
|
|
12
|
-
<div id="root">`+
|
|
13
|
-
`+
|
|
11
|
+
<body`+(s!==""?" "+s:"")+`>
|
|
12
|
+
<div id="root">`+K+`</div>
|
|
13
|
+
`+I+`
|
|
14
14
|
`+M+`
|
|
15
|
-
`+
|
|
15
|
+
`+U+`
|
|
16
16
|
</body>
|
|
17
|
-
</html>`}const ei=Object.freeze(Object.defineProperty({__proto__:null,Attributes:Jr,Html:tn,Markers:Yr,generateHydrationScript:gn,renderDocument:Zr,renderNodeToString:ie,renderToString:pn,renderToStringWithRoot:Qr},Symbol.toStringTag,{value:"Module"}));let Ae=typeof document>"u",Fe=!Ae;function ti(e){if(Ae)return
|
|
17
|
+
</html>`}const ei=Object.freeze(Object.defineProperty({__proto__:null,Attributes:Jr,Html:tn,Markers:Yr,generateHydrationScript:gn,renderDocument:Zr,renderNodeToString:ie,renderToString:pn,renderToStringWithRoot:Qr},Symbol.toStringTag,{value:"Module"}));let Ae=typeof document>"u",Fe=!Ae;function ti(e){if(Ae)return de(e())}function ni(e){if(Fe)return de(e())}function yn(e,t){return Ae?e():t()}const ri=Object.freeze(Object.defineProperty({__proto__:null,isClient:Fe,isServer:Ae,match:yn,onClient:ni,onServer:ti},Symbol.toStringTag,{value:"Module"}));function ii(e){if(typeof e=="boolean")return e}function li(e){if(e===null)return null}function ui(e){if(typeof e=="string")return e}function oi(e){if(typeof e=="number")return e}function ai(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function di(e){if(Array.isArray(e))return e}let he={bool:ii,$$null:li,string:ui,float:oi,object:ai,array:di};function ci(e){return e}function si(e){let t=he.float(e);if(t!==void 0)return t|0}let fi={encode:ci,decode:si};function hi(e){return e}function mi(e){return he.float(e)}let pi={encode:hi,decode:mi};function gi(e){return e}function yi(e){return he.string(e)}let Si={encode:gi,decode:yi};function _i(e){return e}function bi(e){return he.bool(e)}let Ei={encode:_i,decode:bi};function wi(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=he.array(t);if(n===void 0)return;let r=Kt(n,e.decode);if(r.length===n.length)return r}}}function Ti(e){return{encode:t=>t!==void 0?e.encode(h(t)):null,decode:t=>Xe(he.$$null(t))?de(void 0):Vn(e.decode(t),n=>de(n))}}function vi(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],u=e.decode(l),o=t.decode(i);if(u!==void 0&&o!==void 0)return[h(u),h(o)]}}}function $i(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],u=l[1],o=l[2],s=e.decode(i),y=t.decode(u),j=n.decode(o);if(s!==void 0&&y!==void 0&&j!==void 0)return[h(s),h(y),h(j)]}}}function Ai(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=he.object(t);if(n===void 0)return;let r={},l={contents:!0};if(Object.entries(n).forEach(i=>{let u=e.decode(i[1]);u!==void 0?r[i[0]]=h(u):l.contents=!1}),l.contents)return r}}}function xi(e,t){return{encode:e,decode:t}}let ki={int:fi,float:pi,string:Si,bool:Ei,array:wi,option:Ti,tuple2:vi,tuple3:$i,dict:Ai,make:xi},xe={};function Sn(e,t,n){if(Ae){xe[e]=n.encode(X(t));return}}function Di(){Object.keys(xe).forEach(e=>{Ue(xe,e)})}function _n(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function Oi(e){let t=J(JSON.stringify(xe),"{}"),n=_n(t);return"<script"+(e!==void 0?' nonce="'+tn.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function bn(){return Fe?window.__XOTE_STATE__||{}:{}}function En(e,t,n){if(!Fe)return;let l=bn()[e];if(l===void 0)return;let i=n.decode(l);if(i!==void 0)return ce(t,h(i))}function wn(e,t,n){yn(()=>Sn(e,t,n),()=>En(e,t,n))}function Ci(e,t,n){let r=qe(t,void 0,void 0);return wn(e,r,n),r}const ji=Object.freeze(Object.defineProperty({__proto__:null,Codec:ki,clear:Di,escapeForScript:_n,generateScript:Oi,getClientState:bn,make:Ci,register:Sn,registry:xe,restore:En,sync:wn},Symbol.toStringTag,{value:"Module"}));let ot={};function Pi(e){let t=ot[e];if(t!==void 0){let n=t+1|0;return ot[e]=n,e+("/"+n)}return ot[e]=1,e}function Mi(e){return Array.from(e.childNodes||[])}function ke(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function Ne(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function at(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function _e(e){return{current:He(e.firstChild),parent:e}}function Ri(e){return e.current}function B(e){let t=e.current;return t!==void 0&&(e.current=He(h(t).nextSibling)),t}function le(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let l=h(r);if(ke(l,t))return B(e),de(l);B(e)}})()}function ze(e,t){let n=[];return(()=>{for(;;){let l=e.current;if(l===void 0)return;let i=h(l);if(ke(i,t)){B(e);return}n.push(i),B(e)}})(),n}let Li={elementNode:1,textNode:3,commentNode:8,getChildNodes:Mi,isMarker:ke,isMarkerPrefix:Ne,extractKey:at,make:_e,peek:Ri,next:B,skipUntilMarker:le,collectUntilMarker:ze},Gi=Pi("Hydration-Xote.HydrationMismatch");function dt(e){console.warn("[Xote Hydration] "+e)}function Fi(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,l=n.events,i=n.attrs,u=c.createOwner();return c.setOwner(t,u),c.runWithOwner(u,()=>{i.forEach(b=>{let f=b[1],E=b[0];switch(f.TAG){case"Static":return;case"SignalValue":let T=f._0,L=P(()=>{Te.setAttrOrProp(t,E,k(T))},void 0);return c.addDisposer(u,L);case"Compute":let d=f._0,m=P(()=>{Te.setAttrOrProp(t,E,d())},void 0);return c.addDisposer(u,m)}}),l.forEach(b=>{t.addEventListener(b[0],b[1])});let $=_e(t);r.forEach(b=>ue(b,$))});case"Text":return;case"SignalText":let o=n._0,s=c.createOwner();return c.setOwner(t,s),c.runWithOwner(s,()=>{let $=P(()=>{t.textContent=k(o)},void 0);c.addDisposer(s,$)});case"Fragment":let y=_e(t);n._0.forEach($=>ue($,y));return;case"SignalFragment":let j=n._0,I=c.createOwner();return c.setOwner(t,I),c.runWithOwner(I,()=>{let $=P(()=>{let b=k(j);Array.from(t.childNodes||[]).forEach(E=>c.disposeOwner(J(c.getOwner(E),c.createOwner()))),t.innerHTML="",b.forEach(E=>{let T=ne.render(E);t.appendChild(T)})},void 0);c.addDisposer(I,$)});case"LazyComponent":let K=c.createOwner(),M=c.runWithOwner(K,n._0);c.setOwner(t,K),e=M;continue;case"KeyedList":let D=n.renderItem,U=n.keyFn,V=n.signal,H=c.createOwner();c.setOwner(t,H);let R={},Y=_e(t);return le(Y,"kl"),(()=>{for(;;){let $=Y.current;if($===void 0)return;let b=h($);if(!Ne(b,"k:"))if(ke(b,"/kl")){B(Y);return}else return;let f=J(at(b),"");B(Y);let T=ze(Y,"/k").find(L=>L.nodeType===1);if(T!==void 0){let L=X(V),d=J(L.find(m=>U(m)===f),{});R[f]={key:f,item:d,element:h(T)}}}})(),c.runWithOwner(H,()=>{let $=document.createComment(" keyed-list-start "),b=document.createComment(" keyed-list-end "),f=t.firstChild;f==null?t.appendChild($):t.insertBefore($,f),t.appendChild(b);let E=()=>{let L=k(V),d={};L.forEach(p=>{d[U(p)]=p});let m=[];Object.keys(R).forEach(p=>{if(d[p]===void 0){m.push(p);return}}),m.forEach(p=>{let _=R[p];if(_!==void 0){ne.disposeElement(_.element),_.element.remove(),Ue(R,p);return}});let A=[],O={};L.forEach(p=>{let _=U(p),g=R[_];if(g!==void 0){if(g.item!==p){O[_]=!0;let ct=D(p),Ie=ne.render(ct),Ke={key:_,item:p,element:Ie};A.push(Ke),R[_]=Ke;return}A.push(g);return}let v=D(p),Ee=ne.render(v),Be={key:_,item:p,element:Ee};A.push(Be),R[_]=Be});let G={contents:$.nextSibling};A.forEach(p=>{let _=G.contents;if(_==null){t.insertBefore(p.element,b);return}if(_===b){t.insertBefore(p.element,b);return}if(_===p.element){G.contents=_.nextSibling;return}J(O[p.key],!1)?(ne.disposeElement(_),t.replaceChild(p.element,_),G.contents=p.element.nextSibling):(t.insertBefore(p.element,_),G.contents=p.element.nextSibling)})},T=P(()=>{E()},void 0);c.addDisposer(H,T)})}}}function ue(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,l=e.attrs,i=B(t);if(i===void 0)return dt("Missing DOM element for Element node");let u=h(i),o=c.createOwner();return c.setOwner(u,o),c.runWithOwner(o,()=>{l.forEach(E=>{let T=E[1],L=E[0];switch(T.TAG){case"Static":return;case"SignalValue":let d=T._0,m=P(()=>{Te.setAttrOrProp(u,L,k(d))},void 0);return c.addDisposer(o,m);case"Compute":let A=T._0,O=P(()=>{Te.setAttrOrProp(u,L,A())},void 0);return c.addDisposer(o,O)}}),r.forEach(E=>{u.addEventListener(E[0],E[1])});let f=_e(u);n.forEach(E=>ue(E,f))});case"Text":B(t);return;case"SignalText":let s=e._0;le(t,"$");let y=B(t);if(y===void 0)return dt("Missing text node for SignalText");let j=h(y),I=c.createOwner();c.setOwner(j,I),c.runWithOwner(I,()=>{let f=P(()=>{j.textContent=k(s)},void 0);c.addDisposer(I,f)}),le(t,"/$");return;case"Fragment":e._0.forEach(f=>ue(f,t));return;case"SignalFragment":let K=e._0;le(t,"#");let M=ze(t,"/#"),D=document.createElement("div");D.setAttribute("style","display: contents");let U=M[0],V=U!==void 0?U.parentNode:void 0;M.forEach(f=>{D.appendChild(f)});let H=t.current;if(V!==void 0){let f=h(V);H!==void 0?f.insertBefore(D,h(H)):f.appendChild(D)}let R=c.createOwner();return c.setOwner(D,R),c.runWithOwner(R,()=>{let f=P(()=>{let E=k(K);Array.from(D.childNodes||[]).forEach(ne.disposeElement),D.innerHTML="",E.forEach(L=>{let d=ne.render(L);D.appendChild(d)})},void 0);c.addDisposer(R,f)});case"LazyComponent":le(t,"lc");let Y=e._0();ue(Y,t),le(t,"/lc");return;case"KeyedList":let be=e.keyFn,$=e.signal;return le(t,"kl"),(()=>{for(;;){let f=t.current;if(f===void 0)return;let E=h(f);if(!Ne(E,"k:"))if(ke(E,"/kl")){B(t);return}else return;let T=J(at(E),"");B(t);let d=ze(t,"/k").find(m=>m.nodeType===1);if(d!==void 0){let m=X($),A=J(m.find(O=>be(O)===T),{});h(d)}}})()}}function Tn(e,t,n){let r=n!==void 0?n:{},l=e(),i=_e(t),u=i.current;u!==void 0&&Ne(h(u),"xote-root:")&&B(i),ue(l,i),window.__XOTE_HYDRATED__=!0;let o=r.onHydrated;if(o!==void 0)return o()}function Ni(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 Tn(e,l,r)}const zi=Object.freeze(Object.defineProperty({__proto__:null,DOM:void 0,DOMWalker:Li,HydrationMismatch:Gi,Reactivity:void 0,hydrate:Tn,hydrateById:Ni,hydrateNode:Fi,hydrateNodeWithWalker:ue,logHydrationWarning:dt},Symbol.toStringTag,{value:"Module"}));x.Computed=rr,x.Effect=Wn,x.Html=kr,x.Hydration=zi,x.Node=yr,x.ReactiveProp=Lr,x.Route=Fr,x.Router=qr,x.SSR=ei,x.SSRContext=ri,x.SSRState=ji,x.Signal=er,x.XoteJSX=jr,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xote",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "https://github.com/brnrdog/xote"
|
|
6
6
|
},
|
|
7
7
|
"main": "./dist/xote.cjs",
|
|
8
8
|
"module": "./dist/xote.mjs",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/xote.mjs",
|
|
12
|
+
"require": "./dist/xote.cjs",
|
|
13
|
+
"default": "./dist/xote.mjs"
|
|
14
|
+
},
|
|
15
|
+
"./src/*": "./src/*",
|
|
16
|
+
"./package.json": "./package.json",
|
|
17
|
+
"./rescript.json": "./rescript.json"
|
|
18
|
+
},
|
|
9
19
|
"sideEffects": false,
|
|
10
20
|
"files": [
|
|
11
21
|
"dist",
|
|
@@ -18,6 +28,7 @@
|
|
|
18
28
|
"res:build": "rescript",
|
|
19
29
|
"res:clean": "rescript clean",
|
|
20
30
|
"res:dev": "rescript -w",
|
|
31
|
+
"format": "rescript format",
|
|
21
32
|
"dev": "vite",
|
|
22
33
|
"build": "vite build",
|
|
23
34
|
"preview": "vite preview",
|
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;
|
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
|
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/XoteJSX.res
CHANGED
|
@@ -11,8 +11,9 @@ type componentLike<'props, 'return> = 'props => 'return
|
|
|
11
11
|
* This ensures component functions (which may create effects/computeds) are not
|
|
12
12
|
* evaluated during a Computed context, which would incorrectly track their
|
|
13
13
|
* dependencies as belonging to the outer computed. */
|
|
14
|
-
let jsx = (component: component<'props>, props: 'props): element =>
|
|
15
|
-
|
|
14
|
+
let jsx = (component: component<'props>, props: 'props): element => Node.LazyComponent(
|
|
15
|
+
() => component(props),
|
|
16
|
+
)
|
|
16
17
|
|
|
17
18
|
let jsxs = jsx
|
|
18
19
|
|
|
@@ -79,11 +80,20 @@ module Elements = {
|
|
|
79
80
|
'ariaHidden,
|
|
80
81
|
'ariaExpanded,
|
|
81
82
|
'ariaSelected,
|
|
83
|
+
'draggable,
|
|
84
|
+
'hidden,
|
|
85
|
+
'title,
|
|
86
|
+
'contentEditable,
|
|
87
|
+
'spellcheck,
|
|
88
|
+
'autofocus,
|
|
89
|
+
'action,
|
|
90
|
+
'method,
|
|
82
91
|
> = {
|
|
83
92
|
/* Standard attributes - accept raw strings or ReactiveProp.t<string> */
|
|
84
93
|
id?: 'id,
|
|
85
94
|
class?: 'class,
|
|
86
95
|
style?: 'style,
|
|
96
|
+
title?: 'title,
|
|
87
97
|
/* Form/Input attributes */
|
|
88
98
|
@as("type") type_?: 'typ,
|
|
89
99
|
name?: 'name,
|
|
@@ -104,6 +114,9 @@ module Elements = {
|
|
|
104
114
|
accept?: 'accept,
|
|
105
115
|
rows?: int,
|
|
106
116
|
cols?: int,
|
|
117
|
+
autofocus?: 'autofocus,
|
|
118
|
+
action?: 'action,
|
|
119
|
+
method?: 'method,
|
|
107
120
|
/* Label attributes */
|
|
108
121
|
@as("for") for_?: 'forAttr,
|
|
109
122
|
/* Link attributes */
|
|
@@ -114,6 +127,11 @@ module Elements = {
|
|
|
114
127
|
alt?: 'alt,
|
|
115
128
|
width?: 'width,
|
|
116
129
|
height?: 'height,
|
|
130
|
+
/* Global attributes */
|
|
131
|
+
draggable?: 'draggable,
|
|
132
|
+
hidden?: 'hidden,
|
|
133
|
+
contentEditable?: 'contentEditable,
|
|
134
|
+
spellcheck?: 'spellcheck,
|
|
117
135
|
/* Accessibility attributes */
|
|
118
136
|
role?: 'role,
|
|
119
137
|
tabIndex?: int,
|
|
@@ -138,6 +156,14 @@ module Elements = {
|
|
|
138
156
|
onMouseMove?: Dom.event => unit,
|
|
139
157
|
onMouseUp?: Dom.event => unit,
|
|
140
158
|
onContextMenu?: Dom.event => unit,
|
|
159
|
+
/* Drag-and-drop event handlers */
|
|
160
|
+
onDrag?: Dom.event => unit,
|
|
161
|
+
onDragStart?: Dom.event => unit,
|
|
162
|
+
onDragEnd?: Dom.event => unit,
|
|
163
|
+
onDragOver?: Dom.event => unit,
|
|
164
|
+
onDragEnter?: Dom.event => unit,
|
|
165
|
+
onDragLeave?: Dom.event => unit,
|
|
166
|
+
onDrop?: Dom.event => unit,
|
|
141
167
|
/* Children */
|
|
142
168
|
children?: element,
|
|
143
169
|
}
|
|
@@ -249,6 +275,14 @@ module Elements = {
|
|
|
249
275
|
_,
|
|
250
276
|
_,
|
|
251
277
|
_,
|
|
278
|
+
_,
|
|
279
|
+
_,
|
|
280
|
+
_,
|
|
281
|
+
_,
|
|
282
|
+
_,
|
|
283
|
+
_,
|
|
284
|
+
_,
|
|
285
|
+
_,
|
|
252
286
|
>,
|
|
253
287
|
): array<(string, Node.attrValue)> => {
|
|
254
288
|
let attrs = []
|
|
@@ -257,6 +291,7 @@ module Elements = {
|
|
|
257
291
|
addAttr(attrs, props.id, "id", convertAttrValue)
|
|
258
292
|
addAttr(attrs, props.class, "class", convertAttrValue)
|
|
259
293
|
addAttr(attrs, props.style, "style", convertAttrValue)
|
|
294
|
+
addAttr(attrs, props.title, "title", convertAttrValue)
|
|
260
295
|
|
|
261
296
|
/* Form/Input attributes */
|
|
262
297
|
addAttr(attrs, props.type_, "type", convertAttrValue)
|
|
@@ -278,6 +313,9 @@ module Elements = {
|
|
|
278
313
|
addAttr(attrs, props.accept, "accept", convertAttrValue)
|
|
279
314
|
addIntAttr(attrs, props.rows, "rows")
|
|
280
315
|
addIntAttr(attrs, props.cols, "cols")
|
|
316
|
+
addAttr(attrs, props.autofocus, "autofocus", convertBoolAttrValue)
|
|
317
|
+
addAttr(attrs, props.action, "action", convertAttrValue)
|
|
318
|
+
addAttr(attrs, props.method, "method", convertAttrValue)
|
|
281
319
|
|
|
282
320
|
/* Label attributes */
|
|
283
321
|
addAttr(attrs, props.for_, "for", convertAttrValue)
|
|
@@ -292,6 +330,12 @@ module Elements = {
|
|
|
292
330
|
addAttr(attrs, props.width, "width", convertAttrValue)
|
|
293
331
|
addAttr(attrs, props.height, "height", convertAttrValue)
|
|
294
332
|
|
|
333
|
+
/* Global attributes */
|
|
334
|
+
addAttr(attrs, props.draggable, "draggable", convertBoolAttrValue)
|
|
335
|
+
addAttr(attrs, props.hidden, "hidden", convertBoolAttrValue)
|
|
336
|
+
addAttr(attrs, props.contentEditable, "contenteditable", convertBoolAttrValue)
|
|
337
|
+
addAttr(attrs, props.spellcheck, "spellcheck", convertBoolAttrValue)
|
|
338
|
+
|
|
295
339
|
/* Accessibility attributes */
|
|
296
340
|
addAttr(attrs, props.role, "role", convertAttrValue)
|
|
297
341
|
addIntAttr(attrs, props.tabIndex, "tabindex")
|
|
@@ -356,6 +400,14 @@ module Elements = {
|
|
|
356
400
|
_,
|
|
357
401
|
_,
|
|
358
402
|
_,
|
|
403
|
+
_,
|
|
404
|
+
_,
|
|
405
|
+
_,
|
|
406
|
+
_,
|
|
407
|
+
_,
|
|
408
|
+
_,
|
|
409
|
+
_,
|
|
410
|
+
_,
|
|
359
411
|
>,
|
|
360
412
|
): array<(string, Dom.event => unit)> => {
|
|
361
413
|
let events = []
|
|
@@ -374,6 +426,13 @@ module Elements = {
|
|
|
374
426
|
addEvent(events, props.onMouseMove, "mousemove")
|
|
375
427
|
addEvent(events, props.onMouseUp, "mouseup")
|
|
376
428
|
addEvent(events, props.onContextMenu, "contextmenu")
|
|
429
|
+
addEvent(events, props.onDrag, "drag")
|
|
430
|
+
addEvent(events, props.onDragStart, "dragstart")
|
|
431
|
+
addEvent(events, props.onDragEnd, "dragend")
|
|
432
|
+
addEvent(events, props.onDragOver, "dragover")
|
|
433
|
+
addEvent(events, props.onDragEnter, "dragenter")
|
|
434
|
+
addEvent(events, props.onDragLeave, "dragleave")
|
|
435
|
+
addEvent(events, props.onDrop, "drop")
|
|
377
436
|
|
|
378
437
|
events
|
|
379
438
|
}
|
|
@@ -411,6 +470,14 @@ module Elements = {
|
|
|
411
470
|
_,
|
|
412
471
|
_,
|
|
413
472
|
_,
|
|
473
|
+
_,
|
|
474
|
+
_,
|
|
475
|
+
_,
|
|
476
|
+
_,
|
|
477
|
+
_,
|
|
478
|
+
_,
|
|
479
|
+
_,
|
|
480
|
+
_,
|
|
414
481
|
>,
|
|
415
482
|
): array<element> => {
|
|
416
483
|
switch props.children {
|
|
@@ -454,6 +521,14 @@ module Elements = {
|
|
|
454
521
|
_,
|
|
455
522
|
_,
|
|
456
523
|
_,
|
|
524
|
+
_,
|
|
525
|
+
_,
|
|
526
|
+
_,
|
|
527
|
+
_,
|
|
528
|
+
_,
|
|
529
|
+
_,
|
|
530
|
+
_,
|
|
531
|
+
_,
|
|
457
532
|
>,
|
|
458
533
|
): element => {
|
|
459
534
|
Node.Element({
|
|
@@ -498,6 +573,14 @@ module Elements = {
|
|
|
498
573
|
_,
|
|
499
574
|
_,
|
|
500
575
|
_,
|
|
576
|
+
_,
|
|
577
|
+
_,
|
|
578
|
+
_,
|
|
579
|
+
_,
|
|
580
|
+
_,
|
|
581
|
+
_,
|
|
582
|
+
_,
|
|
583
|
+
_,
|
|
501
584
|
>,
|
|
502
585
|
): element => createElement(tag, props)
|
|
503
586
|
|
|
@@ -536,6 +619,14 @@ module Elements = {
|
|
|
536
619
|
_,
|
|
537
620
|
_,
|
|
538
621
|
_,
|
|
622
|
+
_,
|
|
623
|
+
_,
|
|
624
|
+
_,
|
|
625
|
+
_,
|
|
626
|
+
_,
|
|
627
|
+
_,
|
|
628
|
+
_,
|
|
629
|
+
_,
|
|
539
630
|
>,
|
|
540
631
|
~key: option<string>=?,
|
|
541
632
|
_: unit,
|
package/src/XoteJSX.res.mjs
CHANGED
|
@@ -110,6 +110,7 @@ function propsToAttrs(props) {
|
|
|
110
110
|
addAttr(attrs, props.id, "id", convertAttrValue);
|
|
111
111
|
addAttr(attrs, props.class, "class", convertAttrValue);
|
|
112
112
|
addAttr(attrs, props.style, "style", convertAttrValue);
|
|
113
|
+
addAttr(attrs, props.title, "title", convertAttrValue);
|
|
113
114
|
addAttr(attrs, props.type, "type", convertAttrValue);
|
|
114
115
|
addAttr(attrs, props.name, "name", convertAttrValue);
|
|
115
116
|
addAttr(attrs, props.value, "value", convertAttrValue);
|
|
@@ -129,6 +130,9 @@ function propsToAttrs(props) {
|
|
|
129
130
|
addAttr(attrs, props.accept, "accept", convertAttrValue);
|
|
130
131
|
addIntAttr(attrs, props.rows, "rows");
|
|
131
132
|
addIntAttr(attrs, props.cols, "cols");
|
|
133
|
+
addAttr(attrs, props.autofocus, "autofocus", convertBoolAttrValue);
|
|
134
|
+
addAttr(attrs, props.action, "action", convertAttrValue);
|
|
135
|
+
addAttr(attrs, props.method, "method", convertAttrValue);
|
|
132
136
|
addAttr(attrs, props.for, "for", convertAttrValue);
|
|
133
137
|
addAttr(attrs, props.href, "href", convertAttrValue);
|
|
134
138
|
addAttr(attrs, props.target, "target", convertAttrValue);
|
|
@@ -136,6 +140,10 @@ function propsToAttrs(props) {
|
|
|
136
140
|
addAttr(attrs, props.alt, "alt", convertAttrValue);
|
|
137
141
|
addAttr(attrs, props.width, "width", convertAttrValue);
|
|
138
142
|
addAttr(attrs, props.height, "height", convertAttrValue);
|
|
143
|
+
addAttr(attrs, props.draggable, "draggable", convertBoolAttrValue);
|
|
144
|
+
addAttr(attrs, props.hidden, "hidden", convertBoolAttrValue);
|
|
145
|
+
addAttr(attrs, props.contentEditable, "contenteditable", convertBoolAttrValue);
|
|
146
|
+
addAttr(attrs, props.spellcheck, "spellcheck", convertBoolAttrValue);
|
|
139
147
|
addAttr(attrs, props.role, "role", convertAttrValue);
|
|
140
148
|
addIntAttr(attrs, props.tabIndex, "tabindex");
|
|
141
149
|
addAttr(attrs, props["aria-label"], "aria-label", convertAttrValue);
|
|
@@ -177,6 +185,13 @@ function propsToEvents(props) {
|
|
|
177
185
|
addEvent(events, props.onMouseMove, "mousemove");
|
|
178
186
|
addEvent(events, props.onMouseUp, "mouseup");
|
|
179
187
|
addEvent(events, props.onContextMenu, "contextmenu");
|
|
188
|
+
addEvent(events, props.onDrag, "drag");
|
|
189
|
+
addEvent(events, props.onDragStart, "dragstart");
|
|
190
|
+
addEvent(events, props.onDragEnd, "dragend");
|
|
191
|
+
addEvent(events, props.onDragOver, "dragover");
|
|
192
|
+
addEvent(events, props.onDragEnter, "dragenter");
|
|
193
|
+
addEvent(events, props.onDragLeave, "dragleave");
|
|
194
|
+
addEvent(events, props.onDrop, "drop");
|
|
180
195
|
return events;
|
|
181
196
|
}
|
|
182
197
|
|