@e280/sly 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -36
- package/package.json +4 -4
- package/s/views/use.ts +5 -0
- package/x/demo/demo.bundle.min.js +1 -1
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/index.html +2 -2
- package/x/views/use.d.ts +2 -0
- package/x/views/use.js +4 -0
- package/x/views/use.js.map +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div align="center"><img alt="" width="256" src="./assets/favicon.png"/></div>
|
|
3
3
|
|
|
4
4
|
# 🦝 sly — mischievous shadow views
|
|
5
|
-
> testing page
|
|
5
|
+
> testing page https://sly.e280.org/
|
|
6
6
|
|
|
7
7
|
- 🍋 web app view library with taste
|
|
8
8
|
- 🥷 leverage shadow-dom and slots
|
|
@@ -24,36 +24,30 @@ npm install @e280/sly lit @e280/strata @e280/stz
|
|
|
24
24
|
> [!NOTE]
|
|
25
25
|
> - 🔥 [lit](https://lit.dev/) for html rendering
|
|
26
26
|
> - ⛏️ [@e280/strata](https://github.com/e280/strata) for state management (signals, state trees)
|
|
27
|
-
> - 🏂 [@e280/stz](https://github.com/e280/stz)
|
|
28
|
-
> - 🐢 [scute](https://github.com/e280/scute)
|
|
27
|
+
> - 🏂 [@e280/stz](https://github.com/e280/stz) ***(optional)*** stz is our ts standard library
|
|
28
|
+
> - 🐢 [scute](https://github.com/e280/scute) ***(optional)*** is our buildy-bundly-buddy
|
|
29
29
|
|
|
30
30
|
<br/>
|
|
31
31
|
|
|
32
32
|
## 🦝 sly views
|
|
33
|
-
views are the crown jewel of sly
|
|
33
|
+
> *views are the crown jewel of sly.. shadow-dom'd.. hooks-based.. "ergonomics"..*
|
|
34
34
|
|
|
35
35
|
```ts
|
|
36
|
-
view(use => () =>
|
|
36
|
+
view(use => () => html`<p>hello world</p>`)
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
views are not web components.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
web components are best for giving html authors access to your cool widgets.. and that's cool, because any sly view can be registered as a web component.
|
|
44
|
-
|
|
45
|
-
views automatically rerender whenever any state stuff from [@e280/strata](https://github.com/e280/strata) changes.
|
|
46
|
-
|
|
47
|
-
🥷 views have a [shadow root](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).
|
|
48
|
-
views have the good parts of web components, but they aren't cumbersome.
|
|
39
|
+
- views are not [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components), 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)
|
|
40
|
+
- any view can be registered as a web component, perfect for entrypoints or sharing widgets with html authors
|
|
41
|
+
- views are typescript-native and comfy for webdevs building apps
|
|
42
|
+
- views automatically rerender whenever any [strata-compatible](https://github.com/e280/strata) state changes
|
|
49
43
|
|
|
50
44
|
### 🍋 view example
|
|
51
|
-
- **import
|
|
45
|
+
- **import stuff**
|
|
52
46
|
```ts
|
|
53
47
|
import {$, view} from "@e280/sly"
|
|
54
48
|
import {html, css} from "lit"
|
|
55
49
|
```
|
|
56
|
-
- **
|
|
50
|
+
- **declare a view**
|
|
57
51
|
```ts
|
|
58
52
|
export const CounterView = view(use => (start: number) => {
|
|
59
53
|
use.name("counter")
|
|
@@ -77,25 +71,12 @@ views have the good parts of web components, but they aren't cumbersome.
|
|
|
77
71
|
${CounterView(1)}
|
|
78
72
|
`)
|
|
79
73
|
```
|
|
80
|
-
- 🤯 **register view as a web component**
|
|
74
|
+
- 🤯 **register a view as a web component**
|
|
81
75
|
```ts
|
|
82
76
|
$.register({MyCounter: CounterView.component(1)})
|
|
83
77
|
// <my-counter></my-counter>
|
|
84
78
|
```
|
|
85
79
|
|
|
86
|
-
### 🍋 view declaration settings
|
|
87
|
-
- special settings for views at declaration-time
|
|
88
|
-
```ts
|
|
89
|
-
export const CoolView = view
|
|
90
|
-
.settings({mode: "open", delegatesFocus: true})
|
|
91
|
-
.view(use => (greeting: string) => {
|
|
92
|
-
|
|
93
|
-
return html`😎 ${greeting} <slot></slot>`
|
|
94
|
-
})
|
|
95
|
-
```
|
|
96
|
-
- these `settings` like `mode` and `delegatesFocus` are [attachShadow params](https://developer.mozilla.org/en-US/docs/Web/API/Element/attachShadow#parameters)
|
|
97
|
-
- note the `<slot></slot>` we'll use in the next example lol
|
|
98
|
-
|
|
99
80
|
### 🍋 view injection options
|
|
100
81
|
- options for views at the template injection site
|
|
101
82
|
```ts
|
|
@@ -111,18 +92,31 @@ views have the good parts of web components, but they aren't cumbersome.
|
|
|
111
92
|
- `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)
|
|
112
93
|
- `props` — finally inject the view by providing its props
|
|
113
94
|
|
|
95
|
+
### 🍋 view declaration settings
|
|
96
|
+
- special settings for views at declaration-time
|
|
97
|
+
```ts
|
|
98
|
+
export const CoolView = view
|
|
99
|
+
.settings({mode: "open", delegatesFocus: true})
|
|
100
|
+
.view(use => (greeting: string) => {
|
|
101
|
+
|
|
102
|
+
return html`😎 ${greeting} <slot></slot>`
|
|
103
|
+
})
|
|
104
|
+
```
|
|
105
|
+
- all [attachShadow params](https://developer.mozilla.org/en-US/docs/Web/API/Element/attachShadow#parameters) (like `mode` and `delegatesFocus`) are valid `settings`
|
|
106
|
+
- note the `<slot></slot>` we'll use in the next example lol
|
|
107
|
+
|
|
114
108
|
### 🍋 web components
|
|
115
109
|
- **build a component directly**
|
|
116
110
|
```ts
|
|
117
|
-
const MyComponent = view.component(use => html
|
|
111
|
+
const MyComponent = view.component(use => html`<p>hello world</p>`)
|
|
118
112
|
```
|
|
119
|
-
- notice that components don't take props
|
|
113
|
+
- notice that direct components don't take props (do `use.attrs` instead)
|
|
120
114
|
- **convert any view into a web component**
|
|
121
115
|
```ts
|
|
122
116
|
const MyCounter = CounterView.component(1)
|
|
123
117
|
```
|
|
124
118
|
- to convert a view to a component, you provide props
|
|
125
|
-
- note that the component instance has a render method like `element.render(2)` which can take new props
|
|
119
|
+
- note that the component instance has a render method like `element.render(2)` which can take new props at runtime
|
|
126
120
|
- **register web components to the dom**
|
|
127
121
|
```ts
|
|
128
122
|
$.register({MyComponent, MyCounter})
|
|
@@ -262,6 +256,7 @@ views have the good parts of web components, but they aren't cumbersome.
|
|
|
262
256
|
<br/>
|
|
263
257
|
|
|
264
258
|
## 🦝 sly dom multitool
|
|
259
|
+
> *"it's not jquery!"*
|
|
265
260
|
|
|
266
261
|
### 💲 follow the money
|
|
267
262
|
- import the dollarsign
|
|
@@ -294,7 +289,7 @@ views have the good parts of web components, but they aren't cumbersome.
|
|
|
294
289
|
### 💲 dom utilities
|
|
295
290
|
- render content into an element
|
|
296
291
|
```ts
|
|
297
|
-
$.render(element, html
|
|
292
|
+
$.render(element, html`<p>hello world</p>`)
|
|
298
293
|
```
|
|
299
294
|
- register web components
|
|
300
295
|
```ts
|
|
@@ -306,7 +301,7 @@ views have the good parts of web components, but they aren't cumbersome.
|
|
|
306
301
|
<br/>
|
|
307
302
|
|
|
308
303
|
## 🦝 sly ops, pods, and loaders
|
|
309
|
-
async operations and displaying loading spinners
|
|
304
|
+
> *async operations and displaying loading spinners.*
|
|
310
305
|
|
|
311
306
|
```ts
|
|
312
307
|
import {nap} from "@e280/stz"
|
|
@@ -415,6 +410,7 @@ import {Pod, podium, Op, makeLoader, anims} from "@e280/sly"
|
|
|
415
410
|
const loader = makeLoader(anims.dots)
|
|
416
411
|
```
|
|
417
412
|
- see all the anims available on the testing page https://sly.e280.org/
|
|
413
|
+
- ngl, i made too many.. *i was having fun, okay?*
|
|
418
414
|
- use the loader to render your op
|
|
419
415
|
```ts
|
|
420
416
|
return html`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e280/sly",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "web shadow views",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"s"
|
|
14
14
|
],
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@e280/strata": "^0.0
|
|
17
|
-
"@e280/stz": "^0.
|
|
16
|
+
"@e280/strata": "^0.1.0",
|
|
17
|
+
"@e280/stz": "^0.1.0",
|
|
18
18
|
"lit": "^3.3.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@e280/science": "^0.0
|
|
21
|
+
"@e280/science": "^0.1.0",
|
|
22
22
|
"@e280/scute": "^0.0.0",
|
|
23
23
|
"http-server": "^14.1.1",
|
|
24
24
|
"npm-run-all": "^4.1.5",
|
package/s/views/use.ts
CHANGED
|
@@ -58,6 +58,11 @@ export class Use {
|
|
|
58
58
|
styles(...styles: CSSResultGroup[]) {
|
|
59
59
|
this.once(() => applyStyles(this.shadow, styles))
|
|
60
60
|
}
|
|
61
|
+
|
|
62
|
+
/** alias for 'styles' */
|
|
63
|
+
css(...styles: CSSResultGroup[]) {
|
|
64
|
+
return this.styles(...styles)
|
|
65
|
+
}
|
|
61
66
|
|
|
62
67
|
attrs<A extends AttrSpec>(spec: A) {
|
|
63
68
|
this.mount(() => onAttrChange(this.element, this.render))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var Oe=Object.defineProperty;var Te=(r,t)=>{for(var e in t)Oe(r,e,{get:t[e],enumerable:!0})};var rt=globalThis,st=rt.ShadowRoot&&(rt.ShadyCSS===void 0||rt.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Ct=Symbol(),Qt=new WeakMap,q=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==Ct)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(st&&t===void 0){let s=e!==void 0&&e.length===1;s&&(t=Qt.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&Qt.set(e,t))}return t}toString(){return this.cssText}},Jt=r=>new q(typeof r=="string"?r:r+"",void 0,Ct),m=(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 q(e,r,Ct)},ot=(r,t)=>{if(st)r.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(let e of t){let s=document.createElement("style"),o=rt.litNonce;o!==void 0&&s.setAttribute("nonce",o),s.textContent=e.cssText,r.appendChild(s)}},H=st?r=>r:r=>r instanceof CSSStyleSheet?(t=>{let e="";for(let s of t.cssRules)e+=s.cssText;return Jt(e)})(r):r;var{is:je,defineProperty:Me,getOwnPropertyDescriptor:Ue,getOwnPropertyNames:He,getOwnPropertySymbols:Ne,getPrototypeOf:Re}=Object,nt=globalThis,Gt=nt.trustedTypes,ze=Gt?Gt.emptyScript:"",De=nt.reactiveElementPolyfillSupport,W=(r,t)=>r,kt={toAttribute(r,t){switch(t){case Boolean:r=r?ze: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}},Xt=(r,t)=>!je(r,t),Yt={attribute:!0,type:String,converter:kt,reflect:!1,useDefault:!1,hasChanged:Xt};Symbol.metadata??=Symbol("metadata"),nt.litPropertyMetadata??=new WeakMap;var w=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=Yt){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&&Me(this.prototype,t,o)}}static getPropertyDescriptor(t,e,s){let{get:o,set:n}=Ue(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)??Yt}static _$Ei(){if(this.hasOwnProperty(W("elementProperties")))return;let t=Re(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(W("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(W("properties"))){let e=this.properties,s=[...He(e),...Ne(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(H(o))}else t!==void 0&&e.push(H(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 ot(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:kt).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:kt;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??Xt)(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){}};w.elementStyles=[],w.shadowRootOptions={mode:"open"},w[W("elementProperties")]=new Map,w[W("finalized")]=new Map,De?.({ReactiveElement:w}),(nt.reactiveElementVersions??=[]).push("2.1.0");var Ot=globalThis,it=Ot.trustedTypes,te=it?it.createPolicy("lit-html",{createHTML:r=>r}):void 0,Tt="$lit$",_=`lit$${Math.random().toFixed(9).slice(2)}$`,jt="?"+_,Ie=`<${jt}>`,k=document,Z=()=>k.createComment(""),K=r=>r===null||typeof r!="object"&&typeof r!="function",Mt=Array.isArray,ie=r=>Mt(r)||typeof r?.[Symbol.iterator]=="function",Pt=`[
|
|
2
2
|
\f\r]`,F=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ee=/-->/g,re=/>/g,B=RegExp(`>|${Pt}(?:([^\\s"'>=/]+)(${Pt}*=${Pt}*(?:[^
|
|
3
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),se=/'/g,oe=/"/g,ae=/^(?:script|style|textarea|title)$/i,Ut=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),v=Ut(1),Dr=Ut(2),Ir=Ut(3),P=Symbol.for("lit-noChange"),d=Symbol.for("lit-nothing"),ne=new WeakMap,C=k.createTreeWalker(k,129);function ce(r,t){if(!Mt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return te!==void 0?te.createHTML(t):t}var le=(r,t)=>{let e=r.length-1,s=[],o,n=t===2?"<svg>":t===3?"<math>":"",i=F;for(let c=0;c<e;c++){let a=r[c],l,h,p=-1,y=0;for(;y<a.length&&(i.lastIndex=y,h=i.exec(a),h!==null);)y=i.lastIndex,i===F?h[1]==="!--"?i=ee:h[1]!==void 0?i=re:h[2]!==void 0?(ae.test(h[2])&&(o=RegExp("</"+h[2],"g")),i=B):h[3]!==void 0&&(i=B):i===B?h[0]===">"?(i=o??F,p=-1):h[1]===void 0?p=-2:(p=i.lastIndex-h[2].length,l=h[1],i=h[3]===void 0?B:h[3]==='"'?oe:se):i===oe||i===se?i=B:i===ee||i===re?i=F:(i=B,o=void 0);let A=i===B&&r[c+1].startsWith("/>")?" ":"";n+=i===F?a+Ie:p>=0?(s.push(l),a.slice(0,p)+Tt+a.slice(p)+_+A):a+_+(p===-2?c:A)}return[ce(r,n+(r[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]},Q=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]=le(t,e);if(this.el=r.createElement(l,s),C.currentNode=this.el.content,e===2||e===3){let p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(o=C.nextNode())!==null&&a.length<c;){if(o.nodeType===1){if(o.hasAttributes())for(let p of o.getAttributeNames())if(p.endsWith(Tt)){let y=h[i++],A=o.getAttribute(p).split(_),et=/([.?@])?(.*)/.exec(y);a.push({type:1,index:n,name:et[2],strings:A,ctor:et[1]==="."?ct:et[1]==="?"?lt:et[1]==="@"?ut:T}),o.removeAttribute(p)}else p.startsWith(_)&&(a.push({type:6,index:n}),o.removeAttribute(p));if(ae.test(o.tagName)){let p=o.textContent.split(_),y=p.length-1;if(y>0){o.textContent=it?it.emptyScript:"";for(let A=0;A<y;A++)o.append(p[A],Z()),C.nextNode(),a.push({type:2,index:++n});o.append(p[y],Z())}}}else if(o.nodeType===8)if(o.data===jt)a.push({type:2,index:n});else{let p=-1;for(;(p=o.data.indexOf(_,p+1))!==-1;)a.push({type:7,index:n}),p+=_.length-1}n++}}static createElement(t,e){let s=k.createElement("template");return s.innerHTML=t,s}};function O(r,t,e=r,s){if(t===P)return t;let o=s!==void 0?e._$Co?.[s]:e._$Cl,n=K(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=O(r,o._$AS(r,t.values),o,s)),t}var at=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??k).importNode(e,!0);C.currentNode=o;let n=C.nextNode(),i=0,c=0,a=s[0];for(;a!==void 0;){if(i===a.index){let l;a.type===2?l=new N(n,n.nextSibling,this,t):a.type===1?l=new a.ctor(n,a.name,a.strings,this,t):a.type===6&&(l=new pt(n,this,t)),this._$AV.push(l),a=s[++c]}i!==a?.index&&(n=C.nextNode(),i++)}return C.currentNode=k,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++}},N=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,o){this.type=2,this._$AH=d,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=O(this,t,e),K(t)?t===d||t==null||t===""?(this._$AH!==d&&this._$AR(),this._$AH=d):t!==this._$AH&&t!==P&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ie(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!==d&&K(this._$AH)?this._$AA.nextSibling.data=t:this.T(k.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=Q.createElement(ce(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===o)this._$AH.p(e);else{let n=new at(o,this),i=n.u(this.options);n.p(e),this.T(i),this._$AH=n}}_$AC(t){let e=ne.get(t.strings);return e===void 0&&ne.set(t.strings,e=new Q(t)),e}k(t){Mt(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(Z()),this.O(Z()),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))}},T=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,o,n){this.type=1,this._$AH=d,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=d}_$AI(t,e=this,s,o){let n=this.strings,i=!1;if(n===void 0)t=O(this,t,e,0),i=!K(t)||t!==this._$AH&&t!==P,i&&(this._$AH=t);else{let c=t,a,l;for(t=n[0],a=0;a<n.length-1;a++)l=O(this,c[s+a],e,a),l===P&&(l=this._$AH[a]),i||=!K(l)||l!==this._$AH[a],l===d?t=d:t!==d&&(t+=(l??"")+n[a+1]),this._$AH[a]=l}i&&!o&&this.j(t)}j(t){t===d?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},ct=class extends T{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===d?void 0:t}},lt=class extends T{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==d)}},ut=class extends T{constructor(t,e,s,o,n){super(t,e,s,o,n),this.type=5}_$AI(t,e=this){if((t=O(this,t,e,0)??d)===P)return;let s=this._$AH,o=t===d&&s!==d||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==d&&(s===d||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)}},pt=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){O(this,t)}},ue={M:Tt,P:_,A:jt,C:1,L:le,R:at,D:ie,V:O,I:N,H:T,N:lt,U:ut,B:ct,F:pt},Le=Ot.litHtmlPolyfillSupport;Le?.(Q,N),(Ot.litHtmlVersions??=[]).push("3.3.0");var S=(r,t,e)=>{let s=e?.renderBefore??t,o=s._$litPart$;if(o===void 0){let n=e?.renderBefore??null;s._$litPart$=o=new N(t.insertBefore(Z(),n),n,void 0,e??{})}return o._$AI(r),o};var Ht=globalThis,R=class extends w{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=S(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return P}};R._$litElement$=!0,R.finalized=!0,Ht.litElementHydrateSupport?.({LitElement:R});var Ve=Ht.litElementPolyfillSupport;Ve?.({LitElement:R});(Ht.litElementVersions??=[]).push("4.2.0");function pe(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function ht(r,t={}){let{soft:e=!1,upgrade:s=!0}=t;for(let[o,n]of Object.entries(r)){let i=pe(o),c=customElements.get(i);e&&c||(customElements.define(i,n),s&&document.querySelectorAll(i).forEach(a=>{a.constructor===HTMLElement&&customElements.upgrade(a)}))}}function E(r,t=document){let e=t.querySelector(r);if(!e)throw new Error(`$1 ${r} not found`);return e}function qe(r,t=document){return Array.from(t.querySelectorAll(r))}E.maybe=(r,t=document)=>t.querySelector(r);E.all=qe;E.render=(r,...t)=>S(t,r);E.register=ht;var b=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 j=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(b.random(r))},string(r){return j.fromBytes(r)},bytes(r){return j.toBytes(r)}});var Nt=58,ft="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Rt=Object.freeze({fromBytes(r){let t=BigInt("0x"+j.fromBytes(r)),e="";for(;t>0;){let s=t%BigInt(Nt);t=t/BigInt(Nt),e=ft[Number(s)]+e}for(let s of r)if(s===0)e=ft[0]+e;else break;return e},toBytes(r){let t=BigInt(0);for(let i of r){let c=ft.indexOf(i);if(c===-1)throw new Error(`Invalid character '${i}' in base58 string`);t=t*BigInt(Nt)+BigInt(c)}let e=t.toString(16);e.length%2!==0&&(e="0"+e);let s=j.toBytes(e),o=0;for(let i of r)if(i===ft[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(r=32){return this.fromBytes(b.random(r))},string(r){return Rt.fromBytes(r)},bytes(r){return Rt.toBytes(r)}});var he=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(b.random(t))}};var zt=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(b.random(r))},string(r){return zt.fromBytes(r)},bytes(r){return zt.toBytes(r)}});var fe=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return fe.fromBytes(r)},bytes(r){return fe.toBytes(r)}});function dt(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 Dt=Object.freeze({set:r=>r!=null,unset: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 J(){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 z=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 de=(r=0)=>new Promise(t=>setTimeout(t,r));function We(r){return{map:t=>me(r,t),filter:t=>ye(r,t)}}We.pipe=Object.freeze({map:r=>(t=>me(t,r)),filter:r=>(t=>ye(t,r))});var me=(r,t)=>Object.fromEntries(Object.entries(r).map(([e,s])=>[e,t(s,e)])),ye=(r,t)=>Object.fromEntries(Object.entries(r).filter(([e,s])=>t(s,e)));function ge(){let r=new Set;function t(n){return r.add(n),()=>{r.delete(n)}}async function e(...n){await Promise.all([...r].map(i=>i(...n)))}async function s(){let{promise:n,resolve:i}=J(),c=t((...a)=>{i(a),c()});return n}function o(){r.clear()}return t.pub=e,t.sub=t,t.on=t,t.next=s,t.clear=o,e.pub=e,e.sub=t,e.on=t,e.next=s,e.clear=o,[e,t]}function mt(r){let t=ge()[1];return r&&t.sub(r),t}function It(r){let t=ge()[0];return r&&t.sub(r),t}function yt(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 Lt=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=mt(),this.#e.set(t,e)),e}},g=globalThis[Symbol.for("e280.tracker")]??=new Lt;var{I:fn}=ue;var be=r=>r.strings===void 0;var xe={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},bt=r=>(...t)=>({_$litDirective$:r,values:t}),gt=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 G=(r,t)=>{let e=r._$AN;if(e===void 0)return!1;for(let s of e)s._$AO?.(t,!1),G(s,t);return!0},xt=r=>{let t,e;do{if((t=r._$AM)===void 0)break;e=t._$AN,e.delete(r),r=t}while(e?.size===0)},$e=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),Ke(t)}};function Fe(r){this._$AN!==void 0?(xt(this),this._$AM=r,$e(this)):this._$AM=r}function Ze(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++)G(s[n],!1),xt(s[n]);else s!=null&&(G(s,!1),xt(s));else G(this,r)}var Ke=r=>{r.type==xe.CHILD&&(r._$AP??=Ze,r._$AQ??=Fe)},$t=class extends gt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),$e(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(G(this,t),xt(this))}setValue(t){if(be(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(){}};function we(r,t){for(let[e,s]of Object.entries(t))s===void 0||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 type ${e} is ${typeof s}`)}function wt(r,t){ot(r,Qe(t))}function Qe(r){let t=[];if(Array.isArray(r)){let e=new Set(r.flat(1/0).reverse());for(let s of e)t.unshift(H(s))}else r!==void 0&&t.push(H(r));return t}function Vt(r,t=r){let{seen:e,result:s}=g.observe(r),o=dt(0,t),n=[],i=()=>n.forEach(c=>c());for(let c of e){let a=g.subscribe(c,o);n.push(a)}return{result:s,dispose:i}}var Je={compare:(r,t)=>r===t};function D(r={}){return{...Je,...r}}var _t=class{sneak;constructor(t){this.sneak=t}get(){return g.notifyRead(this),this.sneak}get value(){return this.get()}},At=class extends _t{on=mt();dispose(){this.on.clear()}},Y=class extends At{_options;kind="signal";_lock=!1;constructor(t,e){super(t),this._options=e}async set(t){return!this._options.compare(this.sneak,t)&&await this.publish(t),t}get value(){return this.get()}set value(t){this.set(t)}async publish(t=this.get()){if(this._lock)throw new Error("forbid circularity");let e=Promise.resolve();try{this._lock=!0,this.sneak=t,e=Promise.all([g.notifyWrite(this),this.on.pub(t)])}finally{this._lock=!1}return await e,t}},X=class extends _t{_formula;_options;kind="lazy";_dirty=!1;_effect;constructor(t,e){super(void 0),this._formula=t,this._options=e}get(){if(!this._effect){let{result:t,dispose:e}=Vt(this._formula,()=>this._dirty=!0);this._effect=e,this.sneak=t}if(this._dirty){this._dirty=!1;let t=this._formula();!this._options.compare(this.sneak,t)&&(this.sneak=t,g.notifyWrite(this))}return super.get()}get value(){return this.get()}dispose(){this._effect&&this._effect()}},tt=class extends At{_effect;static make(t,e,s){let{result:o,dispose:n}=Vt(e,async()=>{let i=e();!s.compare(t.sneak,i)&&(t.sneak=i,await Promise.all([g.notifyWrite(t),t.on.pub(i)]))});return new this(o,n)}kind="derived";constructor(t,e){super(t),this._effect=e}get value(){return this.get()}dispose(){super.dispose(),this._effect()}};function _e(r,t={}){function e(){return e.value}let s=D(t),o=new X(r,s);return Object.setPrototypeOf(e,X.prototype),Object.assign(e,o),e}function Ae(r,t={}){function e(){return e.value}let s=D(t),o=tt.make(e,r,s);return Object.setPrototypeOf(e,tt.prototype),Object.assign(e,o),e}function I(r,t={}){function e(n){return n!==void 0?e.set(n):e.get()}let s=D(t),o=new Y(r,s);return Object.setPrototypeOf(e,Y.prototype),Object.assign(e,o),e}I.lazy=_e;I.derive=Ae;var M={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)=>M.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 U=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 fn(t){return this.promise(t())}static all(...t){let e=t.map(s=>s.pod);return M.all(...e)}signal;#t=0;#e=It();#r=It();constructor(t=["loading"]){this.signal=I(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(["loading"])}async setReady(t){await this.signal(["ready",t]),await this.#e(t)}async setError(t){await this.signal(["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 fn(t){return this.promise(t())}get pod(){return this.signal()}set pod(t){this.signal(t)}get status(){return this.signal()[0]}get value(){return M.value(this.signal())}get error(){return M.error(this.signal())}get isLoading(){return this.status==="loading"}get isReady(){return this.status==="ready"}get isError(){return this.status==="error"}require(){let t=this.signal();if(t[0]!=="ready")throw new Error("required value not ready");return t[1]}select(t){return M.select(this.signal(),t)}morph(t){return M.morph(this.pod,t)}};var vt=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 ve=(r,t)=>new Proxy(t,{get:(e,s)=>{let o=t[s],n=r.getAttribute(s);switch(o){case String:return n??void 0;case Number:return n!==null?Number(n):void 0;case Boolean:return n!==null;default:throw new Error(`invalid attribute type for "${s}"`)}},set:(e,s,o)=>{switch(t[s]){case String:return r.setAttribute(s,o),!0;case Number:return r.setAttribute(s,o.toString()),!0;case Boolean:return o?r.setAttribute(s,""):r.removeAttribute(s),!0;default:throw new Error(`invalid attribute type for "${s}"`)}}});function Se(r,t){let e=new MutationObserver(t);return e.observe(r,{attributes:!0}),()=>e.disconnect()}var qt=Symbol(),Wt=Symbol(),Ft=Symbol(),St=class{element;shadow;renderNow;render;#t=0;#e=0;#r=new z;#s=J();#o=new vt;[qt](t){this.#t++,this.#e=0,this.#s=J();let e=t();return this.#s.resolve(),e}[Wt](){this.#o.unmountAll()}[Ft](){this.#o.remountAll()}constructor(t,e,s,o){this.element=t,this.shadow=e,this.renderNow=s,this.render=o}get renderCount(){return this.#t}get rendered(){return this.#s.promise}name(t){this.once(()=>this.element.setAttribute("view",t))}styles(...t){this.once(()=>wt(this.shadow,t))}attrs(t){return this.mount(()=>Se(this.element,this.render)),this.once(()=>ve(this.element,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(()=>U.fn(s))}return e.fn=e,e.promise=s=>this.once(()=>U.promise(s)),e})();signal(t){return this.once(()=>I(t))}};var x=Ee({mode:"open"}),Zt=class extends HTMLElement{};ht({SlyView:Zt},{soft:!0,upgrade:!0});function Ee(r){function t(e){let s=i=>class extends $t{#t=i.getElement();#e=this.#t.attachShadow(r);#r=dt(0,()=>this.#i());#s=new z;#o;#n=new St(this.#t,this.#e,()=>this.#i(),this.#r);#a=(()=>{let a=e(this.#n);return this.#t.setAttribute("view",r.name??""),r.styles&&wt(this.#e,r.styles),a})();#i(){if(!this.#o||!this.isConnected)return;let{with:a,props:l}=this.#o;this.#n[qt](()=>{we(this.#t,a.attrs);let{result:h,seen:p}=g.observe(()=>this.#a(...l));S(h,this.#e);for(let y of p)this.#s.guarantee(y,()=>g.subscribe(y,async()=>this.#r()));i.isComponent||S(a.children,this.#t)})}render(a,l){return this.#o={with:a,props:l},this.#i(),i.isComponent?null:this.#t}disconnected(){this.#n[Wt]();for(let a of this.#s.values())a();this.#s.clear()}reconnected(){this.#n[Ft]()}},o=bt(s({getElement:()=>document.createElement(r.tag??"sly-view"),isComponent:!1}));function n(i){let c=(...a)=>o(i,a);return c.props=c,c.with=a=>n({...i,...a}),c.children=(...a)=>n({...i,children:a}),c.attrs=a=>n({...i,attrs:a}),c.attr=(a,l)=>n({...i,attrs:{...i.attrs,[a]:l}}),c.component=(...a)=>class extends HTMLElement{#t=bt(s({getElement:()=>this,isComponent:!0}));constructor(){super(),this.render(...a)}render(...l){this.isConnected&&S(this.#t(i,l),this)}},c}return n({attrs:{},children:null})}return t.view=t,t.settings=e=>Ee({...r,...e}),t.component=e=>t(s=>()=>e(s)).component(),t}var $=m`
|
|
3
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),se=/'/g,oe=/"/g,ae=/^(?:script|style|textarea|title)$/i,Ut=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),v=Ut(1),Dr=Ut(2),Ir=Ut(3),P=Symbol.for("lit-noChange"),d=Symbol.for("lit-nothing"),ne=new WeakMap,C=k.createTreeWalker(k,129);function ce(r,t){if(!Mt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return te!==void 0?te.createHTML(t):t}var le=(r,t)=>{let e=r.length-1,s=[],o,n=t===2?"<svg>":t===3?"<math>":"",i=F;for(let c=0;c<e;c++){let a=r[c],l,h,p=-1,y=0;for(;y<a.length&&(i.lastIndex=y,h=i.exec(a),h!==null);)y=i.lastIndex,i===F?h[1]==="!--"?i=ee:h[1]!==void 0?i=re:h[2]!==void 0?(ae.test(h[2])&&(o=RegExp("</"+h[2],"g")),i=B):h[3]!==void 0&&(i=B):i===B?h[0]===">"?(i=o??F,p=-1):h[1]===void 0?p=-2:(p=i.lastIndex-h[2].length,l=h[1],i=h[3]===void 0?B:h[3]==='"'?oe:se):i===oe||i===se?i=B:i===ee||i===re?i=F:(i=B,o=void 0);let A=i===B&&r[c+1].startsWith("/>")?" ":"";n+=i===F?a+Ie:p>=0?(s.push(l),a.slice(0,p)+Tt+a.slice(p)+_+A):a+_+(p===-2?c:A)}return[ce(r,n+(r[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]},Q=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]=le(t,e);if(this.el=r.createElement(l,s),C.currentNode=this.el.content,e===2||e===3){let p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(o=C.nextNode())!==null&&a.length<c;){if(o.nodeType===1){if(o.hasAttributes())for(let p of o.getAttributeNames())if(p.endsWith(Tt)){let y=h[i++],A=o.getAttribute(p).split(_),et=/([.?@])?(.*)/.exec(y);a.push({type:1,index:n,name:et[2],strings:A,ctor:et[1]==="."?ct:et[1]==="?"?lt:et[1]==="@"?ut:T}),o.removeAttribute(p)}else p.startsWith(_)&&(a.push({type:6,index:n}),o.removeAttribute(p));if(ae.test(o.tagName)){let p=o.textContent.split(_),y=p.length-1;if(y>0){o.textContent=it?it.emptyScript:"";for(let A=0;A<y;A++)o.append(p[A],Z()),C.nextNode(),a.push({type:2,index:++n});o.append(p[y],Z())}}}else if(o.nodeType===8)if(o.data===jt)a.push({type:2,index:n});else{let p=-1;for(;(p=o.data.indexOf(_,p+1))!==-1;)a.push({type:7,index:n}),p+=_.length-1}n++}}static createElement(t,e){let s=k.createElement("template");return s.innerHTML=t,s}};function O(r,t,e=r,s){if(t===P)return t;let o=s!==void 0?e._$Co?.[s]:e._$Cl,n=K(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=O(r,o._$AS(r,t.values),o,s)),t}var at=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??k).importNode(e,!0);C.currentNode=o;let n=C.nextNode(),i=0,c=0,a=s[0];for(;a!==void 0;){if(i===a.index){let l;a.type===2?l=new N(n,n.nextSibling,this,t):a.type===1?l=new a.ctor(n,a.name,a.strings,this,t):a.type===6&&(l=new pt(n,this,t)),this._$AV.push(l),a=s[++c]}i!==a?.index&&(n=C.nextNode(),i++)}return C.currentNode=k,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++}},N=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,o){this.type=2,this._$AH=d,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=O(this,t,e),K(t)?t===d||t==null||t===""?(this._$AH!==d&&this._$AR(),this._$AH=d):t!==this._$AH&&t!==P&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ie(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!==d&&K(this._$AH)?this._$AA.nextSibling.data=t:this.T(k.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=Q.createElement(ce(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===o)this._$AH.p(e);else{let n=new at(o,this),i=n.u(this.options);n.p(e),this.T(i),this._$AH=n}}_$AC(t){let e=ne.get(t.strings);return e===void 0&&ne.set(t.strings,e=new Q(t)),e}k(t){Mt(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(Z()),this.O(Z()),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))}},T=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,o,n){this.type=1,this._$AH=d,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=d}_$AI(t,e=this,s,o){let n=this.strings,i=!1;if(n===void 0)t=O(this,t,e,0),i=!K(t)||t!==this._$AH&&t!==P,i&&(this._$AH=t);else{let c=t,a,l;for(t=n[0],a=0;a<n.length-1;a++)l=O(this,c[s+a],e,a),l===P&&(l=this._$AH[a]),i||=!K(l)||l!==this._$AH[a],l===d?t=d:t!==d&&(t+=(l??"")+n[a+1]),this._$AH[a]=l}i&&!o&&this.j(t)}j(t){t===d?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},ct=class extends T{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===d?void 0:t}},lt=class extends T{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==d)}},ut=class extends T{constructor(t,e,s,o,n){super(t,e,s,o,n),this.type=5}_$AI(t,e=this){if((t=O(this,t,e,0)??d)===P)return;let s=this._$AH,o=t===d&&s!==d||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==d&&(s===d||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)}},pt=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){O(this,t)}},ue={M:Tt,P:_,A:jt,C:1,L:le,R:at,D:ie,V:O,I:N,H:T,N:lt,U:ut,B:ct,F:pt},Le=Ot.litHtmlPolyfillSupport;Le?.(Q,N),(Ot.litHtmlVersions??=[]).push("3.3.0");var S=(r,t,e)=>{let s=e?.renderBefore??t,o=s._$litPart$;if(o===void 0){let n=e?.renderBefore??null;s._$litPart$=o=new N(t.insertBefore(Z(),n),n,void 0,e??{})}return o._$AI(r),o};var Ht=globalThis,R=class extends w{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=S(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return P}};R._$litElement$=!0,R.finalized=!0,Ht.litElementHydrateSupport?.({LitElement:R});var Ve=Ht.litElementPolyfillSupport;Ve?.({LitElement:R});(Ht.litElementVersions??=[]).push("4.2.0");function pe(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function ht(r,t={}){let{soft:e=!1,upgrade:s=!0}=t;for(let[o,n]of Object.entries(r)){let i=pe(o),c=customElements.get(i);e&&c||(customElements.define(i,n),s&&document.querySelectorAll(i).forEach(a=>{a.constructor===HTMLElement&&customElements.upgrade(a)}))}}function E(r,t=document){let e=t.querySelector(r);if(!e)throw new Error(`$1 ${r} not found`);return e}function qe(r,t=document){return Array.from(t.querySelectorAll(r))}E.maybe=(r,t=document)=>t.querySelector(r);E.all=qe;E.render=(r,...t)=>S(t,r);E.register=ht;var b=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 j=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(b.random(r))},string(r){return j.fromBytes(r)},bytes(r){return j.toBytes(r)}});var Nt=58,ft="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Rt=Object.freeze({fromBytes(r){let t=BigInt("0x"+j.fromBytes(r)),e="";for(;t>0;){let s=t%BigInt(Nt);t=t/BigInt(Nt),e=ft[Number(s)]+e}for(let s of r)if(s===0)e=ft[0]+e;else break;return e},toBytes(r){let t=BigInt(0);for(let i of r){let c=ft.indexOf(i);if(c===-1)throw new Error(`Invalid character '${i}' in base58 string`);t=t*BigInt(Nt)+BigInt(c)}let e=t.toString(16);e.length%2!==0&&(e="0"+e);let s=j.toBytes(e),o=0;for(let i of r)if(i===ft[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(r=32){return this.fromBytes(b.random(r))},string(r){return Rt.fromBytes(r)},bytes(r){return Rt.toBytes(r)}});var he=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(b.random(t))}};var zt=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(b.random(r))},string(r){return zt.fromBytes(r)},bytes(r){return zt.toBytes(r)}});var fe=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return fe.fromBytes(r)},bytes(r){return fe.toBytes(r)}});function dt(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 Dt=Object.freeze({set:r=>r!=null,unset: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 J(){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 z=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 de=(r=0)=>new Promise(t=>setTimeout(t,r));function We(r){return{map:t=>me(r,t),filter:t=>ye(r,t)}}We.pipe=Object.freeze({map:r=>(t=>me(t,r)),filter:r=>(t=>ye(t,r))});var me=(r,t)=>Object.fromEntries(Object.entries(r).map(([e,s])=>[e,t(s,e)])),ye=(r,t)=>Object.fromEntries(Object.entries(r).filter(([e,s])=>t(s,e)));function ge(){let r=new Set;function t(n){return r.add(n),()=>{r.delete(n)}}async function e(...n){await Promise.all([...r].map(i=>i(...n)))}async function s(){let{promise:n,resolve:i}=J(),c=t((...a)=>{i(a),c()});return n}function o(){r.clear()}return t.pub=e,t.sub=t,t.on=t,t.next=s,t.clear=o,e.pub=e,e.sub=t,e.on=t,e.next=s,e.clear=o,[e,t]}function mt(r){let t=ge()[1];return r&&t.sub(r),t}function It(r){let t=ge()[0];return r&&t.sub(r),t}function yt(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 Lt=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=mt(),this.#e.set(t,e)),e}},g=globalThis[Symbol.for("e280.tracker")]??=new Lt;var{I:fn}=ue;var be=r=>r.strings===void 0;var xe={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},bt=r=>(...t)=>({_$litDirective$:r,values:t}),gt=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 G=(r,t)=>{let e=r._$AN;if(e===void 0)return!1;for(let s of e)s._$AO?.(t,!1),G(s,t);return!0},xt=r=>{let t,e;do{if((t=r._$AM)===void 0)break;e=t._$AN,e.delete(r),r=t}while(e?.size===0)},$e=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),Ke(t)}};function Fe(r){this._$AN!==void 0?(xt(this),this._$AM=r,$e(this)):this._$AM=r}function Ze(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++)G(s[n],!1),xt(s[n]);else s!=null&&(G(s,!1),xt(s));else G(this,r)}var Ke=r=>{r.type==xe.CHILD&&(r._$AP??=Ze,r._$AQ??=Fe)},$t=class extends gt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),$e(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(G(this,t),xt(this))}setValue(t){if(be(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(){}};function we(r,t){for(let[e,s]of Object.entries(t))s===void 0||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 type ${e} is ${typeof s}`)}function wt(r,t){ot(r,Qe(t))}function Qe(r){let t=[];if(Array.isArray(r)){let e=new Set(r.flat(1/0).reverse());for(let s of e)t.unshift(H(s))}else r!==void 0&&t.push(H(r));return t}function Vt(r,t=r){let{seen:e,result:s}=g.observe(r),o=dt(0,t),n=[],i=()=>n.forEach(c=>c());for(let c of e){let a=g.subscribe(c,o);n.push(a)}return{result:s,dispose:i}}var Je={compare:(r,t)=>r===t};function D(r={}){return{...Je,...r}}var _t=class{sneak;constructor(t){this.sneak=t}get(){return g.notifyRead(this),this.sneak}get value(){return this.get()}},At=class extends _t{on=mt();dispose(){this.on.clear()}},Y=class extends At{_options;kind="signal";_lock=!1;constructor(t,e){super(t),this._options=e}async set(t){return!this._options.compare(this.sneak,t)&&await this.publish(t),t}get value(){return this.get()}set value(t){this.set(t)}async publish(t=this.get()){if(this._lock)throw new Error("forbid circularity");let e=Promise.resolve();try{this._lock=!0,this.sneak=t,e=Promise.all([g.notifyWrite(this),this.on.pub(t)])}finally{this._lock=!1}return await e,t}},X=class extends _t{_formula;_options;kind="lazy";_dirty=!1;_effect;constructor(t,e){super(void 0),this._formula=t,this._options=e}get(){if(!this._effect){let{result:t,dispose:e}=Vt(this._formula,()=>this._dirty=!0);this._effect=e,this.sneak=t}if(this._dirty){this._dirty=!1;let t=this._formula();!this._options.compare(this.sneak,t)&&(this.sneak=t,g.notifyWrite(this))}return super.get()}get value(){return this.get()}dispose(){this._effect&&this._effect()}},tt=class extends At{_effect;static make(t,e,s){let{result:o,dispose:n}=Vt(e,async()=>{let i=e();!s.compare(t.sneak,i)&&(t.sneak=i,await Promise.all([g.notifyWrite(t),t.on.pub(i)]))});return new this(o,n)}kind="derived";constructor(t,e){super(t),this._effect=e}get value(){return this.get()}dispose(){super.dispose(),this._effect()}};function _e(r,t={}){function e(){return e.value}let s=D(t),o=tt.make(e,r,s);return Object.setPrototypeOf(e,tt.prototype),Object.assign(e,o),e}function Ae(r,t={}){function e(){return e.value}let s=D(t),o=new X(r,s);return Object.setPrototypeOf(e,X.prototype),Object.assign(e,o),e}function I(r,t={}){function e(n){return n!==void 0?e.set(n):e.get()}let s=D(t),o=new Y(r,s);return Object.setPrototypeOf(e,Y.prototype),Object.assign(e,o),e}I.lazy=Ae;I.derive=_e;var M={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)=>M.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 U=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 fn(t){return this.promise(t())}static all(...t){let e=t.map(s=>s.pod);return M.all(...e)}signal;#t=0;#e=It();#r=It();constructor(t=["loading"]){this.signal=I(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(["loading"])}async setReady(t){await this.signal(["ready",t]),await this.#e(t)}async setError(t){await this.signal(["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 fn(t){return this.promise(t())}get pod(){return this.signal()}set pod(t){this.signal(t)}get status(){return this.signal()[0]}get value(){return M.value(this.signal())}get error(){return M.error(this.signal())}get isLoading(){return this.status==="loading"}get isReady(){return this.status==="ready"}get isError(){return this.status==="error"}require(){let t=this.signal();if(t[0]!=="ready")throw new Error("required value not ready");return t[1]}select(t){return M.select(this.signal(),t)}morph(t){return M.morph(this.pod,t)}};var vt=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 ve=(r,t)=>new Proxy(t,{get:(e,s)=>{let o=t[s],n=r.getAttribute(s);switch(o){case String:return n??void 0;case Number:return n!==null?Number(n):void 0;case Boolean:return n!==null;default:throw new Error(`invalid attribute type for "${s}"`)}},set:(e,s,o)=>{switch(t[s]){case String:return r.setAttribute(s,o),!0;case Number:return r.setAttribute(s,o.toString()),!0;case Boolean:return o?r.setAttribute(s,""):r.removeAttribute(s),!0;default:throw new Error(`invalid attribute type for "${s}"`)}}});function Se(r,t){let e=new MutationObserver(t);return e.observe(r,{attributes:!0}),()=>e.disconnect()}var qt=Symbol(),Wt=Symbol(),Ft=Symbol(),St=class{element;shadow;renderNow;render;#t=0;#e=0;#r=new z;#s=J();#o=new vt;[qt](t){this.#t++,this.#e=0,this.#s=J();let e=t();return this.#s.resolve(),e}[Wt](){this.#o.unmountAll()}[Ft](){this.#o.remountAll()}constructor(t,e,s,o){this.element=t,this.shadow=e,this.renderNow=s,this.render=o}get renderCount(){return this.#t}get rendered(){return this.#s.promise}name(t){this.once(()=>this.element.setAttribute("view",t))}styles(...t){this.once(()=>wt(this.shadow,t))}css(...t){return this.styles(...t)}attrs(t){return this.mount(()=>Se(this.element,this.render)),this.once(()=>ve(this.element,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(()=>U.fn(s))}return e.fn=e,e.promise=s=>this.once(()=>U.promise(s)),e})();signal(t){return this.once(()=>I(t))}};var x=Ee({mode:"open"}),Zt=class extends HTMLElement{};ht({SlyView:Zt},{soft:!0,upgrade:!0});function Ee(r){function t(e){let s=i=>class extends $t{#t=i.getElement();#e=this.#t.attachShadow(r);#r=dt(0,()=>this.#i());#s=new z;#o;#n=new St(this.#t,this.#e,()=>this.#i(),this.#r);#a=(()=>{let a=e(this.#n);return this.#t.setAttribute("view",r.name??""),r.styles&&wt(this.#e,r.styles),a})();#i(){if(!this.#o||!this.isConnected)return;let{with:a,props:l}=this.#o;this.#n[qt](()=>{we(this.#t,a.attrs);let{result:h,seen:p}=g.observe(()=>this.#a(...l));S(h,this.#e);for(let y of p)this.#s.guarantee(y,()=>g.subscribe(y,async()=>this.#r()));i.isComponent||S(a.children,this.#t)})}render(a,l){return this.#o={with:a,props:l},this.#i(),i.isComponent?null:this.#t}disconnected(){this.#n[Wt]();for(let a of this.#s.values())a();this.#s.clear()}reconnected(){this.#n[Ft]()}},o=bt(s({getElement:()=>document.createElement(r.tag??"sly-view"),isComponent:!1}));function n(i){let c=(...a)=>o(i,a);return c.props=c,c.with=a=>n({...i,...a}),c.children=(...a)=>n({...i,children:a}),c.attrs=a=>n({...i,attrs:a}),c.attr=(a,l)=>n({...i,attrs:{...i.attrs,[a]:l}}),c.component=(...a)=>class extends HTMLElement{#t=bt(s({getElement:()=>this,isComponent:!0}));constructor(){super(),this.render(...a)}render(...l){this.isConnected&&S(this.#t(i,l),this)}},c}return n({attrs:{},children:null})}return t.view=t,t.settings=e=>Ee({...r,...e}),t.component=e=>t(s=>()=>e(s)).component(),t}var $=m`
|
|
4
4
|
@layer reset {
|
|
5
5
|
* {
|
|
6
6
|
margin: 0;
|