xote 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/xote.cjs +1 -1
- package/dist/xote.mjs +523 -613
- package/dist/xote.umd.js +1 -1
- package/package.json +7 -9
- package/rescript.json +30 -0
- package/src/Xote.res +23 -0
- package/src/Xote.res.mjs +88 -0
- package/src/Xote__Component.res +495 -0
- package/src/Xote__Component.res.mjs +487 -0
- package/src/Xote__JSX.res +305 -0
- package/src/Xote__JSX.res.mjs +244 -0
- package/src/Xote__Route.res +62 -0
- package/src/Xote__Route.res.mjs +56 -0
- package/src/Xote__Router.res +130 -0
- package/src/Xote__Router.res.mjs +116 -0
package/dist/xote.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(y,N){typeof exports=="object"&&typeof module<"u"?N(exports):typeof define=="function"&&define.amd?define(["exports"],N):(y=typeof globalThis<"u"?globalThis:y||self,N(y.xote={}))})(this,(function(y){"use strict";let N={contents:0};function U(){return N.contents=N.contents+1|0,N.contents}function $e(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 Ae(e){if(e!=null)return $e(e)}function re(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?re(e):t}function Oe(e,t,n){return e.reduce(n,t)}function Ce(e,t){let n=e.length,r=new Array(n),l=0;for(let o=0;o<n;++o){let u=e[o],c=t(u);c!==void 0&&(r[l]=re(c),l=l+1|0)}return r.length=l,r}function Ne(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,j=new Map,G=new Map,f={contents:void 0},D=new Set,$={contents:!1},w={contents:!1};function J(e){if(j.get(e)===void 0){j.set(e,new Set);return}}function Ie(e,t){let n=j.get(e);if(n!==void 0){n.forEach(t);return}}function xe(e,t){let n=j.get(e);if(n!==void 0){n.add(t);return}}function Me(e,t){let n=j.get(e);if(n!==void 0){n.delete(t);return}}function je(e){return Array.from(z(j.get(e),new Set).values())}function le(e,t){let n=f.contents;f.contents=e;try{let r=t();return f.contents=n,r}catch(r){throw f.contents=n,r}}function De(e){let t=f.contents;f.contents=void 0;try{let n=e();return f.contents=t,n}catch(n){throw f.contents=t,n}}function Re(e){let t=f.contents;return t!==void 0?t===e:!1}function Pe(e){if(!$.contents){$.contents=!0;try{e(),$.contents=!1;return}catch(t){throw $.contents=!1,t}}}function Ge(e,t){J(t);let n=Re(e),r=h.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),xe(t,e)}function R(e){e.deps.forEach(t=>Me(t,e.id)),e.deps.clear()}function Le(e){let t=G.get(e);if(t===void 0)return;G.delete(e);let n=h.get(t);if(n!==void 0){R(n),h.delete(t);return}}function ue(e){return Oe(e,0,(t,n)=>n>t?n:t)}function Fe(e){let t=[];return e.deps.forEach(n=>Ie(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}})),ue(t)+1|0}function Be(e){let t=[];return e.deps.forEach(n=>{let r=G.get(n);if(r===void 0||r===e.id)return;let l=h.get(r);if(l!==void 0){t.push(l.level);return}}),ue(t)+1|0}function V(e){return typeof e.kind=="object"?Be(e):Fe(e)}function ze(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 o=typeof n.kind=="object"?0:1,c=typeof r.kind=="object"?0:1,p=o-c|0;return p!==0?p:n.level-r.level|0}function Ve(e){w.contents=!0,R(e),le(e.id,()=>{e.run(),w.contents=!1}),e.level=V(e)}function oe(){for(;D.size>0;){let e=Array.from(D.values());D.clear(),e.sort(ze),e.forEach(t=>{let n=h.get(t);if(n!==void 0)return Ve(n)})}}function ie(e){if(J(e),je(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,ie(r.VAL));D.add(t)}),D.size>0)return Pe(oe)}function se(e){let t=G.get(e);if(t===void 0)return;let n=h.get(t);if(n!==void 0&&n.dirty){w.contents=!0,R(n),le(t,()=>{n.run(),n.dirty=!1,w.contents=!1}),n.level=V(n);return}}function We(e){let t=$.contents;$.contents=!0;try{let n=e();return t||($.contents=!1,D.size>0&&oe()),n}catch(n){throw t||($.contents=!1),n}}let Ke=De,Xe=J;function ce(e,t,n){let r=U();return Xe(r),{id:r,value:{contents:e},version:{contents:0},equals:z(n,(l,o)=>l===o),name:t}}function qe(e){se(e.id);let t=f.contents;return t!==void 0&&Ge(t,e.id),e.value.contents}function He(e){return se(e.id),e.value.contents}function ae(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,ie(e.id)}function Ue(e,t){ae(e,t(e.value.contents))}const Je=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Scheduler:void 0,batch:We,get:qe,make:ce,peek:He,set:ae,untrack:Ke,update:Ue},Symbol.toStringTag,{value:"Module"}));function de(e,t,n){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0}}function Qe(e){let t=U(),n={contents:void 0},l=de(t,"Effect",()=>{let c=n.contents;c!==void 0&&c(),n.contents=e()});h.set(t,l),w.contents=!0,R(l);let o=f.contents;f.contents=t;try{l.run(),w.contents=!1}catch(c){throw f.contents=o,w.contents=!1,c}return f.contents=o,l.level=V(l),{dispose:()=>{let c=h.get(t);if(c===void 0)return;let p=n.contents;p!==void 0&&p(),R(c),h.delete(t)}}}const Ye=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,run:Qe},Symbol.toStringTag,{value:"Module"}));function Ze(e){let t=ce(void 0,void 0,void 0),n=U(),r=()=>{let u=e();t.value.contents=u},l=de(n,{NAME:"Computed",VAL:t.id},r);h.set(n,l),w.contents=!0,R(l);let o=f.contents;f.contents=n;try{l.run(),l.dirty=!1,w.contents=!1}catch(u){throw f.contents=o,w.contents=!1,u}return f.contents=o,l.level=V(l),G.set(t.id,n),t}function et(e){Le(e.id)}const tt=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,Signal:void 0,dispose:et,make:Ze},Symbol.toStringTag,{value:"Module"}));let i=Je,S=tt,b=Ye;function fe(e){return Ce(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function pe(e,t){let n=t.split("/").filter(o=>o!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((o,u)=>{let c=n[u];return o.TAG==="Static"?c===o._0:(r[o._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function Q(e,t){return pe(fe(e),t)}const nt=Object.freeze(Object.defineProperty({__proto__:null,match:Q,matchPath:pe,parsePattern:fe},Symbol.toStringTag,{value:"Module"}));function rt(e,t){delete e[t]}function me(e,t){return[e,{TAG:"Static",_0:t}]}function lt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function ut(e,t){return[e,{TAG:"Compute",_0:t}]}function ot(e){return{TAG:"Text",_0:e}}function it(e){return{TAG:"SignalText",_0:S.make(e)}}function st(e){return{TAG:"Fragment",_0:e}}function Y(e){return{TAG:"SignalFragment",_0:e}}function ct(e,t){return{TAG:"SignalFragment",_0:S.make(()=>i.get(e).map(t))}}function v(e,t,n,r,l){let o=t!==void 0?t:[].map(p=>p),u=n!==void 0?n:[].map(p=>p),c=r!==void 0?r:[].map(p=>p);return{TAG:"Element",tag:e,attrs:o,events:u,children:c}}function at(e,t,n,r){return v("div",e,t,n)}function dt(e,t,n,r){return v("span",e,t,n)}function ft(e,t,n,r){return v("button",e,t,n)}function pt(e,t,n){return v("input",e,t,void 0)}function mt(e,t,n,r){return v("h1",e,t,n)}function ht(e,t,n,r){return v("h2",e,t,n)}function _t(e,t,n,r){return v("h3",e,t,n)}function gt(e,t,n,r){return v("p",e,t,n)}function St(e,t,n,r){return v("ul",e,t,n)}function vt(e,t,n,r){return v("li",e,t,n)}function he(e,t,n,r){return v("a",e,t,n)}let A={contents:void 0};function Et(){return{disposers:[],signals:[],computeds:[]}}function I(e,t){let n=A.contents;A.contents=e;let r=t();return A.contents=n,r}function yt(e){let t=A.contents;if(t!==void 0){t.signals.push(e);return}}function bt(e){let t=A.contents;if(t!==void 0){t.computeds.push(e);return}}function wt(e){let t=A.contents;if(t!==void 0){t.disposers.push(e);return}}function O(e,t){let n=z(Ae(e.__xote_disposers),[]);e.__xote_disposers=n.concat([t]);let r=A.contents;if(r!==void 0){r.disposers.push(t);return}}let Z=(function(e){e.__devtoolsId&&window.__xoteDevToolsMarkAsDisposed&&window.__xoteDevToolsMarkAsDisposed(e.__devtoolsId)});function W(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>{S.dispose(t),Z(t)}),e.signals.forEach(t=>Z(t))}function kt(e){let t={disposers:[],signals:[],computeds:[]};return I(t,()=>e(()=>W(t))),()=>W(t)}function Tt(e){return{TAG:"LazyComponent",_0:e}}function L(e){let t=e.__xote_owner;t!=null&&(W(t),e.__xote_owner={disposers:[],signals:[],computeds:[]});let n=e.__xote_disposers;n!=null&&(n.forEach(l=>l.dispose()),e.__xote_disposers=[]),Array.from(e.childNodes||[]).forEach(L)}function T(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=e.tag,o={disposers:[],signals:[],computeds:[]},u;switch(l){case"circle":case"clipPath":case"defs":case"ellipse":case"g":case"line":case"linearGradient":case"marker":case"mask":case"path":case"pattern":case"polygon":case"polyline":case"radialGradient":case"rect":case"stop":case"svg":case"symbol":case"text":case"textPath":case"tspan":case"use":u=document.createElementNS("http://www.w3.org/2000/svg",l);break;default:u=document.createElement(l)}return u.__xote_owner=o,I(o,()=>{r.forEach(a=>{let m=a[1],_=a[0];switch(m.TAG){case"Static":let k=m._0;_==="value"&&l==="input"?u.value=k:u.setAttribute(_,k);return;case"SignalValue":let g=m._0;if(_==="value"&&l==="input"){u.value=i.peek(g);let E=b.run(()=>{let B=i.get(g);u.value=B});return O(u,E)}u.setAttribute(_,i.peek(g));let H=b.run(()=>{let E=i.get(g);u.setAttribute(_,E)});return O(u,H);case"Compute":let P=m._0,s=S.make(()=>P());if(_==="value"&&l==="input"){u.value=i.peek(s);let E=b.run(()=>{let B=i.get(s);u.value=B});return O(u,E)}u.setAttribute(_,i.peek(s));let d=b.run(()=>{let E=i.get(s);u.setAttribute(_,E)});return O(u,d)}}),n.forEach(a=>{u.addEventListener(a[0],a[1])}),t.forEach(a=>{let m=T(a);u.appendChild(m)})}),u;case"Text":return document.createTextNode(e._0);case"SignalText":let c=e._0,p={disposers:[],signals:[],computeds:[]},K=document.createTextNode(i.peek(c));return K.__xote_owner=p,I(p,()=>{let a=b.run(()=>{let m=i.get(c);K.textContent=m});O(K,a)}),K;case"Fragment":let Se=document.createDocumentFragment();return e._0.forEach(a=>{let m=T(a);Se.appendChild(m)}),Se;case"SignalFragment":let on=e._0,ve={disposers:[],signals:[],computeds:[]},C=document.createElement("div");return C.setAttribute("data-signal-fragment","true"),C.setAttribute("style","display: contents"),C.__xote_owner=ve,I(ve,()=>{let a=b.run(()=>{let m=i.get(on);Array.from(C.childNodes||[]).forEach(L),C.innerHTML="",m.forEach(k=>{let g=T(k);C.appendChild(g)})});O(C,a)}),C;case"LazyComponent":let Ee={disposers:[],signals:[],computeds:[]},sn=I(Ee,e._0),ye=T(sn);return ye.__xote_owner=Ee,ye;case"KeyedList":let te=e.renderItem,ne=e.keyFn,be=e.signal,we={disposers:[],signals:[],computeds:[]},X=document.createComment(" keyed-list-start "),F=document.createComment(" keyed-list-end ");X.__xote_owner=we;let M={},cn=()=>{let a=F.parentNode;if(a==null)return;let m=i.get(be),_={};m.forEach(s=>{let d=ne(s);_[d]=s});let k=[];Object.keys(M).forEach(s=>{if(_[s]===void 0){k.push(s);return}}),k.forEach(s=>{let d=M[s];if(d!==void 0){L(d.element),d.element.remove(),rt(M,s);return}});let g=[],H={};m.forEach(s=>{let d=ne(s),E=M[d];if(E!==void 0){if(E.item!==s){H[d]=!0;let dn=te(s),fn=T(dn),Te={key:d,item:s,element:fn};g.push(Te),M[d]=Te;return}g.push(E);return}let B=te(s),an=T(B),ke={key:d,item:s,element:an};g.push(ke),M[d]=ke});let P={contents:X.nextSibling};g.forEach(s=>{let d=P.contents;if(d==null){a.insertBefore(s.element,F);return}if(d===F){a.insertBefore(s.element,F);return}if(d===s.element){P.contents=d.nextSibling;return}z(H[s.key],!1)?(L(d),a.replaceChild(s.element,d),P.contents=s.element.nextSibling):(a.insertBefore(s.element,d),P.contents=s.element.nextSibling)})},q=document.createDocumentFragment();return q.appendChild(X),i.peek(be).forEach(a=>{let m=ne(a),_=te(a),k=T(_),g={key:m,item:a,element:k};M[m]=g,q.appendChild(k)}),q.appendChild(F),I(we,()=>{let a=b.run(()=>{cn()});O(X,a)}),q}}function _e(e,t){let n=T(e);t.appendChild(n)}function $t(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return _e(e,n)}function At(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}const Ot=Object.freeze(Object.defineProperty({__proto__:null,a:he,addDisposer:O,attr:me,button:ft,component:Tt,computedAttr:ut,createOwner:Et,createRoot:kt,currentOwner:A,disposeElement:L,disposeOwner:W,div:at,element:v,fragment:st,h1:mt,h2:ht,h3:_t,input:pt,keyedList:At,li:vt,list:ct,markAsDisposedInDevTools:Z,mount:_e,mountById:$t,p:gt,registerComputed:bt,registerEffectDisposer:wt,registerSignal:yt,render:T,runWithOwner:I,signalAttr:lt,signalFragment:Y,span:dt,text:ot,textSignal:it,ul:St},Symbol.toStringTag,{value:"Module"}));let x=i.make({pathname:"/",search:"",hash:""},void 0,void 0);function ee(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Ct(){i.set(x,ee());let e=t=>i.set(x,ee());window.addEventListener("popstate",e)}function ge(e,t,n,r){let l=t!==void 0?t:"",o=n!==void 0?n:"",u={pathname:e,search:l,hash:o},c=e+l+o,p={};window.history.pushState(p,"",c),i.set(x,u)}function Nt(e,t,n,r){let l=t!==void 0?t:"",o=n!==void 0?n:"",u={pathname:e,search:l,hash:o},c=e+l+o,p={};window.history.replaceState(p,"",c),i.set(x,u)}function It(e,t){return Y(S.make(()=>{let n=i.get(x),r=Q(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]}))}function xt(e){return Y(S.make(()=>{let t=i.get(x),n=Ne(e,r=>{let l=Q(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]}))}function Mt(e,t,n,r){let l=t!==void 0?t:[],o=n!==void 0?n:[],u=c=>{c.preventDefault(),ge(e,void 0,void 0)};return he(l.concat([me("href",e)]),[["click",u]],o)}const jt=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,Route:void 0,getCurrentLocation:ee,init:Ct,link:Mt,location:x,push:ge,replace:Nt,route:It,routes:xt},Symbol.toStringTag,{value:"Module"}));let Dt=i.Id,Rt=i.Scheduler,Pt=i.make,Gt=i.get,Lt=i.peek,Ft=i.set,Bt=i.update,zt=i.batch,Vt=i.untrack,Wt={Id:Dt,Scheduler:Rt,make:Pt,get:Gt,peek:Lt,set:Ft,update:Bt,batch:zt,untrack:Vt},Kt=S.Id,Xt=S.Signal,qt=S.Observer,Ht=S.Scheduler,Ut=S.make,Jt=S.dispose,Qt={Id:Kt,Signal:Xt,Observer:qt,Scheduler:Ht,make:Ut,dispose:Jt},Yt=b.Id,Zt=b.Observer,en=b.Scheduler,tn=b.run,nn={Id:Yt,Observer:Zt,Scheduler:en,run:tn},rn=Ot,ln=nt,un=jt;y.Component=rn,y.Computed=Qt,y.Effect=nn,y.Route=ln,y.Router=un,y.Signal=Wt,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(g,T){typeof exports=="object"&&typeof module<"u"?T(exports):typeof define=="function"&&define.amd?define(["exports"],T):(g=typeof globalThis<"u"?globalThis:g||self,T(g.xote={}))})(this,(function(g){"use strict";let T={contents:0};function X(){return T.contents=T.contents+1|0,T.contents}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 Ce(e){if(e!=null)return Ae(e)}function re(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 q(e,t){return e!==void 0?re(e):t}function Ne(e,t,n){return e.reduce(n,t)}function Ie(e,t){let n=e.length,r=new Array(n),l=0;for(let u=0;u<n;++u){let a=e[u],c=t(a);c!==void 0&&(r[l]=re(c),l=l+1|0)}return r.length=l,r}function Me(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,F=new Map,p={contents:void 0},N=new Set,O={contents:!1},b={contents:!1};function H(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 Re(e,t){let n=C.get(e);if(n!==void 0){n.add(t);return}}function Pe(e,t){let n=C.get(e);if(n!==void 0){n.delete(t);return}}function De(e){return Array.from(q(C.get(e),new Set).values())}function le(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 Fe(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 Le(e){let t=p.contents;return t!==void 0?t===e:!1}function xe(e){if(!O.contents){O.contents=!0;try{e(),O.contents=!1;return}catch(t){throw O.contents=!1,t}}}function Ge(e,t){H(t);let n=Le(e),r=h.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),Re(t,e)}function I(e){e.deps.forEach(t=>Pe(t,e.id)),e.deps.clear()}function Be(e){let t=F.get(e);if(t===void 0)return;F.delete(e);let n=h.get(t);if(n!==void 0){I(n),h.delete(t);return}}function ue(e){return Ne(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}})),ue(t)+1|0}function ze(e){let t=[];return e.deps.forEach(n=>{let r=F.get(n);if(r===void 0||r===e.id)return;let l=h.get(r);if(l!==void 0){t.push(l.level);return}}),ue(t)+1|0}function V(e){return typeof e.kind=="object"?ze(e):Ve(e)}function We(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 Ke(e){b.contents=!0,I(e),le(e.id,()=>{e.run(),b.contents=!1}),e.level=V(e)}function ie(){for(;N.size>0;){let e=Array.from(N.values());N.clear(),e.sort(We),e.forEach(t=>{let n=h.get(t);if(n!==void 0)return Ke(n)})}}function oe(e){if(H(e),De(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,oe(r.VAL));N.add(t)}),N.size>0)return xe(ie)}function ce(e){let t=F.get(e);if(t===void 0)return;let n=h.get(t);if(n!==void 0&&n.dirty){b.contents=!0,I(n),le(t,()=>{n.run(),n.dirty=!1,b.contents=!1}),n.level=V(n);return}}function Xe(e){let t=O.contents;O.contents=!0;try{let n=e();return t||(O.contents=!1,N.size>0&&ie()),n}catch(n){throw t||(O.contents=!1),n}}let qe=Fe,He=H;function de(e,t,n){let r=X();return He(r),{id:r,value:{contents:e},version:{contents:0},equals:q(n,(l,u)=>l===u),name:t}}function Ue(e){ce(e.id);let t=p.contents;return t!==void 0&&Ge(t,e.id),e.value.contents}function Je(e){return ce(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,oe(e.id)}function Qe(e,t){se(e,t(e.value.contents))}const Ye=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Scheduler:void 0,batch:Xe,get:Ue,make:de,peek:Je,set:se,untrack:qe,update:Qe},Symbol.toStringTag,{value:"Module"}));function ae(e,t,n,r){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0,name:r}}function Ze(e,t){let n=X(),r={contents:void 0},u=ae(n,"Effect",()=>{let d=r.contents;d!==void 0&&d(),r.contents=e()},t);h.set(n,u),b.contents=!0,I(u);let a=p.contents;p.contents=n;try{u.run(),b.contents=!1}catch(d){throw p.contents=a,b.contents=!1,d}return p.contents=a,u.level=V(u),{dispose:()=>{let d=h.get(n);if(d===void 0)return;let x=r.contents;x!==void 0&&x(),I(d),h.delete(n)}}}const et=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,run:Ze},Symbol.toStringTag,{value:"Module"}));function tt(e,t){let n=de(void 0,t,void 0),r=X(),l=()=>{let c=e();n.value.contents=c},u=ae(r,{NAME:"Computed",VAL:n.id},l,void 0);h.set(r,u),b.contents=!0,I(u);let a=p.contents;p.contents=r;try{u.run(),u.dirty=!1,b.contents=!1}catch(c){throw p.contents=a,b.contents=!1,c}return p.contents=a,u.level=V(u),F.set(n.id,r),n}function nt(e){Be(e.id)}const rt=Object.freeze(Object.defineProperty({__proto__:null,Id:void 0,Observer:void 0,Scheduler:void 0,Signal:void 0,dispose:nt,make:tt},Symbol.toStringTag,{value:"Module"}));let o=Ye,S=rt,w=et;function fe(e){return Ie(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function pe(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,a)=>{let c=n[a];return u.TAG==="Static"?c===u._0:(r[u._0]=c,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function U(e,t){return pe(fe(e),t)}const lt=Object.freeze(Object.defineProperty({__proto__:null,match:U,matchPath:pe,parsePattern:fe},Symbol.toStringTag,{value:"Module"}));function ut(e,t){delete e[t]}let it={},z={contents:void 0};function ot(){return{disposers:[],computeds:[]}}function M(e,t){let n=z.contents;z.contents=e;let r=t();return z.contents=n,r}function j(e,t){e.disposers.push(t)}function me(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>S.dispose(t))}function R(e,t){e.__xote_owner__=t}function he(e){return Ce(e.__xote_owner__)}let ct={currentOwner:z,createOwner:ot,runWithOwner:M,addDisposer:j,disposeOwner:me,setOwner:R,getOwner:he};function _e(e,t){return[e,{TAG:"Static",_0:t}]}function ge(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Se(e,t){return[e,{TAG:"Compute",_0:t}]}let dt={$$static:_e,signal:ge,computed:Se};function L(e){let t=he(e);t!==void 0&&me(t),Array.from(e.childNodes||[]).forEach(L)}function k(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),M(u,()=>{r.forEach(i=>{let m=i[1],E=i[0];switch(m.TAG){case"Static":l.setAttribute(E,m._0);return;case"SignalValue":let v=m._0;l.setAttribute(E,o.peek(v));let y=w.run(()=>{l.setAttribute(E,o.get(v))},void 0);return j(u,y);case"Compute":let B=m._0;l.setAttribute(E,B());let D=w.run(()=>{l.setAttribute(E,B())},void 0);return j(u,D)}}),n.forEach(i=>{l.addEventListener(i[0],i[1])}),t.forEach(i=>{let m=k(i);l.appendChild(m)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let a=e._0,c=document.createTextNode(o.peek(a)),d={disposers:[],computeds:[]};return R(c,d),M(d,()=>{let i=w.run(()=>{c.textContent=o.get(a)},void 0);j(d,i)}),c;case"Fragment":let x=document.createDocumentFragment();return e._0.forEach(i=>{let m=k(i);x.appendChild(m)}),x;case"SignalFragment":let un=e._0,Y={disposers:[],computeds:[]},P=document.createElement("div");return P.setAttribute("style","display: contents"),R(P,Y),M(Y,()=>{let i=w.run(()=>{let m=o.get(un);Array.from(P.childNodes||[]).forEach(L),P.innerHTML="",m.forEach(v=>{let y=k(v);P.appendChild(y)})},void 0);j(Y,i)}),P;case"LazyComponent":let we={disposers:[],computeds:[]},on=M(we,e._0),ke=k(on);return R(ke,we),ke;case"KeyedList":let Z=e.renderItem,ee=e.keyFn,Oe=e.signal,te={disposers:[],computeds:[]},ne=document.createComment(" keyed-list-start "),G=document.createComment(" keyed-list-end ");R(ne,te);let A={},cn=()=>{let i=G.parentNode;if(i==null)return;let m=o.get(Oe),E={};m.forEach(s=>{E[ee(s)]=s});let v=[];Object.keys(A).forEach(s=>{if(E[s]===void 0){v.push(s);return}}),v.forEach(s=>{let f=A[s];if(f!==void 0){L(f.element),f.element.remove(),ut(A,s);return}});let y=[],B={};m.forEach(s=>{let f=ee(s),K=A[f];if(K!==void 0){if(K.item!==s){B[f]=!0;let an=Z(s),fn=k(an),$e={key:f,item:s,element:fn};y.push($e),A[f]=$e;return}y.push(K);return}let dn=Z(s),sn=k(dn),Te={key:f,item:s,element:sn};y.push(Te),A[f]=Te});let D={contents:ne.nextSibling};y.forEach(s=>{let f=D.contents;if(f==null){i.insertBefore(s.element,G);return}if(f===G){i.insertBefore(s.element,G);return}if(f===s.element){D.contents=f.nextSibling;return}q(B[s.key],!1)?(L(f),i.replaceChild(s.element,f),D.contents=s.element.nextSibling):(i.insertBefore(s.element,f),D.contents=s.element.nextSibling)})},W=document.createDocumentFragment();return W.appendChild(ne),o.peek(Oe).forEach(i=>{let m=ee(i),E=Z(i),v=k(E),y={key:m,item:i,element:v};A[m]=y,W.appendChild(v)}),W.appendChild(G),M(te,()=>{let i=w.run(()=>{cn()},void 0);j(te,i)}),W}}let st={disposeElement:L,render:k};function at(e){return{TAG:"Text",_0:e}}function ft(e){return{TAG:"SignalText",_0:S.make(e,void 0)}}function pt(e){return{TAG:"Fragment",_0:e}}function J(e){return{TAG:"SignalFragment",_0:e}}function mt(e,t){return{TAG:"SignalFragment",_0:S.make(()=>o.get(e).map(t),void 0)}}function ht(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),a=n!==void 0?n:[].map(d=>d),c=r!==void 0?r:[].map(d=>d);return{TAG:"Element",tag:e,attrs:u,events:a,children:c}}function _t(e,t,n,r){return _("div",e,t,n)}function gt(e,t,n,r){return _("span",e,t,n)}function St(e,t,n,r){return _("button",e,t,n)}function Et(e,t,n){return _("input",e,t,void 0)}function bt(e,t,n,r){return _("h1",e,t,n)}function vt(e,t,n,r){return _("h2",e,t,n)}function yt(e,t,n,r){return _("h3",e,t,n)}function wt(e,t,n,r){return _("p",e,t,n)}function kt(e,t,n,r){return _("ul",e,t,n)}function Ot(e,t,n,r){return _("li",e,t,n)}function Ee(e,t,n,r){return _("a",e,t,n)}function be(e,t){let n=k(e);t.appendChild(n)}function Tt(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return be(e,n)}let ve=_e;const $t=Object.freeze(Object.defineProperty({__proto__:null,Attributes:dt,DOM:it,Reactivity:ct,Render:st,a:Ee,attr:ve,button:St,computedAttr:Se,div:_t,element:_,fragment:pt,h1:bt,h2:vt,h3:yt,input:Et,keyedList:ht,li:Ot,list:mt,mount:be,mountById:Tt,p:wt,signalAttr:ge,signalFragment:J,span:gt,text:at,textSignal:ft,ul:kt},Symbol.toStringTag,{value:"Module"}));let $=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 At(){o.set($,Q());let e=t=>o.set($,Q());window.addEventListener("popstate",e)}function ye(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",a={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.pushState(d,"",c),o.set($,a)}function Ct(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",a={pathname:e,search:l,hash:u},c=e+l+u,d={};window.history.replaceState(d,"",c),o.set($,a)}function Nt(e,t){return J(S.make(()=>{let n=o.get($),r=U(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function It(e){return J(S.make(()=>{let t=o.get($),n=Me(e,r=>{let l=U(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function Mt(e,t,n,r){let l=t!==void 0?t:[],u=n!==void 0?n:[],a=c=>{c.preventDefault(),ye(e,void 0,void 0)};return Ee(l.concat([ve("href",e)]),[["click",a]],u)}const jt=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,Route:void 0,getCurrentLocation:Q,init:At,link:Mt,location:$,push:ye,replace:Ct,route:Nt,routes:It},Symbol.toStringTag,{value:"Module"}));let Rt=o.Id,Pt=o.Scheduler,Dt=o.make,Ft=o.get,Lt=o.peek,xt=o.set,Gt=o.update,Bt=o.batch,Vt=o.untrack,zt={Id:Rt,Scheduler:Pt,make:Dt,get:Ft,peek:Lt,set:xt,update:Gt,batch:Bt,untrack:Vt},Wt=S.Id,Kt=S.Signal,Xt=S.Observer,qt=S.Scheduler,Ht=S.make,Ut=S.dispose,Jt={Id:Wt,Signal:Kt,Observer:Xt,Scheduler:qt,make:Ht,dispose:Ut},Qt=w.Id,Yt=w.Observer,Zt=w.Scheduler,en=w.run,tn={Id:Qt,Observer:Yt,Scheduler:Zt,run:en},nn=$t,rn=lt,ln=jt;g.Component=nn,g.Computed=Jt,g.Effect=tn,g.Route=rn,g.Router=ln,g.Signal=zt,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xote",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "https://github.com/brnrdog/xote"
|
|
6
6
|
},
|
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
"module": "./dist/xote.mjs",
|
|
9
9
|
"sideEffects": false,
|
|
10
10
|
"files": [
|
|
11
|
-
"dist"
|
|
11
|
+
"dist",
|
|
12
|
+
"src/**/*.res",
|
|
13
|
+
"src/**/*.resi",
|
|
14
|
+
"src/**/*.res.mjs",
|
|
15
|
+
"rescript.json"
|
|
12
16
|
],
|
|
13
17
|
"scripts": {
|
|
14
18
|
"res:build": "rescript",
|
|
@@ -24,12 +28,6 @@
|
|
|
24
28
|
"docs:build": "npm run prepare:demos && cd website && npm run build",
|
|
25
29
|
"docs:serve": "cd website && npm run serve"
|
|
26
30
|
},
|
|
27
|
-
"exports": {
|
|
28
|
-
".": {
|
|
29
|
-
"import": "./dist/xote.mjs",
|
|
30
|
-
"require": "./dist/xote.cjs"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
31
|
"keywords": [
|
|
34
32
|
"rescript",
|
|
35
33
|
"signals",
|
|
@@ -77,6 +75,6 @@
|
|
|
77
75
|
"vite": "^7.1.12"
|
|
78
76
|
},
|
|
79
77
|
"dependencies": {
|
|
80
|
-
"rescript-signals": "^1.
|
|
78
|
+
"rescript-signals": "^1.3.0"
|
|
81
79
|
}
|
|
82
80
|
}
|
package/rescript.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "xote",
|
|
3
|
+
"sources": [
|
|
4
|
+
{
|
|
5
|
+
"dir": "src",
|
|
6
|
+
"subdirs": true,
|
|
7
|
+
"public": ["Xote"]
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"dir": "demos",
|
|
11
|
+
"subdirs": false
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"package-specs": {
|
|
15
|
+
"module": "esmodule",
|
|
16
|
+
"in-source": true
|
|
17
|
+
},
|
|
18
|
+
"suffix": ".res.mjs",
|
|
19
|
+
"dependencies": [
|
|
20
|
+
"@rescript/core",
|
|
21
|
+
"rescript-signals"
|
|
22
|
+
],
|
|
23
|
+
"compiler-flags": [
|
|
24
|
+
"-open RescriptCore"
|
|
25
|
+
],
|
|
26
|
+
"jsx": {
|
|
27
|
+
"version": 4,
|
|
28
|
+
"module": "Xote__JSX"
|
|
29
|
+
}
|
|
30
|
+
}
|
package/src/Xote.res
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Signal = {
|
|
2
|
+
include Signals.Signal
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
module Computed = {
|
|
6
|
+
include Signals.Computed
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
module Effect = {
|
|
10
|
+
include Signals.Effect
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
module Component = {
|
|
14
|
+
include Xote__Component
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
module Route = {
|
|
18
|
+
include Xote__Route
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
module Router = {
|
|
22
|
+
include Xote__Router
|
|
23
|
+
}
|
package/src/Xote.res.mjs
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Signals from "rescript-signals/src/Signals.res.mjs";
|
|
4
|
+
import * as Xote__Route from "./Xote__Route.res.mjs";
|
|
5
|
+
import * as Xote__Router from "./Xote__Router.res.mjs";
|
|
6
|
+
import * as Xote__Component from "./Xote__Component.res.mjs";
|
|
7
|
+
|
|
8
|
+
let Signal_Id = Signals.Signal.Id;
|
|
9
|
+
|
|
10
|
+
let Signal_Scheduler = Signals.Signal.Scheduler;
|
|
11
|
+
|
|
12
|
+
let Signal_make = Signals.Signal.make;
|
|
13
|
+
|
|
14
|
+
let Signal_get = Signals.Signal.get;
|
|
15
|
+
|
|
16
|
+
let Signal_peek = Signals.Signal.peek;
|
|
17
|
+
|
|
18
|
+
let Signal_set = Signals.Signal.set;
|
|
19
|
+
|
|
20
|
+
let Signal_update = Signals.Signal.update;
|
|
21
|
+
|
|
22
|
+
let Signal_batch = Signals.Signal.batch;
|
|
23
|
+
|
|
24
|
+
let Signal_untrack = Signals.Signal.untrack;
|
|
25
|
+
|
|
26
|
+
let Signal = {
|
|
27
|
+
Id: Signal_Id,
|
|
28
|
+
Scheduler: Signal_Scheduler,
|
|
29
|
+
make: Signal_make,
|
|
30
|
+
get: Signal_get,
|
|
31
|
+
peek: Signal_peek,
|
|
32
|
+
set: Signal_set,
|
|
33
|
+
update: Signal_update,
|
|
34
|
+
batch: Signal_batch,
|
|
35
|
+
untrack: Signal_untrack
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
let Computed_Id = Signals.Computed.Id;
|
|
39
|
+
|
|
40
|
+
let Computed_Signal = Signals.Computed.Signal;
|
|
41
|
+
|
|
42
|
+
let Computed_Observer = Signals.Computed.Observer;
|
|
43
|
+
|
|
44
|
+
let Computed_Scheduler = Signals.Computed.Scheduler;
|
|
45
|
+
|
|
46
|
+
let Computed_make = Signals.Computed.make;
|
|
47
|
+
|
|
48
|
+
let Computed_dispose = Signals.Computed.dispose;
|
|
49
|
+
|
|
50
|
+
let Computed = {
|
|
51
|
+
Id: Computed_Id,
|
|
52
|
+
Signal: Computed_Signal,
|
|
53
|
+
Observer: Computed_Observer,
|
|
54
|
+
Scheduler: Computed_Scheduler,
|
|
55
|
+
make: Computed_make,
|
|
56
|
+
dispose: Computed_dispose
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
let Effect_Id = Signals.Effect.Id;
|
|
60
|
+
|
|
61
|
+
let Effect_Observer = Signals.Effect.Observer;
|
|
62
|
+
|
|
63
|
+
let Effect_Scheduler = Signals.Effect.Scheduler;
|
|
64
|
+
|
|
65
|
+
let Effect_run = Signals.Effect.run;
|
|
66
|
+
|
|
67
|
+
let Effect = {
|
|
68
|
+
Id: Effect_Id,
|
|
69
|
+
Observer: Effect_Observer,
|
|
70
|
+
Scheduler: Effect_Scheduler,
|
|
71
|
+
run: Effect_run
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
let Component = Xote__Component;
|
|
75
|
+
|
|
76
|
+
let Route = Xote__Route;
|
|
77
|
+
|
|
78
|
+
let Router = Xote__Router;
|
|
79
|
+
|
|
80
|
+
export {
|
|
81
|
+
Signal,
|
|
82
|
+
Computed,
|
|
83
|
+
Effect,
|
|
84
|
+
Component,
|
|
85
|
+
Route,
|
|
86
|
+
Router,
|
|
87
|
+
}
|
|
88
|
+
/* Signals Not a pure module */
|