@duskmoon-dev/el-input 0.4.0 → 0.6.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/cjs/index.js +17 -4
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/register.js +17 -4
- package/dist/cjs/register.js.map +3 -3
- package/dist/esm/index.js +15 -2
- package/dist/esm/index.js.map +3 -3
- package/dist/esm/register.js +15 -2
- package/dist/esm/register.js.map +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/el-dm-input.d.ts +25 -2
- package/dist/types/el-dm-input.d.ts.map +1 -1
- package/package.json +6 -6
package/dist/cjs/index.js
CHANGED
|
@@ -35,7 +35,7 @@ __export(exports_src, {
|
|
|
35
35
|
module.exports = __toCommonJS(exports_src);
|
|
36
36
|
|
|
37
37
|
// src/el-dm-input.ts
|
|
38
|
-
var
|
|
38
|
+
var import_el_base = require("@duskmoon-dev/el-base");
|
|
39
39
|
var import_input = require("@duskmoon-dev/core/components/input");
|
|
40
40
|
var SIZE_CLASSES = {
|
|
41
41
|
sm: "input-sm",
|
|
@@ -48,7 +48,7 @@ var VALIDATION_CLASSES = {
|
|
|
48
48
|
pending: ""
|
|
49
49
|
};
|
|
50
50
|
var coreStyles = import_input.css.replace(/@layer\s+components\s*\{/, "").replace(/\}\s*$/, "");
|
|
51
|
-
var styles =
|
|
51
|
+
var styles = import_el_base.css`
|
|
52
52
|
:host {
|
|
53
53
|
display: block;
|
|
54
54
|
}
|
|
@@ -209,7 +209,7 @@ var styles = import_el_core.css`
|
|
|
209
209
|
}
|
|
210
210
|
`;
|
|
211
211
|
|
|
212
|
-
class ElDmInput extends
|
|
212
|
+
class ElDmInput extends import_el_base.BaseElement {
|
|
213
213
|
static properties = {
|
|
214
214
|
type: { type: String, reflect: true, default: "text" },
|
|
215
215
|
value: { type: String, reflect: true, default: "" },
|
|
@@ -225,6 +225,16 @@ class ElDmInput extends import_el_core.BaseElement {
|
|
|
225
225
|
helperText: { type: String, reflect: true, attribute: "helper-text" }
|
|
226
226
|
};
|
|
227
227
|
_focused = false;
|
|
228
|
+
_validators = [];
|
|
229
|
+
setValidators(rules) {
|
|
230
|
+
this._validators = rules;
|
|
231
|
+
}
|
|
232
|
+
validate() {
|
|
233
|
+
const result = import_el_base.validate(this.value ?? "", this._validators);
|
|
234
|
+
this.validationState = result.state;
|
|
235
|
+
this.errorMessage = result.message ?? "";
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
228
238
|
constructor() {
|
|
229
239
|
super();
|
|
230
240
|
this.attachStyles(styles);
|
|
@@ -258,6 +268,9 @@ class ElDmInput extends import_el_core.BaseElement {
|
|
|
258
268
|
}
|
|
259
269
|
_handleBlur() {
|
|
260
270
|
this._focused = false;
|
|
271
|
+
if (this._validators.length > 0) {
|
|
272
|
+
this.validate();
|
|
273
|
+
}
|
|
261
274
|
this.update();
|
|
262
275
|
this.emit("dm-blur");
|
|
263
276
|
}
|
|
@@ -361,5 +374,5 @@ function register() {
|
|
|
361
374
|
}
|
|
362
375
|
}
|
|
363
376
|
|
|
364
|
-
//# debugId=
|
|
377
|
+
//# debugId=F13E2548914B80B364756E2164756E21
|
|
365
378
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/el-dm-input.ts", "../../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css } from '@duskmoon-dev/el-core';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState } from '@duskmoon-dev/el-core';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
5
|
+
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css, validate } from '@duskmoon-dev/el-base';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState, Validator, ValidationResult } from '@duskmoon-dev/el-base';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n /** Registered validators */\n private _validators: Validator[] = [];\n\n /**\n * Set the list of validators for this input.\n * Validators are run in order; the first failure wins.\n *\n * @example\n * ```ts\n * import { validators } from '@duskmoon-dev/el-base';\n * input.setValidators([\n * validators.required('Email is required'),\n * validators.email('Must be a valid email'),\n * ]);\n * ```\n */\n setValidators(rules: Validator[]): void {\n this._validators = rules;\n }\n\n /**\n * Run all registered validators against the current value.\n * Updates `validationState` and `errorMessage` automatically.\n *\n * @returns The validation result\n */\n validate(): ValidationResult {\n const result = validate(this.value ?? '', this._validators);\n this.validationState = result.state as ValidationState;\n this.errorMessage = result.message ?? '';\n return result;\n }\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n if (this._validators.length > 0) {\n this.validate();\n }\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
6
6
|
"/**\n * @duskmoon-dev/el-input\n *\n * DuskMoon Input custom element\n */\n\nimport { ElDmInput } from './el-dm-input.js';\n\nexport { ElDmInput };\nexport type { InputType } from './el-dm-input.js';\n\n/**\n * Register the el-dm-input custom element\n *\n * @example\n * ```ts\n * import { register } from '@duskmoon-dev/el-input';\n * register();\n * ```\n */\nexport function register(): void {\n if (!customElements.get('el-dm-input')) {\n customElements.define('el-dm-input', ElDmInput);\n }\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "F13E2548914B80B364756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/cjs/register.js
CHANGED
|
@@ -35,7 +35,7 @@ __export(exports_src, {
|
|
|
35
35
|
module.exports = __toCommonJS(exports_src);
|
|
36
36
|
|
|
37
37
|
// src/el-dm-input.ts
|
|
38
|
-
var
|
|
38
|
+
var import_el_base = require("@duskmoon-dev/el-base");
|
|
39
39
|
var import_input = require("@duskmoon-dev/core/components/input");
|
|
40
40
|
var SIZE_CLASSES = {
|
|
41
41
|
sm: "input-sm",
|
|
@@ -48,7 +48,7 @@ var VALIDATION_CLASSES = {
|
|
|
48
48
|
pending: ""
|
|
49
49
|
};
|
|
50
50
|
var coreStyles = import_input.css.replace(/@layer\s+components\s*\{/, "").replace(/\}\s*$/, "");
|
|
51
|
-
var styles =
|
|
51
|
+
var styles = import_el_base.css`
|
|
52
52
|
:host {
|
|
53
53
|
display: block;
|
|
54
54
|
}
|
|
@@ -209,7 +209,7 @@ var styles = import_el_core.css`
|
|
|
209
209
|
}
|
|
210
210
|
`;
|
|
211
211
|
|
|
212
|
-
class ElDmInput extends
|
|
212
|
+
class ElDmInput extends import_el_base.BaseElement {
|
|
213
213
|
static properties = {
|
|
214
214
|
type: { type: String, reflect: true, default: "text" },
|
|
215
215
|
value: { type: String, reflect: true, default: "" },
|
|
@@ -225,6 +225,16 @@ class ElDmInput extends import_el_core.BaseElement {
|
|
|
225
225
|
helperText: { type: String, reflect: true, attribute: "helper-text" }
|
|
226
226
|
};
|
|
227
227
|
_focused = false;
|
|
228
|
+
_validators = [];
|
|
229
|
+
setValidators(rules) {
|
|
230
|
+
this._validators = rules;
|
|
231
|
+
}
|
|
232
|
+
validate() {
|
|
233
|
+
const result = import_el_base.validate(this.value ?? "", this._validators);
|
|
234
|
+
this.validationState = result.state;
|
|
235
|
+
this.errorMessage = result.message ?? "";
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
228
238
|
constructor() {
|
|
229
239
|
super();
|
|
230
240
|
this.attachStyles(styles);
|
|
@@ -258,6 +268,9 @@ class ElDmInput extends import_el_core.BaseElement {
|
|
|
258
268
|
}
|
|
259
269
|
_handleBlur() {
|
|
260
270
|
this._focused = false;
|
|
271
|
+
if (this._validators.length > 0) {
|
|
272
|
+
this.validate();
|
|
273
|
+
}
|
|
261
274
|
this.update();
|
|
262
275
|
this.emit("dm-blur");
|
|
263
276
|
}
|
|
@@ -364,5 +377,5 @@ function register() {
|
|
|
364
377
|
// src/register.ts
|
|
365
378
|
register();
|
|
366
379
|
|
|
367
|
-
//# debugId=
|
|
380
|
+
//# debugId=C43B3A41F461141664756E2164756E21
|
|
368
381
|
//# sourceMappingURL=register.js.map
|
package/dist/cjs/register.js.map
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/el-dm-input.ts", "../../src/index.ts", "../../src/register.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css } from '@duskmoon-dev/el-core';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState } from '@duskmoon-dev/el-core';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
5
|
+
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css, validate } from '@duskmoon-dev/el-base';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState, Validator, ValidationResult } from '@duskmoon-dev/el-base';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n /** Registered validators */\n private _validators: Validator[] = [];\n\n /**\n * Set the list of validators for this input.\n * Validators are run in order; the first failure wins.\n *\n * @example\n * ```ts\n * import { validators } from '@duskmoon-dev/el-base';\n * input.setValidators([\n * validators.required('Email is required'),\n * validators.email('Must be a valid email'),\n * ]);\n * ```\n */\n setValidators(rules: Validator[]): void {\n this._validators = rules;\n }\n\n /**\n * Run all registered validators against the current value.\n * Updates `validationState` and `errorMessage` automatically.\n *\n * @returns The validation result\n */\n validate(): ValidationResult {\n const result = validate(this.value ?? '', this._validators);\n this.validationState = result.state as ValidationState;\n this.errorMessage = result.message ?? '';\n return result;\n }\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n if (this._validators.length > 0) {\n this.validate();\n }\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
6
6
|
"/**\n * @duskmoon-dev/el-input\n *\n * DuskMoon Input custom element\n */\n\nimport { ElDmInput } from './el-dm-input.js';\n\nexport { ElDmInput };\nexport type { InputType } from './el-dm-input.js';\n\n/**\n * Register the el-dm-input custom element\n *\n * @example\n * ```ts\n * import { register } from '@duskmoon-dev/el-input';\n * register();\n * ```\n */\nexport function register(): void {\n if (!customElements.get('el-dm-input')) {\n customElements.define('el-dm-input', ElDmInput);\n }\n}\n",
|
|
7
7
|
"/**\n * Auto-register el-dm-input custom element\n *\n * @example\n * ```ts\n * import '@duskmoon-dev/el-input/register';\n *\n * // Now you can use <el-dm-input> in HTML\n * ```\n */\nimport { register } from './index.js';\n\nregister();\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "C43B3A41F461141664756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/el-dm-input.ts
|
|
2
|
-
import { BaseElement, css } from "@duskmoon-dev/el-
|
|
2
|
+
import { BaseElement, css, validate } from "@duskmoon-dev/el-base";
|
|
3
3
|
import { css as inputCSS } from "@duskmoon-dev/core/components/input";
|
|
4
4
|
var SIZE_CLASSES = {
|
|
5
5
|
sm: "input-sm",
|
|
@@ -189,6 +189,16 @@ class ElDmInput extends BaseElement {
|
|
|
189
189
|
helperText: { type: String, reflect: true, attribute: "helper-text" }
|
|
190
190
|
};
|
|
191
191
|
_focused = false;
|
|
192
|
+
_validators = [];
|
|
193
|
+
setValidators(rules) {
|
|
194
|
+
this._validators = rules;
|
|
195
|
+
}
|
|
196
|
+
validate() {
|
|
197
|
+
const result = validate(this.value ?? "", this._validators);
|
|
198
|
+
this.validationState = result.state;
|
|
199
|
+
this.errorMessage = result.message ?? "";
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
192
202
|
constructor() {
|
|
193
203
|
super();
|
|
194
204
|
this.attachStyles(styles);
|
|
@@ -222,6 +232,9 @@ class ElDmInput extends BaseElement {
|
|
|
222
232
|
}
|
|
223
233
|
_handleBlur() {
|
|
224
234
|
this._focused = false;
|
|
235
|
+
if (this._validators.length > 0) {
|
|
236
|
+
this.validate();
|
|
237
|
+
}
|
|
225
238
|
this.update();
|
|
226
239
|
this.emit("dm-blur");
|
|
227
240
|
}
|
|
@@ -329,5 +342,5 @@ export {
|
|
|
329
342
|
ElDmInput
|
|
330
343
|
};
|
|
331
344
|
|
|
332
|
-
//# debugId=
|
|
345
|
+
//# debugId=801846F41C780D7864756E2164756E21
|
|
333
346
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/el-dm-input.ts", "../../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css } from '@duskmoon-dev/el-core';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState } from '@duskmoon-dev/el-core';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
5
|
+
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css, validate } from '@duskmoon-dev/el-base';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState, Validator, ValidationResult } from '@duskmoon-dev/el-base';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n /** Registered validators */\n private _validators: Validator[] = [];\n\n /**\n * Set the list of validators for this input.\n * Validators are run in order; the first failure wins.\n *\n * @example\n * ```ts\n * import { validators } from '@duskmoon-dev/el-base';\n * input.setValidators([\n * validators.required('Email is required'),\n * validators.email('Must be a valid email'),\n * ]);\n * ```\n */\n setValidators(rules: Validator[]): void {\n this._validators = rules;\n }\n\n /**\n * Run all registered validators against the current value.\n * Updates `validationState` and `errorMessage` automatically.\n *\n * @returns The validation result\n */\n validate(): ValidationResult {\n const result = validate(this.value ?? '', this._validators);\n this.validationState = result.state as ValidationState;\n this.errorMessage = result.message ?? '';\n return result;\n }\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n if (this._validators.length > 0) {\n this.validate();\n }\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
6
6
|
"/**\n * @duskmoon-dev/el-input\n *\n * DuskMoon Input custom element\n */\n\nimport { ElDmInput } from './el-dm-input.js';\n\nexport { ElDmInput };\nexport type { InputType } from './el-dm-input.js';\n\n/**\n * Register the el-dm-input custom element\n *\n * @example\n * ```ts\n * import { register } from '@duskmoon-dev/el-input';\n * register();\n * ```\n */\nexport function register(): void {\n if (!customElements.get('el-dm-input')) {\n customElements.define('el-dm-input', ElDmInput);\n }\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";AAuCA;AACA,gBAAS;AAST,IAAM,eAAuC;AAAA,EAC3C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAGA,IAAM,qBAA6C;AAAA,EACjD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAGA,IAAM,aAAa,SAAS,QAAQ,4BAA4B,EAAE,EAAE,QAAQ,UAAU,EAAE;AAExF,IAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuJG,MAAM,kBAAkB,YAAY;AAAA,SAClC,aAAa;AAAA,IAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,MAAM,SAAS,OAAO;AAAA,IACrD,OAAO,EAAE,MAAM,QAAQ,SAAS,MAAM,SAAS,GAAG;AAAA,IAClD,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACpC,OAAO,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACrC,aAAa,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAC3C,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACpC,iBAAiB,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,mBAAmB;AAAA,IAC9E,cAAc,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,gBAAgB;AAAA,IACxE,YAAY,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,cAAc;AAAA,EACtE;AAAA,EAuCQ,WAAW;AAAA,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "801846F41C780D7864756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/esm/register.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/el-dm-input.ts
|
|
2
|
-
import { BaseElement, css } from "@duskmoon-dev/el-
|
|
2
|
+
import { BaseElement, css, validate } from "@duskmoon-dev/el-base";
|
|
3
3
|
import { css as inputCSS } from "@duskmoon-dev/core/components/input";
|
|
4
4
|
var SIZE_CLASSES = {
|
|
5
5
|
sm: "input-sm",
|
|
@@ -189,6 +189,16 @@ class ElDmInput extends BaseElement {
|
|
|
189
189
|
helperText: { type: String, reflect: true, attribute: "helper-text" }
|
|
190
190
|
};
|
|
191
191
|
_focused = false;
|
|
192
|
+
_validators = [];
|
|
193
|
+
setValidators(rules) {
|
|
194
|
+
this._validators = rules;
|
|
195
|
+
}
|
|
196
|
+
validate() {
|
|
197
|
+
const result = validate(this.value ?? "", this._validators);
|
|
198
|
+
this.validationState = result.state;
|
|
199
|
+
this.errorMessage = result.message ?? "";
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
192
202
|
constructor() {
|
|
193
203
|
super();
|
|
194
204
|
this.attachStyles(styles);
|
|
@@ -222,6 +232,9 @@ class ElDmInput extends BaseElement {
|
|
|
222
232
|
}
|
|
223
233
|
_handleBlur() {
|
|
224
234
|
this._focused = false;
|
|
235
|
+
if (this._validators.length > 0) {
|
|
236
|
+
this.validate();
|
|
237
|
+
}
|
|
225
238
|
this.update();
|
|
226
239
|
this.emit("dm-blur");
|
|
227
240
|
}
|
|
@@ -328,5 +341,5 @@ function register() {
|
|
|
328
341
|
// src/register.ts
|
|
329
342
|
register();
|
|
330
343
|
|
|
331
|
-
//# debugId=
|
|
344
|
+
//# debugId=280D1D9161FA17AE64756E2164756E21
|
|
332
345
|
//# sourceMappingURL=register.js.map
|
package/dist/esm/register.js.map
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/el-dm-input.ts", "../../src/index.ts", "../../src/register.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css } from '@duskmoon-dev/el-core';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState } from '@duskmoon-dev/el-core';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
5
|
+
"/**\n * DuskMoon Input Element\n *\n * A text input component with label and validation states.\n * Uses styles from @duskmoon-dev/core for consistent theming.\n *\n * @element el-dm-input\n *\n * @attr {string} type - Input type: text, password, email, number, tel, url, search\n * @attr {string} value - Current input value\n * @attr {string} name - Form field name\n * @attr {string} label - Label text\n * @attr {string} placeholder - Placeholder text\n * @attr {boolean} disabled - Whether the input is disabled\n * @attr {boolean} readonly - Whether the input is readonly\n * @attr {boolean} required - Whether the input is required\n * @attr {string} size - Input size: sm, md, lg\n * @attr {string} validation-state - Validation state: valid, invalid, pending\n * @attr {string} error-message - Error message to display\n * @attr {string} helper-text - Helper text to display\n *\n * @slot prefix - Content before the input\n * @slot suffix - Content after the input\n *\n * @csspart container - The outer container\n * @csspart label - The label element\n * @csspart input-wrapper - The wrapper around the input\n * @csspart input - The native input element\n * @csspart prefix - The prefix slot wrapper\n * @csspart suffix - The suffix slot wrapper\n * @csspart helper - The helper text element\n * @csspart error - The error message element\n *\n * @fires dm-input - Fired when value changes during input\n * @fires dm-change - Fired when value changes and input loses focus\n * @fires dm-focus - Fired when input gains focus\n * @fires dm-blur - Fired when input loses focus\n */\n\nimport { BaseElement, css, validate } from '@duskmoon-dev/el-base';\nimport { css as inputCSS } from '@duskmoon-dev/core/components/input';\nimport type { Size, ValidationState, Validator, ValidationResult } from '@duskmoon-dev/el-base';\n\n/**\n * Supported input types\n */\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n\n// Map of size attribute values to CSS classes\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'input-sm',\n md: '',\n lg: 'input-lg',\n};\n\n// Map of validation state to CSS classes\nconst VALIDATION_CLASSES: Record<string, string> = {\n valid: 'input-success',\n invalid: 'input-error',\n pending: '',\n};\n\n// Strip @layer wrapper for Shadow DOM compatibility\nconst coreStyles = inputCSS.replace(/@layer\\s+components\\s*\\{/, '').replace(/\\}\\s*$/, '');\n\nconst styles = css`\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Import core input styles */\n ${coreStyles}\n\n /* Form field container */\n .container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n /* Label */\n .label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-on-surface);\n }\n\n .label.required::after {\n content: ' *';\n color: var(--color-error);\n }\n\n /* Input wrapper for prefix/suffix */\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid var(--color-outline);\n border-radius: 0.5rem;\n background-color: var(--color-surface);\n transition:\n border-color 150ms ease-in-out,\n box-shadow 150ms ease-in-out;\n }\n\n .input-wrapper:hover:not(.disabled) {\n border-color: var(--color-outline-variant);\n }\n\n .input-wrapper.focused {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);\n }\n\n .input-wrapper.disabled {\n background-color: var(--color-surface-container);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Validation states for wrapper */\n .input-wrapper.valid {\n border-color: var(--color-success);\n }\n\n .input-wrapper.valid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);\n }\n\n .input-wrapper.invalid {\n border-color: var(--color-error);\n }\n\n .input-wrapper.invalid.focused {\n box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);\n }\n\n /* Size variants for wrapper */\n :host(:not([size])) .input-wrapper,\n :host([size='md']) .input-wrapper {\n min-height: 2.5rem;\n padding: 0 0.75rem;\n }\n\n :host([size='sm']) .input-wrapper {\n min-height: 2rem;\n padding: 0 0.5rem;\n }\n\n :host([size='lg']) .input-wrapper {\n min-height: 3rem;\n padding: 0 1rem;\n }\n\n /* Native input - use base .input class but remove redundant styles */\n .input-wrapper .input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n padding: 0;\n height: auto;\n }\n\n .input-wrapper .input:focus,\n .input-wrapper .input:focus-visible {\n box-shadow: none;\n border-color: transparent;\n }\n\n /* Prefix and suffix */\n .prefix,\n .suffix {\n display: none;\n flex-shrink: 0;\n color: var(--color-on-surface-variant);\n }\n\n .prefix.has-content,\n .suffix.has-content {\n display: flex;\n align-items: center;\n }\n\n /* Helper and error text */\n .helper,\n .error {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .helper {\n color: var(--color-on-surface-variant);\n }\n\n .error {\n color: var(--color-error);\n }\n\n /* Pending state spinner */\n .pending-indicator {\n display: none;\n width: 1em;\n height: 1em;\n border: 2px solid var(--color-outline);\n border-top-color: var(--color-primary);\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n :host([validation-state='pending']) .pending-indicator {\n display: block;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport class ElDmInput extends BaseElement {\n static properties = {\n type: { type: String, reflect: true, default: 'text' },\n value: { type: String, reflect: true, default: '' },\n name: { type: String, reflect: true },\n label: { type: String, reflect: true },\n placeholder: { type: String, reflect: true },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n size: { type: String, reflect: true },\n validationState: { type: String, reflect: true, attribute: 'validation-state' },\n errorMessage: { type: String, reflect: true, attribute: 'error-message' },\n helperText: { type: String, reflect: true, attribute: 'helper-text' },\n };\n\n /** Input type */\n declare type: InputType;\n\n /** Current value */\n declare value: string;\n\n /** Form field name */\n declare name: string;\n\n /** Label text */\n declare label: string;\n\n /** Placeholder text */\n declare placeholder: string;\n\n /** Whether the input is disabled */\n declare disabled: boolean;\n\n /** Whether the input is readonly */\n declare readonly: boolean;\n\n /** Whether the input is required */\n declare required: boolean;\n\n /** Input size */\n declare size: Size;\n\n /** Validation state */\n declare validationState: ValidationState;\n\n /** Error message */\n declare errorMessage: string;\n\n /** Helper text */\n declare helperText: string;\n\n /** Whether the input is focused */\n private _focused = false;\n\n /** Registered validators */\n private _validators: Validator[] = [];\n\n /**\n * Set the list of validators for this input.\n * Validators are run in order; the first failure wins.\n *\n * @example\n * ```ts\n * import { validators } from '@duskmoon-dev/el-base';\n * input.setValidators([\n * validators.required('Email is required'),\n * validators.email('Must be a valid email'),\n * ]);\n * ```\n */\n setValidators(rules: Validator[]): void {\n this._validators = rules;\n }\n\n /**\n * Run all registered validators against the current value.\n * Updates `validationState` and `errorMessage` automatically.\n *\n * @returns The validation result\n */\n validate(): ValidationResult {\n const result = validate(this.value ?? '', this._validators);\n this.validationState = result.state as ValidationState;\n this.errorMessage = result.message ?? '';\n return result;\n }\n\n constructor() {\n super();\n this.attachStyles(styles);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.shadowRoot.addEventListener('slotchange', this._handleSlotChange.bind(this));\n }\n\n /**\n * Handle slot content changes\n */\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const wrapper = slot.parentElement;\n if (wrapper) {\n const hasContent = slot.assignedNodes().length > 0;\n wrapper.classList.toggle('has-content', hasContent);\n }\n }\n\n /**\n * Handle input events\n */\n private _handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-input', { value: this.value });\n }\n\n /**\n * Handle change events\n */\n private _handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n this.emit('dm-change', { value: this.value });\n }\n\n /**\n * Handle focus events\n */\n private _handleFocus(): void {\n this._focused = true;\n this.update();\n this.emit('dm-focus');\n }\n\n /**\n * Handle blur events\n */\n private _handleBlur(): void {\n this._focused = false;\n if (this._validators.length > 0) {\n this.validate();\n }\n this.update();\n this.emit('dm-blur');\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot.querySelector('input');\n input?.select();\n }\n\n /**\n * Build CSS class string for the input\n */\n private _getInputClasses(): string {\n const classes = ['input', 'input-bordered'];\n\n // Add size class\n if (this.size && SIZE_CLASSES[this.size]) {\n classes.push(SIZE_CLASSES[this.size]);\n }\n\n // Add validation class\n if (this.validationState && VALIDATION_CLASSES[this.validationState]) {\n classes.push(VALIDATION_CLASSES[this.validationState]);\n }\n\n return classes.filter(Boolean).join(' ');\n }\n\n protected update(): void {\n super.update();\n\n // Re-attach event listeners after render\n const input = this.shadowRoot.querySelector('input');\n if (input) {\n input.addEventListener('input', this._handleInput.bind(this));\n input.addEventListener('change', this._handleChange.bind(this));\n input.addEventListener('focus', this._handleFocus.bind(this));\n input.addEventListener('blur', this._handleBlur.bind(this));\n }\n }\n\n render(): string {\n const wrapperClasses = [\n 'input-wrapper',\n this._focused ? 'focused' : '',\n this.disabled ? 'disabled' : '',\n this.validationState || '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelClasses = ['label', this.required ? 'required' : ''].filter(Boolean).join(' ');\n const inputClasses = this._getInputClasses();\n const inputId = `input-${Math.random().toString(36).slice(2, 9)}`;\n\n return `\n <div class=\"container\" part=\"container\">\n ${\n this.label\n ? `\n <label class=\"${labelClasses}\" for=\"${inputId}\" part=\"label\">\n ${this.label}\n </label>\n `\n : ''\n }\n\n <div class=\"${wrapperClasses}\" part=\"input-wrapper\">\n <span class=\"prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n <input\n class=\"${inputClasses}\"\n id=\"${inputId}\"\n type=\"${this.type || 'text'}\"\n name=\"${this.name || ''}\"\n value=\"${this.value || ''}\"\n placeholder=\"${this.placeholder || ''}\"\n ${this.disabled ? 'disabled' : ''}\n ${this.readonly ? 'readonly' : ''}\n ${this.required ? 'required' : ''}\n aria-invalid=\"${this.validationState === 'invalid' ? 'true' : 'false'}\"\n aria-describedby=\"${this.errorMessage ? 'error' : this.helperText ? 'helper' : ''}\"\n part=\"input\"\n />\n\n <span class=\"pending-indicator\"></span>\n\n <span class=\"suffix\" part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n\n ${\n this.validationState === 'invalid' && this.errorMessage\n ? `\n <span id=\"error\" class=\"error\" part=\"error\" role=\"alert\">\n ${this.errorMessage}\n </span>\n `\n : ''\n }\n\n ${\n this.helperText && this.validationState !== 'invalid'\n ? `\n <span id=\"helper\" class=\"helper\" part=\"helper\">\n ${this.helperText}\n </span>\n `\n : ''\n }\n </div>\n `;\n }\n}\n",
|
|
6
6
|
"/**\n * @duskmoon-dev/el-input\n *\n * DuskMoon Input custom element\n */\n\nimport { ElDmInput } from './el-dm-input.js';\n\nexport { ElDmInput };\nexport type { InputType } from './el-dm-input.js';\n\n/**\n * Register the el-dm-input custom element\n *\n * @example\n * ```ts\n * import { register } from '@duskmoon-dev/el-input';\n * register();\n * ```\n */\nexport function register(): void {\n if (!customElements.get('el-dm-input')) {\n customElements.define('el-dm-input', ElDmInput);\n }\n}\n",
|
|
7
7
|
"/**\n * Auto-register el-dm-input custom element\n *\n * @example\n * ```ts\n * import '@duskmoon-dev/el-input/register';\n *\n * // Now you can use <el-dm-input> in HTML\n * ```\n */\nimport { register } from './index.js';\n\nregister();\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": ";AAuCA;AACA,gBAAS;AAST,IAAM,eAAuC;AAAA,EAC3C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAGA,IAAM,qBAA6C;AAAA,EACjD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAGA,IAAM,aAAa,SAAS,QAAQ,4BAA4B,EAAE,EAAE,QAAQ,UAAU,EAAE;AAExF,IAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuJG,MAAM,kBAAkB,YAAY;AAAA,SAClC,aAAa;AAAA,IAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,MAAM,SAAS,OAAO;AAAA,IACrD,OAAO,EAAE,MAAM,QAAQ,SAAS,MAAM,SAAS,GAAG;AAAA,IAClD,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACpC,OAAO,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACrC,aAAa,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAC3C,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACpC,iBAAiB,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,mBAAmB;AAAA,IAC9E,cAAc,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,gBAAgB;AAAA,IACxE,YAAY,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,cAAc;AAAA,EACtE;AAAA,EAuCQ,WAAW;AAAA,
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": ";AAuCA;AACA,gBAAS;AAST,IAAM,eAAuC;AAAA,EAC3C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAGA,IAAM,qBAA6C;AAAA,EACjD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX;AAGA,IAAM,aAAa,SAAS,QAAQ,4BAA4B,EAAE,EAAE,QAAQ,UAAU,EAAE;AAExF,IAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuJG,MAAM,kBAAkB,YAAY;AAAA,SAClC,aAAa;AAAA,IAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,MAAM,SAAS,OAAO;AAAA,IACrD,OAAO,EAAE,MAAM,QAAQ,SAAS,MAAM,SAAS,GAAG;AAAA,IAClD,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACpC,OAAO,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACrC,aAAa,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAC3C,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IACzC,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IACpC,iBAAiB,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,mBAAmB;AAAA,IAC9E,cAAc,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,gBAAgB;AAAA,IACxE,YAAY,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,cAAc;AAAA,EACtE;AAAA,EAuCQ,WAAW;AAAA,EAGX,cAA2B,CAAC;AAAA,EAepC,aAAa,CAAC,OAA0B;AAAA,IACtC,KAAK,cAAc;AAAA;AAAA,EASrB,QAAQ,GAAqB;AAAA,IAC3B,MAAM,SAAS,SAAS,KAAK,SAAS,IAAI,KAAK,WAAW;AAAA,IAC1D,KAAK,kBAAkB,OAAO;AAAA,IAC9B,KAAK,eAAe,OAAO,WAAW;AAAA,IACtC,OAAO;AAAA;AAAA,EAGT,WAAW,GAAG;AAAA,IACZ,MAAM;AAAA,IACN,KAAK,aAAa,MAAM;AAAA;AAAA,EAG1B,iBAAiB,GAAS;AAAA,IACxB,MAAM,kBAAkB;AAAA,IACxB,KAAK,WAAW,iBAAiB,cAAc,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAAA;AAAA,EAM1E,iBAAiB,CAAC,OAAoB;AAAA,IAC5C,MAAM,OAAO,MAAM;AAAA,IACnB,MAAM,UAAU,KAAK;AAAA,IACrB,IAAI,SAAS;AAAA,MACX,MAAM,aAAa,KAAK,cAAc,EAAE,SAAS;AAAA,MACjD,QAAQ,UAAU,OAAO,eAAe,UAAU;AAAA,IACpD;AAAA;AAAA,EAMM,YAAY,CAAC,OAAoB;AAAA,IACvC,MAAM,QAAQ,MAAM;AAAA,IACpB,KAAK,QAAQ,MAAM;AAAA,IAEnB,KAAK,KAAK,YAAY,EAAE,OAAO,KAAK,MAAM,CAAC;AAAA;AAAA,EAMrC,aAAa,CAAC,OAAoB;AAAA,IACxC,MAAM,QAAQ,MAAM;AAAA,IACpB,KAAK,QAAQ,MAAM;AAAA,IAEnB,KAAK,KAAK,aAAa,EAAE,OAAO,KAAK,MAAM,CAAC;AAAA;AAAA,EAMtC,YAAY,GAAS;AAAA,IAC3B,KAAK,WAAW;AAAA,IAChB,KAAK,OAAO;AAAA,IACZ,KAAK,KAAK,UAAU;AAAA;AAAA,EAMd,WAAW,GAAS;AAAA,IAC1B,KAAK,WAAW;AAAA,IAChB,IAAI,KAAK,YAAY,SAAS,GAAG;AAAA,MAC/B,KAAK,SAAS;AAAA,IAChB;AAAA,IACA,KAAK,OAAO;AAAA,IACZ,KAAK,KAAK,SAAS;AAAA;AAAA,EAMrB,KAAK,GAAS;AAAA,IACZ,MAAM,QAAQ,KAAK,WAAW,cAAc,OAAO;AAAA,IACnD,OAAO,MAAM;AAAA;AAAA,EAMf,IAAI,GAAS;AAAA,IACX,MAAM,QAAQ,KAAK,WAAW,cAAc,OAAO;AAAA,IACnD,OAAO,KAAK;AAAA;AAAA,EAMd,MAAM,GAAS;AAAA,IACb,MAAM,QAAQ,KAAK,WAAW,cAAc,OAAO;AAAA,IACnD,OAAO,OAAO;AAAA;AAAA,EAMR,gBAAgB,GAAW;AAAA,IACjC,MAAM,UAAU,CAAC,SAAS,gBAAgB;AAAA,IAG1C,IAAI,KAAK,QAAQ,aAAa,KAAK,OAAO;AAAA,MACxC,QAAQ,KAAK,aAAa,KAAK,KAAK;AAAA,IACtC;AAAA,IAGA,IAAI,KAAK,mBAAmB,mBAAmB,KAAK,kBAAkB;AAAA,MACpE,QAAQ,KAAK,mBAAmB,KAAK,gBAAgB;AAAA,IACvD;AAAA,IAEA,OAAO,QAAQ,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA;AAAA,EAG/B,MAAM,GAAS;AAAA,IACvB,MAAM,OAAO;AAAA,IAGb,MAAM,QAAQ,KAAK,WAAW,cAAc,OAAO;AAAA,IACnD,IAAI,OAAO;AAAA,MACT,MAAM,iBAAiB,SAAS,KAAK,aAAa,KAAK,IAAI,CAAC;AAAA,MAC5D,MAAM,iBAAiB,UAAU,KAAK,cAAc,KAAK,IAAI,CAAC;AAAA,MAC9D,MAAM,iBAAiB,SAAS,KAAK,aAAa,KAAK,IAAI,CAAC;AAAA,MAC5D,MAAM,iBAAiB,QAAQ,KAAK,YAAY,KAAK,IAAI,CAAC;AAAA,IAC5D;AAAA;AAAA,EAGF,MAAM,GAAW;AAAA,IACf,MAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,KAAK,WAAW,YAAY;AAAA,MAC5B,KAAK,WAAW,aAAa;AAAA,MAC7B,KAAK,mBAAmB;AAAA,IAC1B,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,IAEX,MAAM,eAAe,CAAC,SAAS,KAAK,WAAW,aAAa,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,IACxF,MAAM,eAAe,KAAK,iBAAiB;AAAA,IAC3C,MAAM,UAAU,SAAS,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,CAAC;AAAA,IAE9D,OAAO;AAAA;AAAA,UAGD,KAAK,QACD;AAAA,0BACY,sBAAsB;AAAA,cAClC,KAAK;AAAA;AAAA,YAGL;AAAA;AAAA,sBAGQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAMD;AAAA,kBACH;AAAA,oBACE,KAAK,QAAQ;AAAA,oBACb,KAAK,QAAQ;AAAA,qBACZ,KAAK,SAAS;AAAA,2BACR,KAAK,eAAe;AAAA,cACjC,KAAK,WAAW,aAAa;AAAA,cAC7B,KAAK,WAAW,aAAa;AAAA,cAC7B,KAAK,WAAW,aAAa;AAAA,4BACf,KAAK,oBAAoB,YAAY,SAAS;AAAA,gCAC1C,KAAK,eAAe,UAAU,KAAK,aAAa,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAYjF,KAAK,oBAAoB,aAAa,KAAK,eACvC;AAAA;AAAA,cAEA,KAAK;AAAA;AAAA,YAGL;AAAA;AAAA,UAIJ,KAAK,cAAc,KAAK,oBAAoB,YACxC;AAAA;AAAA,cAEA,KAAK;AAAA;AAAA,YAGL;AAAA;AAAA;AAAA;AAKd;;;ACxeO,SAAS,QAAQ,GAAS;AAAA,EAC/B,IAAI,CAAC,eAAe,IAAI,aAAa,GAAG;AAAA,IACtC,eAAe,OAAO,eAAe,SAAS;AAAA,EAChD;AAAA;;;ACXF,SAAS;",
|
|
10
|
+
"debugId": "280D1D9161FA17AE64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/duskmoon-core.d.ts","../../../packages/core/dist/types/base-element.d.ts","../../../packages/core/dist/types/styles.d.ts","../../../packages/core/dist/types/types.d.ts","../../../packages/core/dist/types/index.d.ts","../src/el-dm-input.ts","../src/index.ts","../src/register.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/globals.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/assert.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/buffer.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/child_process.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/cluster.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/console.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/constants.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/crypto.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/dgram.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/dns.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/domain.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/events.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/fs.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/http.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/http2.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/https.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/module.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/net.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/os.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/path.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/process.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/punycode.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/querystring.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/readline.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/repl.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/sea.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/stream.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/test.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/timers.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/tls.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/tty.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/url.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/util.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/v8.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/vm.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/wasi.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/zlib.d.ts","../../../node_modules/.bun/@types+node@20.19.28/node_modules/@types/node/index.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/globals.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/s3.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/fetch.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/bun.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/extensions.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/devserver.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/ffi.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/html-rewriter.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/jsc.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/sqlite.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/index.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/test.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/wasm.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/overrides.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/deprecated.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/redis.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/shell.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/serve.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/sql.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/security.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/bundle.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/bun.ns.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/index.d.ts","../../../node_modules/.bun/@types+bun@1.3.5/node_modules/@types/bun/index.d.ts"],"fileIdsList":[[75,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[60,64,75,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[65,75,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[66,75,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,184,185,186,187,188,189,190,191,194],[75,81,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,83,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[84,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,89,117,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,85,90,95,103,114,125,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,85,86,95,103,168,169,170,171,173,184,185,186,187,188,189,190,191],[70,71,72,75,84,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,87,126,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,88,89,96,104,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,89,114,122,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,90,92,95,103,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,83,84,91,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,92,93,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,94,95,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,83,84,95,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,96,97,114,125,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,96,97,110,114,117,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,92,95,98,103,114,125,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,96,98,99,103,114,122,125,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,98,100,114,122,125,168,169,170,171,173,184,185,186,187,188,189,190,191],[73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,101,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,102,125,130,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,92,95,103,114,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,104,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,105,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,83,84,106,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,108,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,109,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,110,111,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,110,112,126,128,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,114,115,117,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,116,117,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,114,115,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,117,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,118,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,81,84,114,119,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,120,121,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,120,121,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,89,103,114,122,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,123,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,103,124,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,98,109,125,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,89,126,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,114,127,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,102,128,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,129,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,167,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,95,97,106,114,117,125,128,130,167,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,114,131,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,89,96,98,122,126,130,167,168,169,170,173,174,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,184,185,187,188,189,190,191],[75,84,168,169,170,171,184,185,186,187,188,189,190,191],[75,84,167,168,169,171,173,184,185,186,187,188,189,190,191],[75,84,89,106,114,117,122,126,130,167,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,132,168,169,170,171,172,173,174,175,176,177,183,184,185,186,187,188,189,190,191,192,193],[10,75,76,84,87,89,96,97,104,117,122,125,131,168,169,170,171,173,184,186,187,188,189,190,191],[75,84,168,169,170,171,173,184,185,186,188,189,190,191],[75,84,96,168,170,171,173,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,184,185,186,187,188,189,190],[75,84,168,169,170,171,173,184,185,186,187,188,190,191],[75,84,168,169,170,171,173,184,185,186,187,189,190,191],[75,84,168,169,170,171,173,177,184,185,186,187,188,189,191],[75,84,168,169,170,171,173,182,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,178,179,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,178,179,180,181,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,178,180,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,178,184,185,186,187,188,189,190,191],[75,84,168,169,170,171,173,185,186,187,188,189,190,191],[75,84,125,139,143,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,114,125,139,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,134,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,122,125,136,139,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,103,122,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,132,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,132,134,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,103,125,136,139,168,169,170,171,173,184,185,186,187,188,189,190,191],[68,69,75,84,95,114,125,135,138,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,139,146,168,169,170,171,173,184,185,186,187,188,189,190,191],[68,75,84,137,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,139,160,161,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,117,125,132,135,139,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,132,160,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,132,133,134,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,139,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,139,154,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,139,146,147,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,137,139,147,148,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,138,168,169,170,171,173,184,185,186,187,188,189,190,191],[68,75,84,134,139,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,139,143,147,148,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,143,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,125,137,139,142,168,169,170,171,173,184,185,186,187,188,189,190,191],[68,75,84,136,139,146,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,114,168,169,170,171,173,184,185,186,187,188,189,190,191],[75,84,130,132,134,139,160,168,169,170,171,173,184,185,186,187,188,189,190,191],[61,62,63,75,84,168,169,170,171,173,184,185,186,187,188,189,190,191]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"089e5f6343a272f3dc70f597665b75c8574b02ac052fdf962ccea821459d7aa8","d4a48751b4227ab81b82552c7d5efcfc4810bcca247298010215d874c3ab5191","1b77b52c5de36eb33a7bb39a224c60217f5902221575dc73e891b1f3038a2a38","d3a328c0eccf652bc8b6c14515a8b848a558b9d684e15a7c0c2e15de5016df57","3d80d8bcd5166b8b8b5c5e1c7d6261fdacfcbf7c876412610dc7b1742bb39df3",{"version":"0ce9236ac37023a16b85c653bb5cafc3666248efc4b6de77f5d3cad0d075a0f6","signature":"bb585c5e80682f64a03e500c5cb71b3568645c11e73db7964b40e04bf190a6c3"},{"version":"b64ae20bff13db5657470a071381a0fdc9203d427328ce94940052f644424808","signature":"34858bf7db2e90176df7b68cec8d2219e9496e5ae3f3dccdcc5898e92084d21c"},{"version":"2796e52f48dddc6191d1802563d250ee6be4428d71420bda83b514ad6dc5aecc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"2fd4c143eff88dabb57701e6a40e02a4dbc36d5eb1362e7964d32028056a782b","impliedFormat":1},{"version":"714435130b9015fae551788df2a88038471a5a11eb471f27c4ede86552842bc9","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"27fdb0da0daf3b337c5530c5f266efe046a6ceb606e395b346974e4360c36419","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"d9e971bba9cf977c7774abbd4d2e3413a231af8a06a2e8b16af2a606bc91ddd0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"47ab634529c5955b6ad793474ae188fce3e6163e3a3fb5edd7e0e48f14435333","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"0225ecb9ed86bdb7a2c7fd01f1556906902929377b44483dc4b83e03b3ef227d","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"ddc734b4fae82a01d247e9e342d020976640b5e93b4e9b3a1e30e5518883a060","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"05db535df8bdc30d9116fe754a3473d1b6479afbc14ae8eb18b605c62677d518","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"0da1adb8d70eba31791b5f9203a384a628f9a1b03162bc68306838e842eff203","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"a1fdda024d346cd1906d4a1f66c2804217ef88b554946ac7d9b7bcbadcc75f11","impliedFormat":1},{"version":"49ae37a1b5de16f762c8a151eeaec6b558ce3c27251052ef7a361144af42cad4","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"31bd1a31f935276adf90384a35edbd4614018ff008f57d62ffb57ac538e94e51","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"561c795984d06b91091780cebeac616e9e41d83240770e1af14e6ec083b713d5","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1}],"root":[60,[65,67]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[60,1],[65,2],[66,3],[67,4],[195,5],[81,6],[82,6],[83,7],[75,8],[84,9],[85,10],[86,11],[70,1],[73,12],[71,1],[72,1],[87,13],[88,14],[89,15],[90,16],[91,17],[92,18],[93,18],[94,19],[95,20],[96,21],[97,22],[76,1],[74,1],[98,23],[99,24],[100,25],[132,26],[101,27],[102,28],[103,29],[104,30],[105,31],[106,32],[107,33],[108,34],[109,35],[110,36],[111,36],[112,37],[113,1],[114,38],[116,39],[115,40],[117,41],[118,42],[119,43],[120,44],[121,45],[122,46],[123,47],[124,48],[125,49],[126,50],[127,51],[128,52],[129,53],[77,1],[78,1],[79,1],[80,54],[130,55],[131,56],[171,57],[193,1],[192,1],[186,58],[173,59],[172,1],[170,60],[174,1],[168,61],[175,1],[194,62],[176,1],[185,63],[187,64],[169,65],[191,66],[189,67],[188,68],[190,69],[177,1],[183,70],[180,71],[182,72],[181,73],[179,74],[178,1],[184,75],[58,1],[59,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[1,1],[146,76],[156,77],[145,76],[166,78],[137,79],[136,80],[165,81],[159,82],[164,83],[139,84],[153,85],[138,86],[162,87],[134,88],[133,81],[163,89],[135,90],[140,91],[141,1],[144,91],[68,1],[167,92],[157,93],[148,94],[149,95],[151,96],[147,97],[150,98],[160,81],[142,99],[143,100],[152,101],[69,102],[155,93],[154,91],[158,1],[161,103],[61,1],[64,104],[62,1],[63,1]],"latestChangedDtsFile":"./types/register.d.ts","version":"5.9.3"}
|
|
1
|
+
{"fileNames":["../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/duskmoon-core.d.ts","../../../packages/base/dist/types/base-element.d.ts","../../../packages/base/dist/types/styles.d.ts","../../../packages/base/dist/types/animations.d.ts","../../../packages/base/dist/types/themes.d.ts","../../../packages/base/dist/types/mixins.d.ts","../../../packages/base/dist/types/types.d.ts","../../../packages/base/dist/types/validation.d.ts","../../../packages/base/dist/types/performance.d.ts","../../../packages/base/dist/types/index.d.ts","../src/el-dm-input.ts","../src/index.ts","../src/register.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/globals.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/assert.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/buffer.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/child_process.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/cluster.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/console.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/constants.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/crypto.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/dgram.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/dns.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/domain.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/events.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/fs.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/http.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/http2.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/https.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/module.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/net.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/os.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/path.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/process.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/punycode.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/querystring.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/readline.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/repl.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/sea.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/stream.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/test.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/timers.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/tls.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/tty.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/url.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/util.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/v8.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/vm.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/wasi.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/zlib.d.ts","../../../node_modules/.bun/@types+node@20.19.33/node_modules/@types/node/index.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/globals.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/s3.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/fetch.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/jsx.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/bun.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/extensions.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/devserver.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/ffi.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/html-rewriter.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/jsc.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/sqlite.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/vendor/expect-type/index.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/test.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/wasm.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/overrides.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/deprecated.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/redis.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/shell.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/serve.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/sql.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/security.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/bundle.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/bun.ns.d.ts","../../../node_modules/.bun/bun-types@1.3.9/node_modules/bun-types/index.d.ts","../../../node_modules/.bun/@types+bun@1.3.9/node_modules/@types/bun/index.d.ts"],"fileIdsList":[[80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[60,69,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[70,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[71,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,190,191,192,193,194,195,196,197,200],[80,86,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,88,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[89,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,94,122,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,90,95,100,108,119,130,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,90,91,100,108,173,174,175,177,179,190,191,192,193,194,195,196,197],[75,76,77,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,92,131,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,93,94,101,109,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,94,119,127,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,95,97,100,108,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,88,89,96,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,97,98,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,99,100,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,88,89,100,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,101,102,119,130,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,101,102,115,119,122,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,97,100,103,108,119,130,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,101,103,104,108,119,127,130,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,103,105,119,127,130,173,174,175,177,179,190,191,192,193,194,195,196,197],[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,106,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,107,130,135,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,97,100,108,119,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,109,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,110,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,88,89,111,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,113,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,114,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,115,116,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,115,117,131,133,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,119,120,122,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,121,122,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,119,120,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,122,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,123,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,86,89,119,124,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,125,126,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,125,126,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,94,108,119,127,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,128,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,108,129,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,103,114,130,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,94,131,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,119,132,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,107,133,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,134,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,172,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,100,102,111,119,122,130,133,135,172,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,119,136,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,94,101,103,127,131,135,172,173,174,175,176,179,180,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,190,191,193,194,195,196,197],[80,89,173,174,175,177,190,191,192,193,194,195,196,197],[80,89,172,173,174,177,179,190,191,192,193,194,195,196,197],[80,89,94,111,119,122,127,131,135,172,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,137,173,174,175,177,178,179,180,181,182,183,189,190,191,192,193,194,195,196,197,198,199],[10,80,81,89,92,94,101,102,109,122,127,130,136,173,174,175,177,179,190,192,193,194,195,196,197],[80,89,173,174,175,177,179,190,191,192,194,195,196,197],[80,89,101,173,175,177,179,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,190,191,192,193,194,195,196],[80,89,173,174,175,177,179,190,191,192,193,194,196,197],[80,89,173,174,175,177,179,190,191,192,193,195,196,197],[80,89,173,174,175,177,179,183,190,191,192,193,194,195,197],[80,89,173,174,175,177,179,188,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,184,185,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,184,185,186,187,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,184,186,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,184,190,191,192,193,194,195,196,197],[80,89,173,174,175,177,179,191,192,193,194,195,196,197],[80,89,130,144,148,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,119,130,144,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,139,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,127,130,141,144,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,108,127,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,137,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,137,139,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,108,130,141,144,173,174,175,177,179,190,191,192,193,194,195,196,197],[73,74,80,89,100,119,130,140,143,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,144,151,173,174,175,177,179,190,191,192,193,194,195,196,197],[73,80,89,142,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,144,165,166,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,122,130,137,140,144,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,137,165,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,137,138,139,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,144,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,166,167,168,169,170,171,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,144,159,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,144,151,152,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,142,144,152,153,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,143,173,174,175,177,179,190,191,192,193,194,195,196,197],[73,80,89,139,144,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,144,148,152,153,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,148,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,130,142,144,147,173,174,175,177,179,190,191,192,193,194,195,196,197],[73,80,89,141,144,151,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,119,173,174,175,177,179,190,191,192,193,194,195,196,197],[80,89,135,137,139,144,165,173,174,175,177,179,190,191,192,193,194,195,196,197],[61,62,63,64,65,66,67,68,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[61,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197],[66,80,89,173,174,175,177,179,190,191,192,193,194,195,196,197]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"089e5f6343a272f3dc70f597665b75c8574b02ac052fdf962ccea821459d7aa8","42526b6de804c10fd86f1cf55a6c660a74ee448e381f0f78356f223b75982280","28914adcfb92fa94199e1c887da7d67a7d9d736d9571627d6b02e55ff82f577b","b0a69607a92876948c2a42e3aa6703b0d724699468ed7e3c6e2a237d119a9db9","cdacb8e4ac607a46494d1187e073382c43e7269e8bf698502a285a8ccb470925","fbe322b01964d4e6ef9cbda07a4e8560c9422df11f7883e7e38d152f93933589","d3a328c0eccf652bc8b6c14515a8b848a558b9d684e15a7c0c2e15de5016df57","1b5193795ee478857bf1115fed004151284dd4da883a5a4f22e62631c3b414ad","3be01044afc63501423c361deb531d3e95f5c2677f1f7a628802bd346988d62c","78d8d1ca7d54a437702c8a8c08764b6a49f2cf2ca357d0e459bfe89a06abf50a",{"version":"d6d55f588678c35d7e4fb5ccc0ec8d192a1d04d0838e557a4d2cd2a6b14b5fcd","signature":"f0e7bad137a603e01c41d4df954523b51e7260c9c11803e0b72ca92438a99186"},{"version":"b64ae20bff13db5657470a071381a0fdc9203d427328ce94940052f644424808","signature":"34858bf7db2e90176df7b68cec8d2219e9496e5ae3f3dccdcc5898e92084d21c"},{"version":"2796e52f48dddc6191d1802563d250ee6be4428d71420bda83b514ad6dc5aecc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"4b34bdb6f29a4347b7db9c0f8622686035fe25adb1c9e927acd8d22a2cbb6ccb","impliedFormat":1},{"version":"714435130b9015fae551788df2a88038471a5a11eb471f27c4ede86552842bc9","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"27fdb0da0daf3b337c5530c5f266efe046a6ceb606e395b346974e4360c36419","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e456fd5b101271183d99a9087875a282323e3a3ff0d7bcf1881537eaa8b8e63","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"47ab634529c5955b6ad793474ae188fce3e6163e3a3fb5edd7e0e48f14435333","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"fad4e3c207fe23922d0b2d06b01acbfb9714c4f2685cf80fd384c8a100c82fd0","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"ddc734b4fae82a01d247e9e342d020976640b5e93b4e9b3a1e30e5518883a060","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"05db535df8bdc30d9116fe754a3473d1b6479afbc14ae8eb18b605c62677d518","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"dbecf494aac7d3ee1b23cdaafae0d0bfea8590567fc153db58fe00ed9fa66c24","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"314607151cc203975193d5f44765f38597be3b0a43f466d3c1bfb17176dd3bd3","impliedFormat":1},{"version":"e155d961d69d5a5a5d1492a0a69d2a8f3b40a7197989484ba8c62e26e4ecd213","impliedFormat":1},{"version":"f40aad6c91017f20fc542f5701ec41e0f6aeba63c61bbf7aa13266ec29a50a3b","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"b5a907deaba678e5083ccdd7cc063a3a8c3413c688098f6de29d6e4cefabc85f","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"998da6b85ebace9ebea67040dd1a640f0156064e3d28dbe9bd9c0229b6f72347","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1}],"root":[60,[70,72]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[60,1],[70,2],[71,3],[72,4],[201,5],[86,6],[87,6],[88,7],[80,8],[89,9],[90,10],[91,11],[75,1],[78,12],[76,1],[77,1],[92,13],[93,14],[94,15],[95,16],[96,17],[97,18],[98,18],[99,19],[100,20],[101,21],[102,22],[81,1],[79,1],[103,23],[104,24],[105,25],[137,26],[106,27],[107,28],[108,29],[109,30],[110,31],[111,32],[112,33],[113,34],[114,35],[115,36],[116,36],[117,37],[118,1],[119,38],[121,39],[120,40],[122,41],[123,42],[124,43],[125,44],[126,45],[127,46],[128,47],[129,48],[130,49],[131,50],[132,51],[133,52],[134,53],[82,1],[83,1],[84,1],[85,54],[135,55],[136,56],[177,57],[199,1],[198,1],[192,58],[179,59],[178,1],[175,60],[180,1],[173,61],[181,1],[200,62],[182,1],[176,1],[191,63],[193,64],[174,65],[197,66],[195,67],[194,68],[196,69],[183,1],[189,70],[186,71],[188,72],[187,73],[185,74],[184,1],[190,75],[58,1],[59,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[1,1],[151,76],[161,77],[150,76],[171,78],[142,79],[141,80],[170,81],[164,82],[169,83],[144,84],[158,85],[143,86],[167,87],[139,88],[138,81],[168,89],[140,90],[145,91],[146,1],[149,91],[73,1],[172,92],[162,93],[153,94],[154,95],[156,96],[152,97],[155,98],[165,81],[147,99],[148,100],[157,101],[74,102],[160,93],[159,91],[163,1],[166,103],[63,1],[61,1],[69,104],[65,105],[68,1],[62,1],[64,1],[66,1],[67,106]],"latestChangedDtsFile":"./types/register.d.ts","version":"5.9.3"}
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
* @fires dm-focus - Fired when input gains focus
|
|
37
37
|
* @fires dm-blur - Fired when input loses focus
|
|
38
38
|
*/
|
|
39
|
-
import { BaseElement } from '@duskmoon-dev/el-
|
|
40
|
-
import type { Size, ValidationState } from '@duskmoon-dev/el-
|
|
39
|
+
import { BaseElement } from '@duskmoon-dev/el-base';
|
|
40
|
+
import type { Size, ValidationState, Validator, ValidationResult } from '@duskmoon-dev/el-base';
|
|
41
41
|
/**
|
|
42
42
|
* Supported input types
|
|
43
43
|
*/
|
|
@@ -124,6 +124,29 @@ export declare class ElDmInput extends BaseElement {
|
|
|
124
124
|
helperText: string;
|
|
125
125
|
/** Whether the input is focused */
|
|
126
126
|
private _focused;
|
|
127
|
+
/** Registered validators */
|
|
128
|
+
private _validators;
|
|
129
|
+
/**
|
|
130
|
+
* Set the list of validators for this input.
|
|
131
|
+
* Validators are run in order; the first failure wins.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```ts
|
|
135
|
+
* import { validators } from '@duskmoon-dev/el-base';
|
|
136
|
+
* input.setValidators([
|
|
137
|
+
* validators.required('Email is required'),
|
|
138
|
+
* validators.email('Must be a valid email'),
|
|
139
|
+
* ]);
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
setValidators(rules: Validator[]): void;
|
|
143
|
+
/**
|
|
144
|
+
* Run all registered validators against the current value.
|
|
145
|
+
* Updates `validationState` and `errorMessage` automatically.
|
|
146
|
+
*
|
|
147
|
+
* @returns The validation result
|
|
148
|
+
*/
|
|
149
|
+
validate(): ValidationResult;
|
|
127
150
|
constructor();
|
|
128
151
|
connectedCallback(): void;
|
|
129
152
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el-dm-input.d.ts","sourceRoot":"","sources":["../../src/el-dm-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"el-dm-input.d.ts","sourceRoot":"","sources":["../../src/el-dm-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,WAAW,EAAiB,MAAM,uBAAuB,CAAC;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhG;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAoL5F,qBAAa,SAAU,SAAQ,WAAW;IACxC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAaf;IAEF,iBAAiB;IACT,IAAI,EAAE,SAAS,CAAC;IAExB,oBAAoB;IACZ,KAAK,EAAE,MAAM,CAAC;IAEtB,sBAAsB;IACd,IAAI,EAAE,MAAM,CAAC;IAErB,iBAAiB;IACT,KAAK,EAAE,MAAM,CAAC;IAEtB,uBAAuB;IACf,WAAW,EAAE,MAAM,CAAC;IAE5B,oCAAoC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAE1B,oCAAoC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAE1B,oCAAoC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAE1B,iBAAiB;IACT,IAAI,EAAE,IAAI,CAAC;IAEnB,uBAAuB;IACf,eAAe,EAAE,eAAe,CAAC;IAEzC,oBAAoB;IACZ,YAAY,EAAE,MAAM,CAAC;IAE7B,kBAAkB;IACV,UAAU,EAAE,MAAM,CAAC;IAE3B,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAS;IAEzB,4BAA4B;IAC5B,OAAO,CAAC,WAAW,CAAmB;IAEtC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAIvC;;;;;OAKG;IACH,QAAQ,IAAI,gBAAgB;;IAY5B,iBAAiB,IAAI,IAAI;IAKzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB,SAAS,CAAC,MAAM,IAAI,IAAI;IAaxB,MAAM,IAAI,MAAM;CA2EjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duskmoon-dev/el-input",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"scripts": {
|
|
24
24
|
"prebuild": "bun run clean",
|
|
25
25
|
"build": "bun run build:esm && bun run build:cjs && bun run build:types",
|
|
26
|
-
"build:esm": "bun build ./src/index.ts ./src/register.ts --outdir ./dist/esm --format esm --sourcemap --external @duskmoon-dev/el-
|
|
27
|
-
"build:cjs": "bun build ./src/index.ts ./src/register.ts --outdir ./dist/cjs --format cjs --sourcemap --external @duskmoon-dev/el-
|
|
26
|
+
"build:esm": "bun build ./src/index.ts ./src/register.ts --outdir ./dist/esm --format esm --sourcemap --external @duskmoon-dev/el-base --external @duskmoon-dev/core",
|
|
27
|
+
"build:cjs": "bun build ./src/index.ts ./src/register.ts --outdir ./dist/cjs --format cjs --sourcemap --external @duskmoon-dev/el-base --external @duskmoon-dev/core",
|
|
28
28
|
"build:types": "tsc --emitDeclarationOnly --outDir ./dist/types",
|
|
29
|
-
"dev": "bun build ./src/index.ts --outdir ./dist/esm --format esm --sourcemap --external @duskmoon-dev/el-
|
|
29
|
+
"dev": "bun build ./src/index.ts --outdir ./dist/esm --format esm --sourcemap --external @duskmoon-dev/el-base --watch",
|
|
30
30
|
"clean": "del-cli dist",
|
|
31
31
|
"test": "bun test",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"release:dry-run": "bun publish --dry-run"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@duskmoon-dev/el-
|
|
43
|
-
"@duskmoon-dev/core": "^1.
|
|
42
|
+
"@duskmoon-dev/el-base": "0.5.1",
|
|
43
|
+
"@duskmoon-dev/core": "^1.10.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.7.2"
|