xote 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,19 +1,9 @@
1
- # xote
1
+ # [Xote](https://brnrdog.github.io/xote/)
2
2
  ![NPM Version](https://img.shields.io/npm/v/xote)
3
- ![npm bundle size](https://img.shields.io/bundlephobia/min/xote)
4
- ![npm bundle size](https://img.shields.io/bundlephobia/minzip/xote)
3
+ ![npm bundle size](https://badgen.net/bundlephobia/min/xote)
4
+ ![npm bundle size](https://badgen.net/bundlephobia/minzip/xote)
5
5
 
6
- Xote is a lightweight UI library for ReScript that combines fine-grained reactivity with a minimal component system. Built on [rescript-signals](https://brnrdog.github.io/rescript-signals), it provides declarative components, JSX support, and signal-based routing for building reactive web applications.
7
-
8
- ## Features
9
-
10
- - **Reactive Components**: Declarative UI building with JSX support and direct DOM updates
11
- - **Signal-based Reactivity**: Powered by [rescript-signals](https://brnrdog.github.io/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
- - **Server-Side Rendering**: SSR with hydration and automatic state transfer
15
- - **Lightweight**: Minimal runtime footprint
16
- - **Type-safe**: Full ReScript type safety throughout
6
+ Xote is a lightweight [ReScript](https://rescript-lang.org/) library that combines fine-grained reactivity and a declarative component system for building user interfaces for the web.
17
7
 
18
8
  ## Getting Started
19
9
 
@@ -21,10 +11,6 @@ Xote is a lightweight UI library for ReScript that combines fine-grained reactiv
21
11
 
22
12
  ```bash
23
13
  npm install xote
24
- # or
25
- yarn add xote
26
- # or
27
- pnpm add xote
28
14
  ```
29
15
 
30
16
  Then, add it to your ReScript project's `rescript.json`. You'll need to declare `xote` as a dependency, configure JSX to use Xote's transform, and open `Xote` so the JSX module resolves:
@@ -40,42 +26,39 @@ Then, add it to your ReScript project's `rescript.json`. You'll need to declare
40
26
  }
41
27
  ```
42
28
 
43
- `-open Xote` makes `Component`, `Html`, `Signal`, `Router`, etc. available unqualified inside your source files.
44
-
45
- ## Why Xote?
46
-
47
- Xote uses **rescript-signals** for reactive primitives (Signal, Computed, Effect), and it adds:
48
-
49
- - **Component System**: A minimal but powerful component model with JSX support for declarative UI
50
- - **Direct DOM Updates**: Fine-grained reactivity that updates DOM elements directly, no virtual DOM
51
- - **Signal-based Router**: Client-side routing with pattern matching and reactive location state
52
- - **Reactive Attributes**: Support for static, signal-based, and computed attributes on elements
53
- - **Automatic Cleanup**: Effect disposal and memory management built into the component lifecycle
54
-
55
- Xote focuses on clarity, control, and performance. The goal is to offer precise, fine-grained updates and predictable behavior with minimal abstractions, while leveraging the robust type system from ReScript.
29
+ Optional: the `-open Xote` flag makes Xote modules available unqualified inside your source files.
56
30
 
57
31
  ### Quick Example
58
32
 
59
- #### Using JSX
60
-
61
33
  ```rescript
62
34
  open Xote
63
35
 
64
36
  module App = {
37
+ @jsx.component
65
38
  let make = () => {
66
39
  // Create reactive state
67
40
  let count = Signal.make(0)
68
41
 
69
- // Event handler
70
- let increment = (_evt: Dom.event) => Signal.update(count, n => n + 1)
42
+ // Create a derived state
43
+ let doubled = Computed.make(() => Signal.get(count) * 2)
44
+
45
+ // Logs every time count changes:
46
+ Effect.run(() => {
47
+ Console.log2("Count is ", Signal.get(count))
48
+
49
+ None
50
+ })
71
51
 
72
52
  // Build the UI with JSX
73
53
  <div>
74
54
  <h1> {Node.text("Counter")} </h1>
75
55
  <p>
76
- {Node.signalText(() => `Count: ${Signal.get(count)->Int.toString}`)}
56
+ {Node.signalText(() => "Count: " ++ Signal.get(count)->Int.toString)}
77
57
  </p>
78
- <button onClick={increment}>
58
+ <p>
59
+ {Node.signalText(() => Signal.get(doubled)->Int.toString)}
60
+ </p>
61
+ <button onClick={(_evt: Dom.event) => Signal.update(count, n => n + 1)}>
79
62
  {Node.text("Increment")}
80
63
  </button>
81
64
  </div>
@@ -88,170 +71,29 @@ Node.mountById(<App />, "app")
88
71
 
89
72
  ## Core Concepts
90
73
 
91
- ### Reactive Primitives (from rescript-signals)
74
+ Xote focuses on clarity, control, and performance. The goal is to offer precise, fine-grained updates and predictable behavior with a minimal set of abstractions, while leveraging the robust type system from ReScript.
75
+
76
+ ### Reactive Primitives
77
+
78
+ Xote uses **[rescript-signals](https://github.com/brnrdog/rescript-signals)** for its reactive primitives:
92
79
 
93
80
  - **Signal**: Reactive state container - `Signal.make(value)`
94
81
  - **Computed**: Derived reactive value that updates automatically - `Computed.make(() => ...)`
95
82
  - **Effect**: Side-effect functions that re-run when dependencies change - `Effect.run(() => ...)`
96
83
 
97
- All reactive primitives feature automatic dependency tracking - no manual subscriptions needed.
98
-
99
- ### Xote Features
100
-
101
- - **Component**: Declarative UI builder with JSX syntax and function-based APIs
102
- - **Router**: Signal-based navigation for SPAs with pattern matching and dynamic routes
103
-
104
- ### Component Features
105
-
106
- - **JSX syntax**: Use HTML tags like `<div>`, `<button>`, `<input>`
107
- - **Props**: Standard HTML attributes like `class`, `id`, `style`, `value`, `placeholder`
108
- - **Event handlers**: `onClick`, `onInput`, `onChange`, `onSubmit`, etc.
109
- - **Reactive content**: Wrap reactive text with `Node.signalText(() => ...)` (also `signalInt` and `signalFloat` for non-string values)
110
- - **HTML helpers**: `Html.div`, `Html.button`, `Html.p`, etc. for the function-based API; JSX covers the rest
111
- - **Component functions**: Define reusable components as functions that return JSX
112
-
113
- ### Xote.Router Features
114
-
115
- - **Initialization**: Call `Router.init()` once at app start
116
- - **Imperative navigation**: Use `Router.push()` and `Router.replace()` to navigate programmatically
117
- - **Declarative routing**: Define routes with `Router.routes()` and render components based on URL patterns
118
- - **Dynamic parameters**: Extract URL parameters using `:param` syntax (e.g., `/users/:id`)
119
- - **Navigation links**: Use `Router.link()` for SPA navigation without page reload
120
- - **Reactive location**: Access current route via `Router.location` signal
121
-
122
- ## Server-Side Rendering (SSR)
123
-
124
- Xote supports server-side rendering with hydration. The same component code runs on both server and client, with the server rendering HTML and the client attaching reactivity to the existing DOM.
125
-
126
- ### Basic SSR Setup
127
-
128
- **Shared component** (`App.res`):
129
- ```rescript
130
- open Xote
131
-
132
- let makeAppState = () => {
133
- // SSRState.make creates a signal that syncs between server and client
134
- let count = SSRState.make("count", 0, SSRState.Codec.int)
135
- let items = SSRState.make("items", ["Apple", "Banana"], SSRState.Codec.array(SSRState.Codec.string))
136
- (count, items)
137
- }
138
-
139
- let app = (count, items) => () => {
140
- <div>
141
- <p> {Node.signalText(() => `Count: ${Signal.get(count)->Int.toString}`)} </p>
142
- <button onClick={_ => Signal.update(count, n => n + 1)}>
143
- {Node.text("+")}
144
- </button>
145
- </div>
146
- }
147
- ```
148
-
149
- **Server entry** (`server.res`):
150
- ```rescript
151
- open Xote
152
-
153
- let (count, items) = App.makeAppState()
154
- let appComponent = App.app(count, items)
155
-
156
- let html = SSR.renderDocument(
157
- ~head="<title>My App</title>",
158
- ~scripts=["./client.res.mjs"],
159
- ~stateScript=SSRState.generateScript(),
160
- appComponent,
161
- )
162
-
163
- Console.log(html)
164
- ```
165
-
166
- **Client entry** (`client.res`):
167
- ```rescript
168
- open Xote
169
-
170
- let (count, items) = App.makeAppState()
171
- let appComponent = App.app(count, items)
172
-
173
- Hydration.hydrateById(appComponent, "root")
174
- ```
175
-
176
- ### Running the SSR Example
177
-
178
- ```bash
179
- # Generate HTML
180
- node server.res.mjs > index.html
181
-
182
- # Serve with Vite (or any static server)
183
- npx vite
184
- ```
185
-
186
- ### SSR Features
187
-
188
- - **`SSR.renderToString`**: Render component to HTML string
189
- - **`SSR.renderDocument`**: Render full HTML document with head, scripts, styles
190
- - **`SSRState.make`**: Create signals that automatically sync between server and client
191
- - **`SSRState.generateScript`**: Generate `<script>` tag with serialized state
192
- - **`Hydration.hydrate`**: Attach reactivity to server-rendered DOM
193
- - **`SSRContext.isServer` / `isClient`**: Environment detection for conditional logic
194
-
195
- ### Built-in Codecs for State Serialization
196
-
197
- ```rescript
198
- SSRState.Codec.int
199
- SSRState.Codec.float
200
- SSRState.Codec.string
201
- SSRState.Codec.bool
202
- SSRState.Codec.array(itemCodec)
203
- SSRState.Codec.option(itemCodec)
204
- SSRState.Codec.dict(valueCodec)
205
- SSRState.Codec.tuple2(codec1, codec2)
206
- SSRState.Codec.tuple3(codec1, codec2, codec3)
207
- SSRState.Codec.make(~encode, ~decode) // Custom codec
208
- ```
209
-
210
- ## Examples
211
-
212
- Check some examples of applications built with Xote at https://brnrdog.github.io/xote/demos/.
213
-
214
- ### Running Examples Locally
84
+ All reactive primitives feature automatic dependency tracking. No manual subscriptions needed.
215
85
 
216
- To run the example demos locally:
86
+ ### Component System
217
87
 
218
- 1. Clone the repository:
219
- ```bash
220
- git clone https://github.com/brnrdog/xote.git
221
- cd xote
222
- ```
223
-
224
- 2. Install dependencies:
225
- ```bash
226
- npm install
227
- ```
228
-
229
- 3. Compile ReScript and start the dev server:
230
- ```bash
231
- npm run res:dev # In one terminal (watches ReScript files)
232
- npm run dev # In another terminal (starts Vite dev server)
233
- ```
234
-
235
- 4. Open your browser and navigate to `http://localhost:5173`
236
-
237
- The demo app includes a navigation menu to explore all examples interactively.
88
+ On top of the reactive primitives with signals, Xote provides a declarative component system:
238
89
 
239
- ## Documentation
240
-
241
- Comprehensive documentation with live embedded demos is available at:
242
-
243
- **https://brnrdog.github.io/xote/**
244
-
245
-
246
- ### Building Documentation Locally
247
-
248
- To build and preview the documentation site:
249
-
250
- ```bash
251
- npm run docs:start
252
- ```
90
+ - **JSX Support**: Build user interface using JSX, in a declarative and familiar manner
91
+ - **Reactive DOM Nodes**: Fine-grained reactivity that updates DOM nodes directly, no virtual DOM required
92
+ - **Built-in Router**: Client-side routing with pattern matching and reactive location state
93
+ - **Automatic Cleanup**: Effect disposal and memory management built into the component lifecycle
94
+ - **Server-side Rendering**: pre-render your pages on the server with full hydration
253
95
 
254
- This will build the demos and start the documentation server at `http://localhost:3000`.
96
+ Check the [website](https://brnrdog.github.io/xote/) for more comprehensive documentations about Xote and Signals.
255
97
 
256
98
  ## License
257
99
 
package/dist/xote.cjs CHANGED
@@ -1,17 +1,17 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let We={contents:0};function Re(){return We.contents=We.contents+1|0,We.contents}function St(){return{first:void 0,last:void 0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0}}function xn(e){return{first:void 0,last:void 0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0}}function $n(e,t,n,r,l){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:l}}function _t(e){e.flags=e.flags&-2}function An(e){return(e.flags&2)!==0}function kn(e){e.flags=e.flags|2}function On(e){e.flags=e.flags&-3}function bt(e){return(e.flags&1)!==0}function Dn(e){e.flags=e.flags|1}function Xe(e){e.flags=e.flags&-2}function Cn(e){e.flags=e.flags&-3}function Ge(e){return e.compute!==void 0}function st(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0}}function Pe(e,t){t.prevSub=e.last,t.nextSub=void 0;let n=e.last;n!==void 0?n.nextSub=t:e.first=t,e.last=t}function ft(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}function Et(e){let t=e.subs,n=e.prevSub;n!==void 0?n.nextSub=e.nextSub:t.first=e.nextSub;let r=e.nextSub;r!==void 0?r.prevSub=e.prevSub:t.last=e.prevSub,e.prevSub=void 0,e.nextSub=void 0}function wt(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;Et(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function qe(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;Et(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function ht(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}let D={contents:void 0},z={contents:void 0},ee=[],ue=[],re={contents:!1},De=[],mt=(function(e){e.length=0});function jn(e){if(!An(e)){kn(e),ee.push(e);return}}function Pn(e,t){if(e.firstDep===void 0){let i={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};return ht(e,i),Pe(t,i)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let i=r;i!==void 0&&(i.subs===t?n=!0:r=i.nextDep)}if(n)return;let l={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};ht(e,l),Pe(t,l)}function Mn(e,t){if(e.firstDep===void 0){let i=st(t,e);return ft(e,i),Pe(t,i)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let i=r;i!==void 0&&(i.subs===t?n=!0:r=i.nextDep)}if(n)return;let l=st(t,e);ft(e,l),Pe(t,l)}function Rn(e){let t=D.contents;if(t!==void 0)return Pn(t,e);let n=z.contents;if(n!==void 0)return Mn(n,e)}function Gn(e,t){return e.level-t.level|0}function Ln(e,t){return e.level-t.level|0}function Tt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(Ge(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function vt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(Ge(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Fn(e){let t=e.level;qe(e),Cn(e);let n=D.contents;D.contents=e;try{let r=e.compute;r!==void 0&&r(),Xe(e),D.contents=n}catch(r){throw D.contents=n,r}if(t===0){e.level=Tt(e);return}}function Nn(e){let t=e.level;wt(e),On(e);let n=z.contents;z.contents=e;try{e.run(),_t(e),z.contents=n}catch(r){throw z.contents=n,r}if(t===0){e.level=vt(e);return}}function xt(){re.contents=!0;try{for(;ee.length!==0||ue.length!==0;){if(ue.length!==0){ue.sort(Ln);let e=ue.slice();mt(ue),e.forEach(Fn)}if(ee.length!==0){ee.sort(Gn);let e=ee.slice();mt(ee),e.forEach(Nn)}}re.contents=!1;return}catch(e){throw re.contents=!1,e}}function zn(e){for(De.push(e);De.length!==0;){let t=De.pop();if(t!==void 0){let n=t.first;for(;n!==void 0;){let r=n;if(r!==void 0){let l=r.observer;Ge(l)?bt(l)||(Dn(l),De.push(l)):jn(r.observer),n=r.nextSub}}}}if((ee.length!==0||ue.length!==0)&&!re.contents)return xt()}function $t(e){if(!(Ge(e)&&bt(e)))return;let t=e.level;qe(e);let n=D.contents;D.contents=e;try{let r=e.compute;r!==void 0&&r(),Xe(e),D.contents=n}catch(r){throw D.contents=n,r}if(t===0){e.level=Tt(e);return}}function Bn(e){let t=re.contents;re.contents=!0;try{let n=e();return t||(re.contents=!1,(ee.length!==0||ue.length!==0)&&xt()),n}catch(n){throw t||(re.contents=!1),n}}function In(e){let t=D.contents,n=z.contents;D.contents=void 0,z.contents=void 0;try{let r=e();return D.contents=t,z.contents=n,r}catch(r){throw D.contents=t,z.contents=n,r}}function At(e,t){let n=Re(),r={contents:void 0},i=$n(n,"Effect",()=>{let y=r.contents;y!==void 0&&y(),r.contents=e()},t,void 0),u=z.contents;z.contents=i;try{i.run(),_t(i),z.contents=u}catch(y){throw z.contents=u,y}i.level=vt(i);let o={contents:!1};return{dispose:()=>{if(o.contents)return;o.contents=!0;let y=r.contents;y!==void 0&&y(),wt(i)}}}function Wn(e,t){At(e,t)}let G=At,Kn=Wn;const Vn=Object.freeze(Object.defineProperty({__proto__:null,run:Kn,runWithDisposer:G},Symbol.toStringTag,{value:"Module"}));function oe(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 oe(e)}function h(e){if(e===null||e.BS_PRIVATE_NESTED_SOME_NONE===void 0)return e;let t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function Hn(e,t){if(e!==void 0)return oe(t(h(e)))}function J(e,t){return e!==void 0?h(e):t}function Ye(e){return e!==void 0}function Xn(e,t,n){return{id:Re(),value:e,equals:J(n,(l,i)=>l===i),name:t,subs:St()}}function qn(e,t){return{id:Re(),value:e,equals:(r,l)=>!1,name:t,subs:St()}}function Un(e){return $t(e.subs),Rn(e.subs),e.value}function Yn(e){return $t(e.subs),e.value}function kt(e,t){let n;try{n=!e.equals(e.value,t)}catch{n=!0}if(n)return e.value=t,e.subs.version=e.subs.version+1|0,zn(e.subs)}function Jn(e,t){kt(e,t(e.value))}let Qn=Bn,Zn=In,Je=Xn,er=qn,A=Un,V=Yn,de=kt,tr=Jn,nr=Qn,rr=Zn;const ir=Object.freeze(Object.defineProperty({__proto__:null,batch:nr,get:A,make:Je,makeForComputed:er,peek:V,set:de,untrack:rr,update:tr},Symbol.toStringTag,{value:"Module"}));function Qe(e,t){delete e[t]}function lr(e,t){let n=Re(),r={contents:void 0},i=xn(()=>{r.contents.value=e()}),u=D.contents;D.contents=i;let o=e();D.contents=u;let a={id:n,value:o,equals:(y,O)=>!1,name:t,subs:i};return r.contents=a,Xe(i),a}function ur(e){qe(e.subs)}let Q=lr,Ot=ur;const or=Object.freeze(Object.defineProperty({__proto__:null,dispose:Ot,make:Q},Symbol.toStringTag,{value:"Module"}));let Dt="http://www.w3.org/2000/svg",Ct=["svg","path","circle","ellipse","line","polygon","polyline","rect","g","defs","clipPath","mask","pattern","marker","symbol","use","text","tspan","image","foreignObject","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComposite","feFlood","feGaussianBlur","feMerge","feMergeNode","feOffset","animate","animateTransform","desc","title","metadata"],Le={};Ct.forEach(e=>{Le[e]=!0});function dr(e){return Ye(Le[e])}function be(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"aria-expanded":case"aria-hidden":case"aria-selected":case"multiple":case"readonly":case"required":break;case"value":e.value=n;return;default:e.setAttribute(t,n);return}n==="true"?e.setAttribute(t,""):e.removeAttribute(t)}let we={setAttrOrProp:be},Ce={contents:void 0};function ar(){return{disposers:[],computeds:[]}}function me(e,t){let n=Ce.contents;Ce.contents=e;let r=t();return Ce.contents=n,r}function pe(e,t){e.disposers.push(t)}function jt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(Ot)}function ge(e,t){e.__xote_owner__=t}function Pt(e){return Ue(e.__xote_owner__)}let c={currentOwner:Ce,createOwner:ar,runWithOwner:me,addDisposer:pe,disposeOwner:jt,setOwner:ge,getOwner:Pt};function Mt(e,t){return[e,{TAG:"Static",_0:t}]}function Rt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Gt(e,t){return[e,{TAG:"Compute",_0:t}]}let cr={$$static:Mt,signal:Rt,computed:Gt};function Ee(e){let t=Pt(e);t!==void 0&&jt(t),Array.from(e.childNodes||[]).forEach(Ee)}function Y(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=e.tag,i=Ye(Le[l])?document.createElementNS(Dt,l):document.createElement(l),u={disposers:[],computeds:[]};return ge(i,u),me(u,()=>{r.forEach(d=>{let m=d[1],x=d[0];switch(m.TAG){case"Static":return be(i,x,m._0);case"SignalValue":let k=m._0;be(i,x,V(k));let M=G(()=>{be(i,x,A(k))},void 0);return pe(u,M);case"Compute":let p=m._0,S=G(()=>{be(i,x,p())},void 0);return pe(u,S)}}),n.forEach(d=>{i.addEventListener(d[0],d[1])}),t.forEach(d=>{let m=Y(d);i.appendChild(m)})}),i;case"Text":return document.createTextNode(e._0);case"SignalText":let o=e._0,a=document.createTextNode(V(o)),y={disposers:[],computeds:[]};return ge(a,y),me(y,()=>{let d=G(()=>{a.textContent=A(o)},void 0);pe(y,d)}),a;case"Fragment":let O=document.createDocumentFragment();return e._0.forEach(d=>{let m=Y(d);O.appendChild(m)}),O;case"SignalFragment":let L=e._0,F={disposers:[],computeds:[]},C=document.createElement("div");return C.setAttribute("style","display: contents"),ge(C,F),me(F,()=>{let d=G(()=>{let m=A(L);Array.from(C.childNodes||[]).forEach(Ee),C.innerHTML="",m.forEach(k=>{let M=Y(k);C.appendChild(M)})},void 0);pe(F,d)}),C;case"LazyComponent":let $={disposers:[],computeds:[]},H=me($,e._0),I=Y(H);return ge(I,$),I;case"KeyedList":let W=e.renderItem,j=e.keyFn,X=e.signal,fe={disposers:[],computeds:[]},v=document.createComment(" keyed-list-start "),_=document.createComment(" keyed-list-end ");ge(v,fe);let s={},b=()=>{let d=_.parentNode;if(d==null)return;let m=A(X),x={};m.forEach(g=>{x[j(g)]=g});let k=[];Object.keys(s).forEach(g=>{if(x[g]===void 0){k.push(g);return}}),k.forEach(g=>{let T=s[g];if(T!==void 0){Ee(T.element),T.element.remove(),Qe(s,g);return}});let M=[],p={};m.forEach(g=>{let T=j(g),he=s[T];if(he!==void 0){if(he.item!==g){p[T]=!0;let Oe=W(g),vn=Y(Oe),ct={key:T,item:g,element:vn};M.push(ct),s[T]=ct;return}M.push(he);return}let Ae=W(g),Ie=Y(Ae),ke={key:T,item:g,element:Ie};M.push(ke),s[T]=ke});let S={contents:v.nextSibling};M.forEach(g=>{let T=S.contents;if(T==null){d.insertBefore(g.element,_);return}if(T===_){d.insertBefore(g.element,_);return}if(T===g.element){S.contents=T.nextSibling;return}J(p[g.key],!1)?(Ee(T),d.replaceChild(g.element,T),S.contents=g.element.nextSibling):(d.insertBefore(g.element,T),S.contents=g.element.nextSibling)})},w=document.createDocumentFragment();return w.appendChild(v),V(X).forEach(d=>{let m=j(d),x=W(d),k=Y(x),M={key:m,item:d,element:k};s[m]=M,w.appendChild(k)}),w.appendChild(_),me(fe,()=>{let d=G(()=>{b()},void 0);pe(fe,d)}),w}}let te={disposeElement:Ee,render:Y};function Lt(e){return{TAG:"Text",_0:e}}function sr(e){return{TAG:"SignalText",_0:Q(e,void 0)}}function fr(e){return{TAG:"SignalText",_0:Q(()=>e().toString(),void 0)}}function hr(e){return{TAG:"SignalText",_0:Q(()=>e().toString(),void 0)}}function mr(e){return{TAG:"Text",_0:e.toString()}}function pr(e){return{TAG:"Text",_0:e.toString()}}function Ze(e){return{TAG:"Fragment",_0:e}}function et(e){return{TAG:"SignalFragment",_0:e}}function gr(e,t){return{TAG:"SignalFragment",_0:Q(()=>A(e).map(t),void 0)}}function yr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function K(e,t,n,r,l){let i=t!==void 0?t:[].map(a=>a),u=n!==void 0?n:[].map(a=>a),o=r!==void 0?r:[].map(a=>a);return{TAG:"Element",tag:e,attrs:i,events:u,children:o}}function Sr(){return{TAG:"Text",_0:""}}function Ft(e,t){let n=Y(e);t.appendChild(n)}function _r(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Ft(e,n)}let br=Le,q=Mt,ae=Rt,Fe=Gt;const Er=Object.freeze(Object.defineProperty({__proto__:null,$$null:Sr,Attributes:cr,DOM:we,Reactivity:c,Render:te,attr:q,computedAttr:Fe,element:K,float:pr,fragment:Ze,int:mr,isSvgTag:dr,keyedList:yr,list:gr,mount:Ft,mountById:_r,signalAttr:ae,signalFloat:hr,signalFragment:et,signalInt:fr,signalText:sr,svgNamespace:Dt,svgTagSet:br,svgTags:Ct,text:Lt},Symbol.toStringTag,{value:"Module"}));function wr(e,t,n,r){return K("div",e,t,n)}function Tr(e,t,n,r){return K("span",e,t,n)}function vr(e,t,n,r){return K("button",e,t,n)}function xr(e,t,n){return K("input",e,t,void 0)}function $r(e,t,n,r){return K("h1",e,t,n)}function Ar(e,t,n,r){return K("h2",e,t,n)}function kr(e,t,n,r){return K("h3",e,t,n)}function Or(e,t,n,r){return K("p",e,t,n)}function Dr(e,t,n,r){return K("ul",e,t,n)}function Cr(e,t,n,r){return K("li",e,t,n)}function tt(e,t,n,r){return K("a",e,t,n)}const jr=Object.freeze(Object.defineProperty({__proto__:null,a:tt,button:vr,div:wr,h1:$r,h2:Ar,h3:kr,input:xr,li:Cr,p:Or,span:Tr,ul:Dr},Symbol.toStringTag,{value:"Module"}));function Nt(e,t){return{TAG:"LazyComponent",_0:()=>e(t)}}function zt(e,t,n,r){return{TAG:"LazyComponent",_0:()=>e(t)}}function Pr(e){let t=e.children;return t!==void 0?t:Ze([])}let Mr=Ze;function Rr(){return Lt("")}function nt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function E(e,t){return nt(t)?t.TAG==="Reactive"?ae(e,t._0):q(e,t._0):typeof t=="function"?Fe(e,t):typeof t=="object"?ae(e,t):q(e,t)}function U(e,t){if(nt(t)){if(t.TAG!=="Reactive")return q(e,t._0?"true":"false");let r=t._0,l=Q(()=>A(r)?"true":"false",void 0);return ae(e,l)}if(typeof t=="function")return Fe(e,()=>t()?"true":"false");if(typeof t!="object")return q(e,t?"true":"false");let n=Q(()=>A(t)?"true":"false",void 0);return ae(e,n)}function f(e,t,n,r){if(t!==void 0){e.push(r(n,h(t)));return}}function ye(e,t,n){if(t!==void 0){e.push(q(n,t.toString()));return}}function Bt(e){let t=[];f(t,e.id,"id",E),f(t,e.class,"class",E),f(t,e.style,"style",E),f(t,e.type,"type",E),f(t,e.name,"name",E),f(t,e.value,"value",E),f(t,e.placeholder,"placeholder",E),f(t,e.disabled,"disabled",U),f(t,e.checked,"checked",U),f(t,e.required,"required",U),f(t,e.readOnly,"readonly",U),ye(t,e.maxLength,"maxlength"),ye(t,e.minLength,"minlength"),f(t,e.min,"min",E),f(t,e.max,"max",E),f(t,e.step,"step",E),f(t,e.pattern,"pattern",E),f(t,e.autoComplete,"autocomplete",E),f(t,e.multiple,"multiple",U),f(t,e.accept,"accept",E),ye(t,e.rows,"rows"),ye(t,e.cols,"cols"),f(t,e.for,"for",E),f(t,e.href,"href",E),f(t,e.target,"target",E),f(t,e.src,"src",E),f(t,e.alt,"alt",E),f(t,e.width,"width",E),f(t,e.height,"height",E),f(t,e.role,"role",E),ye(t,e.tabIndex,"tabindex"),f(t,e["aria-label"],"aria-label",E),f(t,e["aria-hidden"],"aria-hidden",U),f(t,e["aria-expanded"],"aria-expanded",U),f(t,e["aria-selected"],"aria-selected",U);let n=e.data;return n!==void 0&&Object.entries(n).forEach(([r,l])=>{t.push(E("data-"+r,l))}),t}function R(e,t,n){if(t!==void 0){e.push([n,h(t)]);return}}function It(e){let t=[];return R(t,e.onClick,"click"),R(t,e.onInput,"input"),R(t,e.onChange,"change"),R(t,e.onSubmit,"submit"),R(t,e.onFocus,"focus"),R(t,e.onBlur,"blur"),R(t,e.onKeyDown,"keydown"),R(t,e.onKeyUp,"keyup"),R(t,e.onMouseEnter,"mouseenter"),R(t,e.onMouseLeave,"mouseleave"),R(t,e.onMouseDown,"mousedown"),R(t,e.onMouseMove,"mousemove"),R(t,e.onMouseUp,"mouseup"),R(t,e.onContextMenu,"contextmenu"),t}function Wt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function rt(e,t){return{TAG:"Element",tag:e,attrs:Bt(t),events:It(t),children:Wt(t)}}let pt=rt;function gt(e,t,n,r){return rt(e,t)}let Gr={isReactiveProp:nt,convertAttrValue:E,convertBoolAttrValue:U,addAttr:f,addIntAttr:ye,propsToAttrs:Bt,addEvent:R,propsToEvents:It,getChildren:Wt,createElement:rt,jsx:pt,jsxs:pt,jsxKeyed:gt,jsxsKeyed:gt},Lr,Fr=Nt,Nr=zt;const zr=Object.freeze(Object.defineProperty({__proto__:null,$$null:Rr,Elements:Gr,ReactiveProp:Lr,array:Mr,jsx:Nt,jsxFragment:Pr,jsxKeyed:zt,jsxs:Fr,jsxsKeyed:Nr},Symbol.toStringTag,{value:"Module"}));function Br(e){return e.TAG==="Reactive"?A(e._0):e._0}function Ir(e){return{TAG:"Static",_0:e}}function Wr(e){return{TAG:"Reactive",_0:e}}const Kr=Object.freeze(Object.defineProperty({__proto__:null,$$static:Ir,get:Br,reactive:Wr},Symbol.toStringTag,{value:"Module"}));function Kt(e,t){let n=e.length,r=new Array(n),l=0;for(let i=0;i<n;++i){let u=e[i],o=t(u);o!==void 0&&(r[l]=h(o),l=l+1|0)}return r.length=l,r}function Vr(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 Vt(e){return Kt(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Ht(e,t){let n=t.split("/").filter(i=>i!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((i,u)=>{let o=n[u];return i.TAG==="Static"?o===i._0:(r[i._0]=o,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function it(e,t){return Ht(Vt(e),t)}const Hr=Object.freeze(Object.defineProperty({__proto__:null,match:it,matchPath:Ht,parsePattern:Vt},Symbol.toStringTag,{value:"Module"}));function Xr(){return Symbol.for("xote.router.state")}function B(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:Je({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function qr(){return B().location}function Ur(){return B().basePath}function ce(e){if(!B().initialized){console.warn("[Xote Router] "+e+" called before Router.init(). Make sure to call Router.init() at your app entry point. This may cause incorrect routing behavior.");return}}function lt(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function Xt(e){let t=B().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function ve(e){let t=B().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function qt(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function Ne(e,t){window.scrollTo(e,t)}function Ut(e,t){return{scrollX:e,scrollY:t}}function ut(){return{}}function Yt(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Jt(){let e=qt(),t=Ut(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function Ve(){let e=window.location.pathname;return{pathname:Xt(e),search:window.location.search,hash:window.location.hash}}function Yr(e,t){let n=e!==void 0?e:"/",r=B(),l=lt(n);if(r.basePath.contents=l,de(r.location,Ve()),r.initialized)return;let i=u=>{de(B().location,Ve());let o=window["history.state"];if(o==null)return;let a=Yt(o);if(a!==void 0)return Ne(a[0],a[1])};r.popStateHandler=i,window.addEventListener("popstate",i),r.initialized=!0}function Jr(e,t,n,r,l){let i=e!==void 0?e:"/",u=t!==void 0?t:"/",o=n!==void 0?n:"",a=r!==void 0?r:"",y=B(),O=lt(i);y.basePath.contents=O,de(y.location,{pathname:u,search:o,hash:a}),y.initialized=!0}function ot(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";ce("Router.push()"),Jt();let u={pathname:e,search:l,hash:i},a=ve(e)+l+i;window.history.pushState(ut(),"",a),de(B().location,u),Ne(0,0)}function Qr(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";ce("Router.replace()");let u={pathname:e,search:l,hash:i},a=ve(e)+l+i;window.history.replaceState(ut(),"",a),de(B().location,u),Ne(0,0)}function Zr(e,t){return ce("Router.route()"),et(Q(()=>{let n=A(B().location),r=it(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function ei(e){return ce("Router.routes()"),et(Q(()=>{let t=A(B().location),n=Vr(e,r=>{let l=it(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function ti(e,t,n,r){let l=t!==void 0?t:[],i=n!==void 0?n:[];ce("Router.link()");let u=o=>{o.preventDefault(),ot(e,void 0,void 0)};return tt(l.concat([q("href",ve(e))]),[["click",u]],i)}function Qt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function Se(e,t){return Qt(t)?t.TAG==="Reactive"?ae(e,t._0):q(e,t._0):typeof t=="function"?Fe(e,t):typeof t=="object"?ae(e,t):q(e,t)}function Zt(e){let t=[],n=e.class;n!==void 0&&t.push(Se("class",h(n)));let r=e.id;r!==void 0&&t.push(Se("id",h(r)));let l=e.style;l!==void 0&&t.push(Se("style",h(l)));let i=e.target;i!==void 0&&t.push(Se("target",h(i)));let u=e["aria-label"];return u!==void 0&&t.push(Se("aria-label",h(u))),t}function en(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function je(e){ce("Router.Link");let t=n=>{n.preventDefault(),ot(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return tt(Zt(e).concat([q("href",ve(e.to))]),[["click",t]],en(e))}function yt(e,t,n){return je(e)}let ni={ReactiveProp:void 0,isReactiveProp:Qt,convertAttrValue:Se,propsToAttrs:Zt,getChildren:en,make:je,jsx:je,jsxs:je,jsxKeyed:yt,jsxsKeyed:yt},ri;const ii=Object.freeze(Object.defineProperty({__proto__:null,Link:ni,Route:ri,addBasePath:ve,basePath:Ur,emptyHistoryState:ut,getCurrentLocation:Ve,getGlobalState:B,getScrollFromState:Yt,getScrollPosition:qt,getSymbolKey:Xr,init:Yr,initSSR:Jr,link:ti,location:qr,makeHistoryState:Ut,normalizeBasePath:lt,push:ot,replace:Qr,route:Zr,routes:ei,saveScrollPosition:Jt,scrollTo:Ne,stripBasePath:Xt,warnIfNotInitialized:ce},Symbol.toStringTag,{value:"Module"}));function ie(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#x27;")}let dt=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function li(e){return dt.includes(e)}let tn={escape:ie,voidElements:dt,isVoidElement:li},nn="<!--$-->",rn="<!--/$-->",ln="<!--#-->",un="<!--/#-->",on="<!--kl-->",dn="<!--/kl-->";function an(e){return"<!--k:"+e+"-->"}let cn="<!--/k-->",sn="<!--lc-->",fn="<!--/lc-->",ui={signalTextStart:nn,signalTextEnd:rn,signalFragmentStart:ln,signalFragmentEnd:un,keyedListStart:on,keyedListEnd:dn,keyedItemStart:an,keyedItemEnd:cn,lazyComponentStart:sn,lazyComponentEnd:fn};function hn(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=V(t._0);break;case"Compute":r=t._0();break}switch(n){case"aria-expanded":case"aria-hidden":case"aria-selected":case"checked":case"disabled":case"multiple":case"readonly":case"required":break;default:return n+'="'+ie(r)+'"'}return r==="true"?n:""}function mn(e){let t=e.map(hn).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let oi={renderAttr:hn,renderAttrs:mn};function ne(e){switch(e.TAG){case"Element":let t=e.tag,n=mn(e.attrs);if(dt.includes(t))return"<"+t+n+" />";let r=e.children.map(ne).join("");return"<"+t+n+">"+r+"</"+t+">";case"Text":return ie(e._0);case"SignalText":let l=V(e._0);return nn+ie(l)+rn;case"Fragment":return e._0.map(ne).join("");case"SignalFragment":let u=V(e._0).map(ne).join("");return ln+u+un;case"LazyComponent":let o=e._0();return sn+ne(o)+fn;case"KeyedList":let a=e.renderItem,y=e.keyFn,L=V(e.signal).map(F=>{let C=y(F),$=ne(a(F));return an(C)+$+cn}).join("");return on+L+dn}}function pn(e,t){return ne(e())}function di(e,t,n){let r=t!==void 0?t:"root",l=e(),i=ne(l);return"<!--xote-root:"+r+"-->"+i+"<!--/xote-root-->"}function gn(e){return"<script"+(e!==void 0?' nonce="'+ie(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function ai(e,t,n,r,l,i,u){let o=e!==void 0?e:"",a=t!==void 0?t:"",y=n!==void 0?n:[],O=r!==void 0?r:[],L=l!==void 0?l:"",F=pn(u),C=gn(i),$=O.map(I=>'<link rel="stylesheet" href="'+ie(I)+'" />').join(`
2
- `),H=y.map(I=>{let W=i!==void 0?' nonce="'+ie(i)+'"':"";return'<script type="module" src="'+ie(I)+'"'+W+"><\/script>"}).join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let We={contents:0};function Re(){return We.contents=We.contents+1|0,We.contents}function St(){return{first:void 0,last:void 0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0}}function xn(e){return{first:void 0,last:void 0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0}}function $n(e,t,n,r,l){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:l}}function _t(e){e.flags=e.flags&-2}function An(e){return(e.flags&2)!==0}function kn(e){e.flags=e.flags|2}function Dn(e){e.flags=e.flags&-3}function bt(e){return(e.flags&1)!==0}function On(e){e.flags=e.flags|1}function Xe(e){e.flags=e.flags&-2}function Cn(e){e.flags=e.flags&-3}function Ge(e){return e.compute!==void 0}function st(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0}}function Pe(e,t){t.prevSub=e.last,t.nextSub=void 0;let n=e.last;n!==void 0?n.nextSub=t:e.first=t,e.last=t}function ft(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}function Et(e){let t=e.subs,n=e.prevSub;n!==void 0?n.nextSub=e.nextSub:t.first=e.nextSub;let r=e.nextSub;r!==void 0?r.prevSub=e.prevSub:t.last=e.prevSub,e.prevSub=void 0,e.nextSub=void 0}function wt(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;Et(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function qe(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;Et(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function ht(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}let C={contents:void 0},B={contents:void 0},ee=[],ue=[],re={contents:!1},Oe=[],mt=(function(e){e.length=0});function jn(e){if(!An(e)){kn(e),ee.push(e);return}}function Pn(e,t){if(e.firstDep===void 0){let i={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};return ht(e,i),Pe(t,i)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let i=r;i!==void 0&&(i.subs===t?n=!0:r=i.nextDep)}if(n)return;let l={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};ht(e,l),Pe(t,l)}function Mn(e,t){if(e.firstDep===void 0){let i=st(t,e);return ft(e,i),Pe(t,i)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let i=r;i!==void 0&&(i.subs===t?n=!0:r=i.nextDep)}if(n)return;let l=st(t,e);ft(e,l),Pe(t,l)}function Rn(e){let t=C.contents;if(t!==void 0)return Pn(t,e);let n=B.contents;if(n!==void 0)return Mn(n,e)}function Gn(e,t){return e.level-t.level|0}function Ln(e,t){return e.level-t.level|0}function Tt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(Ge(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function vt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(Ge(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function Fn(e){let t=e.level;qe(e),Cn(e);let n=C.contents;C.contents=e;try{let r=e.compute;r!==void 0&&r(),Xe(e),C.contents=n}catch(r){throw C.contents=n,r}if(t===0){e.level=Tt(e);return}}function Nn(e){let t=e.level;wt(e),Dn(e);let n=B.contents;B.contents=e;try{e.run(),_t(e),B.contents=n}catch(r){throw B.contents=n,r}if(t===0){e.level=vt(e);return}}function xt(){re.contents=!0;try{for(;ee.length!==0||ue.length!==0;){if(ue.length!==0){ue.sort(Ln);let e=ue.slice();mt(ue),e.forEach(Fn)}if(ee.length!==0){ee.sort(Gn);let e=ee.slice();mt(ee),e.forEach(Nn)}}re.contents=!1;return}catch(e){throw re.contents=!1,e}}function zn(e){for(Oe.push(e);Oe.length!==0;){let t=Oe.pop();if(t!==void 0){let n=t.first;for(;n!==void 0;){let r=n;if(r!==void 0){let l=r.observer;Ge(l)?bt(l)||(On(l),Oe.push(l)):jn(r.observer),n=r.nextSub}}}}if((ee.length!==0||ue.length!==0)&&!re.contents)return xt()}function $t(e){if(!(Ge(e)&&bt(e)))return;let t=e.level;qe(e);let n=C.contents;C.contents=e;try{let r=e.compute;r!==void 0&&r(),Xe(e),C.contents=n}catch(r){throw C.contents=n,r}if(t===0){e.level=Tt(e);return}}function Bn(e){let t=re.contents;re.contents=!0;try{let n=e();return t||(re.contents=!1,(ee.length!==0||ue.length!==0)&&xt()),n}catch(n){throw t||(re.contents=!1),n}}function In(e){let t=C.contents,n=B.contents;C.contents=void 0,B.contents=void 0;try{let r=e();return C.contents=t,B.contents=n,r}catch(r){throw C.contents=t,B.contents=n,r}}function At(e,t){let n=Re(),r={contents:void 0},i=$n(n,"Effect",()=>{let y=r.contents;y!==void 0&&y(),r.contents=e()},t,void 0),u=B.contents;B.contents=i;try{i.run(),_t(i),B.contents=u}catch(y){throw B.contents=u,y}i.level=vt(i);let o={contents:!1};return{dispose:()=>{if(o.contents)return;o.contents=!0;let y=r.contents;y!==void 0&&y(),wt(i)}}}function Wn(e,t){At(e,t)}let G=At,Kn=Wn;const Vn=Object.freeze(Object.defineProperty({__proto__:null,run:Kn,runWithDisposer:G},Symbol.toStringTag,{value:"Module"}));function oe(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 oe(e)}function h(e){if(e===null||e.BS_PRIVATE_NESTED_SOME_NONE===void 0)return e;let t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function Hn(e,t){if(e!==void 0)return oe(t(h(e)))}function J(e,t){return e!==void 0?h(e):t}function Ye(e){return e!==void 0}function Xn(e,t,n){return{id:Re(),value:e,equals:J(n,(l,i)=>l===i),name:t,subs:St()}}function qn(e,t){return{id:Re(),value:e,equals:(r,l)=>!1,name:t,subs:St()}}function Un(e){return $t(e.subs),Rn(e.subs),e.value}function Yn(e){return $t(e.subs),e.value}function kt(e,t){let n;try{n=!e.equals(e.value,t)}catch{n=!0}if(n)return e.value=t,e.subs.version=e.subs.version+1|0,zn(e.subs)}function Jn(e,t){kt(e,t(e.value))}let Qn=Bn,Zn=In,Je=Xn,er=qn,k=Un,H=Yn,ae=kt,tr=Jn,nr=Qn,rr=Zn;const ir=Object.freeze(Object.defineProperty({__proto__:null,batch:nr,get:k,make:Je,makeForComputed:er,peek:H,set:ae,untrack:rr,update:tr},Symbol.toStringTag,{value:"Module"}));function Qe(e,t){delete e[t]}function lr(e,t){let n=Re(),r={contents:void 0},i=xn(()=>{r.contents.value=e()}),u=C.contents;C.contents=i;let o=e();C.contents=u;let c={id:n,value:o,equals:(y,O)=>!1,name:t,subs:i};return r.contents=c,Xe(i),c}function ur(e){qe(e.subs)}let Q=lr,Dt=ur;const or=Object.freeze(Object.defineProperty({__proto__:null,dispose:Dt,make:Q},Symbol.toStringTag,{value:"Module"}));let Ot="http://www.w3.org/2000/svg",Ct=["svg","path","circle","ellipse","line","polygon","polyline","rect","g","defs","clipPath","mask","pattern","marker","symbol","use","text","tspan","image","foreignObject","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComposite","feFlood","feGaussianBlur","feMerge","feMergeNode","feOffset","animate","animateTransform","desc","title","metadata"],Le={};Ct.forEach(e=>{Le[e]=!0});function ar(e){return Ye(Le[e])}function be(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"aria-expanded":case"aria-hidden":case"aria-selected":case"autofocus":case"contenteditable":case"draggable":case"hidden":case"multiple":case"readonly":case"required":case"spellcheck":break;case"value":e.value=n;return;default:e.setAttribute(t,n);return}n==="true"?e.setAttribute(t,""):e.removeAttribute(t)}let we={setAttrOrProp:be},Ce={contents:void 0};function dr(){return{disposers:[],computeds:[]}}function me(e,t){let n=Ce.contents;Ce.contents=e;let r=t();return Ce.contents=n,r}function pe(e,t){e.disposers.push(t)}function jt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(Dt)}function ge(e,t){e.__xote_owner__=t}function Pt(e){return Ue(e.__xote_owner__)}let s={currentOwner:Ce,createOwner:dr,runWithOwner:me,addDisposer:pe,disposeOwner:jt,setOwner:ge,getOwner:Pt};function Mt(e,t){return[e,{TAG:"Static",_0:t}]}function Rt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Gt(e,t){return[e,{TAG:"Compute",_0:t}]}let cr={$$static:Mt,signal:Rt,computed:Gt};function Ee(e){let t=Pt(e);t!==void 0&&jt(t),Array.from(e.childNodes||[]).forEach(Ee)}function Y(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=e.tag,i=Ye(Le[l])?document.createElementNS(Ot,l):document.createElement(l),u={disposers:[],computeds:[]};return ge(i,u),me(u,()=>{r.forEach(a=>{let m=a[1],$=a[0];switch(m.TAG){case"Static":return be(i,$,m._0);case"SignalValue":let D=m._0;be(i,$,H(D));let R=G(()=>{be(i,$,k(D))},void 0);return pe(u,R);case"Compute":let p=m._0,_=G(()=>{be(i,$,p())},void 0);return pe(u,_)}}),n.forEach(a=>{i.addEventListener(a[0],a[1])}),t.forEach(a=>{let m=Y(a);i.appendChild(m)})}),i;case"Text":return document.createTextNode(e._0);case"SignalText":let o=e._0,c=document.createTextNode(H(o)),y={disposers:[],computeds:[]};return ge(c,y),me(y,()=>{let a=G(()=>{c.textContent=k(o)},void 0);pe(y,a)}),c;case"Fragment":let O=document.createDocumentFragment();return e._0.forEach(a=>{let m=Y(a);O.appendChild(m)}),O;case"SignalFragment":let F=e._0,N={disposers:[],computeds:[]},j=document.createElement("div");return j.setAttribute("style","display: contents"),ge(j,N),me(N,()=>{let a=G(()=>{let m=k(F);Array.from(j.childNodes||[]).forEach(Ee),j.innerHTML="",m.forEach(D=>{let R=Y(D);j.appendChild(R)})},void 0);pe(N,a)}),j;case"LazyComponent":let A={disposers:[],computeds:[]},X=me(A,e._0),W=Y(X);return ge(W,A),W;case"KeyedList":let K=e.renderItem,P=e.keyFn,q=e.signal,fe={disposers:[],computeds:[]},x=document.createComment(" keyed-list-start "),b=document.createComment(" keyed-list-end ");ge(x,fe);let f={},E=()=>{let a=b.parentNode;if(a==null)return;let m=k(q),$={};m.forEach(g=>{$[P(g)]=g});let D=[];Object.keys(f).forEach(g=>{if($[g]===void 0){D.push(g);return}}),D.forEach(g=>{let v=f[g];if(v!==void 0){Ee(v.element),v.element.remove(),Qe(f,g);return}});let R=[],p={};m.forEach(g=>{let v=P(g),he=f[v];if(he!==void 0){if(he.item!==g){p[v]=!0;let De=K(g),vn=Y(De),ct={key:v,item:g,element:vn};R.push(ct),f[v]=ct;return}R.push(he);return}let Ae=K(g),Ie=Y(Ae),ke={key:v,item:g,element:Ie};R.push(ke),f[v]=ke});let _={contents:x.nextSibling};R.forEach(g=>{let v=_.contents;if(v==null){a.insertBefore(g.element,b);return}if(v===b){a.insertBefore(g.element,b);return}if(v===g.element){_.contents=v.nextSibling;return}J(p[g.key],!1)?(Ee(v),a.replaceChild(g.element,v),_.contents=g.element.nextSibling):(a.insertBefore(g.element,v),_.contents=g.element.nextSibling)})},T=document.createDocumentFragment();return T.appendChild(x),H(q).forEach(a=>{let m=P(a),$=K(a),D=Y($),R={key:m,item:a,element:D};f[m]=R,T.appendChild(D)}),T.appendChild(b),me(fe,()=>{let a=G(()=>{E()},void 0);pe(fe,a)}),T}}let te={disposeElement:Ee,render:Y};function Lt(e){return{TAG:"Text",_0:e}}function sr(e){return{TAG:"SignalText",_0:Q(e,void 0)}}function fr(e){return{TAG:"SignalText",_0:Q(()=>e().toString(),void 0)}}function hr(e){return{TAG:"SignalText",_0:Q(()=>e().toString(),void 0)}}function mr(e){return{TAG:"Text",_0:e.toString()}}function pr(e){return{TAG:"Text",_0:e.toString()}}function Ze(e){return{TAG:"Fragment",_0:e}}function et(e){return{TAG:"SignalFragment",_0:e}}function gr(e,t){return{TAG:"SignalFragment",_0:Q(()=>k(e).map(t),void 0)}}function yr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function V(e,t,n,r,l){let i=t!==void 0?t:[].map(c=>c),u=n!==void 0?n:[].map(c=>c),o=r!==void 0?r:[].map(c=>c);return{TAG:"Element",tag:e,attrs:i,events:u,children:o}}function Sr(){return{TAG:"Text",_0:""}}function Ft(e,t){let n=Y(e);t.appendChild(n)}function _r(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Ft(e,n)}let br=Le,U=Mt,de=Rt,Fe=Gt;const Er=Object.freeze(Object.defineProperty({__proto__:null,$$null:Sr,Attributes:cr,DOM:we,Reactivity:s,Render:te,attr:U,computedAttr:Fe,element:V,float:pr,fragment:Ze,int:mr,isSvgTag:ar,keyedList:yr,list:gr,mount:Ft,mountById:_r,signalAttr:de,signalFloat:hr,signalFragment:et,signalInt:fr,signalText:sr,svgNamespace:Ot,svgTagSet:br,svgTags:Ct,text:Lt},Symbol.toStringTag,{value:"Module"}));function wr(e,t,n,r){return V("div",e,t,n)}function Tr(e,t,n,r){return V("span",e,t,n)}function vr(e,t,n,r){return V("button",e,t,n)}function xr(e,t,n){return V("input",e,t,void 0)}function $r(e,t,n,r){return V("h1",e,t,n)}function Ar(e,t,n,r){return V("h2",e,t,n)}function kr(e,t,n,r){return V("h3",e,t,n)}function Dr(e,t,n,r){return V("p",e,t,n)}function Or(e,t,n,r){return V("ul",e,t,n)}function Cr(e,t,n,r){return V("li",e,t,n)}function tt(e,t,n,r){return V("a",e,t,n)}const jr=Object.freeze(Object.defineProperty({__proto__:null,a:tt,button:vr,div:wr,h1:$r,h2:Ar,h3:kr,input:xr,li:Cr,p:Dr,span:Tr,ul:Or},Symbol.toStringTag,{value:"Module"}));function Nt(e,t){return{TAG:"LazyComponent",_0:()=>e(t)}}function zt(e,t,n,r){return{TAG:"LazyComponent",_0:()=>e(t)}}function Pr(e){let t=e.children;return t!==void 0?t:Ze([])}let Mr=Ze;function Rr(){return Lt("")}function nt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function S(e,t){return nt(t)?t.TAG==="Reactive"?de(e,t._0):U(e,t._0):typeof t=="function"?Fe(e,t):typeof t=="object"?de(e,t):U(e,t)}function L(e,t){if(nt(t)){if(t.TAG!=="Reactive")return U(e,t._0?"true":"false");let r=t._0,l=Q(()=>k(r)?"true":"false",void 0);return de(e,l)}if(typeof t=="function")return Fe(e,()=>t()?"true":"false");if(typeof t!="object")return U(e,t?"true":"false");let n=Q(()=>k(t)?"true":"false",void 0);return de(e,n)}function d(e,t,n,r){if(t!==void 0){e.push(r(n,h(t)));return}}function ye(e,t,n){if(t!==void 0){e.push(U(n,t.toString()));return}}function Bt(e){let t=[];d(t,e.id,"id",S),d(t,e.class,"class",S),d(t,e.style,"style",S),d(t,e.title,"title",S),d(t,e.type,"type",S),d(t,e.name,"name",S),d(t,e.value,"value",S),d(t,e.placeholder,"placeholder",S),d(t,e.disabled,"disabled",L),d(t,e.checked,"checked",L),d(t,e.required,"required",L),d(t,e.readOnly,"readonly",L),ye(t,e.maxLength,"maxlength"),ye(t,e.minLength,"minlength"),d(t,e.min,"min",S),d(t,e.max,"max",S),d(t,e.step,"step",S),d(t,e.pattern,"pattern",S),d(t,e.autoComplete,"autocomplete",S),d(t,e.multiple,"multiple",L),d(t,e.accept,"accept",S),ye(t,e.rows,"rows"),ye(t,e.cols,"cols"),d(t,e.autofocus,"autofocus",L),d(t,e.action,"action",S),d(t,e.method,"method",S),d(t,e.for,"for",S),d(t,e.href,"href",S),d(t,e.target,"target",S),d(t,e.src,"src",S),d(t,e.alt,"alt",S),d(t,e.width,"width",S),d(t,e.height,"height",S),d(t,e.draggable,"draggable",L),d(t,e.hidden,"hidden",L),d(t,e.contentEditable,"contenteditable",L),d(t,e.spellcheck,"spellcheck",L),d(t,e.role,"role",S),ye(t,e.tabIndex,"tabindex"),d(t,e["aria-label"],"aria-label",S),d(t,e["aria-hidden"],"aria-hidden",L),d(t,e["aria-expanded"],"aria-expanded",L),d(t,e["aria-selected"],"aria-selected",L);let n=e.data;return n!==void 0&&Object.entries(n).forEach(([r,l])=>{t.push(S("data-"+r,l))}),t}function w(e,t,n){if(t!==void 0){e.push([n,h(t)]);return}}function It(e){let t=[];return w(t,e.onClick,"click"),w(t,e.onInput,"input"),w(t,e.onChange,"change"),w(t,e.onSubmit,"submit"),w(t,e.onFocus,"focus"),w(t,e.onBlur,"blur"),w(t,e.onKeyDown,"keydown"),w(t,e.onKeyUp,"keyup"),w(t,e.onMouseEnter,"mouseenter"),w(t,e.onMouseLeave,"mouseleave"),w(t,e.onMouseDown,"mousedown"),w(t,e.onMouseMove,"mousemove"),w(t,e.onMouseUp,"mouseup"),w(t,e.onContextMenu,"contextmenu"),w(t,e.onDrag,"drag"),w(t,e.onDragStart,"dragstart"),w(t,e.onDragEnd,"dragend"),w(t,e.onDragOver,"dragover"),w(t,e.onDragEnter,"dragenter"),w(t,e.onDragLeave,"dragleave"),w(t,e.onDrop,"drop"),t}function Wt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function rt(e,t){return{TAG:"Element",tag:e,attrs:Bt(t),events:It(t),children:Wt(t)}}let pt=rt;function gt(e,t,n,r){return rt(e,t)}let Gr={isReactiveProp:nt,convertAttrValue:S,convertBoolAttrValue:L,addAttr:d,addIntAttr:ye,propsToAttrs:Bt,addEvent:w,propsToEvents:It,getChildren:Wt,createElement:rt,jsx:pt,jsxs:pt,jsxKeyed:gt,jsxsKeyed:gt},Lr,Fr=Nt,Nr=zt;const zr=Object.freeze(Object.defineProperty({__proto__:null,$$null:Rr,Elements:Gr,ReactiveProp:Lr,array:Mr,jsx:Nt,jsxFragment:Pr,jsxKeyed:zt,jsxs:Fr,jsxsKeyed:Nr},Symbol.toStringTag,{value:"Module"}));function Br(e){return e.TAG==="Reactive"?k(e._0):e._0}function Ir(e){return{TAG:"Static",_0:e}}function Wr(e){return{TAG:"Reactive",_0:e}}const Kr=Object.freeze(Object.defineProperty({__proto__:null,$$static:Ir,get:Br,reactive:Wr},Symbol.toStringTag,{value:"Module"}));function Kt(e,t){let n=e.length,r=new Array(n),l=0;for(let i=0;i<n;++i){let u=e[i],o=t(u);o!==void 0&&(r[l]=h(o),l=l+1|0)}return r.length=l,r}function Vr(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 Vt(e){return Kt(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Ht(e,t){let n=t.split("/").filter(i=>i!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((i,u)=>{let o=n[u];return i.TAG==="Static"?o===i._0:(r[i._0]=o,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function it(e,t){return Ht(Vt(e),t)}const Hr=Object.freeze(Object.defineProperty({__proto__:null,match:it,matchPath:Ht,parsePattern:Vt},Symbol.toStringTag,{value:"Module"}));function Xr(){return Symbol.for("xote.router.state")}function I(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:Je({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function qr(){return I().location}function Ur(){return I().basePath}function ce(e){if(!I().initialized){console.warn("[Xote Router] "+e+" called before Router.init(). Make sure to call Router.init() at your app entry point. This may cause incorrect routing behavior.");return}}function lt(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function Xt(e){let t=I().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function ve(e){let t=I().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function qt(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function Ne(e,t){window.scrollTo(e,t)}function Ut(e,t){return{scrollX:e,scrollY:t}}function ut(){return{}}function Yt(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Jt(){let e=qt(),t=Ut(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function Ve(){let e=window.location.pathname;return{pathname:Xt(e),search:window.location.search,hash:window.location.hash}}function Yr(e,t){let n=e!==void 0?e:"/",r=I(),l=lt(n);if(r.basePath.contents=l,ae(r.location,Ve()),r.initialized)return;let i=u=>{ae(I().location,Ve());let o=window["history.state"];if(o==null)return;let c=Yt(o);if(c!==void 0)return Ne(c[0],c[1])};r.popStateHandler=i,window.addEventListener("popstate",i),r.initialized=!0}function Jr(e,t,n,r,l){let i=e!==void 0?e:"/",u=t!==void 0?t:"/",o=n!==void 0?n:"",c=r!==void 0?r:"",y=I(),O=lt(i);y.basePath.contents=O,ae(y.location,{pathname:u,search:o,hash:c}),y.initialized=!0}function ot(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";ce("Router.push()"),Jt();let u={pathname:e,search:l,hash:i},c=ve(e)+l+i;window.history.pushState(ut(),"",c),ae(I().location,u),Ne(0,0)}function Qr(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";ce("Router.replace()");let u={pathname:e,search:l,hash:i},c=ve(e)+l+i;window.history.replaceState(ut(),"",c),ae(I().location,u),Ne(0,0)}function Zr(e,t){return ce("Router.route()"),et(Q(()=>{let n=k(I().location),r=it(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function ei(e){return ce("Router.routes()"),et(Q(()=>{let t=k(I().location),n=Vr(e,r=>{let l=it(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function ti(e,t,n,r){let l=t!==void 0?t:[],i=n!==void 0?n:[];ce("Router.link()");let u=o=>{o.preventDefault(),ot(e,void 0,void 0)};return tt(l.concat([U("href",ve(e))]),[["click",u]],i)}function Qt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function Se(e,t){return Qt(t)?t.TAG==="Reactive"?de(e,t._0):U(e,t._0):typeof t=="function"?Fe(e,t):typeof t=="object"?de(e,t):U(e,t)}function Zt(e){let t=[],n=e.class;n!==void 0&&t.push(Se("class",h(n)));let r=e.id;r!==void 0&&t.push(Se("id",h(r)));let l=e.style;l!==void 0&&t.push(Se("style",h(l)));let i=e.target;i!==void 0&&t.push(Se("target",h(i)));let u=e["aria-label"];return u!==void 0&&t.push(Se("aria-label",h(u))),t}function en(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function je(e){ce("Router.Link");let t=n=>{n.preventDefault(),ot(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return tt(Zt(e).concat([U("href",ve(e.to))]),[["click",t]],en(e))}function yt(e,t,n){return je(e)}let ni={ReactiveProp:void 0,isReactiveProp:Qt,convertAttrValue:Se,propsToAttrs:Zt,getChildren:en,make:je,jsx:je,jsxs:je,jsxKeyed:yt,jsxsKeyed:yt},ri;const ii=Object.freeze(Object.defineProperty({__proto__:null,Link:ni,Route:ri,addBasePath:ve,basePath:Ur,emptyHistoryState:ut,getCurrentLocation:Ve,getGlobalState:I,getScrollFromState:Yt,getScrollPosition:qt,getSymbolKey:Xr,init:Yr,initSSR:Jr,link:ti,location:qr,makeHistoryState:Ut,normalizeBasePath:lt,push:ot,replace:Qr,route:Zr,routes:ei,saveScrollPosition:Jt,scrollTo:Ne,stripBasePath:Xt,warnIfNotInitialized:ce},Symbol.toStringTag,{value:"Module"}));function ie(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#x27;")}let at=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function li(e){return at.includes(e)}let tn={escape:ie,voidElements:at,isVoidElement:li},nn="<!--$-->",rn="<!--/$-->",ln="<!--#-->",un="<!--/#-->",on="<!--kl-->",an="<!--/kl-->";function dn(e){return"<!--k:"+e+"-->"}let cn="<!--/k-->",sn="<!--lc-->",fn="<!--/lc-->",ui={signalTextStart:nn,signalTextEnd:rn,signalFragmentStart:ln,signalFragmentEnd:un,keyedListStart:on,keyedListEnd:an,keyedItemStart:dn,keyedItemEnd:cn,lazyComponentStart:sn,lazyComponentEnd:fn};function hn(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=H(t._0);break;case"Compute":r=t._0();break}switch(n){case"aria-expanded":case"aria-hidden":case"aria-selected":case"autofocus":case"checked":case"contenteditable":case"disabled":case"draggable":case"hidden":case"multiple":case"readonly":case"required":case"spellcheck":break;default:return n+'="'+ie(r)+'"'}return r==="true"?n:""}function mn(e){let t=e.map(hn).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let oi={renderAttr:hn,renderAttrs:mn};function ne(e){switch(e.TAG){case"Element":let t=e.tag,n=mn(e.attrs);if(at.includes(t))return"<"+t+n+" />";let r=e.children.map(ne).join("");return"<"+t+n+">"+r+"</"+t+">";case"Text":return ie(e._0);case"SignalText":let l=H(e._0);return nn+ie(l)+rn;case"Fragment":return e._0.map(ne).join("");case"SignalFragment":let u=H(e._0).map(ne).join("");return ln+u+un;case"LazyComponent":let o=e._0();return sn+ne(o)+fn;case"KeyedList":let c=e.renderItem,y=e.keyFn,F=H(e.signal).map(N=>{let j=y(N),A=ne(c(N));return dn(j)+A+cn}).join("");return on+F+an}}function pn(e,t){return ne(e())}function ai(e,t,n){let r=t!==void 0?t:"root",l=e(),i=ne(l);return"<!--xote-root:"+r+"-->"+i+"<!--/xote-root-->"}function gn(e){return"<script"+(e!==void 0?' nonce="'+ie(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function di(e,t,n,r,l,i,u){let o=e!==void 0?e:"",c=t!==void 0?t:"",y=n!==void 0?n:[],O=r!==void 0?r:[],F=l!==void 0?l:"",N=pn(u),j=gn(i),A=O.map(W=>'<link rel="stylesheet" href="'+ie(W)+'" />').join(`
2
+ `),X=y.map(W=>{let K=i!==void 0?' nonce="'+ie(i)+'"':"";return'<script type="module" src="'+ie(W)+'"'+K+"><\/script>"}).join(`
3
3
  `);return`<!DOCTYPE html>
4
4
  <html>
5
5
  <head>
6
6
  <meta charset="UTF-8" />
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- `+$+`
8
+ `+A+`
9
9
  `+o+`
10
10
  </head>
11
- <body`+(a!==""?" "+a:"")+`>
12
- <div id="root">`+F+`</div>
13
- `+L+`
14
- `+C+`
15
- `+H+`
11
+ <body`+(c!==""?" "+c:"")+`>
12
+ <div id="root">`+N+`</div>
13
+ `+F+`
14
+ `+j+`
15
+ `+X+`
16
16
  </body>
17
- </html>`}const ci=Object.freeze(Object.defineProperty({__proto__:null,Attributes:oi,Html:tn,Markers:ui,generateHydrationScript:gn,renderDocument:ai,renderNodeToString:ne,renderToString:pn,renderToStringWithRoot:di},Symbol.toStringTag,{value:"Module"}));let xe=typeof document>"u",ze=!xe;function si(e){if(xe)return oe(e())}function fi(e){if(ze)return oe(e())}function yn(e,t){return xe?e():t()}const hi=Object.freeze(Object.defineProperty({__proto__:null,isClient:ze,isServer:xe,match:yn,onClient:fi,onServer:si},Symbol.toStringTag,{value:"Module"}));function mi(e){if(typeof e=="boolean")return e}function pi(e){if(e===null)return null}function gi(e){if(typeof e=="string")return e}function yi(e){if(typeof e=="number")return e}function Si(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function _i(e){if(Array.isArray(e))return e}let se={bool:mi,$$null:pi,string:gi,float:yi,object:Si,array:_i};function bi(e){return e}function Ei(e){let t=se.float(e);if(t!==void 0)return t|0}let wi={encode:bi,decode:Ei};function Ti(e){return e}function vi(e){return se.float(e)}let xi={encode:Ti,decode:vi};function $i(e){return e}function Ai(e){return se.string(e)}let ki={encode:$i,decode:Ai};function Oi(e){return e}function Di(e){return se.bool(e)}let Ci={encode:Oi,decode:Di};function ji(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=se.array(t);if(n===void 0)return;let r=Kt(n,e.decode);if(r.length===n.length)return r}}}function Pi(e){return{encode:t=>t!==void 0?e.encode(h(t)):null,decode:t=>Ye(se.$$null(t))?oe(void 0):Hn(e.decode(t),n=>oe(n))}}function Mi(e,t){return{encode:n=>[e.encode(n[0]),t.encode(n[1])],decode:n=>{let r=Array.isArray(n)?n:void 0;if(r===void 0||r.length!==2)return;let l=r[0],i=r[1],u=e.decode(l),o=t.decode(i);if(u!==void 0&&o!==void 0)return[h(u),h(o)]}}}function Ri(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let l=Array.isArray(r)?r:void 0;if(l===void 0||l.length!==3)return;let i=l[0],u=l[1],o=l[2],a=e.decode(i),y=t.decode(u),O=n.decode(o);if(a!==void 0&&y!==void 0&&O!==void 0)return[h(a),h(y),h(O)]}}}function Gi(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=se.object(t);if(n===void 0)return;let r={},l={contents:!0};if(Object.entries(n).forEach(i=>{let u=e.decode(i[1]);u!==void 0?r[i[0]]=h(u):l.contents=!1}),l.contents)return r}}}function Li(e,t){return{encode:e,decode:t}}let Fi={int:wi,float:xi,string:ki,bool:Ci,array:ji,option:Pi,tuple2:Mi,tuple3:Ri,dict:Gi,make:Li},Te={};function Sn(e,t,n){if(xe){Te[e]=n.encode(V(t));return}}function Ni(){Object.keys(Te).forEach(e=>{Qe(Te,e)})}function _n(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function zi(e){let t=J(JSON.stringify(Te),"{}"),n=_n(t);return"<script"+(e!==void 0?' nonce="'+tn.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function bn(){return ze?window.__XOTE_STATE__||{}:{}}function En(e,t,n){if(!ze)return;let l=bn()[e];if(l===void 0)return;let i=n.decode(l);if(i!==void 0)return de(t,h(i))}function wn(e,t,n){yn(()=>Sn(e,t,n),()=>En(e,t,n))}function Bi(e,t,n){let r=Je(t,void 0,void 0);return wn(e,r,n),r}const Ii=Object.freeze(Object.defineProperty({__proto__:null,Codec:Fi,clear:Ni,escapeForScript:_n,generateScript:zi,getClientState:bn,make:Bi,register:Sn,registry:Te,restore:En,sync:wn},Symbol.toStringTag,{value:"Module"}));let Ke={};function Wi(e){let t=Ke[e];if(t!==void 0){let n=t+1|0;return Ke[e]=n,e+("/"+n)}return Ke[e]=1,e}function Ki(e){return Array.from(e.childNodes||[])}function $e(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function Be(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function at(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function _e(e){return{current:Ue(e.firstChild),parent:e}}function Vi(e){return e.current}function N(e){let t=e.current;return t!==void 0&&(e.current=Ue(h(t).nextSibling)),t}function Z(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let l=h(r);if($e(l,t))return N(e),oe(l);N(e)}})()}function Me(e,t){let n=[];return(()=>{for(;;){let l=e.current;if(l===void 0)return;let i=h(l);if($e(i,t)){N(e);return}n.push(i),N(e)}})(),n}let Hi={elementNode:1,textNode:3,commentNode:8,getChildNodes:Ki,isMarker:$e,isMarkerPrefix:Be,extractKey:at,make:_e,peek:Vi,next:N,skipUntilMarker:Z,collectUntilMarker:Me},Xi=Wi("Hydration-Xote.HydrationMismatch");function He(e){console.warn("[Xote Hydration] "+e)}function qi(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,l=n.events,i=n.attrs,u=c.createOwner();return c.setOwner(t,u),c.runWithOwner(u,()=>{i.forEach(_=>{let s=_[1],b=_[0];switch(s.TAG){case"Static":return;case"SignalValue":let w=s._0,P=G(()=>{we.setAttrOrProp(t,b,A(w))},void 0);return c.addDisposer(u,P);case"Compute":let d=s._0,m=G(()=>{we.setAttrOrProp(t,b,d())},void 0);return c.addDisposer(u,m)}}),l.forEach(_=>{t.addEventListener(_[0],_[1])});let v=_e(t);r.forEach(_=>le(_,v))});case"Text":return;case"SignalText":let o=n._0,a=c.createOwner();return c.setOwner(t,a),c.runWithOwner(a,()=>{let v=G(()=>{t.textContent=A(o)},void 0);c.addDisposer(a,v)});case"Fragment":let y=_e(t);n._0.forEach(v=>le(v,y));return;case"SignalFragment":let O=n._0,L=c.createOwner();return c.setOwner(t,L),c.runWithOwner(L,()=>{let v=G(()=>{let _=A(O);Array.from(t.childNodes||[]).forEach(b=>c.disposeOwner(J(c.getOwner(b),c.createOwner()))),t.innerHTML="",_.forEach(b=>{let w=te.render(b);t.appendChild(w)})},void 0);c.addDisposer(L,v)});case"LazyComponent":let F=c.createOwner(),C=c.runWithOwner(F,n._0);c.setOwner(t,F),e=C;continue;case"KeyedList":let $=n.renderItem,H=n.keyFn,I=n.signal,W=c.createOwner();c.setOwner(t,W);let j={},X=_e(t);return Z(X,"kl"),(()=>{for(;;){let v=X.current;if(v===void 0)return;let _=h(v);if(!Be(_,"k:"))if($e(_,"/kl")){N(X);return}else return;let s=J(at(_),"");N(X);let w=Me(X,"/k").find(P=>P.nodeType===1);if(w!==void 0){let P=V(I),d=J(P.find(m=>H(m)===s),{});j[s]={key:s,item:d,element:h(w)}}}})(),c.runWithOwner(W,()=>{let v=document.createComment(" keyed-list-start "),_=document.createComment(" keyed-list-end "),s=t.firstChild;s==null?t.appendChild(v):t.insertBefore(v,s),t.appendChild(_);let b=()=>{let P=A(I),d={};P.forEach(p=>{d[H(p)]=p});let m=[];Object.keys(j).forEach(p=>{if(d[p]===void 0){m.push(p);return}}),m.forEach(p=>{let S=j[p];if(S!==void 0){te.disposeElement(S.element),S.element.remove(),Qe(j,p);return}});let x=[],k={};P.forEach(p=>{let S=H(p),g=j[S];if(g!==void 0){if(g.item!==p){k[S]=!0;let Ie=$(p),ke=te.render(Ie),Oe={key:S,item:p,element:ke};x.push(Oe),j[S]=Oe;return}x.push(g);return}let T=$(p),he=te.render(T),Ae={key:S,item:p,element:he};x.push(Ae),j[S]=Ae});let M={contents:v.nextSibling};x.forEach(p=>{let S=M.contents;if(S==null){t.insertBefore(p.element,_);return}if(S===_){t.insertBefore(p.element,_);return}if(S===p.element){M.contents=S.nextSibling;return}J(k[p.key],!1)?(te.disposeElement(S),t.replaceChild(p.element,S),M.contents=p.element.nextSibling):(t.insertBefore(p.element,S),M.contents=p.element.nextSibling)})},w=G(()=>{b()},void 0);c.addDisposer(W,w)})}}}function le(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,l=e.attrs,i=N(t);if(i===void 0)return He("Missing DOM element for Element node");let u=h(i),o=c.createOwner();return c.setOwner(u,o),c.runWithOwner(o,()=>{l.forEach(b=>{let w=b[1],P=b[0];switch(w.TAG){case"Static":return;case"SignalValue":let d=w._0,m=G(()=>{we.setAttrOrProp(u,P,A(d))},void 0);return c.addDisposer(o,m);case"Compute":let x=w._0,k=G(()=>{we.setAttrOrProp(u,P,x())},void 0);return c.addDisposer(o,k)}}),r.forEach(b=>{u.addEventListener(b[0],b[1])});let s=_e(u);n.forEach(b=>le(b,s))});case"Text":N(t);return;case"SignalText":let a=e._0;Z(t,"$");let y=N(t);if(y===void 0)return He("Missing text node for SignalText");let O=h(y),L=c.createOwner();c.setOwner(O,L),c.runWithOwner(L,()=>{let s=G(()=>{O.textContent=A(a)},void 0);c.addDisposer(L,s)}),Z(t,"/$");return;case"Fragment":e._0.forEach(s=>le(s,t));return;case"SignalFragment":let F=e._0;Z(t,"#");let C=Me(t,"/#"),$=document.createElement("div");$.setAttribute("style","display: contents");let H=C[0],I=H!==void 0?H.parentNode:void 0;C.forEach(s=>{$.appendChild(s)});let W=t.current;if(I!==void 0){let s=h(I);W!==void 0?s.insertBefore($,h(W)):s.appendChild($)}let j=c.createOwner();return c.setOwner($,j),c.runWithOwner(j,()=>{let s=G(()=>{let b=A(F);Array.from($.childNodes||[]).forEach(te.disposeElement),$.innerHTML="",b.forEach(P=>{let d=te.render(P);$.appendChild(d)})},void 0);c.addDisposer(j,s)});case"LazyComponent":Z(t,"lc");let X=e._0();le(X,t),Z(t,"/lc");return;case"KeyedList":let fe=e.keyFn,v=e.signal;return Z(t,"kl"),(()=>{for(;;){let s=t.current;if(s===void 0)return;let b=h(s);if(!Be(b,"k:"))if($e(b,"/kl")){N(t);return}else return;let w=J(at(b),"");N(t);let d=Me(t,"/k").find(m=>m.nodeType===1);if(d!==void 0){let m=V(v),x=J(m.find(k=>fe(k)===w),{});h(d)}}})()}}function Tn(e,t,n){let r=n!==void 0?n:{},l=e(),i=_e(t),u=i.current;u!==void 0&&Be(h(u),"xote-root:")&&N(i),le(l,i),window.__XOTE_HYDRATED__=!0;let o=r.onHydrated;if(o!==void 0)return o()}function Ui(e,t,n){let r=n!==void 0?n:{},l=document.getElementById(t);if(l==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return Tn(e,l,r)}let Yi,Ji;const Qi=Object.freeze(Object.defineProperty({__proto__:null,DOM:Yi,DOMWalker:Hi,HydrationMismatch:Xi,Reactivity:Ji,hydrate:Tn,hydrateById:Ui,hydrateNode:qi,hydrateNodeWithWalker:le,logHydrationWarning:He},Symbol.toStringTag,{value:"Module"}));exports.Computed=or;exports.Effect=Vn;exports.Html=jr;exports.Hydration=Qi;exports.Node=Er;exports.ReactiveProp=Kr;exports.Route=Hr;exports.Router=ii;exports.SSR=ci;exports.SSRContext=hi;exports.SSRState=Ii;exports.Signal=ir;exports.XoteJSX=zr;
17
+ </html>`}const ci=Object.freeze(Object.defineProperty({__proto__:null,Attributes:oi,Html:tn,Markers:ui,generateHydrationScript:gn,renderDocument:di,renderNodeToString:ne,renderToString:pn,renderToStringWithRoot:ai},Symbol.toStringTag,{value:"Module"}));let xe=typeof document>"u",ze=!xe;function si(e){if(xe)return oe(e())}function fi(e){if(ze)return oe(e())}function yn(e,t){return xe?e():t()}const hi=Object.freeze(Object.defineProperty({__proto__:null,isClient:ze,isServer:xe,match:yn,onClient:fi,onServer:si},Symbol.toStringTag,{value:"Module"}));function mi(e){if(typeof e=="boolean")return e}function pi(e){if(e===null)return null}function gi(e){if(typeof e=="string")return e}function yi(e){if(typeof e=="number")return e}function Si(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function _i(e){if(Array.isArray(e))return e}let se={bool:mi,$$null:pi,string:gi,float:yi,object:Si,array:_i};function bi(e){return e}function Ei(e){let t=se.float(e);if(t!==void 0)return t|0}let wi={encode:bi,decode:Ei};function Ti(e){return e}function vi(e){return se.float(e)}let xi={encode:Ti,decode:vi};function $i(e){return e}function Ai(e){return se.string(e)}let ki={encode:$i,decode:Ai};function Di(e){return e}function Oi(e){return se.bool(e)}let Ci={encode:Di,decode:Oi};function ji(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=se.array(t);if(n===void 0)return;let r=Kt(n,e.decode);if(r.length===n.length)return r}}}function Pi(e){return{encode:t=>t!==void 0?e.encode(h(t)):null,decode:t=>Ye(se.$$null(t))?oe(void 0):Hn(e.decode(t),n=>oe(n))}}function Mi(e,t){return{encode:n=>[e.encode(n[0]),t.encode(n[1])],decode:n=>{let r=Array.isArray(n)?n:void 0;if(r===void 0||r.length!==2)return;let l=r[0],i=r[1],u=e.decode(l),o=t.decode(i);if(u!==void 0&&o!==void 0)return[h(u),h(o)]}}}function Ri(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let l=Array.isArray(r)?r:void 0;if(l===void 0||l.length!==3)return;let i=l[0],u=l[1],o=l[2],c=e.decode(i),y=t.decode(u),O=n.decode(o);if(c!==void 0&&y!==void 0&&O!==void 0)return[h(c),h(y),h(O)]}}}function Gi(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=se.object(t);if(n===void 0)return;let r={},l={contents:!0};if(Object.entries(n).forEach(i=>{let u=e.decode(i[1]);u!==void 0?r[i[0]]=h(u):l.contents=!1}),l.contents)return r}}}function Li(e,t){return{encode:e,decode:t}}let Fi={int:wi,float:xi,string:ki,bool:Ci,array:ji,option:Pi,tuple2:Mi,tuple3:Ri,dict:Gi,make:Li},Te={};function Sn(e,t,n){if(xe){Te[e]=n.encode(H(t));return}}function Ni(){Object.keys(Te).forEach(e=>{Qe(Te,e)})}function _n(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function zi(e){let t=J(JSON.stringify(Te),"{}"),n=_n(t);return"<script"+(e!==void 0?' nonce="'+tn.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function bn(){return ze?window.__XOTE_STATE__||{}:{}}function En(e,t,n){if(!ze)return;let l=bn()[e];if(l===void 0)return;let i=n.decode(l);if(i!==void 0)return ae(t,h(i))}function wn(e,t,n){yn(()=>Sn(e,t,n),()=>En(e,t,n))}function Bi(e,t,n){let r=Je(t,void 0,void 0);return wn(e,r,n),r}const Ii=Object.freeze(Object.defineProperty({__proto__:null,Codec:Fi,clear:Ni,escapeForScript:_n,generateScript:zi,getClientState:bn,make:Bi,register:Sn,registry:Te,restore:En,sync:wn},Symbol.toStringTag,{value:"Module"}));let Ke={};function Wi(e){let t=Ke[e];if(t!==void 0){let n=t+1|0;return Ke[e]=n,e+("/"+n)}return Ke[e]=1,e}function Ki(e){return Array.from(e.childNodes||[])}function $e(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function Be(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function dt(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function _e(e){return{current:Ue(e.firstChild),parent:e}}function Vi(e){return e.current}function z(e){let t=e.current;return t!==void 0&&(e.current=Ue(h(t).nextSibling)),t}function Z(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let l=h(r);if($e(l,t))return z(e),oe(l);z(e)}})()}function Me(e,t){let n=[];return(()=>{for(;;){let l=e.current;if(l===void 0)return;let i=h(l);if($e(i,t)){z(e);return}n.push(i),z(e)}})(),n}let Hi={elementNode:1,textNode:3,commentNode:8,getChildNodes:Ki,isMarker:$e,isMarkerPrefix:Be,extractKey:dt,make:_e,peek:Vi,next:z,skipUntilMarker:Z,collectUntilMarker:Me},Xi=Wi("Hydration-Xote.HydrationMismatch");function He(e){console.warn("[Xote Hydration] "+e)}function qi(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,l=n.events,i=n.attrs,u=s.createOwner();return s.setOwner(t,u),s.runWithOwner(u,()=>{i.forEach(b=>{let f=b[1],E=b[0];switch(f.TAG){case"Static":return;case"SignalValue":let T=f._0,M=G(()=>{we.setAttrOrProp(t,E,k(T))},void 0);return s.addDisposer(u,M);case"Compute":let a=f._0,m=G(()=>{we.setAttrOrProp(t,E,a())},void 0);return s.addDisposer(u,m)}}),l.forEach(b=>{t.addEventListener(b[0],b[1])});let x=_e(t);r.forEach(b=>le(b,x))});case"Text":return;case"SignalText":let o=n._0,c=s.createOwner();return s.setOwner(t,c),s.runWithOwner(c,()=>{let x=G(()=>{t.textContent=k(o)},void 0);s.addDisposer(c,x)});case"Fragment":let y=_e(t);n._0.forEach(x=>le(x,y));return;case"SignalFragment":let O=n._0,F=s.createOwner();return s.setOwner(t,F),s.runWithOwner(F,()=>{let x=G(()=>{let b=k(O);Array.from(t.childNodes||[]).forEach(E=>s.disposeOwner(J(s.getOwner(E),s.createOwner()))),t.innerHTML="",b.forEach(E=>{let T=te.render(E);t.appendChild(T)})},void 0);s.addDisposer(F,x)});case"LazyComponent":let N=s.createOwner(),j=s.runWithOwner(N,n._0);s.setOwner(t,N),e=j;continue;case"KeyedList":let A=n.renderItem,X=n.keyFn,W=n.signal,K=s.createOwner();s.setOwner(t,K);let P={},q=_e(t);return Z(q,"kl"),(()=>{for(;;){let x=q.current;if(x===void 0)return;let b=h(x);if(!Be(b,"k:"))if($e(b,"/kl")){z(q);return}else return;let f=J(dt(b),"");z(q);let T=Me(q,"/k").find(M=>M.nodeType===1);if(T!==void 0){let M=H(W),a=J(M.find(m=>X(m)===f),{});P[f]={key:f,item:a,element:h(T)}}}})(),s.runWithOwner(K,()=>{let x=document.createComment(" keyed-list-start "),b=document.createComment(" keyed-list-end "),f=t.firstChild;f==null?t.appendChild(x):t.insertBefore(x,f),t.appendChild(b);let E=()=>{let M=k(W),a={};M.forEach(p=>{a[X(p)]=p});let m=[];Object.keys(P).forEach(p=>{if(a[p]===void 0){m.push(p);return}}),m.forEach(p=>{let _=P[p];if(_!==void 0){te.disposeElement(_.element),_.element.remove(),Qe(P,p);return}});let $=[],D={};M.forEach(p=>{let _=X(p),g=P[_];if(g!==void 0){if(g.item!==p){D[_]=!0;let Ie=A(p),ke=te.render(Ie),De={key:_,item:p,element:ke};$.push(De),P[_]=De;return}$.push(g);return}let v=A(p),he=te.render(v),Ae={key:_,item:p,element:he};$.push(Ae),P[_]=Ae});let R={contents:x.nextSibling};$.forEach(p=>{let _=R.contents;if(_==null){t.insertBefore(p.element,b);return}if(_===b){t.insertBefore(p.element,b);return}if(_===p.element){R.contents=_.nextSibling;return}J(D[p.key],!1)?(te.disposeElement(_),t.replaceChild(p.element,_),R.contents=p.element.nextSibling):(t.insertBefore(p.element,_),R.contents=p.element.nextSibling)})},T=G(()=>{E()},void 0);s.addDisposer(K,T)})}}}function le(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,l=e.attrs,i=z(t);if(i===void 0)return He("Missing DOM element for Element node");let u=h(i),o=s.createOwner();return s.setOwner(u,o),s.runWithOwner(o,()=>{l.forEach(E=>{let T=E[1],M=E[0];switch(T.TAG){case"Static":return;case"SignalValue":let a=T._0,m=G(()=>{we.setAttrOrProp(u,M,k(a))},void 0);return s.addDisposer(o,m);case"Compute":let $=T._0,D=G(()=>{we.setAttrOrProp(u,M,$())},void 0);return s.addDisposer(o,D)}}),r.forEach(E=>{u.addEventListener(E[0],E[1])});let f=_e(u);n.forEach(E=>le(E,f))});case"Text":z(t);return;case"SignalText":let c=e._0;Z(t,"$");let y=z(t);if(y===void 0)return He("Missing text node for SignalText");let O=h(y),F=s.createOwner();s.setOwner(O,F),s.runWithOwner(F,()=>{let f=G(()=>{O.textContent=k(c)},void 0);s.addDisposer(F,f)}),Z(t,"/$");return;case"Fragment":e._0.forEach(f=>le(f,t));return;case"SignalFragment":let N=e._0;Z(t,"#");let j=Me(t,"/#"),A=document.createElement("div");A.setAttribute("style","display: contents");let X=j[0],W=X!==void 0?X.parentNode:void 0;j.forEach(f=>{A.appendChild(f)});let K=t.current;if(W!==void 0){let f=h(W);K!==void 0?f.insertBefore(A,h(K)):f.appendChild(A)}let P=s.createOwner();return s.setOwner(A,P),s.runWithOwner(P,()=>{let f=G(()=>{let E=k(N);Array.from(A.childNodes||[]).forEach(te.disposeElement),A.innerHTML="",E.forEach(M=>{let a=te.render(M);A.appendChild(a)})},void 0);s.addDisposer(P,f)});case"LazyComponent":Z(t,"lc");let q=e._0();le(q,t),Z(t,"/lc");return;case"KeyedList":let fe=e.keyFn,x=e.signal;return Z(t,"kl"),(()=>{for(;;){let f=t.current;if(f===void 0)return;let E=h(f);if(!Be(E,"k:"))if($e(E,"/kl")){z(t);return}else return;let T=J(dt(E),"");z(t);let a=Me(t,"/k").find(m=>m.nodeType===1);if(a!==void 0){let m=H(x),$=J(m.find(D=>fe(D)===T),{});h(a)}}})()}}function Tn(e,t,n){let r=n!==void 0?n:{},l=e(),i=_e(t),u=i.current;u!==void 0&&Be(h(u),"xote-root:")&&z(i),le(l,i),window.__XOTE_HYDRATED__=!0;let o=r.onHydrated;if(o!==void 0)return o()}function Ui(e,t,n){let r=n!==void 0?n:{},l=document.getElementById(t);if(l==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return Tn(e,l,r)}let Yi,Ji;const Qi=Object.freeze(Object.defineProperty({__proto__:null,DOM:Yi,DOMWalker:Hi,HydrationMismatch:Xi,Reactivity:Ji,hydrate:Tn,hydrateById:Ui,hydrateNode:qi,hydrateNodeWithWalker:le,logHydrationWarning:He},Symbol.toStringTag,{value:"Module"}));exports.Computed=or;exports.Effect=Vn;exports.Html=jr;exports.Hydration=Qi;exports.Node=Er;exports.ReactiveProp=Kr;exports.Route=Hr;exports.Router=ii;exports.SSR=ci;exports.SSRContext=hi;exports.SSRState=Ii;exports.Signal=ir;exports.XoteJSX=zr;