@benev/slate
Advanced tools
Comparing version 0.0.0-dev.7 to 0.0.0-dev.8
{ | ||
"name": "@benev/slate", | ||
"version": "0.0.0-dev.7", | ||
"version": "0.0.0-dev.8", | ||
"description": "frontend web stuff", | ||
@@ -34,4 +34,4 @@ "license": "MIT", | ||
"npm-run-all": "^4.1.5", | ||
"rollup": "^4.1.1", | ||
"terser": "^5.21.0", | ||
"rollup": "^4.1.4", | ||
"terser": "^5.22.0", | ||
"typescript": "^5.2.2" | ||
@@ -38,0 +38,0 @@ }, |
@@ -10,3 +10,3 @@ | ||
export abstract class GoldElement extends MetallicElement implements BaseElement { | ||
export class GoldElement extends MetallicElement implements BaseElement { | ||
static styles?: CSSResultGroup | ||
@@ -36,3 +36,3 @@ | ||
abstract render(): TemplateResult | void | ||
render(): TemplateResult | void {} | ||
@@ -39,0 +39,0 @@ #render_debounced = debounce(0, () => { |
@@ -9,4 +9,3 @@ | ||
export abstract class SilverElement extends MetallicElement implements BaseElement { | ||
export class SilverElement extends MetallicElement implements BaseElement { | ||
#init? = explode_promise<void>() | ||
@@ -26,3 +25,3 @@ #wait = this.#init!.promise | ||
abstract render(): TemplateResult | void | ||
render(): TemplateResult | void {} | ||
@@ -29,0 +28,0 @@ #render_debounced = debounce(0, () => { |
@@ -179,2 +179,39 @@ | ||
async "nested rendering doesn't cause circular issues"() { | ||
const flat = new Flat() | ||
const state = flat.state({outer: 0, inner: 0}) | ||
let outerCalls = 0 | ||
let innerCalls = 0 | ||
const miniview = (collector: () => void, responder: () => void) => { | ||
flat.manual({ | ||
debounce: true, | ||
discover: false, | ||
collector, | ||
responder, | ||
}) | ||
} | ||
miniview( | ||
() => { | ||
void state.outer | ||
miniview( | ||
() => void state.inner, | ||
() => innerCalls++, | ||
) | ||
}, | ||
() => outerCalls++ | ||
) | ||
state.outer++ | ||
await flat.wait | ||
expect(outerCalls).equals(1) | ||
expect(innerCalls).equals(0) | ||
state.inner++ | ||
await flat.wait | ||
expect(outerCalls).equals(1) | ||
expect(innerCalls).equals(1) | ||
}, | ||
async "stop a reaction"() { | ||
@@ -181,0 +218,0 @@ const flat = new Flat() |
@@ -7,21 +7,16 @@ | ||
export class Recorder { | ||
#recording?: Recording | ||
#recordings: Recording[] = [] | ||
record(fun: Fun) { | ||
this.#recording = make_map() | ||
const recording: Recording = make_map() | ||
this.#recordings.push(recording) | ||
fun() | ||
const recording = this.#recording | ||
this.#recording = undefined | ||
this.#recordings.pop() | ||
return recording | ||
} | ||
entries() { | ||
return this.#recording | ||
? [...this.#recording.entries()] | ||
: [] | ||
} | ||
record_that_key_was_accessed(state: {}, key: string) { | ||
if (this.#recording) { | ||
const keyset = maptool(this.#recording).grab(state, make_set) | ||
const recording = this.#recordings.at(-1) | ||
if (recording) { | ||
const keyset = maptool(recording).grab(state, make_set) | ||
keyset.add(key) | ||
@@ -28,0 +23,0 @@ } |
@@ -16,2 +16,4 @@ | ||
export * from "./shiny/parts/use/tailored.js" | ||
export * from "./shiny/parts/use/parts/use.js" | ||
export * from "./shiny/carbon.js" | ||
@@ -42,1 +44,16 @@ export * from "./shiny/context.js" | ||
export { | ||
CSSResultGroup, | ||
CSSResult, | ||
CSSResultOrNative, | ||
CSSResultArray, | ||
render, | ||
TemplateResult, | ||
SVGTemplateResult, | ||
RenderOptions, | ||
Disconnectable, | ||
} from "lit" | ||
export {AsyncDirective} from "lit/async-directive.js" | ||
export {DirectiveClass, DirectiveResult, PartInfo} from "lit/directive.js" | ||
import {CSSResultGroup, css} from "lit" | ||
import {Use} from "./parts/use.js" | ||
import {Context} from "./context.js" | ||
import {UseGold} from "./parts/use_gold.js" | ||
import {GoldElement} from "../element/gold.js" | ||
import {UseCarbon} from "./parts/use/tailored.js" | ||
import {setup_reactivity} from "./parts/setup_reactivity.js" | ||
@@ -22,3 +21,3 @@ import {ShadowSettings, CarbonRenderer} from "./parts/types.js" | ||
#use = new UseGold( | ||
#use = new UseCarbon( | ||
this as GoldElement, | ||
@@ -30,3 +29,3 @@ this.root, | ||
#rend = Use.wrap(this.#use, () => renderer(this.#use)) | ||
#rend = UseCarbon.wrap(this.#use, () => renderer(this.#use)) | ||
@@ -45,3 +44,3 @@ #render_with_reactivity = setup_reactivity<[]>( | ||
super.connectedCallback() | ||
Use.reconnect(this.#use) | ||
UseCarbon.reconnect(this.#use) | ||
} | ||
@@ -51,6 +50,6 @@ | ||
super.disconnectedCallback() | ||
Use.disconnect(this.#use) | ||
UseCarbon.disconnect(this.#use) | ||
} | ||
} | ||
} as typeof GoldElement | ||
)) | ||
@@ -5,6 +5,5 @@ | ||
import {Use} from "./parts/use.js" | ||
import {Context} from "./context.js" | ||
import {make_view_root} from "./parts/root.js" | ||
import {UseShadow} from "./parts/use_shadow.js" | ||
import {UseObsidian} from "./parts/use/tailored.js" | ||
import {debounce} from "../tools/debounce/debounce.js" | ||
@@ -23,3 +22,3 @@ import {apply_details} from "./parts/apply_details.js" | ||
obsidian_custom_lit_directive(class extends AsyncDirective { | ||
obsidian_custom_lit_directive<P>(class extends AsyncDirective { | ||
#input?: ObsidianInput<P> | ||
@@ -39,3 +38,3 @@ #root = make_view_root( | ||
#use = new UseShadow( | ||
#use = new UseObsidian( | ||
this.#root.container, | ||
@@ -47,3 +46,3 @@ this.#root.shadow, | ||
#rend = Use.wrap(this.#use, renderer(this.#use)) | ||
#rend = UseObsidian.wrap(this.#use, renderer(this.#use)) | ||
@@ -70,7 +69,7 @@ #render_with_reactivity = setup_reactivity<P>( | ||
reconnected() { | ||
Use.reconnect(this.#use) | ||
UseObsidian.reconnect(this.#use) | ||
} | ||
disconnected() { | ||
Use.disconnect(this.#use) | ||
UseObsidian.disconnect(this.#use) | ||
} | ||
@@ -77,0 +76,0 @@ }) |
import {Use} from "./parts/use.js" | ||
import {Context} from "./context.js" | ||
import {UseSilver} from "./parts/use_silver.js" | ||
import {OxygenRenderer} from "./parts/types.js" | ||
import {UseOxygen} from "./parts/use/tailored.js" | ||
import {SilverElement} from "../element/silver.js" | ||
@@ -14,3 +13,3 @@ import {setup_reactivity} from "./parts/setup_reactivity.js" | ||
class extends SilverElement { | ||
#use = new UseSilver( | ||
#use = new UseOxygen( | ||
this as SilverElement, | ||
@@ -21,3 +20,3 @@ () => void this.requestUpdate(), | ||
#rend = Use.wrap(this.#use, () => renderer(this.#use)) | ||
#rend = UseOxygen.wrap(this.#use, () => renderer(this.#use)) | ||
@@ -36,3 +35,3 @@ #render_with_reactivity = setup_reactivity<[]>( | ||
super.connectedCallback() | ||
Use.reconnect(this.#use) | ||
UseOxygen.reconnect(this.#use) | ||
} | ||
@@ -42,3 +41,3 @@ | ||
super.disconnectedCallback() | ||
Use.disconnect(this.#use) | ||
UseOxygen.disconnect(this.#use) | ||
} | ||
@@ -45,0 +44,0 @@ } |
import {ObsidianMeta} from "./types.js" | ||
import {DirectiveClass, DirectiveResult} from "lit/async-directive.js" | ||
import {DirectiveResult} from "lit/async-directive.js" | ||
export const obsidian_custom_lit_directive = ( | ||
<C extends DirectiveClass, P extends any[]>(c: C) => ( | ||
(props: P, meta: ObsidianMeta = {}): DirectiveResult<C> => ({ | ||
<P extends any[]>(c: any) => ( | ||
(props: P, meta: ObsidianMeta = {}): DirectiveResult<any> => ({ | ||
['_$litDirective$']: c, | ||
@@ -9,0 +9,0 @@ values: [{meta, props}], |
@@ -11,12 +11,12 @@ | ||
let stop_cues: (() => void) | undefined = undefined | ||
let stop_signals: (() => void) | undefined = undefined | ||
let stop_flat: (() => void) | undefined = undefined | ||
function render_and_track_cues(...props: P) { | ||
if (stop_cues) | ||
stop_cues() | ||
function render_and_track_signals(...props: P) { | ||
if (stop_signals) | ||
stop_signals() | ||
let result: TemplateResult | void = undefined | ||
stop_cues = context.tower.track( | ||
stop_signals = context.tower.track( | ||
() => { result = render(...props) }, | ||
@@ -38,3 +38,3 @@ rerender, | ||
discover: false, | ||
collector: () => { result = render_and_track_cues(...props) }, | ||
collector: () => { result = render_and_track_signals(...props) }, | ||
responder: rerender, | ||
@@ -41,0 +41,0 @@ }) |
import {CSSResultGroup, TemplateResult} from "lit" | ||
import {DirectiveResult} from "lit/async-directive.js" | ||
import {CSSResult, CSSResultGroup, TemplateResult} from "lit" | ||
import {Use} from "./use.js" | ||
import {Context} from "../context.js" | ||
import {UseGold} from "./use_gold.js" | ||
import {UseShadow} from "./use_shadow.js" | ||
import {UseSilver} from "./use_silver.js" | ||
import {UseCarbon, UseObsidian, UseOxygen, UseQuartz} from "./use/tailored.js" | ||
export type QuartzRenderer<C extends Context, P extends any[]> = ( | ||
(use: Use<C>) => (...props: P) => (TemplateResult | void) | ||
(use: UseQuartz<C>) => (...props: P) => (TemplateResult | void) | ||
) | ||
export type ObsidianRenderer<C extends Context, P extends any[]> = ( | ||
(use: UseShadow<C, HTMLElement>) => (...props: P) => (TemplateResult | void) | ||
(use: UseObsidian<C, HTMLElement>) => (...props: P) => (TemplateResult | void) | ||
) | ||
export type OxygenRenderer<C extends Context> = ( | ||
(use: UseSilver<C>) => (TemplateResult | void) | ||
(use: UseOxygen<C>) => (TemplateResult | void) | ||
) | ||
export type CarbonRenderer<C extends Context> = ( | ||
(use: UseGold<C>) => (TemplateResult | void) | ||
(use: UseCarbon<C>) => (TemplateResult | void) | ||
) | ||
export type QuartzView<P extends any[]> = ( | ||
(...props: P) => DirectiveResult<any> | ||
) | ||
export type ObsidianView<P extends any[]> = ( | ||
(props: P, meta?: ObsidianMeta) => DirectiveResult<any> | ||
) | ||
export type ShadowAttrs = Partial<{ | ||
@@ -46,5 +52,5 @@ class: string | ||
name?: string | ||
styles?: CSSResultGroup | ||
styles?: CSSResultGroup | CSSResult | ||
auto_exportparts?: boolean | ||
} | ||
import {AsyncDirective, directive} from "lit/async-directive.js" | ||
import {AsyncDirective, DirectiveResult, directive} from "lit/async-directive.js" | ||
import {Use} from "./parts/use.js" | ||
import {Context} from "./context.js" | ||
import {QuartzRenderer} from "./parts/types.js" | ||
import {UseQuartz} from "./parts/use/tailored.js" | ||
import {debounce} from "../tools/debounce/debounce.js" | ||
@@ -20,4 +20,4 @@ import {setup_reactivity} from "./parts/setup_reactivity.js" | ||
}) | ||
#use = new Use(this.#rerender, context) | ||
#rend = Use.wrap(this.#use, renderer(this.#use)) | ||
#use = new UseQuartz(this.#rerender, context) | ||
#rend = UseQuartz.wrap(this.#use, renderer(this.#use)) | ||
@@ -36,10 +36,10 @@ #render_with_reactivity = setup_reactivity<P>( | ||
reconnected() { | ||
Use.reconnect(this.#use) | ||
UseQuartz.reconnect(this.#use) | ||
} | ||
disconnected() { | ||
Use.disconnect(this.#use) | ||
UseQuartz.disconnect(this.#use) | ||
} | ||
}) | ||
}) as (...props: P) => DirectiveResult<any> | ||
) | ||
@@ -56,3 +56,3 @@ | ||
throw new SignalCircularError( | ||
"you can't set a cue in a cue's subscription listener (infinite loop forbidden)" | ||
"you can't set a signal in a signal's subscription listener (infinite loop forbidden)" | ||
) | ||
@@ -59,0 +59,0 @@ this.#value = s |
@@ -1,351 +0,1 @@ | ||
export declare const SlateCarbon: { | ||
new (): { | ||
[x: string]: any; | ||
"__#21@#use": import("../../shiny/parts/use_gold.js").UseGold<import("../frontend.js").DemoContext>; | ||
"__#21@#rend": () => void | import("lit-html").TemplateResult; | ||
"__#21@#render_with_reactivity": () => void | import("lit-html").TemplateResult; | ||
render(): void | import("lit-html").TemplateResult; | ||
connectedCallback(): void; | ||
disconnectedCallback(): void; | ||
"__#16@#root": ShadowRoot; | ||
"__#16@#init"?: { | ||
promise: Promise<void>; | ||
resolve: (value: void) => void; | ||
reject: (reason: any) => void; | ||
} | undefined; | ||
"__#16@#wait": Promise<void>; | ||
init(): void; | ||
readonly root: ShadowRoot; | ||
readonly updateComplete: Promise<boolean>; | ||
"__#16@#render_debounced": import("../../tools/debounce/types.js").DebounceReturn<() => void>; | ||
requestUpdate(): Promise<void>; | ||
"__#15@#setups": Set<() => () => void>; | ||
"__#15@#setdowns": Set<() => void>; | ||
register_setup(setup: () => () => void): void; | ||
setup(): () => void; | ||
accessKey: string; | ||
readonly accessKeyLabel: string; | ||
autocapitalize: string; | ||
dir: string; | ||
draggable: boolean; | ||
hidden: boolean; | ||
inert: boolean; | ||
innerText: string; | ||
lang: string; | ||
readonly offsetHeight: number; | ||
readonly offsetLeft: number; | ||
readonly offsetParent: Element | null; | ||
readonly offsetTop: number; | ||
readonly offsetWidth: number; | ||
outerText: string; | ||
popover: string | null; | ||
spellcheck: boolean; | ||
title: string; | ||
translate: boolean; | ||
attachInternals(): ElementInternals; | ||
click(): void; | ||
hidePopover(): void; | ||
showPopover(): void; | ||
togglePopover(force?: boolean | undefined): void; | ||
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void; | ||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void; | ||
removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void; | ||
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void; | ||
readonly attributes: NamedNodeMap; | ||
readonly classList: DOMTokenList; | ||
className: string; | ||
readonly clientHeight: number; | ||
readonly clientLeft: number; | ||
readonly clientTop: number; | ||
readonly clientWidth: number; | ||
id: string; | ||
readonly localName: string; | ||
readonly namespaceURI: string | null; | ||
onfullscreenchange: ((this: Element, ev: Event) => any) | null; | ||
onfullscreenerror: ((this: Element, ev: Event) => any) | null; | ||
outerHTML: string; | ||
readonly ownerDocument: Document; | ||
readonly part: DOMTokenList; | ||
readonly prefix: string | null; | ||
readonly scrollHeight: number; | ||
scrollLeft: number; | ||
scrollTop: number; | ||
readonly scrollWidth: number; | ||
readonly shadowRoot: ShadowRoot | null; | ||
slot: string; | ||
readonly tagName: string; | ||
attachShadow(init: ShadowRootInit): ShadowRoot; | ||
checkVisibility(options?: CheckVisibilityOptions | undefined): boolean; | ||
closest<K_2 extends keyof HTMLElementTagNameMap>(selector: K_2): HTMLElementTagNameMap[K_2] | null; | ||
closest<K_3 extends keyof SVGElementTagNameMap>(selector: K_3): SVGElementTagNameMap[K_3] | null; | ||
closest<K_4 extends keyof MathMLElementTagNameMap>(selector: K_4): MathMLElementTagNameMap[K_4] | null; | ||
closest<E extends Element = Element>(selectors: string): E | null; | ||
computedStyleMap(): StylePropertyMapReadOnly; | ||
getAttribute(qualifiedName: string): string | null; | ||
getAttributeNS(namespace: string | null, localName: string): string | null; | ||
getAttributeNames(): string[]; | ||
getAttributeNode(qualifiedName: string): Attr | null; | ||
getAttributeNodeNS(namespace: string | null, localName: string): Attr | null; | ||
getBoundingClientRect(): DOMRect; | ||
getClientRects(): DOMRectList; | ||
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>; | ||
getElementsByTagName<K_5 extends keyof HTMLElementTagNameMap>(qualifiedName: K_5): HTMLCollectionOf<HTMLElementTagNameMap[K_5]>; | ||
getElementsByTagName<K_6 extends keyof SVGElementTagNameMap>(qualifiedName: K_6): HTMLCollectionOf<SVGElementTagNameMap[K_6]>; | ||
getElementsByTagName<K_7 extends keyof MathMLElementTagNameMap>(qualifiedName: K_7): HTMLCollectionOf<MathMLElementTagNameMap[K_7]>; | ||
getElementsByTagName<K_8 extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K_8): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K_8]>; | ||
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>; | ||
getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>; | ||
hasAttribute(qualifiedName: string): boolean; | ||
hasAttributeNS(namespace: string | null, localName: string): boolean; | ||
hasAttributes(): boolean; | ||
hasPointerCapture(pointerId: number): boolean; | ||
insertAdjacentElement(where: InsertPosition, element: Element): Element | null; | ||
insertAdjacentHTML(position: InsertPosition, text: string): void; | ||
insertAdjacentText(where: InsertPosition, data: string): void; | ||
matches(selectors: string): boolean; | ||
releasePointerCapture(pointerId: number): void; | ||
removeAttribute(qualifiedName: string): void; | ||
removeAttributeNS(namespace: string | null, localName: string): void; | ||
removeAttributeNode(attr: Attr): Attr; | ||
requestFullscreen(options?: FullscreenOptions | undefined): Promise<void>; | ||
requestPointerLock(): void; | ||
scroll(options?: ScrollToOptions | undefined): void; | ||
scroll(x: number, y: number): void; | ||
scrollBy(options?: ScrollToOptions | undefined): void; | ||
scrollBy(x: number, y: number): void; | ||
scrollIntoView(arg?: boolean | ScrollIntoViewOptions | undefined): void; | ||
scrollTo(options?: ScrollToOptions | undefined): void; | ||
scrollTo(x: number, y: number): void; | ||
setAttribute(qualifiedName: string, value: string): void; | ||
setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void; | ||
setAttributeNode(attr: Attr): Attr | null; | ||
setAttributeNodeNS(attr: Attr): Attr | null; | ||
setPointerCapture(pointerId: number): void; | ||
toggleAttribute(qualifiedName: string, force?: boolean | undefined): boolean; | ||
webkitMatchesSelector(selectors: string): boolean; | ||
readonly baseURI: string; | ||
readonly childNodes: NodeListOf<ChildNode>; | ||
readonly firstChild: ChildNode | null; | ||
readonly isConnected: boolean; | ||
readonly lastChild: ChildNode | null; | ||
readonly nextSibling: ChildNode | null; | ||
readonly nodeName: string; | ||
readonly nodeType: number; | ||
nodeValue: string | null; | ||
readonly parentElement: HTMLElement | null; | ||
readonly parentNode: ParentNode | null; | ||
readonly previousSibling: ChildNode | null; | ||
textContent: string | null; | ||
appendChild<T extends Node>(node: T): T; | ||
cloneNode(deep?: boolean | undefined): Node; | ||
compareDocumentPosition(other: Node): number; | ||
contains(other: Node | null): boolean; | ||
getRootNode(options?: GetRootNodeOptions | undefined): Node; | ||
hasChildNodes(): boolean; | ||
insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1; | ||
isDefaultNamespace(namespace: string | null): boolean; | ||
isEqualNode(otherNode: Node | null): boolean; | ||
isSameNode(otherNode: Node | null): boolean; | ||
lookupNamespaceURI(prefix: string | null): string | null; | ||
lookupPrefix(namespace: string | null): string | null; | ||
normalize(): void; | ||
removeChild<T_2 extends Node>(child: T_2): T_2; | ||
replaceChild<T_3 extends Node>(node: Node, child: T_3): T_3; | ||
readonly ELEMENT_NODE: 1; | ||
readonly ATTRIBUTE_NODE: 2; | ||
readonly TEXT_NODE: 3; | ||
readonly CDATA_SECTION_NODE: 4; | ||
readonly ENTITY_REFERENCE_NODE: 5; | ||
readonly ENTITY_NODE: 6; | ||
readonly PROCESSING_INSTRUCTION_NODE: 7; | ||
readonly COMMENT_NODE: 8; | ||
readonly DOCUMENT_NODE: 9; | ||
readonly DOCUMENT_TYPE_NODE: 10; | ||
readonly DOCUMENT_FRAGMENT_NODE: 11; | ||
readonly NOTATION_NODE: 12; | ||
readonly DOCUMENT_POSITION_DISCONNECTED: 1; | ||
readonly DOCUMENT_POSITION_PRECEDING: 2; | ||
readonly DOCUMENT_POSITION_FOLLOWING: 4; | ||
readonly DOCUMENT_POSITION_CONTAINS: 8; | ||
readonly DOCUMENT_POSITION_CONTAINED_BY: 16; | ||
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32; | ||
dispatchEvent(event: Event): boolean; | ||
ariaAtomic: string | null; | ||
ariaAutoComplete: string | null; | ||
ariaBusy: string | null; | ||
ariaChecked: string | null; | ||
ariaColCount: string | null; | ||
ariaColIndex: string | null; | ||
ariaColSpan: string | null; | ||
ariaCurrent: string | null; | ||
ariaDisabled: string | null; | ||
ariaExpanded: string | null; | ||
ariaHasPopup: string | null; | ||
ariaHidden: string | null; | ||
ariaInvalid: string | null; | ||
ariaKeyShortcuts: string | null; | ||
ariaLabel: string | null; | ||
ariaLevel: string | null; | ||
ariaLive: string | null; | ||
ariaModal: string | null; | ||
ariaMultiLine: string | null; | ||
ariaMultiSelectable: string | null; | ||
ariaOrientation: string | null; | ||
ariaPlaceholder: string | null; | ||
ariaPosInSet: string | null; | ||
ariaPressed: string | null; | ||
ariaReadOnly: string | null; | ||
ariaRequired: string | null; | ||
ariaRoleDescription: string | null; | ||
ariaRowCount: string | null; | ||
ariaRowIndex: string | null; | ||
ariaRowSpan: string | null; | ||
ariaSelected: string | null; | ||
ariaSetSize: string | null; | ||
ariaSort: string | null; | ||
ariaValueMax: string | null; | ||
ariaValueMin: string | null; | ||
ariaValueNow: string | null; | ||
ariaValueText: string | null; | ||
role: string | null; | ||
animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions | undefined): Animation; | ||
getAnimations(options?: GetAnimationsOptions | undefined): Animation[]; | ||
after(...nodes: (string | Node)[]): void; | ||
before(...nodes: (string | Node)[]): void; | ||
remove(): void; | ||
replaceWith(...nodes: (string | Node)[]): void; | ||
innerHTML: string; | ||
readonly nextElementSibling: Element | null; | ||
readonly previousElementSibling: Element | null; | ||
readonly childElementCount: number; | ||
readonly children: HTMLCollection; | ||
readonly firstElementChild: Element | null; | ||
readonly lastElementChild: Element | null; | ||
append(...nodes: (string | Node)[]): void; | ||
prepend(...nodes: (string | Node)[]): void; | ||
querySelector<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): HTMLElementTagNameMap[K_9] | null; | ||
querySelector<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): SVGElementTagNameMap[K_10] | null; | ||
querySelector<K_11 extends keyof MathMLElementTagNameMap>(selectors: K_11): MathMLElementTagNameMap[K_11] | null; | ||
querySelector<K_12 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_12): HTMLElementDeprecatedTagNameMap[K_12] | null; | ||
querySelector<E_1 extends Element = Element>(selectors: string): E_1 | null; | ||
querySelectorAll<K_13 extends keyof HTMLElementTagNameMap>(selectors: K_13): NodeListOf<HTMLElementTagNameMap[K_13]>; | ||
querySelectorAll<K_14 extends keyof SVGElementTagNameMap>(selectors: K_14): NodeListOf<SVGElementTagNameMap[K_14]>; | ||
querySelectorAll<K_15 extends keyof MathMLElementTagNameMap>(selectors: K_15): NodeListOf<MathMLElementTagNameMap[K_15]>; | ||
querySelectorAll<K_16 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_16): NodeListOf<HTMLElementDeprecatedTagNameMap[K_16]>; | ||
querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>; | ||
replaceChildren(...nodes: (string | Node)[]): void; | ||
readonly assignedSlot: HTMLSlotElement | null; | ||
readonly attributeStyleMap: StylePropertyMap; | ||
readonly style: CSSStyleDeclaration; | ||
contentEditable: string; | ||
enterKeyHint: string; | ||
inputMode: string; | ||
readonly isContentEditable: boolean; | ||
onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; | ||
onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null; | ||
onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; | ||
oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onerror: OnErrorEventHandler; | ||
onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; | ||
onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null; | ||
ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onload: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent<EventTarget>) => any) | null; | ||
onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; | ||
onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null; | ||
onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null; | ||
onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null; | ||
autofocus: boolean; | ||
readonly dataset: DOMStringMap; | ||
nonce?: string | undefined; | ||
tabIndex: number; | ||
blur(): void; | ||
focus(options?: FocusOptions | undefined): void; | ||
}; | ||
name: string | undefined; | ||
styles: import("lit").CSSResultGroup; | ||
}; | ||
export declare const SlateCarbon: typeof import("../../index.js").GoldElement; |
export declare const SlateOxygen: { | ||
new (): { | ||
[x: string]: any; | ||
"__#23@#use": import("../../shiny/parts/use_silver.js").UseSilver<import("../frontend.js").DemoContext>; | ||
"__#23@#use": import("../../index.js").UseOxygen<import("../frontend.js").DemoContext>; | ||
"__#23@#rend": () => void | import("lit-html").TemplateResult; | ||
@@ -6,0 +6,0 @@ "__#23@#render_with_reactivity": () => void | import("lit-html").TemplateResult; |
@@ -8,3 +8,3 @@ import { Context } from "../shiny/context.js"; | ||
[x: string]: any; | ||
"__#23@#use": import("../shiny/parts/use_silver.js").UseSilver<DemoContext>; | ||
"__#23@#use": import("../index.js").UseOxygen<DemoContext>; | ||
"__#23@#rend": () => void | import("lit-html").TemplateResult; | ||
@@ -352,394 +352,6 @@ "__#23@#render_with_reactivity": () => void | import("lit-html").TemplateResult; | ||
}; | ||
}, carbon: (settings: import("../shiny/parts/types.js").ShadowSettings, renderer: import("../shiny/parts/types.js").CarbonRenderer<DemoContext>) => { | ||
new (): { | ||
[x: string]: any; | ||
"__#21@#use": import("../shiny/parts/use_gold.js").UseGold<DemoContext>; | ||
"__#21@#rend": () => void | import("lit-html").TemplateResult; | ||
"__#21@#render_with_reactivity": () => void | import("lit-html").TemplateResult; | ||
render(): void | import("lit-html").TemplateResult; | ||
connectedCallback(): void; | ||
disconnectedCallback(): void; | ||
"__#16@#root": ShadowRoot; | ||
"__#16@#init"?: { | ||
promise: Promise<void>; | ||
resolve: (value: void) => void; | ||
reject: (reason: any) => void; | ||
} | undefined; | ||
"__#16@#wait": Promise<void>; | ||
init(): void; | ||
readonly root: ShadowRoot; | ||
readonly updateComplete: Promise<boolean>; | ||
"__#16@#render_debounced": import("../tools/debounce/types.js").DebounceReturn<() => void>; | ||
requestUpdate(): Promise<void>; | ||
"__#15@#setups": Set<() => () => void>; | ||
"__#15@#setdowns": Set<() => void>; | ||
register_setup(setup: () => () => void): void; | ||
setup(): () => void; | ||
accessKey: string; | ||
readonly accessKeyLabel: string; | ||
autocapitalize: string; | ||
dir: string; | ||
draggable: boolean; | ||
hidden: boolean; | ||
inert: boolean; | ||
innerText: string; | ||
lang: string; | ||
readonly offsetHeight: number; | ||
readonly offsetLeft: number; | ||
readonly offsetParent: Element | null; | ||
readonly offsetTop: number; | ||
readonly offsetWidth: number; | ||
outerText: string; | ||
popover: string | null; | ||
spellcheck: boolean; | ||
title: string; | ||
translate: boolean; | ||
attachInternals(): ElementInternals; | ||
click(): void; | ||
hidePopover(): void; | ||
showPopover(): void; | ||
togglePopover(force?: boolean | undefined): void; | ||
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void; | ||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void; | ||
removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void; | ||
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void; | ||
readonly attributes: NamedNodeMap; | ||
readonly classList: DOMTokenList; | ||
className: string; | ||
readonly clientHeight: number; | ||
readonly clientLeft: number; | ||
readonly clientTop: number; | ||
readonly clientWidth: number; | ||
id: string; | ||
readonly localName: string; | ||
readonly namespaceURI: string | null; | ||
onfullscreenchange: ((this: Element, ev: Event) => any) | null; | ||
onfullscreenerror: ((this: Element, ev: Event) => any) | null; | ||
outerHTML: string; | ||
readonly ownerDocument: Document; | ||
readonly part: DOMTokenList; | ||
readonly prefix: string | null; | ||
readonly scrollHeight: number; | ||
scrollLeft: number; | ||
scrollTop: number; | ||
readonly scrollWidth: number; | ||
readonly shadowRoot: ShadowRoot | null; | ||
slot: string; | ||
readonly tagName: string; | ||
attachShadow(init: ShadowRootInit): ShadowRoot; | ||
checkVisibility(options?: CheckVisibilityOptions | undefined): boolean; | ||
closest<K_2 extends keyof HTMLElementTagNameMap>(selector: K_2): HTMLElementTagNameMap[K_2] | null; | ||
closest<K_3 extends keyof SVGElementTagNameMap>(selector: K_3): SVGElementTagNameMap[K_3] | null; | ||
closest<K_4 extends keyof MathMLElementTagNameMap>(selector: K_4): MathMLElementTagNameMap[K_4] | null; | ||
closest<E extends Element = Element>(selectors: string): E | null; | ||
computedStyleMap(): StylePropertyMapReadOnly; | ||
getAttribute(qualifiedName: string): string | null; | ||
getAttributeNS(namespace: string | null, localName: string): string | null; | ||
getAttributeNames(): string[]; | ||
getAttributeNode(qualifiedName: string): Attr | null; | ||
getAttributeNodeNS(namespace: string | null, localName: string): Attr | null; | ||
getBoundingClientRect(): DOMRect; | ||
getClientRects(): DOMRectList; | ||
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>; | ||
getElementsByTagName<K_5 extends keyof HTMLElementTagNameMap>(qualifiedName: K_5): HTMLCollectionOf<HTMLElementTagNameMap[K_5]>; | ||
getElementsByTagName<K_6 extends keyof SVGElementTagNameMap>(qualifiedName: K_6): HTMLCollectionOf<SVGElementTagNameMap[K_6]>; | ||
getElementsByTagName<K_7 extends keyof MathMLElementTagNameMap>(qualifiedName: K_7): HTMLCollectionOf<MathMLElementTagNameMap[K_7]>; | ||
getElementsByTagName<K_8 extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K_8): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K_8]>; | ||
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>; | ||
getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>; | ||
hasAttribute(qualifiedName: string): boolean; | ||
hasAttributeNS(namespace: string | null, localName: string): boolean; | ||
hasAttributes(): boolean; | ||
hasPointerCapture(pointerId: number): boolean; | ||
insertAdjacentElement(where: InsertPosition, element: Element): Element | null; | ||
insertAdjacentHTML(position: InsertPosition, text: string): void; | ||
insertAdjacentText(where: InsertPosition, data: string): void; | ||
matches(selectors: string): boolean; | ||
releasePointerCapture(pointerId: number): void; | ||
removeAttribute(qualifiedName: string): void; | ||
removeAttributeNS(namespace: string | null, localName: string): void; | ||
removeAttributeNode(attr: Attr): Attr; | ||
requestFullscreen(options?: FullscreenOptions | undefined): Promise<void>; | ||
requestPointerLock(): void; | ||
scroll(options?: ScrollToOptions | undefined): void; | ||
scroll(x: number, y: number): void; | ||
scrollBy(options?: ScrollToOptions | undefined): void; | ||
scrollBy(x: number, y: number): void; | ||
scrollIntoView(arg?: boolean | ScrollIntoViewOptions | undefined): void; | ||
scrollTo(options?: ScrollToOptions | undefined): void; | ||
scrollTo(x: number, y: number): void; | ||
setAttribute(qualifiedName: string, value: string): void; | ||
setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void; | ||
setAttributeNode(attr: Attr): Attr | null; | ||
setAttributeNodeNS(attr: Attr): Attr | null; | ||
setPointerCapture(pointerId: number): void; | ||
toggleAttribute(qualifiedName: string, force?: boolean | undefined): boolean; | ||
webkitMatchesSelector(selectors: string): boolean; | ||
readonly baseURI: string; | ||
readonly childNodes: NodeListOf<ChildNode>; | ||
readonly firstChild: ChildNode | null; | ||
readonly isConnected: boolean; | ||
readonly lastChild: ChildNode | null; | ||
readonly nextSibling: ChildNode | null; | ||
readonly nodeName: string; | ||
readonly nodeType: number; | ||
nodeValue: string | null; | ||
readonly parentElement: HTMLElement | null; | ||
readonly parentNode: ParentNode | null; | ||
readonly previousSibling: ChildNode | null; | ||
textContent: string | null; | ||
appendChild<T extends Node>(node: T): T; | ||
cloneNode(deep?: boolean | undefined): Node; | ||
compareDocumentPosition(other: Node): number; | ||
contains(other: Node | null): boolean; | ||
getRootNode(options?: GetRootNodeOptions | undefined): Node; | ||
hasChildNodes(): boolean; | ||
insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1; | ||
isDefaultNamespace(namespace: string | null): boolean; | ||
isEqualNode(otherNode: Node | null): boolean; | ||
isSameNode(otherNode: Node | null): boolean; | ||
lookupNamespaceURI(prefix: string | null): string | null; | ||
lookupPrefix(namespace: string | null): string | null; | ||
normalize(): void; | ||
removeChild<T_2 extends Node>(child: T_2): T_2; | ||
replaceChild<T_3 extends Node>(node: Node, child: T_3): T_3; | ||
readonly ELEMENT_NODE: 1; | ||
readonly ATTRIBUTE_NODE: 2; | ||
readonly TEXT_NODE: 3; | ||
readonly CDATA_SECTION_NODE: 4; | ||
readonly ENTITY_REFERENCE_NODE: 5; | ||
readonly ENTITY_NODE: 6; | ||
readonly PROCESSING_INSTRUCTION_NODE: 7; | ||
readonly COMMENT_NODE: 8; | ||
readonly DOCUMENT_NODE: 9; | ||
readonly DOCUMENT_TYPE_NODE: 10; | ||
readonly DOCUMENT_FRAGMENT_NODE: 11; | ||
readonly NOTATION_NODE: 12; | ||
readonly DOCUMENT_POSITION_DISCONNECTED: 1; | ||
readonly DOCUMENT_POSITION_PRECEDING: 2; | ||
readonly DOCUMENT_POSITION_FOLLOWING: 4; | ||
readonly DOCUMENT_POSITION_CONTAINS: 8; | ||
readonly DOCUMENT_POSITION_CONTAINED_BY: 16; | ||
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32; | ||
dispatchEvent(event: Event): boolean; | ||
ariaAtomic: string | null; | ||
ariaAutoComplete: string | null; | ||
ariaBusy: string | null; | ||
ariaChecked: string | null; | ||
ariaColCount: string | null; | ||
ariaColIndex: string | null; | ||
ariaColSpan: string | null; | ||
ariaCurrent: string | null; | ||
ariaDisabled: string | null; | ||
ariaExpanded: string | null; | ||
ariaHasPopup: string | null; | ||
ariaHidden: string | null; | ||
ariaInvalid: string | null; | ||
ariaKeyShortcuts: string | null; | ||
ariaLabel: string | null; | ||
ariaLevel: string | null; | ||
ariaLive: string | null; | ||
ariaModal: string | null; | ||
ariaMultiLine: string | null; | ||
ariaMultiSelectable: string | null; | ||
ariaOrientation: string | null; | ||
ariaPlaceholder: string | null; | ||
ariaPosInSet: string | null; | ||
ariaPressed: string | null; | ||
ariaReadOnly: string | null; | ||
ariaRequired: string | null; | ||
ariaRoleDescription: string | null; | ||
ariaRowCount: string | null; | ||
ariaRowIndex: string | null; | ||
ariaRowSpan: string | null; | ||
ariaSelected: string | null; | ||
ariaSetSize: string | null; | ||
ariaSort: string | null; | ||
ariaValueMax: string | null; | ||
ariaValueMin: string | null; | ||
ariaValueNow: string | null; | ||
ariaValueText: string | null; | ||
role: string | null; | ||
animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions | undefined): Animation; | ||
getAnimations(options?: GetAnimationsOptions | undefined): Animation[]; | ||
after(...nodes: (string | Node)[]): void; | ||
before(...nodes: (string | Node)[]): void; | ||
remove(): void; | ||
replaceWith(...nodes: (string | Node)[]): void; | ||
innerHTML: string; | ||
readonly nextElementSibling: Element | null; | ||
readonly previousElementSibling: Element | null; | ||
readonly childElementCount: number; | ||
readonly children: HTMLCollection; | ||
readonly firstElementChild: Element | null; | ||
readonly lastElementChild: Element | null; | ||
append(...nodes: (string | Node)[]): void; | ||
prepend(...nodes: (string | Node)[]): void; | ||
querySelector<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): HTMLElementTagNameMap[K_9] | null; | ||
querySelector<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): SVGElementTagNameMap[K_10] | null; | ||
querySelector<K_11 extends keyof MathMLElementTagNameMap>(selectors: K_11): MathMLElementTagNameMap[K_11] | null; | ||
querySelector<K_12 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_12): HTMLElementDeprecatedTagNameMap[K_12] | null; | ||
querySelector<E_1 extends Element = Element>(selectors: string): E_1 | null; | ||
querySelectorAll<K_13 extends keyof HTMLElementTagNameMap>(selectors: K_13): NodeListOf<HTMLElementTagNameMap[K_13]>; | ||
querySelectorAll<K_14 extends keyof SVGElementTagNameMap>(selectors: K_14): NodeListOf<SVGElementTagNameMap[K_14]>; | ||
querySelectorAll<K_15 extends keyof MathMLElementTagNameMap>(selectors: K_15): NodeListOf<MathMLElementTagNameMap[K_15]>; | ||
querySelectorAll<K_16 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_16): NodeListOf<HTMLElementDeprecatedTagNameMap[K_16]>; | ||
querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>; | ||
replaceChildren(...nodes: (string | Node)[]): void; | ||
readonly assignedSlot: HTMLSlotElement | null; | ||
readonly attributeStyleMap: StylePropertyMap; | ||
readonly style: CSSStyleDeclaration; | ||
contentEditable: string; | ||
enterKeyHint: string; | ||
inputMode: string; | ||
readonly isContentEditable: boolean; | ||
onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; | ||
onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null; | ||
onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; | ||
oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onerror: OnErrorEventHandler; | ||
onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; | ||
onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null; | ||
ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onload: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent<EventTarget>) => any) | null; | ||
onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; | ||
onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null; | ||
onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null; | ||
onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null; | ||
autofocus: boolean; | ||
readonly dataset: DOMStringMap; | ||
nonce?: string | undefined; | ||
tabIndex: number; | ||
blur(): void; | ||
focus(options?: FocusOptions | undefined): void; | ||
}; | ||
name: string | undefined; | ||
styles: import("lit").CSSResultGroup; | ||
}, quartz: <P extends any[]>(renderer: import("../shiny/parts/types.js").QuartzRenderer<DemoContext, P>) => (...values: P) => import("lit-html/directive.js").DirectiveResult<{ | ||
new (_partInfo: import("lit-html/directive.js").PartInfo): { | ||
"__#24@#props"?: P | undefined; | ||
"__#24@#rerender": import("../tools/debounce/types.js").DebounceReturn<() => void>; | ||
"__#24@#use": import("../shiny/parts/use.js").Use<DemoContext>; | ||
"__#24@#rend": (...props: P) => void | import("lit-html").TemplateResult; | ||
"__#24@#render_with_reactivity": (...props: P) => void | import("lit-html").TemplateResult; | ||
render(...props: P): void | import("lit-html").TemplateResult; | ||
reconnected(): void; | ||
disconnected(): void; | ||
isConnected: boolean; | ||
_$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; | ||
setValue(value: unknown): void; | ||
readonly _$isConnected: boolean; | ||
update(_part: import("lit-html").Part, props: unknown[]): unknown; | ||
}; | ||
}>, obsidian: <P extends any[]>(settings: import("../shiny/parts/types.js").ShadowSettings | undefined, renderer: import("../shiny/parts/types.js").ObsidianRenderer<DemoContext, P>) => (props: any[], meta?: Partial<{ | ||
}, carbon: (settings: import("../shiny/parts/types.js").ShadowSettings, renderer: import("../shiny/parts/types.js").CarbonRenderer<DemoContext>) => typeof import("../index.js").GoldElement, quartz: <P extends any[]>(renderer: import("../shiny/parts/types.js").QuartzRenderer<DemoContext, P>) => (...props: P) => import("lit-html/directive.js").DirectiveResult<any>, obsidian: <P extends any[]>(settings: import("../shiny/parts/types.js").ShadowSettings | undefined, renderer: import("../shiny/parts/types.js").ObsidianRenderer<DemoContext, P>) => (props: P, meta?: Partial<{ | ||
content: import("lit-html").TemplateResult; | ||
auto_exportparts: boolean; | ||
attrs: import("../shiny/parts/types.js").ShadowAttrs; | ||
}>) => import("lit-html/directive.js").DirectiveResult<{ | ||
new (_partInfo: import("lit-html/directive.js").PartInfo): { | ||
"__#25@#input"?: import("../shiny/parts/types.js").ObsidianInput<P> | undefined; | ||
"__#25@#root": { | ||
container: HTMLElement; | ||
shadow: ShadowRoot; | ||
auto_exportparts: boolean; | ||
render_into_shadow(content: void | import("lit-html").TemplateResult): HTMLElement; | ||
}; | ||
"__#25@#rerender": import("../tools/debounce/types.js").DebounceReturn<() => void>; | ||
"__#25@#use": import("../shiny/parts/use_shadow.js").UseShadow<DemoContext, HTMLElement>; | ||
"__#25@#rend": (...props: P) => void | import("lit-html").TemplateResult; | ||
"__#25@#render_with_reactivity": (...props: P) => void | import("lit-html").TemplateResult; | ||
update(_: import("lit-html").Part, props: [import("../shiny/parts/types.js").ObsidianInput<P>]): HTMLElement; | ||
render(input: import("../shiny/parts/types.js").ObsidianInput<P>): void | import("lit-html").TemplateResult; | ||
reconnected(): void; | ||
disconnected(): void; | ||
isConnected: boolean; | ||
_$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; | ||
setValue(value: unknown): void; | ||
readonly _$isConnected: boolean; | ||
}; | ||
}>, component: <E extends import("../index.js").BaseElementClass>(prep: (context: DemoContext) => E) => E; | ||
}>) => import("lit-html/directive.js").DirectiveResult<any>, component: <E extends import("../index.js").BaseElementClass>(prep: (context: DemoContext) => E) => E; |
@@ -1,27 +0,5 @@ | ||
export declare const ObsidianQuadrupler: (props: any[], meta?: Partial<{ | ||
export declare const ObsidianQuadrupler: (props: [start: number], meta?: Partial<{ | ||
content: import("lit-html").TemplateResult; | ||
auto_exportparts: boolean; | ||
attrs: import("../../shiny/parts/types.js").ShadowAttrs; | ||
}>) => import("lit-html/directive.js").DirectiveResult<{ | ||
new (_partInfo: import("lit-html/directive.js").PartInfo): { | ||
"__#25@#input"?: import("../../shiny/parts/types.js").ObsidianInput<[start: number]> | undefined; | ||
"__#25@#root": { | ||
container: HTMLElement; | ||
shadow: ShadowRoot; | ||
auto_exportparts: boolean; | ||
render_into_shadow(content: void | import("lit-html").TemplateResult): HTMLElement; | ||
}; | ||
"__#25@#rerender": import("../../tools/debounce/types.js").DebounceReturn<() => void>; | ||
"__#25@#use": import("../../shiny/parts/use_shadow.js").UseShadow<import("../frontend.js").DemoContext, HTMLElement>; | ||
"__#25@#rend": (start: number) => void | import("lit-html").TemplateResult; | ||
"__#25@#render_with_reactivity": (start: number) => void | import("lit-html").TemplateResult; | ||
update(_: import("lit-html").Part, props: [import("../../shiny/parts/types.js").ObsidianInput<[start: number]>]): HTMLElement; | ||
render(input: import("../../shiny/parts/types.js").ObsidianInput<[start: number]>): void | import("lit-html").TemplateResult; | ||
reconnected(): void; | ||
disconnected(): void; | ||
isConnected: boolean; | ||
_$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; | ||
setValue(value: unknown): void; | ||
readonly _$isConnected: boolean; | ||
}; | ||
}>; | ||
}>) => import("lit-html/directive.js").DirectiveResult<any>; |
@@ -1,17 +0,1 @@ | ||
export declare const QuartzTripler: (start: number) => import("lit-html/directive.js").DirectiveResult<{ | ||
new (_partInfo: import("lit-html/directive.js").PartInfo): { | ||
"__#24@#props"?: [start: number] | undefined; | ||
"__#24@#rerender": import("../../tools/debounce/types.js").DebounceReturn<() => void>; | ||
"__#24@#use": import("../../shiny/parts/use.js").Use<import("../frontend.js").DemoContext>; | ||
"__#24@#rend": (start: number) => void | import("lit-html").TemplateResult; | ||
"__#24@#render_with_reactivity": (start: number) => void | import("lit-html").TemplateResult; | ||
render(start: number): void | import("lit-html").TemplateResult; | ||
reconnected(): void; | ||
disconnected(): void; | ||
isConnected: boolean; | ||
_$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; | ||
setValue(value: unknown): void; | ||
readonly _$isConnected: boolean; | ||
update(_part: import("lit-html").Part, props: unknown[]): unknown; | ||
}; | ||
}>; | ||
export declare const QuartzTripler: (start: number) => import("lit-html/directive.js").DirectiveResult<any>; |
import { CSSResultGroup, TemplateResult } from "lit"; | ||
import { BaseElement } from "../base/element.js"; | ||
import { MetallicElement } from "./part/metallic.js"; | ||
export declare abstract class GoldElement extends MetallicElement implements BaseElement { | ||
export declare class GoldElement extends MetallicElement implements BaseElement { | ||
#private; | ||
@@ -11,5 +11,5 @@ static styles?: CSSResultGroup; | ||
get updateComplete(): Promise<boolean>; | ||
abstract render(): TemplateResult | void; | ||
render(): TemplateResult | void; | ||
requestUpdate(): Promise<void>; | ||
connectedCallback(): void; | ||
} |
@@ -25,2 +25,3 @@ import { render } from "lit"; | ||
} | ||
render() { } | ||
#render_debounced = debounce(0, () => { | ||
@@ -27,0 +28,0 @@ const root = this.#root; |
import { TemplateResult } from "lit"; | ||
import { BaseElement } from "../base/element.js"; | ||
import { MetallicElement } from "./part/metallic.js"; | ||
export declare abstract class SilverElement extends MetallicElement implements BaseElement { | ||
export declare class SilverElement extends MetallicElement implements BaseElement { | ||
#private; | ||
@@ -9,5 +9,5 @@ init(): void; | ||
get updateComplete(): Promise<boolean>; | ||
abstract render(): TemplateResult | void; | ||
render(): TemplateResult | void; | ||
requestUpdate(): Promise<void>; | ||
connectedCallback(): void; | ||
} |
@@ -16,2 +16,3 @@ import { render } from "lit"; | ||
} | ||
render() { } | ||
#render_debounced = debounce(0, () => { | ||
@@ -18,0 +19,0 @@ const template = this.render(); |
@@ -154,2 +154,28 @@ import { expect } from "cynic"; | ||
}, | ||
async "nested rendering doesn't cause circular issues"() { | ||
const flat = new Flat(); | ||
const state = flat.state({ outer: 0, inner: 0 }); | ||
let outerCalls = 0; | ||
let innerCalls = 0; | ||
const miniview = (collector, responder) => { | ||
flat.manual({ | ||
debounce: true, | ||
discover: false, | ||
collector, | ||
responder, | ||
}); | ||
}; | ||
miniview(() => { | ||
void state.outer; | ||
miniview(() => void state.inner, () => innerCalls++); | ||
}, () => outerCalls++); | ||
state.outer++; | ||
await flat.wait; | ||
expect(outerCalls).equals(1); | ||
expect(innerCalls).equals(0); | ||
state.inner++; | ||
await flat.wait; | ||
expect(outerCalls).equals(1); | ||
expect(innerCalls).equals(1); | ||
}, | ||
async "stop a reaction"() { | ||
@@ -156,0 +182,0 @@ const flat = new Flat(); |
@@ -5,4 +5,3 @@ import { Fun, Recording } from "./types.js"; | ||
record(fun: Fun): Recording; | ||
entries(): [{}, import("./types.js").KeySet][]; | ||
record_that_key_was_accessed(state: {}, key: string): void; | ||
} |
import { make_map, make_set } from "./makers.js"; | ||
import { maptool } from "../../tools/maptool.js"; | ||
export class Recorder { | ||
#recording; | ||
#recordings = []; | ||
record(fun) { | ||
this.#recording = make_map(); | ||
const recording = make_map(); | ||
this.#recordings.push(recording); | ||
fun(); | ||
const recording = this.#recording; | ||
this.#recording = undefined; | ||
this.#recordings.pop(); | ||
return recording; | ||
} | ||
entries() { | ||
return this.#recording | ||
? [...this.#recording.entries()] | ||
: []; | ||
} | ||
record_that_key_was_accessed(state, key) { | ||
if (this.#recording) { | ||
const keyset = maptool(this.#recording).grab(state, make_set); | ||
const recording = this.#recordings.at(-1); | ||
if (recording) { | ||
const keyset = maptool(recording).grab(state, make_set); | ||
keyset.add(key); | ||
@@ -21,0 +17,0 @@ } |
@@ -11,2 +11,4 @@ export * from "./base/addons/attributes.js"; | ||
export * from "./op/prep_render_op.js"; | ||
export * from "./shiny/parts/use/tailored.js"; | ||
export * from "./shiny/parts/use/parts/use.js"; | ||
export * from "./shiny/carbon.js"; | ||
@@ -34,1 +36,4 @@ export * from "./shiny/context.js"; | ||
export * from "./tools/requirement.js"; | ||
export { CSSResultGroup, CSSResult, CSSResultOrNative, CSSResultArray, render, TemplateResult, SVGTemplateResult, RenderOptions, Disconnectable, } from "lit"; | ||
export { AsyncDirective } from "lit/async-directive.js"; | ||
export { DirectiveClass, DirectiveResult, PartInfo } from "lit/directive.js"; |
@@ -11,2 +11,4 @@ export * from "./base/addons/attributes.js"; | ||
export * from "./op/prep_render_op.js"; | ||
export * from "./shiny/parts/use/tailored.js"; | ||
export * from "./shiny/parts/use/parts/use.js"; | ||
export * from "./shiny/carbon.js"; | ||
@@ -34,2 +36,4 @@ export * from "./shiny/context.js"; | ||
export * from "./tools/requirement.js"; | ||
export { CSSResult, render, } from "lit"; | ||
export { AsyncDirective } from "lit/async-directive.js"; | ||
//# sourceMappingURL=index.js.map |
@@ -112,3 +112,3 @@ | ||
if (this.#lock) | ||
throw new SignalCircularError("you can't set a cue in a cue's subscription listener (infinite loop forbidden)"); | ||
throw new SignalCircularError("you can't set a signal in a signal's subscription listener (infinite loop forbidden)"); | ||
this.#value = s; | ||
@@ -189,18 +189,14 @@ this.publish(); | ||
class Recorder { | ||
#recording; | ||
#recordings = []; | ||
record(fun) { | ||
this.#recording = make_map(); | ||
const recording = make_map(); | ||
this.#recordings.push(recording); | ||
fun(); | ||
const recording = this.#recording; | ||
this.#recording = undefined; | ||
this.#recordings.pop(); | ||
return recording; | ||
} | ||
entries() { | ||
return this.#recording | ||
? [...this.#recording.entries()] | ||
: []; | ||
} | ||
record_that_key_was_accessed(state, key) { | ||
if (this.#recording) { | ||
const keyset = maptool(this.#recording).grab(state, make_set); | ||
const recording = this.#recordings.at(-1); | ||
if (recording) { | ||
const keyset = maptool(recording).grab(state, make_set); | ||
keyset.add(key); | ||
@@ -510,2 +506,95 @@ } | ||
function mixinSetups(Base) { | ||
return class extends Base { | ||
#setups = new Set() | ||
.add(() => this.setup()); | ||
#setdowns = new Set(); | ||
register_setup(setup) { | ||
this.#setups.add(setup); | ||
} | ||
setup() { | ||
return () => { }; | ||
} | ||
connectedCallback() { | ||
for (const setup of this.#setups) | ||
this.#setdowns.add(setup()); | ||
} | ||
disconnectedCallback() { | ||
for (const setdown of this.#setdowns) | ||
setdown(); | ||
this.#setdowns.clear(); | ||
} | ||
}; | ||
} | ||
class MetallicElement extends mixinSetups(HTMLElement) { | ||
} | ||
function explode_promise() { | ||
let resolve; | ||
let reject; | ||
const promise = new Promise((res, rej) => { | ||
resolve = res; | ||
reject = rej; | ||
}); | ||
return { promise, resolve, reject }; | ||
} | ||
function finalize_styles(styles) { | ||
const elementStyles = []; | ||
if (Array.isArray(styles)) { | ||
const set = new Set(styles.flat(Infinity).reverse()); | ||
for (const s of set) | ||
elementStyles.unshift(c$3(s)); | ||
} | ||
else if (styles !== undefined) | ||
elementStyles.push(c$3(styles)); | ||
return elementStyles; | ||
} | ||
function apply_styles_to_shadow(shadow, styles) { | ||
S$1(shadow, finalize_styles(styles)); | ||
} | ||
class GoldElement extends MetallicElement { | ||
static styles; | ||
#root; | ||
#init = explode_promise(); | ||
#wait = this.#init.promise; | ||
init() { } | ||
constructor() { | ||
super(); | ||
this.#root = this.attachShadow({ mode: "open" }); | ||
const C = this.constructor; | ||
apply_styles_to_shadow(this.#root, C.styles); | ||
this.init(); | ||
} | ||
get root() { | ||
return this.#root; | ||
} | ||
get updateComplete() { | ||
return this.#wait.then(() => true); | ||
} | ||
render() { } | ||
#render_debounced = debounce(0, () => { | ||
const root = this.#root; | ||
const template = this.render(); | ||
if (template) | ||
j(template, root, { host: this }); | ||
}); | ||
async requestUpdate() { | ||
const promise = this.#render_debounced(); | ||
if (this.#init) { | ||
promise.then(this.#init.resolve); | ||
this.#init = undefined; | ||
} | ||
this.#wait = promise; | ||
return promise; | ||
} | ||
connectedCallback() { | ||
super.connectedCallback(); | ||
this.requestUpdate(); | ||
} | ||
} | ||
class Use { | ||
@@ -671,102 +760,30 @@ static wrap(use, fun) { | ||
function mixinSetups(Base) { | ||
return class extends Base { | ||
#setups = new Set() | ||
.add(() => this.setup()); | ||
#setdowns = new Set(); | ||
register_setup(setup) { | ||
this.#setups.add(setup); | ||
} | ||
setup() { | ||
return () => { }; | ||
} | ||
connectedCallback() { | ||
for (const setup of this.#setups) | ||
this.#setdowns.add(setup()); | ||
} | ||
disconnectedCallback() { | ||
for (const setdown of this.#setdowns) | ||
setdown(); | ||
this.#setdowns.clear(); | ||
} | ||
}; | ||
class UseSilver extends Use { | ||
#element; | ||
get element() { return this.#element; } | ||
attrs; | ||
constructor(element, rerender, context) { | ||
super(rerender, context); | ||
this.#element = element; | ||
this.attrs = setup_use_attrs(element); | ||
} | ||
} | ||
class MetallicElement extends mixinSetups(HTMLElement) { | ||
class UseCarbon extends UseGold { | ||
} | ||
function explode_promise() { | ||
let resolve; | ||
let reject; | ||
const promise = new Promise((res, rej) => { | ||
resolve = res; | ||
reject = rej; | ||
}); | ||
return { promise, resolve, reject }; | ||
class UseOxygen extends UseSilver { | ||
} | ||
function finalize_styles(styles) { | ||
const elementStyles = []; | ||
if (Array.isArray(styles)) { | ||
const set = new Set(styles.flat(Infinity).reverse()); | ||
for (const s of set) | ||
elementStyles.unshift(c$3(s)); | ||
} | ||
else if (styles !== undefined) | ||
elementStyles.push(c$3(styles)); | ||
return elementStyles; | ||
class UseQuartz extends Use { | ||
} | ||
function apply_styles_to_shadow(shadow, styles) { | ||
S$1(shadow, finalize_styles(styles)); | ||
class UseObsidian extends UseShadow { | ||
} | ||
class GoldElement extends MetallicElement { | ||
static styles; | ||
#root; | ||
#init = explode_promise(); | ||
#wait = this.#init.promise; | ||
init() { } | ||
constructor() { | ||
super(); | ||
this.#root = this.attachShadow({ mode: "open" }); | ||
const C = this.constructor; | ||
apply_styles_to_shadow(this.#root, C.styles); | ||
this.init(); | ||
} | ||
get root() { | ||
return this.#root; | ||
} | ||
get updateComplete() { | ||
return this.#wait.then(() => true); | ||
} | ||
#render_debounced = debounce(0, () => { | ||
const root = this.#root; | ||
const template = this.render(); | ||
if (template) | ||
j(template, root, { host: this }); | ||
}); | ||
async requestUpdate() { | ||
const promise = this.#render_debounced(); | ||
if (this.#init) { | ||
promise.then(this.#init.resolve); | ||
this.#init = undefined; | ||
} | ||
this.#wait = promise; | ||
return promise; | ||
} | ||
connectedCallback() { | ||
super.connectedCallback(); | ||
this.requestUpdate(); | ||
} | ||
} | ||
function setup_reactivity(context, render, rerender) { | ||
let stop_cues = undefined; | ||
let stop_signals = undefined; | ||
let stop_flat = undefined; | ||
function render_and_track_cues(...props) { | ||
if (stop_cues) | ||
stop_cues(); | ||
function render_and_track_signals(...props) { | ||
if (stop_signals) | ||
stop_signals(); | ||
let result = undefined; | ||
stop_cues = context.tower.track(() => { result = render(...props); }, rerender); | ||
stop_signals = context.tower.track(() => { result = render(...props); }, rerender); | ||
return result; | ||
@@ -781,3 +798,3 @@ } | ||
discover: false, | ||
collector: () => { result = render_and_track_cues(...props); }, | ||
collector: () => { result = render_and_track_signals(...props); }, | ||
responder: rerender, | ||
@@ -790,3 +807,3 @@ }); | ||
const prepare_carbon = ((context) => (settings, renderer) => (class extends GoldElement { | ||
const prepare_carbon = ((context) => (settings, renderer) => class extends GoldElement { | ||
static name = settings.name; | ||
@@ -797,4 +814,4 @@ static styles = [ | ||
]; | ||
#use = new UseGold(this, this.root, () => void this.requestUpdate(), context); | ||
#rend = Use.wrap(this.#use, () => renderer(this.#use)); | ||
#use = new UseCarbon(this, this.root, () => void this.requestUpdate(), context); | ||
#rend = UseCarbon.wrap(this.#use, () => renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, () => void this.requestUpdate()); | ||
@@ -806,21 +823,10 @@ render() { | ||
super.connectedCallback(); | ||
Use.reconnect(this.#use); | ||
UseCarbon.reconnect(this.#use); | ||
} | ||
disconnectedCallback() { | ||
super.disconnectedCallback(); | ||
Use.disconnect(this.#use); | ||
UseCarbon.disconnect(this.#use); | ||
} | ||
})); | ||
}); | ||
class UseSilver extends Use { | ||
#element; | ||
get element() { return this.#element; } | ||
attrs; | ||
constructor(element, rerender, context) { | ||
super(rerender, context); | ||
this.#element = element; | ||
this.attrs = setup_use_attrs(element); | ||
} | ||
} | ||
class SilverElement extends MetallicElement { | ||
@@ -837,2 +843,3 @@ #init = explode_promise(); | ||
} | ||
render() { } | ||
#render_debounced = debounce(0, () => { | ||
@@ -858,4 +865,4 @@ const template = this.render(); | ||
const prepare_oxygen = ((context) => (renderer) => (class extends SilverElement { | ||
#use = new UseSilver(this, () => void this.requestUpdate(), context); | ||
#rend = Use.wrap(this.#use, () => renderer(this.#use)); | ||
#use = new UseOxygen(this, () => void this.requestUpdate(), context); | ||
#rend = UseOxygen.wrap(this.#use, () => renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, () => void this.requestUpdate()); | ||
@@ -867,7 +874,7 @@ render() { | ||
super.connectedCallback(); | ||
Use.reconnect(this.#use); | ||
UseOxygen.reconnect(this.#use); | ||
} | ||
disconnectedCallback() { | ||
super.disconnectedCallback(); | ||
Use.disconnect(this.#use); | ||
UseOxygen.disconnect(this.#use); | ||
} | ||
@@ -901,4 +908,4 @@ })); | ||
}); | ||
#use = new Use(this.#rerender, context); | ||
#rend = Use.wrap(this.#use, renderer(this.#use)); | ||
#use = new UseQuartz(this.#rerender, context); | ||
#rend = UseQuartz.wrap(this.#use, renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, this.#rerender); | ||
@@ -910,6 +917,6 @@ render(...props) { | ||
reconnected() { | ||
Use.reconnect(this.#use); | ||
UseQuartz.reconnect(this.#use); | ||
} | ||
disconnected() { | ||
Use.disconnect(this.#use); | ||
UseQuartz.disconnect(this.#use); | ||
} | ||
@@ -1161,4 +1168,4 @@ })); | ||
}); | ||
#use = new UseShadow(this.#root.container, this.#root.shadow, this.#rerender, context); | ||
#rend = Use.wrap(this.#use, renderer(this.#use)); | ||
#use = new UseObsidian(this.#root.container, this.#root.shadow, this.#rerender, context); | ||
#rend = UseObsidian.wrap(this.#use, renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, this.#rerender); | ||
@@ -1175,6 +1182,6 @@ update(_, props) { | ||
reconnected() { | ||
Use.reconnect(this.#use); | ||
UseObsidian.reconnect(this.#use); | ||
} | ||
disconnected() { | ||
Use.disconnect(this.#use); | ||
UseObsidian.disconnect(this.#use); | ||
} | ||
@@ -1181,0 +1188,0 @@ }))); |
@@ -1,2 +0,2 @@ | ||
Array.prototype.at=function(t){return t>=0?this[t]:this[this.length+t]};const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),r=new WeakMap;let n=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=r.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&r.set(s,t))}return t}toString(){return this.cssText}};const i=(t,...e)=>{const r=1===t.length?t[0]:e.reduce(((e,s,r)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[r+1]),t[0]);return new n(r,t,s)},o=(s,r)=>{if(e)s.adoptedStyleSheets=r.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of r){const r=document.createElement("style"),n=t.litNonce;void 0!==n&&r.setAttribute("nonce",n),r.textContent=e.cssText,s.appendChild(r)}},a=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return(t=>new n("string"==typeof t?t:t+"",void 0,s))(e)})(t):t,{is:c,defineProperty:h,getOwnPropertyDescriptor:l,getOwnPropertyNames:u,getOwnPropertySymbols:d,getPrototypeOf:p}=Object,f=globalThis,$=f.trustedTypes,_=$?$.emptyScript:"",g=f.reactiveElementPolyfillSupport,m=(t,e)=>t,y={toAttribute(t,e){switch(e){case Boolean:t=t?_:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let s=t;switch(e){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},b=(t,e)=>!c(t,e),v={attribute:!0,type:String,converter:y,reflect:!1,hasChanged:b};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class A 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=v){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){const s=Symbol(),r=this.getPropertyDescriptor(t,s,e);void 0!==r&&h(this.prototype,t,r)}}static getPropertyDescriptor(t,e,s){const{get:r,set:n}=l(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get(){return r?.call(this)},set(e){const i=r?.call(this);n.call(this,e),this.requestUpdate(t,i,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??v}static _$Ei(){if(this.hasOwnProperty(m("elementProperties")))return;const t=p(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(m("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(m("properties"))){const t=this.properties,e=[...u(t),...d(t)];for(const s of e)this.createProperty(s,t[s])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,s]of e)this.elementProperties.set(t,s)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const s=this._$Eu(t,e);void 0!==s&&this._$Eh.set(s,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(a(t))}else void 0!==t&&e.push(a(t));return e}static _$Eu(t,e){const s=e.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$ES??=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$ES?.splice(this._$ES.indexOf(t)>>>0,1)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return o(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$ES?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$ES?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$EO(t,e){const s=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,s);if(void 0!==r&&!0===s.reflect){const n=(void 0!==s.converter?.toAttribute?s.converter:y).toAttribute(e,s.type);this._$Em=t,null==n?this.removeAttribute(r):this.setAttribute(r,n),this._$Em=null}}_$AK(t,e){const s=this.constructor,r=s._$Eh.get(t);if(void 0!==r&&this._$Em!==r){const t=s.getPropertyOptions(r),n="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:y;this._$Em=r,this[r]=n.fromAttribute(e,t.type),this._$Em=null}}requestUpdate(t,e,s,r=!1,n){if(void 0!==t){if(s??=this.constructor.getPropertyOptions(t),!(s.hasChanged??b)(r?n:this[t],e))return;this.C(t,e,s)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,e,s){this._$AL.has(t)||this._$AL.set(t,e),!0===s.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,s]of t)!0!==s.wrapped||this._$AL.has(e)||void 0===this[e]||this.C(e,this[e],s)}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$ES?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$ET()}catch(e){throw t=!1,this._$ET(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$ES?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}}A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[m("elementProperties")]=new Map,A[m("finalized")]=new Map,g?.({ReactiveElement:A}),(f.reactiveElementVersions??=[]).push("2.0.0");const w=globalThis,S=w.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:t=>t}):void 0,x="$lit$",k=`lit$${(Math.random()+"").slice(9)}$`,C="?"+k,M=`<${C}>`,P=document,U=()=>P.createComment(""),T=t=>null===t||"object"!=typeof t&&"function"!=typeof t,N=Array.isArray,O="[ \t\n\f\r]",H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,R=/-->/g,j=/>/g,z=RegExp(`>|${O}(?:([^\\s"'>=/]+)(${O}*=${O}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),q=/'/g,L=/"/g,D=/^(?:script|style|textarea|title)$/i,B=(t=>(e,...s)=>({_$litType$:t,strings:e,values:s}))(1),I=Symbol.for("lit-noChange"),V=Symbol.for("lit-nothing"),W=new WeakMap,Z=P.createTreeWalker(P,129);function J(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(e):e}const K=(t,e)=>{const s=t.length-1,r=[];let n,i=2===e?"<svg>":"",o=H;for(let e=0;e<s;e++){const s=t[e];let a,c,h=-1,l=0;for(;l<s.length&&(o.lastIndex=l,c=o.exec(s),null!==c);)l=o.lastIndex,o===H?"!--"===c[1]?o=R:void 0!==c[1]?o=j:void 0!==c[2]?(D.test(c[2])&&(n=RegExp("</"+c[2],"g")),o=z):void 0!==c[3]&&(o=z):o===z?">"===c[0]?(o=n??H,h=-1):void 0===c[1]?h=-2:(h=o.lastIndex-c[2].length,a=c[1],o=void 0===c[3]?z:'"'===c[3]?L:q):o===L||o===q?o=z:o===R||o===j?o=H:(o=z,n=void 0);const u=o===z&&t[e+1].startsWith("/>")?" ":"";i+=o===H?s+M:h>=0?(r.push(a),s.slice(0,h)+x+s.slice(h)+k+u):s+k+(-2===h?e:u)}return[J(t,i+(t[s]||"<?>")+(2===e?"</svg>":"")),r]};class G{constructor({strings:t,_$litType$:e},s){let r;this.parts=[];let n=0,i=0;const o=t.length-1,a=this.parts,[c,h]=K(t,e);if(this.el=G.createElement(c,s),Z.currentNode=this.el.content,2===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=Z.nextNode())&&a.length<o;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(x)){const e=h[i++],s=r.getAttribute(t).split(k),o=/([.?@])?(.*)/.exec(e);a.push({type:1,index:n,name:o[2],strings:s,ctor:"."===o[1]?tt:"?"===o[1]?et:"@"===o[1]?st:Y}),r.removeAttribute(t)}else t.startsWith(k)&&(a.push({type:6,index:n}),r.removeAttribute(t));if(D.test(r.tagName)){const t=r.textContent.split(k),e=t.length-1;if(e>0){r.textContent=S?S.emptyScript:"";for(let s=0;s<e;s++)r.append(t[s],U()),Z.nextNode(),a.push({type:2,index:++n});r.append(t[e],U())}}}else if(8===r.nodeType)if(r.data===C)a.push({type:2,index:n});else{let t=-1;for(;-1!==(t=r.data.indexOf(k,t+1));)a.push({type:7,index:n}),t+=k.length-1}n++}}static createElement(t,e){const s=P.createElement("template");return s.innerHTML=t,s}}function Q(t,e,s=t,r){if(e===I)return e;let n=void 0!==r?s._$Co?.[r]:s._$Cl;const i=T(e)?void 0:e._$litDirective$;return n?.constructor!==i&&(n?._$AO?.(!1),void 0===i?n=void 0:(n=new i(t),n._$AT(t,s,r)),void 0!==r?(s._$Co??=[])[r]=n:s._$Cl=n),void 0!==n&&(e=Q(t,n._$AS(t,e.values),n,r)),e}class F{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){const{el:{content:e},parts:s}=this._$AD,r=(t?.creationScope??P).importNode(e,!0);Z.currentNode=r;let n=Z.nextNode(),i=0,o=0,a=s[0];for(;void 0!==a;){if(i===a.index){let e;2===a.type?e=new X(n,n.nextSibling,this,t):1===a.type?e=new a.ctor(n,a.name,a.strings,this,t):6===a.type&&(e=new rt(n,this,t)),this._$AV.push(e),a=s[++o]}i!==a?.index&&(n=Z.nextNode(),i++)}return Z.currentNode=P,r}p(t){let e=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class X{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,r){this.type=2,this._$AH=V,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Q(this,t,e),T(t)?t===V||null==t||""===t?(this._$AH!==V&&this._$AR(),this._$AH=V):t!==this._$AH&&t!==I&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):(t=>N(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==V&&T(this._$AH)?this._$AA.nextSibling.data=t:this.$(P.createTextNode(t)),this._$AH=t}g(t){const{values:e,_$litType$:s}=t,r="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=G.createElement(J(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===r)this._$AH.p(e);else{const t=new F(r,this),s=t.u(this.options);t.p(e),this.$(s),this._$AH=t}}_$AC(t){let e=W.get(t.strings);return void 0===e&&W.set(t.strings,e=new G(t)),e}T(t){N(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,r=0;for(const n of t)r===e.length?e.push(s=new X(this.k(U()),this.k(U()),this,this.options)):s=e[r],s._$AI(n),r++;r<e.length&&(this._$AR(s&&s._$AB.nextSibling,r),e.length=r)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class Y{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,r,n){this.type=1,this._$AH=V,this._$AN=void 0,this.element=t,this.name=e,this._$AM=r,this.options=n,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=V}_$AI(t,e=this,s,r){const n=this.strings;let i=!1;if(void 0===n)t=Q(this,t,e,0),i=!T(t)||t!==this._$AH&&t!==I,i&&(this._$AH=t);else{const r=t;let o,a;for(t=n[0],o=0;o<n.length-1;o++)a=Q(this,r[s+o],e,o),a===I&&(a=this._$AH[o]),i||=!T(a)||a!==this._$AH[o],a===V?t=V:t!==V&&(t+=(a??"")+n[o+1]),this._$AH[o]=a}i&&!r&&this.j(t)}j(t){t===V?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class tt extends Y{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===V?void 0:t}}class et extends Y{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==V)}}class st extends Y{constructor(t,e,s,r,n){super(t,e,s,r,n),this.type=5}_$AI(t,e=this){if((t=Q(this,t,e,0)??V)===I)return;const s=this._$AH,r=t===V&&s!==V||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==V&&(s===V||r);r&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class rt{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){Q(this,t)}}const nt=w.litHtmlPolyfillSupport;nt?.(G,X),(w.litHtmlVersions??=[]).push("3.0.0");const it=(t,e,s)=>{const r=s?.renderBefore??e;let n=r._$litPart$;if(void 0===n){const t=s?.renderBefore??null;r._$litPart$=n=new X(e.insertBefore(U(),t),t,void 0,s??{})}return n._$AI(t),n};let ot=class extends A{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=it(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return I}};ot._$litElement$=!0,ot.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:ot});const at=globalThis.litElementPolyfillSupport;function ct(t,e){let s,r,n=[];function i(){s=[],r&&clearTimeout(r),r=void 0,n=[]}return i(),(...o)=>{s=o,r&&clearTimeout(r);const a=new Promise(((t,e)=>{n.push({resolve:t,reject:e})}));return r=setTimeout((()=>{Promise.resolve().then((()=>e(...s))).then((t=>{for(const{resolve:e}of n)e(t);i()})).catch((t=>{for(const{reject:e}of n)e(t);i()}))}),t),a}}at?.({LitElement:ot}),(globalThis.litElementVersions??=[]).push("4.0.0");class ht extends Error{name=this.constructor.name}class lt{#t;#e=!1;#s;#r=new Set;accessed=!1;constructor(t){this.#t=t,this.#s=Promise.resolve(t)}subscribe(t){return this.#r.add(t),()=>{this.#r.delete(t)}}clear(){return this.#r.clear()}#n=ct(0,(()=>{const t=this.#t;this.#e=!0;for(const e of this.#r)e(t);return this.#e=!1,t}));async publish(){this.#s=this.#n(),await this.#s}get wait(){return this.#s}get value(){return this.accessed=!0,this.#t}set value(t){if(this.#e)throw new ht("you can't set a cue in a cue's subscription listener (infinite loop forbidden)");this.#t=t,this.publish()}}const ut=(t,...e)=>B(t,...e.map((t=>t instanceof lt?t.value:t)));class dt{#i=!1;lock(t){this.#i=!0,t(),this.#i=!1}get locked(){return this.#i}}const pt=()=>new Map,ft=()=>new Set;function $t(t){return new _t(t)}class _t{map;constructor(t){this.map=t}grab(t,e){const{map:s}=this;if(s.has(t))return s.get(t);{const r=e();return s.set(t,r),r}}}class gt{#o=new WeakMap;grab_keymap(t){const e=$t(this.#o).grab(t,pt);return{keymap:e,grab_symbolmap:t=>$t(e).grab(t,pt)}}clear(){this.#o=new WeakMap}}class mt{#a=new Map;stop(t){const e=this.#a.get(t);e&&(this.#a.delete(t),e())}add(t,e){this.#a.set(t,e)}}class yt{#c;record(t){this.#c=pt(),t();const e=this.#c;return this.#c=void 0,e}entries(){return this.#c?[...this.#c.entries()]:[]}record_that_key_was_accessed(t,e){if(this.#c){$t(this.#c).grab(t,ft).add(e)}}}class bt extends Error{name=this.constructor.name}class vt extends bt{constructor(t){super(`forbidden circularity, rejected assignment to "${t}"`)}}class At extends bt{constructor(t){super(`forbidden assignment to readonly property "${t}"`)}}function wt(t){return new Proxy(t,{get:(t,e)=>t[e],set(t,e){throw new At(e)}})}class St{#h=new Map;#s=Promise.resolve();#l=ct(0,(()=>{const t=[...this.#h.values()];this.#h.clear();for(const e of t)e()}));get wait(){return this.#s}add(t,e){this.#h.set(t,e),this.#s=this.#l()}}function Et(t){return function(e){return()=>{const s="function"==typeof t?t():t;return e(s)}}}function xt(t,e,s,r){const n=[];for(const[i,o]of e){const{grab_symbolmap:e}=s.grab_keymap(i);for(const s of o){const i=e(s);i.set(t,r),n.push((()=>i.delete(t)))}}return()=>n.forEach((t=>t()))}class kt{static readonly=wt;static collectivize=Et;#u=new gt;#d=new yt;#p=new dt;#f=new mt;#$=new St;#_=function(t,e,s,r,n){function i([n,i]){if(s.lock(i.responder),i.discover){r.stop(n);const o=e.record((()=>s.lock(i.collector)));r.add(n,xt(n,o,t,i))}}return{get:(t,s)=>(e.record_that_key_was_accessed(t,s),t[s]),set:(e,r,o)=>{if(s.locked)throw new vt(r);e[r]=o;const a=[...t.grab_keymap(e).grab_symbolmap(r)];for(const t of a){const[e,s]=t;s.debounce?n.add(e,(()=>i(t))):i(t)}return!0}}}(this.#u,this.#d,this.#p,this.#f,this.#$);get wait(){return this.#$.wait}state(t){return new Proxy(t,this.#_)}manual(t){const e=Symbol(),s=this.#d.record((()=>this.#p.lock(t.collector)));return this.#f.add(e,xt(e,s,this.#u,t)),()=>this.#f.stop(e)}auto({debounce:t,discover:e,collector:s,responder:r}){return this.manual({debounce:t,discover:e,collector:s,responder:r?()=>r(s()):s})}reaction(t,e){return this.auto({debounce:!0,discover:!1,collector:t,responder:e})}deepReaction(t,e){return this.auto({debounce:!0,discover:!0,collector:t,responder:e})}clear(){this.#u.clear()}}var Ct;!function(t){var e;t.map=(t,e)=>Object.fromEntries(Object.entries(t).map((([t,s])=>[t,e(s,t)]))),t.filter=(t,e)=>Object.fromEntries(Object.entries(t).filter((([t,s])=>e(s,t)))),(e=t.pipe||(t.pipe={})).map=e=>s=>t.map(s,e),e.filter=e=>s=>t.filter(s,e)}(Ct||(Ct={}));const Mt=Error;var Pt,Ut;!function(t){function e(t,e){switch(t.mode){case"loading":return e.loading();case"error":return e.error(t.reason);case"ready":return e.ready(t.payload);default:throw console.error("op",t),new Mt("invalid op mode")}}t.loading=()=>({mode:"loading"}),t.error=t=>({mode:"error",reason:t}),t.ready=t=>({mode:"ready",payload:t}),t.is=Object.freeze({loading:t=>"loading"===t.mode,error:t=>"error"===t.mode,ready:t=>"ready"===t.mode}),t.payload=function(t){return"ready"===t.mode?t.payload:void 0},t.select=e,t.run=async function(e,s){e(t.loading());try{const r=await s();return e(t.ready(r)),r}catch(s){const r=s instanceof Mt?s.message:"string"==typeof s?s:"error";e(t.error(r))}},t.morph=function(s,r){return e(s,{loading:()=>t.loading(),error:e=>t.error(e),ready:e=>t.ready(r(e))})}}(Pt||(Pt={}));class Tt extends lt{constructor(){super(Pt.loading())}async run(t){return Pt.run((t=>this.value=t),t)}get payload(){return Pt.payload(this.value)}is={loading:()=>Pt.is.loading(this.value),error:()=>Pt.is.error(this.value),ready:()=>Pt.is.ready(this.value)};select(t){return Pt.select(this.value,t)}}class Nt{#g=new Set;signal(t){const e=new lt(t);return this.#g.add(e),e}computed(t){const e=this.signal(t());return this.track(t,(()=>e.value=t())),e}op(){const t=new Tt;return this.#g.add(t),t}many(t){return Ct.map(t,(t=>this.signal(t)))}track(t,e){const s=ct(0,e),r=[];for(const t of this.#g)t.accessed=!1;t();for(const t of this.#g)t.accessed&&r.push(t);const n=r.map((t=>t.subscribe((()=>s()))));return()=>n.forEach((t=>t()))}}class Ot{theme=i``;flat=new kt;tower=new Nt}class Ht{static with(t){return new this(t)}#m;constructor(t){this.#m=t}to(t){return new Ht(t(this.#m))}done(){return this.#m}}class Rt{static wrap(t,e){return(...s)=>(t.#y.value=0,e(...s))}static disconnect(t){for(const e of t.#b)e();t.#b.clear()}static reconnect(t){for(const e of t.#v.values())t.#b.add(e())}#A;#w;#y={value:0};#v=new Map;#b=new Set;#S=new Map;#E=new Map;#x=new Map;#g=new Map;constructor(t,e){this.#w=t,this.#A=e}get context(){return this.#A}rerender(){this.#w()}setup(t){const e=this.#y.value;this.#v.has(e)||(this.#v.set(e,t),this.#b.add(t()))}prepare(t){const e=this.#y.value++;return $t(this.#E).grab(e,t)}state(t){const e=this.#y.value++;return[$t(this.#S).grab(e,(()=>"function"==typeof t?t():t)),t=>{this.#S.set(e,t),this.#w()},()=>this.#S.get(e)]}flatstate(t){const e=this.#y.value++;return $t(this.#x).grab(e,(()=>this.#A.flat.state("function"==typeof t?t():t)))}signal(t){const e=this.#y.value++;return $t(this.#g).grab(e,(()=>this.#A.tower.signal("function"==typeof t?t():t)))}op(){const t=this.#y.value++;return $t(this.#g).grab(t,(()=>this.#A.tower.op()))}}class jt extends Rt{#k;get element(){return this.#k}#C;get shadow(){return this.#C}constructor(t,e,s,r){super(s,r),this.#k=t,this.#C=e}}function zt(t){let e;return function(s){return e||(e=Ut.base(t,s)),e}}!function(t){function e(t,e){const s=new MutationObserver(e);return s.observe(t,{attributes:!0}),()=>s.disconnect()}t.proxy=(t,e)=>new Proxy(e,{get:(s,r)=>{const n=e[r],i=t.getAttribute(r);switch(n){case String:return i??void 0;case Number:return null!==i?Number(i):void 0;case Boolean:return null!==i;default:throw new Error(`invalid attribute type for "${r}"`)}},set:(s,r,n)=>{switch(e[r]){case String:return t.setAttribute(r,n),!0;case Number:return t.setAttribute(r,n.toString()),!0;case Boolean:return n?t.setAttribute(r,""):t.removeAttribute(r),!0;default:throw new Error(`invalid attribute type for "${r}"`)}}}),t.on_change=e,t.base=function(s,r){return e(s,(()=>s.requestUpdate())),t.proxy(s,r)}}(Ut||(Ut={}));class qt extends jt{attrs;constructor(t,e,s,r){super(t,e,s,r),this.attrs=zt(t)}}class Lt extends(function(t){return class extends t{#v=(new Set).add((()=>this.setup()));#b=new Set;register_setup(t){this.#v.add(t)}setup(){return()=>{}}connectedCallback(){for(const t of this.#v)this.#b.add(t())}disconnectedCallback(){for(const t of this.#b)t();this.#b.clear()}}}(HTMLElement)){}function Dt(){let t,e;return{promise:new Promise(((s,r)=>{t=s,e=r})),resolve:t,reject:e}}function Bt(t,e){o(t,function(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(a(t))}else void 0!==t&&e.push(a(t));return e}(e))}class It extends Lt{static styles;#M;#P=Dt();#s=this.#P.promise;init(){}constructor(){super(),this.#M=this.attachShadow({mode:"open"});const t=this.constructor;Bt(this.#M,t.styles),this.init()}get root(){return this.#M}get updateComplete(){return this.#s.then((()=>!0))}#U=ct(0,(()=>{const t=this.#M,e=this.render();e&&it(e,t,{host:this})}));async requestUpdate(){const t=this.#U();return this.#P&&(t.then(this.#P.resolve),this.#P=void 0),this.#s=t,t}connectedCallback(){super.connectedCallback(),this.requestUpdate()}}function Vt(t,e,s){let r,n;return function(...i){let o;return n&&n(),n=t.flat.manual({debounce:!0,discover:!1,collector:()=>{o=function(...n){let i;return r&&r(),r=t.tower.track((()=>{i=e(...n)}),s),i}(...i)},responder:s}),o}}const Wt=t=>(e,s)=>class extends It{static name=e.name;static styles=[t.theme,e.styles??i``];#T=new qt(this,this.root,(()=>{this.requestUpdate()}),t);#N=Rt.wrap(this.#T,(()=>s(this.#T)));#O=Vt(t,this.#N,(()=>{this.requestUpdate()}));render(){return this.#O()}connectedCallback(){super.connectedCallback(),Rt.reconnect(this.#T)}disconnectedCallback(){super.disconnectedCallback(),Rt.disconnect(this.#T)}};class Zt extends Rt{#k;get element(){return this.#k}attrs;constructor(t,e,s){super(e,s),this.#k=t,this.attrs=zt(t)}}class Jt extends Lt{#P=Dt();#s=this.#P.promise;init(){}constructor(){super(),this.init()}get updateComplete(){return this.#s.then((()=>!0))}#U=ct(0,(()=>{const t=this.render();it(t,this,{host:this})}));async requestUpdate(){const t=this.#U();return this.#P&&(t.then(this.#P.resolve),this.#P=void 0),this.#s=t,t}connectedCallback(){super.connectedCallback(),this.requestUpdate()}}const Kt=t=>e=>class extends Jt{#T=new Zt(this,(()=>{this.requestUpdate()}),t);#N=Rt.wrap(this.#T,(()=>e(this.#T)));#O=Vt(t,this.#N,(()=>{this.requestUpdate()}));render(){return this.#O()}connectedCallback(){super.connectedCallback(),Rt.reconnect(this.#T)}disconnectedCallback(){super.disconnectedCallback(),Rt.disconnect(this.#T)}},Gt=2;class Qt{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)}}const Ft=(t,e)=>{const s=t._$AN;if(void 0===s)return!1;for(const t of s)t._$AO?.(e,!1),Ft(t,e);return!0},Xt=t=>{let e,s;do{if(void 0===(e=t._$AM))break;s=e._$AN,s.delete(t),t=e}while(0===s?.size)},Yt=t=>{for(let e;e=t._$AM;t=e){let s=e._$AN;if(void 0===s)e._$AN=s=new Set;else if(s.has(t))break;s.add(t),se(e)}};function te(t){void 0!==this._$AN?(Xt(this),this._$AM=t,Yt(this)):this._$AM=t}function ee(t,e=!1,s=0){const r=this._$AH,n=this._$AN;if(void 0!==n&&0!==n.size)if(e)if(Array.isArray(r))for(let t=s;t<r.length;t++)Ft(r[t],!1),Xt(r[t]);else null!=r&&(Ft(r,!1),Xt(r));else Ft(this,t)}const se=t=>{t.type==Gt&&(t._$AP??=ee,t._$AQ??=te)};class re extends Qt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),Yt(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(Ft(this,t),Xt(this))}setValue(t){if((t=>void 0===t.strings)(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}const ne=t=>e=>(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends re{#H;#w=ct(0,(()=>{this.#H&&this.setValue(this.render(...this.#H))}));#T=new Rt(this.#w,t);#N=Rt.wrap(this.#T,e(this.#T));#O=Vt(t,this.#N,this.#w);render(...t){return this.#H=t,this.#O(...t)}reconnected(){Rt.reconnect(this.#T)}disconnected(){Rt.disconnect(this.#T)}});var ie;function oe(t){return[t].flat().filter((t=>!!t))}!function(t){t.css=function(...t){return function(e){return class extends e{static styles=function(t,e){const s=[...oe(t)??[],...oe(e)];return s.flat().filter(ae)}(e.styles,t)}}},t.signals=function(t){return function(e){return class extends e{#R=[];connectedCallback(){super.connectedCallback(),this.#R.push(t.track((()=>this.render()),(()=>this.requestUpdate())))}disconnectedCallback(){super.disconnectedCallback();for(const t of this.#R)t();this.#R=[]}}}},t.flat=function(t){return function(e){return class extends e{#j=void 0;render(){let e;return this.#j&&this.#j(),this.#j=t.manual({debounce:!1,discover:!1,collector:()=>{e=super.render()},responder:()=>{this.requestUpdate()}}),e}disconnectedCallback(){super.disconnectedCallback(),this.#j&&this.#j(),this.#j=void 0}}}}}(ie||(ie={}));const ae=t=>void 0!==t;const ce=t=>{for(const[e,s]of Object.entries(t))customElements.define(e.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase(),s)};class he extends HTMLElement{static tag="obsidian-view"}function le(...t){const e=new Set,s=t.map((t=>t??"")).flatMap(ue);for(const t of s)e.add(t);return e}function ue(t){return t.split(/\s+/).map((t=>t.trim())).filter((t=>!!t))}function de(t){return t.split(",").map((t=>t.trim())).filter((t=>!!t)).map((t=>t.includes(":")?t.split(":").map((t=>t.trim()))[1]:t))}function pe(t,e){const s=le(t.getAttribute("part")),r=le(t.getAttribute("data-gpart")),n=function(t,e){return Object.fromEntries(Object.entries(e).map((([e,s])=>[e,Array.from(t.querySelectorAll(`[${s}]`)).map((t=>t.getAttribute(s)))])))}(e,{part:"part",gpart:"data-gpart",exportparts:"exportparts",gexportparts:"gexportparts"}),i=new Set([...n.part.flatMap(ue),...n.exportparts.flatMap(de)]),o=new Set([...n.gpart.flatMap(ue),...n.gexportparts.flatMap(ue)]);i.size&&t.setAttribute("exportparts",[...s].flatMap(function(t,e){return s=>[...t].flatMap((t=>[`${t}:${s}-${t}`,...e.has(t)?[t]:[]]))}(i,o)).join(", ")),(o.size||t.hasAttribute("data-gpart"))&&t.setAttribute("gexportparts",[...o,...[...r].flatMap((t=>[...i].map((e=>`${t}-${e}`))))].join(" "))}function fe(t,e={},s={}){const{content:r,attrs:n={}}=e,{attrs:i={}}=s;function o(e,s,r,n){e!==s&&(void 0===e?t.removeAttribute(r):t.setAttribute(r,n()))}n&&function(t,e){for(const[s,r]of Object.entries(e))"string"==typeof r?t.setAttribute(s,r):"number"==typeof r?t.setAttribute(s,r.toString()):"boolean"==typeof r?!0===r?t.setAttribute(s,""):t.removeAttribute(s):void 0===r?t.removeAttribute(s):console.warn(`invalid attribute type ${s} is ${typeof r}`)}(t,n),o(n.class,i?.class,"class",(()=>n.class)),o(n.part,i?.part,"part",(()=>n.part)),o(n.gpart,i?.gpart,"data-gpart",(()=>n.gpart)),r&&it(r,t,{host:t})}ce({ObsidianView:he});const $e=t=>(e={},s)=>(t=>(e,s={})=>({_$litDirective$:t,values:[{meta:s,props:e}]}))(class extends re{#m;#M=function(t,e){const s=document.createElement(he.tag);s.setAttribute("view",t);const r=s.attachShadow({mode:"open"});Bt(r,e);let n=!1;return{container:s,shadow:r,set auto_exportparts(t){n=t},render_into_shadow:t=>(it(t,r),n&&pe(s,r),s)}}(e.name??"",[t.theme,e.styles??i``]);#w=ct(0,(()=>{this.#m&&this.setValue(this.#M.render_into_shadow(this.render(this.#m)))}));#T=new jt(this.#M.container,this.#M.shadow,this.#w,t);#N=Rt.wrap(this.#T,s(this.#T));#O=Vt(t,this.#N,this.#w);update(t,e){return this.#M.render_into_shadow(this.render(...e))}render(t){return fe(this.#M.container,t.meta,this.#m?.meta),this.#m=t,this.#M.auto_exportparts=t.meta.auto_exportparts??e.auto_exportparts??!0,this.#O(...t.props)}reconnected(){Rt.reconnect(this.#T)}disconnected(){Rt.disconnect(this.#T)}});const{oxygen:_e,carbon:ge,quartz:me,obsidian:ye,component:be}=(ve=new class extends Ot{theme=i` | ||
Array.prototype.at=function(t){return t>=0?this[t]:this[this.length+t]};const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),r=new WeakMap;let n=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=r.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&r.set(s,t))}return t}toString(){return this.cssText}};const i=(t,...e)=>{const r=1===t.length?t[0]:e.reduce(((e,s,r)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[r+1]),t[0]);return new n(r,t,s)},o=(s,r)=>{if(e)s.adoptedStyleSheets=r.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of r){const r=document.createElement("style"),n=t.litNonce;void 0!==n&&r.setAttribute("nonce",n),r.textContent=e.cssText,s.appendChild(r)}},a=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return(t=>new n("string"==typeof t?t:t+"",void 0,s))(e)})(t):t,{is:c,defineProperty:h,getOwnPropertyDescriptor:l,getOwnPropertyNames:u,getOwnPropertySymbols:d,getPrototypeOf:p}=Object,f=globalThis,$=f.trustedTypes,_=$?$.emptyScript:"",g=f.reactiveElementPolyfillSupport,m=(t,e)=>t,y={toAttribute(t,e){switch(e){case Boolean:t=t?_:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let s=t;switch(e){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},b=(t,e)=>!c(t,e),A={attribute:!0,type:String,converter:y,reflect:!1,hasChanged:b};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class v 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=A){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){const s=Symbol(),r=this.getPropertyDescriptor(t,s,e);void 0!==r&&h(this.prototype,t,r)}}static getPropertyDescriptor(t,e,s){const{get:r,set:n}=l(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get(){return r?.call(this)},set(e){const i=r?.call(this);n.call(this,e),this.requestUpdate(t,i,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??A}static _$Ei(){if(this.hasOwnProperty(m("elementProperties")))return;const t=p(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(m("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(m("properties"))){const t=this.properties,e=[...u(t),...d(t)];for(const s of e)this.createProperty(s,t[s])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,s]of e)this.elementProperties.set(t,s)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const s=this._$Eu(t,e);void 0!==s&&this._$Eh.set(s,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(a(t))}else void 0!==t&&e.push(a(t));return e}static _$Eu(t,e){const s=e.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$ES??=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$ES?.splice(this._$ES.indexOf(t)>>>0,1)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return o(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$ES?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$ES?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$EO(t,e){const s=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,s);if(void 0!==r&&!0===s.reflect){const n=(void 0!==s.converter?.toAttribute?s.converter:y).toAttribute(e,s.type);this._$Em=t,null==n?this.removeAttribute(r):this.setAttribute(r,n),this._$Em=null}}_$AK(t,e){const s=this.constructor,r=s._$Eh.get(t);if(void 0!==r&&this._$Em!==r){const t=s.getPropertyOptions(r),n="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:y;this._$Em=r,this[r]=n.fromAttribute(e,t.type),this._$Em=null}}requestUpdate(t,e,s,r=!1,n){if(void 0!==t){if(s??=this.constructor.getPropertyOptions(t),!(s.hasChanged??b)(r?n:this[t],e))return;this.C(t,e,s)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,e,s){this._$AL.has(t)||this._$AL.set(t,e),!0===s.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,s]of t)!0!==s.wrapped||this._$AL.has(e)||void 0===this[e]||this.C(e,this[e],s)}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$ES?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$ET()}catch(e){throw t=!1,this._$ET(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$ES?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}}v.elementStyles=[],v.shadowRootOptions={mode:"open"},v[m("elementProperties")]=new Map,v[m("finalized")]=new Map,g?.({ReactiveElement:v}),(f.reactiveElementVersions??=[]).push("2.0.0");const w=globalThis,S=w.trustedTypes,x=S?S.createPolicy("lit-html",{createHTML:t=>t}):void 0,E="$lit$",k=`lit$${(Math.random()+"").slice(9)}$`,C="?"+k,M=`<${C}>`,P=document,U=()=>P.createComment(""),T=t=>null===t||"object"!=typeof t&&"function"!=typeof t,N=Array.isArray,O="[ \t\n\f\r]",H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,R=/-->/g,j=/>/g,z=RegExp(`>|${O}(?:([^\\s"'>=/]+)(${O}*=${O}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),q=/'/g,L=/"/g,D=/^(?:script|style|textarea|title)$/i,B=(t=>(e,...s)=>({_$litType$:t,strings:e,values:s}))(1),I=Symbol.for("lit-noChange"),V=Symbol.for("lit-nothing"),W=new WeakMap,Z=P.createTreeWalker(P,129);function J(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==x?x.createHTML(e):e}const K=(t,e)=>{const s=t.length-1,r=[];let n,i=2===e?"<svg>":"",o=H;for(let e=0;e<s;e++){const s=t[e];let a,c,h=-1,l=0;for(;l<s.length&&(o.lastIndex=l,c=o.exec(s),null!==c);)l=o.lastIndex,o===H?"!--"===c[1]?o=R:void 0!==c[1]?o=j:void 0!==c[2]?(D.test(c[2])&&(n=RegExp("</"+c[2],"g")),o=z):void 0!==c[3]&&(o=z):o===z?">"===c[0]?(o=n??H,h=-1):void 0===c[1]?h=-2:(h=o.lastIndex-c[2].length,a=c[1],o=void 0===c[3]?z:'"'===c[3]?L:q):o===L||o===q?o=z:o===R||o===j?o=H:(o=z,n=void 0);const u=o===z&&t[e+1].startsWith("/>")?" ":"";i+=o===H?s+M:h>=0?(r.push(a),s.slice(0,h)+E+s.slice(h)+k+u):s+k+(-2===h?e:u)}return[J(t,i+(t[s]||"<?>")+(2===e?"</svg>":"")),r]};class G{constructor({strings:t,_$litType$:e},s){let r;this.parts=[];let n=0,i=0;const o=t.length-1,a=this.parts,[c,h]=K(t,e);if(this.el=G.createElement(c,s),Z.currentNode=this.el.content,2===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=Z.nextNode())&&a.length<o;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(E)){const e=h[i++],s=r.getAttribute(t).split(k),o=/([.?@])?(.*)/.exec(e);a.push({type:1,index:n,name:o[2],strings:s,ctor:"."===o[1]?tt:"?"===o[1]?et:"@"===o[1]?st:Y}),r.removeAttribute(t)}else t.startsWith(k)&&(a.push({type:6,index:n}),r.removeAttribute(t));if(D.test(r.tagName)){const t=r.textContent.split(k),e=t.length-1;if(e>0){r.textContent=S?S.emptyScript:"";for(let s=0;s<e;s++)r.append(t[s],U()),Z.nextNode(),a.push({type:2,index:++n});r.append(t[e],U())}}}else if(8===r.nodeType)if(r.data===C)a.push({type:2,index:n});else{let t=-1;for(;-1!==(t=r.data.indexOf(k,t+1));)a.push({type:7,index:n}),t+=k.length-1}n++}}static createElement(t,e){const s=P.createElement("template");return s.innerHTML=t,s}}function Q(t,e,s=t,r){if(e===I)return e;let n=void 0!==r?s._$Co?.[r]:s._$Cl;const i=T(e)?void 0:e._$litDirective$;return n?.constructor!==i&&(n?._$AO?.(!1),void 0===i?n=void 0:(n=new i(t),n._$AT(t,s,r)),void 0!==r?(s._$Co??=[])[r]=n:s._$Cl=n),void 0!==n&&(e=Q(t,n._$AS(t,e.values),n,r)),e}class F{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){const{el:{content:e},parts:s}=this._$AD,r=(t?.creationScope??P).importNode(e,!0);Z.currentNode=r;let n=Z.nextNode(),i=0,o=0,a=s[0];for(;void 0!==a;){if(i===a.index){let e;2===a.type?e=new X(n,n.nextSibling,this,t):1===a.type?e=new a.ctor(n,a.name,a.strings,this,t):6===a.type&&(e=new rt(n,this,t)),this._$AV.push(e),a=s[++o]}i!==a?.index&&(n=Z.nextNode(),i++)}return Z.currentNode=P,r}p(t){let e=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class X{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,r){this.type=2,this._$AH=V,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Q(this,t,e),T(t)?t===V||null==t||""===t?(this._$AH!==V&&this._$AR(),this._$AH=V):t!==this._$AH&&t!==I&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):(t=>N(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==V&&T(this._$AH)?this._$AA.nextSibling.data=t:this.$(P.createTextNode(t)),this._$AH=t}g(t){const{values:e,_$litType$:s}=t,r="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=G.createElement(J(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===r)this._$AH.p(e);else{const t=new F(r,this),s=t.u(this.options);t.p(e),this.$(s),this._$AH=t}}_$AC(t){let e=W.get(t.strings);return void 0===e&&W.set(t.strings,e=new G(t)),e}T(t){N(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,r=0;for(const n of t)r===e.length?e.push(s=new X(this.k(U()),this.k(U()),this,this.options)):s=e[r],s._$AI(n),r++;r<e.length&&(this._$AR(s&&s._$AB.nextSibling,r),e.length=r)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class Y{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,r,n){this.type=1,this._$AH=V,this._$AN=void 0,this.element=t,this.name=e,this._$AM=r,this.options=n,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=V}_$AI(t,e=this,s,r){const n=this.strings;let i=!1;if(void 0===n)t=Q(this,t,e,0),i=!T(t)||t!==this._$AH&&t!==I,i&&(this._$AH=t);else{const r=t;let o,a;for(t=n[0],o=0;o<n.length-1;o++)a=Q(this,r[s+o],e,o),a===I&&(a=this._$AH[o]),i||=!T(a)||a!==this._$AH[o],a===V?t=V:t!==V&&(t+=(a??"")+n[o+1]),this._$AH[o]=a}i&&!r&&this.j(t)}j(t){t===V?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class tt extends Y{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===V?void 0:t}}class et extends Y{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==V)}}class st extends Y{constructor(t,e,s,r,n){super(t,e,s,r,n),this.type=5}_$AI(t,e=this){if((t=Q(this,t,e,0)??V)===I)return;const s=this._$AH,r=t===V&&s!==V||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==V&&(s===V||r);r&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class rt{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){Q(this,t)}}const nt=w.litHtmlPolyfillSupport;nt?.(G,X),(w.litHtmlVersions??=[]).push("3.0.0");const it=(t,e,s)=>{const r=s?.renderBefore??e;let n=r._$litPart$;if(void 0===n){const t=s?.renderBefore??null;r._$litPart$=n=new X(e.insertBefore(U(),t),t,void 0,s??{})}return n._$AI(t),n};let ot=class extends v{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=it(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return I}};ot._$litElement$=!0,ot.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:ot});const at=globalThis.litElementPolyfillSupport;function ct(t,e){let s,r,n=[];function i(){s=[],r&&clearTimeout(r),r=void 0,n=[]}return i(),(...o)=>{s=o,r&&clearTimeout(r);const a=new Promise(((t,e)=>{n.push({resolve:t,reject:e})}));return r=setTimeout((()=>{Promise.resolve().then((()=>e(...s))).then((t=>{for(const{resolve:e}of n)e(t);i()})).catch((t=>{for(const{reject:e}of n)e(t);i()}))}),t),a}}at?.({LitElement:ot}),(globalThis.litElementVersions??=[]).push("4.0.0");class ht extends Error{name=this.constructor.name}class lt{#t;#e=!1;#s;#r=new Set;accessed=!1;constructor(t){this.#t=t,this.#s=Promise.resolve(t)}subscribe(t){return this.#r.add(t),()=>{this.#r.delete(t)}}clear(){return this.#r.clear()}#n=ct(0,(()=>{const t=this.#t;this.#e=!0;for(const e of this.#r)e(t);return this.#e=!1,t}));async publish(){this.#s=this.#n(),await this.#s}get wait(){return this.#s}get value(){return this.accessed=!0,this.#t}set value(t){if(this.#e)throw new ht("you can't set a signal in a signal's subscription listener (infinite loop forbidden)");this.#t=t,this.publish()}}const ut=(t,...e)=>B(t,...e.map((t=>t instanceof lt?t.value:t)));class dt{#i=!1;lock(t){this.#i=!0,t(),this.#i=!1}get locked(){return this.#i}}const pt=()=>new Map,ft=()=>new Set;function $t(t){return new _t(t)}class _t{map;constructor(t){this.map=t}grab(t,e){const{map:s}=this;if(s.has(t))return s.get(t);{const r=e();return s.set(t,r),r}}}class gt{#o=new WeakMap;grab_keymap(t){const e=$t(this.#o).grab(t,pt);return{keymap:e,grab_symbolmap:t=>$t(e).grab(t,pt)}}clear(){this.#o=new WeakMap}}class mt{#a=new Map;stop(t){const e=this.#a.get(t);e&&(this.#a.delete(t),e())}add(t,e){this.#a.set(t,e)}}class yt{#c=[];record(t){const e=pt();return this.#c.push(e),t(),this.#c.pop(),e}record_that_key_was_accessed(t,e){const s=this.#c.at(-1);if(s){$t(s).grab(t,ft).add(e)}}}class bt extends Error{name=this.constructor.name}class At extends bt{constructor(t){super(`forbidden circularity, rejected assignment to "${t}"`)}}class vt extends bt{constructor(t){super(`forbidden assignment to readonly property "${t}"`)}}function wt(t){return new Proxy(t,{get:(t,e)=>t[e],set(t,e){throw new vt(e)}})}class St{#h=new Map;#s=Promise.resolve();#l=ct(0,(()=>{const t=[...this.#h.values()];this.#h.clear();for(const e of t)e()}));get wait(){return this.#s}add(t,e){this.#h.set(t,e),this.#s=this.#l()}}function xt(t){return function(e){return()=>{const s="function"==typeof t?t():t;return e(s)}}}function Et(t,e,s,r){const n=[];for(const[i,o]of e){const{grab_symbolmap:e}=s.grab_keymap(i);for(const s of o){const i=e(s);i.set(t,r),n.push((()=>i.delete(t)))}}return()=>n.forEach((t=>t()))}class kt{static readonly=wt;static collectivize=xt;#u=new gt;#d=new yt;#p=new dt;#f=new mt;#$=new St;#_=function(t,e,s,r,n){function i([n,i]){if(s.lock(i.responder),i.discover){r.stop(n);const o=e.record((()=>s.lock(i.collector)));r.add(n,Et(n,o,t,i))}}return{get:(t,s)=>(e.record_that_key_was_accessed(t,s),t[s]),set:(e,r,o)=>{if(s.locked)throw new At(r);e[r]=o;const a=[...t.grab_keymap(e).grab_symbolmap(r)];for(const t of a){const[e,s]=t;s.debounce?n.add(e,(()=>i(t))):i(t)}return!0}}}(this.#u,this.#d,this.#p,this.#f,this.#$);get wait(){return this.#$.wait}state(t){return new Proxy(t,this.#_)}manual(t){const e=Symbol(),s=this.#d.record((()=>this.#p.lock(t.collector)));return this.#f.add(e,Et(e,s,this.#u,t)),()=>this.#f.stop(e)}auto({debounce:t,discover:e,collector:s,responder:r}){return this.manual({debounce:t,discover:e,collector:s,responder:r?()=>r(s()):s})}reaction(t,e){return this.auto({debounce:!0,discover:!1,collector:t,responder:e})}deepReaction(t,e){return this.auto({debounce:!0,discover:!0,collector:t,responder:e})}clear(){this.#u.clear()}}var Ct;!function(t){var e;t.map=(t,e)=>Object.fromEntries(Object.entries(t).map((([t,s])=>[t,e(s,t)]))),t.filter=(t,e)=>Object.fromEntries(Object.entries(t).filter((([t,s])=>e(s,t)))),(e=t.pipe||(t.pipe={})).map=e=>s=>t.map(s,e),e.filter=e=>s=>t.filter(s,e)}(Ct||(Ct={}));const Mt=Error;var Pt,Ut;!function(t){function e(t,e){switch(t.mode){case"loading":return e.loading();case"error":return e.error(t.reason);case"ready":return e.ready(t.payload);default:throw console.error("op",t),new Mt("invalid op mode")}}t.loading=()=>({mode:"loading"}),t.error=t=>({mode:"error",reason:t}),t.ready=t=>({mode:"ready",payload:t}),t.is=Object.freeze({loading:t=>"loading"===t.mode,error:t=>"error"===t.mode,ready:t=>"ready"===t.mode}),t.payload=function(t){return"ready"===t.mode?t.payload:void 0},t.select=e,t.run=async function(e,s){e(t.loading());try{const r=await s();return e(t.ready(r)),r}catch(s){const r=s instanceof Mt?s.message:"string"==typeof s?s:"error";e(t.error(r))}},t.morph=function(s,r){return e(s,{loading:()=>t.loading(),error:e=>t.error(e),ready:e=>t.ready(r(e))})}}(Pt||(Pt={}));class Tt extends lt{constructor(){super(Pt.loading())}async run(t){return Pt.run((t=>this.value=t),t)}get payload(){return Pt.payload(this.value)}is={loading:()=>Pt.is.loading(this.value),error:()=>Pt.is.error(this.value),ready:()=>Pt.is.ready(this.value)};select(t){return Pt.select(this.value,t)}}class Nt{#g=new Set;signal(t){const e=new lt(t);return this.#g.add(e),e}computed(t){const e=this.signal(t());return this.track(t,(()=>e.value=t())),e}op(){const t=new Tt;return this.#g.add(t),t}many(t){return Ct.map(t,(t=>this.signal(t)))}track(t,e){const s=ct(0,e),r=[];for(const t of this.#g)t.accessed=!1;t();for(const t of this.#g)t.accessed&&r.push(t);const n=r.map((t=>t.subscribe((()=>s()))));return()=>n.forEach((t=>t()))}}class Ot{theme=i``;flat=new kt;tower=new Nt}class Ht{static with(t){return new this(t)}#m;constructor(t){this.#m=t}to(t){return new Ht(t(this.#m))}done(){return this.#m}}class Rt extends(function(t){return class extends t{#y=(new Set).add((()=>this.setup()));#b=new Set;register_setup(t){this.#y.add(t)}setup(){return()=>{}}connectedCallback(){for(const t of this.#y)this.#b.add(t())}disconnectedCallback(){for(const t of this.#b)t();this.#b.clear()}}}(HTMLElement)){}function jt(){let t,e;return{promise:new Promise(((s,r)=>{t=s,e=r})),resolve:t,reject:e}}function zt(t,e){o(t,function(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(a(t))}else void 0!==t&&e.push(a(t));return e}(e))}class qt extends Rt{static styles;#A;#v=jt();#s=this.#v.promise;init(){}constructor(){super(),this.#A=this.attachShadow({mode:"open"});const t=this.constructor;zt(this.#A,t.styles),this.init()}get root(){return this.#A}get updateComplete(){return this.#s.then((()=>!0))}render(){}#w=ct(0,(()=>{const t=this.#A,e=this.render();e&&it(e,t,{host:this})}));async requestUpdate(){const t=this.#w();return this.#v&&(t.then(this.#v.resolve),this.#v=void 0),this.#s=t,t}connectedCallback(){super.connectedCallback(),this.requestUpdate()}}class Lt{static wrap(t,e){return(...s)=>(t.#S.value=0,e(...s))}static disconnect(t){for(const e of t.#b)e();t.#b.clear()}static reconnect(t){for(const e of t.#y.values())t.#b.add(e())}#x;#E;#S={value:0};#y=new Map;#b=new Set;#k=new Map;#C=new Map;#M=new Map;#g=new Map;constructor(t,e){this.#E=t,this.#x=e}get context(){return this.#x}rerender(){this.#E()}setup(t){const e=this.#S.value;this.#y.has(e)||(this.#y.set(e,t),this.#b.add(t()))}prepare(t){const e=this.#S.value++;return $t(this.#C).grab(e,t)}state(t){const e=this.#S.value++;return[$t(this.#k).grab(e,(()=>"function"==typeof t?t():t)),t=>{this.#k.set(e,t),this.#E()},()=>this.#k.get(e)]}flatstate(t){const e=this.#S.value++;return $t(this.#M).grab(e,(()=>this.#x.flat.state("function"==typeof t?t():t)))}signal(t){const e=this.#S.value++;return $t(this.#g).grab(e,(()=>this.#x.tower.signal("function"==typeof t?t():t)))}op(){const t=this.#S.value++;return $t(this.#g).grab(t,(()=>this.#x.tower.op()))}}class Dt extends Lt{#P;get element(){return this.#P}#U;get shadow(){return this.#U}constructor(t,e,s,r){super(s,r),this.#P=t,this.#U=e}}function Bt(t){let e;return function(s){return e||(e=Ut.base(t,s)),e}}!function(t){function e(t,e){const s=new MutationObserver(e);return s.observe(t,{attributes:!0}),()=>s.disconnect()}t.proxy=(t,e)=>new Proxy(e,{get:(s,r)=>{const n=e[r],i=t.getAttribute(r);switch(n){case String:return i??void 0;case Number:return null!==i?Number(i):void 0;case Boolean:return null!==i;default:throw new Error(`invalid attribute type for "${r}"`)}},set:(s,r,n)=>{switch(e[r]){case String:return t.setAttribute(r,n),!0;case Number:return t.setAttribute(r,n.toString()),!0;case Boolean:return n?t.setAttribute(r,""):t.removeAttribute(r),!0;default:throw new Error(`invalid attribute type for "${r}"`)}}}),t.on_change=e,t.base=function(s,r){return e(s,(()=>s.requestUpdate())),t.proxy(s,r)}}(Ut||(Ut={}));class It extends Dt{attrs;constructor(t,e,s,r){super(t,e,s,r),this.attrs=Bt(t)}}class Vt extends Lt{#P;get element(){return this.#P}attrs;constructor(t,e,s){super(e,s),this.#P=t,this.attrs=Bt(t)}}class Wt extends It{}class Zt extends Vt{}class Jt extends Lt{}class Kt extends Dt{}function Gt(t,e,s){let r,n;return function(...i){let o;return n&&n(),n=t.flat.manual({debounce:!0,discover:!1,collector:()=>{o=function(...n){let i;return r&&r(),r=t.tower.track((()=>{i=e(...n)}),s),i}(...i)},responder:s}),o}}const Qt=t=>(e,s)=>class extends qt{static name=e.name;static styles=[t.theme,e.styles??i``];#T=new Wt(this,this.root,(()=>{this.requestUpdate()}),t);#N=Wt.wrap(this.#T,(()=>s(this.#T)));#O=Gt(t,this.#N,(()=>{this.requestUpdate()}));render(){return this.#O()}connectedCallback(){super.connectedCallback(),Wt.reconnect(this.#T)}disconnectedCallback(){super.disconnectedCallback(),Wt.disconnect(this.#T)}};class Ft extends Rt{#v=jt();#s=this.#v.promise;init(){}constructor(){super(),this.init()}get updateComplete(){return this.#s.then((()=>!0))}render(){}#w=ct(0,(()=>{const t=this.render();it(t,this,{host:this})}));async requestUpdate(){const t=this.#w();return this.#v&&(t.then(this.#v.resolve),this.#v=void 0),this.#s=t,t}connectedCallback(){super.connectedCallback(),this.requestUpdate()}}const Xt=t=>e=>class extends Ft{#T=new Zt(this,(()=>{this.requestUpdate()}),t);#N=Zt.wrap(this.#T,(()=>e(this.#T)));#O=Gt(t,this.#N,(()=>{this.requestUpdate()}));render(){return this.#O()}connectedCallback(){super.connectedCallback(),Zt.reconnect(this.#T)}disconnectedCallback(){super.disconnectedCallback(),Zt.disconnect(this.#T)}},Yt=2;class te{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)}}const ee=(t,e)=>{const s=t._$AN;if(void 0===s)return!1;for(const t of s)t._$AO?.(e,!1),ee(t,e);return!0},se=t=>{let e,s;do{if(void 0===(e=t._$AM))break;s=e._$AN,s.delete(t),t=e}while(0===s?.size)},re=t=>{for(let e;e=t._$AM;t=e){let s=e._$AN;if(void 0===s)e._$AN=s=new Set;else if(s.has(t))break;s.add(t),oe(e)}};function ne(t){void 0!==this._$AN?(se(this),this._$AM=t,re(this)):this._$AM=t}function ie(t,e=!1,s=0){const r=this._$AH,n=this._$AN;if(void 0!==n&&0!==n.size)if(e)if(Array.isArray(r))for(let t=s;t<r.length;t++)ee(r[t],!1),se(r[t]);else null!=r&&(ee(r,!1),se(r));else ee(this,t)}const oe=t=>{t.type==Yt&&(t._$AP??=ie,t._$AQ??=ne)};class ae extends te{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),re(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(ee(this,t),se(this))}setValue(t){if((t=>void 0===t.strings)(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}const ce=t=>e=>(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends ae{#H;#E=ct(0,(()=>{this.#H&&this.setValue(this.render(...this.#H))}));#T=new Jt(this.#E,t);#N=Jt.wrap(this.#T,e(this.#T));#O=Gt(t,this.#N,this.#E);render(...t){return this.#H=t,this.#O(...t)}reconnected(){Jt.reconnect(this.#T)}disconnected(){Jt.disconnect(this.#T)}});var he;function le(t){return[t].flat().filter((t=>!!t))}!function(t){t.css=function(...t){return function(e){return class extends e{static styles=function(t,e){const s=[...le(t)??[],...le(e)];return s.flat().filter(ue)}(e.styles,t)}}},t.signals=function(t){return function(e){return class extends e{#R=[];connectedCallback(){super.connectedCallback(),this.#R.push(t.track((()=>this.render()),(()=>this.requestUpdate())))}disconnectedCallback(){super.disconnectedCallback();for(const t of this.#R)t();this.#R=[]}}}},t.flat=function(t){return function(e){return class extends e{#j=void 0;render(){let e;return this.#j&&this.#j(),this.#j=t.manual({debounce:!1,discover:!1,collector:()=>{e=super.render()},responder:()=>{this.requestUpdate()}}),e}disconnectedCallback(){super.disconnectedCallback(),this.#j&&this.#j(),this.#j=void 0}}}}}(he||(he={}));const ue=t=>void 0!==t;const de=t=>{for(const[e,s]of Object.entries(t))customElements.define(e.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase(),s)};class pe extends HTMLElement{static tag="obsidian-view"}function fe(...t){const e=new Set,s=t.map((t=>t??"")).flatMap($e);for(const t of s)e.add(t);return e}function $e(t){return t.split(/\s+/).map((t=>t.trim())).filter((t=>!!t))}function _e(t){return t.split(",").map((t=>t.trim())).filter((t=>!!t)).map((t=>t.includes(":")?t.split(":").map((t=>t.trim()))[1]:t))}function ge(t,e){const s=fe(t.getAttribute("part")),r=fe(t.getAttribute("data-gpart")),n=function(t,e){return Object.fromEntries(Object.entries(e).map((([e,s])=>[e,Array.from(t.querySelectorAll(`[${s}]`)).map((t=>t.getAttribute(s)))])))}(e,{part:"part",gpart:"data-gpart",exportparts:"exportparts",gexportparts:"gexportparts"}),i=new Set([...n.part.flatMap($e),...n.exportparts.flatMap(_e)]),o=new Set([...n.gpart.flatMap($e),...n.gexportparts.flatMap($e)]);i.size&&t.setAttribute("exportparts",[...s].flatMap(function(t,e){return s=>[...t].flatMap((t=>[`${t}:${s}-${t}`,...e.has(t)?[t]:[]]))}(i,o)).join(", ")),(o.size||t.hasAttribute("data-gpart"))&&t.setAttribute("gexportparts",[...o,...[...r].flatMap((t=>[...i].map((e=>`${t}-${e}`))))].join(" "))}function me(t,e={},s={}){const{content:r,attrs:n={}}=e,{attrs:i={}}=s;function o(e,s,r,n){e!==s&&(void 0===e?t.removeAttribute(r):t.setAttribute(r,n()))}n&&function(t,e){for(const[s,r]of Object.entries(e))"string"==typeof r?t.setAttribute(s,r):"number"==typeof r?t.setAttribute(s,r.toString()):"boolean"==typeof r?!0===r?t.setAttribute(s,""):t.removeAttribute(s):void 0===r?t.removeAttribute(s):console.warn(`invalid attribute type ${s} is ${typeof r}`)}(t,n),o(n.class,i?.class,"class",(()=>n.class)),o(n.part,i?.part,"part",(()=>n.part)),o(n.gpart,i?.gpart,"data-gpart",(()=>n.gpart)),r&&it(r,t,{host:t})}de({ObsidianView:pe});const ye=t=>(e={},s)=>(t=>(e,s={})=>({_$litDirective$:t,values:[{meta:s,props:e}]}))(class extends ae{#m;#A=function(t,e){const s=document.createElement(pe.tag);s.setAttribute("view",t);const r=s.attachShadow({mode:"open"});zt(r,e);let n=!1;return{container:s,shadow:r,set auto_exportparts(t){n=t},render_into_shadow:t=>(it(t,r),n&&ge(s,r),s)}}(e.name??"",[t.theme,e.styles??i``]);#E=ct(0,(()=>{this.#m&&this.setValue(this.#A.render_into_shadow(this.render(this.#m)))}));#T=new Kt(this.#A.container,this.#A.shadow,this.#E,t);#N=Kt.wrap(this.#T,s(this.#T));#O=Gt(t,this.#N,this.#E);update(t,e){return this.#A.render_into_shadow(this.render(...e))}render(t){return me(this.#A.container,t.meta,this.#m?.meta),this.#m=t,this.#A.auto_exportparts=t.meta.auto_exportparts??e.auto_exportparts??!0,this.#O(...t.props)}reconnected(){Kt.reconnect(this.#T)}disconnected(){Kt.disconnect(this.#T)}});const{oxygen:be,carbon:Ae,quartz:ve,obsidian:we,component:Se}=(xe=new class extends Ot{theme=i` | ||
button { | ||
@@ -6,6 +6,6 @@ padding: 0.5em; | ||
} | ||
`},{oxygen:Kt(ve),carbon:Wt(ve),quartz:ne(ve),obsidian:$e(ve),component:t=>Ht.with(t(ve)).to(ie.css(ve.theme)).to(ie.flat(ve.flat)).to(ie.signals(ve.tower)).done()});var ve;const Ae=be((t=>class extends It{#z=t.flat.state({count:0});render(){return B` | ||
`},{oxygen:Xt(xe),carbon:Qt(xe),quartz:ce(xe),obsidian:ye(xe),component:t=>Ht.with(t(xe)).to(he.css(xe.theme)).to(he.flat(xe.flat)).to(he.signals(xe.tower)).done()});var xe;const Ee=Se((t=>class extends qt{#z=t.flat.state({count:0});render(){return B` | ||
<span>${this.#z.count}</span> | ||
<button @click=${()=>this.#z.count++}>gold</button> | ||
`}})),we=me((t=>e=>{const[s,r]=t.state(e),n=t.flatstate({count:e}),i=t.signal(e);return ut` | ||
`}})),ke=ve((t=>e=>{const[s,r]=t.state(e),n=t.flatstate({count:e}),i=t.signal(e);return ut` | ||
<span>${s}</span> | ||
@@ -19,14 +19,14 @@ <button @click=${()=>r(3*s)}>quartz-a</button> | ||
<button @click=${()=>i.value*=3}>quartz-c</button> | ||
`})),Se=ye({name:"quadrupler",styles:i`span { color: yellow }`},(t=>e=>{const s=t.signal(e);return ut` | ||
`})),Ce=we({name:"quadrupler",styles:i`span { color: yellow }`},(t=>e=>{const s=t.signal(e);return ut` | ||
<span>${s}</span> | ||
<button @click=${()=>s.value*=4}>obsidian</button> | ||
`})),Ee=be((t=>class extends Jt{render(){return B` | ||
${we(1)} | ||
${Se([33])} | ||
`}})),xe=()=>Math.ceil(1e3*Math.random()),ke=ge({styles:i`button { color: green }`},(t=>{const e=t.signal(xe);return ut` | ||
`})),Me=Se((t=>class extends Ft{render(){return B` | ||
${ke(1)} | ||
${Ce([33])} | ||
`}})),Pe=()=>Math.ceil(1e3*Math.random()),Ue=Ae({styles:i`button { color: green }`},(t=>{const e=t.signal(Pe);return ut` | ||
<span>${e}</span> | ||
<button @click=${()=>e.value=xe()}>carbon</button> | ||
`}));ce({SlateCarbon:ke,SlateGold:Ae,SlateOxygen:_e((t=>{const e=t.signal(256);return ut` | ||
<button @click=${()=>e.value=Pe()}>carbon</button> | ||
`}));de({SlateCarbon:Ue,SlateGold:Ee,SlateOxygen:be((t=>{const e=t.signal(256);return ut` | ||
<span>${e}</span> | ||
<button @click=${()=>e.value-=8}>oxygen</button> | ||
`})),SlateSilver:Ee}); | ||
`})),SlateSilver:Me}); |
@@ -1,355 +0,4 @@ | ||
import { CSSResultGroup } from "lit"; | ||
import { Context } from "./context.js"; | ||
import { UseGold } from "./parts/use_gold.js"; | ||
import { GoldElement } from "../element/gold.js"; | ||
import { ShadowSettings, CarbonRenderer } from "./parts/types.js"; | ||
export declare const prepare_carbon: <C extends Context>(context: C) => (settings: ShadowSettings, renderer: CarbonRenderer<C>) => { | ||
new (): { | ||
[x: string]: any; | ||
"__#21@#use": UseGold<C>; | ||
"__#21@#rend": () => void | import("lit-html").TemplateResult; | ||
"__#21@#render_with_reactivity": () => void | import("lit-html").TemplateResult; | ||
render(): void | import("lit-html").TemplateResult; | ||
connectedCallback(): void; | ||
disconnectedCallback(): void; | ||
"__#16@#root": ShadowRoot; | ||
"__#16@#init"?: { | ||
promise: Promise<void>; | ||
resolve: (value: void) => void; | ||
reject: (reason: any) => void; | ||
} | undefined; | ||
"__#16@#wait": Promise<void>; | ||
init(): void; | ||
readonly root: ShadowRoot; | ||
readonly updateComplete: Promise<boolean>; | ||
"__#16@#render_debounced": import("../tools/debounce/types.js").DebounceReturn<() => void>; | ||
requestUpdate(): Promise<void>; | ||
"__#15@#setups": Set<() => () => void>; | ||
"__#15@#setdowns": Set<() => void>; | ||
register_setup(setup: () => () => void): void; | ||
setup(): () => void; | ||
accessKey: string; | ||
readonly accessKeyLabel: string; | ||
autocapitalize: string; | ||
dir: string; | ||
draggable: boolean; | ||
hidden: boolean; | ||
inert: boolean; | ||
innerText: string; | ||
lang: string; | ||
readonly offsetHeight: number; | ||
readonly offsetLeft: number; | ||
readonly offsetParent: Element | null; | ||
readonly offsetTop: number; | ||
readonly offsetWidth: number; | ||
outerText: string; | ||
popover: string | null; | ||
spellcheck: boolean; | ||
title: string; | ||
translate: boolean; | ||
attachInternals(): ElementInternals; | ||
click(): void; | ||
hidePopover(): void; | ||
showPopover(): void; | ||
togglePopover(force?: boolean | undefined): void; | ||
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void; | ||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void; | ||
removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void; | ||
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void; | ||
readonly attributes: NamedNodeMap; | ||
readonly classList: DOMTokenList; | ||
className: string; | ||
readonly clientHeight: number; | ||
readonly clientLeft: number; | ||
readonly clientTop: number; | ||
readonly clientWidth: number; | ||
id: string; | ||
readonly localName: string; | ||
readonly namespaceURI: string | null; | ||
onfullscreenchange: ((this: Element, ev: Event) => any) | null; | ||
onfullscreenerror: ((this: Element, ev: Event) => any) | null; | ||
outerHTML: string; | ||
readonly ownerDocument: Document; | ||
readonly part: DOMTokenList; | ||
readonly prefix: string | null; | ||
readonly scrollHeight: number; | ||
scrollLeft: number; | ||
scrollTop: number; | ||
readonly scrollWidth: number; | ||
readonly shadowRoot: ShadowRoot | null; | ||
slot: string; | ||
readonly tagName: string; | ||
attachShadow(init: ShadowRootInit): ShadowRoot; | ||
checkVisibility(options?: CheckVisibilityOptions | undefined): boolean; | ||
closest<K_2 extends keyof HTMLElementTagNameMap>(selector: K_2): HTMLElementTagNameMap[K_2] | null; | ||
closest<K_3 extends keyof SVGElementTagNameMap>(selector: K_3): SVGElementTagNameMap[K_3] | null; | ||
closest<K_4 extends keyof MathMLElementTagNameMap>(selector: K_4): MathMLElementTagNameMap[K_4] | null; | ||
closest<E extends Element = Element>(selectors: string): E | null; | ||
computedStyleMap(): StylePropertyMapReadOnly; | ||
getAttribute(qualifiedName: string): string | null; | ||
getAttributeNS(namespace: string | null, localName: string): string | null; | ||
getAttributeNames(): string[]; | ||
getAttributeNode(qualifiedName: string): Attr | null; | ||
getAttributeNodeNS(namespace: string | null, localName: string): Attr | null; | ||
getBoundingClientRect(): DOMRect; | ||
getClientRects(): DOMRectList; | ||
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>; | ||
getElementsByTagName<K_5 extends keyof HTMLElementTagNameMap>(qualifiedName: K_5): HTMLCollectionOf<HTMLElementTagNameMap[K_5]>; | ||
getElementsByTagName<K_6 extends keyof SVGElementTagNameMap>(qualifiedName: K_6): HTMLCollectionOf<SVGElementTagNameMap[K_6]>; | ||
getElementsByTagName<K_7 extends keyof MathMLElementTagNameMap>(qualifiedName: K_7): HTMLCollectionOf<MathMLElementTagNameMap[K_7]>; | ||
getElementsByTagName<K_8 extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K_8): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K_8]>; | ||
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>; | ||
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>; | ||
getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>; | ||
hasAttribute(qualifiedName: string): boolean; | ||
hasAttributeNS(namespace: string | null, localName: string): boolean; | ||
hasAttributes(): boolean; | ||
hasPointerCapture(pointerId: number): boolean; | ||
insertAdjacentElement(where: InsertPosition, element: Element): Element | null; | ||
insertAdjacentHTML(position: InsertPosition, text: string): void; | ||
insertAdjacentText(where: InsertPosition, data: string): void; | ||
matches(selectors: string): boolean; | ||
releasePointerCapture(pointerId: number): void; | ||
removeAttribute(qualifiedName: string): void; | ||
removeAttributeNS(namespace: string | null, localName: string): void; | ||
removeAttributeNode(attr: Attr): Attr; | ||
requestFullscreen(options?: FullscreenOptions | undefined): Promise<void>; | ||
requestPointerLock(): void; | ||
scroll(options?: ScrollToOptions | undefined): void; | ||
scroll(x: number, y: number): void; | ||
scrollBy(options?: ScrollToOptions | undefined): void; | ||
scrollBy(x: number, y: number): void; | ||
scrollIntoView(arg?: boolean | ScrollIntoViewOptions | undefined): void; | ||
scrollTo(options?: ScrollToOptions | undefined): void; | ||
scrollTo(x: number, y: number): void; | ||
setAttribute(qualifiedName: string, value: string): void; | ||
setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void; | ||
setAttributeNode(attr: Attr): Attr | null; | ||
setAttributeNodeNS(attr: Attr): Attr | null; | ||
setPointerCapture(pointerId: number): void; | ||
toggleAttribute(qualifiedName: string, force?: boolean | undefined): boolean; | ||
webkitMatchesSelector(selectors: string): boolean; | ||
readonly baseURI: string; | ||
readonly childNodes: NodeListOf<ChildNode>; | ||
readonly firstChild: ChildNode | null; | ||
readonly isConnected: boolean; | ||
readonly lastChild: ChildNode | null; | ||
readonly nextSibling: ChildNode | null; | ||
readonly nodeName: string; | ||
readonly nodeType: number; | ||
nodeValue: string | null; | ||
readonly parentElement: HTMLElement | null; | ||
readonly parentNode: ParentNode | null; | ||
readonly previousSibling: ChildNode | null; | ||
textContent: string | null; | ||
appendChild<T extends Node>(node: T): T; | ||
cloneNode(deep?: boolean | undefined): Node; | ||
compareDocumentPosition(other: Node): number; | ||
contains(other: Node | null): boolean; | ||
getRootNode(options?: GetRootNodeOptions | undefined): Node; | ||
hasChildNodes(): boolean; | ||
insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1; | ||
isDefaultNamespace(namespace: string | null): boolean; | ||
isEqualNode(otherNode: Node | null): boolean; | ||
isSameNode(otherNode: Node | null): boolean; | ||
lookupNamespaceURI(prefix: string | null): string | null; | ||
lookupPrefix(namespace: string | null): string | null; | ||
normalize(): void; | ||
removeChild<T_2 extends Node>(child: T_2): T_2; | ||
replaceChild<T_3 extends Node>(node: Node, child: T_3): T_3; | ||
readonly ELEMENT_NODE: 1; | ||
readonly ATTRIBUTE_NODE: 2; | ||
readonly TEXT_NODE: 3; | ||
readonly CDATA_SECTION_NODE: 4; | ||
readonly ENTITY_REFERENCE_NODE: 5; | ||
readonly ENTITY_NODE: 6; | ||
readonly PROCESSING_INSTRUCTION_NODE: 7; | ||
readonly COMMENT_NODE: 8; | ||
readonly DOCUMENT_NODE: 9; | ||
readonly DOCUMENT_TYPE_NODE: 10; | ||
readonly DOCUMENT_FRAGMENT_NODE: 11; | ||
readonly NOTATION_NODE: 12; | ||
readonly DOCUMENT_POSITION_DISCONNECTED: 1; | ||
readonly DOCUMENT_POSITION_PRECEDING: 2; | ||
readonly DOCUMENT_POSITION_FOLLOWING: 4; | ||
readonly DOCUMENT_POSITION_CONTAINS: 8; | ||
readonly DOCUMENT_POSITION_CONTAINED_BY: 16; | ||
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32; | ||
dispatchEvent(event: Event): boolean; | ||
ariaAtomic: string | null; | ||
ariaAutoComplete: string | null; | ||
ariaBusy: string | null; | ||
ariaChecked: string | null; | ||
ariaColCount: string | null; | ||
ariaColIndex: string | null; | ||
ariaColSpan: string | null; | ||
ariaCurrent: string | null; | ||
ariaDisabled: string | null; | ||
ariaExpanded: string | null; | ||
ariaHasPopup: string | null; | ||
ariaHidden: string | null; | ||
ariaInvalid: string | null; | ||
ariaKeyShortcuts: string | null; | ||
ariaLabel: string | null; | ||
ariaLevel: string | null; | ||
ariaLive: string | null; | ||
ariaModal: string | null; | ||
ariaMultiLine: string | null; | ||
ariaMultiSelectable: string | null; | ||
ariaOrientation: string | null; | ||
ariaPlaceholder: string | null; | ||
ariaPosInSet: string | null; | ||
ariaPressed: string | null; | ||
ariaReadOnly: string | null; | ||
ariaRequired: string | null; | ||
ariaRoleDescription: string | null; | ||
ariaRowCount: string | null; | ||
ariaRowIndex: string | null; | ||
ariaRowSpan: string | null; | ||
ariaSelected: string | null; | ||
ariaSetSize: string | null; | ||
ariaSort: string | null; | ||
ariaValueMax: string | null; | ||
ariaValueMin: string | null; | ||
ariaValueNow: string | null; | ||
ariaValueText: string | null; | ||
role: string | null; | ||
animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions | undefined): Animation; | ||
getAnimations(options?: GetAnimationsOptions | undefined): Animation[]; | ||
after(...nodes: (string | Node)[]): void; | ||
before(...nodes: (string | Node)[]): void; | ||
remove(): void; | ||
replaceWith(...nodes: (string | Node)[]): void; | ||
innerHTML: string; | ||
readonly nextElementSibling: Element | null; | ||
readonly previousElementSibling: Element | null; | ||
readonly childElementCount: number; | ||
readonly children: HTMLCollection; | ||
readonly firstElementChild: Element | null; | ||
readonly lastElementChild: Element | null; | ||
append(...nodes: (string | Node)[]): void; | ||
prepend(...nodes: (string | Node)[]): void; | ||
querySelector<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): HTMLElementTagNameMap[K_9] | null; | ||
querySelector<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): SVGElementTagNameMap[K_10] | null; | ||
querySelector<K_11 extends keyof MathMLElementTagNameMap>(selectors: K_11): MathMLElementTagNameMap[K_11] | null; | ||
querySelector<K_12 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_12): HTMLElementDeprecatedTagNameMap[K_12] | null; | ||
querySelector<E_1 extends Element = Element>(selectors: string): E_1 | null; | ||
querySelectorAll<K_13 extends keyof HTMLElementTagNameMap>(selectors: K_13): NodeListOf<HTMLElementTagNameMap[K_13]>; | ||
querySelectorAll<K_14 extends keyof SVGElementTagNameMap>(selectors: K_14): NodeListOf<SVGElementTagNameMap[K_14]>; | ||
querySelectorAll<K_15 extends keyof MathMLElementTagNameMap>(selectors: K_15): NodeListOf<MathMLElementTagNameMap[K_15]>; | ||
querySelectorAll<K_16 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_16): NodeListOf<HTMLElementDeprecatedTagNameMap[K_16]>; | ||
querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>; | ||
replaceChildren(...nodes: (string | Node)[]): void; | ||
readonly assignedSlot: HTMLSlotElement | null; | ||
readonly attributeStyleMap: StylePropertyMap; | ||
readonly style: CSSStyleDeclaration; | ||
contentEditable: string; | ||
enterKeyHint: string; | ||
inputMode: string; | ||
readonly isContentEditable: boolean; | ||
onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; | ||
onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; | ||
onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null; | ||
onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; | ||
oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; | ||
ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onerror: OnErrorEventHandler; | ||
onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; | ||
onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null; | ||
ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; | ||
onload: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; | ||
onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null; | ||
onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; | ||
onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent<EventTarget>) => any) | null; | ||
onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; | ||
onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null; | ||
onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null; | ||
onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; | ||
ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; | ||
onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null; | ||
onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null; | ||
autofocus: boolean; | ||
readonly dataset: DOMStringMap; | ||
nonce?: string | undefined; | ||
tabIndex: number; | ||
blur(): void; | ||
focus(options?: FocusOptions | undefined): void; | ||
}; | ||
name: string | undefined; | ||
styles: CSSResultGroup; | ||
}; | ||
export declare const prepare_carbon: <C extends Context>(context: C) => (settings: ShadowSettings, renderer: CarbonRenderer<C>) => typeof GoldElement; |
import { css } from "lit"; | ||
import { Use } from "./parts/use.js"; | ||
import { UseGold } from "./parts/use_gold.js"; | ||
import { GoldElement } from "../element/gold.js"; | ||
import { UseCarbon } from "./parts/use/tailored.js"; | ||
import { setup_reactivity } from "./parts/setup_reactivity.js"; | ||
export const prepare_carbon = ((context) => (settings, renderer) => (class extends GoldElement { | ||
export const prepare_carbon = ((context) => (settings, renderer) => class extends GoldElement { | ||
static name = settings.name; | ||
@@ -12,4 +11,4 @@ static styles = [ | ||
]; | ||
#use = new UseGold(this, this.root, () => void this.requestUpdate(), context); | ||
#rend = Use.wrap(this.#use, () => renderer(this.#use)); | ||
#use = new UseCarbon(this, this.root, () => void this.requestUpdate(), context); | ||
#rend = UseCarbon.wrap(this.#use, () => renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, () => void this.requestUpdate()); | ||
@@ -21,9 +20,9 @@ render() { | ||
super.connectedCallback(); | ||
Use.reconnect(this.#use); | ||
UseCarbon.reconnect(this.#use); | ||
} | ||
disconnectedCallback() { | ||
super.disconnectedCallback(); | ||
Use.disconnect(this.#use); | ||
UseCarbon.disconnect(this.#use); | ||
} | ||
})); | ||
}); | ||
//# sourceMappingURL=carbon.js.map |
@@ -1,31 +0,7 @@ | ||
import { Part } from "lit"; | ||
import { Context } from "./context.js"; | ||
import { UseShadow } from "./parts/use_shadow.js"; | ||
import { ObsidianInput, ShadowSettings, ObsidianRenderer } from "./parts/types.js"; | ||
export declare const prepare_obsidian: <C extends Context>(context: C) => <P extends any[]>(settings: ShadowSettings | undefined, renderer: ObsidianRenderer<C, P>) => (props: any[], meta?: Partial<{ | ||
import { ShadowSettings, ObsidianRenderer } from "./parts/types.js"; | ||
export declare const prepare_obsidian: <C extends Context>(context: C) => <P extends any[]>(settings: ShadowSettings | undefined, renderer: ObsidianRenderer<C, P>) => (props: P, meta?: Partial<{ | ||
content: import("lit-html").TemplateResult; | ||
auto_exportparts: boolean; | ||
attrs: import("./parts/types.js").ShadowAttrs; | ||
}>) => import("lit-html/directive.js").DirectiveResult<{ | ||
new (_partInfo: import("lit-html/directive.js").PartInfo): { | ||
"__#25@#input"?: ObsidianInput<P> | undefined; | ||
"__#25@#root": { | ||
container: HTMLElement; | ||
shadow: ShadowRoot; | ||
auto_exportparts: boolean; | ||
render_into_shadow(content: void | import("lit-html").TemplateResult): HTMLElement; | ||
}; | ||
"__#25@#rerender": import("../tools/debounce/types.js").DebounceReturn<() => void>; | ||
"__#25@#use": UseShadow<C, HTMLElement>; | ||
"__#25@#rend": (...props: P) => void | import("lit-html").TemplateResult; | ||
"__#25@#render_with_reactivity": (...props: P) => void | import("lit-html").TemplateResult; | ||
update(_: Part, props: [ObsidianInput<P>]): HTMLElement; | ||
render(input: ObsidianInput<P>): void | import("lit-html").TemplateResult; | ||
reconnected(): void; | ||
disconnected(): void; | ||
isConnected: boolean; | ||
_$initialize(part: Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; | ||
setValue(value: unknown): void; | ||
readonly _$isConnected: boolean; | ||
}; | ||
}>; | ||
}>) => import("lit-html/directive.js").DirectiveResult<any>; |
import { css } from "lit"; | ||
import { AsyncDirective } from "lit/async-directive.js"; | ||
import { Use } from "./parts/use.js"; | ||
import { make_view_root } from "./parts/root.js"; | ||
import { UseShadow } from "./parts/use_shadow.js"; | ||
import { UseObsidian } from "./parts/use/tailored.js"; | ||
import { debounce } from "../tools/debounce/debounce.js"; | ||
@@ -17,4 +16,4 @@ import { apply_details } from "./parts/apply_details.js"; | ||
}); | ||
#use = new UseShadow(this.#root.container, this.#root.shadow, this.#rerender, context); | ||
#rend = Use.wrap(this.#use, renderer(this.#use)); | ||
#use = new UseObsidian(this.#root.container, this.#root.shadow, this.#rerender, context); | ||
#rend = UseObsidian.wrap(this.#use, renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, this.#rerender); | ||
@@ -31,8 +30,8 @@ update(_, props) { | ||
reconnected() { | ||
Use.reconnect(this.#use); | ||
UseObsidian.reconnect(this.#use); | ||
} | ||
disconnected() { | ||
Use.disconnect(this.#use); | ||
UseObsidian.disconnect(this.#use); | ||
} | ||
}))); | ||
//# sourceMappingURL=obsidian.js.map |
import { Context } from "./context.js"; | ||
import { UseSilver } from "./parts/use_silver.js"; | ||
import { OxygenRenderer } from "./parts/types.js"; | ||
import { UseOxygen } from "./parts/use/tailored.js"; | ||
export declare const prepare_oxygen: <C extends Context>(context: C) => (renderer: OxygenRenderer<C>) => { | ||
new (): { | ||
[x: string]: any; | ||
"__#23@#use": UseSilver<C>; | ||
"__#23@#use": UseOxygen<C>; | ||
"__#23@#rend": () => void | import("lit-html").TemplateResult; | ||
@@ -9,0 +9,0 @@ "__#23@#render_with_reactivity": () => void | import("lit-html").TemplateResult; |
@@ -1,8 +0,7 @@ | ||
import { Use } from "./parts/use.js"; | ||
import { UseSilver } from "./parts/use_silver.js"; | ||
import { UseOxygen } from "./parts/use/tailored.js"; | ||
import { SilverElement } from "../element/silver.js"; | ||
import { setup_reactivity } from "./parts/setup_reactivity.js"; | ||
export const prepare_oxygen = ((context) => (renderer) => (class extends SilverElement { | ||
#use = new UseSilver(this, () => void this.requestUpdate(), context); | ||
#rend = Use.wrap(this.#use, () => renderer(this.#use)); | ||
#use = new UseOxygen(this, () => void this.requestUpdate(), context); | ||
#rend = UseOxygen.wrap(this.#use, () => renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, () => void this.requestUpdate()); | ||
@@ -14,9 +13,9 @@ render() { | ||
super.connectedCallback(); | ||
Use.reconnect(this.#use); | ||
UseOxygen.reconnect(this.#use); | ||
} | ||
disconnectedCallback() { | ||
super.disconnectedCallback(); | ||
Use.disconnect(this.#use); | ||
UseOxygen.disconnect(this.#use); | ||
} | ||
})); | ||
//# sourceMappingURL=oxygen.js.map |
import { ObsidianMeta } from "./types.js"; | ||
import { DirectiveClass, DirectiveResult } from "lit/async-directive.js"; | ||
export declare const obsidian_custom_lit_directive: <C extends DirectiveClass, P extends any[]>(c: C) => (props: P, meta?: ObsidianMeta) => DirectiveResult<C>; | ||
import { DirectiveResult } from "lit/async-directive.js"; | ||
export declare const obsidian_custom_lit_directive: <P extends any[]>(c: any) => (props: P, meta?: ObsidianMeta) => DirectiveResult<any>; |
export function setup_reactivity(context, render, rerender) { | ||
let stop_cues = undefined; | ||
let stop_signals = undefined; | ||
let stop_flat = undefined; | ||
function render_and_track_cues(...props) { | ||
if (stop_cues) | ||
stop_cues(); | ||
function render_and_track_signals(...props) { | ||
if (stop_signals) | ||
stop_signals(); | ||
let result = undefined; | ||
stop_cues = context.tower.track(() => { result = render(...props); }, rerender); | ||
stop_signals = context.tower.track(() => { result = render(...props); }, rerender); | ||
return result; | ||
@@ -18,3 +18,3 @@ } | ||
discover: false, | ||
collector: () => { result = render_and_track_cues(...props); }, | ||
collector: () => { result = render_and_track_signals(...props); }, | ||
responder: rerender, | ||
@@ -21,0 +21,0 @@ }); |
@@ -1,11 +0,11 @@ | ||
import { CSSResultGroup, TemplateResult } from "lit"; | ||
import { Use } from "./use.js"; | ||
import { DirectiveResult } from "lit/async-directive.js"; | ||
import { CSSResult, CSSResultGroup, TemplateResult } from "lit"; | ||
import { Context } from "../context.js"; | ||
import { UseGold } from "./use_gold.js"; | ||
import { UseShadow } from "./use_shadow.js"; | ||
import { UseSilver } from "./use_silver.js"; | ||
export type QuartzRenderer<C extends Context, P extends any[]> = ((use: Use<C>) => (...props: P) => (TemplateResult | void)); | ||
export type ObsidianRenderer<C extends Context, P extends any[]> = ((use: UseShadow<C, HTMLElement>) => (...props: P) => (TemplateResult | void)); | ||
export type OxygenRenderer<C extends Context> = ((use: UseSilver<C>) => (TemplateResult | void)); | ||
export type CarbonRenderer<C extends Context> = ((use: UseGold<C>) => (TemplateResult | void)); | ||
import { UseCarbon, UseObsidian, UseOxygen, UseQuartz } from "./use/tailored.js"; | ||
export type QuartzRenderer<C extends Context, P extends any[]> = ((use: UseQuartz<C>) => (...props: P) => (TemplateResult | void)); | ||
export type ObsidianRenderer<C extends Context, P extends any[]> = ((use: UseObsidian<C, HTMLElement>) => (...props: P) => (TemplateResult | void)); | ||
export type OxygenRenderer<C extends Context> = ((use: UseOxygen<C>) => (TemplateResult | void)); | ||
export type CarbonRenderer<C extends Context> = ((use: UseCarbon<C>) => (TemplateResult | void)); | ||
export type QuartzView<P extends any[]> = ((...props: P) => DirectiveResult<any>); | ||
export type ObsidianView<P extends any[]> = ((props: P, meta?: ObsidianMeta) => DirectiveResult<any>); | ||
export type ShadowAttrs = Partial<{ | ||
@@ -30,4 +30,4 @@ class: string; | ||
name?: string; | ||
styles?: CSSResultGroup; | ||
styles?: CSSResultGroup | CSSResult; | ||
auto_exportparts?: boolean; | ||
}; |
@@ -1,20 +0,4 @@ | ||
import { Use } from "./parts/use.js"; | ||
import { DirectiveResult } from "lit/async-directive.js"; | ||
import { Context } from "./context.js"; | ||
import { QuartzRenderer } from "./parts/types.js"; | ||
export declare const prepare_quartz: <C extends Context>(context: C) => <P extends any[]>(renderer: QuartzRenderer<C, P>) => (...values: P) => import("lit-html/directive.js").DirectiveResult<{ | ||
new (_partInfo: import("lit-html/directive.js").PartInfo): { | ||
"__#24@#props"?: P | undefined; | ||
"__#24@#rerender": import("../tools/debounce/types.js").DebounceReturn<() => void>; | ||
"__#24@#use": Use<C>; | ||
"__#24@#rend": (...props: P) => void | import("lit-html").TemplateResult; | ||
"__#24@#render_with_reactivity": (...props: P) => void | import("lit-html").TemplateResult; | ||
render(...props: P): void | import("lit-html").TemplateResult; | ||
reconnected(): void; | ||
disconnected(): void; | ||
isConnected: boolean; | ||
_$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; | ||
setValue(value: unknown): void; | ||
readonly _$isConnected: boolean; | ||
update(_part: import("lit-html").Part, props: unknown[]): unknown; | ||
}; | ||
}>; | ||
export declare const prepare_quartz: <C extends Context>(context: C) => <P extends any[]>(renderer: QuartzRenderer<C, P>) => (...props: P) => DirectiveResult<any>; |
import { AsyncDirective, directive } from "lit/async-directive.js"; | ||
import { Use } from "./parts/use.js"; | ||
import { UseQuartz } from "./parts/use/tailored.js"; | ||
import { debounce } from "../tools/debounce/debounce.js"; | ||
@@ -11,4 +11,4 @@ import { setup_reactivity } from "./parts/setup_reactivity.js"; | ||
}); | ||
#use = new Use(this.#rerender, context); | ||
#rend = Use.wrap(this.#use, renderer(this.#use)); | ||
#use = new UseQuartz(this.#rerender, context); | ||
#rend = UseQuartz.wrap(this.#use, renderer(this.#use)); | ||
#render_with_reactivity = setup_reactivity(context, this.#rend, this.#rerender); | ||
@@ -20,8 +20,8 @@ render(...props) { | ||
reconnected() { | ||
Use.reconnect(this.#use); | ||
UseQuartz.reconnect(this.#use); | ||
} | ||
disconnected() { | ||
Use.disconnect(this.#use); | ||
UseQuartz.disconnect(this.#use); | ||
} | ||
})); | ||
//# sourceMappingURL=quartz.js.map |
@@ -41,3 +41,3 @@ import { debounce } from "../tools/debounce/debounce.js"; | ||
if (this.#lock) | ||
throw new SignalCircularError("you can't set a cue in a cue's subscription listener (infinite loop forbidden)"); | ||
throw new SignalCircularError("you can't set a signal in a signal's subscription listener (infinite loop forbidden)"); | ||
this.#value = s; | ||
@@ -44,0 +44,0 @@ this.publish(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
326
550765
8981