@e280/sly 0.2.0-11 โ†’ 0.2.0-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -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 lib for webdevs. *(sly replaces its predecessor, [slate](https://github.com/benevolent-games/slate))*
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
- - ๐Ÿ‹ [**views**](#views) โ€” hooks-based, shadow-dom'd, 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
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 and components
38
- > *views are the crown jewel of sly.. shadow-dom'd.. hooks-based.. "ergonomics"..*
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
- - any view can be converted into a web component
45
- - views are not [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) per se, but they do have [shadow roots](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM) and support [slots](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots)
46
- - views are typescript-native and comfy for webdevs building apps
47
- - views automatically rerender whenever any [strata-compatible](https://github.com/e280/strata) state changes
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 a view**
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
- <span>${$count.value}</span>
65
- <button @click="${increment}">+</button>
65
+ <button @click="${increment}">
66
+ ${$count.value}
67
+ </button>
66
68
  `
67
69
  })
68
70
  ```
69
- - each view renders into a `<sly-view view="counter">` host (where "counter" is the `use.name` you provided)
70
- - **inject a view into the dom**
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 a view as a web component**
79
+ - ๐Ÿคฏ **register view as web component**
78
80
  ```ts
79
81
  dom.register({
80
82
  MyCounter: CounterView
81
- .component(BaseElement)
82
- .props(component => [dom.attrs(component).number.start ?? 0]),
83
+ .component()
84
+ .props(() => [1]),
83
85
  })
84
86
  ```
85
87
  ```html
86
- <my-counter start="1"></my-counter>
88
+ <my-counter></my-counter>
87
89
  ```
88
90
 
89
- ### ๐Ÿ‹ view declaration settings
90
- - special settings for views at declaration-time
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 injection options
102
- - options for views at the template injection site
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.props("hello")
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 content in the host element, can be [slotted](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots)
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,69 +121,91 @@ 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
- then convert it to a component.
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
- .component(BaseElement)
133
+ .component()
132
134
  .props(component => [component.getAttribute("name") ?? "unknown"])
133
135
  ) {}
134
-
135
- // html usage:
136
- // <greeter-component name="pimsley"></greeter-component>
137
136
  ```
138
- - this trick with `class` and `extends` is amazing because typescript exports both the value of your component class, but also its type (doesn't work if you use `const`)
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 (
142
144
  view(use => (name: string) => {
143
145
  return html`<p>hello ${name}</p>`
144
146
  })
145
- .component(BaseElement)
147
+ .component()
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
  ```
157
- - **understanding `.component(C)` and `.props(fn)`**
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
+ ```
160
+ - **understanding `.component(BaseElement)` 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`, which lets you define your own properties and methods for your component class
169
+ - `.component` accepts a subclass of `BaseElement`, so you can define your own properties and methods for your component class
169
170
  ```ts
170
- .component(class extends BaseElement {
171
- $name = signal("jim raynor")
172
- updateName(name: string) {
173
- this.$name.value = name
174
- }
175
- })
176
- .props(component => [component.$name.value])
177
- ```
178
- - `.component` lets devs interacting with your component get nice types
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])
183
+ ```โ€” the technical term for a *genuine* web component
184
+ - `.component` provides the devs interacting with your component, with noice typings
179
185
  ```ts
180
- dom<GreeterComponent>("my-component").updateName("mortimer")
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,7 +351,27 @@ import {BaseElement, Use, dom} from "@e280/sly"
328
351
  import {html, css} from "lit"
329
352
  ```
330
353
 
331
- `BaseElement` is an old-timey class-based "fogey" approach to making web components, but with a modern twist โ€” its `render` method gives you the same `use` hooks that views enjoy.
354
+ `BaseElement` is more of 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.
355
+
356
+ ๐Ÿ‘ฎ a *BaseElement* is not a *View*, and cannot be converted into a *View*.
357
+
358
+ ### ๐Ÿชต let's clarify some sly terminology
359
+ - "Element"
360
+ - an html element; any subclass of the browser's HTMLElement
361
+ - all genuine ["web components"](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) are elements
362
+ - "BaseElement"
363
+ - sly's own subclass of the browser-native HTMLElement
364
+ - is a true element and web component (can be registered to the dom)
365
+ - "View"
366
+ - sly's own magic concept that uses a lit-directive to render stuff
367
+ - NOT an element or web component (can NOT be registered to the dom)
368
+ - NOT related to BaseElement
369
+ - can be converted into a Component via `view.component().props(() => [])`
370
+ - "Component"
371
+ - a sly view that has been converted into an element
372
+ - is a true element and web component (can be registered to the dom)
373
+ - actually a subclass of BaseElement
374
+ - actually contains the view on `Component.view`
332
375
 
333
376
  ### ๐Ÿชต base element setup
334
377
  - **declare your element class**
@@ -337,7 +380,7 @@ import {html, css} from "lit"
337
380
  static styles = css`span{color:orange}`
338
381
 
339
382
  // custom property
340
- start = 10
383
+ $start = signal(10)
341
384
 
342
385
  // custom attributes
343
386
  attrs = dom.attrs(this).spec({
@@ -353,9 +396,9 @@ import {html, css} from "lit"
353
396
  const $count = use.signal(1)
354
397
  const increment = () => $count.value++
355
398
 
356
- const {start} = this
399
+ const {$start} = this
357
400
  const {multiply = 1} = this.attrs
358
- const result = start + (multiply * $count())
401
+ const result = $start() + (multiply * $count())
359
402
 
360
403
  return html`
361
404
  <span>${result}</span>
@@ -381,7 +424,7 @@ import {html, css} from "lit"
381
424
  const myElement = dom<MyElement>("my-element")
382
425
 
383
426
  // js property
384
- myElement.start = 100
427
+ myElement.$start(100)
385
428
 
386
429
  // html attributes
387
430
  myElement.attrs.multiply = 2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/sly",
3
- "version": "0.2.0-11",
3
+ "version": "0.2.0-13",
4
4
  "description": "web shadow views",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,7 +24,6 @@ export const CounterView = view(use => (start: number, step: number) => {
24
24
  `
25
25
  })
26
26
 
27
-
28
27
  // convert a view into a web component
29
28
  export class CounterComponent extends (
30
29
  CounterView
package/s/ui/types.ts CHANGED
@@ -19,7 +19,7 @@ export type ViewFn<Props extends any[]> = (
19
19
  export type View<Props extends any[]> = {
20
20
  (...props: Props): DirectiveResult
21
21
  props: (...props: Props) => ViewChain<Props>
22
- component: <B extends Constructor<BaseElement>>(Base: B) => {
22
+ component: <B extends Constructor<BaseElement>>(Base?: B) => {
23
23
  props: (propFn: (component: InstanceType<B>) => Props) => (
24
24
  ComponentClass<B, Props>
25
25
  )
@@ -24,7 +24,7 @@ export function makeView<Props extends any[]>(
24
24
  renderDirective,
25
25
  )
26
26
 
27
- v.component = <B extends Constructor<BaseElement>>(Base: B) => ({
27
+ v.component = <B extends Constructor<BaseElement>>(Base: B = BaseElement as any) => ({
28
28
  props: (propFn: (component: InstanceType<B>) => Props) => (
29
29
  makeComponent<B, Props>(
30
30
  settings,
@@ -1,6 +1,6 @@
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=`[
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 E=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){}};E.elementStyles=[],E.shadowRootOptions={mode:"open"},E[X("elementProperties")]=new Map,E[X("finalized")]=new Map,er?.({ReactiveElement:E}),(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$",B=`lit$${Math.random().toFixed(9).slice(2)}$`,Yt="?"+B,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));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`
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 C=i===O&&r[c+1].startsWith("/>")?" ":"";n+=i===tt?a+rr:p>=0?(s.push(l),a.slice(0,p)+Qt+a.slice(p)+B+C):a+B+(p===-2?c:C)}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++],C=o.getAttribute(p).split(B),ft=/([.?@])?(.*)/.exec(w);a.push({type:1,index:n,name:ft[2],strings:C,ctor:ft[1]==="."?wt:ft[1]==="?"?$t:ft[1]==="@"?vt:R}),o.removeAttribute(p)}else p.startsWith(B)&&(a.push({type:6,index:n}),o.removeAttribute(p));if(ve.test(o.tagName)){let p=o.textContent.split(B),w=p.length-1;if(w>0){o.textContent=bt?bt.emptyScript:"";for(let C=0;C<w;C++)o.append(p[C],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(B,p+1))!==-1;)a.push({type:7,index:n}),p+=B.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:B,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 E{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 P=new St(document);f.in=P.in.bind(P);f.require=P.require.bind(P);f.maybe=P.maybe.bind(P);f.all=P.all.bind(P);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 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 it(){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}=it(),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 k=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()}};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}};function Nt(r,t){gt(r,lr(t))}function lr(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 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 Rt=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())}};var at=Symbol(),ct=Symbol(),lt=Symbol(),K=class{element;shadow;renderNow;render;attrs;#t=0;#e=0;#r=new V;#s=it();#o=new Rt;[at](t){this.#t++,this.#e=0,this.#s=it();let e=t();return this.#s.resolve(),e}[ct](){this.#o.unmountAll()}[lt](){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(()=>Nt(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 _=class extends HTMLElement{static styles;shadow;#t;#e=0;#r=new k;#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[at](()=>{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&&Nt(this.shadow,t),this.updateNow()}else this.#t[lt]();this.#s.start(),this.#e++}disconnectedCallback(){this.#t[ct](),this.#r.clear(),this.#s.stop()}};var ut=class{props;attrs=new Map;children=[];constructor(t){this.props=t}};function Ue(r,t,e,s){return class extends t{static view=pt(s,r);#t=new k;createShadow(){return this.attachShadow(r)}render(n){return s(n)(...this.#t.effect(()=>e(this),()=>this.update()))}}}var{I:Ua}=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}),Ut=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 ht=(r,t)=>{let e=r._$AN;if(e===void 0)return!1;for(let s of e)s._$AO?.(t,!1),ht(s,t);return!0},Ht=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),hr(t)}};function ur(r){this._$AN!==void 0?(Ht(this),this._$AM=r,De(this)):this._$AM=r}function pr(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++)ht(s[n],!1),Ht(s[n]);else s!=null&&(ht(s,!1),Ht(s));else ht(this,r)}var hr=r=>{r.type==ze.CHILD&&(r._$AP??=pr,r._$AQ??=ur)},zt=class extends Ut{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&&(ht(this,t),Ht(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 Dt=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 It=class{viewFn;settings;#t=Dt.make();#e=new k;#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[at](()=>{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[ct](),this.#e.clear(),this.#n.stop()}reconnected(){this.#r[lt](),this.#n.start()}};function Le(r,t){return ae(class extends zt{#t=new It(r,t);render(s){return this.#t.update(s)}disconnected(){this.#t.disconnected()}reconnected(){this.#t.reconnected()}})}function pt(r,t){let e=Le(r,t);function s(...o){return e(new ut(o))}return s.props=(...o)=>new Et(new ut(o),e),s.component=(o=_)=>({props:n=>Ue(t,o,n,r)}),s}function b(r){return pt(r,{mode:"open"})}b.settings=r=>({render:t=>pt(t,r)});b.render=b;b.component=r=>b(t=>()=>r(t)).component(_).props(()=>[]);var S=y`
4
4
  @layer reset {
5
5
  * {
6
6
  margin: 0;
@@ -16,7 +16,7 @@ var Fe=Object.defineProperty;var Ze=(r,t)=>{for(var e in t)Fe(r,e,{get:t[e],enum
16
16
  ::-webkit-scrollbar-thumb { background: #333; border-radius: 1em; }
17
17
  ::-webkit-scrollbar-thumb:hover { background: #444; }
18
18
  }
19
- `;var ce=b(r=>(t,e)=>{r.name("counter"),r.styles(_,fr);let s=r.signal(t),o=()=>{s.value+=e};return v`
19
+ `;var ce=b(r=>(t,e)=>{r.name("counter"),r.styles(S,fr);let s=r.signal(t),o=()=>{s.value+=e};return v`
20
20
  <slot></slot>
21
21
  <div>
22
22
  <span>${s()}</span>
@@ -24,7 +24,7 @@ var Fe=Object.defineProperty;var Ze=(r,t)=>{for(var e in t)Fe(r,e,{get:t[e],enum
24
24
  <div>
25
25
  <button @click="${o}">++</button>
26
26
  </div>
27
- `}),Lt=class extends ce.component(class extends k{attrs=f.attrs(this).spec({start:Number,step:Number})}).props(t=>[t.attrs.start??0,t.attrs.step??1]){},fr=y`
27
+ `}),Lt=class extends ce.component(class extends _{attrs=f.attrs(this).spec({start:Number,step:Number})}).props(t=>[t.attrs.start??0,t.attrs.step??1]){},fr=y`
28
28
  :host {
29
29
  display: flex;
30
30
  justify-content: center;
@@ -34,18 +34,18 @@ var Fe=Object.defineProperty;var Ze=(r,t)=>{for(var e in t)Fe(r,e,{get:t[e],enum
34
34
  button {
35
35
  padding: 0.2em 0.5em;
36
36
  }
37
- `;var qt={};Ze(qt,{arrow:()=>br,bar:()=>xr,bar2:()=>wr,bar3:()=>$r,bar4:()=>vr,bin:()=>Ur,binary:()=>Hr,binary2:()=>zr,block:()=>Ar,block2:()=>_r,brackets:()=>Pr,brackets2:()=>kr,braille:()=>yr,bright:()=>Wr,clock:()=>Lr,cylon:()=>Br,dots:()=>Or,dots2:()=>Tr,earth:()=>le,fistbump:()=>qr,kiss:()=>Ir,lock:()=>Vr,moon:()=>Zr,pie:()=>Er,pulseblue:()=>Dr,runner:()=>Sr,slider:()=>Cr,speaker:()=>Fr,spinner:()=>gr,wave:()=>jr,wavepulse:()=>Nr,wavepulse2:()=>Rr,wavescrub:()=>Mr});function u(r,t){return()=>dr({hz:r,frames:t})}var dr=b(r=>({hz:t,frames:e})=>{r.name("loading"),r.styles(_,mr);let s=r.signal(0);return r.mount(()=>kt(async()=>{await Ct(1e3/t);let o=s.get()+1;s.set(o>=e.length?0:o)})),e.at(s.get())}),mr=y`
37
+ `;var qt={};Ze(qt,{arrow:()=>br,bar:()=>xr,bar2:()=>wr,bar3:()=>$r,bar4:()=>vr,bin:()=>Ur,binary:()=>Hr,binary2:()=>zr,block:()=>Ar,block2:()=>_r,brackets:()=>Pr,brackets2:()=>kr,braille:()=>yr,bright:()=>Wr,clock:()=>Lr,cylon:()=>Br,dots:()=>Or,dots2:()=>Tr,earth:()=>le,fistbump:()=>qr,kiss:()=>Ir,lock:()=>Vr,moon:()=>Zr,pie:()=>Er,pulseblue:()=>Dr,runner:()=>Sr,slider:()=>Cr,speaker:()=>Fr,spinner:()=>gr,wave:()=>jr,wavepulse:()=>Nr,wavepulse2:()=>Rr,wavescrub:()=>Mr});function u(r,t){return()=>dr({hz:r,frames:t})}var dr=b(r=>({hz:t,frames:e})=>{r.name("loading"),r.styles(S,mr);let s=r.signal(0);return r.mount(()=>kt(async()=>{await Ct(1e3/t);let o=s.get()+1;s.set(o>=e.length?0:o)})),e.at(s.get())}),mr=y`
38
38
  :host {
39
39
  font-family: monospace;
40
40
  white-space: pre;
41
41
  user-select: none;
42
42
  }
43
- `;var d=20,Q=10,Y=4,gr=u(d,["|","/","-","\\"]),yr=u(d,["\u2808","\u2810","\u2820","\u2880","\u2840","\u2804","\u2802","\u2801"]),br=u(d,["\u2B06\uFE0F","\u2197\uFE0F","\u27A1\uFE0F","\u2198\uFE0F","\u2B07\uFE0F","\u2199\uFE0F","\u2B05\uFE0F","\u2196\uFE0F"]),xr=u(d,["\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1","\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1"]),wr=u(d,["\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1"]),$r=u(d,["\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B1\u25B0\u25B0\u25B0\u25B1","\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1"]),vr=u(d,["\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0"]),Ar=u(d,["\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581","\u2588\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581","\u2588\u2588\u2588\u2588\u2581","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2588"]),_r=u(d,["\u2588\u2581\u2581\u2581\u2581","\u2588\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581","\u2588\u2588\u2588\u2588\u2581","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2588\u2588\u2588","\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581","\u2588\u2588\u2588\u2581\u2581","\u2588\u2588\u2581\u2581\u2581"]),Sr=u(Y,["\u{1F6B6}","\u{1F3C3}"]),Er=u(Q,["\u25F7","\u25F6","\u25F5","\u25F4"]),Br=u(d,["=----","-=---","--=--","---=-","----=","----=","---=-","--=--","-=---","=----"]),Cr=u(d,["o----","-o---","--o--","---o-","----o","----o","---o-","--o--","-o---","o----"]),Pr=u(Q,["[ ]","[ ]","[= ]","[== ]","[===]","[ ==]","[ =]"]),kr=u(Q,["[ ]","[ ]","[= ]","[== ]","[===]","[ ==]","[ =]","[ ]","[ ]","[ =]","[ ==]","[===]","[== ]","[= ]"]),Or=u(Q,[" "," ",". ",".. ","..."," .."," ."]),Tr=u(d,[". ",". ",".. ","..."," .."," ."," ."," ..","...",".. "]),jr=u(d,[".....",".....",":....","::...",":::..","::::.",":::::",":::::",".::::","..:::","...::","....:"]),Mr=u(d,[":....",":....","::...",".::..","..::.","...::","....:","....:","...::","..::.",".::..","::..."]),Nr=u(d,[".....",".....","..:..",".:::.",".:::.",":::::",":::::","::.::",":...:"]),Rr=u(d,[".....",".....","..:..",".:::.",".:::.",":::::",":::::","::.::",":...:",".....",".....",":...:","::.::",":::::",":::::",".:::.",".:::.","..:.."]),Ur=u(d,["000","100","110","111","011","001"]),Hr=u(d,["11111","01111","00111","10011","11001","01100","00110","10011","11001","11100","11110"]),zr=u(d,["11111","01111","10111","11011","11101","11110","11111","11110","11101","11011","10111","01111"]),Dr=u(Y,["\u{1F539}","\u{1F535}"]),Ir=u(Q,["\u{1F642}","\u{1F642}","\u{1F617}","\u{1F619}","\u{1F618}","\u{1F618}","\u{1F619}"]),Lr=u(d,["\u{1F550}","\u{1F551}","\u{1F552}","\u{1F553}","\u{1F554}","\u{1F555}","\u{1F556}","\u{1F557}","\u{1F558}","\u{1F559}","\u{1F55A}","\u{1F55B}"]),qr=u(d,["\u{1F91C} \u{1F91B}","\u{1F91C} \u{1F91B}","\u{1F91C} \u{1F91B}"," \u{1F91C} \u{1F91B} "," \u{1F91C}\u{1F91B} "," \u{1F91C}\u{1F91B} "," \u{1F91C}\u{1F4A5}\u{1F91B} ","\u{1F91C} \u{1F4A5} \u{1F91B}","\u{1F91C} \u2728 \u{1F91B}","\u{1F91C} \u2728 \u{1F91B}"]),le=u(Y,["\u{1F30E}","\u{1F30F}","\u{1F30D}"]),Vr=u(Y,["\u{1F513}","\u{1F512}"]),Wr=u(Y,["\u{1F505}","\u{1F506}"]),Fr=u(Y,["\u{1F508}","\u{1F508}","\u{1F509}","\u{1F50A}","\u{1F50A}","\u{1F509}"]),Zr=u(Q,["\u{1F311}","\u{1F311}","\u{1F311}","\u{1F318}","\u{1F317}","\u{1F316}","\u{1F315}","\u{1F314}","\u{1F313}","\u{1F312}"]);var qe=b(r=>t=>(r.name("error"),r.styles(_,Jr),typeof t=="string"?t:t instanceof Error?v`<strong>${t.name}:</strong> <span>${t.message}</span>`:"error")),Jr=y`
43
+ `;var d=20,Q=10,Y=4,gr=u(d,["|","/","-","\\"]),yr=u(d,["\u2808","\u2810","\u2820","\u2880","\u2840","\u2804","\u2802","\u2801"]),br=u(d,["\u2B06\uFE0F","\u2197\uFE0F","\u27A1\uFE0F","\u2198\uFE0F","\u2B07\uFE0F","\u2199\uFE0F","\u2B05\uFE0F","\u2196\uFE0F"]),xr=u(d,["\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1","\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1"]),wr=u(d,["\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B1","\u25B1\u25B1\u25B0\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B1\u25B0\u25B1\u25B1\u25B1"]),$r=u(d,["\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B1\u25B0\u25B0\u25B0\u25B1","\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1"]),vr=u(d,["\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0"]),Ar=u(d,["\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581","\u2588\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581","\u2588\u2588\u2588\u2588\u2581","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2588"]),_r=u(d,["\u2588\u2581\u2581\u2581\u2581","\u2588\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581","\u2588\u2588\u2588\u2588\u2581","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2588\u2588\u2588","\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581","\u2588\u2588\u2588\u2581\u2581","\u2588\u2588\u2581\u2581\u2581"]),Sr=u(Y,["\u{1F6B6}","\u{1F3C3}"]),Er=u(Q,["\u25F7","\u25F6","\u25F5","\u25F4"]),Br=u(d,["=----","-=---","--=--","---=-","----=","----=","---=-","--=--","-=---","=----"]),Cr=u(d,["o----","-o---","--o--","---o-","----o","----o","---o-","--o--","-o---","o----"]),Pr=u(Q,["[ ]","[ ]","[= ]","[== ]","[===]","[ ==]","[ =]"]),kr=u(Q,["[ ]","[ ]","[= ]","[== ]","[===]","[ ==]","[ =]","[ ]","[ ]","[ =]","[ ==]","[===]","[== ]","[= ]"]),Or=u(Q,[" "," ",". ",".. ","..."," .."," ."]),Tr=u(d,[". ",". ",".. ","..."," .."," ."," ."," ..","...",".. "]),jr=u(d,[".....",".....",":....","::...",":::..","::::.",":::::",":::::",".::::","..:::","...::","....:"]),Mr=u(d,[":....",":....","::...",".::..","..::.","...::","....:","....:","...::","..::.",".::..","::..."]),Nr=u(d,[".....",".....","..:..",".:::.",".:::.",":::::",":::::","::.::",":...:"]),Rr=u(d,[".....",".....","..:..",".:::.",".:::.",":::::",":::::","::.::",":...:",".....",".....",":...:","::.::",":::::",":::::",".:::.",".:::.","..:.."]),Ur=u(d,["000","100","110","111","011","001"]),Hr=u(d,["11111","01111","00111","10011","11001","01100","00110","10011","11001","11100","11110"]),zr=u(d,["11111","01111","10111","11011","11101","11110","11111","11110","11101","11011","10111","01111"]),Dr=u(Y,["\u{1F539}","\u{1F535}"]),Ir=u(Q,["\u{1F642}","\u{1F642}","\u{1F617}","\u{1F619}","\u{1F618}","\u{1F618}","\u{1F619}"]),Lr=u(d,["\u{1F550}","\u{1F551}","\u{1F552}","\u{1F553}","\u{1F554}","\u{1F555}","\u{1F556}","\u{1F557}","\u{1F558}","\u{1F559}","\u{1F55A}","\u{1F55B}"]),qr=u(d,["\u{1F91C} \u{1F91B}","\u{1F91C} \u{1F91B}","\u{1F91C} \u{1F91B}"," \u{1F91C} \u{1F91B} "," \u{1F91C}\u{1F91B} "," \u{1F91C}\u{1F91B} "," \u{1F91C}\u{1F4A5}\u{1F91B} ","\u{1F91C} \u{1F4A5} \u{1F91B}","\u{1F91C} \u2728 \u{1F91B}","\u{1F91C} \u2728 \u{1F91B}"]),le=u(Y,["\u{1F30E}","\u{1F30F}","\u{1F30D}"]),Vr=u(Y,["\u{1F513}","\u{1F512}"]),Wr=u(Y,["\u{1F505}","\u{1F506}"]),Fr=u(Y,["\u{1F508}","\u{1F508}","\u{1F509}","\u{1F50A}","\u{1F50A}","\u{1F509}"]),Zr=u(Q,["\u{1F311}","\u{1F311}","\u{1F311}","\u{1F318}","\u{1F317}","\u{1F316}","\u{1F315}","\u{1F314}","\u{1F313}","\u{1F312}"]);var qe=b(r=>t=>(r.name("error"),r.styles(S,Jr),typeof t=="string"?t:t instanceof Error?v`<strong>${t.name}:</strong> <span>${t.message}</span>`:"error")),Jr=y`
44
44
  :host {
45
45
  font-family: monospace;
46
46
  color: red;
47
47
  }
48
- `;function Ve(r=le,t=e=>qe(e)){return(e,s)=>e.select({loading:r,ready:s,error:t})}var We=b(r=>()=>{r.name("loaders"),r.styles(_,Kr);let t=r.once(()=>D.loading());return r.once(()=>Object.entries(qt).map(([s,o])=>({key:s,loader:Ve(o)}))).map(({key:s,loader:o})=>v`
48
+ `;function Ve(r=le,t=e=>qe(e)){return(e,s)=>e.select({loading:r,ready:s,error:t})}var We=b(r=>()=>{r.name("loaders"),r.styles(S,Kr);let t=r.once(()=>D.loading());return r.once(()=>Object.entries(qt).map(([s,o])=>({key:s,loader:Ve(o)}))).map(({key:s,loader:o})=>v`
49
49
  <div data-anim="${s}">
50
50
  <span>${s}</span>
51
51
  <span>${o(t,()=>null)}</span>
@@ -91,7 +91,7 @@ div {
91
91
  min-height: 2.5em;
92
92
  }
93
93
  }
94
- `;var Vt=class extends b.component(t=>(t.name("demo"),t.styles(_,Qr),v`
94
+ `;var Vt=class extends b.component(t=>(t.name("demo"),t.styles(S,Qr),v`
95
95
  ${ce.props(768,3).children("view").render()}
96
96
  ${We()}
97
97
  `)){},Qr=y`
@@ -101,7 +101,7 @@ div {
101
101
  align-items: center;
102
102
  gap: 1em;
103
103
  }
104
- `;var Wt=class extends k{static styles=y`span{color:orange}`;attrs=f.attrs(this).spec({value:Number});something={whatever:"rofl"};render(t){let{value:e=1}=this.attrs,s=t.signal(0);return t.mount(()=>kt(async()=>{await Ct(10),await s(s()+1)})),v`
104
+ `;var Wt=class extends _{static styles=y`span{color:orange}`;attrs=f.attrs(this).spec({value:Number});something={whatever:"rofl"};render(t){let{value:e=1}=this.attrs,s=t.signal(0);return t.mount(()=>kt(async()=>{await Ct(10),await s(s()+1)})),v`
105
105
  <span>${s()*e}</span>
106
106
  `}};f.register({DemoComponent:Vt,CounterComponent:Lt,FastcountElement:Wt});console.log("\u{1F99D} sly");
107
107
  /*! Bundled license information: