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 CHANGED
@@ -1,19 +1,18 @@
1
- # xote
1
+ # xote
2
2
  ![NPM Version](https://img.shields.io/npm/v/xote)
3
3
  ![npm bundle size](https://img.shields.io/bundlephobia/min/xote)
4
4
  ![npm bundle size](https://img.shields.io/bundlephobia/minzip/xote)
5
5
 
6
- Xote is a lightweight, zero-dependency library for ReScript with fine-grained reactivity based on the [TC39 Signals proposal](https://github.com/tc39/proposal-signals). With Xote, you can build reactive web applications with automatic dependency tracking and efficient updates.
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
- - Zero dependencies: pure ReScript implementation
11
- - Lightweight and efficient runtime (~12kb minified)
12
- - Declarative components for building reactive UIs with JSX support
13
- - Reactive primitives: signals, computed values, and effects
14
- - Automatic dependency tracking: no manual subscription management
15
- - Fine-grained updates: direct DOM updates without a virtual DOM
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
- ## Philosophy
37
+ ## What Makes Xote Unique?
39
38
 
40
- Xote focuses on clarity, control, and performance. It brings reactive programming to ReScript with minimal abstractions and no runtime dependencies. The goal is to offer precise, fine-grained updates and predictable behavior without a virtual DOM.
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
- - **Signal**: Reactive state container
77
- - **Computed**: Derived reactive value that updates automatically
78
- - **Effect**: Side-effect functions that re-runs when dependencies change. Dependencies are automatically tracked, unlike React.
79
- - **Component**: Declarative UI builder using ReScript functions
80
- - **Router**: Signal-based navigation for single-page applications
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;