xote 4.6.0 → 4.7.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/dist/xote.cjs +1 -1
- package/dist/xote.mjs +136 -122
- package/dist/xote.umd.js +1 -1
- package/package.json +1 -1
- package/src/Xote__JSX.res +39 -36
- package/src/Xote__JSX.res.mjs +31 -14
- package/src/Xote__ReactiveProp.res +5 -0
- package/src/Xote__ReactiveProp.res.mjs +16 -0
package/dist/xote.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let J={contents:0};function Y(){return J.contents=J.contents+1|0,J.contents}function Pe(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 xe(e){if(e!=null)return Pe(e)}function ce(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 Z(e,t){return e!==void 0?ce(e):t}function Ge(e,t,n){return e.reduce(n,t)}function De(e,t){let n=e.length,r=new Array(n),l=0;for(let u=0;u<n;++u){let s=e[u],c=t(s);c!==void 0&&(r[l]=ce(c),l=l+1|0)}return r.length=l,r}function Fe(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}}let h=new Map,I=new Map,L=new Map,p={contents:void 0},j=new Set,O={contents:!1},v={contents:!1};function ee(e){if(I.get(e)===void 0){I.set(e,new Set);return}}function Le(e,t){let n=I.get(e);if(n!==void 0){n.forEach(t);return}}function Be(e,t){let n=I.get(e);if(n!==void 0){n.add(t);return}}function ze(e,t){let n=I.get(e);if(n!==void 0){n.delete(t);return}}function Ve(e){return Array.from(Z(I.get(e),new Set).values())}function de(e,t){let n=p.contents;p.contents=e;try{let r=t();return p.contents=n,r}catch(r){throw p.contents=n,r}}function We(e){let t=p.contents;p.contents=void 0;try{let n=e();return p.contents=t,n}catch(n){throw p.contents=t,n}}function Xe(e){let t=p.contents;return t!==void 0?t===e:!1}function qe(e){if(!O.contents){O.contents=!0;try{e(),O.contents=!1;return}catch(t){throw O.contents=!1,t}}}function Ke(e,t){ee(t);let n=Xe(e),r=h.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),Be(t,e)}function P(e){e.deps.forEach(t=>ze(t,e.id)),e.deps.clear()}function He(e){let t=L.get(e);if(t===void 0)return;L.delete(e);let n=h.get(t);if(n!==void 0){P(n),h.delete(t);return}}function ae(e){return Ge(e,0,(t,n)=>n>t?n:t)}function Ue(e){let t=[];return e.deps.forEach(n=>Le(n,r=>{if(r===e.id)return;let l=h.get(r);if(l===void 0)return;if(typeof l.kind=="object"){t.push(l.level);return}})),ae(t)+1|0}function Je(e){let t=[];return e.deps.forEach(n=>{let r=L.get(n);if(r===void 0||r===e.id)return;let l=h.get(r);if(l!==void 0){t.push(l.level);return}}),ae(t)+1|0}function W(e){return typeof e.kind=="object"?Je(e):Ue(e)}function Qe(e,t){let n=h.get(e),r=h.get(t);if(n===void 0)return r!==void 0?1:0;if(r===void 0)return-1;let u=typeof n.kind=="object"?0:1,c=typeof r.kind=="object"?0:1,d=u-c|0;return d!==0?d:n.level-r.level|0}function Ye(e){v.contents=!0,P(e),de(e.id,()=>{e.run(),v.contents=!1}),e.level=W(e)}function se(){for(;j.size>0;){let e=Array.from(j.values());j.clear(),e.sort(Qe),e.forEach(t=>{let n=h.get(t);if(n!==void 0)return Ye(n)})}}function fe(e){if(ee(e),Ve(e).forEach(t=>{let n=h.get(t);if(n===void 0)return;let r=n.kind;if(typeof r=="object")return n.dirty?void 0:(n.dirty=!0,fe(r.VAL));j.add(t)}),j.size>0)return qe(se)}function pe(e){let t=L.get(e);if(t===void 0)return;let n=h.get(t);if(n!==void 0&&n.dirty){v.contents=!0,P(n),de(t,()=>{n.run(),n.dirty=!1,v.contents=!1}),n.level=W(n);return}}function Ze(e){let t=O.contents;O.contents=!0;try{let n=e();return t||(O.contents=!1,j.size>0&&se()),n}catch(n){throw t||(O.contents=!1),n}}let et=We,tt=ee;function me(e,t,n){let r=Y();return tt(r),{id:r,value:{contents:e},version:{contents:0},equals:Z(n,(l,u)=>l===u),name:t}}function nt(e){pe(e.id);let t=p.contents;return t!==void 0&&Ke(t,e.id),e.value.contents}function rt(e){return pe(e.id),e.value.contents}function he(e,t){let n;try{n=!e.equals(e.value.contents,t)}catch{n=!0}if(n)return e.value.contents=t,e.version.contents=e.version.contents+1|0,fe(e.id)}function lt(e,t){he(e,t(e.value.contents))}let ut,it,ot=Ze,ct=et;const dt=Object.freeze(Object.defineProperty({__proto__:null,Id:ut,Scheduler:it,batch:ot,get:nt,make:me,peek:rt,set:he,untrack:ct,update:lt},Symbol.toStringTag,{value:"Module"}));function _e(e,t,n,r){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0,name:r}}function at(e,t){let n=Y(),r={contents:void 0},u=_e(n,"Effect",()=>{let d=r.contents;d!==void 0&&d(),r.contents=e()},t);h.set(n,u),v.contents=!0,P(u);let s=p.contents;p.contents=n;try{u.run(),v.contents=!1}catch(d){throw p.contents=s,v.contents=!1,d}return p.contents=s,u.level=W(u),{dispose:()=>{let d=h.get(n);if(d===void 0)return;let x=r.contents;x!==void 0&&x(),P(d),h.delete(n)}}}let st,ft,pt;const mt=Object.freeze(Object.defineProperty({__proto__:null,Id:st,Observer:ft,Scheduler:pt,run:at},Symbol.toStringTag,{value:"Module"}));function ht(e,t){let n=me(void 0,t,void 0),r=Y(),l=()=>{let c=e();n.value.contents=c},u=_e(r,{NAME:"Computed",VAL:n.id},l,void 0);h.set(r,u),v.contents=!0,P(u);let s=p.contents;p.contents=r;try{u.run(),u.dirty=!1,v.contents=!1}catch(c){throw p.contents=s,v.contents=!1,c}return p.contents=s,u.level=W(u),L.set(n.id,r),n}function _t(e){He(e.id)}let gt,St,Et,bt;const vt=Object.freeze(Object.defineProperty({__proto__:null,Id:gt,Observer:Et,Scheduler:bt,Signal:St,dispose:_t,make:ht},Symbol.toStringTag,{value:"Module"}));let o=dt,S=vt,w=mt;function ge(e){return De(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Se(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,s)=>{let c=n[s];return u.TAG==="Static"?c===u._0:(r[u._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function te(e,t){return Se(ge(e),t)}const yt=Object.freeze(Object.defineProperty({__proto__:null,match:te,matchPath:Se,parsePattern:ge},Symbol.toStringTag,{value:"Module"}));function wt(e,t){delete e[t]}function C(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 Ot={setAttrOrProp:C},V={contents:void 0};function kt(){return{disposers:[],computeds:[]}}function N(e,t){let n=V.contents;V.contents=e;let r=t();return V.contents=n,r}function M(e,t){e.disposers.push(t)}function Ee(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>S.dispose(t))}function R(e,t){e.__xote_owner__=t}function be(e){return xe(e.__xote_owner__)}let Tt={currentOwner:V,createOwner:kt,runWithOwner:N,addDisposer:M,disposeOwner:Ee,setOwner:R,getOwner:be};function ve(e,t){return[e,{TAG:"Static",_0:t}]}function ye(e,t){return[e,{TAG:"SignalValue",_0:t}]}function we(e,t){return[e,{TAG:"Compute",_0:t}]}let At={$$static:ve,signal:ye,computed:we};function F(e){let t=be(e);t!==void 0&&Ee(t),Array.from(e.childNodes||[]).forEach(F)}function y(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=document.createElement(e.tag),u={disposers:[],computeds:[]};return R(l,u),N(u,()=>{r.forEach(i=>{let m=i[1],g=i[0];switch(m.TAG){case"Static":return C(l,g,m._0);case"SignalValue":let E=m._0;C(l,g,o.peek(E));let b=w.run(()=>{C(l,g,o.get(E))},void 0);return M(u,b);case"Compute":let D=m._0;C(l,g,D());let $=w.run(()=>{C(l,g,D())},void 0);return M(u,$)}}),n.forEach(i=>{l.addEventListener(i[0],i[1])}),t.forEach(i=>{let m=y(i);l.appendChild(m)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let s=e._0,c=document.createTextNode(o.peek(s)),d={disposers:[],computeds:[]};return R(c,d),N(d,()=>{let i=w.run(()=>{c.textContent=o.get(s)},void 0);M(d,i)}),c;case"Fragment":let x=document.createDocumentFragment();return e._0.forEach(i=>{let m=y(i);x.appendChild(m)}),x;case"SignalFragment":let $e=e._0,X={disposers:[],computeds:[]},A=document.createElement("div");return A.setAttribute("style","display: contents"),R(A,X),N(X,()=>{let i=w.run(()=>{let m=o.get($e);Array.from(A.childNodes||[]).forEach(F),A.innerHTML="",m.forEach(E=>{let b=y(E);A.appendChild(b)})},void 0);M(X,i)}),A;case"LazyComponent":let re={disposers:[],computeds:[]},Ce=N(re,e._0),le=y(Ce);return R(le,re),le;case"KeyedList":let q=e.renderItem,K=e.keyFn,ue=e.signal,H={disposers:[],computeds:[]},U=document.createComment(" keyed-list-start "),G=document.createComment(" keyed-list-end ");R(U,H);let k={},Ne=()=>{let i=G.parentNode;if(i==null)return;let m=o.get(ue),g={};m.forEach(a=>{g[K(a)]=a});let E=[];Object.keys(k).forEach(a=>{if(g[a]===void 0){E.push(a);return}}),E.forEach(a=>{let f=k[a];if(f!==void 0){F(f.element),f.element.remove(),wt(k,a);return}});let b=[],D={};m.forEach(a=>{let f=K(a),z=k[f];if(z!==void 0){if(z.item!==a){D[f]=!0;let je=q(a),Ie=y(je),oe={key:f,item:a,element:Ie};b.push(oe),k[f]=oe;return}b.push(z);return}let Me=q(a),Re=y(Me),ie={key:f,item:a,element:Re};b.push(ie),k[f]=ie});let $={contents:U.nextSibling};b.forEach(a=>{let f=$.contents;if(f==null){i.insertBefore(a.element,G);return}if(f===G){i.insertBefore(a.element,G);return}if(f===a.element){$.contents=f.nextSibling;return}Z(D[a.key],!1)?(F(f),i.replaceChild(a.element,f),$.contents=a.element.nextSibling):(i.insertBefore(a.element,f),$.contents=a.element.nextSibling)})},B=document.createDocumentFragment();return B.appendChild(U),o.peek(ue).forEach(i=>{let m=K(i),g=q(i),E=y(g),b={key:m,item:i,element:E};k[m]=b,B.appendChild(E)}),B.appendChild(G),N(H,()=>{let i=w.run(()=>{Ne()},void 0);M(H,i)}),B}}let $t={disposeElement:F,render:y};function Ct(e){return{TAG:"Text",_0:e}}function Nt(e){return{TAG:"SignalText",_0:S.make(e,void 0)}}function Mt(e){return{TAG:"Fragment",_0:e}}function ne(e){return{TAG:"SignalFragment",_0:e}}function Rt(e,t){return{TAG:"SignalFragment",_0:S.make(()=>o.get(e).map(t),void 0)}}function jt(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function _(e,t,n,r,l){let u=t!==void 0?t:[].map(d=>d),s=n!==void 0?n:[].map(d=>d),c=r!==void 0?r:[].map(d=>d);return{TAG:"Element",tag:e,attrs:u,events:s,children:c}}function It(e,t,n,r){return _("div",e,t,n)}function Pt(e,t,n,r){return _("span",e,t,n)}function xt(e,t,n,r){return _("button",e,t,n)}function Gt(e,t,n){return _("input",e,t,void 0)}function Dt(e,t,n,r){return _("h1",e,t,n)}function Ft(e,t,n,r){return _("h2",e,t,n)}function Lt(e,t,n,r){return _("h3",e,t,n)}function Bt(e,t,n,r){return _("p",e,t,n)}function zt(e,t,n,r){return _("ul",e,t,n)}function Vt(e,t,n,r){return _("li",e,t,n)}function Oe(e,t,n,r){return _("a",e,t,n)}function Wt(){return{TAG:"Text",_0:""}}function ke(e,t){let n=y(e);t.appendChild(n)}function Xt(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return ke(e,n)}let Te=ve,qt=ye,Kt=we;const Ht=Object.freeze(Object.defineProperty({__proto__:null,$$null:Wt,Attributes:At,DOM:Ot,Reactivity:Tt,Render:$t,a:Oe,attr:Te,button:xt,computedAttr:Kt,div:It,element:_,fragment:Mt,h1:Dt,h2:Ft,h3:Lt,input:Gt,keyedList:jt,li:Vt,list:Rt,mount:ke,mountById:Xt,p:Bt,signalAttr:qt,signalFragment:ne,span:Pt,text:Ct,textSignal:Nt,ul:zt},Symbol.toStringTag,{value:"Module"}));let T=o.make({pathname:"/",search:"",hash:""},void 0,void 0);function Q(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Ut(){o.set(T,Q());let e=t=>o.set(T,Q());window.addEventListener("popstate",e)}function Ae(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.pushState(d,"",c),o.set(T,s)}function Jt(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.replaceState(d,"",c),o.set(T,s)}function Qt(e,t){return ne(S.make(()=>{let n=o.get(T),r=te(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Yt(e){return ne(S.make(()=>{let t=o.get(T),n=Fe(e,r=>{let l=te(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function Zt(e,t,n,r){let l=t!==void 0?t:[],u=n!==void 0?n:[],s=c=>{c.preventDefault(),Ae(e,void 0,void 0)};return Oe(l.concat([Te("href",e)]),[["click",s]],u)}let en,tn;const nn=Object.freeze(Object.defineProperty({__proto__:null,Component:en,Route:tn,getCurrentLocation:Q,init:Ut,link:Zt,location:T,push:Ae,replace:Jt,route:Qt,routes:Yt},Symbol.toStringTag,{value:"Module"}));function rn(e){return e.TAG==="Reactive"?o.get(e._0):e._0}const ln=Object.freeze(Object.defineProperty({__proto__:null,get:rn},Symbol.toStringTag,{value:"Module"}));let un=o.Id,on=o.Scheduler,cn=o.make,dn=o.get,an=o.peek,sn=o.set,fn=o.update,pn=o.batch,mn=o.untrack,hn={Id:un,Scheduler:on,make:cn,get:dn,peek:an,set:sn,update:fn,batch:pn,untrack:mn},_n=S.Id,gn=S.Signal,Sn=S.Observer,En=S.Scheduler,bn=S.make,vn=S.dispose,yn={Id:_n,Signal:gn,Observer:Sn,Scheduler:En,make:bn,dispose:vn},wn=w.Id,On=w.Observer,kn=w.Scheduler,Tn=w.run,An={Id:wn,Observer:On,Scheduler:kn,run:Tn},$n=Ht,Cn=yt,Nn=nn,Mn=ln;exports.Component=$n;exports.Computed=yn;exports.Effect=An;exports.ReactiveProp=Mn;exports.Route=Cn;exports.Router=Nn;exports.Signal=hn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let J={contents:0};function Y(){return J.contents=J.contents+1|0,J.contents}function Pe(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 xe(e){if(e!=null)return Pe(e)}function ce(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 Z(e,t){return e!==void 0?ce(e):t}function Ge(e,t,n){return e.reduce(n,t)}function De(e,t){let n=e.length,r=new Array(n),l=0;for(let u=0;u<n;++u){let s=e[u],c=t(s);c!==void 0&&(r[l]=ce(c),l=l+1|0)}return r.length=l,r}function Fe(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}}let h=new Map,I=new Map,L=new Map,p={contents:void 0},j=new Set,O={contents:!1},b={contents:!1};function ee(e){if(I.get(e)===void 0){I.set(e,new Set);return}}function Le(e,t){let n=I.get(e);if(n!==void 0){n.forEach(t);return}}function Be(e,t){let n=I.get(e);if(n!==void 0){n.add(t);return}}function ze(e,t){let n=I.get(e);if(n!==void 0){n.delete(t);return}}function Ve(e){return Array.from(Z(I.get(e),new Set).values())}function ae(e,t){let n=p.contents;p.contents=e;try{let r=t();return p.contents=n,r}catch(r){throw p.contents=n,r}}function We(e){let t=p.contents;p.contents=void 0;try{let n=e();return p.contents=t,n}catch(n){throw p.contents=t,n}}function Xe(e){let t=p.contents;return t!==void 0?t===e:!1}function qe(e){if(!O.contents){O.contents=!0;try{e(),O.contents=!1;return}catch(t){throw O.contents=!1,t}}}function Ke(e,t){ee(t);let n=Xe(e),r=h.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),Be(t,e)}function P(e){e.deps.forEach(t=>ze(t,e.id)),e.deps.clear()}function He(e){let t=L.get(e);if(t===void 0)return;L.delete(e);let n=h.get(t);if(n!==void 0){P(n),h.delete(t);return}}function de(e){return Ge(e,0,(t,n)=>n>t?n:t)}function Ue(e){let t=[];return e.deps.forEach(n=>Le(n,r=>{if(r===e.id)return;let l=h.get(r);if(l===void 0)return;if(typeof l.kind=="object"){t.push(l.level);return}})),de(t)+1|0}function Je(e){let t=[];return e.deps.forEach(n=>{let r=L.get(n);if(r===void 0||r===e.id)return;let l=h.get(r);if(l!==void 0){t.push(l.level);return}}),de(t)+1|0}function W(e){return typeof e.kind=="object"?Je(e):Ue(e)}function Qe(e,t){let n=h.get(e),r=h.get(t);if(n===void 0)return r!==void 0?1:0;if(r===void 0)return-1;let u=typeof n.kind=="object"?0:1,c=typeof r.kind=="object"?0:1,a=u-c|0;return a!==0?a:n.level-r.level|0}function Ye(e){b.contents=!0,P(e),ae(e.id,()=>{e.run(),b.contents=!1}),e.level=W(e)}function se(){for(;j.size>0;){let e=Array.from(j.values());j.clear(),e.sort(Qe),e.forEach(t=>{let n=h.get(t);if(n!==void 0)return Ye(n)})}}function fe(e){if(ee(e),Ve(e).forEach(t=>{let n=h.get(t);if(n===void 0)return;let r=n.kind;if(typeof r=="object")return n.dirty?void 0:(n.dirty=!0,fe(r.VAL));j.add(t)}),j.size>0)return qe(se)}function pe(e){let t=L.get(e);if(t===void 0)return;let n=h.get(t);if(n!==void 0&&n.dirty){b.contents=!0,P(n),ae(t,()=>{n.run(),n.dirty=!1,b.contents=!1}),n.level=W(n);return}}function Ze(e){let t=O.contents;O.contents=!0;try{let n=e();return t||(O.contents=!1,j.size>0&&se()),n}catch(n){throw t||(O.contents=!1),n}}let et=We,tt=ee;function me(e,t,n){let r=Y();return tt(r),{id:r,value:{contents:e},version:{contents:0},equals:Z(n,(l,u)=>l===u),name:t}}function nt(e){pe(e.id);let t=p.contents;return t!==void 0&&Ke(t,e.id),e.value.contents}function rt(e){return pe(e.id),e.value.contents}function he(e,t){let n;try{n=!e.equals(e.value.contents,t)}catch{n=!0}if(n)return e.value.contents=t,e.version.contents=e.version.contents+1|0,fe(e.id)}function lt(e,t){he(e,t(e.value.contents))}let ut,it,ot=Ze,ct=et;const at=Object.freeze(Object.defineProperty({__proto__:null,Id:ut,Scheduler:it,batch:ot,get:nt,make:me,peek:rt,set:he,untrack:ct,update:lt},Symbol.toStringTag,{value:"Module"}));function _e(e,t,n,r){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0,name:r}}function dt(e,t){let n=Y(),r={contents:void 0},u=_e(n,"Effect",()=>{let a=r.contents;a!==void 0&&a(),r.contents=e()},t);h.set(n,u),b.contents=!0,P(u);let s=p.contents;p.contents=n;try{u.run(),b.contents=!1}catch(a){throw p.contents=s,b.contents=!1,a}return p.contents=s,u.level=W(u),{dispose:()=>{let a=h.get(n);if(a===void 0)return;let x=r.contents;x!==void 0&&x(),P(a),h.delete(n)}}}let st,ft,pt;const mt=Object.freeze(Object.defineProperty({__proto__:null,Id:st,Observer:ft,Scheduler:pt,run:dt},Symbol.toStringTag,{value:"Module"}));function ht(e,t){let n=me(void 0,t,void 0),r=Y(),l=()=>{let c=e();n.value.contents=c},u=_e(r,{NAME:"Computed",VAL:n.id},l,void 0);h.set(r,u),b.contents=!0,P(u);let s=p.contents;p.contents=r;try{u.run(),u.dirty=!1,b.contents=!1}catch(c){throw p.contents=s,b.contents=!1,c}return p.contents=s,u.level=W(u),L.set(n.id,r),n}function _t(e){He(e.id)}let gt,St,Et,vt;const bt=Object.freeze(Object.defineProperty({__proto__:null,Id:gt,Observer:Et,Scheduler:vt,Signal:St,dispose:_t,make:ht},Symbol.toStringTag,{value:"Module"}));let o=at,S=bt,w=mt;function ge(e){return De(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Se(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,s)=>{let c=n[s];return u.TAG==="Static"?c===u._0:(r[u._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function te(e,t){return Se(ge(e),t)}const yt=Object.freeze(Object.defineProperty({__proto__:null,match:te,matchPath:Se,parsePattern:ge},Symbol.toStringTag,{value:"Module"}));function wt(e,t){delete e[t]}function C(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 Ot={setAttrOrProp:C},V={contents:void 0};function Tt(){return{disposers:[],computeds:[]}}function N(e,t){let n=V.contents;V.contents=e;let r=t();return V.contents=n,r}function M(e,t){e.disposers.push(t)}function Ee(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>S.dispose(t))}function R(e,t){e.__xote_owner__=t}function ve(e){return xe(e.__xote_owner__)}let kt={currentOwner:V,createOwner:Tt,runWithOwner:N,addDisposer:M,disposeOwner:Ee,setOwner:R,getOwner:ve};function be(e,t){return[e,{TAG:"Static",_0:t}]}function ye(e,t){return[e,{TAG:"SignalValue",_0:t}]}function we(e,t){return[e,{TAG:"Compute",_0:t}]}let At={$$static:be,signal:ye,computed:we};function F(e){let t=ve(e);t!==void 0&&Ee(t),Array.from(e.childNodes||[]).forEach(F)}function y(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=document.createElement(e.tag),u={disposers:[],computeds:[]};return R(l,u),N(u,()=>{r.forEach(i=>{let m=i[1],g=i[0];switch(m.TAG){case"Static":return C(l,g,m._0);case"SignalValue":let E=m._0;C(l,g,o.peek(E));let v=w.run(()=>{C(l,g,o.get(E))},void 0);return M(u,v);case"Compute":let D=m._0;C(l,g,D());let $=w.run(()=>{C(l,g,D())},void 0);return M(u,$)}}),n.forEach(i=>{l.addEventListener(i[0],i[1])}),t.forEach(i=>{let m=y(i);l.appendChild(m)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let s=e._0,c=document.createTextNode(o.peek(s)),a={disposers:[],computeds:[]};return R(c,a),N(a,()=>{let i=w.run(()=>{c.textContent=o.get(s)},void 0);M(a,i)}),c;case"Fragment":let x=document.createDocumentFragment();return e._0.forEach(i=>{let m=y(i);x.appendChild(m)}),x;case"SignalFragment":let $e=e._0,X={disposers:[],computeds:[]},A=document.createElement("div");return A.setAttribute("style","display: contents"),R(A,X),N(X,()=>{let i=w.run(()=>{let m=o.get($e);Array.from(A.childNodes||[]).forEach(F),A.innerHTML="",m.forEach(E=>{let v=y(E);A.appendChild(v)})},void 0);M(X,i)}),A;case"LazyComponent":let re={disposers:[],computeds:[]},Ce=N(re,e._0),le=y(Ce);return R(le,re),le;case"KeyedList":let q=e.renderItem,K=e.keyFn,ue=e.signal,H={disposers:[],computeds:[]},U=document.createComment(" keyed-list-start "),G=document.createComment(" keyed-list-end ");R(U,H);let T={},Ne=()=>{let i=G.parentNode;if(i==null)return;let m=o.get(ue),g={};m.forEach(d=>{g[K(d)]=d});let E=[];Object.keys(T).forEach(d=>{if(g[d]===void 0){E.push(d);return}}),E.forEach(d=>{let f=T[d];if(f!==void 0){F(f.element),f.element.remove(),wt(T,d);return}});let v=[],D={};m.forEach(d=>{let f=K(d),z=T[f];if(z!==void 0){if(z.item!==d){D[f]=!0;let je=q(d),Ie=y(je),oe={key:f,item:d,element:Ie};v.push(oe),T[f]=oe;return}v.push(z);return}let Me=q(d),Re=y(Me),ie={key:f,item:d,element:Re};v.push(ie),T[f]=ie});let $={contents:U.nextSibling};v.forEach(d=>{let f=$.contents;if(f==null){i.insertBefore(d.element,G);return}if(f===G){i.insertBefore(d.element,G);return}if(f===d.element){$.contents=f.nextSibling;return}Z(D[d.key],!1)?(F(f),i.replaceChild(d.element,f),$.contents=d.element.nextSibling):(i.insertBefore(d.element,f),$.contents=d.element.nextSibling)})},B=document.createDocumentFragment();return B.appendChild(U),o.peek(ue).forEach(i=>{let m=K(i),g=q(i),E=y(g),v={key:m,item:i,element:E};T[m]=v,B.appendChild(E)}),B.appendChild(G),N(H,()=>{let i=w.run(()=>{Ne()},void 0);M(H,i)}),B}}let $t={disposeElement:F,render:y};function Ct(e){return{TAG:"Text",_0:e}}function Nt(e){return{TAG:"SignalText",_0:S.make(e,void 0)}}function Mt(e){return{TAG:"Fragment",_0:e}}function ne(e){return{TAG:"SignalFragment",_0:e}}function Rt(e,t){return{TAG:"SignalFragment",_0:S.make(()=>o.get(e).map(t),void 0)}}function jt(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function _(e,t,n,r,l){let u=t!==void 0?t:[].map(a=>a),s=n!==void 0?n:[].map(a=>a),c=r!==void 0?r:[].map(a=>a);return{TAG:"Element",tag:e,attrs:u,events:s,children:c}}function It(e,t,n,r){return _("div",e,t,n)}function Pt(e,t,n,r){return _("span",e,t,n)}function xt(e,t,n,r){return _("button",e,t,n)}function Gt(e,t,n){return _("input",e,t,void 0)}function Dt(e,t,n,r){return _("h1",e,t,n)}function Ft(e,t,n,r){return _("h2",e,t,n)}function Lt(e,t,n,r){return _("h3",e,t,n)}function Bt(e,t,n,r){return _("p",e,t,n)}function zt(e,t,n,r){return _("ul",e,t,n)}function Vt(e,t,n,r){return _("li",e,t,n)}function Oe(e,t,n,r){return _("a",e,t,n)}function Wt(){return{TAG:"Text",_0:""}}function Te(e,t){let n=y(e);t.appendChild(n)}function Xt(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Te(e,n)}let ke=be,qt=ye,Kt=we;const Ht=Object.freeze(Object.defineProperty({__proto__:null,$$null:Wt,Attributes:At,DOM:Ot,Reactivity:kt,Render:$t,a:Oe,attr:ke,button:xt,computedAttr:Kt,div:It,element:_,fragment:Mt,h1:Dt,h2:Ft,h3:Lt,input:Gt,keyedList:jt,li:Vt,list:Rt,mount:Te,mountById:Xt,p:Bt,signalAttr:qt,signalFragment:ne,span:Pt,text:Ct,textSignal:Nt,ul:zt},Symbol.toStringTag,{value:"Module"}));let k=o.make({pathname:"/",search:"",hash:""},void 0,void 0);function Q(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Ut(){o.set(k,Q());let e=t=>o.set(k,Q());window.addEventListener("popstate",e)}function Ae(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,a={};window.history.pushState(a,"",c),o.set(k,s)}function Jt(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,a={};window.history.replaceState(a,"",c),o.set(k,s)}function Qt(e,t){return ne(S.make(()=>{let n=o.get(k),r=te(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Yt(e){return ne(S.make(()=>{let t=o.get(k),n=Fe(e,r=>{let l=te(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function Zt(e,t,n,r){let l=t!==void 0?t:[],u=n!==void 0?n:[],s=c=>{c.preventDefault(),Ae(e,void 0,void 0)};return Oe(l.concat([ke("href",e)]),[["click",s]],u)}let en,tn;const nn=Object.freeze(Object.defineProperty({__proto__:null,Component:en,Route:tn,getCurrentLocation:Q,init:Ut,link:Zt,location:k,push:Ae,replace:Jt,route:Qt,routes:Yt},Symbol.toStringTag,{value:"Module"}));function rn(e){return e.TAG==="Reactive"?o.get(e._0):e._0}function ln(e){return{TAG:"Static",_0:e}}function un(e){return{TAG:"Reactive",_0:e}}const on=Object.freeze(Object.defineProperty({__proto__:null,$$static:ln,get:rn,reactive:un},Symbol.toStringTag,{value:"Module"}));let cn=o.Id,an=o.Scheduler,dn=o.make,sn=o.get,fn=o.peek,pn=o.set,mn=o.update,hn=o.batch,_n=o.untrack,gn={Id:cn,Scheduler:an,make:dn,get:sn,peek:fn,set:pn,update:mn,batch:hn,untrack:_n},Sn=S.Id,En=S.Signal,vn=S.Observer,bn=S.Scheduler,yn=S.make,wn=S.dispose,On={Id:Sn,Signal:En,Observer:vn,Scheduler:bn,make:yn,dispose:wn},Tn=w.Id,kn=w.Observer,An=w.Scheduler,$n=w.run,Cn={Id:Tn,Observer:kn,Scheduler:An,run:$n},Nn=Ht,Mn=yt,Rn=nn,jn=on;exports.Component=Nn;exports.Computed=On;exports.Effect=Cn;exports.ReactiveProp=jn;exports.Route=Mn;exports.Router=Rn;exports.Signal=gn;
|
package/dist/xote.mjs
CHANGED
|
@@ -4,7 +4,7 @@ let J = {
|
|
|
4
4
|
function Y() {
|
|
5
5
|
return J.contents = J.contents + 1 | 0, J.contents;
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function Pe(e) {
|
|
8
8
|
return e === void 0 ? {
|
|
9
9
|
BS_PRIVATE_NESTED_SOME_NONE: 0
|
|
10
10
|
} : e !== null && e.BS_PRIVATE_NESTED_SOME_NONE !== void 0 ? {
|
|
@@ -13,7 +13,7 @@ function Re(e) {
|
|
|
13
13
|
}
|
|
14
14
|
function xe(e) {
|
|
15
15
|
if (e != null)
|
|
16
|
-
return
|
|
16
|
+
return Pe(e);
|
|
17
17
|
}
|
|
18
18
|
function ce(e) {
|
|
19
19
|
if (e === null || e.BS_PRIVATE_NESTED_SOME_NONE === void 0)
|
|
@@ -50,44 +50,44 @@ function Fe(e, t) {
|
|
|
50
50
|
n = r + 1 | 0;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
let h = /* @__PURE__ */ new Map(),
|
|
53
|
+
let h = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Map(), L = /* @__PURE__ */ new Map(), p = {
|
|
54
54
|
contents: void 0
|
|
55
55
|
}, j = /* @__PURE__ */ new Set(), O = {
|
|
56
56
|
contents: !1
|
|
57
|
-
},
|
|
57
|
+
}, b = {
|
|
58
58
|
contents: !1
|
|
59
59
|
};
|
|
60
60
|
function ee(e) {
|
|
61
|
-
if (
|
|
62
|
-
|
|
61
|
+
if (R.get(e) === void 0) {
|
|
62
|
+
R.set(e, /* @__PURE__ */ new Set());
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
function Le(e, t) {
|
|
67
|
-
let n =
|
|
67
|
+
let n = R.get(e);
|
|
68
68
|
if (n !== void 0) {
|
|
69
69
|
n.forEach(t);
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
function Be(e, t) {
|
|
74
|
-
let n =
|
|
74
|
+
let n = R.get(e);
|
|
75
75
|
if (n !== void 0) {
|
|
76
76
|
n.add(t);
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
function ze(e, t) {
|
|
81
|
-
let n =
|
|
81
|
+
let n = R.get(e);
|
|
82
82
|
if (n !== void 0) {
|
|
83
83
|
n.delete(t);
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
function Ve(e) {
|
|
88
|
-
return Array.from(Z(
|
|
88
|
+
return Array.from(Z(R.get(e), /* @__PURE__ */ new Set()).values());
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function ae(e, t) {
|
|
91
91
|
let n = p.contents;
|
|
92
92
|
p.contents = e;
|
|
93
93
|
try {
|
|
@@ -128,7 +128,7 @@ function Ke(e, t) {
|
|
|
128
128
|
if (n && r !== void 0 && !r.deps.has(t))
|
|
129
129
|
return r.deps.add(t), Be(t, e);
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function P(e) {
|
|
132
132
|
e.deps.forEach((t) => ze(t, e.id)), e.deps.clear();
|
|
133
133
|
}
|
|
134
134
|
function He(e) {
|
|
@@ -138,11 +138,11 @@ function He(e) {
|
|
|
138
138
|
L.delete(e);
|
|
139
139
|
let n = h.get(t);
|
|
140
140
|
if (n !== void 0) {
|
|
141
|
-
|
|
141
|
+
P(n), h.delete(t);
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
function
|
|
145
|
+
function de(e) {
|
|
146
146
|
return Ge(e, 0, (t, n) => n > t ? n : t);
|
|
147
147
|
}
|
|
148
148
|
function Ue(e) {
|
|
@@ -157,7 +157,7 @@ function Ue(e) {
|
|
|
157
157
|
t.push(l.level);
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
|
-
})),
|
|
160
|
+
})), de(t) + 1 | 0;
|
|
161
161
|
}
|
|
162
162
|
function Je(e) {
|
|
163
163
|
let t = [];
|
|
@@ -170,7 +170,7 @@ function Je(e) {
|
|
|
170
170
|
t.push(l.level);
|
|
171
171
|
return;
|
|
172
172
|
}
|
|
173
|
-
}),
|
|
173
|
+
}), de(t) + 1 | 0;
|
|
174
174
|
}
|
|
175
175
|
function W(e) {
|
|
176
176
|
return typeof e.kind == "object" ? Je(e) : Ue(e);
|
|
@@ -181,12 +181,12 @@ function Qe(e, t) {
|
|
|
181
181
|
return r !== void 0 ? 1 : 0;
|
|
182
182
|
if (r === void 0)
|
|
183
183
|
return -1;
|
|
184
|
-
let u = typeof n.kind == "object" ? 0 : 1, c = typeof r.kind == "object" ? 0 : 1,
|
|
185
|
-
return
|
|
184
|
+
let u = typeof n.kind == "object" ? 0 : 1, c = typeof r.kind == "object" ? 0 : 1, a = u - c | 0;
|
|
185
|
+
return a !== 0 ? a : n.level - r.level | 0;
|
|
186
186
|
}
|
|
187
187
|
function Ye(e) {
|
|
188
|
-
|
|
189
|
-
e.run(),
|
|
188
|
+
b.contents = !0, P(e), ae(e.id, () => {
|
|
189
|
+
e.run(), b.contents = !1;
|
|
190
190
|
}), e.level = W(e);
|
|
191
191
|
}
|
|
192
192
|
function se() {
|
|
@@ -217,8 +217,8 @@ function pe(e) {
|
|
|
217
217
|
return;
|
|
218
218
|
let n = h.get(t);
|
|
219
219
|
if (n !== void 0 && n.dirty) {
|
|
220
|
-
|
|
221
|
-
n.run(), n.dirty = !1,
|
|
220
|
+
b.contents = !0, P(n), ae(t, () => {
|
|
221
|
+
n.run(), n.dirty = !1, b.contents = !1;
|
|
222
222
|
}), n.level = W(n);
|
|
223
223
|
return;
|
|
224
224
|
}
|
|
@@ -270,7 +270,7 @@ function lt(e, t) {
|
|
|
270
270
|
he(e, t(e.value.contents));
|
|
271
271
|
}
|
|
272
272
|
let ut, it, ot = Ze, ct = et;
|
|
273
|
-
const
|
|
273
|
+
const at = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
274
274
|
__proto__: null,
|
|
275
275
|
Id: ut,
|
|
276
276
|
Scheduler: it,
|
|
@@ -293,28 +293,28 @@ function _e(e, t, n, r) {
|
|
|
293
293
|
name: r
|
|
294
294
|
};
|
|
295
295
|
}
|
|
296
|
-
function
|
|
296
|
+
function dt(e, t) {
|
|
297
297
|
let n = Y(), r = {
|
|
298
298
|
contents: void 0
|
|
299
299
|
}, u = _e(n, "Effect", () => {
|
|
300
|
-
let
|
|
301
|
-
|
|
300
|
+
let a = r.contents;
|
|
301
|
+
a !== void 0 && a(), r.contents = e();
|
|
302
302
|
}, t);
|
|
303
|
-
h.set(n, u),
|
|
303
|
+
h.set(n, u), b.contents = !0, P(u);
|
|
304
304
|
let s = p.contents;
|
|
305
305
|
p.contents = n;
|
|
306
306
|
try {
|
|
307
|
-
u.run(),
|
|
308
|
-
} catch (
|
|
309
|
-
throw p.contents = s,
|
|
307
|
+
u.run(), b.contents = !1;
|
|
308
|
+
} catch (a) {
|
|
309
|
+
throw p.contents = s, b.contents = !1, a;
|
|
310
310
|
}
|
|
311
311
|
return p.contents = s, u.level = W(u), {
|
|
312
312
|
dispose: () => {
|
|
313
|
-
let
|
|
314
|
-
if (
|
|
313
|
+
let a = h.get(n);
|
|
314
|
+
if (a === void 0)
|
|
315
315
|
return;
|
|
316
316
|
let x = r.contents;
|
|
317
|
-
x !== void 0 && x(),
|
|
317
|
+
x !== void 0 && x(), P(a), h.delete(n);
|
|
318
318
|
}
|
|
319
319
|
};
|
|
320
320
|
}
|
|
@@ -324,7 +324,7 @@ const mt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
324
324
|
Id: st,
|
|
325
325
|
Observer: ft,
|
|
326
326
|
Scheduler: pt,
|
|
327
|
-
run:
|
|
327
|
+
run: dt
|
|
328
328
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
329
329
|
function ht(e, t) {
|
|
330
330
|
let n = me(void 0, t, void 0), r = Y(), l = () => {
|
|
@@ -334,30 +334,30 @@ function ht(e, t) {
|
|
|
334
334
|
NAME: "Computed",
|
|
335
335
|
VAL: n.id
|
|
336
336
|
}, l, void 0);
|
|
337
|
-
h.set(r, u),
|
|
337
|
+
h.set(r, u), b.contents = !0, P(u);
|
|
338
338
|
let s = p.contents;
|
|
339
339
|
p.contents = r;
|
|
340
340
|
try {
|
|
341
|
-
u.run(), u.dirty = !1,
|
|
341
|
+
u.run(), u.dirty = !1, b.contents = !1;
|
|
342
342
|
} catch (c) {
|
|
343
|
-
throw p.contents = s,
|
|
343
|
+
throw p.contents = s, b.contents = !1, c;
|
|
344
344
|
}
|
|
345
345
|
return p.contents = s, u.level = W(u), L.set(n.id, r), n;
|
|
346
346
|
}
|
|
347
347
|
function _t(e) {
|
|
348
348
|
He(e.id);
|
|
349
349
|
}
|
|
350
|
-
let gt, St, Et,
|
|
351
|
-
const
|
|
350
|
+
let gt, St, Et, vt;
|
|
351
|
+
const bt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
352
352
|
__proto__: null,
|
|
353
353
|
Id: gt,
|
|
354
354
|
Observer: Et,
|
|
355
|
-
Scheduler:
|
|
355
|
+
Scheduler: vt,
|
|
356
356
|
Signal: St,
|
|
357
357
|
dispose: _t,
|
|
358
358
|
make: ht
|
|
359
359
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
360
|
-
let o =
|
|
360
|
+
let o = at, S = bt, w = mt;
|
|
361
361
|
function ge(e) {
|
|
362
362
|
return De(e.split("/"), (t) => {
|
|
363
363
|
if (t !== "")
|
|
@@ -445,7 +445,7 @@ function Ee(e) {
|
|
|
445
445
|
function I(e, t) {
|
|
446
446
|
e.__xote_owner__ = t;
|
|
447
447
|
}
|
|
448
|
-
function
|
|
448
|
+
function ve(e) {
|
|
449
449
|
return xe(e.__xote_owner__);
|
|
450
450
|
}
|
|
451
451
|
let Tt = {
|
|
@@ -455,9 +455,9 @@ let Tt = {
|
|
|
455
455
|
addDisposer: M,
|
|
456
456
|
disposeOwner: Ee,
|
|
457
457
|
setOwner: I,
|
|
458
|
-
getOwner:
|
|
458
|
+
getOwner: ve
|
|
459
459
|
};
|
|
460
|
-
function
|
|
460
|
+
function be(e, t) {
|
|
461
461
|
return [
|
|
462
462
|
e,
|
|
463
463
|
{
|
|
@@ -485,12 +485,12 @@ function we(e, t) {
|
|
|
485
485
|
];
|
|
486
486
|
}
|
|
487
487
|
let At = {
|
|
488
|
-
$$static:
|
|
488
|
+
$$static: be,
|
|
489
489
|
signal: ye,
|
|
490
490
|
computed: we
|
|
491
491
|
};
|
|
492
492
|
function F(e) {
|
|
493
|
-
let t =
|
|
493
|
+
let t = ve(e);
|
|
494
494
|
t !== void 0 && Ee(t), Array.from(e.childNodes || []).forEach(F);
|
|
495
495
|
}
|
|
496
496
|
function y(e) {
|
|
@@ -509,10 +509,10 @@ function y(e) {
|
|
|
509
509
|
case "SignalValue":
|
|
510
510
|
let E = m._0;
|
|
511
511
|
C(l, g, o.peek(E));
|
|
512
|
-
let
|
|
512
|
+
let v = w.run(() => {
|
|
513
513
|
C(l, g, o.get(E));
|
|
514
514
|
}, void 0);
|
|
515
|
-
return M(u,
|
|
515
|
+
return M(u, v);
|
|
516
516
|
case "Compute":
|
|
517
517
|
let D = m._0;
|
|
518
518
|
C(l, g, D());
|
|
@@ -531,15 +531,15 @@ function y(e) {
|
|
|
531
531
|
case "Text":
|
|
532
532
|
return document.createTextNode(e._0);
|
|
533
533
|
case "SignalText":
|
|
534
|
-
let s = e._0, c = document.createTextNode(o.peek(s)),
|
|
534
|
+
let s = e._0, c = document.createTextNode(o.peek(s)), a = {
|
|
535
535
|
disposers: [],
|
|
536
536
|
computeds: []
|
|
537
537
|
};
|
|
538
|
-
return I(c,
|
|
538
|
+
return I(c, a), N(a, () => {
|
|
539
539
|
let i = w.run(() => {
|
|
540
540
|
c.textContent = o.get(s);
|
|
541
541
|
}, void 0);
|
|
542
|
-
M(
|
|
542
|
+
M(a, i);
|
|
543
543
|
}), c;
|
|
544
544
|
case "Fragment":
|
|
545
545
|
let x = document.createDocumentFragment();
|
|
@@ -556,8 +556,8 @@ function y(e) {
|
|
|
556
556
|
let i = w.run(() => {
|
|
557
557
|
let m = o.get($e);
|
|
558
558
|
Array.from(A.childNodes || []).forEach(F), A.innerHTML = "", m.forEach((E) => {
|
|
559
|
-
let
|
|
560
|
-
A.appendChild(
|
|
559
|
+
let v = y(E);
|
|
560
|
+
A.appendChild(v);
|
|
561
561
|
});
|
|
562
562
|
}, void 0);
|
|
563
563
|
M(X, i);
|
|
@@ -579,73 +579,73 @@ function y(e) {
|
|
|
579
579
|
if (i == null)
|
|
580
580
|
return;
|
|
581
581
|
let m = o.get(ue), g = {};
|
|
582
|
-
m.forEach((
|
|
583
|
-
g[K(
|
|
582
|
+
m.forEach((d) => {
|
|
583
|
+
g[K(d)] = d;
|
|
584
584
|
});
|
|
585
585
|
let E = [];
|
|
586
|
-
Object.keys(k).forEach((
|
|
587
|
-
if (g[
|
|
588
|
-
E.push(
|
|
586
|
+
Object.keys(k).forEach((d) => {
|
|
587
|
+
if (g[d] === void 0) {
|
|
588
|
+
E.push(d);
|
|
589
589
|
return;
|
|
590
590
|
}
|
|
591
|
-
}), E.forEach((
|
|
592
|
-
let f = k[
|
|
591
|
+
}), E.forEach((d) => {
|
|
592
|
+
let f = k[d];
|
|
593
593
|
if (f !== void 0) {
|
|
594
|
-
F(f.element), f.element.remove(), wt(k,
|
|
594
|
+
F(f.element), f.element.remove(), wt(k, d);
|
|
595
595
|
return;
|
|
596
596
|
}
|
|
597
597
|
});
|
|
598
|
-
let
|
|
599
|
-
m.forEach((
|
|
600
|
-
let f = K(
|
|
598
|
+
let v = [], D = {};
|
|
599
|
+
m.forEach((d) => {
|
|
600
|
+
let f = K(d), z = k[f];
|
|
601
601
|
if (z !== void 0) {
|
|
602
|
-
if (z.item !==
|
|
602
|
+
if (z.item !== d) {
|
|
603
603
|
D[f] = !0;
|
|
604
|
-
let je = q(
|
|
604
|
+
let je = q(d), Re = y(je), oe = {
|
|
605
605
|
key: f,
|
|
606
|
-
item:
|
|
607
|
-
element:
|
|
606
|
+
item: d,
|
|
607
|
+
element: Re
|
|
608
608
|
};
|
|
609
|
-
|
|
609
|
+
v.push(oe), k[f] = oe;
|
|
610
610
|
return;
|
|
611
611
|
}
|
|
612
|
-
|
|
612
|
+
v.push(z);
|
|
613
613
|
return;
|
|
614
614
|
}
|
|
615
|
-
let Me = q(
|
|
615
|
+
let Me = q(d), Ie = y(Me), ie = {
|
|
616
616
|
key: f,
|
|
617
|
-
item:
|
|
617
|
+
item: d,
|
|
618
618
|
element: Ie
|
|
619
619
|
};
|
|
620
|
-
|
|
620
|
+
v.push(ie), k[f] = ie;
|
|
621
621
|
});
|
|
622
622
|
let $ = {
|
|
623
623
|
contents: U.nextSibling
|
|
624
624
|
};
|
|
625
|
-
|
|
625
|
+
v.forEach((d) => {
|
|
626
626
|
let f = $.contents;
|
|
627
627
|
if (f == null) {
|
|
628
|
-
i.insertBefore(
|
|
628
|
+
i.insertBefore(d.element, G);
|
|
629
629
|
return;
|
|
630
630
|
}
|
|
631
631
|
if (f === G) {
|
|
632
|
-
i.insertBefore(
|
|
632
|
+
i.insertBefore(d.element, G);
|
|
633
633
|
return;
|
|
634
634
|
}
|
|
635
|
-
if (f ===
|
|
635
|
+
if (f === d.element) {
|
|
636
636
|
$.contents = f.nextSibling;
|
|
637
637
|
return;
|
|
638
638
|
}
|
|
639
|
-
Z(D[
|
|
639
|
+
Z(D[d.key], !1) ? (F(f), i.replaceChild(d.element, f), $.contents = d.element.nextSibling) : (i.insertBefore(d.element, f), $.contents = d.element.nextSibling);
|
|
640
640
|
});
|
|
641
641
|
}, B = document.createDocumentFragment();
|
|
642
642
|
return B.appendChild(U), o.peek(ue).forEach((i) => {
|
|
643
|
-
let m = K(i), g = q(i), E = y(g),
|
|
643
|
+
let m = K(i), g = q(i), E = y(g), v = {
|
|
644
644
|
key: m,
|
|
645
645
|
item: i,
|
|
646
646
|
element: E
|
|
647
647
|
};
|
|
648
|
-
k[m] =
|
|
648
|
+
k[m] = v, B.appendChild(E);
|
|
649
649
|
}), B.appendChild(G), N(H, () => {
|
|
650
650
|
let i = w.run(() => {
|
|
651
651
|
Ne();
|
|
@@ -697,7 +697,7 @@ function jt(e, t, n) {
|
|
|
697
697
|
};
|
|
698
698
|
}
|
|
699
699
|
function _(e, t, n, r, l) {
|
|
700
|
-
let u = t !== void 0 ? t : [].map((
|
|
700
|
+
let u = t !== void 0 ? t : [].map((a) => a), s = n !== void 0 ? n : [].map((a) => a), c = r !== void 0 ? r : [].map((a) => a);
|
|
701
701
|
return {
|
|
702
702
|
TAG: "Element",
|
|
703
703
|
tag: e,
|
|
@@ -706,10 +706,10 @@ function _(e, t, n, r, l) {
|
|
|
706
706
|
children: c
|
|
707
707
|
};
|
|
708
708
|
}
|
|
709
|
-
function
|
|
709
|
+
function Rt(e, t, n, r) {
|
|
710
710
|
return _("div", e, t, n);
|
|
711
711
|
}
|
|
712
|
-
function
|
|
712
|
+
function Pt(e, t, n, r) {
|
|
713
713
|
return _("span", e, t, n);
|
|
714
714
|
}
|
|
715
715
|
function xt(e, t, n, r) {
|
|
@@ -757,7 +757,7 @@ function Xt(e, t) {
|
|
|
757
757
|
} else
|
|
758
758
|
return ke(e, n);
|
|
759
759
|
}
|
|
760
|
-
let Te =
|
|
760
|
+
let Te = be, qt = ye, Kt = we;
|
|
761
761
|
const Ht = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
762
762
|
__proto__: null,
|
|
763
763
|
$$null: Wt,
|
|
@@ -769,7 +769,7 @@ const Ht = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
769
769
|
attr: Te,
|
|
770
770
|
button: xt,
|
|
771
771
|
computedAttr: Kt,
|
|
772
|
-
div:
|
|
772
|
+
div: Rt,
|
|
773
773
|
element: _,
|
|
774
774
|
fragment: Mt,
|
|
775
775
|
h1: Dt,
|
|
@@ -784,7 +784,7 @@ const Ht = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
784
784
|
p: Bt,
|
|
785
785
|
signalAttr: qt,
|
|
786
786
|
signalFragment: ne,
|
|
787
|
-
span:
|
|
787
|
+
span: Pt,
|
|
788
788
|
text: Ct,
|
|
789
789
|
textSignal: Nt,
|
|
790
790
|
ul: zt
|
|
@@ -811,16 +811,16 @@ function Ae(e, t, n, r) {
|
|
|
811
811
|
pathname: e,
|
|
812
812
|
search: l,
|
|
813
813
|
hash: u
|
|
814
|
-
}, c = e + l + u,
|
|
815
|
-
window.history.pushState(
|
|
814
|
+
}, c = e + l + u, a = {};
|
|
815
|
+
window.history.pushState(a, "", c), o.set(T, s);
|
|
816
816
|
}
|
|
817
817
|
function Jt(e, t, n, r) {
|
|
818
818
|
let l = t !== void 0 ? t : "", u = n !== void 0 ? n : "", s = {
|
|
819
819
|
pathname: e,
|
|
820
820
|
search: l,
|
|
821
821
|
hash: u
|
|
822
|
-
}, c = e + l + u,
|
|
823
|
-
window.history.replaceState(
|
|
822
|
+
}, c = e + l + u, a = {};
|
|
823
|
+
window.history.replaceState(a, "", c), o.set(T, s);
|
|
824
824
|
}
|
|
825
825
|
function Qt(e, t) {
|
|
826
826
|
return ne(S.make(() => {
|
|
@@ -864,39 +864,53 @@ const nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
864
864
|
function rn(e) {
|
|
865
865
|
return e.TAG === "Reactive" ? o.get(e._0) : e._0;
|
|
866
866
|
}
|
|
867
|
-
|
|
867
|
+
function ln(e) {
|
|
868
|
+
return {
|
|
869
|
+
TAG: "Static",
|
|
870
|
+
_0: e
|
|
871
|
+
};
|
|
872
|
+
}
|
|
873
|
+
function un(e) {
|
|
874
|
+
return {
|
|
875
|
+
TAG: "Reactive",
|
|
876
|
+
_0: e
|
|
877
|
+
};
|
|
878
|
+
}
|
|
879
|
+
const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
868
880
|
__proto__: null,
|
|
869
|
-
|
|
881
|
+
$$static: ln,
|
|
882
|
+
get: rn,
|
|
883
|
+
reactive: un
|
|
870
884
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
871
|
-
let
|
|
872
|
-
Id:
|
|
873
|
-
Scheduler:
|
|
874
|
-
make:
|
|
875
|
-
get:
|
|
876
|
-
peek:
|
|
877
|
-
set:
|
|
878
|
-
update:
|
|
879
|
-
batch:
|
|
880
|
-
untrack:
|
|
881
|
-
},
|
|
882
|
-
Id:
|
|
883
|
-
Signal:
|
|
884
|
-
Observer:
|
|
885
|
-
Scheduler:
|
|
886
|
-
make:
|
|
887
|
-
dispose:
|
|
888
|
-
},
|
|
889
|
-
Id:
|
|
890
|
-
Observer:
|
|
891
|
-
Scheduler:
|
|
892
|
-
run:
|
|
893
|
-
},
|
|
885
|
+
let cn = o.Id, an = o.Scheduler, dn = o.make, sn = o.get, fn = o.peek, pn = o.set, mn = o.update, hn = o.batch, _n = o.untrack, $n = {
|
|
886
|
+
Id: cn,
|
|
887
|
+
Scheduler: an,
|
|
888
|
+
make: dn,
|
|
889
|
+
get: sn,
|
|
890
|
+
peek: fn,
|
|
891
|
+
set: pn,
|
|
892
|
+
update: mn,
|
|
893
|
+
batch: hn,
|
|
894
|
+
untrack: _n
|
|
895
|
+
}, gn = S.Id, Sn = S.Signal, En = S.Observer, vn = S.Scheduler, bn = S.make, yn = S.dispose, Cn = {
|
|
896
|
+
Id: gn,
|
|
897
|
+
Signal: Sn,
|
|
898
|
+
Observer: En,
|
|
899
|
+
Scheduler: vn,
|
|
900
|
+
make: bn,
|
|
901
|
+
dispose: yn
|
|
902
|
+
}, wn = w.Id, On = w.Observer, kn = w.Scheduler, Tn = w.run, Nn = {
|
|
903
|
+
Id: wn,
|
|
904
|
+
Observer: On,
|
|
905
|
+
Scheduler: kn,
|
|
906
|
+
run: Tn
|
|
907
|
+
}, Mn = Ht, In = yt, jn = nn, Rn = on;
|
|
894
908
|
export {
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
909
|
+
Mn as Component,
|
|
910
|
+
Cn as Computed,
|
|
911
|
+
Nn as Effect,
|
|
912
|
+
Rn as ReactiveProp,
|
|
913
|
+
In as Route,
|
|
914
|
+
jn as Router,
|
|
915
|
+
$n as Signal
|
|
902
916
|
};
|
package/dist/xote.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_,T){typeof exports=="object"&&typeof module<"u"?T(exports):typeof define=="function"&&define.amd?define(["exports"],T):(_=typeof globalThis<"u"?globalThis:_||self,T(_.xote={}))})(this,(function(_){"use strict";let T={contents:0};function K(){return T.contents=T.contents+1|0,T.contents}function Ce(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 Ne(e){if(e!=null)return Ce(e)}function le(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 H(e,t){return e!==void 0?le(e):t}function Ie(e,t,n){return e.reduce(n,t)}function Me(e,t){let n=e.length,r=new Array(n),l=0;for(let u=0;u<n;++u){let s=e[u],c=t(s);c!==void 0&&(r[l]=le(c),l=l+1|0)}return r.length=l,r}function Re(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}}let h=new Map,C=new Map,D=new Map,p={contents:void 0},N=new Set,k={contents:!1},b={contents:!1};function U(e){if(C.get(e)===void 0){C.set(e,new Set);return}}function je(e,t){let n=C.get(e);if(n!==void 0){n.forEach(t);return}}function Pe(e,t){let n=C.get(e);if(n!==void 0){n.add(t);return}}function Ge(e,t){let n=C.get(e);if(n!==void 0){n.delete(t);return}}function xe(e){return Array.from(H(C.get(e),new Set).values())}function ue(e,t){let n=p.contents;p.contents=e;try{let r=t();return p.contents=n,r}catch(r){throw p.contents=n,r}}function De(e){let t=p.contents;p.contents=void 0;try{let n=e();return p.contents=t,n}catch(n){throw p.contents=t,n}}function Fe(e){let t=p.contents;return t!==void 0?t===e:!1}function Le(e){if(!k.contents){k.contents=!0;try{e(),k.contents=!1;return}catch(t){throw k.contents=!1,t}}}function Be(e,t){U(t);let n=Fe(e),r=h.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),Pe(t,e)}function I(e){e.deps.forEach(t=>Ge(t,e.id)),e.deps.clear()}function ze(e){let t=D.get(e);if(t===void 0)return;D.delete(e);let n=h.get(t);if(n!==void 0){I(n),h.delete(t);return}}function ie(e){return Ie(e,0,(t,n)=>n>t?n:t)}function Ve(e){let t=[];return e.deps.forEach(n=>je(n,r=>{if(r===e.id)return;let l=h.get(r);if(l===void 0)return;if(typeof l.kind=="object"){t.push(l.level);return}})),ie(t)+1|0}function We(e){let t=[];return e.deps.forEach(n=>{let r=D.get(n);if(r===void 0||r===e.id)return;let l=h.get(r);if(l!==void 0){t.push(l.level);return}}),ie(t)+1|0}function V(e){return typeof e.kind=="object"?We(e):Ve(e)}function Xe(e,t){let n=h.get(e),r=h.get(t);if(n===void 0)return r!==void 0?1:0;if(r===void 0)return-1;let u=typeof n.kind=="object"?0:1,c=typeof r.kind=="object"?0:1,d=u-c|0;return d!==0?d:n.level-r.level|0}function qe(e){b.contents=!0,I(e),ue(e.id,()=>{e.run(),b.contents=!1}),e.level=V(e)}function oe(){for(;N.size>0;){let e=Array.from(N.values());N.clear(),e.sort(Xe),e.forEach(t=>{let n=h.get(t);if(n!==void 0)return qe(n)})}}function ce(e){if(U(e),xe(e).forEach(t=>{let n=h.get(t);if(n===void 0)return;let r=n.kind;if(typeof r=="object")return n.dirty?void 0:(n.dirty=!0,ce(r.VAL));N.add(t)}),N.size>0)return Le(oe)}function de(e){let t=D.get(e);if(t===void 0)return;let n=h.get(t);if(n!==void 0&&n.dirty){b.contents=!0,I(n),ue(t,()=>{n.run(),n.dirty=!1,b.contents=!1}),n.level=V(n);return}}function Ke(e){let t=k.contents;k.contents=!0;try{let n=e();return t||(k.contents=!1,N.size>0&&oe()),n}catch(n){throw t||(k.contents=!1),n}}let He=De,Ue=U;function ae(e,t,n){let r=K();return Ue(r),{id:r,value:{contents:e},version:{contents:0},equals:H(n,(l,u)=>l===u),name:t}}function Je(e){de(e.id);let t=p.contents;return t!==void 0&&Be(t,e.id),e.value.contents}function Qe(e){return de(e.id),e.value.contents}function se(e,t){let n;try{n=!e.equals(e.value.contents,t)}catch{n=!0}if(n)return e.value.contents=t,e.version.contents=e.version.contents+1|0,ce(e.id)}function Ye(e,t){se(e,t(e.value.contents))}const Ze=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Scheduler:void 0,batch:Ke,get:Je,make:ae,peek:Qe,set:se,untrack:He,update:Ye},Symbol.toStringTag,{value:"Module"}));function fe(e,t,n,r){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0,name:r}}function et(e,t){let n=K(),r={contents:void 0},u=fe(n,"Effect",()=>{let d=r.contents;d!==void 0&&d(),r.contents=e()},t);h.set(n,u),b.contents=!0,I(u);let s=p.contents;p.contents=n;try{u.run(),b.contents=!1}catch(d){throw p.contents=s,b.contents=!1,d}return p.contents=s,u.level=V(u),{dispose:()=>{let d=h.get(n);if(d===void 0)return;let L=r.contents;L!==void 0&&L(),I(d),h.delete(n)}}}const tt=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,run:et},Symbol.toStringTag,{value:"Module"}));function nt(e,t){let n=ae(void 0,t,void 0),r=K(),l=()=>{let c=e();n.value.contents=c},u=fe(r,{NAME:"Computed",VAL:n.id},l,void 0);h.set(r,u),b.contents=!0,I(u);let s=p.contents;p.contents=r;try{u.run(),u.dirty=!1,b.contents=!1}catch(c){throw p.contents=s,b.contents=!1,c}return p.contents=s,u.level=V(u),D.set(n.id,r),n}function rt(e){ze(e.id)}const lt=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,Signal:void 0,dispose:rt,make:nt},Symbol.toStringTag,{value:"Module"}));let i=Ze,S=lt,w=tt;function pe(e){return Me(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function me(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,s)=>{let c=n[s];return u.TAG==="Static"?c===u._0:(r[u._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function J(e,t){return me(pe(e),t)}const ut=Object.freeze(Object.defineProperty({__proto__:null,match:J,matchPath:me,parsePattern:pe},Symbol.toStringTag,{value:"Module"}));function it(e,t){delete e[t]}function M(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 ot={setAttrOrProp:M},W={contents:void 0};function ct(){return{disposers:[],computeds:[]}}function R(e,t){let n=W.contents;W.contents=e;let r=t();return W.contents=n,r}function j(e,t){e.disposers.push(t)}function he(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>S.dispose(t))}function P(e,t){e.__xote_owner__=t}function _e(e){return Ne(e.__xote_owner__)}let dt={currentOwner:W,createOwner:ct,runWithOwner:R,addDisposer:j,disposeOwner:he,setOwner:P,getOwner:_e};function ge(e,t){return[e,{TAG:"Static",_0:t}]}function Se(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Ee(e,t){return[e,{TAG:"Compute",_0:t}]}let at={$$static:ge,signal:Se,computed:Ee};function F(e){let t=_e(e);t!==void 0&&he(t),Array.from(e.childNodes||[]).forEach(F)}function O(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=document.createElement(e.tag),u={disposers:[],computeds:[]};return P(l,u),R(u,()=>{r.forEach(o=>{let m=o[1],E=o[0];switch(m.TAG){case"Static":return M(l,E,m._0);case"SignalValue":let v=m._0;M(l,E,i.peek(v));let y=w.run(()=>{M(l,E,i.get(v))},void 0);return j(u,y);case"Compute":let z=m._0;M(l,E,z());let x=w.run(()=>{M(l,E,z())},void 0);return j(u,x)}}),n.forEach(o=>{l.addEventListener(o[0],o[1])}),t.forEach(o=>{let m=O(o);l.appendChild(m)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let s=e._0,c=document.createTextNode(i.peek(s)),d={disposers:[],computeds:[]};return P(c,d),R(d,()=>{let o=w.run(()=>{c.textContent=i.get(s)},void 0);j(d,o)}),c;case"Fragment":let L=document.createDocumentFragment();return e._0.forEach(o=>{let m=O(o);L.appendChild(m)}),L;case"SignalFragment":let sn=e._0,Z={disposers:[],computeds:[]},G=document.createElement("div");return G.setAttribute("style","display: contents"),P(G,Z),R(Z,()=>{let o=w.run(()=>{let m=i.get(sn);Array.from(G.childNodes||[]).forEach(F),G.innerHTML="",m.forEach(v=>{let y=O(v);G.appendChild(y)})},void 0);j(Z,o)}),G;case"LazyComponent":let Oe={disposers:[],computeds:[]},fn=R(Oe,e._0),ke=O(fn);return P(ke,Oe),ke;case"KeyedList":let ee=e.renderItem,te=e.keyFn,Te=e.signal,ne={disposers:[],computeds:[]},re=document.createComment(" keyed-list-start "),B=document.createComment(" keyed-list-end ");P(re,ne);let A={},pn=()=>{let o=B.parentNode;if(o==null)return;let m=i.get(Te),E={};m.forEach(a=>{E[te(a)]=a});let v=[];Object.keys(A).forEach(a=>{if(E[a]===void 0){v.push(a);return}}),v.forEach(a=>{let f=A[a];if(f!==void 0){F(f.element),f.element.remove(),it(A,a);return}});let y=[],z={};m.forEach(a=>{let f=te(a),q=A[f];if(q!==void 0){if(q.item!==a){z[f]=!0;let _n=ee(a),gn=O(_n),Ae={key:f,item:a,element:gn};y.push(Ae),A[f]=Ae;return}y.push(q);return}let mn=ee(a),hn=O(mn),$e={key:f,item:a,element:hn};y.push($e),A[f]=$e});let x={contents:re.nextSibling};y.forEach(a=>{let f=x.contents;if(f==null){o.insertBefore(a.element,B);return}if(f===B){o.insertBefore(a.element,B);return}if(f===a.element){x.contents=f.nextSibling;return}H(z[a.key],!1)?(F(f),o.replaceChild(a.element,f),x.contents=a.element.nextSibling):(o.insertBefore(a.element,f),x.contents=a.element.nextSibling)})},X=document.createDocumentFragment();return X.appendChild(re),i.peek(Te).forEach(o=>{let m=te(o),E=ee(o),v=O(E),y={key:m,item:o,element:v};A[m]=y,X.appendChild(v)}),X.appendChild(B),R(ne,()=>{let o=w.run(()=>{pn()},void 0);j(ne,o)}),X}}let st={disposeElement:F,render:O};function ft(e){return{TAG:"Text",_0:e}}function pt(e){return{TAG:"SignalText",_0:S.make(e,void 0)}}function mt(e){return{TAG:"Fragment",_0:e}}function Q(e){return{TAG:"SignalFragment",_0:e}}function ht(e,t){return{TAG:"SignalFragment",_0:S.make(()=>i.get(e).map(t),void 0)}}function _t(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function g(e,t,n,r,l){let u=t!==void 0?t:[].map(d=>d),s=n!==void 0?n:[].map(d=>d),c=r!==void 0?r:[].map(d=>d);return{TAG:"Element",tag:e,attrs:u,events:s,children:c}}function gt(e,t,n,r){return g("div",e,t,n)}function St(e,t,n,r){return g("span",e,t,n)}function Et(e,t,n,r){return g("button",e,t,n)}function bt(e,t,n){return g("input",e,t,void 0)}function vt(e,t,n,r){return g("h1",e,t,n)}function yt(e,t,n,r){return g("h2",e,t,n)}function wt(e,t,n,r){return g("h3",e,t,n)}function Ot(e,t,n,r){return g("p",e,t,n)}function kt(e,t,n,r){return g("ul",e,t,n)}function Tt(e,t,n,r){return g("li",e,t,n)}function be(e,t,n,r){return g("a",e,t,n)}function $t(){return{TAG:"Text",_0:""}}function ve(e,t){let n=O(e);t.appendChild(n)}function At(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return ve(e,n)}let ye=ge;const Ct=Object.freeze(Object.defineProperty({__proto__:null,$$null:$t,Attributes:at,DOM:ot,Reactivity:dt,Render:st,a:be,attr:ye,button:Et,computedAttr:Ee,div:gt,element:g,fragment:mt,h1:vt,h2:yt,h3:wt,input:bt,keyedList:_t,li:Tt,list:ht,mount:ve,mountById:At,p:Ot,signalAttr:Se,signalFragment:Q,span:St,text:ft,textSignal:pt,ul:kt},Symbol.toStringTag,{value:"Module"}));let $=i.make({pathname:"/",search:"",hash:""},void 0,void 0);function Y(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Nt(){i.set($,Y());let e=t=>i.set($,Y());window.addEventListener("popstate",e)}function we(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.pushState(d,"",c),i.set($,s)}function It(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.replaceState(d,"",c),i.set($,s)}function Mt(e,t){return Q(S.make(()=>{let n=i.get($),r=J(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Rt(e){return Q(S.make(()=>{let t=i.get($),n=Re(e,r=>{let l=J(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function jt(e,t,n,r){let l=t!==void 0?t:[],u=n!==void 0?n:[],s=c=>{c.preventDefault(),we(e,void 0,void 0)};return be(l.concat([ye("href",e)]),[["click",s]],u)}const Pt=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,Route:void 0,getCurrentLocation:Y,init:Nt,link:jt,location:$,push:we,replace:It,route:Mt,routes:Rt},Symbol.toStringTag,{value:"Module"}));function Gt(e){return e.TAG==="Reactive"?i.get(e._0):e._0}const xt=Object.freeze(Object.defineProperty({__proto__:null,get:Gt},Symbol.toStringTag,{value:"Module"}));let Dt=i.Id,Ft=i.Scheduler,Lt=i.make,Bt=i.get,zt=i.peek,Vt=i.set,Wt=i.update,Xt=i.batch,qt=i.untrack,Kt={Id:Dt,Scheduler:Ft,make:Lt,get:Bt,peek:zt,set:Vt,update:Wt,batch:Xt,untrack:qt},Ht=S.Id,Ut=S.Signal,Jt=S.Observer,Qt=S.Scheduler,Yt=S.make,Zt=S.dispose,en={Id:Ht,Signal:Ut,Observer:Jt,Scheduler:Qt,make:Yt,dispose:Zt},tn=w.Id,nn=w.Observer,rn=w.Scheduler,ln=w.run,un={Id:tn,Observer:nn,Scheduler:rn,run:ln},on=Ct,cn=ut,dn=Pt,an=xt;_.Component=on,_.Computed=en,_.Effect=un,_.ReactiveProp=an,_.Route=cn,_.Router=dn,_.Signal=Kt,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(_,$){typeof exports=="object"&&typeof module<"u"?$(exports):typeof define=="function"&&define.amd?define(["exports"],$):(_=typeof globalThis<"u"?globalThis:_||self,$(_.xote={}))})(this,(function(_){"use strict";let $={contents:0};function K(){return $.contents=$.contents+1|0,$.contents}function Ce(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 Ne(e){if(e!=null)return Ce(e)}function le(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 H(e,t){return e!==void 0?le(e):t}function Ie(e,t,n){return e.reduce(n,t)}function Me(e,t){let n=e.length,r=new Array(n),l=0;for(let u=0;u<n;++u){let s=e[u],c=t(s);c!==void 0&&(r[l]=le(c),l=l+1|0)}return r.length=l,r}function Re(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}}let h=new Map,C=new Map,D=new Map,p={contents:void 0},N=new Set,T={contents:!1},b={contents:!1};function U(e){if(C.get(e)===void 0){C.set(e,new Set);return}}function je(e,t){let n=C.get(e);if(n!==void 0){n.forEach(t);return}}function Pe(e,t){let n=C.get(e);if(n!==void 0){n.add(t);return}}function Ge(e,t){let n=C.get(e);if(n!==void 0){n.delete(t);return}}function xe(e){return Array.from(H(C.get(e),new Set).values())}function ue(e,t){let n=p.contents;p.contents=e;try{let r=t();return p.contents=n,r}catch(r){throw p.contents=n,r}}function De(e){let t=p.contents;p.contents=void 0;try{let n=e();return p.contents=t,n}catch(n){throw p.contents=t,n}}function Fe(e){let t=p.contents;return t!==void 0?t===e:!1}function Le(e){if(!T.contents){T.contents=!0;try{e(),T.contents=!1;return}catch(t){throw T.contents=!1,t}}}function Be(e,t){U(t);let n=Fe(e),r=h.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),Pe(t,e)}function I(e){e.deps.forEach(t=>Ge(t,e.id)),e.deps.clear()}function ze(e){let t=D.get(e);if(t===void 0)return;D.delete(e);let n=h.get(t);if(n!==void 0){I(n),h.delete(t);return}}function ie(e){return Ie(e,0,(t,n)=>n>t?n:t)}function Ve(e){let t=[];return e.deps.forEach(n=>je(n,r=>{if(r===e.id)return;let l=h.get(r);if(l===void 0)return;if(typeof l.kind=="object"){t.push(l.level);return}})),ie(t)+1|0}function We(e){let t=[];return e.deps.forEach(n=>{let r=D.get(n);if(r===void 0||r===e.id)return;let l=h.get(r);if(l!==void 0){t.push(l.level);return}}),ie(t)+1|0}function V(e){return typeof e.kind=="object"?We(e):Ve(e)}function Xe(e,t){let n=h.get(e),r=h.get(t);if(n===void 0)return r!==void 0?1:0;if(r===void 0)return-1;let u=typeof n.kind=="object"?0:1,c=typeof r.kind=="object"?0:1,d=u-c|0;return d!==0?d:n.level-r.level|0}function qe(e){b.contents=!0,I(e),ue(e.id,()=>{e.run(),b.contents=!1}),e.level=V(e)}function oe(){for(;N.size>0;){let e=Array.from(N.values());N.clear(),e.sort(Xe),e.forEach(t=>{let n=h.get(t);if(n!==void 0)return qe(n)})}}function ce(e){if(U(e),xe(e).forEach(t=>{let n=h.get(t);if(n===void 0)return;let r=n.kind;if(typeof r=="object")return n.dirty?void 0:(n.dirty=!0,ce(r.VAL));N.add(t)}),N.size>0)return Le(oe)}function de(e){let t=D.get(e);if(t===void 0)return;let n=h.get(t);if(n!==void 0&&n.dirty){b.contents=!0,I(n),ue(t,()=>{n.run(),n.dirty=!1,b.contents=!1}),n.level=V(n);return}}function Ke(e){let t=T.contents;T.contents=!0;try{let n=e();return t||(T.contents=!1,N.size>0&&oe()),n}catch(n){throw t||(T.contents=!1),n}}let He=De,Ue=U;function ae(e,t,n){let r=K();return Ue(r),{id:r,value:{contents:e},version:{contents:0},equals:H(n,(l,u)=>l===u),name:t}}function Je(e){de(e.id);let t=p.contents;return t!==void 0&&Be(t,e.id),e.value.contents}function Qe(e){return de(e.id),e.value.contents}function se(e,t){let n;try{n=!e.equals(e.value.contents,t)}catch{n=!0}if(n)return e.value.contents=t,e.version.contents=e.version.contents+1|0,ce(e.id)}function Ye(e,t){se(e,t(e.value.contents))}const Ze=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Scheduler:void 0,batch:Ke,get:Je,make:ae,peek:Qe,set:se,untrack:He,update:Ye},Symbol.toStringTag,{value:"Module"}));function fe(e,t,n,r){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0,name:r}}function et(e,t){let n=K(),r={contents:void 0},u=fe(n,"Effect",()=>{let d=r.contents;d!==void 0&&d(),r.contents=e()},t);h.set(n,u),b.contents=!0,I(u);let s=p.contents;p.contents=n;try{u.run(),b.contents=!1}catch(d){throw p.contents=s,b.contents=!1,d}return p.contents=s,u.level=V(u),{dispose:()=>{let d=h.get(n);if(d===void 0)return;let L=r.contents;L!==void 0&&L(),I(d),h.delete(n)}}}const tt=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,run:et},Symbol.toStringTag,{value:"Module"}));function nt(e,t){let n=ae(void 0,t,void 0),r=K(),l=()=>{let c=e();n.value.contents=c},u=fe(r,{NAME:"Computed",VAL:n.id},l,void 0);h.set(r,u),b.contents=!0,I(u);let s=p.contents;p.contents=r;try{u.run(),u.dirty=!1,b.contents=!1}catch(c){throw p.contents=s,b.contents=!1,c}return p.contents=s,u.level=V(u),D.set(n.id,r),n}function rt(e){ze(e.id)}const lt=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,Signal:void 0,dispose:rt,make:nt},Symbol.toStringTag,{value:"Module"}));let i=Ze,S=lt,w=tt;function pe(e){return Me(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function me(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,s)=>{let c=n[s];return u.TAG==="Static"?c===u._0:(r[u._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function J(e,t){return me(pe(e),t)}const ut=Object.freeze(Object.defineProperty({__proto__:null,match:J,matchPath:me,parsePattern:pe},Symbol.toStringTag,{value:"Module"}));function it(e,t){delete e[t]}function M(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 ot={setAttrOrProp:M},W={contents:void 0};function ct(){return{disposers:[],computeds:[]}}function R(e,t){let n=W.contents;W.contents=e;let r=t();return W.contents=n,r}function j(e,t){e.disposers.push(t)}function he(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>S.dispose(t))}function P(e,t){e.__xote_owner__=t}function _e(e){return Ne(e.__xote_owner__)}let dt={currentOwner:W,createOwner:ct,runWithOwner:R,addDisposer:j,disposeOwner:he,setOwner:P,getOwner:_e};function ge(e,t){return[e,{TAG:"Static",_0:t}]}function Se(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Ee(e,t){return[e,{TAG:"Compute",_0:t}]}let at={$$static:ge,signal:Se,computed:Ee};function F(e){let t=_e(e);t!==void 0&&he(t),Array.from(e.childNodes||[]).forEach(F)}function O(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=document.createElement(e.tag),u={disposers:[],computeds:[]};return P(l,u),R(u,()=>{r.forEach(o=>{let m=o[1],E=o[0];switch(m.TAG){case"Static":return M(l,E,m._0);case"SignalValue":let v=m._0;M(l,E,i.peek(v));let y=w.run(()=>{M(l,E,i.get(v))},void 0);return j(u,y);case"Compute":let z=m._0;M(l,E,z());let x=w.run(()=>{M(l,E,z())},void 0);return j(u,x)}}),n.forEach(o=>{l.addEventListener(o[0],o[1])}),t.forEach(o=>{let m=O(o);l.appendChild(m)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let s=e._0,c=document.createTextNode(i.peek(s)),d={disposers:[],computeds:[]};return P(c,d),R(d,()=>{let o=w.run(()=>{c.textContent=i.get(s)},void 0);j(d,o)}),c;case"Fragment":let L=document.createDocumentFragment();return e._0.forEach(o=>{let m=O(o);L.appendChild(m)}),L;case"SignalFragment":let pn=e._0,Z={disposers:[],computeds:[]},G=document.createElement("div");return G.setAttribute("style","display: contents"),P(G,Z),R(Z,()=>{let o=w.run(()=>{let m=i.get(pn);Array.from(G.childNodes||[]).forEach(F),G.innerHTML="",m.forEach(v=>{let y=O(v);G.appendChild(y)})},void 0);j(Z,o)}),G;case"LazyComponent":let Oe={disposers:[],computeds:[]},mn=R(Oe,e._0),Te=O(mn);return P(Te,Oe),Te;case"KeyedList":let ee=e.renderItem,te=e.keyFn,$e=e.signal,ne={disposers:[],computeds:[]},re=document.createComment(" keyed-list-start "),B=document.createComment(" keyed-list-end ");P(re,ne);let A={},hn=()=>{let o=B.parentNode;if(o==null)return;let m=i.get($e),E={};m.forEach(a=>{E[te(a)]=a});let v=[];Object.keys(A).forEach(a=>{if(E[a]===void 0){v.push(a);return}}),v.forEach(a=>{let f=A[a];if(f!==void 0){F(f.element),f.element.remove(),it(A,a);return}});let y=[],z={};m.forEach(a=>{let f=te(a),q=A[f];if(q!==void 0){if(q.item!==a){z[f]=!0;let Sn=ee(a),En=O(Sn),Ae={key:f,item:a,element:En};y.push(Ae),A[f]=Ae;return}y.push(q);return}let _n=ee(a),gn=O(_n),ke={key:f,item:a,element:gn};y.push(ke),A[f]=ke});let x={contents:re.nextSibling};y.forEach(a=>{let f=x.contents;if(f==null){o.insertBefore(a.element,B);return}if(f===B){o.insertBefore(a.element,B);return}if(f===a.element){x.contents=f.nextSibling;return}H(z[a.key],!1)?(F(f),o.replaceChild(a.element,f),x.contents=a.element.nextSibling):(o.insertBefore(a.element,f),x.contents=a.element.nextSibling)})},X=document.createDocumentFragment();return X.appendChild(re),i.peek($e).forEach(o=>{let m=te(o),E=ee(o),v=O(E),y={key:m,item:o,element:v};A[m]=y,X.appendChild(v)}),X.appendChild(B),R(ne,()=>{let o=w.run(()=>{hn()},void 0);j(ne,o)}),X}}let st={disposeElement:F,render:O};function ft(e){return{TAG:"Text",_0:e}}function pt(e){return{TAG:"SignalText",_0:S.make(e,void 0)}}function mt(e){return{TAG:"Fragment",_0:e}}function Q(e){return{TAG:"SignalFragment",_0:e}}function ht(e,t){return{TAG:"SignalFragment",_0:S.make(()=>i.get(e).map(t),void 0)}}function _t(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function g(e,t,n,r,l){let u=t!==void 0?t:[].map(d=>d),s=n!==void 0?n:[].map(d=>d),c=r!==void 0?r:[].map(d=>d);return{TAG:"Element",tag:e,attrs:u,events:s,children:c}}function gt(e,t,n,r){return g("div",e,t,n)}function St(e,t,n,r){return g("span",e,t,n)}function Et(e,t,n,r){return g("button",e,t,n)}function bt(e,t,n){return g("input",e,t,void 0)}function vt(e,t,n,r){return g("h1",e,t,n)}function yt(e,t,n,r){return g("h2",e,t,n)}function wt(e,t,n,r){return g("h3",e,t,n)}function Ot(e,t,n,r){return g("p",e,t,n)}function Tt(e,t,n,r){return g("ul",e,t,n)}function $t(e,t,n,r){return g("li",e,t,n)}function be(e,t,n,r){return g("a",e,t,n)}function kt(){return{TAG:"Text",_0:""}}function ve(e,t){let n=O(e);t.appendChild(n)}function At(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return ve(e,n)}let ye=ge;const Ct=Object.freeze(Object.defineProperty({__proto__:null,$$null:kt,Attributes:at,DOM:ot,Reactivity:dt,Render:st,a:be,attr:ye,button:Et,computedAttr:Ee,div:gt,element:g,fragment:mt,h1:vt,h2:yt,h3:wt,input:bt,keyedList:_t,li:$t,list:ht,mount:ve,mountById:At,p:Ot,signalAttr:Se,signalFragment:Q,span:St,text:ft,textSignal:pt,ul:Tt},Symbol.toStringTag,{value:"Module"}));let k=i.make({pathname:"/",search:"",hash:""},void 0,void 0);function Y(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Nt(){i.set(k,Y());let e=t=>i.set(k,Y());window.addEventListener("popstate",e)}function we(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.pushState(d,"",c),i.set(k,s)}function It(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",s={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.replaceState(d,"",c),i.set(k,s)}function Mt(e,t){return Q(S.make(()=>{let n=i.get(k),r=J(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Rt(e){return Q(S.make(()=>{let t=i.get(k),n=Re(e,r=>{let l=J(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function jt(e,t,n,r){let l=t!==void 0?t:[],u=n!==void 0?n:[],s=c=>{c.preventDefault(),we(e,void 0,void 0)};return be(l.concat([ye("href",e)]),[["click",s]],u)}const Pt=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,Route:void 0,getCurrentLocation:Y,init:Nt,link:jt,location:k,push:we,replace:It,route:Mt,routes:Rt},Symbol.toStringTag,{value:"Module"}));function Gt(e){return e.TAG==="Reactive"?i.get(e._0):e._0}function xt(e){return{TAG:"Static",_0:e}}function Dt(e){return{TAG:"Reactive",_0:e}}const Ft=Object.freeze(Object.defineProperty({__proto__:null,$$static:xt,get:Gt,reactive:Dt},Symbol.toStringTag,{value:"Module"}));let Lt=i.Id,Bt=i.Scheduler,zt=i.make,Vt=i.get,Wt=i.peek,Xt=i.set,qt=i.update,Kt=i.batch,Ht=i.untrack,Ut={Id:Lt,Scheduler:Bt,make:zt,get:Vt,peek:Wt,set:Xt,update:qt,batch:Kt,untrack:Ht},Jt=S.Id,Qt=S.Signal,Yt=S.Observer,Zt=S.Scheduler,en=S.make,tn=S.dispose,nn={Id:Jt,Signal:Qt,Observer:Yt,Scheduler:Zt,make:en,dispose:tn},rn=w.Id,ln=w.Observer,un=w.Scheduler,on=w.run,cn={Id:rn,Observer:ln,Scheduler:un,run:on},dn=Ct,an=ut,sn=Pt,fn=Ft;_.Component=dn,_.Computed=nn,_.Effect=cn,_.ReactiveProp=fn,_.Route=an,_.Router=sn,_.Signal=Ut,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
package/src/Xote__JSX.res
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
open Signals
|
|
2
2
|
module Component = Xote__Component
|
|
3
|
+
module ReactiveProp = Xote__ReactiveProp
|
|
3
4
|
|
|
4
5
|
/* ReScript JSX transform type aliases */
|
|
5
6
|
type element = Component.node
|
|
@@ -42,22 +43,8 @@ let null = (): element => Component.text("")
|
|
|
42
43
|
|
|
43
44
|
/* Elements module for lowercase HTML tags */
|
|
44
45
|
module Elements = {
|
|
45
|
-
/*
|
|
46
|
-
|
|
47
|
-
type rec attributeValue = Any('a): attributeValue
|
|
48
|
-
|
|
49
|
-
/* Automatic conversion from string to attributeValue */
|
|
50
|
-
external fromString: string => attributeValue = "%identity"
|
|
51
|
-
|
|
52
|
-
/* Helper to convert a signal to an attributeValue */
|
|
53
|
-
let signal = (s: Signals.Signal.t<string>): attributeValue => Any(s)
|
|
54
|
-
|
|
55
|
-
/* Helper to convert a computed function to an attributeValue */
|
|
56
|
-
let computed = (f: unit => string): attributeValue => Any(f)
|
|
57
|
-
|
|
58
|
-
/* Props type for HTML elements - supports common attributes and events
|
|
59
|
-
* String-like attributes use polymorphic types to accept strings, signals, or computed functions
|
|
60
|
-
* Boolean attributes also use polymorphic types to accept bools, signals, or computed functions
|
|
46
|
+
/* Props type for HTML elements - accepts both raw values and ReactiveProp.t for flexibility
|
|
47
|
+
* This allows ergonomic JSX like class="foo" while also supporting class={ReactiveProp.reactive(signal)}
|
|
61
48
|
*/
|
|
62
49
|
type props<
|
|
63
50
|
'id,
|
|
@@ -91,7 +78,7 @@ module Elements = {
|
|
|
91
78
|
'ariaExpanded,
|
|
92
79
|
'ariaSelected,
|
|
93
80
|
> = {
|
|
94
|
-
/* Standard attributes -
|
|
81
|
+
/* Standard attributes - accept raw strings or ReactiveProp.t<string> */
|
|
95
82
|
id?: 'id,
|
|
96
83
|
class?: 'class,
|
|
97
84
|
style?: 'style,
|
|
@@ -149,42 +136,58 @@ module Elements = {
|
|
|
149
136
|
children?: element,
|
|
150
137
|
}
|
|
151
138
|
|
|
152
|
-
/* Helper to detect if a value is a
|
|
153
|
-
|
|
139
|
+
/* Helper to detect if a value is a ReactiveProp variant (checks for Static/Reactive tags) */
|
|
140
|
+
let isReactiveProp = (value: 'a): bool => {
|
|
141
|
+
%raw(`value && typeof value === 'object' && ('TAG' in value) && (value.TAG === 'Static' || value.TAG === 'Reactive')`)
|
|
142
|
+
}
|
|
154
143
|
|
|
155
|
-
/* Helper to convert
|
|
144
|
+
/* Helper to convert string attribute value (supports raw string, ReactiveProp, Signal, or computed function) */
|
|
156
145
|
let convertAttrValue = (key: string, value: 'a): (string, Component.attrValue) => {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
146
|
+
if isReactiveProp(value) {
|
|
147
|
+
// It's a ReactiveProp variant - pattern match on it
|
|
148
|
+
let rp: ReactiveProp.t<string> = Obj.magic(value)
|
|
149
|
+
switch rp {
|
|
150
|
+
| Static(s) => Component.attr(key, s)
|
|
151
|
+
| Reactive(signal) => Component.signalAttr(key, signal)
|
|
152
|
+
}
|
|
153
|
+
} else if typeof(value) == #function {
|
|
154
|
+
// It's a computed function (for backward compatibility)
|
|
160
155
|
let f: unit => string = Obj.magic(value)
|
|
161
156
|
Component.computedAttr(key, f)
|
|
162
|
-
} else if typeof(value) == #object
|
|
163
|
-
// It's a signal (
|
|
157
|
+
} else if typeof(value) == #object {
|
|
158
|
+
// It's a raw signal (for backward compatibility)
|
|
164
159
|
let sig: Signal.t<string> = Obj.magic(value)
|
|
165
160
|
Component.signalAttr(key, sig)
|
|
166
161
|
} else {
|
|
167
|
-
// It's a
|
|
162
|
+
// It's a raw string
|
|
168
163
|
let s: string = Obj.magic(value)
|
|
169
164
|
Component.attr(key, s)
|
|
170
165
|
}
|
|
171
166
|
}
|
|
172
167
|
|
|
173
|
-
/* Helper to convert boolean attribute
|
|
168
|
+
/* Helper to convert boolean attribute value (supports raw bool, ReactiveProp, Signal, or computed function) */
|
|
174
169
|
let convertBoolAttrValue = (key: string, value: 'a): (string, Component.attrValue) => {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
170
|
+
if isReactiveProp(value) {
|
|
171
|
+
// It's a ReactiveProp variant - pattern match on it
|
|
172
|
+
let rp: ReactiveProp.t<bool> = Obj.magic(value)
|
|
173
|
+
switch rp {
|
|
174
|
+
| Static(b) => Component.attr(key, b ? "true" : "false")
|
|
175
|
+
| Reactive(signal) => {
|
|
176
|
+
let strSignal = Computed.make(() => Signal.get(signal) ? "true" : "false")
|
|
177
|
+
Component.signalAttr(key, strSignal)
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
} else if typeof(value) == #function {
|
|
181
|
+
// It's a computed function that returns bool (for backward compatibility)
|
|
178
182
|
let f: unit => bool = Obj.magic(value)
|
|
179
183
|
Component.computedAttr(key, () => f() ? "true" : "false")
|
|
180
|
-
} else if typeof(value) == #object
|
|
181
|
-
// It's a signal
|
|
184
|
+
} else if typeof(value) == #object {
|
|
185
|
+
// It's a raw signal (for backward compatibility)
|
|
182
186
|
let sig: Signal.t<bool> = Obj.magic(value)
|
|
183
|
-
// Create a computed signal that converts bool to string
|
|
184
187
|
let strSignal = Computed.make(() => Signal.get(sig) ? "true" : "false")
|
|
185
188
|
Component.signalAttr(key, strSignal)
|
|
186
189
|
} else {
|
|
187
|
-
// It's a
|
|
190
|
+
// It's a raw bool
|
|
188
191
|
let b: bool = Obj.magic(value)
|
|
189
192
|
Component.attr(key, b ? "true" : "false")
|
|
190
193
|
}
|
|
@@ -206,7 +209,7 @@ module Elements = {
|
|
|
206
209
|
}
|
|
207
210
|
}
|
|
208
211
|
|
|
209
|
-
/* Convert props to attrs array
|
|
212
|
+
/* Convert props to attrs array */
|
|
210
213
|
let propsToAttrs = (props: props<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _>): array<(string, Component.attrValue)> => {
|
|
211
214
|
let attrs = []
|
|
212
215
|
|
|
@@ -280,7 +283,7 @@ module Elements = {
|
|
|
280
283
|
}
|
|
281
284
|
}
|
|
282
285
|
|
|
283
|
-
/* Convert props to events array
|
|
286
|
+
/* Convert props to events array */
|
|
284
287
|
let propsToEvents = (props: props<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _>): array<(string, Dom.event => unit)> => {
|
|
285
288
|
let events = []
|
|
286
289
|
|
package/src/Xote__JSX.res.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
3
|
import * as Signals from "rescript-signals/src/Signals.res.mjs";
|
|
4
|
-
import * as Core__Option from "@rescript/core/src/Core__Option.res.mjs";
|
|
5
4
|
import * as Xote__Component from "./Xote__Component.res.mjs";
|
|
6
5
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
7
6
|
|
|
@@ -28,18 +27,20 @@ function $$null() {
|
|
|
28
27
|
return Xote__Component.text("");
|
|
29
28
|
}
|
|
30
29
|
|
|
31
|
-
function
|
|
32
|
-
return
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function computed(f) {
|
|
36
|
-
return f;
|
|
30
|
+
function isReactiveProp(value) {
|
|
31
|
+
return (value && typeof value === 'object' && ('TAG' in value) && (value.TAG === 'Static' || value.TAG === 'Reactive'));
|
|
37
32
|
}
|
|
38
33
|
|
|
39
34
|
function convertAttrValue(key, value) {
|
|
40
|
-
if (
|
|
35
|
+
if (isReactiveProp(value)) {
|
|
36
|
+
if (value.TAG === "Reactive") {
|
|
37
|
+
return Xote__Component.signalAttr(key, value._0);
|
|
38
|
+
} else {
|
|
39
|
+
return Xote__Component.attr(key, value._0);
|
|
40
|
+
}
|
|
41
|
+
} else if (typeof value === "function") {
|
|
41
42
|
return Xote__Component.computedAttr(key, value);
|
|
42
|
-
} else if (typeof value === "object"
|
|
43
|
+
} else if (typeof value === "object") {
|
|
43
44
|
return Xote__Component.signalAttr(key, value);
|
|
44
45
|
} else {
|
|
45
46
|
return Xote__Component.attr(key, value);
|
|
@@ -47,6 +48,20 @@ function convertAttrValue(key, value) {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
function convertBoolAttrValue(key, value) {
|
|
51
|
+
if (isReactiveProp(value)) {
|
|
52
|
+
if (value.TAG !== "Reactive") {
|
|
53
|
+
return Xote__Component.attr(key, value._0 ? "true" : "false");
|
|
54
|
+
}
|
|
55
|
+
let signal = value._0;
|
|
56
|
+
let strSignal = Signals.Computed.make(() => {
|
|
57
|
+
if (Signals.Signal.get(signal)) {
|
|
58
|
+
return "true";
|
|
59
|
+
} else {
|
|
60
|
+
return "false";
|
|
61
|
+
}
|
|
62
|
+
}, undefined);
|
|
63
|
+
return Xote__Component.signalAttr(key, strSignal);
|
|
64
|
+
}
|
|
50
65
|
if (typeof value === "function") {
|
|
51
66
|
return Xote__Component.computedAttr(key, () => {
|
|
52
67
|
if (value()) {
|
|
@@ -56,17 +71,17 @@ function convertBoolAttrValue(key, value) {
|
|
|
56
71
|
}
|
|
57
72
|
});
|
|
58
73
|
}
|
|
59
|
-
if (
|
|
74
|
+
if (typeof value !== "object") {
|
|
60
75
|
return Xote__Component.attr(key, value ? "true" : "false");
|
|
61
76
|
}
|
|
62
|
-
let strSignal = Signals.Computed.make(() => {
|
|
77
|
+
let strSignal$1 = Signals.Computed.make(() => {
|
|
63
78
|
if (Signals.Signal.get(value)) {
|
|
64
79
|
return "true";
|
|
65
80
|
} else {
|
|
66
81
|
return "false";
|
|
67
82
|
}
|
|
68
83
|
}, undefined);
|
|
69
|
-
return Xote__Component.signalAttr(key, strSignal);
|
|
84
|
+
return Xote__Component.signalAttr(key, strSignal$1);
|
|
70
85
|
}
|
|
71
86
|
|
|
72
87
|
function addAttr(attrs, opt, key, converter) {
|
|
@@ -184,8 +199,7 @@ function jsxKeyed$1(tag, props, key, param) {
|
|
|
184
199
|
}
|
|
185
200
|
|
|
186
201
|
let Elements = {
|
|
187
|
-
|
|
188
|
-
computed: computed,
|
|
202
|
+
isReactiveProp: isReactiveProp,
|
|
189
203
|
convertAttrValue: convertAttrValue,
|
|
190
204
|
convertBoolAttrValue: convertBoolAttrValue,
|
|
191
205
|
addAttr: addAttr,
|
|
@@ -203,12 +217,15 @@ let Elements = {
|
|
|
203
217
|
|
|
204
218
|
let Component;
|
|
205
219
|
|
|
220
|
+
let ReactiveProp;
|
|
221
|
+
|
|
206
222
|
let jsxs = jsx;
|
|
207
223
|
|
|
208
224
|
let jsxsKeyed = jsxKeyed;
|
|
209
225
|
|
|
210
226
|
export {
|
|
211
227
|
Component,
|
|
228
|
+
ReactiveProp,
|
|
212
229
|
jsx,
|
|
213
230
|
jsxs,
|
|
214
231
|
jsxKeyed,
|
|
@@ -10,7 +10,23 @@ function get(value) {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
function $$static(value) {
|
|
14
|
+
return {
|
|
15
|
+
TAG: "Static",
|
|
16
|
+
_0: value
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function reactive(signal) {
|
|
21
|
+
return {
|
|
22
|
+
TAG: "Reactive",
|
|
23
|
+
_0: signal
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
13
27
|
export {
|
|
14
28
|
get,
|
|
29
|
+
$$static,
|
|
30
|
+
reactive,
|
|
15
31
|
}
|
|
16
32
|
/* Signals Not a pure module */
|