xote 5.0.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +43 -193
  2. package/dist/xote.cjs +7 -7
  3. package/dist/xote.mjs +1267 -1189
  4. package/dist/xote.umd.js +10 -10
  5. package/package.json +13 -3
  6. package/rescript.json +18 -3
  7. package/src/Computed.res +1 -0
  8. package/src/Computed.res.mjs +13 -0
  9. package/src/Effect.res +1 -0
  10. package/src/Effect.res.mjs +13 -0
  11. package/src/Html.res +28 -0
  12. package/src/Html.res.mjs +62 -0
  13. package/src/{Xote__Hydration.res → Hydration.res} +43 -41
  14. package/src/{Xote__Hydration.res.mjs → Hydration.res.mjs} +66 -68
  15. package/src/{Xote__Component.res → Node.res} +3 -26
  16. package/src/{Xote__Component.res.mjs → Node.res.mjs} +26 -88
  17. package/src/{Xote__ReactiveProp.res → ReactiveProp.res} +0 -1
  18. package/src/{Xote__ReactiveProp.res.mjs → ReactiveProp.res.mjs} +2 -2
  19. package/src/{Xote__Router.res → Router.res} +38 -32
  20. package/src/{Xote__Router.res.mjs → Router.res.mjs} +28 -28
  21. package/src/{Xote__SSR.res → SSR.res} +16 -18
  22. package/src/{Xote__SSR.res.mjs → SSR.res.mjs} +5 -8
  23. package/src/{Xote__SSRState.res → SSRState.res} +7 -6
  24. package/src/{Xote__SSRState.res.mjs → SSRState.res.mjs} +12 -12
  25. package/src/Signal.res +1 -0
  26. package/src/Signal.res.mjs +31 -0
  27. package/src/{Xote__JSX.res → XoteJSX.res} +22 -23
  28. package/src/{Xote__JSX.res.mjs → XoteJSX.res.mjs} +22 -24
  29. package/src/Xote.res +0 -43
  30. package/src/Xote.res.mjs +0 -117
  31. /package/src/{Xote__Route.res → Route.res} +0 -0
  32. /package/src/{Xote__Route.res.mjs → Route.res.mjs} +0 -0
  33. /package/src/{Xote__SSRContext.res → SSRContext.res} +0 -0
  34. /package/src/{Xote__SSRContext.res.mjs → SSRContext.res.mjs} +0 -0
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
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 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,36 +11,25 @@ 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
- Then, add it to your ReScript projects dependencies in `rescript.json`:
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:
31
17
 
32
18
  ```json
33
19
  {
34
- "bs-dependencies": ["xote"]
20
+ "bs-dependencies": ["xote"],
21
+ "jsx": {
22
+ "version": 4,
23
+ "module": "XoteJSX"
24
+ },
25
+ "compiler-flags": ["-open Xote"]
35
26
  }
36
27
  ```
37
28
 
38
- ## Why Xote?
39
-
40
- Xote uses **rescript-signals** for reactive primitives (Signal, Computed, Effect), and it adds:
41
-
42
- - **Component System**: A minimal but powerful component model with JSX support for declarative UI
43
- - **Direct DOM Updates**: Fine-grained reactivity that updates DOM elements directly, no virtual DOM
44
- - **Signal-based Router**: Client-side routing with pattern matching and reactive location state
45
- - **Reactive Attributes**: Support for static, signal-based, and computed attributes on elements
46
- - **Automatic Cleanup**: Effect disposal and memory management built into the component lifecycle
47
-
48
- 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.
49
30
 
50
31
  ### Quick Example
51
32
 
52
- #### Using JSX
53
-
54
33
  ```rescript
55
34
  open Xote
56
35
 
@@ -59,191 +38,62 @@ module App = {
59
38
  // Create reactive state
60
39
  let count = Signal.make(0)
61
40
 
62
- // Event handler
63
- let increment = (_evt: Dom.event) => Signal.update(count, n => n + 1)
41
+ // Create a derived state
42
+ let doubled = Computed.make(() => Signal.get(count) * 2)
43
+
44
+ // Logs every time count changes:
45
+ Effect.run(() => {
46
+ Console.log2("Count is ", Signal.get(count))
47
+ })
64
48
 
65
49
  // Build the UI with JSX
66
50
  <div>
67
- <h1> {Component.text("Counter")} </h1>
51
+ <h1> {Node.text("Counter")} </h1>
52
+ <p>
53
+ {Node.text("Count: ")}
54
+ {Node.signalInt(count)}
55
+ </p>
68
56
  <p>
69
- {Component.textSignal(() => `Count: ${Signal.get(count)->Int.toString}`)}
57
+ {Node.text("Doubled: ")
58
+ {Node.signalInt(doubled)}
70
59
  </p>
71
- <button onClick={increment}>
72
- {Component.text("Increment")}
60
+ <p>
61
+ {Node.signalText(() => "Count is " ++ Signal.get(count) % 2 == 0 ? "even" : "odd")
62
+ </p>
63
+ <button onClick={(_evt: Dom.event) => Signal.update(count, n => n + 1)}>
64
+ {Node.text("Increment")}
73
65
  </button>
74
66
  </div>
75
67
  }
76
68
  }
77
69
 
78
70
  // Mount to the DOM
79
- Component.mountById(<App />, "app")
71
+ Node.mountById(<App />, "app")
80
72
  ```
81
73
 
82
74
  ## Core Concepts
83
75
 
84
- ### Reactive Primitives (from rescript-signals)
76
+ 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.
77
+
78
+ ### Reactive Primitives
79
+
80
+ Xote uses **[rescript-signals](https://github.com/brnrdog/rescript-signals)** for its reactive primitives:
85
81
 
86
82
  - **Signal**: Reactive state container - `Signal.make(value)`
87
83
  - **Computed**: Derived reactive value that updates automatically - `Computed.make(() => ...)`
88
84
  - **Effect**: Side-effect functions that re-run when dependencies change - `Effect.run(() => ...)`
89
85
 
90
- All reactive primitives feature automatic dependency tracking - no manual subscriptions needed.
91
-
92
- ### Xote Features
93
-
94
- - **Component**: Declarative UI builder with JSX syntax and function-based APIs
95
- - **Router**: Signal-based navigation for SPAs with pattern matching and dynamic routes
96
-
97
- ### Component Features
98
-
99
- - **JSX syntax**: Use HTML tags like `<div>`, `<button>`, `<input>`
100
- - **Props**: Standard HTML attributes like `class`, `id`, `style`, `value`, `placeholder`
101
- - **Event handlers**: `onClick`, `onInput`, `onChange`, `onSubmit`, etc.
102
- - **Reactive content**: Wrap reactive text with `Component.textSignal(() => ...)`
103
- - **Component functions**: Define reusable components as functions that return JSX
104
-
105
- ### Xote.Router Features
106
-
107
- - **Initialization**: Call `Router.init()` once at app start
108
- - **Imperative navigation**: Use `Router.push()` and `Router.replace()` to navigate programmatically
109
- - **Declarative routing**: Define routes with `Router.routes()` and render components based on URL patterns
110
- - **Dynamic parameters**: Extract URL parameters using `:param` syntax (e.g., `/users/:id`)
111
- - **Navigation links**: Use `Router.link()` for SPA navigation without page reload
112
- - **Reactive location**: Access current route via `Router.location` signal
113
-
114
- ## Server-Side Rendering (SSR)
115
-
116
- 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.
117
-
118
- ### Basic SSR Setup
119
-
120
- **Shared component** (`App.res`):
121
- ```rescript
122
- open Xote
123
-
124
- let makeAppState = () => {
125
- // SSRState.make creates a signal that syncs between server and client
126
- let count = SSRState.make("count", 0, SSRState.Codec.int)
127
- let items = SSRState.make("items", ["Apple", "Banana"], SSRState.Codec.array(SSRState.Codec.string))
128
- (count, items)
129
- }
130
-
131
- let app = (count, items) => () => {
132
- <div>
133
- <p> {Component.textSignal(() => `Count: ${Signal.get(count)->Int.toString}`)} </p>
134
- <button onClick={_ => Signal.update(count, n => n + 1)}>
135
- {Component.text("+")}
136
- </button>
137
- </div>
138
- }
139
- ```
140
-
141
- **Server entry** (`server.res`):
142
- ```rescript
143
- open Xote
144
-
145
- let (count, items) = App.makeAppState()
146
- let appComponent = App.app(count, items)
147
-
148
- let html = SSR.renderDocument(
149
- ~head="<title>My App</title>",
150
- ~scripts=["./client.res.mjs"],
151
- ~stateScript=SSRState.generateScript(),
152
- appComponent,
153
- )
154
-
155
- Console.log(html)
156
- ```
157
-
158
- **Client entry** (`client.res`):
159
- ```rescript
160
- open Xote
161
-
162
- let (count, items) = App.makeAppState()
163
- let appComponent = App.app(count, items)
164
-
165
- Hydration.hydrateById(appComponent, "root")
166
- ```
167
-
168
- ### Running the SSR Example
169
-
170
- ```bash
171
- # Generate HTML
172
- node server.res.mjs > index.html
173
-
174
- # Serve with Vite (or any static server)
175
- npx vite
176
- ```
86
+ All reactive primitives feature automatic dependency tracking. No manual subscriptions needed.
177
87
 
178
- ### SSR Features
88
+ ### Component System
179
89
 
180
- - **`SSR.renderToString`**: Render component to HTML string
181
- - **`SSR.renderDocument`**: Render full HTML document with head, scripts, styles
182
- - **`SSRState.make`**: Create signals that automatically sync between server and client
183
- - **`SSRState.generateScript`**: Generate `<script>` tag with serialized state
184
- - **`Hydration.hydrate`**: Attach reactivity to server-rendered DOM
185
- - **`SSRContext.isServer` / `isClient`**: Environment detection for conditional logic
90
+ On top of the reactive primitives with signals, Xote provides a declarative component system:
186
91
 
187
- ### Built-in Codecs for State Serialization
188
-
189
- ```rescript
190
- SSRState.Codec.int
191
- SSRState.Codec.float
192
- SSRState.Codec.string
193
- SSRState.Codec.bool
194
- SSRState.Codec.array(itemCodec)
195
- SSRState.Codec.option(itemCodec)
196
- SSRState.Codec.dict(valueCodec)
197
- SSRState.Codec.tuple2(codec1, codec2)
198
- SSRState.Codec.tuple3(codec1, codec2, codec3)
199
- SSRState.Codec.make(~encode, ~decode) // Custom codec
200
- ```
201
-
202
- ## Examples
203
-
204
- Check some examples of applications built with Xote at https://brnrdog.github.io/xote/demos/.
205
-
206
- ### Running Examples Locally
207
-
208
- To run the example demos locally:
209
-
210
- 1. Clone the repository:
211
- ```bash
212
- git clone https://github.com/brnrdog/xote.git
213
- cd xote
214
- ```
215
-
216
- 2. Install dependencies:
217
- ```bash
218
- npm install
219
- ```
220
-
221
- 3. Compile ReScript and start the dev server:
222
- ```bash
223
- npm run res:dev # In one terminal (watches ReScript files)
224
- npm run dev # In another terminal (starts Vite dev server)
225
- ```
226
-
227
- 4. Open your browser and navigate to `http://localhost:5173`
228
-
229
- The demo app includes a navigation menu to explore all examples interactively.
230
-
231
- ## Documentation
232
-
233
- Comprehensive documentation with live embedded demos is available at:
234
-
235
- **https://brnrdog.github.io/xote/**
236
-
237
-
238
- ### Building Documentation Locally
239
-
240
- To build and preview the documentation site:
241
-
242
- ```bash
243
- npm run docs:start
244
- ```
245
-
246
- This will build the demos and start the documentation server at `http://localhost:3000`.
92
+ - **JSX Support**: Build user interface using JSX, in a declarative and familiar manner
93
+ - **Reactive DOM Nodes**: Fine-grained reactivity that updates DOM nodes directly, no virtual DOM required
94
+ - **Built-in Router**: Client-side routing with pattern matching and reactive location state
95
+ - **Automatic Cleanup**: Effect disposal and memory management built into the component lifecycle
96
+ - **Server-side Rendering**: pre-render your pages on the server with full hydration
247
97
 
248
98
  ## License
249
99
 
package/dist/xote.cjs CHANGED
@@ -1,17 +1,17 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let Me={contents:0};function De(){return Me.contents=Me.contents+1|0,Me.contents}function lt(){return{first:void 0,last:void 0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0}}function ln(e){return{first:void 0,last:void 0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0}}function un(e,t,n,r,i){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:i}}function it(e){e.flags=e.flags&-2}function on(e){return(e.flags&2)!==0}function dn(e){e.flags=e.flags|2}function an(e){e.flags=e.flags&-3}function ut(e){return(e.flags&1)!==0}function sn(e){e.flags=e.flags|1}function We(e){e.flags=e.flags&-2}function cn(e){e.flags=e.flags&-3}function xe(e){return e.compute!==void 0}function Ze(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0}}function ve(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 et(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 ot(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 dt(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;ot(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function Ie(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;ot(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function tt(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 te(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 Ge(e){if(e!=null)return te(e)}function S(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 fn(e,t){if(e!==void 0)return te(t(S(e)))}function V(e,t){return e!==void 0?S(e):t}function ze(e){return e!==void 0}let A={contents:void 0},L={contents:void 0},Y=[],ee=[],J={contents:!1},we=[],nt=(function(e){e.length=0});function pn(e){if(!on(e)){dn(e),Y.push(e);return}}function hn(e,t){if(e.firstDep===void 0){let l={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};return tt(e,l),ve(t,l)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let l=r;l!==void 0&&(l.subs===t?n=!0:r=l.nextDep)}if(n)return;let i={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};tt(e,i),ve(t,i)}function mn(e,t){if(e.firstDep===void 0){let l=Ze(t,e);return et(e,l),ve(t,l)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let l=r;l!==void 0&&(l.subs===t?n=!0:r=l.nextDep)}if(n)return;let i=Ze(t,e);et(e,i),ve(t,i)}function gn(e){let t=A.contents;if(t!==void 0)return hn(t,e);let n=L.contents;if(n!==void 0)return mn(n,e)}function Sn(e,t){return e.level-t.level|0}function _n(e,t){return e.level-t.level|0}function at(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(xe(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function st(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(xe(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function yn(e){let t=e.level;Ie(e),cn(e);let n=A.contents;A.contents=e;try{let r=e.compute;r!==void 0&&r(),We(e),A.contents=n}catch(r){throw A.contents=n,r}if(t===0){e.level=at(e);return}}function bn(e){let t=e.level;dt(e),an(e);let n=L.contents;L.contents=e;try{e.run(),it(e),L.contents=n}catch(r){throw L.contents=n,r}if(t===0){e.level=st(e);return}}function ct(){J.contents=!0;try{for(;Y.length!==0||ee.length!==0;){if(ee.length!==0){ee.sort(_n);let e=ee.slice();nt(ee),e.forEach(yn)}if(Y.length!==0){Y.sort(Sn);let e=Y.slice();nt(Y),e.forEach(bn)}}J.contents=!1;return}catch(e){throw J.contents=!1,e}}function En(e){for(we.push(e);we.length!==0;){let t=we.pop();if(t!==void 0){let n=t.first;for(;n!==void 0;){let r=n;if(r!==void 0){let i=r.observer;xe(i)?ut(i)||(sn(i),we.push(i)):pn(r.observer),n=r.nextSub}}}}if((Y.length!==0||ee.length!==0)&&!J.contents)return ct()}function ft(e){if(!(xe(e)&&ut(e)))return;let t=e.level;Ie(e);let n=A.contents;A.contents=e;try{let r=e.compute;r!==void 0&&r(),We(e),A.contents=n}catch(r){throw A.contents=n,r}if(t===0){e.level=at(e);return}}function wn(e){let t=J.contents;J.contents=!0;try{let n=e();return t||(J.contents=!1,(Y.length!==0||ee.length!==0)&&ct()),n}catch(n){throw t||(J.contents=!1),n}}function kn(e){let t=A.contents,n=L.contents;A.contents=void 0,L.contents=void 0;try{let r=e();return A.contents=t,L.contents=n,r}catch(r){throw A.contents=t,L.contents=n,r}}function Tn(e,t,n){return{id:De(),value:e,equals:V(n,(i,l)=>i===l),name:t,subs:lt()}}function vn(e,t){return{id:De(),value:e,equals:(r,i)=>!1,name:t,subs:lt()}}function $n(e){return ft(e.subs),gn(e.subs),e.value}function Dn(e){return ft(e.subs),e.value}function pt(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,En(e.subs)}function xn(e,t){pt(e,t(e.value))}let An,Cn,On,Pn=wn,Rn=kn;const Mn=Object.freeze(Object.defineProperty({__proto__:null,Core:On,Id:An,Scheduler:Cn,batch:Pn,get:$n,make:Tn,makeForComputed:vn,peek:Dn,set:pt,untrack:Rn,update:xn},Symbol.toStringTag,{value:"Module"}));function ht(e,t){let n=De(),r={contents:void 0},l=un(n,"Effect",()=>{let g=r.contents;g!==void 0&&g(),r.contents=e()},t,void 0),u=L.contents;L.contents=l;try{l.run(),it(l),L.contents=u}catch(g){throw L.contents=u,g}l.level=st(l);let d={contents:!1};return{dispose:()=>{if(d.contents)return;d.contents=!0;let g=r.contents;g!==void 0&&g(),dt(l)}}}function jn(e,t){ht(e,t)}let Fn,Nn,Ln;const Wn=Object.freeze(Object.defineProperty({__proto__:null,Core:Nn,Id:Fn,Scheduler:Ln,run:jn,runWithDisposer:ht},Symbol.toStringTag,{value:"Module"}));function In(e,t){let n=De(),r={contents:void 0},l=ln(()=>{r.contents.value=e()}),u=A.contents;A.contents=l;let d=e();A.contents=u;let s={id:n,value:d,equals:(g,x)=>!1,name:t,subs:l};return r.contents=s,We(l),s}function Gn(e){Ie(e.subs)}let zn,Bn,Hn,Xn;const Vn=Object.freeze(Object.defineProperty({__proto__:null,Core:Hn,Id:zn,Scheduler:Xn,Signal:Bn,dispose:Gn,make:In},Symbol.toStringTag,{value:"Module"}));let o=Mn,M=Vn,v=Wn;function Q(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#x27;")}let Be=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function Kn(e){return Be.includes(e)}let mt={escape:Q,voidElements:Be,isVoidElement:Kn},gt="<!--$-->",St="<!--/$-->",_t="<!--#-->",yt="<!--/#-->",bt="<!--kl-->",Et="<!--/kl-->";function wt(e){return"<!--k:"+e+"-->"}let kt="<!--/k-->",Tt="<!--lc-->",vt="<!--/lc-->",Yn={signalTextStart:gt,signalTextEnd:St,signalFragmentStart:_t,signalFragmentEnd:yt,keyedListStart:bt,keyedListEnd:Et,keyedItemStart:wt,keyedItemEnd:kt,lazyComponentStart:Tt,lazyComponentEnd:vt};function $t(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=o.peek(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+'="'+Q(r)+'"'}return r==="true"?n:""}function Dt(e){let t=e.map($t).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let qn={renderAttr:$t,renderAttrs:Dt};function q(e){switch(e.TAG){case"Element":let t=e.tag,n=Dt(e.attrs);if(Be.includes(t))return"<"+t+n+" />";let r=e.children.map(q).join("");return"<"+t+n+">"+r+"</"+t+">";case"Text":return Q(e._0);case"SignalText":let i=o.peek(e._0);return gt+Q(i)+St;case"Fragment":return e._0.map(q).join("");case"SignalFragment":let u=o.peek(e._0).map(q).join("");return _t+u+yt;case"LazyComponent":let d=e._0();return Tt+q(d)+vt;case"KeyedList":let s=e.renderItem,g=e.keyFn,j=o.peek(e.signal).map(F=>{let C=g(F),$=q(s(F));return wt(C)+$+kt}).join("");return bt+j+Et}}function xt(e,t){return q(e())}function Un(e,t,n){let r=t!==void 0?t:"root",i=e(),l=q(i);return"<!--xote-root:"+r+"-->"+l+"<!--/xote-root-->"}function At(e){return"<script"+(e!==void 0?' nonce="'+Q(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function Jn(e,t,n,r,i,l,u){let d=e!==void 0?e:"",s=t!==void 0?t:"",g=n!==void 0?n:[],x=r!==void 0?r:[],j=i!==void 0?i:"",F=xt(u),C=At(l),$=x.map(I=>'<link rel="stylesheet" href="'+Q(I)+'" />').join(`
2
- `),B=g.map(I=>{let G=l!==void 0?' nonce="'+Q(l)+'"':"";return'<script type="module" src="'+Q(I)+'"'+G+"><\/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 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(`
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
  `+$+`
9
- `+d+`
9
+ `+o+`
10
10
  </head>
11
- <body`+(s!==""?" "+s:"")+`>
11
+ <body`+(a!==""?" "+a:"")+`>
12
12
  <div id="root">`+F+`</div>
13
- `+j+`
13
+ `+L+`
14
14
  `+C+`
15
- `+B+`
15
+ `+H+`
16
16
  </body>
17
- </html>`}let Qn;const Zn=Object.freeze(Object.defineProperty({__proto__:null,Attributes:qn,Component:Qn,Html:mt,Markers:Yn,generateHydrationScript:At,renderDocument:Jn,renderNodeToString:q,renderToString:xt,renderToStringWithRoot:Un},Symbol.toStringTag,{value:"Module"}));function Ct(e,t){let n=e.length,r=new Array(n),i=0;for(let l=0;l<n;++l){let u=e[l],d=t(u);d!==void 0&&(r[i]=S(d),i=i+1|0)}return r.length=i,r}function er(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let i=t(e[r]);if(i!==void 0)return i;n=r+1|0}}function Ot(e){return Ct(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Pt(e,t){let n=t.split("/").filter(l=>l!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((l,u)=>{let d=n[u];return l.TAG==="Static"?d===l._0:(r[l._0]=d,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function He(e,t){return Pt(Ot(e),t)}const tr=Object.freeze(Object.defineProperty({__proto__:null,match:He,matchPath:Pt,parsePattern:Ot},Symbol.toStringTag,{value:"Module"}));function Xe(e,t){delete e[t]}let Rt="http://www.w3.org/2000/svg",Mt=["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"],Ae={};Mt.forEach(e=>{Ae[e]=!0});function nr(e){return ze(Ae[e])}function ce(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 pe={setAttrOrProp:ce},ke={contents:void 0};function rr(){return{disposers:[],computeds:[]}}function ue(e,t){let n=ke.contents;ke.contents=e;let r=t();return ke.contents=n,r}function oe(e,t){e.disposers.push(t)}function jt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>M.dispose(t))}function de(e,t){e.__xote_owner__=t}function Ft(e){return Ge(e.__xote_owner__)}let c={currentOwner:ke,createOwner:rr,runWithOwner:ue,addDisposer:oe,disposeOwner:jt,setOwner:de,getOwner:Ft};function Nt(e,t){return[e,{TAG:"Static",_0:t}]}function Lt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Wt(e,t){return[e,{TAG:"Compute",_0:t}]}let lr={$$static:Nt,signal:Lt,computed:Wt};function fe(e){let t=Ft(e);t!==void 0&&jt(t),Array.from(e.childNodes||[]).forEach(fe)}function X(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,i=e.tag,l=ze(Ae[i])?document.createElementNS(Rt,i):document.createElement(i),u={disposers:[],computeds:[]};return de(l,u),ue(u,()=>{r.forEach(a=>{let p=a[1],T=a[0];switch(p.TAG){case"Static":return ce(l,T,p._0);case"SignalValue":let D=p._0;ce(l,T,o.peek(D));let R=v.runWithDisposer(()=>{ce(l,T,o.get(D))},void 0);return oe(u,R);case"Compute":let h=p._0,_=v.runWithDisposer(()=>{ce(l,T,h())},void 0);return oe(u,_)}}),n.forEach(a=>{l.addEventListener(a[0],a[1])}),t.forEach(a=>{let p=X(a);l.appendChild(p)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let d=e._0,s=document.createTextNode(o.peek(d)),g={disposers:[],computeds:[]};return de(s,g),ue(g,()=>{let a=v.runWithDisposer(()=>{s.textContent=o.get(d)},void 0);oe(g,a)}),s;case"Fragment":let x=document.createDocumentFragment();return e._0.forEach(a=>{let p=X(a);x.appendChild(p)}),x;case"SignalFragment":let j=e._0,F={disposers:[],computeds:[]},C=document.createElement("div");return C.setAttribute("style","display: contents"),de(C,F),ue(F,()=>{let a=v.runWithDisposer(()=>{let p=o.get(j);Array.from(C.childNodes||[]).forEach(fe),C.innerHTML="",p.forEach(D=>{let R=X(D);C.appendChild(R)})},void 0);oe(F,a)}),C;case"LazyComponent":let $={disposers:[],computeds:[]},B=ue($,e._0),I=X(B);return de(I,$),I;case"KeyedList":let G=e.renderItem,O=e.keyFn,H=e.signal,le={disposers:[],computeds:[]},k=document.createComment(" keyed-list-start "),y=document.createComment(" keyed-list-end ");de(k,le);let f={},b=()=>{let a=y.parentNode;if(a==null)return;let p=o.get(H),T={};p.forEach(m=>{T[O(m)]=m});let D=[];Object.keys(f).forEach(m=>{if(T[m]===void 0){D.push(m);return}}),D.forEach(m=>{let w=f[m];if(w!==void 0){fe(w.element),w.element.remove(),Xe(f,m);return}});let R=[],h={};p.forEach(m=>{let w=O(m),ie=f[w];if(ie!==void 0){if(ie.item!==m){h[w]=!0;let Ee=G(m),rn=X(Ee),Qe={key:w,item:m,element:rn};R.push(Qe),f[w]=Qe;return}R.push(ie);return}let ye=G(m),Re=X(ye),be={key:w,item:m,element:Re};R.push(be),f[w]=be});let _={contents:k.nextSibling};R.forEach(m=>{let w=_.contents;if(w==null){a.insertBefore(m.element,y);return}if(w===y){a.insertBefore(m.element,y);return}if(w===m.element){_.contents=w.nextSibling;return}V(h[m.key],!1)?(fe(w),a.replaceChild(m.element,w),_.contents=m.element.nextSibling):(a.insertBefore(m.element,w),_.contents=m.element.nextSibling)})},E=document.createDocumentFragment();return E.appendChild(k),o.peek(H).forEach(a=>{let p=O(a),T=G(a),D=X(T),R={key:p,item:a,element:D};f[p]=R,E.appendChild(D)}),E.appendChild(y),ue(le,()=>{let a=v.runWithDisposer(()=>{b()},void 0);oe(le,a)}),E}}let U={disposeElement:fe,render:X};function ir(e){return{TAG:"Text",_0:e}}function ur(e){return{TAG:"SignalText",_0:M.make(e,void 0)}}function or(e){return{TAG:"SignalText",_0:M.make(e,void 0)}}function dr(e){return{TAG:"SignalText",_0:M.make(()=>e().toString(),void 0)}}function ar(e){return{TAG:"SignalText",_0:M.make(()=>e().toString(),void 0)}}function sr(e){return{TAG:"Text",_0:e.toString()}}function cr(e){return{TAG:"Text",_0:e.toString()}}function fr(e){return{TAG:"Fragment",_0:e}}function Ve(e){return{TAG:"SignalFragment",_0:e}}function pr(e,t){return{TAG:"SignalFragment",_0:M.make(()=>o.get(e).map(t),void 0)}}function hr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function z(e,t,n,r,i){let l=t!==void 0?t:[].map(s=>s),u=n!==void 0?n:[].map(s=>s),d=r!==void 0?r:[].map(s=>s);return{TAG:"Element",tag:e,attrs:l,events:u,children:d}}function mr(e,t,n,r){return z("div",e,t,n)}function gr(e,t,n,r){return z("span",e,t,n)}function Sr(e,t,n,r){return z("button",e,t,n)}function _r(e,t,n){return z("input",e,t,void 0)}function yr(e,t,n,r){return z("h1",e,t,n)}function br(e,t,n,r){return z("h2",e,t,n)}function Er(e,t,n,r){return z("h3",e,t,n)}function wr(e,t,n,r){return z("p",e,t,n)}function kr(e,t,n,r){return z("ul",e,t,n)}function Tr(e,t,n,r){return z("li",e,t,n)}function Ke(e,t,n,r){return z("a",e,t,n)}function vr(){return{TAG:"Text",_0:""}}function It(e,t){let n=X(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 It(e,n)}let Dr=Ae,he=Nt,Fe=Lt,Gt=Wt;const xr=Object.freeze(Object.defineProperty({__proto__:null,$$null:vr,Attributes:lr,DOM:pe,Reactivity:c,Render:U,a:Ke,attr:he,button:Sr,computedAttr:Gt,div:mr,element:z,float:cr,fragment:fr,h1:yr,h2:br,h3:Er,input:_r,int:sr,isSvgTag:nr,keyedList:hr,li:Tr,list:pr,mount:It,mountById:$r,p:wr,reactiveFloat:ar,reactiveInt:dr,reactiveString:or,signalAttr:Fe,signalFragment:Ve,span:gr,svgNamespace:Rt,svgTagSet:Dr,svgTags:Mt,text:ir,textSignal:ur,ul:kr},Symbol.toStringTag,{value:"Module"}));function Ar(){return Symbol.for("xote.router.state")}function W(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:o.make({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function Cr(){return W().location}function Or(){return W().basePath}function ne(e){if(!W().initialized)return 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.")}function Ye(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function zt(e){let t=W().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function ge(e){let t=W().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function Bt(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function Ce(e,t){window.scrollTo(e,t)}function Ht(e,t){return{scrollX:e,scrollY:t}}function qe(){return{}}function Xt(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Vt(){let e=Bt(),t=Ht(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function Ne(){let e=window.location.pathname;return{pathname:zt(e),search:window.location.search,hash:window.location.hash}}function Pr(e,t){let n=e!==void 0?e:"/",r=W(),i=Ye(n);if(r.basePath.contents=i,o.set(r.location,Ne()),r.initialized)return;let l=u=>{o.set(W().location,Ne());let d=window["history.state"];if(d==null)return;let s=Xt(d);if(s!==void 0)return Ce(s[0],s[1])};r.popStateHandler=l,window.addEventListener("popstate",l),r.initialized=!0}function Rr(e,t,n,r,i){let l=e!==void 0?e:"/",u=t!==void 0?t:"/",d=n!==void 0?n:"",s=r!==void 0?r:"",g=W(),x=Ye(l);g.basePath.contents=x,o.set(g.location,{pathname:u,search:d,hash:s}),g.initialized=!0}function Ue(e,t,n,r){let i=t!==void 0?t:"",l=n!==void 0?n:"";ne("Router.push()"),Vt();let u={pathname:e,search:i,hash:l},s=ge(e)+i+l;window.history.pushState(qe(),"",s),o.set(W().location,u),Ce(0,0)}function Mr(e,t,n,r){let i=t!==void 0?t:"",l=n!==void 0?n:"";ne("Router.replace()");let u={pathname:e,search:i,hash:l},s=ge(e)+i+l;window.history.replaceState(qe(),"",s),o.set(W().location,u),Ce(0,0)}function jr(e,t){return ne("Router.route()"),Ve(M.make(()=>{let n=o.get(W().location),r=He(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Fr(e){return ne("Router.routes()"),Ve(M.make(()=>{let t=o.get(W().location),n=er(e,r=>{let i=He(r.pattern,t.pathname);if(typeof i=="object")return r.render(i._0)});return n!==void 0?[n]:[]},void 0))}function Nr(e,t,n,r){let i=t!==void 0?t:[],l=n!==void 0?n:[];ne("Router.link()");let u=d=>{d.preventDefault(),Ue(e,void 0,void 0)};return Ke(i.concat([he("href",ge(e))]),[["click",u]],l)}function Kt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function ae(e,t){return Kt(t)?t.TAG==="Reactive"?Fe(e,t._0):he(e,t._0):typeof t=="function"?Gt(e,t):typeof t=="object"?Fe(e,t):he(e,t)}function Yt(e){let t=[],n=e.class;n!==void 0&&t.push(ae("class",S(n)));let r=e.id;r!==void 0&&t.push(ae("id",S(r)));let i=e.style;i!==void 0&&t.push(ae("style",S(i)));let l=e.target;l!==void 0&&t.push(ae("target",S(l)));let u=e["aria-label"];return u!==void 0&&t.push(ae("aria-label",S(u))),t}function qt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function Te(e){ne("Router.Link");let t=n=>{n.preventDefault(),Ue(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return Ke(Yt(e).concat([he("href",ge(e.to))]),[["click",t]],qt(e))}function rt(e,t,n){return Te(e)}let Lr={ReactiveProp:void 0,isReactiveProp:Kt,convertAttrValue:ae,propsToAttrs:Yt,getChildren:qt,make:Te,jsx:Te,jsxs:Te,jsxKeyed:rt,jsxsKeyed:rt},Wr,Ir;const Gr=Object.freeze(Object.defineProperty({__proto__:null,Component:Wr,Link:Lr,Route:Ir,addBasePath:ge,basePath:Or,emptyHistoryState:qe,getCurrentLocation:Ne,getGlobalState:W,getScrollFromState:Xt,getScrollPosition:Bt,getSymbolKey:Ar,init:Pr,initSSR:Rr,link:Nr,location:Cr,makeHistoryState:Ht,normalizeBasePath:Ye,push:Ue,replace:Mr,route:jr,routes:Fr,saveScrollPosition:Vt,scrollTo:Ce,stripBasePath:zt,warnIfNotInitialized:ne},Symbol.toStringTag,{value:"Module"}));function zr(e){if(typeof e=="boolean")return e}function Br(e){if(e===null)return null}function Hr(e){if(typeof e=="string")return e}function Xr(e){if(typeof e=="number")return e}function Vr(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function Kr(e){if(Array.isArray(e))return e}let re={bool:zr,$$null:Br,string:Hr,float:Xr,object:Vr,array:Kr},Se=typeof document>"u",Oe=!Se;function Yr(e){if(Se)return te(e())}function qr(e){if(Oe)return te(e())}function Ut(e,t){return Se?e():t()}const Ur=Object.freeze(Object.defineProperty({__proto__:null,isClient:Oe,isServer:Se,match:Ut,onClient:qr,onServer:Yr},Symbol.toStringTag,{value:"Module"}));function Jr(e){return e}function Qr(e){let t=re.float(e);if(t!==void 0)return t|0}let Zr={encode:Jr,decode:Qr};function el(e){return e}function tl(e){return re.float(e)}let nl={encode:el,decode:tl};function rl(e){return e}function ll(e){return re.string(e)}let il={encode:rl,decode:ll};function ul(e){return e}function ol(e){return re.bool(e)}let dl={encode:ul,decode:ol};function al(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=re.array(t);if(n===void 0)return;let r=Ct(n,e.decode);if(r.length===n.length)return r}}}function sl(e){return{encode:t=>t!==void 0?e.encode(S(t)):null,decode:t=>ze(re.$$null(t))?te(void 0):fn(e.decode(t),n=>te(n))}}function cl(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 i=r[0],l=r[1],u=e.decode(i),d=t.decode(l);if(u!==void 0&&d!==void 0)return[S(u),S(d)]}}}function fl(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let i=Array.isArray(r)?r:void 0;if(i===void 0||i.length!==3)return;let l=i[0],u=i[1],d=i[2],s=e.decode(l),g=t.decode(u),x=n.decode(d);if(s!==void 0&&g!==void 0&&x!==void 0)return[S(s),S(g),S(x)]}}}function pl(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=re.object(t);if(n===void 0)return;let r={},i={contents:!0};if(Object.entries(n).forEach(l=>{let u=e.decode(l[1]);u!==void 0?r[l[0]]=S(u):i.contents=!1}),i.contents)return r}}}function hl(e,t){return{encode:e,decode:t}}let ml={int:Zr,float:nl,string:il,bool:dl,array:al,option:sl,tuple2:cl,tuple3:fl,dict:pl,make:hl},me={};function Jt(e,t,n){if(Se){me[e]=n.encode(o.peek(t));return}}function gl(){Object.keys(me).forEach(e=>{Xe(me,e)})}function Qt(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function Sl(e){let t=V(JSON.stringify(me),"{}"),n=Qt(t);return"<script"+(e!==void 0?' nonce="'+mt.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function Zt(){return Oe?window.__XOTE_STATE__||{}:{}}function en(e,t,n){if(!Oe)return;let i=Zt()[e];if(i===void 0)return;let l=n.decode(i);if(l!==void 0)return o.set(t,S(l))}function tn(e,t,n){Ut(()=>Jt(e,t,n),()=>en(e,t,n))}function _l(e,t,n){let r=o.make(t,void 0,void 0);return tn(e,r,n),r}const yl=Object.freeze(Object.defineProperty({__proto__:null,Codec:ml,clear:gl,escapeForScript:Qt,generateScript:Sl,getClientState:Zt,make:_l,register:Jt,registry:me,restore:en,sync:tn},Symbol.toStringTag,{value:"Module"}));let je={};function bl(e){let t=je[e];if(t!==void 0){let n=t+1|0;return je[e]=n,e+("/"+n)}return je[e]=1,e}function El(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 Pe(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function Je(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function se(e){return{current:Ge(e.firstChild),parent:e}}function wl(e){return e.current}function N(e){let t=e.current;return t!==void 0&&(e.current=Ge(S(t).nextSibling)),t}function K(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let i=S(r);if(_e(i,t))return N(e),te(i);N(e)}})()}function $e(e,t){let n=[];return(()=>{for(;;){let i=e.current;if(i===void 0)return;let l=S(i);if(_e(l,t)){N(e);return}n.push(l),N(e)}})(),n}let kl={elementNode:1,textNode:3,commentNode:8,getChildNodes:El,isMarker:_e,isMarkerPrefix:Pe,extractKey:Je,make:se,peek:wl,next:N,skipUntilMarker:K,collectUntilMarker:$e},Tl=bl("Xote__Hydration.HydrationMismatch");function Le(e){console.warn("[Xote Hydration] "+e)}function vl(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,i=n.events,l=n.attrs,u=c.createOwner();return c.setOwner(t,u),c.runWithOwner(u,()=>{l.forEach(y=>{let f=y[1],b=y[0];switch(f.TAG){case"Static":return;case"SignalValue":let E=f._0,P=v.runWithDisposer(()=>{pe.setAttrOrProp(t,b,o.get(E))},void 0);return c.addDisposer(u,P);case"Compute":let a=f._0,p=v.runWithDisposer(()=>{pe.setAttrOrProp(t,b,a())},void 0);return c.addDisposer(u,p)}}),i.forEach(y=>{t.addEventListener(y[0],y[1])});let k=se(t);r.forEach(y=>Z(y,k))});case"Text":return;case"SignalText":let d=n._0,s=c.createOwner();return c.setOwner(t,s),c.runWithOwner(s,()=>{let k=v.runWithDisposer(()=>{t.textContent=o.get(d)},void 0);c.addDisposer(s,k)});case"Fragment":let g=se(t);n._0.forEach(k=>Z(k,g));return;case"SignalFragment":let x=n._0,j=c.createOwner();return c.setOwner(t,j),c.runWithOwner(j,()=>{let k=v.runWithDisposer(()=>{let y=o.get(x);Array.from(t.childNodes||[]).forEach(b=>c.disposeOwner(V(c.getOwner(b),c.createOwner()))),t.innerHTML="",y.forEach(b=>{let E=U.render(b);t.appendChild(E)})},void 0);c.addDisposer(j,k)});case"LazyComponent":let F=c.createOwner(),C=c.runWithOwner(F,n._0);c.setOwner(t,F),e=C;continue;case"KeyedList":let $=n.renderItem,B=n.keyFn,I=n.signal,G=c.createOwner();c.setOwner(t,G);let O={},H=se(t);return K(H,"kl"),(()=>{for(;;){let k=H.current;if(k===void 0)return;let y=S(k);if(!Pe(y,"k:"))if(_e(y,"/kl")){N(H);return}else return;let f=V(Je(y),"");N(H);let E=$e(H,"/k").find(P=>P.nodeType===1);if(E!==void 0){let P=o.peek(I),a=V(P.find(p=>B(p)===f),{});O[f]={key:f,item:a,element:S(E)}}}})(),c.runWithOwner(G,()=>{let k=document.createComment(" keyed-list-start "),y=document.createComment(" keyed-list-end "),f=t.firstChild;f==null?t.appendChild(k):t.insertBefore(k,f),t.appendChild(y);let b=()=>{let P=o.get(I),a={};P.forEach(h=>{a[B(h)]=h});let p=[];Object.keys(O).forEach(h=>{if(a[h]===void 0){p.push(h);return}}),p.forEach(h=>{let _=O[h];if(_!==void 0){U.disposeElement(_.element),_.element.remove(),Xe(O,h);return}});let T=[],D={};P.forEach(h=>{let _=B(h),m=O[_];if(m!==void 0){if(m.item!==h){D[_]=!0;let Re=$(h),be=U.render(Re),Ee={key:_,item:h,element:be};T.push(Ee),O[_]=Ee;return}T.push(m);return}let w=$(h),ie=U.render(w),ye={key:_,item:h,element:ie};T.push(ye),O[_]=ye});let R={contents:k.nextSibling};T.forEach(h=>{let _=R.contents;if(_==null){t.insertBefore(h.element,y);return}if(_===y){t.insertBefore(h.element,y);return}if(_===h.element){R.contents=_.nextSibling;return}V(D[h.key],!1)?(U.disposeElement(_),t.replaceChild(h.element,_),R.contents=h.element.nextSibling):(t.insertBefore(h.element,_),R.contents=h.element.nextSibling)})},E=v.runWithDisposer(()=>{b()},void 0);c.addDisposer(G,E)})}}}function Z(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,i=e.attrs,l=N(t);if(l===void 0)return Le("Missing DOM element for Element node");let u=S(l),d=c.createOwner();return c.setOwner(u,d),c.runWithOwner(d,()=>{i.forEach(b=>{let E=b[1],P=b[0];switch(E.TAG){case"Static":return;case"SignalValue":let a=E._0,p=v.runWithDisposer(()=>{pe.setAttrOrProp(u,P,o.get(a))},void 0);return c.addDisposer(d,p);case"Compute":let T=E._0,D=v.runWithDisposer(()=>{pe.setAttrOrProp(u,P,T())},void 0);return c.addDisposer(d,D)}}),r.forEach(b=>{u.addEventListener(b[0],b[1])});let f=se(u);n.forEach(b=>Z(b,f))});case"Text":N(t);return;case"SignalText":let s=e._0;K(t,"$");let g=N(t);if(g===void 0)return Le("Missing text node for SignalText");let x=S(g),j=c.createOwner();c.setOwner(x,j),c.runWithOwner(j,()=>{let f=v.runWithDisposer(()=>{x.textContent=o.get(s)},void 0);c.addDisposer(j,f)}),K(t,"/$");return;case"Fragment":e._0.forEach(f=>Z(f,t));return;case"SignalFragment":let F=e._0;K(t,"#");let C=$e(t,"/#"),$=document.createElement("div");$.setAttribute("style","display: contents");let B=C[0],I=B!==void 0?B.parentNode:void 0;C.forEach(f=>{$.appendChild(f)});let G=t.current;if(I!==void 0){let f=S(I);G!==void 0?f.insertBefore($,S(G)):f.appendChild($)}let O=c.createOwner();return c.setOwner($,O),c.runWithOwner(O,()=>{let f=v.runWithDisposer(()=>{let b=o.get(F);Array.from($.childNodes||[]).forEach(U.disposeElement),$.innerHTML="",b.forEach(P=>{let a=U.render(P);$.appendChild(a)})},void 0);c.addDisposer(O,f)});case"LazyComponent":K(t,"lc");let H=e._0();Z(H,t),K(t,"/lc");return;case"KeyedList":let le=e.keyFn,k=e.signal;return K(t,"kl"),(()=>{for(;;){let f=t.current;if(f===void 0)return;let b=S(f);if(!Pe(b,"k:"))if(_e(b,"/kl")){N(t);return}else return;let E=V(Je(b),"");N(t);let a=$e(t,"/k").find(p=>p.nodeType===1);if(a!==void 0){let p=o.peek(k),T=V(p.find(D=>le(D)===E),{});S(a)}}})()}}function nn(e,t,n){let r=n!==void 0?n:{},i=e(),l=se(t),u=l.current;u!==void 0&&Pe(S(u),"xote-root:")&&N(l),Z(i,l),window.__XOTE_HYDRATED__=!0;let d=r.onHydrated;if(d!==void 0)return d()}function $l(e,t,n){let r=n!==void 0?n:{},i=document.getElementById(t);if(i==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return nn(e,i,r)}let Dl,xl,Al;const Cl=Object.freeze(Object.defineProperty({__proto__:null,Component:Dl,DOM:xl,DOMWalker:kl,HydrationMismatch:Tl,Reactivity:Al,hydrate:nn,hydrateById:$l,hydrateNode:vl,hydrateNodeWithWalker:Z,logHydrationWarning:Le},Symbol.toStringTag,{value:"Module"}));function Ol(e){return e.TAG==="Reactive"?o.get(e._0):e._0}function Pl(e){return{TAG:"Static",_0:e}}function Rl(e){return{TAG:"Reactive",_0:e}}const Ml=Object.freeze(Object.defineProperty({__proto__:null,$$static:Pl,get:Ol,reactive:Rl},Symbol.toStringTag,{value:"Module"}));let jl=o.Id,Fl=o.Scheduler,Nl=o.Core,Ll=o.make,Wl=o.makeForComputed,Il=o.get,Gl=o.peek,zl=o.set,Bl=o.update,Hl=o.batch,Xl=o.untrack,Vl={Id:jl,Scheduler:Fl,Core:Nl,make:Ll,makeForComputed:Wl,get:Il,peek:Gl,set:zl,update:Bl,batch:Hl,untrack:Xl},Kl=M.Id,Yl=M.Signal,ql=M.Core,Ul=M.Scheduler,Jl=M.make,Ql=M.dispose,Zl={Id:Kl,Signal:Yl,Core:ql,Scheduler:Ul,make:Jl,dispose:Ql},ei=v.Id,ti=v.Core,ni=v.Scheduler,ri=v.runWithDisposer,li=v.run,ii={Id:ei,Core:ti,Scheduler:ni,runWithDisposer:ri,run:li},ui=xr,oi=tr,di=Gr,ai=Ml,si=Zn,ci=Ur,fi=yl,pi=Cl;exports.Component=ui;exports.Computed=Zl;exports.Effect=ii;exports.Hydration=pi;exports.ReactiveProp=ai;exports.Route=oi;exports.Router=di;exports.SSR=si;exports.SSRContext=ci;exports.SSRState=fi;exports.Signal=Vl;
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;