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.
- package/README.md +43 -193
- package/dist/xote.cjs +7 -7
- package/dist/xote.mjs +1267 -1189
- package/dist/xote.umd.js +10 -10
- package/package.json +13 -3
- package/rescript.json +18 -3
- package/src/Computed.res +1 -0
- package/src/Computed.res.mjs +13 -0
- package/src/Effect.res +1 -0
- package/src/Effect.res.mjs +13 -0
- package/src/Html.res +28 -0
- package/src/Html.res.mjs +62 -0
- package/src/{Xote__Hydration.res → Hydration.res} +43 -41
- package/src/{Xote__Hydration.res.mjs → Hydration.res.mjs} +66 -68
- package/src/{Xote__Component.res → Node.res} +3 -26
- package/src/{Xote__Component.res.mjs → Node.res.mjs} +26 -88
- package/src/{Xote__ReactiveProp.res → ReactiveProp.res} +0 -1
- package/src/{Xote__ReactiveProp.res.mjs → ReactiveProp.res.mjs} +2 -2
- package/src/{Xote__Router.res → Router.res} +38 -32
- package/src/{Xote__Router.res.mjs → Router.res.mjs} +28 -28
- package/src/{Xote__SSR.res → SSR.res} +16 -18
- package/src/{Xote__SSR.res.mjs → SSR.res.mjs} +5 -8
- package/src/{Xote__SSRState.res → SSRState.res} +7 -6
- package/src/{Xote__SSRState.res.mjs → SSRState.res.mjs} +12 -12
- package/src/Signal.res +1 -0
- package/src/Signal.res.mjs +31 -0
- package/src/{Xote__JSX.res → XoteJSX.res} +22 -23
- package/src/{Xote__JSX.res.mjs → XoteJSX.res.mjs} +22 -24
- package/src/Xote.res +0 -43
- package/src/Xote.res.mjs +0 -117
- /package/src/{Xote__Route.res → Route.res} +0 -0
- /package/src/{Xote__Route.res.mjs → Route.res.mjs} +0 -0
- /package/src/{Xote__SSRContext.res → SSRContext.res} +0 -0
- /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
|

|
|
3
3
|

|
|
4
4
|

|
|
5
5
|
|
|
6
|
-
Xote is a lightweight
|
|
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 project
|
|
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
|
-
|
|
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
|
-
//
|
|
63
|
-
let
|
|
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> {
|
|
51
|
+
<h1> {Node.text("Counter")} </h1>
|
|
52
|
+
<p>
|
|
53
|
+
{Node.text("Count: ")}
|
|
54
|
+
{Node.signalInt(count)}
|
|
55
|
+
</p>
|
|
68
56
|
<p>
|
|
69
|
-
{
|
|
57
|
+
{Node.text("Doubled: ")
|
|
58
|
+
{Node.signalInt(doubled)}
|
|
70
59
|
</p>
|
|
71
|
-
<
|
|
72
|
-
{
|
|
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
|
-
|
|
71
|
+
Node.mountById(<App />, "app")
|
|
80
72
|
```
|
|
81
73
|
|
|
82
74
|
## Core Concepts
|
|
83
75
|
|
|
84
|
-
|
|
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
|
|
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
|
-
###
|
|
88
|
+
### Component System
|
|
179
89
|
|
|
180
|
-
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}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
|
-
`),
|
|
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("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}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
|
-
`+
|
|
9
|
+
`+o+`
|
|
10
10
|
</head>
|
|
11
|
-
<body`+(
|
|
11
|
+
<body`+(a!==""?" "+a:"")+`>
|
|
12
12
|
<div id="root">`+F+`</div>
|
|
13
|
-
`+
|
|
13
|
+
`+L+`
|
|
14
14
|
`+C+`
|
|
15
|
-
`+
|
|
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;
|