@e280/sly 0.2.0-10 โ 0.2.0-12
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 +86 -67
- package/package.json +1 -1
- package/s/ui/base/utils/reactor.ts +11 -0
- package/s/ui/view/make-component.ts +3 -2
- package/s/ui/view/make-view.ts +1 -1
- package/s/ui/view/parts/apply-attrs.ts +1 -1
- package/s/ui/view.ts +1 -1
- package/x/demo/demo.bundle.min.js +1 -1
- package/x/demo/demo.bundle.min.js.map +2 -2
- package/x/index.html +2 -2
- package/x/ui/base/utils/reactor.js +8 -0
- package/x/ui/base/utils/reactor.js.map +1 -1
- package/x/ui/view/make-component.d.ts +1 -1
- package/x/ui/view/make-component.js +1 -0
- package/x/ui/view/make-component.js.map +1 -1
- package/x/ui/view/make-view.js.map +1 -1
- package/x/ui/view/parts/apply-attrs.js +1 -1
- package/x/ui/view/parts/apply-attrs.js.map +1 -1
- package/x/ui/view.d.ts +1 -1
- package/x/ui/view.js.map +1 -1
package/README.md
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
# ๐ฆ sly
|
|
5
5
|
> *mischievous shadow views*
|
|
6
6
|
|
|
7
|
-
[@e280](https://e280.org/)'s shiny new [lit](https://lit.dev/)-based frontend
|
|
7
|
+
[@e280](https://e280.org/)'s shiny new [lit](https://lit.dev/)-based frontend webdev library. *(sly replaces its predecessor, [slate](https://github.com/benevolent-games/slate))*
|
|
8
8
|
|
|
9
|
-
- ๐ [
|
|
10
|
-
- ๐ชต [
|
|
11
|
-
- ๐ช [
|
|
12
|
-
- ๐ซ [
|
|
13
|
-
- ๐ช [
|
|
9
|
+
- ๐ [**#views**](#views) โ shadow-dom'd, hooks-based, componentizable
|
|
10
|
+
- ๐ชต [**#base-element**](#base-element) โ for a more classical experience
|
|
11
|
+
- ๐ช [**#dom**](#dom) โ the "it's not jquery" multitool
|
|
12
|
+
- ๐ซ [**#ops**](#ops) โ tools for async operations and loading spinners
|
|
13
|
+
- ๐ช [**#loot**](#loot) โ drag-and-drop facilities
|
|
14
14
|
- ๐งช testing page โ https://sly.e280.org/
|
|
15
15
|
|
|
16
16
|
|
|
@@ -34,76 +34,77 @@ npm install @e280/sly lit @e280/strata @e280/stz
|
|
|
34
34
|
<br/><br/>
|
|
35
35
|
<a id="views"></a>
|
|
36
36
|
|
|
37
|
-
## ๐ฆ๐ sly views
|
|
38
|
-
> *
|
|
37
|
+
## ๐ฆ๐ sly views
|
|
38
|
+
> *the crown jewel of sly*
|
|
39
39
|
|
|
40
40
|
```ts
|
|
41
41
|
view(use => () => html`<p>hello world</p>`)
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
44
|
+
- ๐ชถ **no compile step** โ just god's honest javascript, via [lit](https://lit.dev/)-html tagged-template-literals
|
|
45
|
+
- ๐ฅท **shadow dom'd** โ each gets its own cozy [shadow](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM) bubble, and supports [slots](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots)
|
|
46
|
+
- ๐ช **hooks-based** โ declarative rendering with the [`use.*`](#use) family of ergonomic hooks
|
|
47
|
+
- โก **reactive** โ they auto-rerender whenever any [strata](https://github.com/e280/strata)-compatible state changes
|
|
48
|
+
- ๐ง **not components, per se** โ they're comfy typescript-native ui building blocks [(technically, lit directives)](https://lit.dev/docs/templates/custom-directives/)
|
|
49
|
+
- ๐งฉ **componentizable** โ any view can be magically converted into a proper [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components)
|
|
48
50
|
|
|
49
51
|
### ๐ view example
|
|
50
52
|
```ts
|
|
51
53
|
import {view, dom, BaseElement} from "@e280/sly"
|
|
52
54
|
import {html, css} from "lit"
|
|
53
55
|
```
|
|
54
|
-
- **declare
|
|
56
|
+
- **declare view**
|
|
55
57
|
```ts
|
|
56
58
|
export const CounterView = view(use => (start: number) => {
|
|
57
|
-
use.name("counter")
|
|
58
59
|
use.styles(css`p {color: green}`)
|
|
59
60
|
|
|
60
61
|
const $count = use.signal(start)
|
|
61
62
|
const increment = () => $count.value++
|
|
62
63
|
|
|
63
64
|
return html`
|
|
64
|
-
<
|
|
65
|
-
|
|
65
|
+
<button @click="${increment}">
|
|
66
|
+
${$count.value}
|
|
67
|
+
</button>
|
|
66
68
|
`
|
|
67
69
|
})
|
|
68
70
|
```
|
|
69
|
-
-
|
|
70
|
-
- **inject
|
|
71
|
+
- `$count` is a [strata signal](https://github.com/e280/strata#readme) *(we like those)*
|
|
72
|
+
- **inject view into dom**
|
|
71
73
|
```ts
|
|
72
74
|
dom.in(".app").render(html`
|
|
73
75
|
<h1>cool counter demo</h1>
|
|
74
76
|
${CounterView(1)}
|
|
75
77
|
`)
|
|
76
78
|
```
|
|
77
|
-
- ๐คฏ **register
|
|
79
|
+
- ๐คฏ **register view as web component**
|
|
78
80
|
```ts
|
|
79
81
|
dom.register({
|
|
80
82
|
MyCounter: CounterView
|
|
81
83
|
.component(BaseElement)
|
|
82
|
-
.props(
|
|
84
|
+
.props(() => [1]),
|
|
83
85
|
})
|
|
84
86
|
```
|
|
85
87
|
```html
|
|
86
|
-
<my-counter
|
|
88
|
+
<my-counter></my-counter>
|
|
87
89
|
```
|
|
88
90
|
|
|
89
|
-
### ๐ view
|
|
90
|
-
-
|
|
91
|
+
### ๐ view settings
|
|
92
|
+
- lame settings for views you should know about
|
|
91
93
|
```ts
|
|
92
94
|
export const CoolView = view
|
|
93
95
|
.settings({mode: "open", delegatesFocus: true})
|
|
94
|
-
.render(use => (greeting: string) => {
|
|
95
|
-
return html`๐ ${greeting} <slot></slot>`
|
|
96
|
-
})
|
|
96
|
+
.render(use => (greeting: string) => html`๐ ${greeting} <slot></slot>`)
|
|
97
97
|
```
|
|
98
98
|
- all [attachShadow params](https://developer.mozilla.org/en-US/docs/Web/API/Element/attachShadow#parameters) (like `mode` and `delegatesFocus`) are valid `settings`
|
|
99
99
|
- note the `<slot></slot>` we'll use in the next example lol
|
|
100
100
|
|
|
101
|
-
### ๐ view
|
|
102
|
-
-
|
|
101
|
+
### ๐ view chain
|
|
102
|
+
- views have this sick chaining syntax for supplying more stuff at the template injection site
|
|
103
103
|
```ts
|
|
104
104
|
dom.in(".app").render(html`
|
|
105
105
|
<h2>cool example</h2>
|
|
106
|
-
${CoolView
|
|
106
|
+
${CoolView
|
|
107
|
+
.props("hello")
|
|
107
108
|
.attr("class", "hero")
|
|
108
109
|
.children(html`<em>spongebob</em>`)
|
|
109
110
|
.render()}
|
|
@@ -111,7 +112,7 @@ import {html, css} from "lit"
|
|
|
111
112
|
```
|
|
112
113
|
- `props` โ provide props and start a view chain
|
|
113
114
|
- `attr` โ set html attributes on the `<sly-view>` host element
|
|
114
|
-
- `children` โ nested
|
|
115
|
+
- `children` โ add nested [slottable](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots) content
|
|
115
116
|
- `render` โ end the view chain and render the lit directive
|
|
116
117
|
|
|
117
118
|
### ๐ view/component universality
|
|
@@ -120,22 +121,23 @@ import {html, css} from "lit"
|
|
|
120
121
|
export const GreeterView = view(use => (name: string) => {
|
|
121
122
|
return html`<p>hello ${name}</p>`
|
|
122
123
|
})
|
|
123
|
-
|
|
124
|
-
// view usage:
|
|
125
|
-
// GreeterView("pimsley")
|
|
126
124
|
```
|
|
127
|
-
|
|
125
|
+
- view usage
|
|
126
|
+
```ts
|
|
127
|
+
GreeterView("pimsley")
|
|
128
|
+
```
|
|
129
|
+
**then you can convert it to a component.**
|
|
128
130
|
```ts
|
|
129
131
|
export class GreeterComponent extends (
|
|
130
132
|
GreeterView
|
|
131
133
|
.component(BaseElement)
|
|
132
134
|
.props(component => [component.getAttribute("name") ?? "unknown"])
|
|
133
135
|
) {}
|
|
134
|
-
|
|
135
|
-
// html usage:
|
|
136
|
-
// <greeter-component name="pimsley"></greeter-component>
|
|
137
136
|
```
|
|
138
|
-
-
|
|
137
|
+
- html usage
|
|
138
|
+
```html
|
|
139
|
+
<greeter-component name="pimsley"></greeter-component>
|
|
140
|
+
```
|
|
139
141
|
- **you can start with a component,**
|
|
140
142
|
```ts
|
|
141
143
|
export class GreeterComponent extends (
|
|
@@ -145,44 +147,65 @@ import {html, css} from "lit"
|
|
|
145
147
|
.component(BaseElement)
|
|
146
148
|
.props(component => [component.getAttribute("name") ?? "unknown"])
|
|
147
149
|
) {}
|
|
148
|
-
|
|
149
|
-
// html usage:
|
|
150
|
-
// <greeter-component name="pimsley"></greeter-component>
|
|
151
|
-
```
|
|
152
|
-
then it already has a `.view` ready for you.
|
|
153
|
-
```ts
|
|
154
|
-
// view usage:
|
|
155
|
-
// GreeterComponent.view("pimsley")
|
|
156
150
|
```
|
|
151
|
+
- html usage
|
|
152
|
+
```html
|
|
153
|
+
<greeter-component name="pimsley"></greeter-component>
|
|
154
|
+
```
|
|
155
|
+
**and it already has `.view` ready for you.**
|
|
156
|
+
- view usage
|
|
157
|
+
```ts
|
|
158
|
+
GreeterComponent.view("pimsley")
|
|
159
|
+
```
|
|
157
160
|
- **understanding `.component(C)` and `.props(fn)`**
|
|
158
161
|
- `.props` takes a fn that is called every render, which returns the props given to the view
|
|
159
162
|
```ts
|
|
160
|
-
.component(BaseElement)
|
|
161
163
|
.props(() => ["pimsley"])
|
|
162
164
|
```
|
|
163
165
|
the props fn receives the component instance, so you can query html attributes or instance properties
|
|
164
166
|
```ts
|
|
165
|
-
.component(BaseElement)
|
|
166
167
|
.props(component => [component.getAttribute("name") ?? "unknown"])
|
|
167
168
|
```
|
|
168
|
-
- `.component` accepts a subclass of `BaseElement`,
|
|
169
|
+
- `.component` accepts a subclass of `BaseElement`, so you can define your own properties and methods for your component class
|
|
169
170
|
```ts
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
171
|
+
const GreeterComponent = GreeterView
|
|
172
|
+
|
|
173
|
+
// declare your own custom class
|
|
174
|
+
.component(class extends BaseElement {
|
|
175
|
+
$name = signal("jim raynor")
|
|
176
|
+
updateName(name: string) {
|
|
177
|
+
this.$name.value = name
|
|
178
|
+
}
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
// props gets the right types on 'component'
|
|
182
|
+
.props(component => [component.$name.value])
|
|
177
183
|
```
|
|
178
|
-
- `.component`
|
|
184
|
+
- `.component` provides the devs interacting with your component, with noice typings
|
|
179
185
|
```ts
|
|
180
|
-
dom<GreeterComponent>("
|
|
186
|
+
dom<GreeterComponent>("greeter-component").updateName("mortimer")
|
|
181
187
|
```
|
|
188
|
+
- typescript class wizardry
|
|
189
|
+
- โ smol-brain approach exports class value, but not the typings
|
|
190
|
+
```ts
|
|
191
|
+
export const GreeterComponent = (...)
|
|
192
|
+
```
|
|
193
|
+
- โ
giga-brain approach exports class value AND the typings
|
|
194
|
+
```ts
|
|
195
|
+
export class GreeterComponent extends (...) {}
|
|
196
|
+
```
|
|
182
197
|
- **register web components to the dom**
|
|
183
198
|
```ts
|
|
184
199
|
dom.register({GreeterComponent})
|
|
185
200
|
```
|
|
201
|
+
- **oh and don't miss out on the insta-component shorthand**
|
|
202
|
+
```ts
|
|
203
|
+
dom.register({
|
|
204
|
+
QuickComponent: view.component(use => html`โก incredi`),
|
|
205
|
+
})
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
<a id="use"></a>
|
|
186
209
|
|
|
187
210
|
### ๐ "use" hooks reference
|
|
188
211
|
- ๐ฎ **follow the hooks rules**
|
|
@@ -328,11 +351,7 @@ import {BaseElement, Use, dom} from "@e280/sly"
|
|
|
328
351
|
import {html, css} from "lit"
|
|
329
352
|
```
|
|
330
353
|
|
|
331
|
-
`BaseElement` is
|
|
332
|
-
|
|
333
|
-
it lets you expose js properties on the element instance, which helps you setup a better developer experience for people interacting with your element through the dom.
|
|
334
|
-
|
|
335
|
-
base element enjoys the same `use` hooks as views.
|
|
354
|
+
`BaseElement` is an old-timey class-based "boomer" approach to making web components, but with a zoomer twist โ its `render` method gives you the same `use` hooks that views enjoy.
|
|
336
355
|
|
|
337
356
|
### ๐ชต base element setup
|
|
338
357
|
- **declare your element class**
|
|
@@ -341,7 +360,7 @@ base element enjoys the same `use` hooks as views.
|
|
|
341
360
|
static styles = css`span{color:orange}`
|
|
342
361
|
|
|
343
362
|
// custom property
|
|
344
|
-
start = 10
|
|
363
|
+
$start = signal(10)
|
|
345
364
|
|
|
346
365
|
// custom attributes
|
|
347
366
|
attrs = dom.attrs(this).spec({
|
|
@@ -357,9 +376,9 @@ base element enjoys the same `use` hooks as views.
|
|
|
357
376
|
const $count = use.signal(1)
|
|
358
377
|
const increment = () => $count.value++
|
|
359
378
|
|
|
360
|
-
const {start} = this
|
|
379
|
+
const {$start} = this
|
|
361
380
|
const {multiply = 1} = this.attrs
|
|
362
|
-
const result = start + (multiply * $count())
|
|
381
|
+
const result = $start() + (multiply * $count())
|
|
363
382
|
|
|
364
383
|
return html`
|
|
365
384
|
<span>${result}</span>
|
|
@@ -385,7 +404,7 @@ base element enjoys the same `use` hooks as views.
|
|
|
385
404
|
const myElement = dom<MyElement>("my-element")
|
|
386
405
|
|
|
387
406
|
// js property
|
|
388
|
-
myElement
|
|
407
|
+
myElement.$start(100)
|
|
389
408
|
|
|
390
409
|
// html attributes
|
|
391
410
|
myElement.attrs.multiply = 2
|
package/package.json
CHANGED
|
@@ -7,8 +7,19 @@ export class Reactor {
|
|
|
7
7
|
|
|
8
8
|
effect<R>(collect: () => R, respond: () => Promise<void>) {
|
|
9
9
|
const {seen, result} = tracker.observe(collect)
|
|
10
|
+
|
|
11
|
+
// add seen items
|
|
10
12
|
for (const item of seen)
|
|
11
13
|
this.#map.guarantee(item, () => tracker.subscribe(item, respond))
|
|
14
|
+
|
|
15
|
+
// remove orphaned items
|
|
16
|
+
for (const [item, dispose] of this.#map) {
|
|
17
|
+
if (!seen.has(item)) {
|
|
18
|
+
dispose()
|
|
19
|
+
this.#map.delete(item)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
return result
|
|
13
24
|
}
|
|
14
25
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
import {Constructor} from "@e280/stz"
|
|
3
3
|
import {Use} from "../base/use.js"
|
|
4
|
-
import {ComponentClass, ViewFn} from "../types.js"
|
|
5
4
|
import {makeView} from "./make-view.js"
|
|
6
|
-
import {Reactor} from "../base/utils/reactor.js"
|
|
7
5
|
import {BaseElement} from "../base-element.js"
|
|
6
|
+
import {Reactor} from "../base/utils/reactor.js"
|
|
7
|
+
import {ComponentClass, ViewFn} from "../types.js"
|
|
8
8
|
|
|
9
9
|
/** make a component from a BaseElement and a view. */
|
|
10
10
|
export function makeComponent<B extends Constructor<BaseElement>, Props extends any[]>(
|
|
@@ -23,6 +23,7 @@ export function makeComponent<B extends Constructor<BaseElement>, Props extends
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
render(use: Use) {
|
|
26
|
+
// reactor is tracking the propFn
|
|
26
27
|
return viewFn(use)(...this.#reactor.effect(
|
|
27
28
|
() => propFn(this as any),
|
|
28
29
|
() => this.update(),
|
package/s/ui/view/make-view.ts
CHANGED
|
@@ -3,9 +3,9 @@ import {Constructor} from "@e280/stz"
|
|
|
3
3
|
import {DirectiveResult} from "lit/async-directive.js"
|
|
4
4
|
import {View, ViewFn} from "../types.js"
|
|
5
5
|
import {ViewChain} from "./parts/chain.js"
|
|
6
|
+
import {BaseElement} from "../base-element.js"
|
|
6
7
|
import {ViewContext} from "./parts/context.js"
|
|
7
8
|
import {makeComponent} from "./make-component.js"
|
|
8
|
-
import {BaseElement} from "../base-element.js"
|
|
9
9
|
import {makeViewDirective} from "./parts/directive.js"
|
|
10
10
|
|
|
11
11
|
export function makeView<Props extends any[]>(
|
package/s/ui/view.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import {Content, ViewFn} from "./types.js"
|
|
3
3
|
import {makeView} from "./view/make-view.js"
|
|
4
|
+
import {BaseElement} from "./base-element.js"
|
|
4
5
|
import {_disconnect, _reconnect, Use} from "./base/use.js"
|
|
5
|
-
import { BaseElement } from "./base-element.js"
|
|
6
6
|
|
|
7
7
|
export function view<Props extends any[]>(fn: ViewFn<Props>) {
|
|
8
8
|
return makeView(fn, {mode: "open"})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var Fe=Object.defineProperty;var Ze=(r,t)=>{for(var e in t)Fe(r,e,{get:t[e],enumerable:!0})};var dt=globalThis,mt=dt.ShadowRoot&&(dt.ShadyCSS===void 0||dt.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Ft=Symbol(),ue=new WeakMap,G=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==Ft)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(mt&&t===void 0){let s=e!==void 0&&e.length===1;s&&(t=ue.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&ue.set(e,t))}return t}toString(){return this.cssText}},pe=r=>new G(typeof r=="string"?r:r+"",void 0,Ft),y=(r,...t)=>{let e=r.length===1?r[0]:t.reduce(((s,o,n)=>s+(i=>{if(i._$cssResult$===!0)return i.cssText;if(typeof i=="number")return i;throw Error("Value passed to 'css' function must be a 'css' function result: "+i+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+r[n+1]),r[0]);return new G(e,r,Ft)},gt=(r,t)=>{if(mt)r.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(let e of t){let s=document.createElement("style"),o=dt.litNonce;o!==void 0&&s.setAttribute("nonce",o),s.textContent=e.cssText,r.appendChild(s)}},I=mt?r=>r:r=>r instanceof CSSStyleSheet?(t=>{let e="";for(let s of t.cssRules)e+=s.cssText;return pe(e)})(r):r;var{is:Je,defineProperty:Ke,getOwnPropertyDescriptor:Qe,getOwnPropertyNames:Ye,getOwnPropertySymbols:Ge,getPrototypeOf:Xe}=Object,yt=globalThis,he=yt.trustedTypes,tr=he?he.emptyScript:"",er=yt.reactiveElementPolyfillSupport,X=(r,t)=>r,Zt={toAttribute(r,t){switch(t){case Boolean:r=r?tr:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,t){let e=r;switch(t){case Boolean:e=r!==null;break;case Number:e=r===null?null:Number(r);break;case Object:case Array:try{e=JSON.parse(r)}catch{e=null}}return e}},de=(r,t)=>!Je(r,t),fe={attribute:!0,type:String,converter:Zt,reflect:!1,useDefault:!1,hasChanged:de};Symbol.metadata??=Symbol("metadata"),yt.litPropertyMetadata??=new WeakMap;var S=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=fe){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let s=Symbol(),o=this.getPropertyDescriptor(t,s,e);o!==void 0&&Ke(this.prototype,t,o)}}static getPropertyDescriptor(t,e,s){let{get:o,set:n}=Qe(this.prototype,t)??{get(){return this[e]},set(i){this[e]=i}};return{get:o,set(i){let c=o?.call(this);n?.call(this,i),this.requestUpdate(t,c,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??fe}static _$Ei(){if(this.hasOwnProperty(X("elementProperties")))return;let t=Xe(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(X("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(X("properties"))){let e=this.properties,s=[...Ye(e),...Ge(e)];for(let o of s)this.createProperty(o,e[o])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[s,o]of e)this.elementProperties.set(s,o)}this._$Eh=new Map;for(let[e,s]of this.elementProperties){let o=this._$Eu(e,s);o!==void 0&&this._$Eh.set(o,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let s=new Set(t.flat(1/0).reverse());for(let o of s)e.unshift(I(o))}else t!==void 0&&e.push(I(t));return e}static _$Eu(t,e){let s=e.attribute;return s===!1?void 0:typeof s=="string"?s:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return gt(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$ET(t,e){let s=this.constructor.elementProperties.get(t),o=this.constructor._$Eu(t,s);if(o!==void 0&&s.reflect===!0){let n=(s.converter?.toAttribute!==void 0?s.converter:Zt).toAttribute(e,s.type);this._$Em=t,n==null?this.removeAttribute(o):this.setAttribute(o,n),this._$Em=null}}_$AK(t,e){let s=this.constructor,o=s._$Eh.get(t);if(o!==void 0&&this._$Em!==o){let n=s.getPropertyOptions(o),i=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:Zt;this._$Em=o,this[o]=i.fromAttribute(e,n.type)??this._$Ej?.get(o)??null,this._$Em=null}}requestUpdate(t,e,s){if(t!==void 0){let o=this.constructor,n=this[t];if(s??=o.getPropertyOptions(t),!((s.hasChanged??de)(n,e)||s.useDefault&&s.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,s))))return;this.C(t,e,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:s,reflect:o,wrapped:n},i){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,i??e??this[t]),n!==!0||i!==void 0)||(this._$AL.has(t)||(this.hasUpdated||s||(e=void 0),this._$AL.set(t,e)),o===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[o,n]of this._$Ep)this[o]=n;this._$Ep=void 0}let s=this.constructor.elementProperties;if(s.size>0)for(let[o,n]of s){let{wrapped:i}=n,c=this[o];i!==!0||this._$AL.has(o)||c===void 0||this.C(o,void 0,n,c)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach((s=>s.hostUpdate?.())),this.update(e)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((e=>this._$ET(e,this[e]))),this._$EM()}updated(t){}firstUpdated(t){}};S.elementStyles=[],S.shadowRootOptions={mode:"open"},S[X("elementProperties")]=new Map,S[X("finalized")]=new Map,er?.({ReactiveElement:S}),(yt.reactiveElementVersions??=[]).push("2.1.0");var Kt=globalThis,bt=Kt.trustedTypes,me=bt?bt.createPolicy("lit-html",{createHTML:r=>r}):void 0,Qt="$lit$",E=`lit$${Math.random().toFixed(9).slice(2)}$`,Yt="?"+E,rr=`<${Yt}>`,j=document,et=()=>j.createComment(""),rt=r=>r===null||typeof r!="object"&&typeof r!="function",Gt=Array.isArray,$e=r=>Gt(r)||typeof r?.[Symbol.iterator]=="function",Jt=`[
|
|
2
2
|
\f\r]`,tt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ge=/-->/g,ye=/>/g,O=RegExp(`>|${Jt}(?:([^\\s"'>=/]+)(${Jt}*=${Jt}*(?:[^
|
|
3
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),be=/'/g,xe=/"/g,ve=/^(?:script|style|textarea|title)$/i,Xt=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),v=Xt(1),rs=Xt(2),ss=Xt(3),M=Symbol.for("lit-noChange"),m=Symbol.for("lit-nothing"),we=new WeakMap,T=j.createTreeWalker(j,129);function Ae(r,t){if(!Gt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return me!==void 0?me.createHTML(t):t}var _e=(r,t)=>{let e=r.length-1,s=[],o,n=t===2?"<svg>":t===3?"<math>":"",i=tt;for(let c=0;c<e;c++){let a=r[c],l,h,p=-1,w=0;for(;w<a.length&&(i.lastIndex=w,h=i.exec(a),h!==null);)w=i.lastIndex,i===tt?h[1]==="!--"?i=ge:h[1]!==void 0?i=ye:h[2]!==void 0?(ve.test(h[2])&&(o=RegExp("</"+h[2],"g")),i=O):h[3]!==void 0&&(i=O):i===O?h[0]===">"?(i=o??tt,p=-1):h[1]===void 0?p=-2:(p=i.lastIndex-h[2].length,l=h[1],i=h[3]===void 0?O:h[3]==='"'?xe:be):i===xe||i===be?i=O:i===ge||i===ye?i=tt:(i=O,o=void 0);let B=i===O&&r[c+1].startsWith("/>")?" ":"";n+=i===tt?a+rr:p>=0?(s.push(l),a.slice(0,p)+Qt+a.slice(p)+E+B):a+E+(p===-2?c:B)}return[Ae(r,n+(r[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]},st=class r{constructor({strings:t,_$litType$:e},s){let o;this.parts=[];let n=0,i=0,c=t.length-1,a=this.parts,[l,h]=_e(t,e);if(this.el=r.createElement(l,s),T.currentNode=this.el.content,e===2||e===3){let p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(o=T.nextNode())!==null&&a.length<c;){if(o.nodeType===1){if(o.hasAttributes())for(let p of o.getAttributeNames())if(p.endsWith(Qt)){let w=h[i++],B=o.getAttribute(p).split(E),ft=/([.?@])?(.*)/.exec(w);a.push({type:1,index:n,name:ft[2],strings:B,ctor:ft[1]==="."?wt:ft[1]==="?"?$t:ft[1]==="@"?vt:R}),o.removeAttribute(p)}else p.startsWith(E)&&(a.push({type:6,index:n}),o.removeAttribute(p));if(ve.test(o.tagName)){let p=o.textContent.split(E),w=p.length-1;if(w>0){o.textContent=bt?bt.emptyScript:"";for(let B=0;B<w;B++)o.append(p[B],et()),T.nextNode(),a.push({type:2,index:++n});o.append(p[w],et())}}}else if(o.nodeType===8)if(o.data===Yt)a.push({type:2,index:n});else{let p=-1;for(;(p=o.data.indexOf(E,p+1))!==-1;)a.push({type:7,index:n}),p+=E.length-1}n++}}static createElement(t,e){let s=j.createElement("template");return s.innerHTML=t,s}};function N(r,t,e=r,s){if(t===M)return t;let o=s!==void 0?e._$Co?.[s]:e._$Cl,n=rt(t)?void 0:t._$litDirective$;return o?.constructor!==n&&(o?._$AO?.(!1),n===void 0?o=void 0:(o=new n(r),o._$AT(r,e,s)),s!==void 0?(e._$Co??=[])[s]=o:e._$Cl=o),o!==void 0&&(t=N(r,o._$AS(r,t.values),o,s)),t}var xt=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:s}=this._$AD,o=(t?.creationScope??j).importNode(e,!0);T.currentNode=o;let n=T.nextNode(),i=0,c=0,a=s[0];for(;a!==void 0;){if(i===a.index){let l;a.type===2?l=new L(n,n.nextSibling,this,t):a.type===1?l=new a.ctor(n,a.name,a.strings,this,t):a.type===6&&(l=new At(n,this,t)),this._$AV.push(l),a=s[++c]}i!==a?.index&&(n=T.nextNode(),i++)}return T.currentNode=j,o}p(t){let e=0;for(let s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}},L=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,o){this.type=2,this._$AH=m,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=o,this._$Cv=o?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=N(this,t,e),rt(t)?t===m||t==null||t===""?(this._$AH!==m&&this._$AR(),this._$AH=m):t!==this._$AH&&t!==M&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):$e(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==m&&rt(this._$AH)?this._$AA.nextSibling.data=t:this.T(j.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:s}=t,o=typeof s=="number"?this._$AC(t):(s.el===void 0&&(s.el=st.createElement(Ae(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===o)this._$AH.p(e);else{let n=new xt(o,this),i=n.u(this.options);n.p(e),this.T(i),this._$AH=n}}_$AC(t){let e=we.get(t.strings);return e===void 0&&we.set(t.strings,e=new st(t)),e}k(t){Gt(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,s,o=0;for(let n of t)o===e.length?e.push(s=new r(this.O(et()),this.O(et()),this,this.options)):s=e[o],s._$AI(n),o++;o<e.length&&(this._$AR(s&&s._$AB.nextSibling,o),e.length=o)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){let s=t.nextSibling;t.remove(),t=s}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,o,n){this.type=1,this._$AH=m,this._$AN=void 0,this.element=t,this.name=e,this._$AM=o,this.options=n,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=m}_$AI(t,e=this,s,o){let n=this.strings,i=!1;if(n===void 0)t=N(this,t,e,0),i=!rt(t)||t!==this._$AH&&t!==M,i&&(this._$AH=t);else{let c=t,a,l;for(t=n[0],a=0;a<n.length-1;a++)l=N(this,c[s+a],e,a),l===M&&(l=this._$AH[a]),i||=!rt(l)||l!==this._$AH[a],l===m?t=m:t!==m&&(t+=(l??"")+n[a+1]),this._$AH[a]=l}i&&!o&&this.j(t)}j(t){t===m?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},wt=class extends R{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===m?void 0:t}},$t=class extends R{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==m)}},vt=class extends R{constructor(t,e,s,o,n){super(t,e,s,o,n),this.type=5}_$AI(t,e=this){if((t=N(this,t,e,0)??m)===M)return;let s=this._$AH,o=t===m&&s!==m||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==m&&(s===m||o);o&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},At=class{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t)}},Se={M:Qt,P:E,A:Yt,C:1,L:_e,R:xt,D:$e,V:N,I:L,H:R,N:$t,U:vt,B:wt,F:At},sr=Kt.litHtmlPolyfillSupport;sr?.(st,L),(Kt.litHtmlVersions??=[]).push("3.3.0");var ot=(r,t,e)=>{let s=e?.renderBefore??t,o=s._$litPart$;if(o===void 0){let n=e?.renderBefore??null;s._$litPart$=o=new L(t.insertBefore(et(),n),n,void 0,e??{})}return o._$AI(r),o};var te=globalThis,q=class extends S{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=ot(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return M}};q._$litElement$=!0,q.finalized=!0,te.litElementHydrateSupport?.({LitElement:q});var or=te.litElementPolyfillSupport;or?.({LitElement:q});(te.litElementVersions??=[]).push("4.2.0");function Ee(r,t){let e=new MutationObserver(t);return e.observe(r,{attributes:!0}),()=>e.disconnect()}var g={get:{string:(r,t)=>r.getAttribute(t)??void 0,number:(r,t)=>{let e=r.getAttribute(t);return e===null||!e?void 0:Number(e)},boolean:(r,t)=>r.getAttribute(t)!==null},set:{string:(r,t,e)=>(e===void 0?r.removeAttribute(t):r.setAttribute(t,e),!0),number:(r,t,e)=>(e===void 0?r.removeAttribute(t):r.setAttribute(t,e.toString()),!0),boolean:(r,t,e)=>(e?r.setAttribute(t,""):r.removeAttribute(t),!0)}};var Be=(r,t)=>new Proxy(t,{get:(e,s)=>{switch(t[s]){case String:return g.get.string(r,s);case Number:return g.get.number(r,s);case Boolean:return g.get.boolean(r,s);default:throw new Error(`invalid attribute type for "${s}"`)}},set:(e,s,o)=>{switch(t[s]){case String:return g.set.string(r,s,o);case Number:return g.set.number(r,s,o);case Boolean:return g.set.boolean(r,s,o);default:throw new Error(`invalid attribute type for "${s}"`)}}});var _t=class{element;constructor(t){this.element=t}string=new Proxy({},{get:(t,e)=>g.get.string(this.element,e),set:(t,e,s)=>g.set.string(this.element,e,s)});number=new Proxy({},{get:(t,e)=>g.get.number(this.element,e),set:(t,e,s)=>g.set.number(this.element,e,s)});boolean=new Proxy({},{get:(t,e)=>g.get.boolean(this.element,e),set:(t,e,s)=>g.set.boolean(this.element,e,s)})};function nt(r){let t=new _t(r);return{string:t.string,number:t.number,boolean:t.boolean,on:e=>Ee(r,e),spec:e=>Be(r,e)}}nt.get=g.get;nt.set=g.set;function Ce(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function Pe(r,t={}){let{soft:e=!1,upgrade:s=!0}=t;for(let[o,n]of Object.entries(r)){let i=Ce(o),c=customElements.get(i);e&&c||(customElements.define(i,n),s&&document.querySelectorAll(i).forEach(a=>{a.constructor===HTMLElement&&customElements.upgrade(a)}))}}function ke(r,t){let e=r.querySelector(t);if(!e)throw new Error(`element not found (${t})`);return e}var St=class r{element;constructor(t){this.element=t}in(t){return new r(typeof t=="string"?ke(this.element,t):t)}require(t){let e=this.element.querySelector(t);if(!e)throw new Error(`element not found (${t})`);return e}maybe(t){return this.element.querySelector(t)}all(t){return Array.from(this.element.querySelectorAll(t))}render(...t){return ot(t,this.element)}attrs(){return nt(this.element)}};function f(r){return typeof r=="string"?ke(document,r):new St(r)}var C=new St(document);f.in=C.in.bind(C);f.require=C.require.bind(C);f.maybe=C.maybe.bind(C);f.all=C.all.bind(C);f.attrs=nt;f.register=Pe;f.render=(r,...t)=>ot(t,r);var Et=class{#t;#e;constructor(t,e){this.#e=t,this.#t=e}attr(t,e){return this.#e.attrs.set(t,e),this}children(...t){return this.#e.children.push(...t),this}render(){return this.#t(this.#e)}};var it=class{props;attrs=new Map;children=[];constructor(t){this.props=t}};var A=Object.freeze({eq(r,t){if(r.length!==t.length)return!1;for(let e=0;e<=r.length;e++)if(r.at(e)!==t.at(e))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var U=Object.freeze({fromBytes(r){return[...r].map(t=>t.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let t=new Uint8Array(r.length/2);for(let e=0;e<r.length;e+=2)t[e/2]=parseInt(r.slice(e,e+2),16);return t},random(r=32){return this.fromBytes(A.random(r))},string(r){return U.fromBytes(r)},bytes(r){return U.toBytes(r)}});var ee=58,Bt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",re=Object.freeze({fromBytes(r){let t=BigInt("0x"+U.fromBytes(r)),e="";for(;t>0;){let s=t%BigInt(ee);t=t/BigInt(ee),e=Bt[Number(s)]+e}for(let s of r)if(s===0)e=Bt[0]+e;else break;return e},toBytes(r){let t=BigInt(0);for(let i of r){let c=Bt.indexOf(i);if(c===-1)throw new Error(`Invalid character '${i}' in base58 string`);t=t*BigInt(ee)+BigInt(c)}let e=t.toString(16);e.length%2!==0&&(e="0"+e);let s=U.toBytes(e),o=0;for(let i of r)if(i===Bt[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(r=32){return this.fromBytes(A.random(r))},string(r){return re.fromBytes(r)},bytes(r){return re.toBytes(r)}});var Oe=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(t){this.lexicon=t,this.lookup=Object.fromEntries([...t.characters].map((e,s)=>[e,s])),this.negativePrefix=t.negativePrefix??"-"}toBytes(t){let e=Math.log2(this.lexicon.characters.length);if(Number.isInteger(e)){let c=0,a=0,l=[];for(let h of t){if(h===this.lexicon.padding?.character)continue;let p=this.lookup[h];if(p===void 0)throw new Error(`Invalid character: ${h}`);for(c=c<<e|p,a+=e;a>=8;)a-=8,l.push(c>>a&255)}return new Uint8Array(l)}let s=0n,o=BigInt(this.lexicon.characters.length),n=!1;t.startsWith(this.negativePrefix)&&(t=t.slice(this.negativePrefix.length),n=!0);for(let c of t){let a=this.lookup[c];if(a===void 0)throw new Error(`Invalid character: ${c}`);s=s*o+BigInt(a)}let i=[];for(;s>0n;)i.unshift(Number(s%256n)),s=s/256n;return new Uint8Array(i)}fromBytes(t){let e=Math.log2(this.lexicon.characters.length);if(Number.isInteger(e)){let i=0,c=0,a="";for(let l of t)for(i=i<<8|l,c+=8;c>=e;){c-=e;let h=i>>c&(1<<e)-1;a+=this.lexicon.characters[h]}if(c>0){let l=i<<e-c&(1<<e)-1;a+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;a.length%this.lexicon.padding.size!==0;)a+=this.lexicon.padding.character;return a}let s=0n;for(let i of t)s=(s<<8n)+BigInt(i);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return n}toInteger(t){if(!t)return 0;let e=0n,s=!1,o=BigInt(this.lexicon.characters.length);t.startsWith(this.negativePrefix)&&(t=t.slice(this.negativePrefix.length),s=!0);for(let n of t){let i=this.lookup[n];if(i===void 0)throw new Error(`Invalid character: ${n}`);e=e*o+BigInt(i)}return Number(s?-e:e)}fromInteger(t){t=Math.floor(t);let e=t<0,s=BigInt(e?-t:t);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return e?`${this.negativePrefix}${n}`:n}random(t=32){return this.fromBytes(A.random(t))}};var se=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),t=>t.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(A.random(r))},string(r){return se.fromBytes(r)},bytes(r){return se.toBytes(r)}});var Te=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Te.fromBytes(r)},bytes(r){return Te.toBytes(r)}});function H(r,t){let e,s,o=[];function n(){e=[],s&&clearTimeout(s),s=void 0,o=[]}return n(),((...i)=>{e=i,s&&clearTimeout(s);let c=new Promise((a,l)=>{o.push({resolve:a,reject:l})});return s=setTimeout(()=>{Promise.resolve().then(()=>t(...e)).then(a=>{for(let{resolve:l}of o)l(a);n()}).catch(a=>{for(let{reject:l}of o)l(a);n()})},r),c})}var oe=Object.freeze({happy:r=>r!=null,sad:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});function at(){let r,t,e=new Promise((o,n)=>{r=o,t=n});function s(o){return o.then(r).catch(t),e}return{promise:e,resolve:r,reject:t,entangle:s}}var V=class r extends Map{static require(t,e){if(t.has(e))return t.get(e);throw new Error(`required key not found: "${e}"`)}static guarantee(t,e,s){if(t.has(e))return t.get(e);{let o=s();return t.set(e,o),o}}array(){return[...this]}require(t){return r.require(this,t)}guarantee(t,e){return r.guarantee(this,t,e)}};var Ct=(r=0)=>new Promise(t=>setTimeout(t,r));function nr(r){return{map:t=>je(r,t),filter:t=>Me(r,t)}}nr.pipe=Object.freeze({map:r=>(t=>je(t,r)),filter:r=>(t=>Me(t,r))});var je=(r,t)=>Object.fromEntries(Object.entries(r).map(([e,s])=>[e,t(s,e)])),Me=(r,t)=>Object.fromEntries(Object.entries(r).filter(([e,s])=>t(s,e)));function Ne(){let r=new Set;async function t(...a){await Promise.all([...r].map(l=>l(...a)))}function e(a){return r.add(a),()=>{r.delete(a)}}async function s(...a){return t(...a)}function o(a){return e(a)}async function n(a){let{promise:l,resolve:h}=at(),p=o(async(...w)=>{a&&await a(...w),h(w),p()});return l}function i(){r.clear()}let c={pub:s,sub:o,publish:t,subscribe:e,on:e,next:n,clear:i};return Object.assign(o,c),Object.assign(s,c),c}function Pt(r){let t=Ne();return r&&t.sub(r),t.sub}function ne(r){let t=Ne();return r&&t.sub(r),t.pub}function kt(r){let t,e=!1,s=()=>{e=!0,clearTimeout(t)},o=async()=>{e||(await r(s),!e&&(t=setTimeout(o,0)))};return o(),s}var ie=class{#t=[];#e=new WeakMap;#r=[];#s=new Set;notifyRead(t){this.#t.at(-1)?.add(t)}async notifyWrite(t){if(this.#s.has(t))throw new Error("circularity forbidden");let e=this.#o(t).pub();return this.#r.at(-1)?.add(e),e}observe(t){this.#t.push(new Set);let e=t();return{seen:this.#t.pop(),result:e}}subscribe(t,e){return this.#o(t)(async()=>{let s=new Set;this.#r.push(s),this.#s.add(t),s.add(e()),this.#s.delete(t),await Promise.all(s),this.#r.pop()})}#o(t){let e=this.#e.get(t);return e||(e=Pt(),this.#e.set(t,e)),e}},x=globalThis[Symbol.for("e280.tracker")]??=new ie;var W=class{sneak;constructor(t){this.sneak=t}get(){return x.notifyRead(this),this.sneak}get value(){return this.get()}};var F=class extends W{on=Pt();dispose(){this.on.clear()}};function Ot(r,t=r){let{seen:e,result:s}=x.observe(r),o=H(0,t),n=[],i=()=>n.forEach(c=>c());for(let c of e){let a=x.subscribe(c,o);n.push(a)}return{result:s,dispose:i}}function Z(r,t){return r===t}var Tt=class extends F{#t;constructor(t,e){let s=e?.compare??Z,{result:o,dispose:n}=Ot(t,async()=>{let i=t();!s(this.sneak,i)&&(this.sneak=i,await Promise.all([x.notifyWrite(this),this.on.pub(i)]))});super(o),this.#t=n}toString(){return`(derived "${String(this.get())}")`}dispose(){super.dispose(),this.#t()}get core(){return this}fn(){let t=this;function e(){return t.get()}return e.core=t,e.get=t.get.bind(t),e.on=t.on,e.dispose=t.dispose.bind(t),e.fn=t.fn.bind(t),Object.defineProperty(e,"value",{get:()=>t.value}),Object.defineProperty(e,"sneak",{get:()=>t.sneak}),e}};var jt=class extends W{#t;#e;#r=!1;#s;constructor(t,e){super(void 0),this.#t=t,this.#e=e?.compare??Z}toString(){return`($lazy "${String(this.get())}")`}get(){if(!this.#s){let{result:t,dispose:e}=Ot(this.#t,()=>this.#r=!0);this.#s=e,this.sneak=t}if(this.#r){this.#r=!1;let t=this.#t();!this.#e(this.sneak,t)&&(this.sneak=t,x.notifyWrite(this))}return super.get()}dispose(){this.#s&&this.#s()}get core(){return this}fn(){let t=this;function e(){return t.get()}return e.core=t,e.get=t.get.bind(t),e.dispose=t.dispose.bind(t),e.fn=t.fn.bind(t),Object.defineProperty(e,"value",{get:()=>t.value}),Object.defineProperty(e,"sneak",{get:()=>t.sneak}),e}};var Mt=class extends F{#t=!1;#e;constructor(t,e){super(t),this.#e=e?.compare??Z}toString(){return`($signal "${String(this.get())}")`}async set(t){return!this.#e(this.sneak,t)&&await this.publish(t),t}get value(){return this.get()}set value(t){this.set(t)}async publish(t=this.sneak){if(this.#t)throw new Error("forbid circularity");let e=Promise.resolve();try{this.#t=!0,this.sneak=t,e=Promise.all([x.notifyWrite(this),this.on.publish(t)])}finally{this.#t=!1}return await e,t}get core(){return this}fn(){let t=this;function e(s){return arguments.length===0?t.get():t.set(arguments[0])}return e.core=t,e.get=t.get.bind(t),e.set=t.set.bind(t),e.on=t.on,e.dispose=t.dispose.bind(t),e.publish=t.publish.bind(t),e.fn=t.fn.bind(t),Object.defineProperty(e,"value",{get:()=>t.value,set:s=>t.value=s}),Object.defineProperty(e,"sneak",{get:()=>t.sneak,set:s=>t.sneak=s}),e}};function ir(r,t){return new jt(r,t).fn()}function Re(r,t){return new Tt(r,t).fn()}function $(r,t){return new Mt(r,t).fn()}$.lazy=ir;$.derived=Re;var P=class{#t=new V;effect(t,e){let{seen:s,result:o}=x.observe(t);for(let n of s)this.#t.guarantee(n,()=>x.subscribe(n,e));return o}clear(){for(let t of this.#t.values())t();this.#t.clear()}};function Ue(r,t,e,s){return class extends t{static view=ct(s,r);#t=new P;createShadow(){return this.attachShadow(r)}render(n){return s(n)(...this.#t.effect(()=>e(this),()=>this.update()))}}}var{I:fa}=Se;var He=r=>r.strings===void 0;var ze={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ae=r=>(...t)=>({_$litDirective$:r,values:t}),Nt=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var lt=(r,t)=>{let e=r._$AN;if(e===void 0)return!1;for(let s of e)s._$AO?.(t,!1),lt(s,t);return!0},Rt=r=>{let t,e;do{if((t=r._$AM)===void 0)break;e=t._$AN,e.delete(r),r=t}while(e?.size===0)},De=r=>{for(let t;t=r._$AM;r=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(r))break;e.add(r),pr(t)}};function lr(r){this._$AN!==void 0?(Rt(this),this._$AM=r,De(this)):this._$AM=r}function ur(r,t=!1,e=0){let s=this._$AH,o=this._$AN;if(o!==void 0&&o.size!==0)if(t)if(Array.isArray(s))for(let n=e;n<s.length;n++)lt(s[n],!1),Rt(s[n]);else s!=null&&(lt(s,!1),Rt(s));else lt(this,r)}var pr=r=>{r.type==ze.CHILD&&(r._$AP??=ur,r._$AQ??=lr)},Ut=class extends Nt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),De(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(lt(this,t),Rt(this))}setValue(t){if(He(this._$Ct))this._$Ct._$AI(t,this);else{let e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Ht=class r extends HTMLElement{static#t=!1;static make(){return this.#t||(f.register({SlyView:r},{soft:!0,upgrade:!0}),this.#t=!0),document.createElement("sly-view")}};function Ie(r,t){for(let[e,s]of Object.entries(t))s==null?r.removeAttribute(e):typeof s=="string"?r.setAttribute(e,s):typeof s=="number"?r.setAttribute(e,s.toString()):typeof s=="boolean"?s===!0?r.setAttribute(e,""):r.removeAttribute(e):console.warn(`invalid attribute "${e}" type is "${typeof s}"`)}var J=class{element;response;#t;constructor(t,e){this.element=t,this.response=e}start(){this.#t||(this.#t=f.attrs(this.element).on(this.response))}stop(){this.#t&&this.#t(),this.#t=void 0}};var z={status:r=>r[0],value:r=>r[0]==="ready"?r[1]:void 0,error:r=>r[0]==="error"?r[1]:void 0,select:(r,t)=>{switch(r[0]){case"loading":return t.loading();case"error":return t.error(r[1]);case"ready":return t.ready(r[1]);default:throw new Error("unknown op status")}},morph:(r,t)=>z.select(r,{loading:()=>["loading"],error:e=>["error",e],ready:e=>["ready",t(e)]}),all:(...r)=>{let t=[],e=[],s=0;for(let o of r)switch(o[0]){case"loading":s++;break;case"ready":t.push(o[1]);break;case"error":e.push(o[1]);break}return e.length>0?["error",e]:s===0?["ready",t]:["loading"]}};var D=class{static loading(){return new this}static ready(t){return new this(["ready",t])}static error(t){return new this(["error",t])}static promise(t){let e=new this;return e.promise(t),e}static load(t){return this.promise(t())}static all(...t){let e=t.map(s=>s.pod);return z.all(...e)}signal;#t=0;#e=ne();#r=ne();constructor(t=["loading"]){this.signal=$(t)}get wait(){return new Promise((t,e)=>{this.#e.next().then(([s])=>t(s)),this.#r.next().then(([s])=>e(s))})}get then(){return this.wait.then.bind(this.wait)}get catch(){return this.wait.catch.bind(this.wait)}get finally(){return this.wait.finally.bind(this.wait)}async setLoading(){await this.signal.set(["loading"])}async setReady(t){await this.signal.set(["ready",t]),await this.#e(t)}async setError(t){await this.signal.set(["error",t]),await this.#r(t)}async promise(t){let e=++this.#t;await this.setLoading();try{let s=await t;return e===this.#t&&await this.setReady(s),s}catch(s){e===this.#t&&await this.setError(s)}}async load(t){return this.promise(t())}get pod(){return this.signal.get()}set pod(t){this.signal.set(t)}get status(){return this.signal.get()[0]}get value(){return z.value(this.signal.get())}get error(){return z.error(this.signal.get())}get isLoading(){return this.status==="loading"}get isReady(){return this.status==="ready"}get isError(){return this.status==="error"}require(){let t=this.signal.get();if(t[0]!=="ready")throw new Error("required value not ready");return t[1]}select(t){return z.select(this.signal.get(),t)}morph(t){return z.morph(this.pod,t)}};var zt=class{#t=[];#e=[];mount(t){this.#t.push(t),this.#e.push(t())}unmountAll(){for(let t of this.#e)t();this.#e=[]}remountAll(){for(let t of this.#t)this.#e.push(t())}};function Dt(r,t){gt(r,hr(t))}function hr(r){let t=[];if(Array.isArray(r)){let e=new Set(r.flat(1/0).reverse());for(let s of e)t.unshift(I(s))}else r!==void 0&&t.push(I(r));return t}var ut=Symbol(),pt=Symbol(),ht=Symbol(),K=class{element;shadow;renderNow;render;attrs;#t=0;#e=0;#r=new V;#s=at();#o=new zt;[ut](t){this.#t++,this.#e=0,this.#s=at();let e=t();return this.#s.resolve(),e}[pt](){this.#o.unmountAll()}[ht](){this.#o.remountAll()}constructor(t,e,s,o){this.element=t,this.shadow=e,this.renderNow=s,this.render=o,this.attrs=f.attrs(this.element)}get renderCount(){return this.#t}get rendered(){return this.#s.promise}name(t){this.once(()=>this.element.setAttribute("view",t))}styles(...t){this.once(()=>Dt(this.shadow,t))}css(...t){return this.styles(...t)}once(t){return this.#r.guarantee(this.#e++,t)}mount(t){return this.once(()=>this.#o.mount(t))}life(t){let e;return this.mount(()=>{let[s,o]=t();return e=s,o}),e}wake(t){return this.life(()=>[t(),()=>{}])}op=(()=>{let t=this;function e(s){return t.once(()=>D.load(s))}return e.load=e,e.promise=s=>this.once(()=>D.promise(s)),e})();signal=(()=>{let t=this;function e(s,o){return t.once(()=>$(s,o))}return e.derived=function(o,n){return t.once(()=>$.derived(o,n))},e.lazy=function(o,n){return t.once(()=>$.lazy(o,n))},e})();derived(t,e){return this.once(()=>$.derived(t,e))}lazy(t,e){return this.once(()=>$.lazy(t,e))}};var It=class{viewFn;settings;#t=Ht.make();#e=new P;#r;#s;#o;#n=new J(this.#t,()=>this.#a());constructor(t,e){this.viewFn=t,this.settings=e,this.#s=this.#t.attachShadow(this.settings),this.#r=new K(this.#t,this.#s,this.#i,this.#a)}update(t){return this.#o=t,this.#i(),this.#t}#i=()=>{this.#r[ut](()=>{let t=this.#e.effect(()=>this.viewFn(this.#r)(...this.#o.props),()=>this.#a());Ie(this.#t,this.#o.attrs),f.render(this.#s,t),f.render(this.#t,this.#o.children),this.#n.start()})};#a=H(0,this.#i);disconnected(){this.#r[pt](),this.#e.clear(),this.#n.stop()}reconnected(){this.#r[ht](),this.#n.start()}};function Le(r,t){return ae(class extends Ut{#t=new It(r,t);render(s){return this.#t.update(s)}disconnected(){this.#t.disconnected()}reconnected(){this.#t.reconnected()}})}function ct(r,t){let e=Le(r,t);function s(...o){return e(new it(o))}return s.props=(...o)=>new Et(new it(o),e),s.component=o=>({props:n=>Ue(t,o,n,r)}),s}var k=class extends HTMLElement{static styles;shadow;#t;#e=0;#r=new P;#s=new J(this,()=>this.update());createShadow(){return this.attachShadow({mode:"open"})}constructor(){super(),this.shadow=this.createShadow(),this.#t=new K(this,this.shadow,this.updateNow,this.update)}render(t){}updateNow=()=>{this.#t[ut](()=>{f.render(this.shadow,this.#r.effect(()=>this.render(this.#t),this.update))})};update=H(0,this.updateNow);connectedCallback(){if(this.#e===0){let t=this.constructor.styles;t&&Dt(this.shadow,t),this.updateNow()}else this.#t[ht]();this.#s.start(),this.#e++}disconnectedCallback(){this.#t[pt](),this.#r.clear(),this.#s.stop()}};function b(r){return ct(r,{mode:"open"})}b.settings=r=>({render:t=>ct(t,r)});b.render=b;b.component=r=>b(t=>()=>r(t)).component(k).props(()=>[]);var _=y`
|
|
3
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),be=/'/g,xe=/"/g,ve=/^(?:script|style|textarea|title)$/i,Xt=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),v=Xt(1),rs=Xt(2),ss=Xt(3),M=Symbol.for("lit-noChange"),m=Symbol.for("lit-nothing"),we=new WeakMap,T=j.createTreeWalker(j,129);function Ae(r,t){if(!Gt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return me!==void 0?me.createHTML(t):t}var _e=(r,t)=>{let e=r.length-1,s=[],o,n=t===2?"<svg>":t===3?"<math>":"",i=tt;for(let c=0;c<e;c++){let a=r[c],l,h,p=-1,w=0;for(;w<a.length&&(i.lastIndex=w,h=i.exec(a),h!==null);)w=i.lastIndex,i===tt?h[1]==="!--"?i=ge:h[1]!==void 0?i=ye:h[2]!==void 0?(ve.test(h[2])&&(o=RegExp("</"+h[2],"g")),i=O):h[3]!==void 0&&(i=O):i===O?h[0]===">"?(i=o??tt,p=-1):h[1]===void 0?p=-2:(p=i.lastIndex-h[2].length,l=h[1],i=h[3]===void 0?O:h[3]==='"'?xe:be):i===xe||i===be?i=O:i===ge||i===ye?i=tt:(i=O,o=void 0);let B=i===O&&r[c+1].startsWith("/>")?" ":"";n+=i===tt?a+rr:p>=0?(s.push(l),a.slice(0,p)+Qt+a.slice(p)+E+B):a+E+(p===-2?c:B)}return[Ae(r,n+(r[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]},st=class r{constructor({strings:t,_$litType$:e},s){let o;this.parts=[];let n=0,i=0,c=t.length-1,a=this.parts,[l,h]=_e(t,e);if(this.el=r.createElement(l,s),T.currentNode=this.el.content,e===2||e===3){let p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(o=T.nextNode())!==null&&a.length<c;){if(o.nodeType===1){if(o.hasAttributes())for(let p of o.getAttributeNames())if(p.endsWith(Qt)){let w=h[i++],B=o.getAttribute(p).split(E),ft=/([.?@])?(.*)/.exec(w);a.push({type:1,index:n,name:ft[2],strings:B,ctor:ft[1]==="."?wt:ft[1]==="?"?$t:ft[1]==="@"?vt:R}),o.removeAttribute(p)}else p.startsWith(E)&&(a.push({type:6,index:n}),o.removeAttribute(p));if(ve.test(o.tagName)){let p=o.textContent.split(E),w=p.length-1;if(w>0){o.textContent=bt?bt.emptyScript:"";for(let B=0;B<w;B++)o.append(p[B],et()),T.nextNode(),a.push({type:2,index:++n});o.append(p[w],et())}}}else if(o.nodeType===8)if(o.data===Yt)a.push({type:2,index:n});else{let p=-1;for(;(p=o.data.indexOf(E,p+1))!==-1;)a.push({type:7,index:n}),p+=E.length-1}n++}}static createElement(t,e){let s=j.createElement("template");return s.innerHTML=t,s}};function N(r,t,e=r,s){if(t===M)return t;let o=s!==void 0?e._$Co?.[s]:e._$Cl,n=rt(t)?void 0:t._$litDirective$;return o?.constructor!==n&&(o?._$AO?.(!1),n===void 0?o=void 0:(o=new n(r),o._$AT(r,e,s)),s!==void 0?(e._$Co??=[])[s]=o:e._$Cl=o),o!==void 0&&(t=N(r,o._$AS(r,t.values),o,s)),t}var xt=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:s}=this._$AD,o=(t?.creationScope??j).importNode(e,!0);T.currentNode=o;let n=T.nextNode(),i=0,c=0,a=s[0];for(;a!==void 0;){if(i===a.index){let l;a.type===2?l=new L(n,n.nextSibling,this,t):a.type===1?l=new a.ctor(n,a.name,a.strings,this,t):a.type===6&&(l=new At(n,this,t)),this._$AV.push(l),a=s[++c]}i!==a?.index&&(n=T.nextNode(),i++)}return T.currentNode=j,o}p(t){let e=0;for(let s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}},L=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,o){this.type=2,this._$AH=m,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=o,this._$Cv=o?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=N(this,t,e),rt(t)?t===m||t==null||t===""?(this._$AH!==m&&this._$AR(),this._$AH=m):t!==this._$AH&&t!==M&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):$e(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==m&&rt(this._$AH)?this._$AA.nextSibling.data=t:this.T(j.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:s}=t,o=typeof s=="number"?this._$AC(t):(s.el===void 0&&(s.el=st.createElement(Ae(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===o)this._$AH.p(e);else{let n=new xt(o,this),i=n.u(this.options);n.p(e),this.T(i),this._$AH=n}}_$AC(t){let e=we.get(t.strings);return e===void 0&&we.set(t.strings,e=new st(t)),e}k(t){Gt(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,s,o=0;for(let n of t)o===e.length?e.push(s=new r(this.O(et()),this.O(et()),this,this.options)):s=e[o],s._$AI(n),o++;o<e.length&&(this._$AR(s&&s._$AB.nextSibling,o),e.length=o)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){let s=t.nextSibling;t.remove(),t=s}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,o,n){this.type=1,this._$AH=m,this._$AN=void 0,this.element=t,this.name=e,this._$AM=o,this.options=n,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=m}_$AI(t,e=this,s,o){let n=this.strings,i=!1;if(n===void 0)t=N(this,t,e,0),i=!rt(t)||t!==this._$AH&&t!==M,i&&(this._$AH=t);else{let c=t,a,l;for(t=n[0],a=0;a<n.length-1;a++)l=N(this,c[s+a],e,a),l===M&&(l=this._$AH[a]),i||=!rt(l)||l!==this._$AH[a],l===m?t=m:t!==m&&(t+=(l??"")+n[a+1]),this._$AH[a]=l}i&&!o&&this.j(t)}j(t){t===m?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},wt=class extends R{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===m?void 0:t}},$t=class extends R{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==m)}},vt=class extends R{constructor(t,e,s,o,n){super(t,e,s,o,n),this.type=5}_$AI(t,e=this){if((t=N(this,t,e,0)??m)===M)return;let s=this._$AH,o=t===m&&s!==m||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==m&&(s===m||o);o&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},At=class{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t)}},Se={M:Qt,P:E,A:Yt,C:1,L:_e,R:xt,D:$e,V:N,I:L,H:R,N:$t,U:vt,B:wt,F:At},sr=Kt.litHtmlPolyfillSupport;sr?.(st,L),(Kt.litHtmlVersions??=[]).push("3.3.0");var ot=(r,t,e)=>{let s=e?.renderBefore??t,o=s._$litPart$;if(o===void 0){let n=e?.renderBefore??null;s._$litPart$=o=new L(t.insertBefore(et(),n),n,void 0,e??{})}return o._$AI(r),o};var te=globalThis,q=class extends S{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=ot(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return M}};q._$litElement$=!0,q.finalized=!0,te.litElementHydrateSupport?.({LitElement:q});var or=te.litElementPolyfillSupport;or?.({LitElement:q});(te.litElementVersions??=[]).push("4.2.0");function Ee(r,t){let e=new MutationObserver(t);return e.observe(r,{attributes:!0}),()=>e.disconnect()}var g={get:{string:(r,t)=>r.getAttribute(t)??void 0,number:(r,t)=>{let e=r.getAttribute(t);return e===null||!e?void 0:Number(e)},boolean:(r,t)=>r.getAttribute(t)!==null},set:{string:(r,t,e)=>(e===void 0?r.removeAttribute(t):r.setAttribute(t,e),!0),number:(r,t,e)=>(e===void 0?r.removeAttribute(t):r.setAttribute(t,e.toString()),!0),boolean:(r,t,e)=>(e?r.setAttribute(t,""):r.removeAttribute(t),!0)}};var Be=(r,t)=>new Proxy(t,{get:(e,s)=>{switch(t[s]){case String:return g.get.string(r,s);case Number:return g.get.number(r,s);case Boolean:return g.get.boolean(r,s);default:throw new Error(`invalid attribute type for "${s}"`)}},set:(e,s,o)=>{switch(t[s]){case String:return g.set.string(r,s,o);case Number:return g.set.number(r,s,o);case Boolean:return g.set.boolean(r,s,o);default:throw new Error(`invalid attribute type for "${s}"`)}}});var _t=class{element;constructor(t){this.element=t}string=new Proxy({},{get:(t,e)=>g.get.string(this.element,e),set:(t,e,s)=>g.set.string(this.element,e,s)});number=new Proxy({},{get:(t,e)=>g.get.number(this.element,e),set:(t,e,s)=>g.set.number(this.element,e,s)});boolean=new Proxy({},{get:(t,e)=>g.get.boolean(this.element,e),set:(t,e,s)=>g.set.boolean(this.element,e,s)})};function nt(r){let t=new _t(r);return{string:t.string,number:t.number,boolean:t.boolean,on:e=>Ee(r,e),spec:e=>Be(r,e)}}nt.get=g.get;nt.set=g.set;function Ce(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function Pe(r,t={}){let{soft:e=!1,upgrade:s=!0}=t;for(let[o,n]of Object.entries(r)){let i=Ce(o),c=customElements.get(i);e&&c||(customElements.define(i,n),s&&document.querySelectorAll(i).forEach(a=>{a.constructor===HTMLElement&&customElements.upgrade(a)}))}}function ke(r,t){let e=r.querySelector(t);if(!e)throw new Error(`element not found (${t})`);return e}var St=class r{element;constructor(t){this.element=t}in(t){return new r(typeof t=="string"?ke(this.element,t):t)}require(t){let e=this.element.querySelector(t);if(!e)throw new Error(`element not found (${t})`);return e}maybe(t){return this.element.querySelector(t)}all(t){return Array.from(this.element.querySelectorAll(t))}render(...t){return ot(t,this.element)}attrs(){return nt(this.element)}};function f(r){return typeof r=="string"?ke(document,r):new St(r)}var C=new St(document);f.in=C.in.bind(C);f.require=C.require.bind(C);f.maybe=C.maybe.bind(C);f.all=C.all.bind(C);f.attrs=nt;f.register=Pe;f.render=(r,...t)=>ot(t,r);var Et=class{#t;#e;constructor(t,e){this.#e=t,this.#t=e}attr(t,e){return this.#e.attrs.set(t,e),this}children(...t){return this.#e.children.push(...t),this}render(){return this.#t(this.#e)}};var it=class{props;attrs=new Map;children=[];constructor(t){this.props=t}};var A=Object.freeze({eq(r,t){if(r.length!==t.length)return!1;for(let e=0;e<=r.length;e++)if(r.at(e)!==t.at(e))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var U=Object.freeze({fromBytes(r){return[...r].map(t=>t.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let t=new Uint8Array(r.length/2);for(let e=0;e<r.length;e+=2)t[e/2]=parseInt(r.slice(e,e+2),16);return t},random(r=32){return this.fromBytes(A.random(r))},string(r){return U.fromBytes(r)},bytes(r){return U.toBytes(r)}});var ee=58,Bt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",re=Object.freeze({fromBytes(r){let t=BigInt("0x"+U.fromBytes(r)),e="";for(;t>0;){let s=t%BigInt(ee);t=t/BigInt(ee),e=Bt[Number(s)]+e}for(let s of r)if(s===0)e=Bt[0]+e;else break;return e},toBytes(r){let t=BigInt(0);for(let i of r){let c=Bt.indexOf(i);if(c===-1)throw new Error(`Invalid character '${i}' in base58 string`);t=t*BigInt(ee)+BigInt(c)}let e=t.toString(16);e.length%2!==0&&(e="0"+e);let s=U.toBytes(e),o=0;for(let i of r)if(i===Bt[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(r=32){return this.fromBytes(A.random(r))},string(r){return re.fromBytes(r)},bytes(r){return re.toBytes(r)}});var Oe=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(t){this.lexicon=t,this.lookup=Object.fromEntries([...t.characters].map((e,s)=>[e,s])),this.negativePrefix=t.negativePrefix??"-"}toBytes(t){let e=Math.log2(this.lexicon.characters.length);if(Number.isInteger(e)){let c=0,a=0,l=[];for(let h of t){if(h===this.lexicon.padding?.character)continue;let p=this.lookup[h];if(p===void 0)throw new Error(`Invalid character: ${h}`);for(c=c<<e|p,a+=e;a>=8;)a-=8,l.push(c>>a&255)}return new Uint8Array(l)}let s=0n,o=BigInt(this.lexicon.characters.length),n=!1;t.startsWith(this.negativePrefix)&&(t=t.slice(this.negativePrefix.length),n=!0);for(let c of t){let a=this.lookup[c];if(a===void 0)throw new Error(`Invalid character: ${c}`);s=s*o+BigInt(a)}let i=[];for(;s>0n;)i.unshift(Number(s%256n)),s=s/256n;return new Uint8Array(i)}fromBytes(t){let e=Math.log2(this.lexicon.characters.length);if(Number.isInteger(e)){let i=0,c=0,a="";for(let l of t)for(i=i<<8|l,c+=8;c>=e;){c-=e;let h=i>>c&(1<<e)-1;a+=this.lexicon.characters[h]}if(c>0){let l=i<<e-c&(1<<e)-1;a+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;a.length%this.lexicon.padding.size!==0;)a+=this.lexicon.padding.character;return a}let s=0n;for(let i of t)s=(s<<8n)+BigInt(i);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return n}toInteger(t){if(!t)return 0;let e=0n,s=!1,o=BigInt(this.lexicon.characters.length);t.startsWith(this.negativePrefix)&&(t=t.slice(this.negativePrefix.length),s=!0);for(let n of t){let i=this.lookup[n];if(i===void 0)throw new Error(`Invalid character: ${n}`);e=e*o+BigInt(i)}return Number(s?-e:e)}fromInteger(t){t=Math.floor(t);let e=t<0,s=BigInt(e?-t:t);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return e?`${this.negativePrefix}${n}`:n}random(t=32){return this.fromBytes(A.random(t))}};var se=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),t=>t.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(A.random(r))},string(r){return se.fromBytes(r)},bytes(r){return se.toBytes(r)}});var Te=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Te.fromBytes(r)},bytes(r){return Te.toBytes(r)}});function H(r,t){let e,s,o=[];function n(){e=[],s&&clearTimeout(s),s=void 0,o=[]}return n(),((...i)=>{e=i,s&&clearTimeout(s);let c=new Promise((a,l)=>{o.push({resolve:a,reject:l})});return s=setTimeout(()=>{Promise.resolve().then(()=>t(...e)).then(a=>{for(let{resolve:l}of o)l(a);n()}).catch(a=>{for(let{reject:l}of o)l(a);n()})},r),c})}var oe=Object.freeze({happy:r=>r!=null,sad:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});function at(){let r,t,e=new Promise((o,n)=>{r=o,t=n});function s(o){return o.then(r).catch(t),e}return{promise:e,resolve:r,reject:t,entangle:s}}var V=class r extends Map{static require(t,e){if(t.has(e))return t.get(e);throw new Error(`required key not found: "${e}"`)}static guarantee(t,e,s){if(t.has(e))return t.get(e);{let o=s();return t.set(e,o),o}}array(){return[...this]}require(t){return r.require(this,t)}guarantee(t,e){return r.guarantee(this,t,e)}};var Ct=(r=0)=>new Promise(t=>setTimeout(t,r));function nr(r){return{map:t=>je(r,t),filter:t=>Me(r,t)}}nr.pipe=Object.freeze({map:r=>(t=>je(t,r)),filter:r=>(t=>Me(t,r))});var je=(r,t)=>Object.fromEntries(Object.entries(r).map(([e,s])=>[e,t(s,e)])),Me=(r,t)=>Object.fromEntries(Object.entries(r).filter(([e,s])=>t(s,e)));function Ne(){let r=new Set;async function t(...a){await Promise.all([...r].map(l=>l(...a)))}function e(a){return r.add(a),()=>{r.delete(a)}}async function s(...a){return t(...a)}function o(a){return e(a)}async function n(a){let{promise:l,resolve:h}=at(),p=o(async(...w)=>{a&&await a(...w),h(w),p()});return l}function i(){r.clear()}let c={pub:s,sub:o,publish:t,subscribe:e,on:e,next:n,clear:i};return Object.assign(o,c),Object.assign(s,c),c}function Pt(r){let t=Ne();return r&&t.sub(r),t.sub}function ne(r){let t=Ne();return r&&t.sub(r),t.pub}function kt(r){let t,e=!1,s=()=>{e=!0,clearTimeout(t)},o=async()=>{e||(await r(s),!e&&(t=setTimeout(o,0)))};return o(),s}var ie=class{#t=[];#e=new WeakMap;#r=[];#s=new Set;notifyRead(t){this.#t.at(-1)?.add(t)}async notifyWrite(t){if(this.#s.has(t))throw new Error("circularity forbidden");let e=this.#o(t).pub();return this.#r.at(-1)?.add(e),e}observe(t){this.#t.push(new Set);let e=t();return{seen:this.#t.pop(),result:e}}subscribe(t,e){return this.#o(t)(async()=>{let s=new Set;this.#r.push(s),this.#s.add(t),s.add(e()),this.#s.delete(t),await Promise.all(s),this.#r.pop()})}#o(t){let e=this.#e.get(t);return e||(e=Pt(),this.#e.set(t,e)),e}},x=globalThis[Symbol.for("e280.tracker")]??=new ie;var W=class{sneak;constructor(t){this.sneak=t}get(){return x.notifyRead(this),this.sneak}get value(){return this.get()}};var F=class extends W{on=Pt();dispose(){this.on.clear()}};function Ot(r,t=r){let{seen:e,result:s}=x.observe(r),o=H(0,t),n=[],i=()=>n.forEach(c=>c());for(let c of e){let a=x.subscribe(c,o);n.push(a)}return{result:s,dispose:i}}function Z(r,t){return r===t}var Tt=class extends F{#t;constructor(t,e){let s=e?.compare??Z,{result:o,dispose:n}=Ot(t,async()=>{let i=t();!s(this.sneak,i)&&(this.sneak=i,await Promise.all([x.notifyWrite(this),this.on.pub(i)]))});super(o),this.#t=n}toString(){return`(derived "${String(this.get())}")`}dispose(){super.dispose(),this.#t()}get core(){return this}fn(){let t=this;function e(){return t.get()}return e.core=t,e.get=t.get.bind(t),e.on=t.on,e.dispose=t.dispose.bind(t),e.fn=t.fn.bind(t),Object.defineProperty(e,"value",{get:()=>t.value}),Object.defineProperty(e,"sneak",{get:()=>t.sneak}),e}};var jt=class extends W{#t;#e;#r=!1;#s;constructor(t,e){super(void 0),this.#t=t,this.#e=e?.compare??Z}toString(){return`($lazy "${String(this.get())}")`}get(){if(!this.#s){let{result:t,dispose:e}=Ot(this.#t,()=>this.#r=!0);this.#s=e,this.sneak=t}if(this.#r){this.#r=!1;let t=this.#t();!this.#e(this.sneak,t)&&(this.sneak=t,x.notifyWrite(this))}return super.get()}dispose(){this.#s&&this.#s()}get core(){return this}fn(){let t=this;function e(){return t.get()}return e.core=t,e.get=t.get.bind(t),e.dispose=t.dispose.bind(t),e.fn=t.fn.bind(t),Object.defineProperty(e,"value",{get:()=>t.value}),Object.defineProperty(e,"sneak",{get:()=>t.sneak}),e}};var Mt=class extends F{#t=!1;#e;constructor(t,e){super(t),this.#e=e?.compare??Z}toString(){return`($signal "${String(this.get())}")`}async set(t){return!this.#e(this.sneak,t)&&await this.publish(t),t}get value(){return this.get()}set value(t){this.set(t)}async publish(t=this.sneak){if(this.#t)throw new Error("forbid circularity");let e=Promise.resolve();try{this.#t=!0,this.sneak=t,e=Promise.all([x.notifyWrite(this),this.on.publish(t)])}finally{this.#t=!1}return await e,t}get core(){return this}fn(){let t=this;function e(s){return arguments.length===0?t.get():t.set(arguments[0])}return e.core=t,e.get=t.get.bind(t),e.set=t.set.bind(t),e.on=t.on,e.dispose=t.dispose.bind(t),e.publish=t.publish.bind(t),e.fn=t.fn.bind(t),Object.defineProperty(e,"value",{get:()=>t.value,set:s=>t.value=s}),Object.defineProperty(e,"sneak",{get:()=>t.sneak,set:s=>t.sneak=s}),e}};function ir(r,t){return new jt(r,t).fn()}function Re(r,t){return new Tt(r,t).fn()}function $(r,t){return new Mt(r,t).fn()}$.lazy=ir;$.derived=Re;var P=class{#t=new V;effect(t,e){let{seen:s,result:o}=x.observe(t);for(let n of s)this.#t.guarantee(n,()=>x.subscribe(n,e));for(let[n,i]of this.#t)s.has(n)||(i(),this.#t.delete(n));return o}clear(){for(let t of this.#t.values())t();this.#t.clear()}};function Ue(r,t,e,s){return class extends t{static view=ct(s,r);#t=new P;createShadow(){return this.attachShadow(r)}render(n){return s(n)(...this.#t.effect(()=>e(this),()=>this.update()))}}}var{I:fa}=Se;var He=r=>r.strings===void 0;var ze={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ae=r=>(...t)=>({_$litDirective$:r,values:t}),Nt=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var lt=(r,t)=>{let e=r._$AN;if(e===void 0)return!1;for(let s of e)s._$AO?.(t,!1),lt(s,t);return!0},Rt=r=>{let t,e;do{if((t=r._$AM)===void 0)break;e=t._$AN,e.delete(r),r=t}while(e?.size===0)},De=r=>{for(let t;t=r._$AM;r=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(r))break;e.add(r),pr(t)}};function lr(r){this._$AN!==void 0?(Rt(this),this._$AM=r,De(this)):this._$AM=r}function ur(r,t=!1,e=0){let s=this._$AH,o=this._$AN;if(o!==void 0&&o.size!==0)if(t)if(Array.isArray(s))for(let n=e;n<s.length;n++)lt(s[n],!1),Rt(s[n]);else s!=null&&(lt(s,!1),Rt(s));else lt(this,r)}var pr=r=>{r.type==ze.CHILD&&(r._$AP??=ur,r._$AQ??=lr)},Ut=class extends Nt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),De(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(lt(this,t),Rt(this))}setValue(t){if(He(this._$Ct))this._$Ct._$AI(t,this);else{let e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Ht=class r extends HTMLElement{static#t=!1;static make(){return this.#t||(f.register({SlyView:r},{soft:!0,upgrade:!0}),this.#t=!0),document.createElement("sly-view")}};function Ie(r,t){for(let[e,s]of t)s==null?r.removeAttribute(e):typeof s=="string"?r.setAttribute(e,s):typeof s=="number"?r.setAttribute(e,s.toString()):typeof s=="boolean"?s===!0?r.setAttribute(e,""):r.removeAttribute(e):console.warn(`invalid attribute "${e}" type is "${typeof s}"`)}var J=class{element;response;#t;constructor(t,e){this.element=t,this.response=e}start(){this.#t||(this.#t=f.attrs(this.element).on(this.response))}stop(){this.#t&&this.#t(),this.#t=void 0}};var z={status:r=>r[0],value:r=>r[0]==="ready"?r[1]:void 0,error:r=>r[0]==="error"?r[1]:void 0,select:(r,t)=>{switch(r[0]){case"loading":return t.loading();case"error":return t.error(r[1]);case"ready":return t.ready(r[1]);default:throw new Error("unknown op status")}},morph:(r,t)=>z.select(r,{loading:()=>["loading"],error:e=>["error",e],ready:e=>["ready",t(e)]}),all:(...r)=>{let t=[],e=[],s=0;for(let o of r)switch(o[0]){case"loading":s++;break;case"ready":t.push(o[1]);break;case"error":e.push(o[1]);break}return e.length>0?["error",e]:s===0?["ready",t]:["loading"]}};var D=class{static loading(){return new this}static ready(t){return new this(["ready",t])}static error(t){return new this(["error",t])}static promise(t){let e=new this;return e.promise(t),e}static load(t){return this.promise(t())}static all(...t){let e=t.map(s=>s.pod);return z.all(...e)}signal;#t=0;#e=ne();#r=ne();constructor(t=["loading"]){this.signal=$(t)}get wait(){return new Promise((t,e)=>{this.#e.next().then(([s])=>t(s)),this.#r.next().then(([s])=>e(s))})}get then(){return this.wait.then.bind(this.wait)}get catch(){return this.wait.catch.bind(this.wait)}get finally(){return this.wait.finally.bind(this.wait)}async setLoading(){await this.signal.set(["loading"])}async setReady(t){await this.signal.set(["ready",t]),await this.#e(t)}async setError(t){await this.signal.set(["error",t]),await this.#r(t)}async promise(t){let e=++this.#t;await this.setLoading();try{let s=await t;return e===this.#t&&await this.setReady(s),s}catch(s){e===this.#t&&await this.setError(s)}}async load(t){return this.promise(t())}get pod(){return this.signal.get()}set pod(t){this.signal.set(t)}get status(){return this.signal.get()[0]}get value(){return z.value(this.signal.get())}get error(){return z.error(this.signal.get())}get isLoading(){return this.status==="loading"}get isReady(){return this.status==="ready"}get isError(){return this.status==="error"}require(){let t=this.signal.get();if(t[0]!=="ready")throw new Error("required value not ready");return t[1]}select(t){return z.select(this.signal.get(),t)}morph(t){return z.morph(this.pod,t)}};var zt=class{#t=[];#e=[];mount(t){this.#t.push(t),this.#e.push(t())}unmountAll(){for(let t of this.#e)t();this.#e=[]}remountAll(){for(let t of this.#t)this.#e.push(t())}};function Dt(r,t){gt(r,hr(t))}function hr(r){let t=[];if(Array.isArray(r)){let e=new Set(r.flat(1/0).reverse());for(let s of e)t.unshift(I(s))}else r!==void 0&&t.push(I(r));return t}var ut=Symbol(),pt=Symbol(),ht=Symbol(),K=class{element;shadow;renderNow;render;attrs;#t=0;#e=0;#r=new V;#s=at();#o=new zt;[ut](t){this.#t++,this.#e=0,this.#s=at();let e=t();return this.#s.resolve(),e}[pt](){this.#o.unmountAll()}[ht](){this.#o.remountAll()}constructor(t,e,s,o){this.element=t,this.shadow=e,this.renderNow=s,this.render=o,this.attrs=f.attrs(this.element)}get renderCount(){return this.#t}get rendered(){return this.#s.promise}name(t){this.once(()=>this.element.setAttribute("view",t))}styles(...t){this.once(()=>Dt(this.shadow,t))}css(...t){return this.styles(...t)}once(t){return this.#r.guarantee(this.#e++,t)}mount(t){return this.once(()=>this.#o.mount(t))}life(t){let e;return this.mount(()=>{let[s,o]=t();return e=s,o}),e}wake(t){return this.life(()=>[t(),()=>{}])}op=(()=>{let t=this;function e(s){return t.once(()=>D.load(s))}return e.load=e,e.promise=s=>this.once(()=>D.promise(s)),e})();signal=(()=>{let t=this;function e(s,o){return t.once(()=>$(s,o))}return e.derived=function(o,n){return t.once(()=>$.derived(o,n))},e.lazy=function(o,n){return t.once(()=>$.lazy(o,n))},e})();derived(t,e){return this.once(()=>$.derived(t,e))}lazy(t,e){return this.once(()=>$.lazy(t,e))}};var It=class{viewFn;settings;#t=Ht.make();#e=new P;#r;#s;#o;#n=new J(this.#t,()=>this.#a());constructor(t,e){this.viewFn=t,this.settings=e,this.#s=this.#t.attachShadow(this.settings),this.#r=new K(this.#t,this.#s,this.#i,this.#a)}update(t){return this.#o=t,this.#i(),this.#t}#i=()=>{this.#r[ut](()=>{let t=this.#e.effect(()=>this.viewFn(this.#r)(...this.#o.props),()=>this.#a());Ie(this.#t,this.#o.attrs),f.render(this.#s,t),f.render(this.#t,this.#o.children),this.#n.start()})};#a=H(0,this.#i);disconnected(){this.#r[pt](),this.#e.clear(),this.#n.stop()}reconnected(){this.#r[ht](),this.#n.start()}};function Le(r,t){return ae(class extends Ut{#t=new It(r,t);render(s){return this.#t.update(s)}disconnected(){this.#t.disconnected()}reconnected(){this.#t.reconnected()}})}function ct(r,t){let e=Le(r,t);function s(...o){return e(new it(o))}return s.props=(...o)=>new Et(new it(o),e),s.component=o=>({props:n=>Ue(t,o,n,r)}),s}var k=class extends HTMLElement{static styles;shadow;#t;#e=0;#r=new P;#s=new J(this,()=>this.update());createShadow(){return this.attachShadow({mode:"open"})}constructor(){super(),this.shadow=this.createShadow(),this.#t=new K(this,this.shadow,this.updateNow,this.update)}render(t){}updateNow=()=>{this.#t[ut](()=>{f.render(this.shadow,this.#r.effect(()=>this.render(this.#t),this.update))})};update=H(0,this.updateNow);connectedCallback(){if(this.#e===0){let t=this.constructor.styles;t&&Dt(this.shadow,t),this.updateNow()}else this.#t[ht]();this.#s.start(),this.#e++}disconnectedCallback(){this.#t[pt](),this.#r.clear(),this.#s.stop()}};function b(r){return ct(r,{mode:"open"})}b.settings=r=>({render:t=>ct(t,r)});b.render=b;b.component=r=>b(t=>()=>r(t)).component(k).props(()=>[]);var _=y`
|
|
4
4
|
@layer reset {
|
|
5
5
|
* {
|
|
6
6
|
margin: 0;
|