@sken-ds/primitives 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +9 -9
- package/dist/rolldown-runtime-BRfZIaNm.js +17 -0
- package/dist/sken-button.js +2 -2
- package/dist/sken-button.js.map +1 -1
- package/dist/sken-combobox.js +56 -65
- package/dist/sken-combobox.js.map +1 -1
- package/dist/{sken-datatable-ChDjB_T_.js → sken-datatable-jx_jh1Fu.js} +157 -217
- package/dist/sken-datatable-jx_jh1Fu.js.map +1 -0
- package/dist/sken-datatable.js +1 -1
- package/dist/sken-dialog.js +241 -2
- package/dist/sken-dialog.js.map +1 -0
- package/dist/sken-input.js +3 -3
- package/dist/sken-input.js.map +1 -1
- package/dist/sken-layout.js +4 -10
- package/dist/sken-layout.js.map +1 -1
- package/dist/sken-number-input.js +6 -3
- package/dist/sken-number-input.js.map +1 -1
- package/dist/sken-textarea.js +2 -2
- package/dist/sken-textarea.js.map +1 -1
- package/package.json +7 -5
- package/dist/directive-BcLtPdVO.js +0 -263
- package/dist/directive-BcLtPdVO.js.map +0 -1
- package/dist/sken-datatable-ChDjB_T_.js.map +0 -1
- package/dist/sken-dialog-BvRZxwSk.js +0 -258
- package/dist/sken-dialog-BvRZxwSk.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sken-textarea.js","names":["#internalValue","#syncFormValue","#internals","#handleInput","#handleChange","#handleFocus","#handleBlur","#handleKeydown"],"sources":["../src/components/sken-textarea.ts"],"sourcesContent":["// ── <sken-textarea> — framework-ready Web Component ────────────────\n// Multiline text input. Wraps a native <textarea> with token-driven\n// styles and the same shadow-DOM event surface as <sken-input>.\n// Slots are placed above (start) and below (end) the textarea, not\n// to the sides — multiline editors don't lend themselves to\n// horizontal adornments the way single-line inputs do.\n//\n// Requires @sken-ds/theme/css (ADR-0006). Pairs with @sken-ds/contracts'\n// SkenTextareaProps / SkenTextareaSlots / SkenTextareaEmits.\n\nimport type { SkenTextareaResize, SkenTextareaSize } from '@sken-ds/contracts'\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('sken-textarea')\nexport class SkenTextarea extends LitElement {\n // Form-associated custom element. Opt in to the\n // ElementInternals API so this primitive participates in\n // the surrounding <form>'s submit/reset lifecycle and\n // FormData(form) picks up the textarea's value under its\n // `name` attribute. See SkenInput for the full rationale;\n // the pattern is identical. Lit docs:\n // https://lit.dev/docs/components/form/\n static formAssociated = true\n\n // The ElementInternals instance. Created in the constructor\n // via attachInternals(), which the browser only makes\n // available because `formAssociated` is true. Nullable to\n // gracefully degrade in test environments that do not\n // implement ElementInternals.\n #internals: ElementInternals | null = null\n\n constructor() {\n super()\n try {\n this.#internals = this.attachInternals()\n } catch {\n this.#internals = null\n }\n }\n\n @property({ reflect: true }) size: SkenTextareaSize = 'md'\n @property({ reflect: true, type: Number }) rows = 4\n @property({ reflect: true, type: Number }) cols: number | undefined = undefined\n @property({ attribute: 'max-length', type: Number }) maxLength: number | undefined = undefined\n @property({ reflect: true }) resize: SkenTextareaResize = 'vertical'\n @property() placeholder: string | undefined = undefined\n @property() value: string | undefined = undefined\n @property({ attribute: 'default-value' }) defaultValue: string | undefined = undefined\n @property({ reflect: true, type: Boolean }) disabled = false\n @property({ reflect: true, type: Boolean }) readonly = false\n @property({ reflect: true, type: Boolean }) required = false\n @property({ reflect: true, type: Boolean }) invalid = false\n @property({ attribute: 'described-by-id' }) describedById: string | undefined = undefined\n @property() name: string | undefined = undefined\n\n // Internal value for uncontrolled mode. Seeded from `defaultValue`\n // on first connection; from then on the DOM textarea keeps the\n // source of truth. Same pattern as SkenInput.\n #internalValue: string = ''\n\n static styles = css`\n :host {\n display: inline-block;\n inline-size: 100%;\n }\n\n .textarea-wrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n }\n\n textarea {\n box-sizing: border-box;\n inline-size: 100%;\n border: 1px solid var(--sken-border);\n border-radius: var(--sken-md);\n background: var(--sken-input);\n color: var(--sken-foreground);\n font-family: var(--sken-family-sans);\n font-size: var(--sken-size-md);\n line-height: 1.5;\n padding-block: var(--sken-2);\n padding-inline: var(--sken-3);\n min-block-size: 4.5rem;\n transition:\n border-color 120ms ease,\n box-shadow 120ms ease;\n /* Resize is controlled by the resize attribute, not by\n user-agent stylesheet, so consumers can override. */\n }\n\n textarea::placeholder {\n color: var(--sken-muted-foreground);\n opacity: 1;\n }\n\n /* ── Slot containers ──────────────────────────────────────\n Position: relative (not absolute) so the slotted content\n flows naturally above and below the textarea. The wrapper\n has a flex column, so the textarea's vertical padding is\n NOT auto-adjusted (unlike SkenInput). Slot height adds to\n the wrapper's natural height. */\n .slot {\n display: flex;\n align-items: center;\n color: var(--sken-muted-foreground);\n min-block-size: 0.25rem;\n }\n\n .slot-start {\n padding-block-end: 0.25rem;\n }\n\n .slot-end {\n padding-block-start: 0.25rem;\n }\n\n /* ── Sizes ────────────────────────────────────────────────── */\n :host([size='sm']) textarea {\n padding-block: var(--sken-1);\n padding-inline: var(--sken-2);\n font-size: var(--sken-size-sm);\n }\n :host([size='md']) textarea {\n /* Default styles above. */\n }\n :host([size='lg']) textarea {\n padding-block: var(--sken-3);\n padding-inline: var(--sken-4);\n font-size: var(--sken-size-lg);\n }\n\n /* ── Resize policies ────────────────────────────────────── */\n :host([resize='none']) textarea {\n resize: none;\n }\n :host([resize='vertical']) textarea {\n resize: vertical;\n }\n :host([resize='horizontal']) textarea {\n resize: horizontal;\n }\n :host([resize='both']) textarea {\n resize: both;\n }\n\n /* ── States ───────────────────────────────────────────────── */\n .textarea-wrapper:hover textarea:not(:disabled):not(:read-only) {\n border-color: var(--sken-foreground);\n }\n .textarea-wrapper:focus-within textarea {\n outline: 2px solid var(--sken-ring, currentColor);\n outline-offset: 2px;\n border-color: var(--sken-primary);\n }\n textarea:disabled {\n cursor: not-allowed;\n opacity: var(--sken-disabled);\n }\n textarea:read-only {\n background: var(--sken-muted);\n }\n :host([invalid]) textarea {\n border-color: var(--sken-destructive);\n }\n :host([invalid]) .textarea-wrapper:focus-within textarea {\n outline-color: var(--sken-destructive);\n }\n `\n\n override connectedCallback(): void {\n super.connectedCallback()\n if (this.value === undefined) {\n this.#internalValue = this.defaultValue ?? ''\n }\n // Publish the initial value to the surrounding form.\n this.#syncFormValue()\n }\n\n // ── Form-association callbacks ─────────────────────────────\n // formResetCallback: for uncontrolled mode, restore the seed\n // value and re-publish. For controlled mode, re-render and\n // let Lit re-publish the controlled value.\n formResetCallback(): void {\n if (this.value === undefined) {\n this.#internalValue = this.defaultValue ?? ''\n const ta = this.renderRoot.querySelector('textarea') as HTMLTextAreaElement | null\n if (ta) ta.value = this.#internalValue\n this.#syncFormValue()\n } else {\n this.requestUpdate()\n }\n }\n\n // formDisabledCallback: mirror the form's :disabled state onto\n // the prop. Lit re-renders; the inner <textarea> picks up\n // `?disabled=${this.disabled}` in the template.\n formDisabledCallback(isDisabled: boolean): void {\n this.disabled = isDisabled\n }\n\n // Publish the current value to the form. Called on every\n // change so FormData and submit/reset stay in sync.\n #syncFormValue(): void {\n if (!this.#internals) return\n const value = this.value ?? this.#internalValue\n this.#internals.setFormValue(value)\n }\n\n protected override render() {\n const value = this.value ?? this.#internalValue\n return html`\n <div class=\"textarea-wrapper\" part=\"wrapper\">\n <div class=\"slot slot-start\" part=\"slot-start\">\n <slot name=\"start\"></slot>\n </div>\n <textarea\n part=\"textarea\"\n .value=${value}\n rows=${this.rows}\n cols=${this.cols ?? ''}\n maxlength=${this.maxLength ?? ''}\n placeholder=${this.placeholder ?? ''}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n aria-invalid=${this.invalid ? 'true' : 'false'}\n aria-describedby=${this.describedById ?? ''}\n name=${this.name ?? ''}\n @input=${this.#handleInput}\n @change=${this.#handleChange}\n @focus=${this.#handleFocus}\n @blur=${this.#handleBlur}\n @keydown=${this.#handleKeydown}\n ></textarea>\n <div class=\"slot slot-end\" part=\"slot-end\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n `\n }\n\n // composed: true on every event so the framework adapter outside\n // the shadow boundary can listen. Mirrors SkenInput.\n #handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n const newValue = target.value\n if (this.value === undefined) this.#internalValue = newValue\n // Publish the new value to the surrounding form so submit\n // and FormData see the latest text. Per-keystroke is fine:\n // setFormValue is cheap.\n this.#syncFormValue()\n this.dispatchEvent(\n new CustomEvent<string>('sken-input', { detail: newValue, bubbles: true, composed: true }),\n )\n }\n\n #handleChange = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n this.#syncFormValue()\n this.dispatchEvent(\n new CustomEvent<string>('sken-change', {\n detail: target.value,\n bubbles: true,\n composed: true,\n }),\n )\n }\n\n #handleFocus = (event: FocusEvent) => {\n this.dispatchEvent(\n new CustomEvent<FocusEvent>('sken-focus', { detail: event, bubbles: true, composed: true }),\n )\n }\n\n #handleBlur = (event: FocusEvent) => {\n this.dispatchEvent(\n new CustomEvent<FocusEvent>('sken-blur', { detail: event, bubbles: true, composed: true }),\n )\n }\n\n // Wire Enter-on-the-inner-textarea to the host's associated\n // form. Mirrors SkenInput.#handleKeydown with one key\n // difference: textareas are multiline, so the user can press\n // Shift+Enter to insert a newline. Only Enter WITHOUT shift\n // submits. The browser's implicit submission algorithm does\n // not see the inner textarea (shadow boundary), so we bridge\n // it ourselves via `internals.form.requestSubmit()`.\n // `isComposing` guards IME composition (Enter to confirm a\n // kanji candidate is not a submit intent).\n #handleKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Enter' || event.isComposing) return\n if (event.shiftKey) return // newline; let the browser insert it\n if (this.disabled || this.readonly) return\n // preventDefault runs even without ElementInternals support,\n // keeping the observable behaviour consistent.\n event.preventDefault()\n const form = this.#internals?.form\n if (!form) return\n form.requestSubmit()\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sken-textarea': SkenTextarea\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sken-textarea.js","names":["#internalValue","#syncFormValue","#internals","#handleInput","#handleChange","#handleFocus","#handleBlur","#handleKeydown"],"sources":["../src/components/sken-textarea.ts"],"sourcesContent":["// ── <sken-textarea> — framework-ready Web Component ────────────────\n// Multiline text input. Wraps a native <textarea> with token-driven\n// styles and the same shadow-DOM event surface as <sken-input>.\n// Slots are placed above (start) and below (end) the textarea, not\n// to the sides — multiline editors don't lend themselves to\n// horizontal adornments the way single-line inputs do.\n//\n// Requires @sken-ds/theme/css (ADR-0006). Pairs with @sken-ds/contracts'\n// SkenTextareaProps / SkenTextareaSlots / SkenTextareaEmits.\n\nimport type { SkenTextareaResize, SkenTextareaSize } from '@sken-ds/contracts'\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('sken-textarea')\nexport class SkenTextarea extends LitElement {\n // Form-associated custom element. Opt in to the\n // ElementInternals API so this primitive participates in\n // the surrounding <form>'s submit/reset lifecycle and\n // FormData(form) picks up the textarea's value under its\n // `name` attribute. See SkenInput for the full rationale;\n // the pattern is identical. Lit docs:\n // https://lit.dev/docs/components/form/\n static formAssociated = true\n\n // The ElementInternals instance. Created in the constructor\n // via attachInternals(), which the browser only makes\n // available because `formAssociated` is true. Nullable to\n // gracefully degrade in test environments that do not\n // implement ElementInternals.\n #internals: ElementInternals | undefined = undefined\n\n constructor() {\n super()\n try {\n this.#internals = this.attachInternals()\n } catch {\n this.#internals = undefined\n }\n }\n\n @property({ reflect: true }) size: SkenTextareaSize = 'md'\n @property({ reflect: true, type: Number }) rows = 4\n @property({ reflect: true, type: Number }) cols: number | undefined = undefined\n @property({ attribute: 'max-length', type: Number }) maxLength: number | undefined = undefined\n @property({ reflect: true }) resize: SkenTextareaResize = 'vertical'\n @property() placeholder: string | undefined = undefined\n @property() value: string | undefined = undefined\n @property({ attribute: 'default-value' }) defaultValue: string | undefined = undefined\n @property({ reflect: true, type: Boolean }) disabled = false\n @property({ reflect: true, type: Boolean }) readonly = false\n @property({ reflect: true, type: Boolean }) required = false\n @property({ reflect: true, type: Boolean }) invalid = false\n @property({ attribute: 'described-by-id' }) describedById: string | undefined = undefined\n @property() name: string | undefined = undefined\n\n // Internal value for uncontrolled mode. Seeded from `defaultValue`\n // on first connection; from then on the DOM textarea keeps the\n // source of truth. Same pattern as SkenInput.\n #internalValue: string = ''\n\n static styles = css`\n :host {\n display: inline-block;\n inline-size: 100%;\n }\n\n .textarea-wrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n }\n\n textarea {\n box-sizing: border-box;\n inline-size: 100%;\n border: 1px solid var(--sken-border);\n border-radius: var(--sken-md);\n background: var(--sken-input);\n color: var(--sken-foreground);\n font-family: var(--sken-family-sans);\n font-size: var(--sken-size-md);\n line-height: 1.5;\n padding-block: var(--sken-2);\n padding-inline: var(--sken-3);\n min-block-size: 4.5rem;\n transition:\n border-color 120ms ease,\n box-shadow 120ms ease;\n /* Resize is controlled by the resize attribute, not by\n user-agent stylesheet, so consumers can override. */\n }\n\n textarea::placeholder {\n color: var(--sken-muted-foreground);\n opacity: 1;\n }\n\n /* ── Slot containers ──────────────────────────────────────\n Position: relative (not absolute) so the slotted content\n flows naturally above and below the textarea. The wrapper\n has a flex column, so the textarea's vertical padding is\n NOT auto-adjusted (unlike SkenInput). Slot height adds to\n the wrapper's natural height. */\n .slot {\n display: flex;\n align-items: center;\n color: var(--sken-muted-foreground);\n min-block-size: 0.25rem;\n }\n\n .slot-start {\n padding-block-end: 0.25rem;\n }\n\n .slot-end {\n padding-block-start: 0.25rem;\n }\n\n /* ── Sizes ────────────────────────────────────────────────── */\n :host([size='sm']) textarea {\n padding-block: var(--sken-1);\n padding-inline: var(--sken-2);\n font-size: var(--sken-size-sm);\n }\n :host([size='md']) textarea {\n /* Default styles above. */\n }\n :host([size='lg']) textarea {\n padding-block: var(--sken-3);\n padding-inline: var(--sken-4);\n font-size: var(--sken-size-lg);\n }\n\n /* ── Resize policies ────────────────────────────────────── */\n :host([resize='none']) textarea {\n resize: none;\n }\n :host([resize='vertical']) textarea {\n resize: vertical;\n }\n :host([resize='horizontal']) textarea {\n resize: horizontal;\n }\n :host([resize='both']) textarea {\n resize: both;\n }\n\n /* ── States ───────────────────────────────────────────────── */\n .textarea-wrapper:hover textarea:not(:disabled):not(:read-only) {\n border-color: var(--sken-foreground);\n }\n .textarea-wrapper:focus-within textarea {\n outline: 2px solid var(--sken-ring, currentColor);\n outline-offset: 2px;\n border-color: var(--sken-primary);\n }\n textarea:disabled {\n cursor: not-allowed;\n opacity: var(--sken-disabled);\n }\n textarea:read-only {\n background: var(--sken-muted);\n }\n :host([invalid]) textarea {\n border-color: var(--sken-destructive);\n }\n :host([invalid]) .textarea-wrapper:focus-within textarea {\n outline-color: var(--sken-destructive);\n }\n `\n\n override connectedCallback(): void {\n super.connectedCallback()\n if (this.value === undefined) {\n this.#internalValue = this.defaultValue ?? ''\n }\n // Publish the initial value to the surrounding form.\n this.#syncFormValue()\n }\n\n // ── Form-association callbacks ─────────────────────────────\n // formResetCallback: for uncontrolled mode, restore the seed\n // value and re-publish. For controlled mode, re-render and\n // let Lit re-publish the controlled value.\n formResetCallback(): void {\n if (this.value === undefined) {\n this.#internalValue = this.defaultValue ?? ''\n const ta = this.renderRoot.querySelector('textarea') as HTMLTextAreaElement | null\n if (ta) ta.value = this.#internalValue\n this.#syncFormValue()\n } else {\n this.requestUpdate()\n }\n }\n\n // formDisabledCallback: mirror the form's :disabled state onto\n // the prop. Lit re-renders; the inner <textarea> picks up\n // `?disabled=${this.disabled}` in the template.\n formDisabledCallback(isDisabled: boolean): void {\n this.disabled = isDisabled\n }\n\n // Publish the current value to the form. Called on every\n // change so FormData and submit/reset stay in sync.\n #syncFormValue(): void {\n if (!this.#internals) return\n const value = this.value ?? this.#internalValue\n this.#internals.setFormValue(value)\n }\n\n protected override render() {\n const value = this.value ?? this.#internalValue\n return html`\n <div class=\"textarea-wrapper\" part=\"wrapper\">\n <div class=\"slot slot-start\" part=\"slot-start\">\n <slot name=\"start\"></slot>\n </div>\n <textarea\n part=\"textarea\"\n .value=${value}\n rows=${this.rows}\n cols=${this.cols ?? ''}\n maxlength=${this.maxLength ?? ''}\n placeholder=${this.placeholder ?? ''}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n aria-invalid=${this.invalid ? 'true' : 'false'}\n aria-describedby=${this.describedById ?? ''}\n name=${this.name ?? ''}\n @input=${this.#handleInput}\n @change=${this.#handleChange}\n @focus=${this.#handleFocus}\n @blur=${this.#handleBlur}\n @keydown=${this.#handleKeydown}\n ></textarea>\n <div class=\"slot slot-end\" part=\"slot-end\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n `\n }\n\n // composed: true on every event so the framework adapter outside\n // the shadow boundary can listen. Mirrors SkenInput.\n #handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n const newValue = target.value\n if (this.value === undefined) this.#internalValue = newValue\n // Publish the new value to the surrounding form so submit\n // and FormData see the latest text. Per-keystroke is fine:\n // setFormValue is cheap.\n this.#syncFormValue()\n this.dispatchEvent(\n new CustomEvent<string>('sken-input', { detail: newValue, bubbles: true, composed: true }),\n )\n }\n\n #handleChange = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n this.#syncFormValue()\n this.dispatchEvent(\n new CustomEvent<string>('sken-change', {\n detail: target.value,\n bubbles: true,\n composed: true,\n }),\n )\n }\n\n #handleFocus = (event: FocusEvent) => {\n this.dispatchEvent(\n new CustomEvent<FocusEvent>('sken-focus', { detail: event, bubbles: true, composed: true }),\n )\n }\n\n #handleBlur = (event: FocusEvent) => {\n this.dispatchEvent(\n new CustomEvent<FocusEvent>('sken-blur', { detail: event, bubbles: true, composed: true }),\n )\n }\n\n // Wire Enter-on-the-inner-textarea to the host's associated\n // form. Mirrors SkenInput.#handleKeydown with one key\n // difference: textareas are multiline, so the user can press\n // Shift+Enter to insert a newline. Only Enter WITHOUT shift\n // submits. The browser's implicit submission algorithm does\n // not see the inner textarea (shadow boundary), so we bridge\n // it ourselves via `internals.form.requestSubmit()`.\n // `isComposing` guards IME composition (Enter to confirm a\n // kanji candidate is not a submit intent).\n #handleKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Enter' || event.isComposing) return\n if (event.shiftKey) return // newline; let the browser insert it\n if (this.disabled || this.readonly) return\n // preventDefault runs even without ElementInternals support,\n // keeping the observable behaviour consistent.\n event.preventDefault()\n const form = this.#internals?.form\n if (!form) return\n form.requestSubmit()\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sken-textarea': SkenTextarea\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sken-ds/primitives",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org",
|
|
6
6
|
"access": "public"
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"type": "module",
|
|
10
10
|
"sideEffects": [
|
|
11
11
|
"**/*.ts",
|
|
12
|
-
"**/*.css"
|
|
12
|
+
"**/*.css",
|
|
13
|
+
"dist/**/*.js"
|
|
13
14
|
],
|
|
14
15
|
"main": "./dist/index.js",
|
|
15
16
|
"types": "./dist/index.d.ts",
|
|
@@ -86,13 +87,14 @@
|
|
|
86
87
|
],
|
|
87
88
|
"dependencies": {
|
|
88
89
|
"@lit/context": "^1.1.6",
|
|
89
|
-
"@siemens/ix": "^5.
|
|
90
|
-
"@siemens/ix-icons": "^3.
|
|
90
|
+
"@siemens/ix": "^5.2.0",
|
|
91
|
+
"@siemens/ix-icons": "^3.5.0",
|
|
91
92
|
"@tanstack/lit-table": "^9.0.0",
|
|
92
93
|
"@tanstack/match-sorter-utils": "^9.0.0",
|
|
93
94
|
"@tanstack/table-core": "^9.0.0",
|
|
94
95
|
"lit": "^3.3.3",
|
|
95
|
-
"
|
|
96
|
+
"lit-html": "^3.3.3",
|
|
97
|
+
"@sken-ds/contracts": "0.5.0"
|
|
96
98
|
},
|
|
97
99
|
"devDependencies": {
|
|
98
100
|
"@vitest/coverage-v8": "^4.1.10",
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js
|
|
2
|
-
var e = globalThis, t = (e) => e, n = e.trustedTypes, r = n ? n.createPolicy("lit-html", { createHTML: (e) => e }) : void 0, i = "$lit$", a = `lit$${Math.random().toFixed(9).slice(2)}$`, o = "?" + a, s = `<${o}>`, c = document, l = () => c.createComment(""), u = (e) => e === null || typeof e != "object" && typeof e != "function", d = Array.isArray, f = (e) => d(e) || typeof e?.[Symbol.iterator] == "function", p = "[ \n\f\r]", m = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, h = /-->/g, g = />/g, _ = RegExp(`>|${p}(?:([^\\s"'>=/]+)(${p}*=${p}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), v = /'/g, y = /"/g, b = /^(?:script|style|textarea|title)$/i, x = Symbol.for("lit-noChange"), S = Symbol.for("lit-nothing"), C = /* @__PURE__ */ new WeakMap(), w = c.createTreeWalker(c, 129);
|
|
3
|
-
function T(e, t) {
|
|
4
|
-
if (!d(e) || !e.hasOwnProperty("raw")) throw Error("invalid template strings array");
|
|
5
|
-
return r === void 0 ? t : r.createHTML(t);
|
|
6
|
-
}
|
|
7
|
-
var E = (e, t) => {
|
|
8
|
-
let n = e.length - 1, r = [], o, c = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", l = m;
|
|
9
|
-
for (let t = 0; t < n; t++) {
|
|
10
|
-
let n = e[t], u, d, f = -1, p = 0;
|
|
11
|
-
for (; p < n.length && (l.lastIndex = p, d = l.exec(n), d !== null);) p = l.lastIndex, l === m ? d[1] === "!--" ? l = h : d[1] === void 0 ? d[2] === void 0 ? d[3] !== void 0 && (l = _) : (b.test(d[2]) && (o = RegExp("</" + d[2], "g")), l = _) : l = g : l === _ ? d[0] === ">" ? (l = o ?? m, f = -1) : d[1] === void 0 ? f = -2 : (f = l.lastIndex - d[2].length, u = d[1], l = d[3] === void 0 ? _ : d[3] === "\"" ? y : v) : l === y || l === v ? l = _ : l === h || l === g ? l = m : (l = _, o = void 0);
|
|
12
|
-
let x = l === _ && e[t + 1].startsWith("/>") ? " " : "";
|
|
13
|
-
c += l === m ? n + s : f >= 0 ? (r.push(u), n.slice(0, f) + i + n.slice(f) + a + x) : n + a + (f === -2 ? t : x);
|
|
14
|
-
}
|
|
15
|
-
return [T(e, c + (e[n] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), r];
|
|
16
|
-
}, D = class e {
|
|
17
|
-
constructor({ strings: t, _$litType$: r }, s) {
|
|
18
|
-
let c;
|
|
19
|
-
this.parts = [];
|
|
20
|
-
let u = 0, d = 0, f = t.length - 1, p = this.parts, [m, h] = E(t, r);
|
|
21
|
-
if (this.el = e.createElement(m, s), w.currentNode = this.el.content, r === 2 || r === 3) {
|
|
22
|
-
let e = this.el.content.firstChild;
|
|
23
|
-
e.replaceWith(...e.childNodes);
|
|
24
|
-
}
|
|
25
|
-
for (; (c = w.nextNode()) !== null && p.length < f;) {
|
|
26
|
-
if (c.nodeType === 1) {
|
|
27
|
-
if (c.hasAttributes()) for (let e of c.getAttributeNames()) if (e.endsWith(i)) {
|
|
28
|
-
let t = h[d++], n = c.getAttribute(e).split(a), r = /([.?@])?(.*)/.exec(t);
|
|
29
|
-
p.push({
|
|
30
|
-
type: 1,
|
|
31
|
-
index: u,
|
|
32
|
-
name: r[2],
|
|
33
|
-
strings: n,
|
|
34
|
-
ctor: r[1] === "." ? M : r[1] === "?" ? N : r[1] === "@" ? P : j
|
|
35
|
-
}), c.removeAttribute(e);
|
|
36
|
-
} else e.startsWith(a) && (p.push({
|
|
37
|
-
type: 6,
|
|
38
|
-
index: u
|
|
39
|
-
}), c.removeAttribute(e));
|
|
40
|
-
if (b.test(c.tagName)) {
|
|
41
|
-
let e = c.textContent.split(a), t = e.length - 1;
|
|
42
|
-
if (t > 0) {
|
|
43
|
-
c.textContent = n ? n.emptyScript : "";
|
|
44
|
-
for (let n = 0; n < t; n++) c.append(e[n], l()), w.nextNode(), p.push({
|
|
45
|
-
type: 2,
|
|
46
|
-
index: ++u
|
|
47
|
-
});
|
|
48
|
-
c.append(e[t], l());
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
} else if (c.nodeType === 8) if (c.data === o) p.push({
|
|
52
|
-
type: 2,
|
|
53
|
-
index: u
|
|
54
|
-
});
|
|
55
|
-
else {
|
|
56
|
-
let e = -1;
|
|
57
|
-
for (; (e = c.data.indexOf(a, e + 1)) !== -1;) p.push({
|
|
58
|
-
type: 7,
|
|
59
|
-
index: u
|
|
60
|
-
}), e += a.length - 1;
|
|
61
|
-
}
|
|
62
|
-
u++;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
static createElement(e, t) {
|
|
66
|
-
let n = c.createElement("template");
|
|
67
|
-
return n.innerHTML = e, n;
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
function O(e, t, n = e, r) {
|
|
71
|
-
if (t === x) return t;
|
|
72
|
-
let i = r === void 0 ? n._$Cl : n._$Co?.[r], a = u(t) ? void 0 : t._$litDirective$;
|
|
73
|
-
return i?.constructor !== a && (i?._$AO?.(!1), a === void 0 ? i = void 0 : (i = new a(e), i._$AT(e, n, r)), r === void 0 ? n._$Cl = i : (n._$Co ??= [])[r] = i), i !== void 0 && (t = O(e, i._$AS(e, t.values), i, r)), t;
|
|
74
|
-
}
|
|
75
|
-
var k = class {
|
|
76
|
-
constructor(e, t) {
|
|
77
|
-
this._$AV = [], this._$AN = void 0, this._$AD = e, this._$AM = t;
|
|
78
|
-
}
|
|
79
|
-
get parentNode() {
|
|
80
|
-
return this._$AM.parentNode;
|
|
81
|
-
}
|
|
82
|
-
get _$AU() {
|
|
83
|
-
return this._$AM._$AU;
|
|
84
|
-
}
|
|
85
|
-
u(e) {
|
|
86
|
-
let { el: { content: t }, parts: n } = this._$AD, r = (e?.creationScope ?? c).importNode(t, !0);
|
|
87
|
-
w.currentNode = r;
|
|
88
|
-
let i = w.nextNode(), a = 0, o = 0, s = n[0];
|
|
89
|
-
for (; s !== void 0;) {
|
|
90
|
-
if (a === s.index) {
|
|
91
|
-
let t;
|
|
92
|
-
s.type === 2 ? t = new A(i, i.nextSibling, this, e) : s.type === 1 ? t = new s.ctor(i, s.name, s.strings, this, e) : s.type === 6 && (t = new F(i, this, e)), this._$AV.push(t), s = n[++o];
|
|
93
|
-
}
|
|
94
|
-
a !== s?.index && (i = w.nextNode(), a++);
|
|
95
|
-
}
|
|
96
|
-
return w.currentNode = c, r;
|
|
97
|
-
}
|
|
98
|
-
p(e) {
|
|
99
|
-
let t = 0;
|
|
100
|
-
for (let n of this._$AV) n !== void 0 && (n.strings === void 0 ? n._$AI(e[t]) : (n._$AI(e, n, t), t += n.strings.length - 2)), t++;
|
|
101
|
-
}
|
|
102
|
-
}, A = class e {
|
|
103
|
-
get _$AU() {
|
|
104
|
-
return this._$AM?._$AU ?? this._$Cv;
|
|
105
|
-
}
|
|
106
|
-
constructor(e, t, n, r) {
|
|
107
|
-
this.type = 2, this._$AH = S, this._$AN = void 0, this._$AA = e, this._$AB = t, this._$AM = n, this.options = r, this._$Cv = r?.isConnected ?? !0;
|
|
108
|
-
}
|
|
109
|
-
get parentNode() {
|
|
110
|
-
let e = this._$AA.parentNode, t = this._$AM;
|
|
111
|
-
return t !== void 0 && e?.nodeType === 11 && (e = t.parentNode), e;
|
|
112
|
-
}
|
|
113
|
-
get startNode() {
|
|
114
|
-
return this._$AA;
|
|
115
|
-
}
|
|
116
|
-
get endNode() {
|
|
117
|
-
return this._$AB;
|
|
118
|
-
}
|
|
119
|
-
_$AI(e, t = this) {
|
|
120
|
-
e = O(this, e, t), u(e) ? e === S || e == null || e === "" ? (this._$AH !== S && this._$AR(), this._$AH = S) : e !== this._$AH && e !== x && this._(e) : e._$litType$ === void 0 ? e.nodeType === void 0 ? f(e) ? this.k(e) : this._(e) : this.T(e) : this.$(e);
|
|
121
|
-
}
|
|
122
|
-
O(e) {
|
|
123
|
-
return this._$AA.parentNode.insertBefore(e, this._$AB);
|
|
124
|
-
}
|
|
125
|
-
T(e) {
|
|
126
|
-
this._$AH !== e && (this._$AR(), this._$AH = this.O(e));
|
|
127
|
-
}
|
|
128
|
-
_(e) {
|
|
129
|
-
this._$AH !== S && u(this._$AH) ? this._$AA.nextSibling.data = e : this.T(c.createTextNode(e)), this._$AH = e;
|
|
130
|
-
}
|
|
131
|
-
$(e) {
|
|
132
|
-
let { values: t, _$litType$: n } = e, r = typeof n == "number" ? this._$AC(e) : (n.el === void 0 && (n.el = D.createElement(T(n.h, n.h[0]), this.options)), n);
|
|
133
|
-
if (this._$AH?._$AD === r) this._$AH.p(t);
|
|
134
|
-
else {
|
|
135
|
-
let e = new k(r, this), n = e.u(this.options);
|
|
136
|
-
e.p(t), this.T(n), this._$AH = e;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
_$AC(e) {
|
|
140
|
-
let t = C.get(e.strings);
|
|
141
|
-
return t === void 0 && C.set(e.strings, t = new D(e)), t;
|
|
142
|
-
}
|
|
143
|
-
k(t) {
|
|
144
|
-
d(this._$AH) || (this._$AH = [], this._$AR());
|
|
145
|
-
let n = this._$AH, r, i = 0;
|
|
146
|
-
for (let a of t) i === n.length ? n.push(r = new e(this.O(l()), this.O(l()), this, this.options)) : r = n[i], r._$AI(a), i++;
|
|
147
|
-
i < n.length && (this._$AR(r && r._$AB.nextSibling, i), n.length = i);
|
|
148
|
-
}
|
|
149
|
-
_$AR(e = this._$AA.nextSibling, n) {
|
|
150
|
-
for (this._$AP?.(!1, !0, n); e !== this._$AB;) {
|
|
151
|
-
let n = t(e).nextSibling;
|
|
152
|
-
t(e).remove(), e = n;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
setConnected(e) {
|
|
156
|
-
this._$AM === void 0 && (this._$Cv = e, this._$AP?.(e));
|
|
157
|
-
}
|
|
158
|
-
}, j = class {
|
|
159
|
-
get tagName() {
|
|
160
|
-
return this.element.tagName;
|
|
161
|
-
}
|
|
162
|
-
get _$AU() {
|
|
163
|
-
return this._$AM._$AU;
|
|
164
|
-
}
|
|
165
|
-
constructor(e, t, n, r, i) {
|
|
166
|
-
this.type = 1, this._$AH = S, this._$AN = void 0, this.element = e, this.name = t, this._$AM = r, this.options = i, n.length > 2 || n[0] !== "" || n[1] !== "" ? (this._$AH = Array(n.length - 1).fill(/* @__PURE__ */ new String()), this.strings = n) : this._$AH = S;
|
|
167
|
-
}
|
|
168
|
-
_$AI(e, t = this, n, r) {
|
|
169
|
-
let i = this.strings, a = !1;
|
|
170
|
-
if (i === void 0) e = O(this, e, t, 0), a = !u(e) || e !== this._$AH && e !== x, a && (this._$AH = e);
|
|
171
|
-
else {
|
|
172
|
-
let r = e, o, s;
|
|
173
|
-
for (e = i[0], o = 0; o < i.length - 1; o++) s = O(this, r[n + o], t, o), s === x && (s = this._$AH[o]), a ||= !u(s) || s !== this._$AH[o], s === S ? e = S : e !== S && (e += (s ?? "") + i[o + 1]), this._$AH[o] = s;
|
|
174
|
-
}
|
|
175
|
-
a && !r && this.j(e);
|
|
176
|
-
}
|
|
177
|
-
j(e) {
|
|
178
|
-
e === S ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, e ?? "");
|
|
179
|
-
}
|
|
180
|
-
}, M = class extends j {
|
|
181
|
-
constructor() {
|
|
182
|
-
super(...arguments), this.type = 3;
|
|
183
|
-
}
|
|
184
|
-
j(e) {
|
|
185
|
-
this.element[this.name] = e === S ? void 0 : e;
|
|
186
|
-
}
|
|
187
|
-
}, N = class extends j {
|
|
188
|
-
constructor() {
|
|
189
|
-
super(...arguments), this.type = 4;
|
|
190
|
-
}
|
|
191
|
-
j(e) {
|
|
192
|
-
this.element.toggleAttribute(this.name, !!e && e !== S);
|
|
193
|
-
}
|
|
194
|
-
}, P = class extends j {
|
|
195
|
-
constructor(e, t, n, r, i) {
|
|
196
|
-
super(e, t, n, r, i), this.type = 5;
|
|
197
|
-
}
|
|
198
|
-
_$AI(e, t = this) {
|
|
199
|
-
if ((e = O(this, e, t, 0) ?? S) === x) return;
|
|
200
|
-
let n = this._$AH, r = e === S && n !== S || e.capture !== n.capture || e.once !== n.once || e.passive !== n.passive, i = e !== S && (n === S || r);
|
|
201
|
-
r && this.element.removeEventListener(this.name, this, n), i && this.element.addEventListener(this.name, this, e), this._$AH = e;
|
|
202
|
-
}
|
|
203
|
-
handleEvent(e) {
|
|
204
|
-
typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, e) : this._$AH.handleEvent(e);
|
|
205
|
-
}
|
|
206
|
-
}, F = class {
|
|
207
|
-
constructor(e, t, n) {
|
|
208
|
-
this.element = e, this.type = 6, this._$AN = void 0, this._$AM = t, this.options = n;
|
|
209
|
-
}
|
|
210
|
-
get _$AU() {
|
|
211
|
-
return this._$AM._$AU;
|
|
212
|
-
}
|
|
213
|
-
_$AI(e) {
|
|
214
|
-
O(this, e);
|
|
215
|
-
}
|
|
216
|
-
}, I = {
|
|
217
|
-
M: i,
|
|
218
|
-
P: a,
|
|
219
|
-
A: o,
|
|
220
|
-
C: 1,
|
|
221
|
-
L: E,
|
|
222
|
-
R: k,
|
|
223
|
-
D: f,
|
|
224
|
-
V: O,
|
|
225
|
-
I: A,
|
|
226
|
-
H: j,
|
|
227
|
-
N,
|
|
228
|
-
U: P,
|
|
229
|
-
B: M,
|
|
230
|
-
F
|
|
231
|
-
}, L = e.litHtmlPolyfillSupport;
|
|
232
|
-
L?.(D, A), (e.litHtmlVersions ??= []).push("3.3.3");
|
|
233
|
-
//#endregion
|
|
234
|
-
//#region ../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js
|
|
235
|
-
var R = {
|
|
236
|
-
ATTRIBUTE: 1,
|
|
237
|
-
CHILD: 2,
|
|
238
|
-
PROPERTY: 3,
|
|
239
|
-
BOOLEAN_ATTRIBUTE: 4,
|
|
240
|
-
EVENT: 5,
|
|
241
|
-
ELEMENT: 6
|
|
242
|
-
}, z = (e) => (...t) => ({
|
|
243
|
-
_$litDirective$: e,
|
|
244
|
-
values: t
|
|
245
|
-
}), B = class {
|
|
246
|
-
constructor(e) {}
|
|
247
|
-
get _$AU() {
|
|
248
|
-
return this._$AM._$AU;
|
|
249
|
-
}
|
|
250
|
-
_$AT(e, t, n) {
|
|
251
|
-
this._$Ct = e, this._$AM = t, this._$Ci = n;
|
|
252
|
-
}
|
|
253
|
-
_$AS(e, t) {
|
|
254
|
-
return this.update(e, t);
|
|
255
|
-
}
|
|
256
|
-
update(e, t) {
|
|
257
|
-
return this.render(...t);
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
//#endregion
|
|
261
|
-
export { I as a, x as i, B as n, R as r, z as t };
|
|
262
|
-
|
|
263
|
-
//# sourceMappingURL=directive-BcLtPdVO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"directive-BcLtPdVO.js","names":["t","i","e"],"sources":["../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&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 Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.3\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|