xote 3.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -16
- package/dist/xote.cjs +1 -1
- package/dist/xote.mjs +487 -975
- package/dist/xote.umd.js +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
# xote
|
|
1
|
+
# xote
|
|
2
2
|

|
|
3
3
|

|
|
4
4
|

|
|
5
5
|
|
|
6
|
-
Xote is a lightweight
|
|
6
|
+
Xote is a lightweight UI library for ReScript that combines fine-grained reactivity with a minimal component system. Built on [rescript-signals](https://github.com/pedrobslisboa/rescript-signals), it provides declarative components, JSX support, and signal-based routing for building reactive web applications.
|
|
7
7
|
|
|
8
8
|
## Features
|
|
9
9
|
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- Signal-based router: SPA navigation with pattern matching and dynamic parameters
|
|
10
|
+
- **Reactive Components**: Declarative UI building with JSX support and direct DOM updates
|
|
11
|
+
- **Signal-based Reactivity**: Powered by [rescript-signals](https://github.com/pedrobslisboa/rescript-signals) for automatic dependency tracking
|
|
12
|
+
- **Fine-grained Updates**: Direct DOM manipulation without virtual DOM diffing
|
|
13
|
+
- **Signal-based Router**: SPA navigation with pattern matching and dynamic parameters
|
|
14
|
+
- **Lightweight**: Minimal runtime footprint (~18kb minified)
|
|
15
|
+
- **Type-safe**: Full ReScript type safety throughout
|
|
17
16
|
|
|
18
17
|
## Getting Started
|
|
19
18
|
|
|
@@ -35,9 +34,17 @@ Then, add it to your ReScript project’s dependencies in `rescript.json`:
|
|
|
35
34
|
}
|
|
36
35
|
```
|
|
37
36
|
|
|
38
|
-
##
|
|
37
|
+
## What Makes Xote Unique?
|
|
39
38
|
|
|
40
|
-
Xote
|
|
39
|
+
While Xote uses **rescript-signals** for reactive primitives (Signal, Computed, Effect), it adds:
|
|
40
|
+
|
|
41
|
+
- **Component System**: A minimal but powerful component model with JSX support
|
|
42
|
+
- **Direct DOM Updates**: Fine-grained reactivity that updates DOM elements directly, no virtual DOM
|
|
43
|
+
- **Signal-based Router**: Client-side routing with pattern matching and reactive location state
|
|
44
|
+
- **Reactive Attributes**: Support for static, signal-based, and computed attributes on elements
|
|
45
|
+
- **Automatic Cleanup**: Effect disposal and memory management built into the component lifecycle
|
|
46
|
+
|
|
47
|
+
Xote focuses on clarity, control, and performance. The goal is to offer precise, fine-grained updates and predictable behavior with minimal abstractions.
|
|
41
48
|
|
|
42
49
|
### Quick Example
|
|
43
50
|
|
|
@@ -73,11 +80,18 @@ Component.mountById(<App />, "app")
|
|
|
73
80
|
|
|
74
81
|
## Core Concepts
|
|
75
82
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
- **
|
|
79
|
-
- **
|
|
80
|
-
- **
|
|
83
|
+
### Reactive Primitives (from rescript-signals)
|
|
84
|
+
|
|
85
|
+
- **Signal**: Reactive state container - `Signal.make(value)`
|
|
86
|
+
- **Computed**: Derived reactive value that updates automatically - `Computed.make(() => ...)`
|
|
87
|
+
- **Effect**: Side-effect functions that re-run when dependencies change - `Effect.run(() => ...)`
|
|
88
|
+
|
|
89
|
+
All reactive primitives feature automatic dependency tracking - no manual subscriptions needed.
|
|
90
|
+
|
|
91
|
+
### Xote Features
|
|
92
|
+
|
|
93
|
+
- **Component**: Declarative UI builder with JSX syntax and function-based APIs
|
|
94
|
+
- **Router**: Signal-based navigation for SPAs with pattern matching and dynamic routes
|
|
81
95
|
|
|
82
96
|
### Component Features
|
|
83
97
|
|
package/dist/xote.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});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 Ve(e){if(e!=null)return $e(e)}function p(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 Le(e,t){return e!==void 0?p(e):t}function We(e){return e!==void 0}let re={contents:0};function ce(){return re.contents=re.contents+1|0,re.contents}function ge(e,t,n,r,l){if(r<=t){for(let u=0;u<l;++u)n[u+r|0]=e[u+t|0];return}for(let u=l-1|0;u>=0;--u)n[u+r|0]=e[u+t|0]}function be(e,t,n,r,l,u,i,o,f){let c=t+n|0,s=l+u|0,d=t,E=e[t],M=l,I=r[l],P=o;for(;;){let T=P,R=I,Z=M,ve=E,ee=d;if(f(ve,R)<=0){i[T]=ve;let ne=ee+1|0;if(ne>=c)return ge(r,Z,i,T+1|0,s-Z|0);P=T+1|0,E=e[ne],d=ne;continue}i[T]=R;let te=Z+1|0;if(te>=s)return ge(e,ee,i,T+1|0,c-ee|0);P=T+1|0,I=r[te],M=te}}function Te(e,t,n,r,l,u){for(let i=0;i<l;++i){let o=e[t+i|0],f=(r+i|0)-1|0;for(;f>=r&&u(n[f],o)>0;)n[f+1|0]=n[f],f=f-1|0;n[f+1|0]=o}}function U(e,t,n,r,l,u){if(l<=5)return Te(e,t,n,r,l,u);let i=l/2|0,o=l-i|0;U(e,t+i|0,n,r+i|0,o,u),U(e,t,e,t+o|0,i,u),be(e,t+o|0,i,n,r+i|0,o,n,r,u)}function Ke(e,t){let n=e.length;if(n<=5)return Te(e,0,e,0,n,t);let r=n/2|0,l=n-r|0,u=new Array(l);U(e,r,u,0,l,t),U(e,0,e,l,r,t),be(e,l,r,u,0,l,e,0,t)}function qe(e,t){let n=e.slice(0);return Ke(n,t),n}function G(e){return e!==void 0?e.h:0}function y(e,t,n,r){let l=G(e),u=G(r);return{k:t,v:n,h:l>=u?l+1|0:u+1|0,l:e,r}}function Je(e,t){return{k:e,v:t,h:1,l:void 0,r:void 0}}function Ue(e,t){return e.v===t?e:{k:e.k,v:t,h:e.h,l:e.l,r:e.r}}function x(e,t,n,r){let l=e!==void 0?e.h:0,u=r!==void 0?r.h:0;if(l>(u+2|0)){let f=e.l,c=e.r;return G(f)>=G(c)?y(f,e.k,e.v,y(c,t,n,r)):y(y(f,e.k,e.v,c.l),c.k,c.v,y(c.r,t,n,r))}if(u<=(l+2|0))return{k:t,v:n,h:l>=u?l+1|0:u+1|0,l:e,r};let i=r.l,o=r.r;return G(o)>=G(i)?y(y(e,t,n,i),r.k,r.v,o):y(y(e,t,n,i.l),i.k,i.v,y(i.r,r.k,r.v,o))}function Ae(e,t,n){let r=e.l;return r!==void 0?x(Ae(r,t,n),e.k,e.v,e.r):(t.contents=e.k,n.contents=e.v,e.r)}function He(e,t){for(;;){let n=e;if(n===void 0)return;let r=n.k;if(t===r)return $e(n.v);e=t<r?n.l:n.r}}function C(e,t,n){if(e===void 0)return Je(t,n);let r=e.k;if(t===r)return Ue(e,n);let l=e.v;return t<r?x(C(e.l,t,n),r,l,e.r):x(e.l,r,l,C(e.r,t,n))}function le(e,t){let n=e.k,r=e.l,l=e.r;if(t===n){if(r===void 0)return l;if(l===void 0)return r;let i={contents:l.k},o={contents:l.v},f=Ae(l,i,o);return x(r,i.contents,o.contents,f)}if(t<n){if(r===void 0)return e;let i=le(r,t);return i===r?e:x(i,n,e.v,l)}if(l===void 0)return e;let u=le(l,t);return x(r,n,e.v,u)}function ue(e,t){if(e!==void 0)return le(e,t)}let m=He;function Qe(e){if(e!==void 0)return p(e);throw{RE_EXN_ID:"Not_found",Error:new Error}}let Se=Qe;function $(e,t,n){let r=e!==void 0?e.h:0,l=n!==void 0?n.h:0;return{v:t,h:(r>=l?r:l)+1|0,l:e,r:n}}function Ye(e){return{v:e,h:1,l:void 0,r:void 0}}function Ee(e,t){return t!==void 0?e!==void 0?e.h>=t.h:!1:!0}function D(e,t,n){let r=e!==void 0?e.h:0,l=n!==void 0?n.h:0;if(r>(l+2|0)){let o=e.l,f=e.r;return Ee(o,f)?$(o,e.v,$(f,t,n)):$($(o,e.v,f.l),f.v,$(f.r,t,n))}if(l<=(r+2|0))return{v:t,h:(r>=l?r:l)+1|0,l:e,r:n};let u=n.l,i=n.r;return Ee(i,u)?$($(e,t,u),n.v,i):$($(e,t,u.l),u.v,$(u.r,n.v,i))}function Ce(e,t){let n=e.l;return n!==void 0?D(Ce(n,t),e.v,e.r):(t.contents=e.v,e.r)}function Ze(e){return e===void 0}function je(e,t){for(;;){let n=e;if(n===void 0)return;je(n.l,t),t(n.v),e=n.r}}function ie(e){let t=e.l,n=e.r,r=t!==void 0?ie(t):0,l=n!==void 0?ie(n):0;return(1+r|0)+l|0}function ke(e,t,n){for(;;){let r=t,l=e,u=l.v,i=l.l,o=l.r,f=i!==void 0?ke(i,r,n):r;n[f]=u;let c=f+1|0;if(o===void 0)return c;t=c,e=o}}function et(e){if(e===void 0)return[];let t=ie(e),n=new Array(t);return ke(e,0,n),n}function tt(e,t){for(;;){let n=e;if(n===void 0)return!1;let r=n.v;if(t===r)return!0;e=t<r?n.l:n.r}}function F(e,t){if(e===void 0)return Ye(t);let n=e.v;if(t===n)return e;let r=e.l,l=e.r;if(t<n){let i=F(r,t);return i===r?e:D(i,n,l)}let u=F(l,t);return u===l?e:D(r,n,u)}function oe(e,t){if(e===void 0)return e;let n=e.v,r=e.l,l=e.r;if(t===n){if(r===void 0)return l;if(l===void 0)return r;let i={contents:l.v},o=Ce(l,i);return D(r,i.contents,o)}if(t<n){let i=oe(r,t);return i===r?e:D(i,n,l)}let u=oe(l,t);return u===l?e:D(r,n,u)}let nt=Ze,rt=tt,k=je,lt=et,ye=(function(e,t){for(var n in e)t(n)});function H(e,t){if(e===t)return!0;let n=typeof e;if(n==="string"||n==="number"||n==="bigint"||n==="boolean"||n==="undefined"||e===null)return!1;let r=typeof t;if(n==="function"||r==="function")throw{RE_EXN_ID:"Invalid_argument",_1:"equal: functional value",Error:new Error};if(r==="number"||r==="bigint"||r==="undefined"||t===null)return!1;let l=e.TAG,u=t.TAG;if(l!==u)return!1;let i=e.length|0,o=t.length|0;if(i===o)if(Array.isArray(e)){let f=0;for(;;){let c=f;if(c===i)return!0;if(!H(e[c],t[c]))return!1;f=c+1|0}}else{if(e instanceof Date&&t instanceof Date)return!(e>t||e<t);{let f={contents:!0},c=d=>{if(!Object.prototype.hasOwnProperty.call(t,d)){f.contents=!1;return}},s=d=>{if(!Object.prototype.hasOwnProperty.call(e,d)||!H(t[d],e[d])){f.contents=!1;return}};return ye(e,c),f.contents&&ye(t,s),f.contents}}else return!1}function ut(e,t){return(typeof e=="number"||typeof e=="bigint")&&(typeof t=="number"||typeof t=="bigint")?e!==t:!H(e,t)}let h={contents:void 0},_={contents:void 0},it={contents:void 0},B={contents:void 0},a={contents:void 0},g={contents:void 0},O={contents:!1},w={contents:!1},S={contents:!1};function Q(e){if(m(_.contents,e)===void 0){_.contents=C(_.contents,e,void 0);return}}function Oe(e,t){Q(t);let n=Se(m(h.contents,e));if(!H(a.contents,e)||rt(n.deps,t)!==!1)return;n.deps=F(n.deps,t);let r=Se(m(_.contents,t));_.contents=C(_.contents,t,F(r,e))}function de(e){let t=m(B.contents,e);if(t===void 0)return;B.contents=ue(B.contents,e);let n=m(h.contents,t);if(n!==void 0){X(n),h.contents=ue(h.contents,t);return}}function X(e){k(e.deps,t=>{let n=m(_.contents,t);if(n===void 0)return;let r=oe(p(n),e.id);if(_.contents=C(_.contents,t,r),nt(r)&&S.contents===!1)return de(t)}),e.deps=void 0}function Y(e){if(typeof e.kind=="object"){let r={contents:0};return k(e.deps,l=>{let u=m(_.contents,l);if(u!==void 0)return k(p(u),i=>{if(i===e.id)return;let o=m(h.contents,i);if(o===void 0)return;if(typeof o.kind=="object"&&o.level>r.contents){r.contents=o.level;return}})}),r.contents+1|0}let n={contents:0};return k(e.deps,r=>{let l=m(_.contents,r);if(l!==void 0)return k(p(l),u=>{let i=m(h.contents,u);if(i!==void 0&&i.level>n.contents){n.contents=i.level;return}})}),n.contents+1e3|0}function se(){for(;g.contents!==void 0;){let e=g.contents;g.contents=void 0;let t=lt(e);qe(t,(r,l)=>{let u=m(h.contents,r),i=m(h.contents,l);return u!==void 0?i!==void 0?u.level-i.level|0:-1:i!==void 0?1:0}).forEach(r=>{let l=m(h.contents,r);if(l===void 0)return;S.contents=!0,X(l);let u=a.contents;a.contents=r;try{l.run(),S.contents=!1}catch(i){throw a.contents=u,S.contents=!1,i}a.contents=u,l.level=Y(l)})}}function we(e){if(g.contents=F(g.contents,e),O.contents===!1&&w.contents===!1){w.contents=!0,se(),w.contents=!1;return}}function Ne(e){Q(e);let t=m(_.contents,e);if(t!==void 0)if(k(p(t),n=>{g.contents=F(g.contents,n)}),O.contents===!1&&w.contents===!1){w.contents=!0,se(),w.contents=!1;return}else return}function ot(e){let t=a.contents;a.contents=void 0;try{let n=e();return a.contents=t,n}catch(n){throw a.contents=t,n}}function ft(e){let t=O.contents;O.contents=!0;let n;try{n=e()}catch(r){throw O.contents=t,r}if(O.contents=t,g.contents!==void 0){let r=g.contents;g.contents=void 0,k(r,we)}return n}let ct,dt,st,at;const ht=Object.freeze(Object.defineProperty({__proto__:null,Id:at,IntMap:dt,IntSet:ct,Observer:st,addDep:Oe,autoDisposeComputed:de,batch:ft,batching:O,clearDeps:X,computeLevel:Y,computedToObserver:B,currentObserverId:a,ensureSignalBucket:Q,flush:se,flushing:w,notify:Ne,observers:h,pending:g,retracking:S,schedule:we,signalObservers:_,signalPeeks:it,untrack:ot},Symbol.toStringTag,{value:"Module"}));function V(e){let t=ce(),n={contents:void 0},l={id:t,kind:"Effect",run:()=>{let o=n.contents;o!==void 0&&o(),n.contents=e()},deps:void 0,level:1e3};h.contents=C(h.contents,t,l),S.contents=!0,X(l);let u=a.contents;a.contents=t;try{l.run(),S.contents=!1}catch(o){throw a.contents=u,S.contents=!1,o}return a.contents=u,l.level=Y(l),{dispose:()=>{let o=m(h.contents,t);if(o===void 0)return;let f=n.contents;f!==void 0&&f(),X(o),h.contents=ue(h.contents,t)}}}let pt,mt,_t,vt,gt,St;const Et=Object.freeze(Object.defineProperty({__proto__:null,Core:St,Id:_t,IntMap:mt,IntSet:pt,Observer:vt,Signal:gt,run:V},Symbol.toStringTag,{value:"Module"}));function ae(e){let t=ce();return Q(t),{id:t,value:{contents:e},version:{contents:0}}}function A(e){let t=a.contents;return t!==void 0&&Oe(t,e.id),e.value.contents}function J(e){return e.value.contents}function j(e,t){let n;try{n=ut(e.value.contents,t)}catch{n=!0}if(n)return e.value.contents=t,e.version.contents=e.version.contents+1|0,Ne(e.id)}function yt(e,t){j(e,t(e.value.contents))}let $t,bt,Tt,At,Ct;const jt=Object.freeze(Object.defineProperty({__proto__:null,Core:Ct,Id:At,IntMap:bt,IntSet:$t,Observer:Tt,get:A,make:ae,peek:J,set:j,update:yt},Symbol.toStringTag,{value:"Module"}));function z(e){let t=ae(),n={contents:!1},r=ce(),l=()=>{let o=e();return n.contents===!1&&(n.contents=!0),j(t,o)},u={id:r,kind:{NAME:"Computed",VAL:t.id},run:l,deps:void 0,level:0};h.contents=C(h.contents,r,u),S.contents=!0,X(u);let i=a.contents;a.contents=r;try{u.run(),S.contents=!1}catch(o){throw a.contents=i,S.contents=!1,o}return a.contents=i,u.level=Y(u),B.contents=C(B.contents,t.id,r),t}function kt(e){de(e.id)}let Ot,wt,Nt,Mt,It,Pt;const Rt=Object.freeze(Object.defineProperty({__proto__:null,Core:Mt,Id:Pt,IntMap:wt,IntSet:Ot,Observer:It,Signal:Nt,dispose:kt,make:z},Symbol.toStringTag,{value:"Module"}));function K(e,t){return[e,{TAG:"Static",_0:t}]}function Me(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Ie(e,t){return[e,{TAG:"Compute",_0:t}]}function Pe(e){return{TAG:"Text",_0:e}}function Gt(e){return{TAG:"SignalText",_0:z(e)}}function he(e){return{TAG:"Fragment",_0:e}}function pe(e){return{TAG:"SignalFragment",_0:e}}function xt(e,t){return{TAG:"SignalFragment",_0:z(()=>A(e).map(t))}}function v(e,t,n,r,l){let u=t!==void 0?t:[].map(f=>f),i=n!==void 0?n:[].map(f=>f),o=r!==void 0?r:[].map(f=>f);return{TAG:"Element",tag:e,attrs:u,events:i,children:o}}function Dt(e,t,n,r){return v("div",e,t,n)}function Bt(e,t,n,r){return v("span",e,t,n)}function Ft(e,t,n,r){return v("button",e,t,n)}function Xt(e,t,n){return v("input",e,t,void 0)}function zt(e,t,n,r){return v("h1",e,t,n)}function Vt(e,t,n,r){return v("h2",e,t,n)}function Lt(e,t,n,r){return v("h3",e,t,n)}function Wt(e,t,n,r){return v("p",e,t,n)}function Kt(e,t,n,r){return v("ul",e,t,n)}function qt(e,t,n,r){return v("li",e,t,n)}function Re(e,t,n,r){return v("a",e,t,n)}function L(e,t){let n=Le(Ve(e.__xote_disposers),[]);e.__xote_disposers=n.concat([t])}function me(e){let t=e.__xote_disposers;t!=null&&(t.forEach(r=>r.dispose()),e.__xote_disposers=[]),Array.from(e.childNodes||[]).forEach(me)}function W(e){switch(e.TAG){case"Element":let t=document.createElement(e.tag);return e.attrs.forEach(c=>{let s=c[1],d=c[0];switch(s.TAG){case"Static":t.setAttribute(d,s._0);return;case"SignalValue":let E=s._0;t.setAttribute(d,J(E));let M=V(()=>{let R=A(E);t.setAttribute(d,R)});return L(t,M);case"Compute":let I=s._0,P=z(()=>I());t.setAttribute(d,J(P));let T=V(()=>{let R=A(P);t.setAttribute(d,R)});return L(t,T)}}),e.events.forEach(c=>{t.addEventListener(c[0],c[1])}),e.children.forEach(c=>{let s=W(c);t.appendChild(s)}),t;case"Text":return document.createTextNode(e._0);case"SignalText":let n=e._0,r=document.createTextNode(J(n)),l=V(()=>{let c=A(n);r.textContent=c});return L(r,l),r;case"Fragment":let u=document.createDocumentFragment();return e._0.forEach(c=>{let s=W(c);u.appendChild(s)}),u;case"SignalFragment":let i=e._0,o=document.createElement("div");o.setAttribute("data-signal-fragment","true"),o.setAttribute("style","display: contents");let f=V(()=>{let c=A(i);Array.from(o.childNodes||[]).forEach(me),o.innerHTML="",c.forEach(d=>{let E=W(d);o.appendChild(E)})});return L(o,f),o}}function Ge(e,t){let n=W(e);t.appendChild(n)}function Jt(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Ge(e,n)}let Ut,Ht,Qt,Yt;const Zt=Object.freeze(Object.defineProperty({__proto__:null,Computed:Yt,Core:Qt,Effect:Ht,Signal:Ut,a:Re,addDisposer:L,attr:K,button:Ft,computedAttr:Ie,disposeElement:me,div:Dt,element:v,fragment:he,h1:zt,h2:Vt,h3:Lt,input:Xt,li:qt,list:xt,mount:Ge,mountById:Jt,p:Wt,render:W,signalAttr:Me,signalFragment:pe,span:Bt,text:Pe,textSignal:Gt,ul:Kt},Symbol.toStringTag,{value:"Module"}));function en(e,t){return e(t)}function tn(e,t){return e(t)}function nn(e,t,n,r){return e(t)}function rn(e,t,n,r){return e(t)}function ln(e){let t=e.children;return t!==void 0?t:he([])}let un=he;function on(){return Pe("")}function fn(e){return e}function cn(e){return e}function b(e,t){return typeof t=="function"?Ie(e,t):typeof t=="object"&&We(t.id)?Me(e,t):K(e,t)}function xe(e){let t=[],n=e.id;n!==void 0&&t.push(b("id",p(n)));let r=e.class;r!==void 0&&t.push(b("class",p(r)));let l=e.style;l!==void 0&&t.push(b("style",p(l)));let u=e.type;u!==void 0&&t.push(b("type",p(u)));let i=e.value;i!==void 0&&t.push(b("value",p(i)));let o=e.placeholder;o!==void 0&&t.push(b("placeholder",p(o)));let f=e.disabled;f!==void 0&&f&&t.push(K("disabled","true"));let c=e.checked;c!==void 0&&c&&t.push(K("checked","true"));let s=e.href;s!==void 0&&t.push(b("href",p(s)));let d=e.target;d!==void 0&&t.push(b("target",p(d)));let E=e.data;return E!==void 0&&Object.entries(E).forEach(([M,I])=>{t.push(b("data-"+M,I))}),t}function De(e){let t=[],n=e.onClick;n!==void 0&&t.push(["click",n]);let r=e.onInput;r!==void 0&&t.push(["input",r]);let l=e.onChange;l!==void 0&&t.push(["change",l]);let u=e.onSubmit;u!==void 0&&t.push(["submit",u]);let i=e.onFocus;i!==void 0&&t.push(["focus",i]);let o=e.onBlur;o!==void 0&&t.push(["blur",o]);let f=e.onKeyDown;f!==void 0&&t.push(["keydown",f]);let c=e.onKeyUp;c!==void 0&&t.push(["keyup",c]);let s=e.onMouseEnter;s!==void 0&&t.push(["mouseenter",s]);let d=e.onMouseLeave;return d!==void 0&&t.push(["mouseleave",d]),t}function Be(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function q(e,t){return{TAG:"Element",tag:e,attrs:xe(t),events:De(t),children:Be(t)}}let dn=q,sn=q;function an(e,t,n,r){return q(e,t)}function hn(e,t,n,r){return q(e,t)}let pn={signal:fn,computed:cn,convertAttrValue:b,propsToAttrs:xe,propsToEvents:De,getChildren:Be,createElement:q,jsx:dn,jsxs:sn,jsxKeyed:an,jsxsKeyed:hn},mn;const _n=Object.freeze(Object.defineProperty({__proto__:null,$$null:on,Component:mn,Elements:pn,array:un,jsx:en,jsxFragment:ln,jsxKeyed:nn,jsxs:tn,jsxsKeyed:rn},Symbol.toStringTag,{value:"Module"}));function vn(e,t){let n=e.length,r=new Array(n),l=0;for(let u=0;u<n;++u){let i=e[u],o=t(i);o!==void 0&&(r[l]=p(o),l=l+1|0)}return r.length=l,r}function gn(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let l=t(e[r]);if(l!==void 0)return l;n=r+1|0}}function Fe(e){return vn(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Xe(e,t){let n=t.split("/").filter(u=>u!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((u,i)=>{let o=n[i];return u.TAG==="Static"?o===u._0:(r[u._0]=o,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function _e(e,t){return Xe(Fe(e),t)}const Sn=Object.freeze(Object.defineProperty({__proto__:null,match:_e,matchPath:Xe,parsePattern:Fe},Symbol.toStringTag,{value:"Module"}));let N=ae({pathname:"/",search:"",hash:""});function fe(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function En(){j(N,fe());let e=t=>j(N,fe());window.addEventListener("popstate",e)}function ze(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",i={pathname:e,search:l,hash:u},o=e+l+u,f={};window.history.pushState(f,"",o),j(N,i)}function yn(e,t,n,r){let l=t!==void 0?t:"",u=n!==void 0?n:"",i={pathname:e,search:l,hash:u},o=e+l+u,f={};window.history.replaceState(f,"",o),j(N,i)}function $n(e,t){return pe(z(()=>{let n=A(N),r=_e(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]}))}function bn(e){return pe(z(()=>{let t=A(N),n=gn(e,r=>{let l=_e(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]}))}function Tn(e,t,n,r){let l=t!==void 0?t:[],u=n!==void 0?n:[],i=o=>{o.preventDefault(),ze(e,void 0,void 0)};return Re(l.concat([K("href",e)]),[["click",i]],u)}let An,Cn,jn,kn,On;const wn=Object.freeze(Object.defineProperty({__proto__:null,Component:jn,Computed:Cn,Core:On,Route:kn,Signal:An,getCurrentLocation:fe,init:En,link:Tn,location:N,push:ze,replace:yn,route:$n,routes:bn},Symbol.toStringTag,{value:"Module"}));let Nn=Zt,Mn=Rt,In=ht,Pn=Et,Rn=_n,Gn=Sn,xn=wn,Dn=jt;exports.Component=Nn;exports.Computed=Mn;exports.Core=In;exports.Effect=Pn;exports.JSX=Rn;exports.Route=Gn;exports.Router=xn;exports.Signal=Dn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let $={contents:0};function j(){return $.contents=$.contents+1|0,$.contents}function re(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 ue(e){if(e!=null)return re(e)}function F(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 I(e,t){return e!==void 0?F(e):t}function le(e,t,n){return e.reduce(n,t)}function ie(e,t){let n=e.length,r=new Array(n),u=0;for(let l=0;l<n;++l){let c=e[l],i=t(c);i!==void 0&&(r[u]=F(i),u=u+1|0)}return r.length=u,r}function oe(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let u=t(e[r]);if(u!==void 0)return u;n=r+1|0}}let s=new Map,y=new Map,w=new Map,a={contents:void 0},b=new Set,S={contents:!1},m={contents:!1};function P(e){if(y.get(e)===void 0){y.set(e,new Set);return}}function ce(e,t){let n=y.get(e);if(n!==void 0){n.forEach(t);return}}function ae(e,t){let n=y.get(e);if(n!==void 0){n.add(t);return}}function de(e,t){let n=y.get(e);if(n!==void 0){n.delete(t);return}}function se(e){return Array.from(I(y.get(e),new Set).values())}function L(e,t){let n=a.contents;a.contents=e;try{let r=t();return a.contents=n,r}catch(r){throw a.contents=n,r}}function fe(e){let t=a.contents;a.contents=void 0;try{let n=e();return a.contents=t,n}catch(n){throw a.contents=t,n}}function pe(e){let t=a.contents;return t!==void 0?t===e:!1}function he(e){if(!S.contents){S.contents=!0;try{e(),S.contents=!1;return}catch(t){throw S.contents=!1,t}}}function me(e,t){P(t);let n=pe(e),r=s.get(e);if(n&&r!==void 0&&!r.deps.has(t))return r.deps.add(t),ae(t,e)}function T(e){e.deps.forEach(t=>de(t,e.id)),e.deps.clear()}function _e(e){let t=w.get(e);if(t===void 0)return;w.delete(e);let n=s.get(t);if(n!==void 0){T(n),s.delete(t);return}}function V(e){return le(e,0,(t,n)=>n>t?n:t)}function Se(e){let t=[];return e.deps.forEach(n=>ce(n,r=>{if(r===e.id)return;let u=s.get(r);if(u===void 0)return;if(typeof u.kind=="object"){t.push(u.level);return}})),V(t)+1|0}function ge(e){let t=[];return e.deps.forEach(n=>{let r=w.get(n);if(r===void 0||r===e.id)return;let u=s.get(r);if(u!==void 0){t.push(u.level);return}}),V(t)+1|0}function C(e){return typeof e.kind=="object"?ge(e):Se(e)}function Ee(e,t){let n=s.get(e),r=s.get(t);if(n===void 0)return r!==void 0?1:0;if(r===void 0)return-1;let l=typeof n.kind=="object"?0:1,i=typeof r.kind=="object"?0:1,d=l-i|0;return d!==0?d:n.level-r.level|0}function ve(e){m.contents=!0,T(e),L(e.id,()=>{e.run(),m.contents=!1}),e.level=C(e)}function B(){for(;b.size>0;){let e=Array.from(b.values());b.clear(),e.sort(Ee),e.forEach(t=>{let n=s.get(t);if(n!==void 0)return ve(n)})}}function z(e){if(P(e),se(e).forEach(t=>{let n=s.get(t);if(n===void 0)return;let r=n.kind;if(typeof r=="object")return n.dirty?void 0:(n.dirty=!0,z(r.VAL));b.add(t)}),b.size>0)return he(B)}function W(e){let t=w.get(e);if(t===void 0)return;let n=s.get(t);if(n!==void 0&&n.dirty){m.contents=!0,T(n),L(t,()=>{n.run(),n.dirty=!1,m.contents=!1}),n.level=C(n);return}}function be(e){let t=S.contents;S.contents=!0;try{let n=e();return t||(S.contents=!1,b.size>0&&B()),n}catch(n){throw t||(S.contents=!1),n}}let ye=fe,Te=P;function X(e,t,n){let r=j();return Te(r),{id:r,value:{contents:e},version:{contents:0},equals:I(n,(u,l)=>u===l),name:t}}function ke(e){W(e.id);let t=a.contents;return t!==void 0&&me(t,e.id),e.value.contents}function Ae(e){return W(e.id),e.value.contents}function q(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,z(e.id)}function we(e,t){q(e,t(e.value.contents))}let Oe,Ce,Ne=be,$e=ye;const Me=Object.freeze(Object.defineProperty({__proto__:null,Id:Oe,Scheduler:Ce,batch:Ne,get:ke,make:X,peek:Ae,set:q,untrack:$e,update:we},Symbol.toStringTag,{value:"Module"}));function H(e,t,n){return{id:e,kind:t,run:n,deps:new Set,level:0,dirty:!0}}function je(e){let t=j(),n={contents:void 0},u=H(t,"Effect",()=>{let i=n.contents;i!==void 0&&i(),n.contents=e()});s.set(t,u),m.contents=!0,T(u);let l=a.contents;a.contents=t;try{u.run(),m.contents=!1}catch(i){throw a.contents=l,m.contents=!1,i}return a.contents=l,u.level=C(u),{dispose:()=>{let i=s.get(t);if(i===void 0)return;let d=n.contents;d!==void 0&&d(),T(i),s.delete(t)}}}let Ie,Pe,xe;const Ge=Object.freeze(Object.defineProperty({__proto__:null,Id:Ie,Observer:Pe,Scheduler:xe,run:je},Symbol.toStringTag,{value:"Module"}));function Re(e){let t=X(void 0,void 0,void 0),n=j(),r=()=>{let c=e();t.value.contents=c},u=H(n,{NAME:"Computed",VAL:t.id},r);s.set(n,u),m.contents=!0,T(u);let l=a.contents;a.contents=n;try{u.run(),u.dirty=!1,m.contents=!1}catch(c){throw a.contents=l,m.contents=!1,c}return a.contents=l,u.level=C(u),w.set(t.id,n),t}function De(e){_e(e.id)}let Fe,Le,Ve,Be;const ze=Object.freeze(Object.defineProperty({__proto__:null,Id:Fe,Observer:Ve,Scheduler:Be,Signal:Le,dispose:De,make:Re},Symbol.toStringTag,{value:"Module"}));let o=Me,h=ze,g=Ge;function U(e){return ie(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function J(e,t){let n=t.split("/").filter(l=>l!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((l,c)=>{let i=n[c];return l.TAG==="Static"?i===l._0:(r[l._0]=i,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function x(e,t){return J(U(e),t)}const We=Object.freeze(Object.defineProperty({__proto__:null,match:x,matchPath:J,parsePattern:U},Symbol.toStringTag,{value:"Module"}));function K(e,t){return[e,{TAG:"Static",_0:t}]}function Xe(e,t){return[e,{TAG:"SignalValue",_0:t}]}function qe(e,t){return[e,{TAG:"Compute",_0:t}]}function He(e){return{TAG:"Text",_0:e}}function Ue(e){return{TAG:"SignalText",_0:h.make(e)}}function Je(e){return{TAG:"Fragment",_0:e}}function G(e){return{TAG:"SignalFragment",_0:e}}function Ke(e,t){return{TAG:"SignalFragment",_0:h.make(()=>o.get(e).map(t))}}function p(e,t,n,r,u){let l=t!==void 0?t:[].map(d=>d),c=n!==void 0?n:[].map(d=>d),i=r!==void 0?r:[].map(d=>d);return{TAG:"Element",tag:e,attrs:l,events:c,children:i}}function Qe(e,t,n,r){return p("div",e,t,n)}function Ye(e,t,n,r){return p("span",e,t,n)}function Ze(e,t,n,r){return p("button",e,t,n)}function et(e,t,n){return p("input",e,t,void 0)}function tt(e,t,n,r){return p("h1",e,t,n)}function nt(e,t,n,r){return p("h2",e,t,n)}function rt(e,t,n,r){return p("h3",e,t,n)}function ut(e,t,n,r){return p("p",e,t,n)}function lt(e,t,n,r){return p("ul",e,t,n)}function it(e,t,n,r){return p("li",e,t,n)}function Q(e,t,n,r){return p("a",e,t,n)}function k(e,t){let n=I(ue(e.__xote_disposers),[]);e.__xote_disposers=n.concat([t])}function R(e){let t=e.__xote_disposers;t!=null&&(t.forEach(r=>r.dispose()),e.__xote_disposers=[]),Array.from(e.childNodes||[]).forEach(R)}function A(e){switch(e.TAG){case"Element":let t=document.createElement(e.tag);return e.attrs.forEach(f=>{let _=f[1],E=f[0];switch(_.TAG){case"Static":t.setAttribute(E,_._0);return;case"SignalValue":let O=_._0;t.setAttribute(E,o.peek(O));let ee=g.run(()=>{let N=o.get(O);t.setAttribute(E,N)});return k(t,ee);case"Compute":let te=_._0,D=h.make(()=>te());t.setAttribute(E,o.peek(D));let ne=g.run(()=>{let N=o.get(D);t.setAttribute(E,N)});return k(t,ne)}}),e.events.forEach(f=>{t.addEventListener(f[0],f[1])}),e.children.forEach(f=>{let _=A(f);t.appendChild(_)}),t;case"Text":return document.createTextNode(e._0);case"SignalText":let n=e._0,r=document.createTextNode(o.peek(n)),u=g.run(()=>{let f=o.get(n);r.textContent=f});return k(r,u),r;case"Fragment":let l=document.createDocumentFragment();return e._0.forEach(f=>{let _=A(f);l.appendChild(_)}),l;case"SignalFragment":let c=e._0,i=document.createElement("div");i.setAttribute("data-signal-fragment","true"),i.setAttribute("style","display: contents");let d=g.run(()=>{let f=o.get(c);Array.from(i.childNodes||[]).forEach(R),i.innerHTML="",f.forEach(E=>{let O=A(E);i.appendChild(O)})});return k(i,d),i}}function Y(e,t){let n=A(e);t.appendChild(n)}function ot(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Y(e,n)}const ct=Object.freeze(Object.defineProperty({__proto__:null,a:Q,addDisposer:k,attr:K,button:Ze,computedAttr:qe,disposeElement:R,div:Qe,element:p,fragment:Je,h1:tt,h2:nt,h3:rt,input:et,li:it,list:Ke,mount:Y,mountById:ot,p:ut,render:A,signalAttr:Xe,signalFragment:G,span:Ye,text:He,textSignal:Ue,ul:lt},Symbol.toStringTag,{value:"Module"}));let v=o.make({pathname:"/",search:"",hash:""},void 0,void 0);function M(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function at(){o.set(v,M());let e=t=>o.set(v,M());window.addEventListener("popstate",e)}function Z(e,t,n,r){let u=t!==void 0?t:"",l=n!==void 0?n:"",c={pathname:e,search:u,hash:l},i=e+u+l,d={};window.history.pushState(d,"",i),o.set(v,c)}function dt(e,t,n,r){let u=t!==void 0?t:"",l=n!==void 0?n:"",c={pathname:e,search:u,hash:l},i=e+u+l,d={};window.history.replaceState(d,"",i),o.set(v,c)}function st(e,t){return G(h.make(()=>{let n=o.get(v),r=x(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]}))}function ft(e){return G(h.make(()=>{let t=o.get(v),n=oe(e,r=>{let u=x(r.pattern,t.pathname);if(typeof u=="object")return r.render(u._0)});return n!==void 0?[n]:[]}))}function pt(e,t,n,r){let u=t!==void 0?t:[],l=n!==void 0?n:[],c=i=>{i.preventDefault(),Z(e,void 0,void 0)};return Q(u.concat([K("href",e)]),[["click",c]],l)}let ht,mt;const _t=Object.freeze(Object.defineProperty({__proto__:null,Component:ht,Route:mt,getCurrentLocation:M,init:at,link:pt,location:v,push:Z,replace:dt,route:st,routes:ft},Symbol.toStringTag,{value:"Module"}));let St=o.Id,gt=o.Scheduler,Et=o.make,vt=o.get,bt=o.peek,yt=o.set,Tt=o.update,kt=o.batch,At=o.untrack,wt={Id:St,Scheduler:gt,make:Et,get:vt,peek:bt,set:yt,update:Tt,batch:kt,untrack:At},Ot=h.Id,Ct=h.Signal,Nt=h.Observer,$t=h.Scheduler,Mt=h.make,jt=h.dispose,It={Id:Ot,Signal:Ct,Observer:Nt,Scheduler:$t,make:Mt,dispose:jt},Pt=g.Id,xt=g.Observer,Gt=g.Scheduler,Rt=g.run,Dt={Id:Pt,Observer:xt,Scheduler:Gt,run:Rt},Ft=ct,Lt=We,Vt=_t;exports.Component=Ft;exports.Computed=It;exports.Effect=Dt;exports.Route=Lt;exports.Router=Vt;exports.Signal=wt;
|