import { h } from "@stencil/core";
import classNames from "classnames";
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
import { componentOnReady } from "../../utils/component";
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
let inputIdCounter = 0;
export class LmvzInput extends ReactiveControllerHost {
    el;
    get validationEl() {
        return this.el;
    }
    lmvzInput;
    internals;
    nativeInputElement;
    inputId = `lmvz-input-${inputIdCounter++}`;
    initialValue = '';
    nativeError = false;
    errorFromProp = false;
    get helperId() {
        return this.helperText ? `${this.inputId}-helper` : undefined;
    }
    get showErrorMessage() {
        return this.error && Boolean(this.errorMessage);
    }
    get errorId() {
        return `${this.inputId}-error`;
    }
    get describedBy() {
        const ids = [];
        if (this.helperId)
            ids.push(this.helperId);
        if (this.showErrorMessage)
            ids.push(this.errorId);
        return ids.length > 0 ? ids.join(' ') : undefined;
    }
    value;
    label;
    helperText;
    placeholder;
    disabled = false;
    readonly = false;
    required = false;
    name;
    type = 'text';
    errorMessage;
    autocomplete;
    inputmode;
    autocorrect;
    autocapitalize;
    spellcheck;
    autofocus = false;
    minlength;
    maxlength;
    pattern;
    min;
    max;
    step;
    form;
    get error() {
        return this.errorFromProp || this.nativeError;
    }
    set error(value) {
        this.errorFromProp = value;
    }
    async setValue(newValue) {
        const input = this.nativeInputElement;
        const val = newValue ?? '';
        if (input) {
            input.value = val;
        }
        this.value = val;
        this.internals.setFormValue?.(val);
        this.lmvzInput.emit(val);
    }
    async focusInput() {
        this.nativeInputElement?.focus();
    }
    async blurInput() {
        this.nativeInputElement?.blur();
    }
    async select() {
        this.nativeInputElement?.select();
    }
    async checkValidity() {
        return this.nativeInputElement?.checkValidity?.() ?? false;
    }
    async reportValidity() {
        return this.nativeInputElement?.reportValidity?.() ?? false;
    }
    async getInputElement() {
        if (!this.nativeInputElement) {
            await new Promise((resolve) => componentOnReady(this.el, resolve));
        }
        return Promise.resolve(this.nativeInputElement);
    }
    constructor() {
        super();
        this.addController(new AriaValidationController(this, {
            reValidateOnPropChanges: true,
        }));
    }
    componentWillLoad() {
        this.initialValue = this.value ?? '';
        super.componentWillLoad();
    }
    formAssociatedCallback(form) {
        if (!form)
            return;
        this.internals.setFormValue?.(this.value ?? '');
    }
    formResetCallback() {
        this.internals.setValidity({});
        this.setValue(this.initialValue);
    }
    formStateRestoreCallback(state) {
        this.setValue(state);
    }
    handleValueChange(newValue) {
        if (!this.nativeInputElement)
            return;
        const isInternalChange = this.nativeInputElement.value === newValue;
        if (isInternalChange)
            return;
        this.setValue(newValue);
    }
    handleDisabledChange(disabled) {
        if (disabled && this.nativeInputElement) {
            this.nativeInputElement.blur();
        }
    }
    handleInput = (event) => {
        const input = event.target;
        this.setValue(input.value);
    };
    handleChange = (event) => {
        const input = event.target ?? this.nativeInputElement;
        this.updateNativeError(input);
    };
    handleFocus = () => { };
    handleBlur = (event) => {
        const input = event.target;
        input.reportValidity?.();
    };
    updateNativeError(fromEvent) {
        const input = fromEvent ?? this.nativeInputElement;
        if (!input)
            return;
        this.nativeError = !(input.checkValidity?.() ?? true);
    }
    render() {
        const hasValue = Boolean(this.value);
        const shouldFloatLabel = hasValue || Boolean(this.placeholder);
        return (h("div", { key: '3f14adbe321717cdfe305dc623940acb8be194f8', class: classNames('input-container', {
                'interaction-filled': hasValue,
            }) }, h("div", { key: '2cc559cc0ff4da1f8418c510188bcbb93b42da02', class: "input-wrapper" }, h("slot", { key: 'b41a5179b6d8651a9b60777718f92b32f80fda89', name: "before-input" }), h("div", { key: '4ac81c8d277d6592e1d84f4b3abfffef03843a9c', class: "label-input-group" }, h("label", { key: '80b272c3b069a246dcbf26812d2281e436c6cdfa', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (h("span", { key: 'eb00d3be1a3eddd0661df74cfb2d4b95c75f5eea', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), h("input", { key: '6192c875976e7d21003de29badabd5a910ed0c17', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), h("slot", { key: '9a908984ecebead7f08bbd88ed57fa8f30a69b67', name: "after-input" })), h("div", { key: 'abe658929d955042358ff24ea2267ae5b7b3484d', id: this.helperId, role: "status" }, this.helperText || null), h("div", { key: '61c689c7d8ab3bbb7c62dc7a227c35441b4bbbd8', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
    }
    static get is() { return "lmvz-input"; }
    static get encapsulation() { return "scoped"; }
    static get formAssociated() { return true; }
    static get originalStyleUrls() {
        return {
            "$": ["./lmvz-input.css"]
        };
    }
    static get styleUrls() {
        return {
            "$": ["lmvz-input.css"]
        };
    }
    static get properties() {
        return {
            "value": {
                "type": "string",
                "mutable": true,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Value of the input"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "value"
            },
            "label": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": true,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Label text for the input"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "label"
            },
            "helperText": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Helper text displayed below the input"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "helper-text"
            },
            "placeholder": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Placeholder text"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "placeholder"
            },
            "disabled": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "false"
                        }],
                    "text": "Whether the input is disabled"
                },
                "getter": false,
                "setter": false,
                "reflect": true,
                "attribute": "disabled",
                "defaultValue": "false"
            },
            "readonly": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "false"
                        }],
                    "text": "Whether the input is readonly"
                },
                "getter": false,
                "setter": false,
                "reflect": true,
                "attribute": "readonly",
                "defaultValue": "false"
            },
            "required": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "false"
                        }],
                    "text": "Whether the input is required"
                },
                "getter": false,
                "setter": false,
                "reflect": true,
                "attribute": "required",
                "defaultValue": "false"
            },
            "name": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Name attribute for the input"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "name"
            },
            "type": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "Input.Type",
                    "resolved": "\"email\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\"",
                    "references": {
                        "Input": {
                            "location": "import",
                            "path": "../../api",
                            "id": "src/api/index.d.ts::Input",
                            "referenceLocation": "Input"
                        }
                    }
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "'text'"
                        }],
                    "text": "Type of the input"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "type",
                "defaultValue": "'text'"
            },
            "errorMessage": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Error message to display when error is true"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "error-message"
            },
            "autocomplete": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "Input.Autocomplete",
                    "resolved": "\"\" | \"additional-name webauthn\" | \"additional-name\" | \"address-level1 webauthn\" | \"address-level1\" | \"address-level2 webauthn\" | \"address-level2\" | \"address-level3 webauthn\" | \"address-level3\" | \"address-level4 webauthn\" | \"address-level4\" | \"address-line1 webauthn\" | \"address-line1\" | \"address-line2 webauthn\" | \"address-line2\" | \"address-line3 webauthn\" | \"address-line3\" | \"bday-day webauthn\" | \"bday-day\" | \"bday-month webauthn\" | \"bday-month\" | \"bday-year webauthn\" | \"bday-year\" | \"billing additional-name webauthn\" | \"billing additional-name\" | \"billing address-level1 webauthn\" | \"billing address-level1\" | \"billing address-level2 webauthn\" | \"billing address-level2\" | \"billing address-level3 webauthn\" | \"billing address-level3\" | \"billing address-level4 webauthn\" | \"billing address-level4\" | \"billing address-line1 webauthn\" | \"billing address-line1\" | \"billing address-line2 webauthn\" | \"billing address-line2\" | \"billing address-line3 webauthn\" | \"billing address-line3\" | \"billing bday-day webauthn\" | \"billing bday-day\" | \"billing bday-month webauthn\" | \"billing bday-month\" | \"billing bday-year webauthn\" | \"billing bday-year\" | \"billing cc-csc webauthn\" | \"billing cc-csc\" | \"billing cc-exp webauthn\" | \"billing cc-exp\" | \"billing cc-exp-month webauthn\" | \"billing cc-exp-month\" | \"billing cc-exp-year webauthn\" | \"billing cc-exp-year\" | \"billing cc-family-name webauthn\" | \"billing cc-family-name\" | \"billing cc-given-name webauthn\" | \"billing cc-given-name\" | \"billing cc-name webauthn\" | \"billing cc-name\" | \"billing cc-number webauthn\" | \"billing cc-number\" | \"billing cc-type webauthn\" | \"billing cc-type\" | \"billing country webauthn\" | \"billing country\" | \"billing country-name webauthn\" | \"billing country-name\" | \"billing current-password webauthn\" | \"billing current-password\" | \"billing email webauthn\" | \"billing email\" | \"billing family-name webauthn\" | \"billing family-name\" | \"billing given-name webauthn\" | \"billing given-name\" | \"billing home email webauthn\" | \"billing home email\" | \"billing home tel webauthn\" | \"billing home tel\" | \"billing home tel-area-code webauthn\" | \"billing home tel-area-code\" | \"billing home tel-country-code webauthn\" | \"billing home tel-country-code\" | \"billing home tel-extension webauthn\" | \"billing home tel-extension\" | \"billing home tel-local webauthn\" | \"billing home tel-local\" | \"billing home tel-local-prefix webauthn\" | \"billing home tel-local-prefix\" | \"billing home tel-local-suffix webauthn\" | \"billing home tel-local-suffix\" | \"billing home tel-national webauthn\" | \"billing home tel-national\" | \"billing honorific-prefix webauthn\" | \"billing honorific-prefix\" | \"billing honorific-suffix webauthn\" | \"billing honorific-suffix\" | \"billing mobile email webauthn\" | \"billing mobile email\" | \"billing mobile tel webauthn\" | \"billing mobile tel\" | \"billing mobile tel-area-code webauthn\" | \"billing mobile tel-area-code\" | \"billing mobile tel-country-code webauthn\" | \"billing mobile tel-country-code\" | \"billing mobile tel-extension webauthn\" | \"billing mobile tel-extension\" | \"billing mobile tel-local webauthn\" | \"billing mobile tel-local\" | \"billing mobile tel-local-prefix webauthn\" | \"billing mobile tel-local-prefix\" | \"billing mobile tel-local-suffix webauthn\" | \"billing mobile tel-local-suffix\" | \"billing mobile tel-national webauthn\" | \"billing mobile tel-national\" | \"billing name webauthn\" | \"billing name\" | \"billing new-password webauthn\" | \"billing new-password\" | \"billing one-time-code webauthn\" | \"billing one-time-code\" | \"billing organization webauthn\" | \"billing organization\" | \"billing postal-code webauthn\" | \"billing postal-code\" | \"billing street-address webauthn\" | \"billing street-address\" | \"billing tel webauthn\" | \"billing tel\" | \"billing tel-area-code webauthn\" | \"billing tel-area-code\" | \"billing tel-country-code webauthn\" | \"billing tel-country-code\" | \"billing tel-extension webauthn\" | \"billing tel-extension\" | \"billing tel-local webauthn\" | \"billing tel-local\" | \"billing tel-local-prefix webauthn\" | \"billing tel-local-prefix\" | \"billing tel-local-suffix webauthn\" | \"billing tel-local-suffix\" | \"billing tel-national webauthn\" | \"billing tel-national\" | \"billing transaction-amount webauthn\" | \"billing transaction-amount\" | \"billing transaction-currency webauthn\" | \"billing transaction-currency\" | \"billing username webauthn\" | \"billing username\" | \"billing work email webauthn\" | \"billing work email\" | \"billing work tel webauthn\" | \"billing work tel\" | \"billing work tel-area-code webauthn\" | \"billing work tel-area-code\" | \"billing work tel-country-code webauthn\" | \"billing work tel-country-code\" | \"billing work tel-extension webauthn\" | \"billing work tel-extension\" | \"billing work tel-local webauthn\" | \"billing work tel-local\" | \"billing work tel-local-prefix webauthn\" | \"billing work tel-local-prefix\" | \"billing work tel-local-suffix webauthn\" | \"billing work tel-local-suffix\" | \"billing work tel-national webauthn\" | \"billing work tel-national\" | \"cc-csc webauthn\" | \"cc-csc\" | \"cc-exp webauthn\" | \"cc-exp\" | \"cc-exp-month webauthn\" | \"cc-exp-month\" | \"cc-exp-year webauthn\" | \"cc-exp-year\" | \"cc-family-name webauthn\" | \"cc-family-name\" | \"cc-given-name webauthn\" | \"cc-given-name\" | \"cc-name webauthn\" | \"cc-name\" | \"cc-number webauthn\" | \"cc-number\" | \"cc-type webauthn\" | \"cc-type\" | \"country webauthn\" | \"country\" | \"country-name webauthn\" | \"country-name\" | \"current-password webauthn\" | \"current-password\" | \"email webauthn\" | \"email\" | \"family-name webauthn\" | \"family-name\" | \"given-name webauthn\" | \"given-name\" | \"home email webauthn\" | \"home email\" | \"home tel webauthn\" | \"home tel\" | \"home tel-area-code webauthn\" | \"home tel-area-code\" | \"home tel-country-code webauthn\" | \"home tel-country-code\" | \"home tel-extension webauthn\" | \"home tel-extension\" | \"home tel-local webauthn\" | \"home tel-local\" | \"home tel-local-prefix webauthn\" | \"home tel-local-prefix\" | \"home tel-local-suffix webauthn\" | \"home tel-local-suffix\" | \"home tel-national webauthn\" | \"home tel-national\" | \"honorific-prefix webauthn\" | \"honorific-prefix\" | \"honorific-suffix webauthn\" | \"honorific-suffix\" | \"mobile email webauthn\" | \"mobile email\" | \"mobile tel webauthn\" | \"mobile tel\" | \"mobile tel-area-code webauthn\" | \"mobile tel-area-code\" | \"mobile tel-country-code webauthn\" | \"mobile tel-country-code\" | \"mobile tel-extension webauthn\" | \"mobile tel-extension\" | \"mobile tel-local webauthn\" | \"mobile tel-local\" | \"mobile tel-local-prefix webauthn\" | \"mobile tel-local-prefix\" | \"mobile tel-local-suffix webauthn\" | \"mobile tel-local-suffix\" | \"mobile tel-national webauthn\" | \"mobile tel-national\" | \"name webauthn\" | \"name\" | \"new-password webauthn\" | \"new-password\" | \"off\" | \"on\" | \"one-time-code webauthn\" | \"one-time-code\" | \"organization webauthn\" | \"organization\" | \"postal-code webauthn\" | \"postal-code\" | \"shipping additional-name webauthn\" | \"shipping additional-name\" | \"shipping address-level1 webauthn\" | \"shipping address-level1\" | \"shipping address-level2 webauthn\" | \"shipping address-level2\" | \"shipping address-level3 webauthn\" | \"shipping address-level3\" | \"shipping address-level4 webauthn\" | \"shipping address-level4\" | \"shipping address-line1 webauthn\" | \"shipping address-line1\" | \"shipping address-line2 webauthn\" | \"shipping address-line2\" | \"shipping address-line3 webauthn\" | \"shipping address-line3\" | \"shipping bday-day webauthn\" | \"shipping bday-day\" | \"shipping bday-month webauthn\" | \"shipping bday-month\" | \"shipping bday-year webauthn\" | \"shipping bday-year\" | \"shipping cc-csc webauthn\" | \"shipping cc-csc\" | \"shipping cc-exp webauthn\" | \"shipping cc-exp\" | \"shipping cc-exp-month webauthn\" | \"shipping cc-exp-month\" | \"shipping cc-exp-year webauthn\" | \"shipping cc-exp-year\" | \"shipping cc-family-name webauthn\" | \"shipping cc-family-name\" | \"shipping cc-given-name webauthn\" | \"shipping cc-given-name\" | \"shipping cc-name webauthn\" | \"shipping cc-name\" | \"shipping cc-number webauthn\" | \"shipping cc-number\" | \"shipping cc-type webauthn\" | \"shipping cc-type\" | \"shipping country webauthn\" | \"shipping country\" | \"shipping country-name webauthn\" | \"shipping country-name\" | \"shipping current-password webauthn\" | \"shipping current-password\" | \"shipping email webauthn\" | \"shipping email\" | \"shipping family-name webauthn\" | \"shipping family-name\" | \"shipping given-name webauthn\" | \"shipping given-name\" | \"shipping home email webauthn\" | \"shipping home email\" | \"shipping home tel webauthn\" | \"shipping home tel\" | \"shipping home tel-area-code webauthn\" | \"shipping home tel-area-code\" | \"shipping home tel-country-code webauthn\" | \"shipping home tel-country-code\" | \"shipping home tel-extension webauthn\" | \"shipping home tel-extension\" | \"shipping home tel-local webauthn\" | \"shipping home tel-local\" | \"shipping home tel-local-prefix webauthn\" | \"shipping home tel-local-prefix\" | \"shipping home tel-local-suffix webauthn\" | \"shipping home tel-local-suffix\" | \"shipping home tel-national webauthn\" | \"shipping home tel-national\" | \"shipping honorific-prefix webauthn\" | \"shipping honorific-prefix\" | \"shipping honorific-suffix webauthn\" | \"shipping honorific-suffix\" | \"shipping mobile email webauthn\" | \"shipping mobile email\" | \"shipping mobile tel webauthn\" | \"shipping mobile tel\" | \"shipping mobile tel-area-code webauthn\" | \"shipping mobile tel-area-code\" | \"shipping mobile tel-country-code webauthn\" | \"shipping mobile tel-country-code\" | \"shipping mobile tel-extension webauthn\" | \"shipping mobile tel-extension\" | \"shipping mobile tel-local webauthn\" | \"shipping mobile tel-local\" | \"shipping mobile tel-local-prefix webauthn\" | \"shipping mobile tel-local-prefix\" | \"shipping mobile tel-local-suffix webauthn\" | \"shipping mobile tel-local-suffix\" | \"shipping mobile tel-national webauthn\" | \"shipping mobile tel-national\" | \"shipping name webauthn\" | \"shipping name\" | \"shipping new-password webauthn\" | \"shipping new-password\" | \"shipping one-time-code webauthn\" | \"shipping one-time-code\" | \"shipping organization webauthn\" | \"shipping organization\" | \"shipping postal-code webauthn\" | \"shipping postal-code\" | \"shipping street-address webauthn\" | \"shipping street-address\" | \"shipping tel webauthn\" | \"shipping tel\" | \"shipping tel-area-code webauthn\" | \"shipping tel-area-code\" | \"shipping tel-country-code webauthn\" | \"shipping tel-country-code\" | \"shipping tel-extension webauthn\" | \"shipping tel-extension\" | \"shipping tel-local webauthn\" | \"shipping tel-local\" | \"shipping tel-local-prefix webauthn\" | \"shipping tel-local-prefix\" | \"shipping tel-local-suffix webauthn\" | \"shipping tel-local-suffix\" | \"shipping tel-national webauthn\" | \"shipping tel-national\" | \"shipping transaction-amount webauthn\" | \"shipping transaction-amount\" | \"shipping transaction-currency webauthn\" | \"shipping transaction-currency\" | \"shipping username webauthn\" | \"shipping username\" | \"shipping work email webauthn\" | \"shipping work email\" | \"shipping work tel webauthn\" | \"shipping work tel\" | \"shipping work tel-area-code webauthn\" | \"shipping work tel-area-code\" | \"shipping work tel-country-code webauthn\" | \"shipping work tel-country-code\" | \"shipping work tel-extension webauthn\" | \"shipping work tel-extension\" | \"shipping work tel-local webauthn\" | \"shipping work tel-local\" | \"shipping work tel-local-prefix webauthn\" | \"shipping work tel-local-prefix\" | \"shipping work tel-local-suffix webauthn\" | \"shipping work tel-local-suffix\" | \"shipping work tel-national webauthn\" | \"shipping work tel-national\" | \"street-address webauthn\" | \"street-address\" | \"tel webauthn\" | \"tel\" | \"tel-area-code webauthn\" | \"tel-area-code\" | \"tel-country-code webauthn\" | \"tel-country-code\" | \"tel-extension webauthn\" | \"tel-extension\" | \"tel-local webauthn\" | \"tel-local\" | \"tel-local-prefix webauthn\" | \"tel-local-prefix\" | \"tel-local-suffix webauthn\" | \"tel-local-suffix\" | \"tel-national webauthn\" | \"tel-national\" | \"transaction-amount webauthn\" | \"transaction-amount\" | \"transaction-currency webauthn\" | \"transaction-currency\" | \"username webauthn\" | \"username\" | \"work email webauthn\" | \"work email\" | \"work tel webauthn\" | \"work tel\" | \"work tel-area-code webauthn\" | \"work tel-area-code\" | \"work tel-country-code webauthn\" | \"work tel-country-code\" | \"work tel-extension webauthn\" | \"work tel-extension\" | \"work tel-local webauthn\" | \"work tel-local\" | \"work tel-local-prefix webauthn\" | \"work tel-local-prefix\" | \"work tel-local-suffix webauthn\" | \"work tel-local-suffix\" | \"work tel-national webauthn\" | \"work tel-national\" | `section-${string} additional-name webauthn` | `section-${string} additional-name` | `section-${string} address-level1 webauthn` | `section-${string} address-level1` | `section-${string} address-level2 webauthn` | `section-${string} address-level2` | `section-${string} address-level3 webauthn` | `section-${string} address-level3` | `section-${string} address-level4 webauthn` | `section-${string} address-level4` | `section-${string} address-line1 webauthn` | `section-${string} address-line1` | `section-${string} address-line2 webauthn` | `section-${string} address-line2` | `section-${string} address-line3 webauthn` | `section-${string} address-line3` | `section-${string} bday-day webauthn` | `section-${string} bday-day` | `section-${string} bday-month webauthn` | `section-${string} bday-month` | `section-${string} bday-year webauthn` | `section-${string} bday-year` | `section-${string} billing additional-name webauthn` | `section-${string} billing additional-name` | `section-${string} billing address-level1 webauthn` | `section-${string} billing address-level1` | `section-${string} billing address-level2 webauthn` | `section-${string} billing address-level2` | `section-${string} billing address-level3 webauthn` | `section-${string} billing address-level3` | `section-${string} billing address-level4 webauthn` | `section-${string} billing address-level4` | `section-${string} billing address-line1 webauthn` | `section-${string} billing address-line1` | `section-${string} billing address-line2 webauthn` | `section-${string} billing address-line2` | `section-${string} billing address-line3 webauthn` | `section-${string} billing address-line3` | `section-${string} billing bday-day webauthn` | `section-${string} billing bday-day` | `section-${string} billing bday-month webauthn` | `section-${string} billing bday-month` | `section-${string} billing bday-year webauthn` | `section-${string} billing bday-year` | `section-${string} billing cc-csc webauthn` | `section-${string} billing cc-csc` | `section-${string} billing cc-exp webauthn` | `section-${string} billing cc-exp-month webauthn` | `section-${string} billing cc-exp-month` | `section-${string} billing cc-exp-year webauthn` | `section-${string} billing cc-exp-year` | `section-${string} billing cc-exp` | `section-${string} billing cc-family-name webauthn` | `section-${string} billing cc-family-name` | `section-${string} billing cc-given-name webauthn` | `section-${string} billing cc-given-name` | `section-${string} billing cc-name webauthn` | `section-${string} billing cc-name` | `section-${string} billing cc-number webauthn` | `section-${string} billing cc-number` | `section-${string} billing cc-type webauthn` | `section-${string} billing cc-type` | `section-${string} billing country webauthn` | `section-${string} billing country-name webauthn` | `section-${string} billing country-name` | `section-${string} billing country` | `section-${string} billing current-password webauthn` | `section-${string} billing current-password` | `section-${string} billing email webauthn` | `section-${string} billing email` | `section-${string} billing family-name webauthn` | `section-${string} billing family-name` | `section-${string} billing given-name webauthn` | `section-${string} billing given-name` | `section-${string} billing home email webauthn` | `section-${string} billing home email` | `section-${string} billing home tel webauthn` | `section-${string} billing home tel-area-code webauthn` | `section-${string} billing home tel-area-code` | `section-${string} billing home tel-country-code webauthn` | `section-${string} billing home tel-country-code` | `section-${string} billing home tel-extension webauthn` | `section-${string} billing home tel-extension` | `section-${string} billing home tel-local webauthn` | `section-${string} billing home tel-local-prefix webauthn` | `section-${string} billing home tel-local-prefix` | `section-${string} billing home tel-local-suffix webauthn` | `section-${string} billing home tel-local-suffix` | `section-${string} billing home tel-local` | `section-${string} billing home tel-national webauthn` | `section-${string} billing home tel-national` | `section-${string} billing home tel` | `section-${string} billing honorific-prefix webauthn` | `section-${string} billing honorific-prefix` | `section-${string} billing honorific-suffix webauthn` | `section-${string} billing honorific-suffix` | `section-${string} billing mobile email webauthn` | `section-${string} billing mobile email` | `section-${string} billing mobile tel webauthn` | `section-${string} billing mobile tel-area-code webauthn` | `section-${string} billing mobile tel-area-code` | `section-${string} billing mobile tel-country-code webauthn` | `section-${string} billing mobile tel-country-code` | `section-${string} billing mobile tel-extension webauthn` | `section-${string} billing mobile tel-extension` | `section-${string} billing mobile tel-local webauthn` | `section-${string} billing mobile tel-local-prefix webauthn` | `section-${string} billing mobile tel-local-prefix` | `section-${string} billing mobile tel-local-suffix webauthn` | `section-${string} billing mobile tel-local-suffix` | `section-${string} billing mobile tel-local` | `section-${string} billing mobile tel-national webauthn` | `section-${string} billing mobile tel-national` | `section-${string} billing mobile tel` | `section-${string} billing name webauthn` | `section-${string} billing name` | `section-${string} billing new-password webauthn` | `section-${string} billing new-password` | `section-${string} billing one-time-code webauthn` | `section-${string} billing one-time-code` | `section-${string} billing organization webauthn` | `section-${string} billing organization` | `section-${string} billing postal-code webauthn` | `section-${string} billing postal-code` | `section-${string} billing street-address webauthn` | `section-${string} billing street-address` | `section-${string} billing tel webauthn` | `section-${string} billing tel-area-code webauthn` | `section-${string} billing tel-area-code` | `section-${string} billing tel-country-code webauthn` | `section-${string} billing tel-country-code` | `section-${string} billing tel-extension webauthn` | `section-${string} billing tel-extension` | `section-${string} billing tel-local webauthn` | `section-${string} billing tel-local-prefix webauthn` | `section-${string} billing tel-local-prefix` | `section-${string} billing tel-local-suffix webauthn` | `section-${string} billing tel-local-suffix` | `section-${string} billing tel-local` | `section-${string} billing tel-national webauthn` | `section-${string} billing tel-national` | `section-${string} billing tel` | `section-${string} billing transaction-amount webauthn` | `section-${string} billing transaction-amount` | `section-${string} billing transaction-currency webauthn` | `section-${string} billing transaction-currency` | `section-${string} billing username webauthn` | `section-${string} billing username` | `section-${string} billing work email webauthn` | `section-${string} billing work email` | `section-${string} billing work tel webauthn` | `section-${string} billing work tel-area-code webauthn` | `section-${string} billing work tel-area-code` | `section-${string} billing work tel-country-code webauthn` | `section-${string} billing work tel-country-code` | `section-${string} billing work tel-extension webauthn` | `section-${string} billing work tel-extension` | `section-${string} billing work tel-local webauthn` | `section-${string} billing work tel-local-prefix webauthn` | `section-${string} billing work tel-local-prefix` | `section-${string} billing work tel-local-suffix webauthn` | `section-${string} billing work tel-local-suffix` | `section-${string} billing work tel-local` | `section-${string} billing work tel-national webauthn` | `section-${string} billing work tel-national` | `section-${string} billing work tel` | `section-${string} cc-csc webauthn` | `section-${string} cc-csc` | `section-${string} cc-exp webauthn` | `section-${string} cc-exp-month webauthn` | `section-${string} cc-exp-month` | `section-${string} cc-exp-year webauthn` | `section-${string} cc-exp-year` | `section-${string} cc-exp` | `section-${string} cc-family-name webauthn` | `section-${string} cc-family-name` | `section-${string} cc-given-name webauthn` | `section-${string} cc-given-name` | `section-${string} cc-name webauthn` | `section-${string} cc-name` | `section-${string} cc-number webauthn` | `section-${string} cc-number` | `section-${string} cc-type webauthn` | `section-${string} cc-type` | `section-${string} country webauthn` | `section-${string} country-name webauthn` | `section-${string} country-name` | `section-${string} country` | `section-${string} current-password webauthn` | `section-${string} current-password` | `section-${string} email webauthn` | `section-${string} email` | `section-${string} family-name webauthn` | `section-${string} family-name` | `section-${string} given-name webauthn` | `section-${string} given-name` | `section-${string} home email webauthn` | `section-${string} home email` | `section-${string} home tel webauthn` | `section-${string} home tel-area-code webauthn` | `section-${string} home tel-area-code` | `section-${string} home tel-country-code webauthn` | `section-${string} home tel-country-code` | `section-${string} home tel-extension webauthn` | `section-${string} home tel-extension` | `section-${string} home tel-local webauthn` | `section-${string} home tel-local-prefix webauthn` | `section-${string} home tel-local-prefix` | `section-${string} home tel-local-suffix webauthn` | `section-${string} home tel-local-suffix` | `section-${string} home tel-local` | `section-${string} home tel-national webauthn` | `section-${string} home tel-national` | `section-${string} home tel` | `section-${string} honorific-prefix webauthn` | `section-${string} honorific-prefix` | `section-${string} honorific-suffix webauthn` | `section-${string} honorific-suffix` | `section-${string} mobile email webauthn` | `section-${string} mobile email` | `section-${string} mobile tel webauthn` | `section-${string} mobile tel-area-code webauthn` | `section-${string} mobile tel-area-code` | `section-${string} mobile tel-country-code webauthn` | `section-${string} mobile tel-country-code` | `section-${string} mobile tel-extension webauthn` | `section-${string} mobile tel-extension` | `section-${string} mobile tel-local webauthn` | `section-${string} mobile tel-local-prefix webauthn` | `section-${string} mobile tel-local-prefix` | `section-${string} mobile tel-local-suffix webauthn` | `section-${string} mobile tel-local-suffix` | `section-${string} mobile tel-local` | `section-${string} mobile tel-national webauthn` | `section-${string} mobile tel-national` | `section-${string} mobile tel` | `section-${string} name webauthn` | `section-${string} name` | `section-${string} new-password webauthn` | `section-${string} new-password` | `section-${string} one-time-code webauthn` | `section-${string} one-time-code` | `section-${string} organization webauthn` | `section-${string} organization` | `section-${string} postal-code webauthn` | `section-${string} postal-code` | `section-${string} shipping additional-name webauthn` | `section-${string} shipping additional-name` | `section-${string} shipping address-level1 webauthn` | `section-${string} shipping address-level1` | `section-${string} shipping address-level2 webauthn` | `section-${string} shipping address-level2` | `section-${string} shipping address-level3 webauthn` | `section-${string} shipping address-level3` | `section-${string} shipping address-level4 webauthn` | `section-${string} shipping address-level4` | `section-${string} shipping address-line1 webauthn` | `section-${string} shipping address-line1` | `section-${string} shipping address-line2 webauthn` | `section-${string} shipping address-line2` | `section-${string} shipping address-line3 webauthn` | `section-${string} shipping address-line3` | `section-${string} shipping bday-day webauthn` | `section-${string} shipping bday-day` | `section-${string} shipping bday-month webauthn` | `section-${string} shipping bday-month` | `section-${string} shipping bday-year webauthn` | `section-${string} shipping bday-year` | `section-${string} shipping cc-csc webauthn` | `section-${string} shipping cc-csc` | `section-${string} shipping cc-exp webauthn` | `section-${string} shipping cc-exp-month webauthn` | `section-${string} shipping cc-exp-month` | `section-${string} shipping cc-exp-year webauthn` | `section-${string} shipping cc-exp-year` | `section-${string} shipping cc-exp` | `section-${string} shipping cc-family-name webauthn` | `section-${string} shipping cc-family-name` | `section-${string} shipping cc-given-name webauthn` | `section-${string} shipping cc-given-name` | `section-${string} shipping cc-name webauthn` | `section-${string} shipping cc-name` | `section-${string} shipping cc-number webauthn` | `section-${string} shipping cc-number` | `section-${string} shipping cc-type webauthn` | `section-${string} shipping cc-type` | `section-${string} shipping country webauthn` | `section-${string} shipping country-name webauthn` | `section-${string} shipping country-name` | `section-${string} shipping country` | `section-${string} shipping current-password webauthn` | `section-${string} shipping current-password` | `section-${string} shipping email webauthn` | `section-${string} shipping email` | `section-${string} shipping family-name webauthn` | `section-${string} shipping family-name` | `section-${string} shipping given-name webauthn` | `section-${string} shipping given-name` | `section-${string} shipping home email webauthn` | `section-${string} shipping home email` | `section-${string} shipping home tel webauthn` | `section-${string} shipping home tel-area-code webauthn` | `section-${string} shipping home tel-area-code` | `section-${string} shipping home tel-country-code webauthn` | `section-${string} shipping home tel-country-code` | `section-${string} shipping home tel-extension webauthn` | `section-${string} shipping home tel-extension` | `section-${string} shipping home tel-local webauthn` | `section-${string} shipping home tel-local-prefix webauthn` | `section-${string} shipping home tel-local-prefix` | `section-${string} shipping home tel-local-suffix webauthn` | `section-${string} shipping home tel-local-suffix` | `section-${string} shipping home tel-local` | `section-${string} shipping home tel-national webauthn` | `section-${string} shipping home tel-national` | `section-${string} shipping home tel` | `section-${string} shipping honorific-prefix webauthn` | `section-${string} shipping honorific-prefix` | `section-${string} shipping honorific-suffix webauthn` | `section-${string} shipping honorific-suffix` | `section-${string} shipping mobile email webauthn` | `section-${string} shipping mobile email` | `section-${string} shipping mobile tel webauthn` | `section-${string} shipping mobile tel-area-code webauthn` | `section-${string} shipping mobile tel-area-code` | `section-${string} shipping mobile tel-country-code webauthn` | `section-${string} shipping mobile tel-country-code` | `section-${string} shipping mobile tel-extension webauthn` | `section-${string} shipping mobile tel-extension` | `section-${string} shipping mobile tel-local webauthn` | `section-${string} shipping mobile tel-local-prefix webauthn` | `section-${string} shipping mobile tel-local-prefix` | `section-${string} shipping mobile tel-local-suffix webauthn` | `section-${string} shipping mobile tel-local-suffix` | `section-${string} shipping mobile tel-local` | `section-${string} shipping mobile tel-national webauthn` | `section-${string} shipping mobile tel-national` | `section-${string} shipping mobile tel` | `section-${string} shipping name webauthn` | `section-${string} shipping name` | `section-${string} shipping new-password webauthn` | `section-${string} shipping new-password` | `section-${string} shipping one-time-code webauthn` | `section-${string} shipping one-time-code` | `section-${string} shipping organization webauthn` | `section-${string} shipping organization` | `section-${string} shipping postal-code webauthn` | `section-${string} shipping postal-code` | `section-${string} shipping street-address webauthn` | `section-${string} shipping street-address` | `section-${string} shipping tel webauthn` | `section-${string} shipping tel-area-code webauthn` | `section-${string} shipping tel-area-code` | `section-${string} shipping tel-country-code webauthn` | `section-${string} shipping tel-country-code` | `section-${string} shipping tel-extension webauthn` | `section-${string} shipping tel-extension` | `section-${string} shipping tel-local webauthn` | `section-${string} shipping tel-local-prefix webauthn` | `section-${string} shipping tel-local-prefix` | `section-${string} shipping tel-local-suffix webauthn` | `section-${string} shipping tel-local-suffix` | `section-${string} shipping tel-local` | `section-${string} shipping tel-national webauthn` | `section-${string} shipping tel-national` | `section-${string} shipping tel` | `section-${string} shipping transaction-amount webauthn` | `section-${string} shipping transaction-amount` | `section-${string} shipping transaction-currency webauthn` | `section-${string} shipping transaction-currency` | `section-${string} shipping username webauthn` | `section-${string} shipping username` | `section-${string} shipping work email webauthn` | `section-${string} shipping work email` | `section-${string} shipping work tel webauthn` | `section-${string} shipping work tel-area-code webauthn` | `section-${string} shipping work tel-area-code` | `section-${string} shipping work tel-country-code webauthn` | `section-${string} shipping work tel-country-code` | `section-${string} shipping work tel-extension webauthn` | `section-${string} shipping work tel-extension` | `section-${string} shipping work tel-local webauthn` | `section-${string} shipping work tel-local-prefix webauthn` | `section-${string} shipping work tel-local-prefix` | `section-${string} shipping work tel-local-suffix webauthn` | `section-${string} shipping work tel-local-suffix` | `section-${string} shipping work tel-local` | `section-${string} shipping work tel-national webauthn` | `section-${string} shipping work tel-national` | `section-${string} shipping work tel` | `section-${string} street-address webauthn` | `section-${string} street-address` | `section-${string} tel webauthn` | `section-${string} tel-area-code webauthn` | `section-${string} tel-area-code` | `section-${string} tel-country-code webauthn` | `section-${string} tel-country-code` | `section-${string} tel-extension webauthn` | `section-${string} tel-extension` | `section-${string} tel-local webauthn` | `section-${string} tel-local-prefix webauthn` | `section-${string} tel-local-prefix` | `section-${string} tel-local-suffix webauthn` | `section-${string} tel-local-suffix` | `section-${string} tel-local` | `section-${string} tel-national webauthn` | `section-${string} tel-national` | `section-${string} tel` | `section-${string} transaction-amount webauthn` | `section-${string} transaction-amount` | `section-${string} transaction-currency webauthn` | `section-${string} transaction-currency` | `section-${string} username webauthn` | `section-${string} username` | `section-${string} work email webauthn` | `section-${string} work email` | `section-${string} work tel webauthn` | `section-${string} work tel-area-code webauthn` | `section-${string} work tel-area-code` | `section-${string} work tel-country-code webauthn` | `section-${string} work tel-country-code` | `section-${string} work tel-extension webauthn` | `section-${string} work tel-extension` | `section-${string} work tel-local webauthn` | `section-${string} work tel-local-prefix webauthn` | `section-${string} work tel-local-prefix` | `section-${string} work tel-local-suffix webauthn` | `section-${string} work tel-local-suffix` | `section-${string} work tel-local` | `section-${string} work tel-national webauthn` | `section-${string} work tel-national` | `section-${string} work tel` | undefined",
                    "references": {
                        "Input": {
                            "location": "import",
                            "path": "../../api",
                            "id": "src/api/index.d.ts::Input",
                            "referenceLocation": "Input"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Autocomplete attribute for form autofill"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "autocomplete"
            },
            "inputmode": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "Input.Inputmode",
                    "resolved": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined",
                    "references": {
                        "Input": {
                            "location": "import",
                            "path": "../../api",
                            "id": "src/api/index.d.ts::Input",
                            "referenceLocation": "Input"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Input mode for mobile keyboards"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "inputmode"
            },
            "autocorrect": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "'on' | 'off'",
                    "resolved": "\"off\" | \"on\" | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "undefined"
                        }],
                    "text": "Autocorrect attribute for mobile keyboards"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "autocorrect"
            },
            "autocapitalize": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "Input.Autocapitalize",
                    "resolved": "\"characters\" | \"none\" | \"off\" | \"on\" | \"sentences\" | \"words\" | undefined",
                    "references": {
                        "Input": {
                            "location": "import",
                            "path": "../../api",
                            "id": "src/api/index.d.ts::Input",
                            "referenceLocation": "Input"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "undefined"
                        }],
                    "text": "Autocapitalize attribute for mobile keyboards"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "autocapitalize"
            },
            "spellcheck": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "undefined"
                        }],
                    "text": "Spellcheck attribute"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "spellcheck"
            },
            "autofocus": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "false"
                        }],
                    "text": "Whether the input should autofocus"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "autofocus",
                "defaultValue": "false"
            },
            "minlength": {
                "type": "number",
                "mutable": false,
                "complexType": {
                    "original": "number",
                    "resolved": "number | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Minimum length for text inputs"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "minlength"
            },
            "maxlength": {
                "type": "number",
                "mutable": false,
                "complexType": {
                    "original": "number",
                    "resolved": "number | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Maximum length for text inputs"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "maxlength"
            },
            "pattern": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Validation pattern (regex)"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "pattern"
            },
            "min": {
                "type": "any",
                "mutable": false,
                "complexType": {
                    "original": "number | string",
                    "resolved": "number | string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Minimum value for number/date inputs"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "min"
            },
            "max": {
                "type": "any",
                "mutable": false,
                "complexType": {
                    "original": "number | string",
                    "resolved": "number | string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Maximum value for number/date inputs"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "max"
            },
            "step": {
                "type": "any",
                "mutable": false,
                "complexType": {
                    "original": "number | string",
                    "resolved": "number | string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Step interval for number inputs"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "step"
            },
            "form": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Form id to associate with"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "form"
            },
            "error": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [{
                            "name": "default",
                            "text": "false"
                        }],
                    "text": "Whether the input is in an error state\nWhen not set manually, this will automatically reflect native HTML5 validation state"
                },
                "getter": true,
                "setter": true,
                "reflect": true,
                "attribute": "error"
            }
        };
    }
    static get states() {
        return {
            "nativeError": {}
        };
    }
    static get events() {
        return [{
                "method": "lmvzInput",
                "name": "lmvzInput",
                "bubbles": true,
                "cancelable": true,
                "composed": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                }
            }];
    }
    static get methods() {
        return {
            "setValue": {
                "complexType": {
                    "signature": "(newValue: string | undefined) => Promise<void>",
                    "parameters": [{
                            "name": "newValue",
                            "type": "string | undefined",
                            "docs": ""
                        }],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "",
                    "tags": []
                }
            },
            "focusInput": {
                "complexType": {
                    "signature": "() => Promise<void>",
                    "parameters": [],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "Sets focus on the input",
                    "tags": []
                }
            },
            "blurInput": {
                "complexType": {
                    "signature": "() => Promise<void>",
                    "parameters": [],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "Removes focus from the input",
                    "tags": []
                }
            },
            "select": {
                "complexType": {
                    "signature": "() => Promise<void>",
                    "parameters": [],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "Selects the text in the input",
                    "tags": []
                }
            },
            "checkValidity": {
                "complexType": {
                    "signature": "() => Promise<boolean>",
                    "parameters": [],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<boolean>"
                },
                "docs": {
                    "text": "Returns whether the input satisfies its validation constraints",
                    "tags": []
                }
            },
            "reportValidity": {
                "complexType": {
                    "signature": "() => Promise<boolean>",
                    "parameters": [],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<boolean>"
                },
                "docs": {
                    "text": "Reports validation errors to the user",
                    "tags": []
                }
            },
            "getInputElement": {
                "complexType": {
                    "signature": "() => Promise<HTMLInputElement | undefined>",
                    "parameters": [],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        },
                        "HTMLInputElement": {
                            "location": "global",
                            "id": "global::HTMLInputElement"
                        }
                    },
                    "return": "Promise<HTMLInputElement | undefined>"
                },
                "docs": {
                    "text": "Returns the native HTMLInputElement.\n\nPromise resolves when the element is ready and the input is available. If the input is not yet rendered, it waits for the component to be ready.",
                    "tags": []
                }
            }
        };
    }
    static get elementRef() { return "el"; }
    static get watchers() {
        return [{
                "propName": "value",
                "methodName": "handleValueChange"
            }, {
                "propName": "disabled",
                "methodName": "handleDisabledChange"
            }];
    }
    static get attachInternalsMemberName() { return "internals"; }
}
