{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "define.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "define.js",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "FocusMixin",
          "declaration": {
            "name": "FocusMixin",
            "module": "\"./src/FocusMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormatMixin",
          "declaration": {
            "name": "FormatMixin",
            "module": "\"./src/FormatMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormControlMixin",
          "declaration": {
            "name": "FormControlMixin",
            "module": "\"./src/FormControlMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "InteractionStateMixin",
          "declaration": {
            "name": "InteractionStateMixin",
            "module": "\"./src/InteractionStateMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "LionField",
          "declaration": {
            "name": "LionField",
            "module": "\"./src/LionField.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormRegisteringMixin",
          "declaration": {
            "name": "FormRegisteringMixin",
            "module": "\"./src/registration/FormRegisteringMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarMixin",
          "declaration": {
            "name": "FormRegistrarMixin",
            "module": "\"./src/registration/FormRegistrarMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarPortalMixin",
          "declaration": {
            "name": "FormRegistrarPortalMixin",
            "module": "\"./src/registration/FormRegistrarPortalMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "NativeTextFieldMixin",
          "declaration": {
            "name": "NativeTextFieldMixin",
            "module": "\"./src/NativeTextFieldMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormControlsCollection",
          "declaration": {
            "name": "FormControlsCollection",
            "module": "\"./src/registration/FormControlsCollection.js\""
          }
        },
        {
          "kind": "js",
          "name": "ValidateMixin",
          "declaration": {
            "name": "ValidateMixin",
            "module": "\"./src/validate/ValidateMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "Unparseable",
          "declaration": {
            "name": "Unparseable",
            "module": "\"./src/validate/Unparseable.js\""
          }
        },
        {
          "kind": "js",
          "name": "Validator",
          "declaration": {
            "name": "Validator",
            "module": "\"./src/validate/Validator.js\""
          }
        },
        {
          "kind": "js",
          "name": "ResultValidator",
          "declaration": {
            "name": "ResultValidator",
            "module": "\"./src/validate/ResultValidator.js\""
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "\"./src/validate/validators/Required.js\""
          }
        },
        {
          "kind": "js",
          "name": "DefaultSuccess",
          "declaration": {
            "name": "DefaultSuccess",
            "module": "\"./src/validate/resultValidators/DefaultSuccess.js\""
          }
        },
        {
          "kind": "js",
          "name": "LionValidationFeedback",
          "declaration": {
            "name": "LionValidationFeedback",
            "module": "\"./src/validate/LionValidationFeedback.js\""
          }
        },
        {
          "kind": "js",
          "name": "ChoiceGroupMixin",
          "declaration": {
            "name": "ChoiceGroupMixin",
            "module": "\"./src/choice-group/ChoiceGroupMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "ChoiceInputMixin",
          "declaration": {
            "name": "ChoiceInputMixin",
            "module": "\"./src/choice-group/ChoiceInputMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "FormGroupMixin",
          "declaration": {
            "name": "FormGroupMixin",
            "module": "\"./src/form-group/FormGroupMixin.js\""
          }
        },
        {
          "kind": "js",
          "name": "IsString",
          "declaration": {
            "name": "IsString",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "EqualsLength",
          "declaration": {
            "name": "EqualsLength",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MinLength",
          "declaration": {
            "name": "MinLength",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MaxLength",
          "declaration": {
            "name": "MaxLength",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MinMaxLength",
          "declaration": {
            "name": "MinMaxLength",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "IsEmail",
          "declaration": {
            "name": "IsEmail",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "Pattern",
          "declaration": {
            "name": "Pattern",
            "module": "\"./src/validate/validators/StringValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "IsNumber",
          "declaration": {
            "name": "IsNumber",
            "module": "\"./src/validate/validators/NumberValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MinNumber",
          "declaration": {
            "name": "MinNumber",
            "module": "\"./src/validate/validators/NumberValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MaxNumber",
          "declaration": {
            "name": "MaxNumber",
            "module": "\"./src/validate/validators/NumberValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MinMaxNumber",
          "declaration": {
            "name": "MinMaxNumber",
            "module": "\"./src/validate/validators/NumberValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "IsDate",
          "declaration": {
            "name": "IsDate",
            "module": "\"./src/validate/validators/DateValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MinDate",
          "declaration": {
            "name": "MinDate",
            "module": "\"./src/validate/validators/DateValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MaxDate",
          "declaration": {
            "name": "MaxDate",
            "module": "\"./src/validate/validators/DateValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "MinMaxDate",
          "declaration": {
            "name": "MinMaxDate",
            "module": "\"./src/validate/validators/DateValidators.js\""
          }
        },
        {
          "kind": "js",
          "name": "IsDateDisabled",
          "declaration": {
            "name": "IsDateDisabled",
            "module": "\"./src/validate/validators/DateValidators.js\""
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "index.js",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "FocusMixin",
          "declaration": {
            "name": "FocusMixin",
            "module": "./src/FocusMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "FormatMixin",
          "declaration": {
            "name": "FormatMixin",
            "module": "./src/FormatMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "FormControlMixin",
          "declaration": {
            "name": "FormControlMixin",
            "module": "./src/FormControlMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "InteractionStateMixin",
          "declaration": {
            "name": "InteractionStateMixin",
            "module": "./src/InteractionStateMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "LionField",
          "declaration": {
            "name": "LionField",
            "module": "./src/LionField.js"
          }
        },
        {
          "kind": "js",
          "name": "FormRegisteringMixin",
          "declaration": {
            "name": "FormRegisteringMixin",
            "module": "./src/registration/FormRegisteringMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarMixin",
          "declaration": {
            "name": "FormRegistrarMixin",
            "module": "./src/registration/FormRegistrarMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarPortalMixin",
          "declaration": {
            "name": "FormRegistrarPortalMixin",
            "module": "./src/registration/FormRegistrarPortalMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "NativeTextFieldMixin",
          "declaration": {
            "name": "NativeTextFieldMixin",
            "module": "./src/NativeTextFieldMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "FormControlsCollection",
          "declaration": {
            "name": "FormControlsCollection",
            "module": "./src/registration/FormControlsCollection.js"
          }
        },
        {
          "kind": "js",
          "name": "ValidateMixin",
          "declaration": {
            "name": "ValidateMixin",
            "module": "./src/validate/ValidateMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "Unparseable",
          "declaration": {
            "name": "Unparseable",
            "module": "./src/validate/Unparseable.js"
          }
        },
        {
          "kind": "js",
          "name": "Validator",
          "declaration": {
            "name": "Validator",
            "module": "./src/validate/Validator.js"
          }
        },
        {
          "kind": "js",
          "name": "ResultValidator",
          "declaration": {
            "name": "ResultValidator",
            "module": "./src/validate/ResultValidator.js"
          }
        },
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "./src/validate/validators/Required.js"
          }
        },
        {
          "kind": "js",
          "name": "IsString",
          "declaration": {
            "name": "IsString",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "EqualsLength",
          "declaration": {
            "name": "EqualsLength",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinLength",
          "declaration": {
            "name": "MinLength",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MaxLength",
          "declaration": {
            "name": "MaxLength",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxLength",
          "declaration": {
            "name": "MinMaxLength",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "IsEmail",
          "declaration": {
            "name": "IsEmail",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "Pattern",
          "declaration": {
            "name": "Pattern",
            "module": "./src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "IsNumber",
          "declaration": {
            "name": "IsNumber",
            "module": "./src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinNumber",
          "declaration": {
            "name": "MinNumber",
            "module": "./src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MaxNumber",
          "declaration": {
            "name": "MaxNumber",
            "module": "./src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxNumber",
          "declaration": {
            "name": "MinMaxNumber",
            "module": "./src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "IsDate",
          "declaration": {
            "name": "IsDate",
            "module": "./src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinDate",
          "declaration": {
            "name": "MinDate",
            "module": "./src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MaxDate",
          "declaration": {
            "name": "MaxDate",
            "module": "./src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxDate",
          "declaration": {
            "name": "MinMaxDate",
            "module": "./src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "IsDateDisabled",
          "declaration": {
            "name": "IsDateDisabled",
            "module": "./src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "DefaultSuccess",
          "declaration": {
            "name": "DefaultSuccess",
            "module": "./src/validate/resultValidators/DefaultSuccess.js"
          }
        },
        {
          "kind": "js",
          "name": "LionValidationFeedback",
          "declaration": {
            "name": "LionValidationFeedback",
            "module": "./src/validate/LionValidationFeedback.js"
          }
        },
        {
          "kind": "js",
          "name": "ChoiceGroupMixin",
          "declaration": {
            "name": "ChoiceGroupMixin",
            "module": "./src/choice-group/ChoiceGroupMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "ChoiceInputMixin",
          "declaration": {
            "name": "ChoiceInputMixin",
            "module": "./src/choice-group/ChoiceInputMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "FormGroupMixin",
          "declaration": {
            "name": "FormGroupMixin",
            "module": "./src/form-group/FormGroupMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "lion-field.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "lion-field.js",
      "declarations": [],
      "exports": [
        {
          "kind": "custom-element-definition",
          "name": "lion-field",
          "declaration": {
            "name": "LionField",
            "module": "/src/LionField.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "lion-validation-feedback.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "lion-validation-feedback.js",
      "declarations": [],
      "exports": [
        {
          "kind": "custom-element-definition",
          "name": "lion-validation-feedback",
          "declaration": {
            "name": "LionValidationFeedback",
            "module": "/src/validate/LionValidationFeedback.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/FocusMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FocusMixin",
          "type": {
            "text": "typeof import(\"../types/FocusMixinTypes\").FocusImplementation"
          },
          "description": "For browsers that not support the [spec](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible),\nbe sure to load the polyfill into your application https://github.com/WICG/focus-visible\n(or go for progressive enhancement)."
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FocusMixin",
          "declaration": {
            "name": "FocusMixin",
            "module": "src/FocusMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/FocusMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "FocusMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "description": "Calls `focus()` on focusable element within"
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Calls `blur()` on focusable element within"
            },
            {
              "kind": "field",
              "name": "_focusableNode",
              "description": "The focusable element:\ncould be an input, textarea, select, button or any other element with tabindex > -1",
              "privacy": "protected",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "kind": "method",
              "name": "__onFocus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__onBlur",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__registerEventsForFocusMixin",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__teardownEventsForFocusMixin",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "focused",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) is focused.\nReflects to attribute '[focused]' as a styling hook",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "focusedVisible",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) matches ':focus-visible'\nReflects to attribute '[focused-visible]' as a styling hook\nSee: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible",
              "default": "false"
            }
          ],
          "events": [
            {
              "name": "focus",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "blur",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "focusin",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "focusout",
              "type": {
                "text": "Event"
              }
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "FocusMixin"
          },
          "mixins": [
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FocusMixin",
          "declaration": {
            "name": "FocusMixin",
            "module": "src/FocusMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/FormControlMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FormControlMixin",
          "type": {
            "text": "typeof import(\"../types/FormControlMixinTypes.js\").FormControlImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormControlMixin",
          "declaration": {
            "name": "FormControlMixin",
            "module": "src/FormControlMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/FormControlMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "#FormControlMixin :\n\nThis Mixin is a shared fundament for all form components, it's applied on:\n- LionField (which is extended to LionInput, LionTextarea, LionSelect etc. etc.)\n- LionFieldset (which is extended to LionRadioGroup, LionCheckboxGroup, LionForm)",
          "name": "FormControlMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''"
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''"
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "slots"
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>"
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container"
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute."
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute."
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute."
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute."
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent"
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'"
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "events": [
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormRegisteringMixin",
              "module": "/src/registration/FormRegisteringMixin.js"
            },
            {
              "name": "DisabledMixin",
              "package": "@lion/core"
            },
            {
              "name": "SlotMixin",
              "package": "@lion/core"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "FormControlMixin"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormControlMixin",
          "declaration": {
            "name": "FormControlMixin",
            "module": "src/FormControlMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/FormatMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FormatMixin",
          "type": {
            "text": "typeof import(\"../types/FormatMixinTypes\").FormatImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormatMixin",
          "declaration": {
            "name": "FormatMixin",
            "module": "src/FormatMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/FormatMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "FormatMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "description": "The view value. Will be delegated to `._inputNode.value`",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "preprocessor",
              "parameters": [
                {
                  "name": "v",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                }
              ],
              "description": "Preprocessors could be considered 'live formatters'. Their result is shown to the user\non keyup instead of after blurring the field. The biggest difference between preprocessors\nand formatters is their moment of execution: preprocessors are run before modelValue is\ncomputed (and work based on view value), whereas formatters are run after the parser (and\nare based on modelValue)\nAutomatically formats code while typing. It depends on a preprocessro that smartly\nupdates the viewValue and caret position for best UX.",
              "return": {
                "type": {
                  "text": "{ viewValue:string; caretIndex:number; }|string|undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "parser",
              "parameters": [
                {
                  "name": "v",
                  "description": "viewValue: the formatted value inside <input>",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts viewValue to modelValue\nFor instance, a localized date to a Date Object",
              "return": {
                "type": {
                  "text": "*"
                }
              }
            },
            {
              "kind": "method",
              "name": "formatter",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts modelValue to formattedValue (formattedValue will be synced with\n`._inputNode.value`)\nFor instance, a Date object to a localized date.",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "serializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.modelValue` to `.serializedValue`\nFor instance, a Date object to an iso formatted date string",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "deserializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.serializedValue` to `.modelValue`\nFor instance, an iso formatted date string to a Date object",
              "return": {
                "type": {
                  "text": "?"
                }
              }
            },
            {
              "kind": "method",
              "name": "_calculateValues",
              "parameters": [
                {
                  "name": "{ source }",
                  "default": "{ source: null }"
                },
                {
                  "description": "the type of value that triggered this method. It should not be\nset again, so that its observer won't be triggered. Can be:\n'model'|'formatted'|'serialized'.",
                  "name": "config",
                  "type": {
                    "text": "{source:'model'|'serialized'|'formatted'|null}"
                  }
                }
              ],
              "description": "Responsible for storing all representations(modelValue, serializedValue, formattedValue\nand value) of the input value. Prevents infinite loops, so all value observers can be\ntreated like they will only be called once, without indirectly calling other observers.\n(in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the\nsecond call from having effect).",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_callParser",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.formattedValue",
                  "type": {
                    "text": "string|undefined"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_callFormatter",
              "return": {
                "type": {
                  "text": "string|undefined"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "Responds to modelValue changes in the synchronous cycle (most subclassers should listen to\nthe asynchronous cycle ('modelValue' in the .updated lifecycle))",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_dispatchModelValueChangedEvent",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "This is wrapped in a distinct method, so that parents can control when the changed event\nis fired. For objects, a deep comparison might be needed.",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "description": "Synchronization from `._inputNode.value` to `LionField` (flow [2])\nDownwards syncing should only happen for `LionField`.value changes from 'above'.\nThis triggers _onModelValueChanged and connects user input\nto the parsing/formatting/serializing loop.",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__handlePreprocessor",
              "description": "Handle view value and caretIndex, depending on return type of .preprocessor.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueToUser",
              "description": "Synchronization from `LionField.value` to `._inputNode.value`\n- flow [1] will always be reflected back\n- flow [2] will not be reflected back when this flow was triggered via\n  `@user-input-changed` (this will happen later, when `formatOn` condition is met)",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_reflectBackOn",
              "description": "Every time .formattedValue is attempted to sync to the view value (on change/blur and on\nmodelValue change), this condition is checked. When enhancing it, it's recommended to\ncall via `return this._myExtraCondition && super._reflectBackOn()`",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "description": "This can be called whenever the view value should be updated. Dependent on component type\n(\"input\" for <input> or \"change\" for <select>(mainly for IE)) a different event should be\nused  as source for the \"user-input-changed\" event (which can be seen as an abstraction\nlayer on top of other events (input, change, whatever))",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_onUserInputChanged",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__onCompositionEvent",
              "parameters": [
                {
                  "name": "{ type }"
                },
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__onPaste",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "formatOn",
              "type": {
                "text": "string"
              },
              "description": "Event that will trigger formatting (more precise, visual update of the view, so the\nuser sees the formatted value)\nDefault: 'change'",
              "privacy": "protected",
              "default": "'change'"
            },
            {
              "kind": "field",
              "name": "formatOptions",
              "description": "Configuration object that will be available inside the formatter function",
              "default": "({})"
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "description": "The view value is the result of the formatter function (when available).\nThe result will be stored in the native _inputNode (usually an input[type=text]).\n\nExamples:\n- For a date input, this would be '20/01/1999' (dependent on locale).\n- For a number input, this could be '1,234.56' (a String representation of modelValue\n1234.56)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined"
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "description": "The serialized version of the model value.\nThis value exists for maximal compatibility with the platform API.\nThe serialized value can be an interface in context where data binding is not\nsupported and a serialized string needs to be set.\n\nExamples:\n- For a date input, this would be the iso format of a date, e.g. '1999-01-20'.\n- For a number input this would be the String representation of a float ('1234.56'\n  instead of 1234.56)\n\nWhen no parser is available, the value is usually the same as the formattedValue\n(being _inputNode.value)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined"
            },
            {
              "kind": "field",
              "name": "_isPasting",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the user is pasting content. Allows Subclassers to do this in their subclass:",
              "privacy": "protected",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that will be set when user interaction takes place (for instance after an 'input'\nevent). Will be added as meta info to the `model-value-changed` event. Depending on\nwhether a user is interacting, formatting logic will be handled differently.",
              "privacy": "protected",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "__prevViewValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "_reflectBackFormattedValueDebounced",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true,
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            }
          ],
          "events": [
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "user-input-changed",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "ValidateMixin",
              "module": "/src/validate/ValidateMixin.js"
            },
            {
              "name": "FormControlMixin",
              "module": "/src/FormControlMixin.js"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "FormatMixin"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormatMixin",
          "declaration": {
            "name": "FormatMixin",
            "module": "src/FormatMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/InteractionStateMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "InteractionStateMixin",
          "type": {
            "text": "typeof import(\"../types/InteractionStateMixinTypes\").InteractionStateImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "InteractionStateMixin",
          "declaration": {
            "name": "InteractionStateMixin",
            "module": "src/InteractionStateMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/InteractionStateMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "InteractionStateMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "PropertyKey"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "initInteractionState",
              "description": "Evaluations performed on connectedCallback.\nThis method is public, so it can be called at a later moment (when we need to wait for\nregistering children for instance) as well.\nSince this method will be called twice in last mentioned scenario, it must stay idempotent."
            },
            {
              "kind": "method",
              "name": "_iStateOnLeave",
              "description": "Sets touched value to true and reevaluates prefilled state.\nWhen false, on next interaction, user will start with a clean state.",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_iStateOnValueChange",
              "description": "Sets dirty value and validates when already touched or invalid",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "resetInteractionState",
              "description": "Resets touched and dirty, and recomputes prefilled"
            },
            {
              "kind": "method",
              "name": "_onTouchedChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_onDirtyChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "type": {
                    "text": "InteractionStates"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta"
            },
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has focused and left(blurred) the field.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has changed the value of the field.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "prefilled",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has left non-empty field or input is prefilled.\nThe name must be seen from the point of view of the input field:\nonce the user enters the input field, the value is non-empty.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "filled",
              "type": {
                "text": "boolean"
              },
              "description": "True when the modelValue is non-empty (see _isEmpty in FormControlMixin)",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_leaveEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the touched state",
              "privacy": "protected",
              "default": "'blur'"
            },
            {
              "kind": "field",
              "name": "_valueChangedEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the dirty state",
              "privacy": "protected",
              "default": "'model-value-changed'"
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "events": [
            {
              "name": "touched-changed",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "dirty-changed",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormControlMixin",
              "module": "/src/FormControlMixin.js"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "InteractionStateMixin"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "InteractionStateMixin",
          "declaration": {
            "name": "InteractionStateMixin",
            "module": "src/InteractionStateMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/LionField.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "`LionField`: wraps <input>, <textarea>, <select> and other interactable elements.\nAlso it would follow a nice hierarchy: lion-form -> lion-fieldset -> lion-field\n\nNote: We don't support placeholders, because we have a helper text and\nplaceholders confuse the user with accessibility needs.\n\nPlease see the docs for in depth information.",
          "name": "LionField",
          "members": [
            {
              "kind": "field",
              "name": "_initialModelValue",
              "type": {
                "text": "any"
              }
            },
            {
              "kind": "method",
              "name": "_onChange",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Dispatches custom bubble event"
            },
            {
              "kind": "method",
              "name": "reset",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resets modelValue to initial value.\nInteraction states are cleared"
            },
            {
              "kind": "method",
              "name": "clear",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears modelValue.\nInteraction states are not cleared (use resetInteractionState for this)"
            },
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "PropertyKey"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "initInteractionState",
              "description": "Evaluations performed on connectedCallback.\nThis method is public, so it can be called at a later moment (when we need to wait for\nregistering children for instance) as well.\nSince this method will be called twice in last mentioned scenario, it must stay idempotent.",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_iStateOnLeave",
              "description": "Sets touched value to true and reevaluates prefilled state.\nWhen false, on next interaction, user will start with a clean state.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_iStateOnValueChange",
              "description": "Sets dirty value and validates when already touched or invalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "resetInteractionState",
              "description": "Resets touched and dirty, and recomputes prefilled",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onTouchedChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onDirtyChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "type": {
                    "text": "InteractionStates"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has focused and left(blurred) the field.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has changed the value of the field.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "prefilled",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has left non-empty field or input is prefilled.\nThe name must be seen from the point of view of the input field:\nonce the user enters the input field, the value is non-empty.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "filled",
              "type": {
                "text": "boolean"
              },
              "description": "True when the modelValue is non-empty (see _isEmpty in FormControlMixin)",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_leaveEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the touched state",
              "privacy": "protected",
              "default": "'blur'",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_valueChangedEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the dirty state",
              "privacy": "protected",
              "default": "'model-value-changed'",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "description": "Calls `focus()` on focusable element within",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Calls `blur()` on focusable element within",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_focusableNode",
              "description": "The focusable element:\ncould be an input, textarea, select, button or any other element with tabindex > -1",
              "privacy": "protected",
              "type": {
                "text": "HTMLElement"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onFocus",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onBlur",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__registerEventsForFocusMixin",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__teardownEventsForFocusMixin",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "focused",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) is focused.\nReflects to attribute '[focused]' as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "focusedVisible",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) matches ':focus-visible'\nReflects to attribute '[focused-visible]' as a styling hook\nSee: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible",
              "default": "false",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "description": "The view value. Will be delegated to `._inputNode.value`",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "preprocessor",
              "parameters": [
                {
                  "name": "v",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                }
              ],
              "description": "Preprocessors could be considered 'live formatters'. Their result is shown to the user\non keyup instead of after blurring the field. The biggest difference between preprocessors\nand formatters is their moment of execution: preprocessors are run before modelValue is\ncomputed (and work based on view value), whereas formatters are run after the parser (and\nare based on modelValue)\nAutomatically formats code while typing. It depends on a preprocessro that smartly\nupdates the viewValue and caret position for best UX.",
              "return": {
                "type": {
                  "text": "{ viewValue:string; caretIndex:number; }|string|undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "parser",
              "parameters": [
                {
                  "name": "v",
                  "description": "viewValue: the formatted value inside <input>",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts viewValue to modelValue\nFor instance, a localized date to a Date Object",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "formatter",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts modelValue to formattedValue (formattedValue will be synced with\n`._inputNode.value`)\nFor instance, a Date object to a localized date.",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "serializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.modelValue` to `.serializedValue`\nFor instance, a Date object to an iso formatted date string",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "deserializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.serializedValue` to `.modelValue`\nFor instance, an iso formatted date string to a Date object",
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_calculateValues",
              "parameters": [
                {
                  "name": "{ source }",
                  "default": "{ source: null }"
                },
                {
                  "description": "the type of value that triggered this method. It should not be\nset again, so that its observer won't be triggered. Can be:\n'model'|'formatted'|'serialized'.",
                  "name": "config",
                  "type": {
                    "text": "{source:'model'|'serialized'|'formatted'|null}"
                  }
                }
              ],
              "description": "Responsible for storing all representations(modelValue, serializedValue, formattedValue\nand value) of the input value. Prevents infinite loops, so all value observers can be\ntreated like they will only be called once, without indirectly calling other observers.\n(in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the\nsecond call from having effect).",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callParser",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.formattedValue",
                  "type": {
                    "text": "string|undefined"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callFormatter",
              "return": {
                "type": {
                  "text": "string|undefined"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "Responds to modelValue changes in the synchronous cycle (most subclassers should listen to\nthe asynchronous cycle ('modelValue' in the .updated lifecycle))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchModelValueChangedEvent",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "This is wrapped in a distinct method, so that parents can control when the changed event\nis fired. For objects, a deep comparison might be needed.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "description": "Synchronization from `._inputNode.value` to `LionField` (flow [2])\nDownwards syncing should only happen for `LionField`.value changes from 'above'.\nThis triggers _onModelValueChanged and connects user input\nto the parsing/formatting/serializing loop.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__handlePreprocessor",
              "description": "Handle view value and caretIndex, depending on return type of .preprocessor.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueToUser",
              "description": "Synchronization from `LionField.value` to `._inputNode.value`\n- flow [1] will always be reflected back\n- flow [2] will not be reflected back when this flow was triggered via\n  `@user-input-changed` (this will happen later, when `formatOn` condition is met)",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackOn",
              "description": "Every time .formattedValue is attempted to sync to the view value (on change/blur and on\nmodelValue change), this condition is checked. When enhancing it, it's recommended to\ncall via `return this._myExtraCondition && super._reflectBackOn()`",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "description": "This can be called whenever the view value should be updated. Dependent on component type\n(\"input\" for <input> or \"change\" for <select>(mainly for IE)) a different event should be\nused  as source for the \"user-input-changed\" event (which can be seen as an abstraction\nlayer on top of other events (input, change, whatever))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onUserInputChanged",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onCompositionEvent",
              "parameters": [
                {
                  "name": "{ type }"
                },
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onPaste",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOn",
              "type": {
                "text": "string"
              },
              "description": "Event that will trigger formatting (more precise, visual update of the view, so the\nuser sees the formatted value)\nDefault: 'change'",
              "privacy": "protected",
              "default": "'change'",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOptions",
              "description": "Configuration object that will be available inside the formatter function",
              "default": "({})",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "description": "The view value is the result of the formatter function (when available).\nThe result will be stored in the native _inputNode (usually an input[type=text]).\n\nExamples:\n- For a date input, this would be '20/01/1999' (dependent on locale).\n- For a number input, this could be '1,234.56' (a String representation of modelValue\n1234.56)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "description": "The serialized version of the model value.\nThis value exists for maximal compatibility with the platform API.\nThe serialized value can be an interface in context where data binding is not\nsupported and a serialized string needs to be set.\n\nExamples:\n- For a date input, this would be the iso format of a date, e.g. '1999-01-20'.\n- For a number input this would be the String representation of a float ('1234.56'\n  instead of 1234.56)\n\nWhen no parser is available, the value is usually the same as the formattedValue\n(being _inputNode.value)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isPasting",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the user is pasting content. Allows Subclassers to do this in their subclass:",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that will be set when user interaction takes place (for instance after an 'input'\nevent). Will be added as meta info to the `model-value-changed` event. Depending on\nwhether a user is interacting, formatting logic will be handled differently.",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevViewValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_reflectBackFormattedValueDebounced",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true,
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            }
          ],
          "superclass": {
            "name": "LionField_base",
            "module": "src/LionField.d.ts"
          },
          "tagName": "lion-field",
          "customElement": true,
          "events": [
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "name": "touched-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "name": "dirty-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "name": "focus",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "blur",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "focusin",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "focusout",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "user-input-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LionField",
          "declaration": {
            "name": "LionField",
            "module": "src/LionField.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/LionField.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`LionField`: wraps <input>, <textarea>, <select> and other interactable elements.\nAlso it would follow a nice hierarchy: lion-form -> lion-fieldset -> lion-field\n\nNote: We don't support placeholders, because we have a helper text and\nplaceholders confuse the user with accessibility needs.\n\nPlease see the docs for in depth information.",
          "name": "LionField",
          "members": [
            {
              "kind": "method",
              "name": "resetInteractionState",
              "description": "Resets touched and dirty, and recomputes prefilled",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "reset",
              "description": "Resets modelValue to initial value.\nInteraction states are cleared"
            },
            {
              "kind": "method",
              "name": "clear",
              "description": "Clears modelValue.\nInteraction states are not cleared (use resetInteractionState for this)"
            },
            {
              "kind": "method",
              "name": "_onChange",
              "description": "Dispatches custom bubble event",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_focusableNode",
              "description": "The focusable element:\ncould be an input, textarea, select, button or any other element with tabindex > -1",
              "privacy": "protected",
              "type": {
                "text": "HTMLElement"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "PropertyKey"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "initInteractionState",
              "description": "Evaluations performed on connectedCallback.\nThis method is public, so it can be called at a later moment (when we need to wait for\nregistering children for instance) as well.\nSince this method will be called twice in last mentioned scenario, it must stay idempotent.",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_iStateOnLeave",
              "description": "Sets touched value to true and reevaluates prefilled state.\nWhen false, on next interaction, user will start with a clean state.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_iStateOnValueChange",
              "description": "Sets dirty value and validates when already touched or invalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onTouchedChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onDirtyChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "type": {
                    "text": "InteractionStates"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has focused and left(blurred) the field.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has changed the value of the field.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "prefilled",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has left non-empty field or input is prefilled.\nThe name must be seen from the point of view of the input field:\nonce the user enters the input field, the value is non-empty.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "filled",
              "type": {
                "text": "boolean"
              },
              "description": "True when the modelValue is non-empty (see _isEmpty in FormControlMixin)",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_leaveEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the touched state",
              "privacy": "protected",
              "default": "'blur'",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_valueChangedEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the dirty state",
              "privacy": "protected",
              "default": "'model-value-changed'",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "description": "Calls `focus()` on focusable element within",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Calls `blur()` on focusable element within",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onFocus",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onBlur",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__registerEventsForFocusMixin",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__teardownEventsForFocusMixin",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "focused",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) is focused.\nReflects to attribute '[focused]' as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "focusedVisible",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) matches ':focus-visible'\nReflects to attribute '[focused-visible]' as a styling hook\nSee: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible",
              "default": "false",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "description": "The view value. Will be delegated to `._inputNode.value`",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "preprocessor",
              "parameters": [
                {
                  "name": "v",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                }
              ],
              "description": "Preprocessors could be considered 'live formatters'. Their result is shown to the user\non keyup instead of after blurring the field. The biggest difference between preprocessors\nand formatters is their moment of execution: preprocessors are run before modelValue is\ncomputed (and work based on view value), whereas formatters are run after the parser (and\nare based on modelValue)\nAutomatically formats code while typing. It depends on a preprocessro that smartly\nupdates the viewValue and caret position for best UX.",
              "return": {
                "type": {
                  "text": "{ viewValue:string; caretIndex:number; }|string|undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "parser",
              "parameters": [
                {
                  "name": "v",
                  "description": "viewValue: the formatted value inside <input>",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts viewValue to modelValue\nFor instance, a localized date to a Date Object",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "formatter",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts modelValue to formattedValue (formattedValue will be synced with\n`._inputNode.value`)\nFor instance, a Date object to a localized date.",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "serializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.modelValue` to `.serializedValue`\nFor instance, a Date object to an iso formatted date string",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "deserializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.serializedValue` to `.modelValue`\nFor instance, an iso formatted date string to a Date object",
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_calculateValues",
              "parameters": [
                {
                  "name": "{ source }",
                  "default": "{ source: null }"
                },
                {
                  "description": "the type of value that triggered this method. It should not be\nset again, so that its observer won't be triggered. Can be:\n'model'|'formatted'|'serialized'.",
                  "name": "config",
                  "type": {
                    "text": "{source:'model'|'serialized'|'formatted'|null}"
                  }
                }
              ],
              "description": "Responsible for storing all representations(modelValue, serializedValue, formattedValue\nand value) of the input value. Prevents infinite loops, so all value observers can be\ntreated like they will only be called once, without indirectly calling other observers.\n(in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the\nsecond call from having effect).",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callParser",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.formattedValue",
                  "type": {
                    "text": "string|undefined"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callFormatter",
              "return": {
                "type": {
                  "text": "string|undefined"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "Responds to modelValue changes in the synchronous cycle (most subclassers should listen to\nthe asynchronous cycle ('modelValue' in the .updated lifecycle))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchModelValueChangedEvent",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "This is wrapped in a distinct method, so that parents can control when the changed event\nis fired. For objects, a deep comparison might be needed.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "description": "Synchronization from `._inputNode.value` to `LionField` (flow [2])\nDownwards syncing should only happen for `LionField`.value changes from 'above'.\nThis triggers _onModelValueChanged and connects user input\nto the parsing/formatting/serializing loop.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__handlePreprocessor",
              "description": "Handle view value and caretIndex, depending on return type of .preprocessor.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueToUser",
              "description": "Synchronization from `LionField.value` to `._inputNode.value`\n- flow [1] will always be reflected back\n- flow [2] will not be reflected back when this flow was triggered via\n  `@user-input-changed` (this will happen later, when `formatOn` condition is met)",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackOn",
              "description": "Every time .formattedValue is attempted to sync to the view value (on change/blur and on\nmodelValue change), this condition is checked. When enhancing it, it's recommended to\ncall via `return this._myExtraCondition && super._reflectBackOn()`",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "description": "This can be called whenever the view value should be updated. Dependent on component type\n(\"input\" for <input> or \"change\" for <select>(mainly for IE)) a different event should be\nused  as source for the \"user-input-changed\" event (which can be seen as an abstraction\nlayer on top of other events (input, change, whatever))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onUserInputChanged",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onCompositionEvent",
              "parameters": [
                {
                  "name": "{ type }"
                },
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onPaste",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOn",
              "type": {
                "text": "string"
              },
              "description": "Event that will trigger formatting (more precise, visual update of the view, so the\nuser sees the formatted value)\nDefault: 'change'",
              "privacy": "protected",
              "default": "'change'",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOptions",
              "description": "Configuration object that will be available inside the formatter function",
              "default": "({})",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "description": "The view value is the result of the formatter function (when available).\nThe result will be stored in the native _inputNode (usually an input[type=text]).\n\nExamples:\n- For a date input, this would be '20/01/1999' (dependent on locale).\n- For a number input, this could be '1,234.56' (a String representation of modelValue\n1234.56)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "description": "The serialized version of the model value.\nThis value exists for maximal compatibility with the platform API.\nThe serialized value can be an interface in context where data binding is not\nsupported and a serialized string needs to be set.\n\nExamples:\n- For a date input, this would be the iso format of a date, e.g. '1999-01-20'.\n- For a number input this would be the String representation of a float ('1234.56'\n  instead of 1234.56)\n\nWhen no parser is available, the value is usually the same as the formattedValue\n(being _inputNode.value)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isPasting",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the user is pasting content. Allows Subclassers to do this in their subclass:",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that will be set when user interaction takes place (for instance after an 'input'\nevent). Will be added as meta info to the `model-value-changed` event. Depending on\nwhether a user is interacting, formatting logic will be handled differently.",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevViewValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_reflectBackFormattedValueDebounced",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true,
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            }
          ],
          "events": [
            {
              "name": "user-input-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "name": "touched-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "name": "dirty-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "name": "focus",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "blur",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "focusin",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "focusout",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormControlMixin",
              "module": "/src/FormControlMixin.js"
            },
            {
              "name": "InteractionStateMixin",
              "module": "/src/InteractionStateMixin.js"
            },
            {
              "name": "FocusMixin",
              "module": "/src/FocusMixin.js"
            },
            {
              "name": "FormatMixin",
              "module": "/src/FormatMixin.js"
            },
            {
              "name": "ValidateMixin",
              "module": "/src/validate/ValidateMixin.js"
            },
            {
              "name": "SlotMixin",
              "package": "@lion/core"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "@lion/core"
          },
          "tagName": "lion-field",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LionField",
          "declaration": {
            "name": "LionField",
            "module": "src/LionField.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/NativeTextFieldMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "NativeTextFieldMixin",
          "type": {
            "text": "typeof import(\"../types/NativeTextFieldMixinTypes\").NativeTextFieldImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NativeTextFieldMixin",
          "declaration": {
            "name": "NativeTextFieldMixin",
            "module": "src/NativeTextFieldMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/NativeTextFieldMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "NativeTextFieldMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              },
              "type": {
                "text": "HTMLInputElement | HTMLTextAreaElement"
              }
            },
            {
              "kind": "field",
              "name": "selectionStart",
              "type": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "selectionEnd",
              "type": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "description": "The view value. Will be delegated to `._inputNode.value`",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_setValueAndPreserveCaret",
              "parameters": [
                {
                  "name": "newValue",
                  "description": "The value that should be saved.",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Restores the cursor to its original position after updating the value.",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueToUser",
              "description": "Synchronization from `LionField.value` to `._inputNode.value`\n- flow [1] will always be reflected back\n- flow [2] will not be reflected back when this flow was triggered via\n  `@user-input-changed` (this will happen later, when `formatOn` condition is met)",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_focusableNode",
              "description": "The focusable element:\ncould be an input, textarea, select, button or any other element with tabindex > -1",
              "privacy": "protected",
              "type": {
                "text": "HTMLElement"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "description": "Delegates this property to input/textarea/select.",
              "type": {
                "text": "string | undefined"
              },
              "default": "undefined"
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "preprocessor",
              "parameters": [
                {
                  "name": "v",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                }
              ],
              "description": "Preprocessors could be considered 'live formatters'. Their result is shown to the user\non keyup instead of after blurring the field. The biggest difference between preprocessors\nand formatters is their moment of execution: preprocessors are run before modelValue is\ncomputed (and work based on view value), whereas formatters are run after the parser (and\nare based on modelValue)\nAutomatically formats code while typing. It depends on a preprocessro that smartly\nupdates the viewValue and caret position for best UX.",
              "return": {
                "type": {
                  "text": "{ viewValue:string; caretIndex:number; }|string|undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "parser",
              "parameters": [
                {
                  "name": "v",
                  "description": "viewValue: the formatted value inside <input>",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts viewValue to modelValue\nFor instance, a localized date to a Date Object",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "formatter",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts modelValue to formattedValue (formattedValue will be synced with\n`._inputNode.value`)\nFor instance, a Date object to a localized date.",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "serializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.modelValue` to `.serializedValue`\nFor instance, a Date object to an iso formatted date string",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "deserializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.serializedValue` to `.modelValue`\nFor instance, an iso formatted date string to a Date object",
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_calculateValues",
              "parameters": [
                {
                  "name": "{ source }",
                  "default": "{ source: null }"
                },
                {
                  "description": "the type of value that triggered this method. It should not be\nset again, so that its observer won't be triggered. Can be:\n'model'|'formatted'|'serialized'.",
                  "name": "config",
                  "type": {
                    "text": "{source:'model'|'serialized'|'formatted'|null}"
                  }
                }
              ],
              "description": "Responsible for storing all representations(modelValue, serializedValue, formattedValue\nand value) of the input value. Prevents infinite loops, so all value observers can be\ntreated like they will only be called once, without indirectly calling other observers.\n(in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the\nsecond call from having effect).",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callParser",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.formattedValue",
                  "type": {
                    "text": "string|undefined"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callFormatter",
              "return": {
                "type": {
                  "text": "string|undefined"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "Responds to modelValue changes in the synchronous cycle (most subclassers should listen to\nthe asynchronous cycle ('modelValue' in the .updated lifecycle))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchModelValueChangedEvent",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "This is wrapped in a distinct method, so that parents can control when the changed event\nis fired. For objects, a deep comparison might be needed.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "description": "Synchronization from `._inputNode.value` to `LionField` (flow [2])\nDownwards syncing should only happen for `LionField`.value changes from 'above'.\nThis triggers _onModelValueChanged and connects user input\nto the parsing/formatting/serializing loop.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__handlePreprocessor",
              "description": "Handle view value and caretIndex, depending on return type of .preprocessor.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackOn",
              "description": "Every time .formattedValue is attempted to sync to the view value (on change/blur and on\nmodelValue change), this condition is checked. When enhancing it, it's recommended to\ncall via `return this._myExtraCondition && super._reflectBackOn()`",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "description": "This can be called whenever the view value should be updated. Dependent on component type\n(\"input\" for <input> or \"change\" for <select>(mainly for IE)) a different event should be\nused  as source for the \"user-input-changed\" event (which can be seen as an abstraction\nlayer on top of other events (input, change, whatever))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onUserInputChanged",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onCompositionEvent",
              "parameters": [
                {
                  "name": "{ type }"
                },
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onPaste",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOn",
              "type": {
                "text": "string"
              },
              "description": "Event that will trigger formatting (more precise, visual update of the view, so the\nuser sees the formatted value)\nDefault: 'change'",
              "privacy": "protected",
              "default": "'change'",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOptions",
              "description": "Configuration object that will be available inside the formatter function",
              "default": "({})",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "description": "The view value is the result of the formatter function (when available).\nThe result will be stored in the native _inputNode (usually an input[type=text]).\n\nExamples:\n- For a date input, this would be '20/01/1999' (dependent on locale).\n- For a number input, this could be '1,234.56' (a String representation of modelValue\n1234.56)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "description": "The serialized version of the model value.\nThis value exists for maximal compatibility with the platform API.\nThe serialized value can be an interface in context where data binding is not\nsupported and a serialized string needs to be set.\n\nExamples:\n- For a date input, this would be the iso format of a date, e.g. '1999-01-20'.\n- For a number input this would be the String representation of a float ('1234.56'\n  instead of 1234.56)\n\nWhen no parser is available, the value is usually the same as the formattedValue\n(being _inputNode.value)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isPasting",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the user is pasting content. Allows Subclassers to do this in their subclass:",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that will be set when user interaction takes place (for instance after an 'input'\nevent). Will be added as meta info to the `model-value-changed` event. Depending on\nwhether a user is interacting, formatting logic will be handled differently.",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevViewValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_reflectBackFormattedValueDebounced",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true,
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "focus",
              "description": "Calls `focus()` on focusable element within",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "blur",
              "description": "Calls `blur()` on focusable element within",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onFocus",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onBlur",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__registerEventsForFocusMixin",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__teardownEventsForFocusMixin",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "focused",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) is focused.\nReflects to attribute '[focused]' as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "focusedVisible",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) matches ':focus-visible'\nReflects to attribute '[focused-visible]' as a styling hook\nSee: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible",
              "default": "false",
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormatMixin",
              "module": "/src/FormatMixin.js"
            },
            {
              "name": "FocusMixin",
              "module": "/src/FocusMixin.js"
            },
            {
              "name": "FormControlMixin",
              "module": "/src/FormControlMixin.js"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "description": "} superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "NativeTextFieldMixin"
          },
          "events": [
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "user-input-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "name": "focus",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "blur",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "focusin",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            },
            {
              "name": "focusout",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FocusMixin",
                "module": "src/FocusMixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NativeTextFieldMixin",
          "declaration": {
            "name": "NativeTextFieldMixin",
            "module": "src/NativeTextFieldMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test/FocusMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/FormControlMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/FormRegistrationMixins.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/FormatMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/InteractionStateMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/NativeTextFieldMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/lion-field.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/FormRegistrationMixins.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runRegistrationSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "customConfig",
              "type": {
                "text": "customConfig"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runRegistrationSuite",
          "declaration": {
            "name": "runRegistrationSuite",
            "module": "test-suites/FormRegistrationMixins.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/FormatMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runFormatMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "customConfig",
              "optional": true,
              "type": {
                "text": "{tagString?: string, modelValueType?: modelValueType}"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runFormatMixinSuite",
          "declaration": {
            "name": "runFormatMixinSuite",
            "module": "test-suites/FormatMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/InteractionStateMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runInteractionStateMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "customConfig",
              "optional": true,
              "type": {
                "text": "{tagString?: string, allowedModelValueTypes?: Array.<ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor | DateConstructor>}"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runInteractionStateMixinSuite",
          "declaration": {
            "name": "runInteractionStateMixinSuite",
            "module": "test-suites/InteractionStateMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/NativeTextFieldMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runNativeTextFieldMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "customConfig",
              "optional": true,
              "type": {
                "text": "{tagString?: string, modelValueType?: modelValueType}"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runNativeTextFieldMixinSuite",
          "declaration": {
            "name": "runNativeTextFieldMixinSuite",
            "module": "test-suites/NativeTextFieldMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/ValidateMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runValidateMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "customConfig",
              "optional": true,
              "type": {
                "text": "{tagString?: string | null, lightDom?: string}"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runValidateMixinSuite",
          "declaration": {
            "name": "runValidateMixinSuite",
            "module": "test-suites/ValidateMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/ValidateMixinFeedbackPart.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runValidateMixinFeedbackPart",
          "return": {
            "type": {
              "text": "void"
            }
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runValidateMixinFeedbackPart",
          "declaration": {
            "name": "runValidateMixinFeedbackPart",
            "module": "test-suites/ValidateMixinFeedbackPart.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "runChoiceGroupMixinSuite",
          "declaration": {
            "name": "runChoiceGroupMixinSuite",
            "module": "\"./choice-group/ChoiceGroupMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runChoiceInputMixinSuite",
          "declaration": {
            "name": "runChoiceInputMixinSuite",
            "module": "\"./choice-group/ChoiceInputMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runFormGroupMixinInputSuite",
          "declaration": {
            "name": "runFormGroupMixinInputSuite",
            "module": "\"./form-group/FormGroupMixin-input.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runFormGroupMixinSuite",
          "declaration": {
            "name": "runFormGroupMixinSuite",
            "module": "\"./form-group/FormGroupMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runFormatMixinSuite",
          "declaration": {
            "name": "runFormatMixinSuite",
            "module": "\"./FormatMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runRegistrationSuite",
          "declaration": {
            "name": "runRegistrationSuite",
            "module": "\"./FormRegistrationMixins.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runInteractionStateMixinSuite",
          "declaration": {
            "name": "runInteractionStateMixinSuite",
            "module": "\"./InteractionStateMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runNativeTextFieldMixinSuite",
          "declaration": {
            "name": "runNativeTextFieldMixinSuite",
            "module": "\"./NativeTextFieldMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runValidateMixinSuite",
          "declaration": {
            "name": "runValidateMixinSuite",
            "module": "\"./ValidateMixin.suite.js\""
          }
        },
        {
          "kind": "js",
          "name": "runValidateMixinFeedbackPart",
          "declaration": {
            "name": "runValidateMixinFeedbackPart",
            "module": "\"./ValidateMixinFeedbackPart.suite.js\""
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/index.js",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "runChoiceGroupMixinSuite",
          "declaration": {
            "name": "runChoiceGroupMixinSuite",
            "module": "./choice-group/ChoiceGroupMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runChoiceInputMixinSuite",
          "declaration": {
            "name": "runChoiceInputMixinSuite",
            "module": "./choice-group/ChoiceInputMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runFormGroupMixinInputSuite",
          "declaration": {
            "name": "runFormGroupMixinInputSuite",
            "module": "./form-group/FormGroupMixin-input.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runFormGroupMixinSuite",
          "declaration": {
            "name": "runFormGroupMixinSuite",
            "module": "./form-group/FormGroupMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runFormatMixinSuite",
          "declaration": {
            "name": "runFormatMixinSuite",
            "module": "./FormatMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runRegistrationSuite",
          "declaration": {
            "name": "runRegistrationSuite",
            "module": "./FormRegistrationMixins.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runInteractionStateMixinSuite",
          "declaration": {
            "name": "runInteractionStateMixinSuite",
            "module": "./InteractionStateMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runNativeTextFieldMixinSuite",
          "declaration": {
            "name": "runNativeTextFieldMixinSuite",
            "module": "./NativeTextFieldMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runValidateMixinSuite",
          "declaration": {
            "name": "runValidateMixinSuite",
            "module": "./ValidateMixin.suite.js"
          }
        },
        {
          "kind": "js",
          "name": "runValidateMixinFeedbackPart",
          "declaration": {
            "name": "runValidateMixinFeedbackPart",
            "module": "./ValidateMixinFeedbackPart.suite.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/FocusMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FocusHost",
          "members": [
            {
              "kind": "field",
              "name": "focused",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) is focused.\nReflects to attribute '[focused]' as a styling hook"
            },
            {
              "kind": "field",
              "name": "focusedVisible",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the focusable element within (`._focusableNode`) matches ':focus-visible'\nReflects to attribute '[focused-visible]' as a styling hook"
            },
            {
              "kind": "method",
              "name": "focus",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Calls `focus()` on focusable element within"
            },
            {
              "kind": "method",
              "name": "blur",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Calls `blur()` on focusable element within"
            },
            {
              "kind": "field",
              "name": "_focusableNode",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "protected",
              "description": "The focusable element:\ncould be an input, textarea, select, button or any other element with tabindex > -1"
            },
            {
              "kind": "method",
              "name": "__onFocus",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__onBlur",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__registerEventsForFocusMixin",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__teardownEventsForFocusMixin",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "FocusImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FocusHost> &\n  Pick<typeof FocusHost, keyof typeof FocusHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FocusHost",
          "declaration": {
            "name": "FocusHost",
            "module": "types/FocusMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FocusImplementation",
          "declaration": {
            "name": "FocusImplementation",
            "module": "types/FocusMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/FormControlMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormControlHost",
          "members": [
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\nSee: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly"
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects"
            },
            {
              "kind": "field",
              "name": "modelValue",
              "type": {
                "text": "any | Unparseable"
              },
              "description": "The model value is the result of the parser function(when available).\nIt should be considered as the internal value used for validation and reasoning/logic.\nThe model value is 'ready for consumption' by the outside world (think of a Date\nobject or a float). The modelValue can(and is recommended to) be used as both input\nvalue and output value of the `LionField`.\n\nExamples:\n- For a date input: a String '20/01/1999' will be converted to new Date('1999/01/20')\n- For a number input: a formatted String '1.234,56' will be converted to a Number:\n  1234.56"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "description": "The label text for the input node.\nWhen no light dom defined via [slot=label], this value will be used"
            },
            {
              "kind": "field",
              "name": "helpText",
              "type": {
                "text": "string"
              },
              "description": "The helpt text for the input node.\nWhen no light dom defined via [slot=help-text], this value will be used"
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "customConfig",
                  "optional": true,
                  "type": {
                    "text": "{\n      idPrefix?: string | undefined;\n      reorder?: boolean | undefined;\n    }"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute."
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "customConfig",
                  "optional": true,
                  "type": {
                    "text": "{\n      idPrefix?: string | undefined;\n      reorder?: boolean | undefined;\n    }"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-describedby attribute."
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "customConfig",
                  "optional": true,
                  "type": {
                    "text": "{\n      reorder?: boolean | undefined;\n    }"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute."
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "customConfig",
                  "optional": true,
                  "type": {
                    "text": "{\n      reorder?: boolean | undefined;\n    }"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute."
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "type": {
                "text": "HTMLElementWithValue | HTMLInputElement | HTMLTextAreaElement"
              },
              "privacy": "protected",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1"
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "protected",
              "description": "Element where label will be rendered to"
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "protected",
              "description": "Element where help text will be rendered to"
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "type": {
                "text": "LionValidationFeedback"
              },
              "privacy": "protected",
              "description": "Element where validation feedback will be rendered to"
            },
            {
              "kind": "field",
              "name": "_inputId",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "description": "Unique id that can be used in all light dom"
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "privacy": "protected",
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`"
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "privacy": "protected",
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`"
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child' | 'choice-group' | 'fieldset'"
              },
              "privacy": "protected",
              "description": "Based on the role, details of handling model-value-changed repropagation differ."
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath."
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "type": {
                "text": "FormControlHost | undefined"
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult | typeof nothing"
                }
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult | typeof nothing"
                }
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "additionalSlots",
                  "optional": true,
                  "type": {
                    "text": "string[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "modelValue",
                  "optional": true,
                  "type": {
                    "text": "any"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "__helpText",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__label",
              "type": {
                "text": "string"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__fieldName",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__reorderAriaLabelledNodes",
              "type": {
                "text": "boolean | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean | undefined"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "__reorderAriaDescribedNodes",
              "type": {
                "text": "boolean | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "__repropagateChildrenInitialized",
              "type": {
                "text": "boolean | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "function",
          "name": "FormControlImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FormControlHost> &\n  Pick<typeof FormControlHost, keyof typeof FormControlHost> &\n  Constructor<FormRegisteringHost> &\n  Pick<typeof FormRegisteringHost, keyof typeof FormRegisteringHost> &\n  Constructor<DisabledHost> &\n  Pick<typeof DisabledHost, keyof typeof DisabledHost> &\n  Constructor<SlotHost> &\n  Pick<typeof SlotHost, keyof typeof SlotHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormControlHost",
          "declaration": {
            "name": "FormControlHost",
            "module": "types/FormControlMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormControlImplementation",
          "declaration": {
            "name": "FormControlImplementation",
            "module": "types/FormControlMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/FormatMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormatHost",
          "members": [
            {
              "kind": "method",
              "name": "parser",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "string"
                  },
                  "description": "viewValue: the formatted value inside <input>"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts viewValue to modelValue\nFor instance, a localized date to a Date Object"
            },
            {
              "kind": "method",
              "name": "formatter",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "*"
                  },
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts modelValue to formattedValue (formattedValue will be synced with\n`._inputNode.value`)\nFor instance, a Date object to a localized date."
            },
            {
              "kind": "method",
              "name": "serializer",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  },
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)"
                }
              ],
              "description": "Converts `.modelValue` to `.serializedValue`\nFor instance, a Date object to an iso formatted date string"
            },
            {
              "kind": "method",
              "name": "deserializer",
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  },
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)"
                }
              ],
              "description": "Converts `.serializedValue` to `.modelValue`\nFor instance, an iso formatted date string to a Date object"
            },
            {
              "kind": "method",
              "name": "preprocessor",
              "return": {
                "type": {
                  "text": "{ viewValue:string; caretIndex:number; }|string|undefined"
                }
              },
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "string"
                  },
                  "description": "the raw value from the <input> after keyUp/Down event"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                },
                {
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                }
              ],
              "description": "Preprocessors could be considered 'live formatters'. Their result is shown to the user\non keyup instead of after blurring the field. The biggest difference between preprocessors\nand formatters is their moment of execution: preprocessors are run before modelValue is\ncomputed (and work based on view value), whereas formatters are run after the parser (and\nare based on modelValue)\nAutomatically formats code while typing. It depends on a preprocessro that smartly\nupdates the viewValue and caret position for best UX."
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "type": {
                "text": "string|undefined"
              },
              "description": "The view value is the result of the formatter function (when available).\nThe result will be stored in the native _inputNode (usually an input[type=text]).\n\nExamples:\n- For a date input, this would be '20/01/1999' (dependent on locale).\n- For a number input, this could be '1,234.56' (a String representation of modelValue\n1234.56)"
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "type": {
                "text": "string | undefined"
              },
              "description": "The serialized version of the model value.\nThis value exists for maximal compatibility with the platform API.\nThe serialized value can be an interface in context where data binding is not\nsupported and a serialized string needs to be set.\n\nExamples:\n- For a date input, this would be the iso format of a date, e.g. '1999-01-20'.\n- For a number input this would be the String representation of a float ('1234.56'\n  instead of 1234.56)\n\nWhen no parser is available, the value is usually the same as the formattedValue\n(being _inputNode.value)"
            },
            {
              "kind": "field",
              "name": "formatOn",
              "type": {
                "text": "string"
              },
              "description": "Event that will trigger formatting (more precise, visual update of the view, so the\nuser sees the formatted value)\nDefault: 'change'",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "formatOptions",
              "type": {
                "text": "FormatOptions"
              },
              "description": "Configuration object that will be available inside the formatter function"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "description": "The view value. Will be delegated to `._inputNode.value`"
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "description": "Flag that will be set when user interaction takes place (for instance after an 'input'\nevent). Will be added as meta info to the `model-value-changed` event. Depending on\nwhether a user is interacting, formatting logic will be handled differently."
            },
            {
              "kind": "field",
              "name": "_isPasting",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "description": "Whether the user is pasting content. Allows Subclassers to do this in their subclass:"
            },
            {
              "kind": "method",
              "name": "_calculateValues",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "opts",
                  "type": {
                    "text": "{ source: 'model' | 'serialized' | 'formatted' | null }"
                  }
                },
                {
                  "description": "the type of value that triggered this method. It should not be set again, so that its\nobserver won't be triggered. Can be: 'model'|'formatted'|'serialized'.",
                  "name": "config",
                  "type": {
                    "text": "{source:'model'|'serialized'|'formatted'|null}"
                  }
                }
              ],
              "description": "Responsible for storing all representations(modelValue, serializedValue, formattedValue\nand value) of the input value. Prevents infinite loops, so all value observers can be\ntreated like they will only be called once, without indirectly calling other observers.\n(in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the\nsecond call from having effect)."
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "arg",
                  "type": {
                    "text": "{ modelValue: unknown }"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_dispatchModelValueChangedEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Synchronization from `._inputNode.value` to `LionField` (flow [2])\nDownwards syncing should only happen for `LionField`.value changes from 'above'.\nThis triggers _onModelValueChanged and connects user input\nto the parsing/formatting/serializing loop."
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueToUser",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueDebounced",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackOn",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Every time .formattedValue is attempted to sync to the view value (on change/blur and on\nmodelValue change), this condition is checked. When enhancing it, it's recommended to\ncall `super._reflectBackOn()`"
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "This can be called whenever the view value should be updated. Dependent on component type\n(\"input\" for <input> or \"change\" for <select>(mainly for IE)) a different event should be\nused  as source for the \"user-input-changed\" event (which can be seen as an abstraction\nlayer on top of other events (input, change, whatever))"
            },
            {
              "kind": "method",
              "name": "_onUserInputChanged",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_callParser",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "object"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string | undefined"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_callFormatter",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "field",
              "name": "__preventRecursiveTrigger",
              "type": {
                "text": "boolean"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__prevViewValue",
              "type": {
                "text": "string"
              },
              "privacy": "private"
            }
          ]
        },
        {
          "kind": "function",
          "name": "FormatImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FormatHost> &\n  Pick<typeof FormatHost, keyof typeof FormatHost> &\n  Constructor<ValidateHost> &\n  Pick<typeof ValidateHost, keyof typeof ValidateHost> &\n  Constructor<FormControlHost> &\n  Pick<typeof FormControlHost, keyof typeof FormControlHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormatHost",
          "declaration": {
            "name": "FormatHost",
            "module": "types/FormatMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormatImplementation",
          "declaration": {
            "name": "FormatImplementation",
            "module": "types/FormatMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/InteractionStateMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "InteractionStateHost",
          "members": [
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has focused and left(blurred) the field."
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has changed the value of the field."
            },
            {
              "kind": "field",
              "name": "prefilled",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has left non-empty field or input is prefilled.\nThe name must be seen from the point of view of the input field:\nonce the user enters the input field, the value is non-empty."
            },
            {
              "kind": "field",
              "name": "filled",
              "type": {
                "text": "boolean"
              },
              "description": "True when the modelValue is non-empty (see _isEmpty in FormControlMixin)"
            },
            {
              "kind": "field",
              "name": "submitted",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has attempted to submit the form, e.g. through a button\nof type=\"submit\""
            },
            {
              "kind": "method",
              "name": "initInteractionState",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Evaluations performed on connectedCallback.\nThis method is public, so it can be called at a later moment (when we need to wait for\nregistering children for instance) as well.\nSince this method will be called twice in last mentioned scenario, it must stay idempotent."
            },
            {
              "kind": "method",
              "name": "resetInteractionState",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resets touched and dirty, and recomputes prefilled"
            },
            {
              "kind": "field",
              "name": "_leaveEvent",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "description": "The event that triggers the touched state"
            },
            {
              "kind": "field",
              "name": "_valueChangedEvent",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "description": "The event that triggers the dirty state"
            },
            {
              "kind": "method",
              "name": "_iStateOnLeave",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Sets touched value to true and reevaluates prefilled state.\nWhen false, on next interaction, user will start with a clean state."
            },
            {
              "kind": "method",
              "name": "_iStateOnValueChange",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Sets dirty value and validates when already touched or invalid"
            },
            {
              "kind": "method",
              "name": "_onTouchedChanged",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Dispatches event on touched state change"
            },
            {
              "kind": "method",
              "name": "_onDirtyChanged",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Dispatches event on touched state change"
            }
          ]
        },
        {
          "kind": "function",
          "name": "InteractionStateImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<InteractionStateHost> &\n  Pick<typeof InteractionStateHost, keyof typeof InteractionStateHost> &\n  Constructor<FormControlHost> &\n  Pick<typeof FormControlHost, keyof typeof FormControlHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "InteractionStateHost",
          "declaration": {
            "name": "InteractionStateHost",
            "module": "types/InteractionStateMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "InteractionStateImplementation",
          "declaration": {
            "name": "InteractionStateImplementation",
            "module": "types/InteractionStateMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/NativeTextFieldMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "NativeTextFieldHost",
          "members": [
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "string"
              },
              "description": "Delegates autocomplete to input/textarea"
            },
            {
              "kind": "field",
              "name": "selectionStart",
              "type": {
                "text": "number"
              },
              "description": "Delegates selectionStart to input/textarea"
            },
            {
              "kind": "field",
              "name": "selectionEnd",
              "type": {
                "text": "number"
              },
              "description": "Delegates selectionEnd to input/textarea"
            },
            {
              "kind": "method",
              "name": "_setValueAndPreserveCaret",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Restores the cursor to its original position after updating the value."
            }
          ]
        },
        {
          "kind": "function",
          "name": "NativeTextFieldImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<NativeTextFieldHost> &\n  Pick<typeof NativeTextFieldHost, keyof typeof NativeTextFieldHost> &\n  Constructor<FormatHost> &\n  Pick<typeof FormatHost, keyof typeof FormatHost> &\n  Constructor<FocusHost> &\n  Pick<typeof FocusHost, keyof typeof FocusHost> &\n  Constructor<FormControlHost> &\n  Pick<typeof FormControlHost, keyof typeof FormControlHost>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NativeTextFieldHost",
          "declaration": {
            "name": "NativeTextFieldHost",
            "module": "types/NativeTextFieldMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "NativeTextFieldImplementation",
          "declaration": {
            "name": "NativeTextFieldImplementation",
            "module": "types/NativeTextFieldMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FocusMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FormatMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FormControlMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./InteractionStateMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./NativeTextFieldMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./validate"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./utils"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./registration"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./form-group"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./choice-group"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/choice-group/ChoiceGroupMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "ChoiceGroupMixin",
          "type": {
            "text": "typeof import(\"../../types/choice-group/ChoiceGroupMixinTypes\").ChoiceGroupImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChoiceGroupMixin",
          "declaration": {
            "name": "ChoiceGroupMixin",
            "module": "src/choice-group/ChoiceGroupMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/choice-group/ChoiceGroupMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "ChoiceGroupMixin applies on both Fields (listbox/select-rich/combobox)  and FormGroups\n(radio-group, checkbox-group)\nTODO: Ideally, the ChoiceGroupMixin should not depend on InteractionStateMixin, which is only\ndesigned for usage with Fields, in other words: their interaction states are not derived from\nchildren events, like in FormGroups",
          "name": "ChoiceGroupMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "modelValue"
            },
            {
              "kind": "field",
              "name": "serializedValue"
            },
            {
              "kind": "field",
              "name": "formattedValue"
            },
            {
              "kind": "method",
              "name": "_completeRegistration",
              "description": "Resolves the registrationComplete promise. Subclassers can delay if needed",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addFormElement",
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControl"
                  }
                },
                {
                  "name": "indexToInsertAt",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "clear"
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElementsFilter",
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "FormControl"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "A filter function which will exclude a form field when returning false\nBy default, exclude form fields which are disabled\n\nThe type is be passed as well for more fine grained control, e.g.\ndistinguish the filter when fetching modelValue versus serializedValue",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElements",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "filterFn",
                  "optional": true,
                  "type": {
                    "text": "(el: FormControl, property?: string) => boolean"
                  }
                }
              ],
              "description": "Implicit :( @override for FormGroupMixin, as choice fields \"fieldsets\"\nwill always implement both mixins\n\nTODO: Consider making this explicit by extracting this method to its own mixin and\nusing it in both FormGroupMixin and ChoiceGroupMixin, then override it here\nThis also makes it more DRY as we have same method with similar implementation\nin FormGroupMixin. I (@jorenbroekema) think the abstraction is worth it here..",
              "return": {
                "type": {
                  "text": "{[name:string]: any}"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_throwWhenInvalidChildModelValue",
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControl"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_checkSingleChoiceElements",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent & {target:FormControl}"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_getCheckedElements",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_setCheckedElements",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string | any[]"
                  }
                },
                {
                  "name": "check",
                  "type": {
                    "text": "Function"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__setChoiceGroupTouched",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost & ChoiceInputHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "multipleChoice",
              "type": {
                "text": "boolean"
              },
              "description": "When false (default), modelValue and serializedValue will reflect the\ncurrently selected choice (usually a string). When true, modelValue will and\nserializedValue will be an array of strings.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'choice-group'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "__isInitialModelValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "__isInitialSerializedValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "__isInitialFormattedValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "true"
            },
            {
              "kind": "method",
              "name": "isRegisteredFormElement",
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "ElementWithParentFormGroup"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFormElement",
              "parameters": [
                {
                  "name": "child",
                  "description": "the child element (field)",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onRequestToAddFormElement",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to perform logic before an element is added",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onRequestToChangeFormElementName",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onRequestToRemoveFormElement",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formElements",
              "description": "Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed\nboth like an array and an object (based on control/element names).",
              "type": {
                "text": "FormControlsCollection"
              },
              "default": "new FormControlsCollection()",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isFormOrFieldset",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that determines how \".formElements\" should behave.\nFor a regular fieldset (see LionFieldset) we expect \".formElements\"\nto be accessible as an object.\nIn case of a radio-group, a checkbox-group or a select/listbox,\nit should act like an array (see ChoiceGroupMixin).\nUsually, when false, we deal with a choice-group (radio-group, checkbox-group,\n(multi)select)",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "initComplete",
              "description": "initComplete resolves after all pending initialization logic\n(for instance `<form-group .serializedValue=${{ child1: 'a', child2: 'b' }}>`)\nis executed",
              "type": {
                "text": "Promise<any>"
              },
              "default": "new Promise((resolve, reject) => {\n        this.__resolveInitComplete = resolve;\n        this.__rejectInitComplete = reject;\n      })",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "registrationComplete",
              "description": "registrationComplete waits for all children formElements to have registered",
              "type": {
                "text": "Promise<any> & {done?:boolean}"
              },
              "default": "new Promise((resolve, reject) => {\n        this.__resolveRegistrationComplete = resolve;\n        this.__rejectRegistrationComplete = reject;\n      })",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "done",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "PropertyKey"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "initInteractionState",
              "description": "Evaluations performed on connectedCallback.\nThis method is public, so it can be called at a later moment (when we need to wait for\nregistering children for instance) as well.\nSince this method will be called twice in last mentioned scenario, it must stay idempotent.",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_iStateOnLeave",
              "description": "Sets touched value to true and reevaluates prefilled state.\nWhen false, on next interaction, user will start with a clean state.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_iStateOnValueChange",
              "description": "Sets dirty value and validates when already touched or invalid",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "resetInteractionState",
              "description": "Resets touched and dirty, and recomputes prefilled",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onTouchedChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onDirtyChanged",
              "description": "Dispatches event on touched state change",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "type": {
                    "text": "InteractionStates"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has focused and left(blurred) the field.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has changed the value of the field.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "prefilled",
              "type": {
                "text": "boolean"
              },
              "description": "True when user has left non-empty field or input is prefilled.\nThe name must be seen from the point of view of the input field:\nonce the user enters the input field, the value is non-empty.",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "filled",
              "type": {
                "text": "boolean"
              },
              "description": "True when the modelValue is non-empty (see _isEmpty in FormControlMixin)",
              "default": "false",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_leaveEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the touched state",
              "privacy": "protected",
              "default": "'blur'",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_valueChangedEvent",
              "type": {
                "text": "string"
              },
              "description": "The event that triggers the dirty state",
              "privacy": "protected",
              "default": "'model-value-changed'",
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormRegistrarMixin",
              "module": "/src/registration/FormRegistrarMixin.js"
            },
            {
              "name": "InteractionStateMixin",
              "module": "/src/InteractionStateMixin.js"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "ChoiceGroupMixin"
          },
          "events": [
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "touched-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "name": "dirty-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "InteractionStateMixin",
                "module": "src/InteractionStateMixin.js"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChoiceGroupMixin",
          "declaration": {
            "name": "ChoiceGroupMixin",
            "module": "src/choice-group/ChoiceGroupMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/choice-group/ChoiceInputMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "ChoiceInputMixin",
          "type": {
            "text": "typeof import(\"../../types/choice-group/ChoiceInputMixinTypes\").ChoiceInputImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChoiceInputMixin",
          "declaration": {
            "name": "ChoiceInputMixin",
            "module": "src/choice-group/ChoiceInputMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/choice-group/ChoiceInputMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "ChoiceInputMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "choiceValue",
              "description": "The value that will be registered to the modelValue of the parent ChoiceGroup. Recommended\nto be a string",
              "type": {
                "text": "string|any"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "Styles for [input=radio] and [input=checkbox] wrappers.\nFor [role=option] extensions, please override completely",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Template for [input=radio] and [input=checkbox] wrappers.\nFor [role=option] extensions, please override completely",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_choiceGraphicTemplate",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_afterTemplate",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_preventDuplicateLabelClick",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "description": "The native platform fires an event for both the click on the label, and also\nthe redispatched click on the native input element.\nThis results in two click events arriving at the host, but we only want one.\nThis method prevents the duplicate click and ensures the correct isTrusted event\nwith the correct event.target arrives at the host.",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_toggleChecked",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_syncNameToParentFormGroup",
              "description": "Override this in case of extending ChoiceInputMixin and requiring\nto sync differently with parent form group name\nRight now it checks tag name match where the parent form group tagname\nshould include the child field tagname ('checkbox' is included in 'checkbox-group')",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__syncModelCheckedToChecked",
              "parameters": [
                {
                  "name": "checked",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__syncCheckedToModel",
              "parameters": [
                {
                  "name": "checked",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__syncCheckedToInputElement",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "description": "This can be called whenever the view value should be updated. Dependent on component type\n(\"input\" for <input> or \"change\" for <select>(mainly for IE)) a different event should be\nused  as source for the \"user-input-changed\" event (which can be seen as an abstraction\nlayer on top of other events (input, change, whatever))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "parameters": [
                {
                  "name": "{ modelValue }"
                },
                {
                  "name": "old",
                  "optional": true,
                  "type": {
                    "text": "{ modelValue:unknown }"
                  }
                },
                {
                  "name": "newV",
                  "type": {
                    "text": "{ modelValue:unknown }"
                  }
                }
              ],
              "description": "Responds to modelValue changes in the synchronous cycle (most subclassers should listen to\nthe asynchronous cycle ('modelValue' in the .updated lifecycle))",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "parser",
              "parameters": [
                {
                  "name": "v",
                  "description": "viewValue: the formatted value inside <input>",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "FormatOptions"
                  }
                }
              ],
              "description": "Converts viewValue to modelValue\nFor instance, a localized date to a Date Object",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "formatter",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "ChoiceInputModelValue"
                  }
                }
              ],
              "description": "Converts modelValue to formattedValue (formattedValue will be synced with\n`._inputNode.value`)\nFor instance, a Date object to a localized date.",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "clear"
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for required validator.",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "description": "Synchronization from `._inputNode.value` to `LionField` (flow [2])\nDownwards syncing should only happen for `LionField`.value changes from 'above'.\nThis triggers _onModelValueChanged and connects user input\nto the parsing/formatting/serializing loop.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "modelValue",
              "type": {
                "text": "{value:string|any,checked:boolean}"
              },
              "description": "Whereas 'normal' `.modelValue`s usually store a complex/typed version\nof a view value, choice inputs have a slightly different approach.\nIn order to remain their Single Source of Truth characteristic, choice inputs\nstore both the value and 'checkedness', in the format { value: 'x', checked: true }\nDifferent from the platform, this also allows to serialize the 'non checkedness',\nallowing to restore form state easily and inform the server about unchecked options.",
              "default": "{ value: '', checked: false }"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "description": "Boolean indicating whether or not this element is disabled.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "value",
              "description": "The view value. Will be delegated to `._inputNode.value`",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "preprocessor",
              "parameters": [
                {
                  "name": "v",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "opts",
                  "description": "the raw value from the <input> after keyUp/Down event",
                  "type": {
                    "text": "FormatOptions & { prevViewValue: string; currentCaretIndex: number }"
                  }
                }
              ],
              "description": "Preprocessors could be considered 'live formatters'. Their result is shown to the user\non keyup instead of after blurring the field. The biggest difference between preprocessors\nand formatters is their moment of execution: preprocessors are run before modelValue is\ncomputed (and work based on view value), whereas formatters are run after the parser (and\nare based on modelValue)\nAutomatically formats code while typing. It depends on a preprocessro that smartly\nupdates the viewValue and caret position for best UX.",
              "return": {
                "type": {
                  "text": "{ viewValue:string; caretIndex:number; }|string|undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "serializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.modelValue` to `.serializedValue`\nFor instance, a Date object to an iso formatted date string",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "deserializer",
              "parameters": [
                {
                  "name": "v",
                  "description": "modelValue: can be an Object, Number, String depending on the\ninput type(date, number, email etc)",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Converts `.serializedValue` to `.modelValue`\nFor instance, an iso formatted date string to a Date object",
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_calculateValues",
              "parameters": [
                {
                  "name": "{ source }",
                  "default": "{ source: null }"
                },
                {
                  "description": "the type of value that triggered this method. It should not be\nset again, so that its observer won't be triggered. Can be:\n'model'|'formatted'|'serialized'.",
                  "name": "config",
                  "type": {
                    "text": "{source:'model'|'serialized'|'formatted'|null}"
                  }
                }
              ],
              "description": "Responsible for storing all representations(modelValue, serializedValue, formattedValue\nand value) of the input value. Prevents infinite loops, so all value observers can be\ntreated like they will only be called once, without indirectly calling other observers.\n(in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the\nsecond call from having effect).",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callParser",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.formattedValue",
                  "type": {
                    "text": "string|undefined"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "?"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_callFormatter",
              "return": {
                "type": {
                  "text": "string|undefined"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchModelValueChangedEvent",
              "parameters": [
                {
                  "name": "args",
                  "type": {
                    "text": "{ modelValue: unknown; }[]"
                  }
                }
              ],
              "description": "This is wrapped in a distinct method, so that parents can control when the changed event\nis fired. For objects, a deep comparison might be needed.",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__handlePreprocessor",
              "description": "Handle view value and caretIndex, depending on return type of .preprocessor.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackFormattedValueToUser",
              "description": "Synchronization from `LionField.value` to `._inputNode.value`\n- flow [1] will always be reflected back\n- flow [2] will not be reflected back when this flow was triggered via\n  `@user-input-changed` (this will happen later, when `formatOn` condition is met)",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_reflectBackOn",
              "description": "Every time .formattedValue is attempted to sync to the view value (on change/blur and on\nmodelValue change), this condition is checked. When enhancing it, it's recommended to\ncall via `return this._myExtraCondition && super._reflectBackOn()`",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onUserInputChanged",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onCompositionEvent",
              "parameters": [
                {
                  "name": "{ type }"
                },
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__onPaste",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOn",
              "type": {
                "text": "string"
              },
              "description": "Event that will trigger formatting (more precise, visual update of the view, so the\nuser sees the formatted value)\nDefault: 'change'",
              "privacy": "protected",
              "default": "'change'",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formatOptions",
              "description": "Configuration object that will be available inside the formatter function",
              "default": "({})",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "description": "The view value is the result of the formatter function (when available).\nThe result will be stored in the native _inputNode (usually an input[type=text]).\n\nExamples:\n- For a date input, this would be '20/01/1999' (dependent on locale).\n- For a number input, this could be '1,234.56' (a String representation of modelValue\n1234.56)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "description": "The serialized version of the model value.\nThis value exists for maximal compatibility with the platform API.\nThe serialized value can be an interface in context where data binding is not\nsupported and a serialized string needs to be set.\n\nExamples:\n- For a date input, this would be the iso format of a date, e.g. '1999-01-20'.\n- For a number input this would be the String representation of a float ('1234.56'\n  instead of 1234.56)\n\nWhen no parser is available, the value is usually the same as the formattedValue\n(being _inputNode.value)",
              "type": {
                "text": "string|undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isPasting",
              "type": {
                "text": "boolean"
              },
              "description": "Whether the user is pasting content. Allows Subclassers to do this in their subclass:",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that will be set when user interaction takes place (for instance after an 'input'\nevent). Will be added as meta info to the `model-value-changed` event. Depending on\nwhether a user is interacting, formatting logic will be handled differently.",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevViewValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_reflectBackFormattedValueDebounced",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true,
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormatMixin",
              "module": "/src/FormatMixin.js"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "ChoiceInputMixin"
          },
          "events": [
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "user-input-changed",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "FormatMixin",
                "module": "src/FormatMixin.js"
              }
            },
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChoiceInputMixin",
          "declaration": {
            "name": "ChoiceInputMixin",
            "module": "src/choice-group/ChoiceInputMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/form-group/FormElementsHaveNoError.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormElementsHaveNoError",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormElementsHaveNoError",
          "declaration": {
            "name": "FormElementsHaveNoError",
            "module": "src/form-group/FormElementsHaveNoError.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/form-group/FormElementsHaveNoError.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormElementsHaveNoError",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "string | undefined"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "{ node: any }"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormElementsHaveNoError",
          "declaration": {
            "name": "FormElementsHaveNoError",
            "module": "src/form-group/FormElementsHaveNoError.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/form-group/FormGroupMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FormGroupMixin",
          "type": {
            "text": "typeof import(\"../../types/form-group/FormGroupMixinTypes\").FormGroupImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormGroupMixin",
          "declaration": {
            "name": "FormGroupMixin",
            "module": "src/form-group/FormGroupMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/form-group/FormGroupMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "FormGroupMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The host element with role group (or radigroup or form) containing neccessary aria attributes",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "modelValue",
              "description": "Object keyed by formElements names, containing formElements' modelValues"
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "description": "Object keyed by formElements names, containing formElements' serializedValues"
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "description": "Object keyed by formElements names, containing formElements' formattedValues"
            },
            {
              "kind": "field",
              "name": "prefilled",
              "description": "True when all of the children are prefilled (see InteractionStateMixin for more details.)"
            },
            {
              "kind": "method",
              "name": "__initInteractionStates"
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupOutsideClickHandling"
            },
            {
              "kind": "method",
              "name": "_checkForOutsideClick",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__requestChildrenToBeDisabled"
            },
            {
              "kind": "method",
              "name": "__retractRequestChildrenToBeDisabled"
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "submitGroup",
              "description": "Handles interaction state 'submitted'.\nThis allows children to enable visibility of validation feedback"
            },
            {
              "kind": "method",
              "name": "resetGroup",
              "description": "Resets to initial/prefilled values and interaction states of all FormControls in group,"
            },
            {
              "kind": "method",
              "name": "clearGroup",
              "description": "Clears all values and resets all interaction states of all FormControls in group,"
            },
            {
              "kind": "method",
              "name": "resetInteractionState",
              "description": "Resets all interaction states for all formElements"
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElementsFilter",
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "FormControl"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "A filter function which will exclude a form field when returning false\nBy default, exclude form fields which are disabled\n\nThe type is be passed as well for more fine grained control, e.g.\ndistinguish the filter when fetching modelValue versus serializedValue",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElements",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "filterFn",
                  "optional": true,
                  "type": {
                    "text": "(el: FormControl, property?: string) => boolean"
                  }
                }
              ],
              "description": "Gets a keyed be name object for requested property (like modelValue/serializedValue)",
              "return": {
                "type": {
                  "text": "{[name:string]: any}"
                }
              }
            },
            {
              "kind": "method",
              "name": "_setValueForAllFormElements",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string | number"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Sets the same value for requested property in all formElements"
            },
            {
              "kind": "method",
              "name": "_setValueMapForAllFormElements",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "values",
                  "type": {
                    "text": "{ [x: string]: any; }"
                  }
                }
              ],
              "description": "Allows to set formElements values via a keyed object structure"
            },
            {
              "kind": "method",
              "name": "_anyFormElementHas",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Returns true when one of the formElements has requested"
            },
            {
              "kind": "method",
              "name": "_anyFormElementHasFeedbackFor",
              "parameters": [
                {
                  "name": "state",
                  "description": "one of ValidateHost.validationTypes",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_everyFormElementHas",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Returns true when all of the formElements have requested property"
            },
            {
              "kind": "method",
              "name": "__onChildValidatePerformed",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "description": "Gets triggered by event 'validate-performed' which enabled us to handle 2 different situations\n - react on modelValue change, which says something about the validity as a whole\n (at least two checkboxes for instance) and nothing about the children's values\n - children validity states have changed, so fieldset needs to update itself based on that"
            },
            {
              "kind": "method",
              "name": "_syncFocused"
            },
            {
              "kind": "method",
              "name": "_onFocusOut",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_syncDirty"
            },
            {
              "kind": "method",
              "name": "__storeAllDescriptionElementsInParentChain",
              "description": "Traverses the _parentFormGroup tree, and gathers all aria description elements\n(feedback and helptext) that should be provided to children.\n\nIn the example below, when the input for 'street' has focus, a screenreader user\nwould hear the #group-error.\nIn case one of the inputs was in error state as well, the SR user would\nfirst hear the local error, followed by #group-error"
            },
            {
              "kind": "method",
              "name": "__linkParentMessages",
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControl"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__unlinkParentMessages",
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControl"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "addFormElement",
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControl & {serializedValue:string|object}"
                  }
                },
                {
                  "name": "indexToInsertAt",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_initialModelValue",
              "description": "Gathers initial model values of all children. Used when resetGroup() is called."
            },
            {
              "kind": "method",
              "name": "removeFormElement",
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "FormRegisteringHost & FormControl"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "description": "Disables all formElements in group",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "submitted",
              "type": {
                "text": "boolean"
              },
              "description": "True when parent form is submitted",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when any of the children is dirty (see InteractionStateMixin for more details.)",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when the group as a whole is blurred (see InteractionStateMixin for more details.)",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "focused",
              "type": {
                "text": "boolean"
              },
              "description": "True when any of the children is focused.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "__addedSubValidators",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "__isInitialModelValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "__isInitialSerializedValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[new FormElementsHaveNoError()]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__descriptionElementsInParentChain",
              "default": "new Set()"
            },
            {
              "kind": "field",
              "name": "__pendingValues",
              "type": {
                "text": "{modelValue?:{[key:string]: any}, serializedValue?:{[key:string]: any}}"
              },
              "default": "{ modelValue: {}, serializedValue: {} }"
            },
            {
              "kind": "method",
              "name": "_completeRegistration",
              "description": "Resolves the registrationComplete promise. Subclassers can delay if needed",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "isRegisteredFormElement",
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "ElementWithParentFormGroup"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onRequestToAddFormElement",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to perform logic before an element is added",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onRequestToChangeFormElementName",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onRequestToRemoveFormElement",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "formElements",
              "description": "Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed\nboth like an array and an object (based on control/element names).",
              "type": {
                "text": "FormControlsCollection"
              },
              "default": "new FormControlsCollection()",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isFormOrFieldset",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that determines how \".formElements\" should behave.\nFor a regular fieldset (see LionFieldset) we expect \".formElements\"\nto be accessible as an object.\nIn case of a radio-group, a checkbox-group or a select/listbox,\nit should act like an array (see ChoiceGroupMixin).\nUsually, when false, we deal with a choice-group (radio-group, checkbox-group,\n(multi)select)",
              "privacy": "protected",
              "default": "false",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "initComplete",
              "description": "initComplete resolves after all pending initialization logic\n(for instance `<form-group .serializedValue=${{ child1: 'a', child2: 'b' }}>`)\nis executed",
              "type": {
                "text": "Promise<any>"
              },
              "default": "new Promise((resolve, reject) => {\n        this.__resolveInitComplete = resolve;\n        this.__rejectInitComplete = reject;\n      })",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "registrationComplete",
              "description": "registrationComplete waits for all children formElements to have registered",
              "type": {
                "text": "Promise<any> & {done?:boolean}"
              },
              "default": "new Promise((resolve, reject) => {\n        this.__resolveRegistrationComplete = resolve;\n        this.__rejectRegistrationComplete = reject;\n      })",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "done",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "inheritedFrom": {
                "name": "FormRegistrarMixin",
                "module": "src/registration/FormRegistrarMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true,
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call.",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormRegistrarMixin",
              "module": "/src/registration/FormRegistrarMixin.js"
            },
            {
              "name": "FormControlMixin",
              "module": "/src/FormControlMixin.js"
            },
            {
              "name": "ValidateMixin",
              "module": "/src/validate/ValidateMixin.js"
            },
            {
              "name": "DisabledMixin",
              "package": "@lion/core"
            },
            {
              "name": "SlotMixin",
              "package": "@lion/core"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "FormGroupMixin"
          },
          "events": [
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              },
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet",
              "inheritedFrom": {
                "name": "ValidateMixin",
                "module": "src/validate/ValidateMixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormGroupMixin",
          "declaration": {
            "name": "FormGroupMixin",
            "module": "src/form-group/FormGroupMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormControlsCollection.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "This class closely mimics the natively\nsupported HTMLFormControlsCollection. It can be accessed\nboth like an array and an object (based on control/element names).",
          "name": "FormControlsCollection",
          "members": [
            {
              "kind": "method",
              "name": "_keys",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "string[]"
                }
              }
            }
          ],
          "superclass": {
            "name": "Array",
            "module": "src/registration/FormControlsCollection.d.ts"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormControlsCollection",
          "declaration": {
            "name": "FormControlsCollection",
            "module": "src/registration/FormControlsCollection.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormControlsCollection.js",
      "declarations": [
        {
          "kind": "class",
          "description": "This class closely mimics the natively\nsupported HTMLFormControlsCollection. It can be accessed\nboth like an array and an object (based on control/element names).",
          "name": "FormControlsCollection",
          "members": [
            {
              "kind": "method",
              "name": "_keys",
              "return": {
                "type": {
                  "text": "string[]"
                }
              },
              "privacy": "protected"
            }
          ],
          "superclass": {
            "name": "Array",
            "module": "src/registration/FormControlsCollection.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormControlsCollection",
          "declaration": {
            "name": "FormControlsCollection",
            "module": "src/registration/FormControlsCollection.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormRegisteringMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FormRegisteringMixin",
          "type": {
            "text": "typeof import(\"../../types/registration/FormRegisteringMixinTypes\").FormRegisteringImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegisteringMixin",
          "declaration": {
            "name": "FormRegisteringMixin",
            "module": "src/registration/FormRegisteringMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormRegisteringMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "#FormRegisteringMixin:\n\nThis Mixin registers a form element to a Registrar",
          "name": "FormRegisteringMixin",
          "members": [
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined"
            }
          ],
          "events": [
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              }
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "FormRegisteringMixin"
          },
          "mixins": [
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegisteringMixin",
          "declaration": {
            "name": "FormRegisteringMixin",
            "module": "src/registration/FormRegisteringMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormRegistrarMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FormRegistrarMixin",
          "type": {
            "text": "typeof import(\"../../types/registration/FormRegistrarMixinTypes\").FormRegistrarImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegistrarMixin",
          "declaration": {
            "name": "FormRegistrarMixin",
            "module": "src/registration/FormRegistrarMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormRegistrarMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "FormRegistrarMixin",
          "members": [
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              }
            },
            {
              "kind": "method",
              "name": "_completeRegistration",
              "description": "Resolves the registrationComplete promise. Subclassers can delay if needed"
            },
            {
              "kind": "method",
              "name": "isRegisteredFormElement",
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "ElementWithParentFormGroup"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "addFormElement",
              "parameters": [
                {
                  "name": "child",
                  "description": "the child element (field)",
                  "type": {
                    "text": "FormControl"
                  }
                },
                {
                  "name": "indexToInsertAt",
                  "description": "index to insert the form element at",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "removeFormElement",
              "parameters": [
                {
                  "name": "child",
                  "description": "the child element (field)",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_onRequestToAddFormElement",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to perform logic before an element is added",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_onRequestToChangeFormElementName",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_onRequestToRemoveFormElement",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "formElements",
              "description": "Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed\nboth like an array and an object (based on control/element names).",
              "type": {
                "text": "FormControlsCollection"
              },
              "default": "new FormControlsCollection()"
            },
            {
              "kind": "field",
              "name": "_isFormOrFieldset",
              "type": {
                "text": "boolean"
              },
              "description": "Flag that determines how \".formElements\" should behave.\nFor a regular fieldset (see LionFieldset) we expect \".formElements\"\nto be accessible as an object.\nIn case of a radio-group, a checkbox-group or a select/listbox,\nit should act like an array (see ChoiceGroupMixin).\nUsually, when false, we deal with a choice-group (radio-group, checkbox-group,\n(multi)select)",
              "privacy": "protected",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "initComplete",
              "description": "initComplete resolves after all pending initialization logic\n(for instance `<form-group .serializedValue=${{ child1: 'a', child2: 'b' }}>`)\nis executed",
              "type": {
                "text": "Promise<any>"
              },
              "default": "new Promise((resolve, reject) => {\n        this.__resolveInitComplete = resolve;\n        this.__rejectInitComplete = reject;\n      })"
            },
            {
              "kind": "field",
              "name": "registrationComplete",
              "description": "registrationComplete waits for all children formElements to have registered",
              "type": {
                "text": "Promise<any> & {done?:boolean}"
              },
              "default": "new Promise((resolve, reject) => {\n        this.__resolveRegistrationComplete = resolve;\n        this.__rejectRegistrationComplete = reject;\n      })"
            },
            {
              "kind": "field",
              "name": "done",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormRegisteringMixin",
              "module": "/src/registration/FormRegisteringMixin.js"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "FormRegistrarMixin"
          },
          "events": [
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegistrarMixin",
          "declaration": {
            "name": "FormRegistrarMixin",
            "module": "src/registration/FormRegistrarMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormRegistrarPortalMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "FormRegistrarPortalMixin",
          "type": {
            "text": "typeof import(\"../../types/registration/FormRegistrarPortalMixinTypes\").FormRegistrarPortalImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegistrarPortalMixin",
          "declaration": {
            "name": "FormRegistrarPortalMixin",
            "module": "src/registration/FormRegistrarPortalMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/registration/FormRegistrarPortalMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "This allows to register fields within a form even though they are not within the same dom tree.\nIt does that by redispatching the event on the registration target.\nNeither form or field need to know about the portal. It acts as if the field is part of the dom tree.",
          "name": "FormRegistrarPortalMixin",
          "members": [
            {
              "kind": "method",
              "name": "__redispatchEventForFormRegistrarPortalMixin",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "registrationTarget",
              "description": "Registration target: an element, usually in the body of the dom, that captures events\nand redispatches them on host",
              "type": {
                "text": "(FormRegistrarPortalHost & HTMLElement) | undefined"
              },
              "default": "undefined"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<HTMLElement>"
              }
            }
          ],
          "type": {
            "text": "FormRegistrarPortalMixin"
          },
          "mixins": [
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegistrarPortalMixin",
          "declaration": {
            "name": "FormRegistrarPortalMixin",
            "module": "src/registration/FormRegistrarPortalMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/AsyncQueue.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Use the `.add` method to add async functions to the queue\nAwait the `.complete` if you want to ensure the queue is empty at any point\n`complete` resolves whenever no more tasks are running.\nImportant note: Currently runs tasks 1 by 1, there is no concurrency option at the moment",
          "name": "AsyncQueue",
          "members": [
            {
              "kind": "field",
              "name": "__running",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "__queue",
              "type": {
                "text": "function[]"
              }
            },
            {
              "kind": "method",
              "name": "add",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "task",
                  "type": {
                    "text": "function"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "complete",
              "type": {
                "text": "Promise<any> | undefined"
              }
            },
            {
              "kind": "field",
              "name": "__callComplete",
              "type": {
                "text": "function"
              }
            },
            {
              "kind": "field",
              "name": "__run",
              "privacy": "private"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AsyncQueue",
          "declaration": {
            "name": "AsyncQueue",
            "module": "src/utils/AsyncQueue.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/AsyncQueue.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Use the `.add` method to add async functions to the queue\nAwait the `.complete` if you want to ensure the queue is empty at any point\n`complete` resolves whenever no more tasks are running.\nImportant note: Currently runs tasks 1 by 1, there is no concurrency option at the moment",
          "name": "AsyncQueue",
          "members": [
            {
              "kind": "method",
              "name": "add",
              "parameters": [
                {
                  "name": "task",
                  "type": {
                    "text": "function"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__run",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__running",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "__queue",
              "type": {
                "text": "function[]"
              },
              "default": "[]"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AsyncQueue",
          "declaration": {
            "name": "AsyncQueue",
            "module": "src/utils/AsyncQueue.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/SyncUpdatableMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "SyncUpdatableMixin",
          "type": {
            "text": "typeof import(\"../../types/utils/SyncUpdatableMixinTypes\").SyncUpdatableImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SyncUpdatableMixin",
          "declaration": {
            "name": "SyncUpdatableMixin",
            "module": "src/utils/SyncUpdatableMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/SyncUpdatableMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "Why this mixin?\n- it adheres to the \"Member Order Independence\" web components standard:\nhttps://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence\n- sync observers can be dependent on the outcome of the render function (or, more generically\nspeaking, the light and shadow dom). This aligns with the 'updated' callback that is supported\nout of the box by LitElement, which runs after connectedCallback as well.\n- makes the propertyAccessor.`hasChanged` compatible in synchronous updates:\n`updateSync` will only be called when new value differs from old value.\nSee: https://lit-element.polymer-project.org/guide/lifecycle#haschanged\n- it is a stable abstraction on top of a protected/non official lifecycle LitElement api.\nWhenever the implementation of `requestUpdate` changes (this happened in the past for\n`requestUpdate`) we only have to change our abstraction instead of all our components",
          "name": "SyncUpdatableMixin",
          "members": [
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence"
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method."
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "SyncUpdatableMixin"
          },
          "mixins": [
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SyncUpdatableMixin",
          "declaration": {
            "name": "SyncUpdatableMixin",
            "module": "src/utils/SyncUpdatableMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/getAriaElementsInRightDomOrder.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "getAriaElementsInRightDomOrder",
          "return": {
            "type": {
              "text": "HTMLElement[]"
            }
          },
          "parameters": [
            {
              "name": "descriptionElements",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "holds references to description or label elements whose\nid should be returned"
            },
            {
              "name": "{ reverse }",
              "optional": true,
              "type": {
                "text": "{\n    reverse?: boolean | undefined;\n}"
              }
            },
            {
              "name": "opts",
              "type": {
                "text": "@param {boolean} [opts.reverse]\n * "
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "getAriaElementsInRightDomOrder",
          "declaration": {
            "name": "getAriaElementsInRightDomOrder",
            "module": "src/utils/getAriaElementsInRightDomOrder.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/getAriaElementsInRightDomOrder.js",
      "declarations": [
        {
          "kind": "function",
          "name": "getAriaElementsInRightDomOrder",
          "parameters": [
            {
              "name": "descriptionElements",
              "description": "holds references to description or label elements whose\nid should be returned",
              "type": {
                "text": "HTMLElement[]"
              }
            },
            {
              "name": "{ reverse }",
              "default": "{}"
            },
            {
              "name": "opts",
              "type": {
                "text": "@param {boolean} [opts.reverse]\n * "
              }
            }
          ],
          "return": {
            "type": {
              "text": "HTMLElement[]"
            }
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "getAriaElementsInRightDomOrder",
          "declaration": {
            "name": "getAriaElementsInRightDomOrder",
            "module": "src/utils/getAriaElementsInRightDomOrder.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/pascalCase.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "pascalCase",
          "return": {
            "type": {
              "text": "string"
            }
          },
          "parameters": [
            {
              "name": "str",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Return PascalCased version of the camelCased string"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "pascalCase",
          "declaration": {
            "name": "pascalCase",
            "module": "src/utils/pascalCase.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/utils/pascalCase.js",
      "declarations": [
        {
          "kind": "function",
          "name": "pascalCase",
          "parameters": [
            {
              "name": "str",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Return PascalCased version of the camelCased string",
          "return": {
            "type": {
              "text": "string"
            }
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "pascalCase",
          "declaration": {
            "name": "pascalCase",
            "module": "src/utils/pascalCase.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/LionValidationFeedback.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "LionValidationFeedback",
          "members": [
            {
              "kind": "method",
              "name": "_messageTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "string | Node | TemplateResult"
                }
              },
              "parameters": [
                {
                  "name": "{ message }",
                  "type": {
                    "text": "{\n        message: string | Node | TemplateResult;\n        type?: string | undefined;\n        validator?: import(\"../validate/Validator\").Validator | undefined;\n    }"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "@param {string | Node | TemplateResult } opts.message message or feedback node or TemplateResult\n     * @param {string} [opts.type]\n     * @param {Validator} [opts.validator]\n     * "
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "currentType",
              "type": {
                "text": "string | undefined"
              }
            },
            {
              "kind": "field",
              "name": "removeMessage",
              "type": {
                "text": "number | undefined"
              }
            },
            {
              "kind": "field",
              "name": "feedbackData",
              "type": {
                "text": "messageMap[]"
              }
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "@lion/core"
          },
          "tagName": "lion-validation-feedback",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LionValidationFeedback",
          "declaration": {
            "name": "LionValidationFeedback",
            "module": "src/validate/LionValidationFeedback.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/LionValidationFeedback.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "LionValidationFeedback",
          "members": [
            {
              "kind": "method",
              "name": "_messageTemplate",
              "parameters": [
                {
                  "name": "{ message }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "@param {string | Node | TemplateResult } opts.message message or feedback node or TemplateResult\n   * @param {string} [opts.type]\n   * @param {Validator} [opts.validator]\n   * "
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "feedbackData",
              "privacy": "public"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "@lion/core"
          },
          "tagName": "lion-validation-feedback",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "LionValidationFeedback",
          "declaration": {
            "name": "LionValidationFeedback",
            "module": "src/validate/LionValidationFeedback.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/ResultValidator.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ResultValidator",
          "members": [
            {
              "kind": "method",
              "name": "executeOnResults",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "{ regularValidationResult, prevValidationResult, prevShownValidationResult, validators, }",
                  "type": {
                    "text": "{\n        regularValidationResult: Validator[];\n        prevValidationResult: Validator[];\n        prevShownValidationResult: Validator[];\n        validators?: Validator[] | undefined;\n    }"
                  }
                },
                {
                  "name": "context",
                  "type": {
                    "text": "@param {Validator[]} context.regularValidationResult\n     * @param {Validator[]} context.prevValidationResult\n     * @param {Validator[]} context.prevShownValidationResult\n     * @param {Validator[]} [context.validators]\n     * "
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ResultValidator",
          "declaration": {
            "name": "ResultValidator",
            "module": "src/validate/ResultValidator.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/ResultValidator.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ResultValidator",
          "members": [
            {
              "kind": "method",
              "name": "executeOnResults",
              "parameters": [
                {
                  "name": "{\n    regularValidationResult,\n    prevValidationResult,\n    prevShownValidationResult,\n    validators,\n  }"
                },
                {
                  "name": "context",
                  "type": {
                    "text": "@param {Validator[]} context.regularValidationResult\n   * @param {Validator[]} context.prevValidationResult\n   * @param {Validator[]} context.prevShownValidationResult\n   * @param {Validator[]} [context.validators]\n   * "
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ResultValidator",
          "declaration": {
            "name": "ResultValidator",
            "module": "src/validate/ResultValidator.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/Unparseable.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "A modelValue can demand a certain type (Date, Number, Iban etc.). A correct type will always be\ntranslatable into a String representation (the value presented to the end user) via the\n`formatter`. When the type is not valid (usually as a consequence of a user typing in an invalid\nor incomplete viewValue), the current truth is captured in the `Unparseable` type.\nFor example: a viewValue can't be parsed (for instance 'foo' when the type should be Number).\n\nThe model(value) concept as implemented in lion-web is conceptually comparable to those found in\npopular systems like Angular and Vue.\n\nThe Unparseable type is an addition on top of this that mainly is added for the following two\npurposes:\n- restoring user sessions\n- realtime updated with all value changes",
          "name": "Unparseable",
          "members": [
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "'unparseable'"
              },
              "description": "Meta info for restoring serialized Unparseable values"
            },
            {
              "kind": "field",
              "name": "viewValue",
              "type": {
                "text": "string"
              },
              "description": "Stores current view value. For instance, value '09-' is an unparseable Date.\nThis info can be used to restore previous form states."
            },
            {
              "kind": "method",
              "name": "toString",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Unparseable",
          "declaration": {
            "name": "Unparseable",
            "module": "src/validate/Unparseable.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/Unparseable.js",
      "declarations": [
        {
          "kind": "class",
          "description": "A modelValue can demand a certain type (Date, Number, Iban etc.). A correct type will always be\ntranslatable into a String representation (the value presented to the end user) via the\n`formatter`. When the type is not valid (usually as a consequence of a user typing in an invalid\nor incomplete viewValue), the current truth is captured in the `Unparseable` type.\nFor example: a viewValue can't be parsed (for instance 'foo' when the type should be Number).\n\nThe model(value) concept as implemented in lion-web is conceptually comparable to those found in\npopular systems like Angular and Vue.\n\nThe Unparseable type is an addition on top of this that mainly is added for the following two\npurposes:\n- restoring user sessions\n- realtime updated with all value changes",
          "name": "Unparseable",
          "members": [
            {
              "kind": "method",
              "name": "toString"
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "'unparseable'"
              },
              "description": "Meta info for restoring serialized Unparseable values",
              "default": "'unparseable'"
            },
            {
              "kind": "field",
              "name": "viewValue",
              "description": "Stores current view value. For instance, value '09-' is an unparseable Date.\nThis info can be used to restore previous form states.",
              "type": {
                "text": "string"
              },
              "default": "value"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Unparseable",
          "declaration": {
            "name": "Unparseable",
            "module": "src/validate/Unparseable.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/ValidateMixin.d.ts",
      "declarations": [
        {
          "kind": "variable",
          "name": "ValidateMixinImplementation",
          "type": {
            "text": "ValidateMixin"
          },
          "description": "Handles all validation, based on modelValue changes. It has no knowledge about dom and\nUI. All error visibility, dom interaction and accessibility are handled in FeedbackMixin.",
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ]
        },
        {
          "kind": "variable",
          "name": "ValidateMixin",
          "type": {
            "text": "typeof import(\"../../types/validate/ValidateMixinTypes\").ValidateImplementation"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ValidateMixinImplementation",
          "declaration": {
            "name": "ValidateMixinImplementation",
            "module": "src/validate/ValidateMixin.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "ValidateMixin",
          "declaration": {
            "name": "ValidateMixin",
            "module": "src/validate/ValidateMixin.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/ValidateMixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "Handles all validation, based on modelValue changes. It has no knowledge about dom and\nUI. All error visibility, dom interaction and accessibility are handled in FeedbackMixin.",
          "name": "ValidateMixin",
          "members": [
            {
              "kind": "field",
              "name": "scopedElements",
              "static": true
            },
            {
              "kind": "field",
              "name": "properties",
              "static": true,
              "type": {
                "text": "any"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "static": true,
              "description": "Types of validation supported by this FormControl (for instance 'error'|'warning'|'info')",
              "type": {
                "text": "ValidationType[]"
              }
            },
            {
              "kind": "field",
              "name": "slots",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "description": "Combination of validators provided by Application Developer and the default validators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "firstUpdated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "description": "Empty pending queue in order to guarantee order independence",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "updateSync",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method.",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "parameters": [
                {
                  "name": "{ clearCurrentResult }",
                  "default": "{}"
                },
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call."
            },
            {
              "kind": "method",
              "name": "__executeValidators"
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "{ hasAsync }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ],
              "description": "step a2 (as explained in `validate()`): calls `__finishValidation`",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "parameters": [
                {
                  "name": "asyncValidators",
                  "description": "all Validators except required and ResultValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "step a3 (as explained in `validate()`), calls __finishValidation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "description": "result of steps 1-3",
                  "type": {
                    "text": "{validator: Validator;outcome: boolean | string;}[]"
                  }
                }
              ],
              "description": "step b (as explained in `validate()`), called by __finishValidation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "parameters": [
                {
                  "name": "{ source, hasAsync }"
                },
                {
                  "name": "options",
                  "type": {
                    "text": "@param {'sync'|'async'} options.source\n     * @param {boolean} [options.hasAsync] whether async validators are configured in this run.\n     * "
                  }
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_onValidatorUpdated",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event|CustomEvent"
                  }
                }
              ],
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "Helper method for the mutually exclusive Required Validator",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "parameters": [
                {
                  "name": "validationResults",
                  "description": "list of objects having a .getMessage method",
                  "type": {
                    "text": "ValidationResultEntry[]"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "Promise.<FeedbackMessage[]>"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false",
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "description": "Allows Subclassers to add meta info for feedbackCondition"
            },
            {
              "kind": "method",
              "name": "feedbackCondition",
              "parameters": [
                {
                  "name": "type",
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "meta",
                  "default": "this._feedbackConditionMeta",
                  "description": "meta info (interaction states etc)",
                  "type": {
                    "text": "object"
                  }
                },
                {
                  "name": "currentCondition",
                  "default": "this._showFeedbackConditionFor.bind(this)",
                  "description": "this is the _showFeedbackConditionFor\nthat can be used if a developer wants to override for a certain type, but wants to fallback\nfor other types",
                  "type": {
                    "text": "((type: string, meta: object) => boolean)"
                  }
                }
              ],
              "description": "Allows the Application Developer to specify when a feedback message should be shown",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "updated",
              "parameters": [
                {
                  "name": "changedProperties",
                  "type": {
                    "text": "PropertyValues"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "parameters": [
                {
                  "name": "{ validationResult }"
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult.\nCan also filter out occurrences (based on interaction states)",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input.",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor",
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "ValidationStates"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name",
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl.",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator.",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "description": "The amount of feedback messages that will visible in LionValidationFeedback",
              "privacy": "protected",
              "default": "1"
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "description": "Aggregated result from sync Validators, async Validators and ResultValidators",
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "ValidationResultEntry[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "description": "The updated children validity affects the validity of the parent. Helper to recompute\nvalidity of parent FormGroup",
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "label",
              "description": "The label text for the input node.\nWhen no value is defined, textContent of [slot=label] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "helpText",
              "description": "The helpt text for the input node.\nWhen no value is defined, textContent of [slot=help-text] will be used",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "fieldName",
              "description": "Will be used in validation messages to refer to the current field",
              "type": {
                "text": "string"
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "description": "The interactive (form) element. Can be a native element like input/textarea/select or\nan element with tabindex > -1",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_labelNode",
              "description": "Element where label will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_helpTextNode",
              "description": "Element where help text will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_feedbackNode",
              "description": "Element where validation feedback will be rendered to",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomClasses",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11y",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_enhanceLightDomA11yForAdditionalSlots",
              "parameters": [
                {
                  "name": "additionalSlots",
                  "default": "['prefix', 'suffix', 'before', 'after']",
                  "type": {
                    "text": "string[]"
                  }
                }
              ],
              "description": "Enhances additional slots(prefix, suffix, before, after) defined by developer.\n\nWhen boolean attribute data-label or data-description is found,\nthe slot element will be connected to the input via aria-labelledby or aria-describedby",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__reflectAriaAttr",
              "parameters": [
                {
                  "name": "attrName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "nodes",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                },
                {
                  "name": "reorder",
                  "type": {
                    "text": "boolean|undefined"
                  }
                }
              ],
              "description": "Will handle help text, validation feedback and character counter,\nprefix/suffix/before/after (if they contain data-description flag attr).\nAlso, contents of id references that will be put in the <lion-field>._ariaDescribedby property\nfrom an external context, will be read by a screen reader.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Default Render Result:\n<div class=\"form-field__group-one\">\n  <div class=\"form-field__label\">\n    <slot name=\"label\"></slot>\n  </div>\n  <small class=\"form-field__help-text\">\n    <slot name=\"help-text\"></slot>\n  </small>\n</div>\n<div class=\"form-field__group-two\">\n  <div class=\"input-group\">\n    <div class=\"input-group__before\">\n      <slot name=\"before\"></slot>\n    </div>\n    <div class=\"input-group__container\">\n      <div class=\"input-group__prefix\">\n        <slot name=\"prefix\"></slot>\n      </div>\n      <div class=\"input-group__input\">\n        <slot name=\"input\"></slot>\n      </div>\n      <div class=\"input-group__suffix\">\n        <slot name=\"suffix\"></slot>\n      </div>\n    </div>\n    <div class=\"input-group__after\">\n      <slot name=\"after\"></slot>\n    </div>\n  </div>\n  <div class=\"form-field__feedback\">\n    <slot name=\"feedback\"></slot>\n  </div>\n</div>",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupOneTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_groupTwoTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_labelTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_helpTextTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupBeforeTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupPrefixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupInputTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupSuffixTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult | nothing"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_inputGroupAfterTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_feedbackTemplate",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "parameters": [
                {
                  "name": "modelValue",
                  "default": "(this).modelValue",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Used for Required validation and computation of interaction states",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "styles",
              "static": true,
              "description": "{block} .input-group\n\nStructure:\n- {element} .input-group__before (optional) : a prefix that resides outside the container\n- {element} .input-group__container : an inner container: this element contains all styling\n - {element} .input-group__prefix (optional) : a prefix that resides in the container,\n              allowing it to be detectable as a :first-child\n - {element} .input-group__input : a wrapper around the form-control component\n  - {block} .form-control : the actual input element (input/select/textarea)\n - {element} .input-group__suffix (optional) : a suffix that resides inside the container,\n              allowing it to be detectable as a :last-child\n - {element} .input-group__bottom (optional) : placeholder element for additional styling\n              (like an animated line for material design input)\n- {element} .input-group__after (optional) :  a suffix that resides outside the container",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_getAriaDescriptionElements",
              "description": "This function exposes descripion elements that a FormGroup should expose to its\nchildren. See FormGroupMixin.__getAllDescriptionElementsInParentChain()",
              "return": {
                "type": {
                  "text": "Array.<HTMLElement>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add extra element references to aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaLabelledBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-labelledby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "addToAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "{ idPrefix = '', reorder = true }",
                  "default": "{}"
                },
                {
                  "name": "customConfig",
                  "type": {
                    "text": "{idPrefix?:string; reorder?: boolean}"
                  }
                }
              ],
              "description": "Allows to add element references to aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "removeFromAriaDescribedBy",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Allows to remove element references from aria-describedby attribute.",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__getDirectSlotChild",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "HTMLElement | undefined"
                }
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_dispatchInitialModelValueChangedEvent",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to add logic before repropagation",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__repropagateChildrenValues",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_repropagationCondition",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Based on provided target, this condition determines whether received model-value-changed\nevent should be repropagated",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "_onLabelClick",
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the element will be registered with to the .formElements collection\nof the parent. Also, it serves as the key of key/value pairs in\n modelValue/serializedValue objects",
              "default": "''",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "readOnly",
              "type": {
                "text": "boolean"
              },
              "description": "A Boolean attribute which, if present, indicates that the user should not be able to edit\nthe value of the input. The difference between disabled and readonly is that read-only\ncontrols can still function, whereas disabled controls generally do not function as\ncontrols until they are enabled.\n(From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "labelSrOnly",
              "type": {
                "text": "boolean"
              },
              "description": "The label will only be visible for srceen readers when true",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_inputId",
              "description": "Unique id that can be used in all light dom",
              "type": {
                "text": "string"
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaLabelledNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-labelledby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_ariaDescribedNodes",
              "type": {
                "text": "HTMLElement[]"
              },
              "description": "Contains all elements that should end up in aria-describedby of `._inputNode`",
              "default": "[]",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_repropagationRole",
              "type": {
                "text": "'child'|'choice-group'|'fieldset'"
              },
              "description": "Based on the role, details of handling model-value-changed repropagation differ.",
              "default": "'child'",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_isRepropagationEndpoint",
              "type": {
                "text": "boolean"
              },
              "description": "By default, a field with _repropagationRole 'choice-group' will act as an\n'endpoint'. This means it will be considered as an individual field: for\na select, individual options will not be part of the formPath. They\nwill.\nSimilarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'\n(from Application Developer perspective) need to be more like fields\n(think of an amount-input with a currency select box next to it), can set this\nto true to hide private internals in the formPath.",
              "default": "false",
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__unregisterFormElement",
              "description": "Putting this in a separate method makes testing easier",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "default": "undefined",
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "static": true,
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "*"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Makes the propertyAccessor.`hasChanged` compatible in synchronous updates",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "method",
              "name": "requestUpdate",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "description": "Namespace for this mixin that guarantees naming clashes will not occur...",
              "default": "{}",
              "inheritedFrom": {
                "name": "SyncUpdatableMixin",
                "module": "src/utils/SyncUpdatableMixin.js"
              }
            }
          ],
          "events": [
            {
              "name": "showsFeedbackForChanged",
              "type": {
                "text": "Event"
              }
            },
            {
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "shouldShowFeedbackForChanged",
              "type": {
                "text": "Event"
              }
            },
            {
              "name": "validate-performed",
              "type": {
                "text": "Event"
              },
              "description": "private event that should be listened to by LionFieldSet"
            },
            {
              "name": "form-element-name-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "model-value-changed",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormControlMixin",
                "module": "src/FormControlMixin.js"
              }
            },
            {
              "name": "form-element-register",
              "type": {
                "text": "CustomEvent"
              },
              "inheritedFrom": {
                "name": "FormRegisteringMixin",
                "module": "src/registration/FormRegisteringMixin.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FormControlMixin",
              "module": "/src/FormControlMixin.js"
            },
            {
              "name": "SyncUpdatableMixin",
              "module": "/src/utils/SyncUpdatableMixin.js"
            },
            {
              "name": "DisabledMixin",
              "package": "@lion/core"
            },
            {
              "name": "SlotMixin",
              "package": "@lion/core"
            },
            {
              "name": "ScopedElementsMixin",
              "package": "@lion/core"
            },
            {
              "name": "dedupeMixin",
              "package": "@lion/core"
            }
          ],
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "Constructor<LitElement>"
              }
            }
          ],
          "type": {
            "text": "ValidateMixin"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ValidateMixinImplementation",
          "declaration": {
            "name": "ValidateMixinImplementation",
            "module": "src/validate/ValidateMixin.js"
          }
        },
        {
          "kind": "js",
          "name": "ValidateMixin",
          "declaration": {
            "name": "ValidateMixin",
            "module": "src/validate/ValidateMixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/Validator.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "Validator",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately)."
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)"
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation)."
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage"
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "type": {
                "text": "any"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "type": {
                "text": "import(\"../../types/validate\").ValidatorConfig"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage."
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators."
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators."
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            }
          ],
          "superclass": {
            "name": "EventTarget",
            "module": "src/validate/Validator.d.ts"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Validator",
          "declaration": {
            "name": "Validator",
            "module": "src/validate/Validator.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/Validator.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "Validator",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately)."
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)"
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function"
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function."
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators."
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators."
            },
            {
              "kind": "method",
              "name": "abortExecution"
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param"
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              }
            }
          ],
          "superclass": {
            "name": "EventTarget",
            "module": "src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Validator",
          "declaration": {
            "name": "Validator",
            "module": "src/validate/Validator.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test/choice-group/ChoiceGroupMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/choice-group/ChoiceInputMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/form-group/FormGroupMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/utils/SyncUpdatableMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/utils/getAriaElementsInRightDomOrder.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/DateValidators.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/NumberValidators.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/Required.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/ResultValidator.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/StringValidators.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/ValidateMixin.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/ValidateMixinFeedbackPart.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/Validator.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test/validate/lion-validation-feedback.test.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/choice-group/ChoiceGroupMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runChoiceGroupMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "{ parentTagString, childTagString, choiceType }",
              "optional": true,
              "type": {
                "text": "{\n    parentTagString?: string | undefined;\n    childTagString?: string | undefined;\n    choiceType?: string | undefined;\n} | undefined"
              }
            },
            {
              "name": "config",
              "optional": true,
              "type": {
                "text": "{ parentTagString?:string, childTagString?: string, choiceType?: string}"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runChoiceGroupMixinSuite",
          "declaration": {
            "name": "runChoiceGroupMixinSuite",
            "module": "test-suites/choice-group/ChoiceGroupMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/choice-group/ChoiceInputMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runChoiceInputMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "{ tagString }",
              "optional": true,
              "type": {
                "text": "{\n    tagString?: string | undefined;\n    tagType?: string | undefined;\n} | undefined"
              }
            },
            {
              "name": "config",
              "optional": true,
              "type": {
                "text": "{ tagString?:string, tagType?: string}"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runChoiceInputMixinSuite",
          "declaration": {
            "name": "runChoiceInputMixinSuite",
            "module": "test-suites/choice-group/ChoiceInputMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/form-group/FormGroupMixin-input.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runFormGroupMixinInputSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "cfg",
              "optional": true,
              "type": {
                "text": "{ tagString?: string, childTagString?:string }"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runFormGroupMixinInputSuite",
          "declaration": {
            "name": "runFormGroupMixinInputSuite",
            "module": "test-suites/form-group/FormGroupMixin-input.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "test-suites/form-group/FormGroupMixin.suite.d.ts",
      "declarations": [
        {
          "kind": "function",
          "name": "runFormGroupMixinSuite",
          "return": {
            "type": {
              "text": "void"
            }
          },
          "parameters": [
            {
              "name": "cfg",
              "optional": true,
              "type": {
                "text": "{ tagString?: string, childTagString?:string }"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "runFormGroupMixinSuite",
          "declaration": {
            "name": "runFormGroupMixinSuite",
            "module": "test-suites/form-group/FormGroupMixin.suite.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/choice-group/ChoiceGroupMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ChoiceGroupHost",
          "members": [
            {
              "kind": "field",
              "name": "multipleChoice",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "modelValue",
              "type": {
                "text": "any"
              }
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "method",
              "name": "addFormElement",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControlHost"
                  }
                },
                {
                  "name": "indexToInsertAt",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "clear",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "_oldModelValue",
              "type": {
                "text": "any"
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElementsFilter",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "FormControl"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "filterFn",
                  "optional": true,
                  "type": {
                    "text": "(el: FormControl, property?: string) => boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_throwWhenInvalidChildModelValue",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_checkSingleChoiceElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_getCheckedElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_setCheckedElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "check",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_onBeforeRepropagateChildrenValues",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__setChoiceGroupTouched",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__delegateNameAttribute",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "function",
          "name": "ChoiceGroupImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<ChoiceGroupHost> &\n  Pick<typeof ChoiceGroupHost, keyof typeof ChoiceGroupHost> &\n  Constructor<FormRegistrarHost> &\n  Pick<typeof FormRegistrarHost, keyof typeof FormRegistrarHost> &\n  Constructor<InteractionStateHost> &\n  Pick<typeof InteractionStateHost, keyof typeof InteractionStateHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChoiceGroupHost",
          "declaration": {
            "name": "ChoiceGroupHost",
            "module": "types/choice-group/ChoiceGroupMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "ChoiceGroupImplementation",
          "declaration": {
            "name": "ChoiceGroupImplementation",
            "module": "types/choice-group/ChoiceGroupMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/choice-group/ChoiceInputMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ChoiceInputHost",
          "members": [
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "type": {
                "text": "ChoiceInputSerializedValue"
              }
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "modelValue",
              "type": {
                "text": "ChoiceInputModelValue"
              }
            },
            {
              "kind": "field",
              "name": "choiceValue",
              "type": {
                "text": "any"
              },
              "description": "The value that will be registered to the modelValue of the parent ChoiceGroup. Recommended\nto be a string"
            },
            {
              "kind": "method",
              "name": "parser",
              "return": {
                "type": {
                  "text": "any"
                }
              }
            },
            {
              "kind": "method",
              "name": "formatter",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "ChoiceInputModelValue"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "_isHandlingUserInput",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected"
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "_proxyInputEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_choiceGraphicTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_afterTemplate",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "TemplateResult"
                }
              }
            },
            {
              "kind": "method",
              "name": "_preventDuplicateLabelClick",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_syncNameToParentFormGroup",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_toggleChecked",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_onModelValueChanged",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "newV",
                  "type": {
                    "text": "{ modelValue: ChoiceInputModelValue }"
                  }
                },
                {
                  "name": "oldV",
                  "type": {
                    "text": "{ modelValue: ChoiceInputModelValue }"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_isEmpty",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_syncValueUpwards",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__syncModelCheckedToChecked",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "checked",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__syncCheckedToModel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "checked",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__syncCheckedToInputElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "ChoiceInputImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<ChoiceInputHost> &\n  Pick<typeof ChoiceInputHost, keyof typeof ChoiceInputHost> &\n  Constructor<FormatHost> &\n  Pick<typeof FormatHost, keyof typeof FormatHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ChoiceInputHost",
          "declaration": {
            "name": "ChoiceInputHost",
            "module": "types/choice-group/ChoiceInputMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "ChoiceInputImplementation",
          "declaration": {
            "name": "ChoiceInputImplementation",
            "module": "types/choice-group/ChoiceInputMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/choice-group/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./ChoiceInputMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./ChoiceGroupMixinTypes"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/form-group/FormGroupMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormGroupHost",
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "description": "Disables all formElements in group"
            },
            {
              "kind": "field",
              "name": "prefilled",
              "type": {
                "text": "boolean"
              },
              "description": "True when all of the children are prefilled (see InteractionStateMixin for more details.)"
            },
            {
              "kind": "field",
              "name": "touched",
              "type": {
                "text": "boolean"
              },
              "description": "True when the group as a whole is blurred (see InteractionStateMixin for more details.)"
            },
            {
              "kind": "field",
              "name": "dirty",
              "type": {
                "text": "boolean"
              },
              "description": "True when any of the children is dirty (see InteractionStateMixin for more details.)"
            },
            {
              "kind": "field",
              "name": "submitted",
              "type": {
                "text": "boolean"
              },
              "description": "True when parent form is submitted"
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "type": {
                "text": "{ [key: string]: any }"
              },
              "description": "Object keyed by formElements names, containing formElements' serializedValues"
            },
            {
              "kind": "field",
              "name": "formattedValue",
              "type": {
                "text": "string"
              },
              "description": "Object keyed by formElements names, containing formElements' formattedValues"
            },
            {
              "kind": "field",
              "name": "modelValue",
              "type": {
                "text": "{ [x: string]: any }"
              },
              "description": "Object keyed by formElements names, containing formElements' modelValues"
            },
            {
              "kind": "method",
              "name": "resetInteractionState",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resets all interaction states for all formElements"
            },
            {
              "kind": "method",
              "name": "clearGroup",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Clears all values and resets all interaction states of all FormControls in group,"
            },
            {
              "kind": "method",
              "name": "submitGroup",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Handles interaction state 'submitted'.\nThis allows children to enable visibility of validation feedback"
            },
            {
              "kind": "method",
              "name": "resetGroup",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resets to initial/prefilled values and interaction states of all FormControls in group,"
            },
            {
              "kind": "field",
              "name": "_initialModelValue",
              "type": {
                "text": "{ [x: string]: any }"
              },
              "privacy": "protected",
              "description": "Gathers initial model values of all children. Used when resetGroup() is called."
            },
            {
              "kind": "field",
              "name": "_inputNode",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "protected",
              "description": "The host element with role group (or radigroup or form) containing neccessary aria attributes"
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "{ [name: string]: any }"
                }
              },
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "filterFn",
                  "optional": true,
                  "type": {
                    "text": "(el: FormControl, property?: string) => boolean"
                  }
                }
              ],
              "description": "Gets a keyed be name object for requested property (like modelValue/serializedValue)"
            },
            {
              "kind": "method",
              "name": "_getFromAllFormElementsFilter",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "FormControl"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "A filter function which will exclude a form field when returning false\nBy default, exclude form fields which are disabled\n\nThe type is be passed as well for more fine grained control, e.g.\ndistinguish the filter when fetching modelValue versus serializedValue"
            },
            {
              "kind": "method",
              "name": "_setValueMapForAllFormElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "values",
                  "type": {
                    "text": "{ [x: string]: any }"
                  }
                }
              ],
              "description": "Allows to set formElements values via a keyed object structure"
            },
            {
              "kind": "method",
              "name": "_setValueForAllFormElements",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "any"
                  }
                }
              ],
              "description": "Sets the same value for requested property in all formElements"
            },
            {
              "kind": "method",
              "name": "_anyFormElementHas",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "prop",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Returns true when one of the formElements has requested property"
            },
            {
              "kind": "method",
              "name": "_everyFormElementHas",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "prop",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Returns true when all of the formElements have requested property"
            },
            {
              "kind": "method",
              "name": "_anyFormElementHasFeedbackFor",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "prop",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Returns true when all of the formElements have requested property"
            },
            {
              "kind": "method",
              "name": "_checkForOutsideClick",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_triggerInitialModelValueChangedEvent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_syncDirty",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_onFocusOut",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_syncFocused",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "__descriptionElementsInParentChain",
              "type": {
                "text": "Set<HTMLElement>"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__addedSubValidators",
              "type": {
                "text": "boolean"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__isInitialModelValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__isInitialSerializedValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__pendingValues",
              "type": {
                "text": "{\n    modelValue?: { [key: string]: any };\n    serializedValue?: { [key: string]: any };\n  }"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__initInteractionStates",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__setupOutsideClickHandling",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__requestChildrenToBeDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__retractRequestChildrenToBeDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__linkParentMessages",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__unlinkParentMessages",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__storeAllDescriptionElementsInParentChain",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__onChildValidatePerformed",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "function",
          "name": "FormGroupImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FormGroupHost> &\n  Pick<typeof FormGroupHost, keyof typeof FormGroupHost> &\n  Constructor<FormRegistrarHost> &\n  Pick<typeof FormRegistrarHost, keyof typeof FormRegistrarHost> &\n  Constructor<FormControlHost> &\n  Pick<typeof FormControlHost, keyof typeof FormControlHost> &\n  Constructor<ValidateHost> &\n  Pick<typeof ValidateHost, keyof typeof ValidateHost> &\n  Constructor<DisabledHost> &\n  Pick<typeof DisabledHost, keyof typeof DisabledHost> &\n  Constructor<SlotHost> &\n  Pick<typeof SlotHost, keyof typeof SlotHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormGroupHost",
          "declaration": {
            "name": "FormGroupHost",
            "module": "types/form-group/FormGroupMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormGroupImplementation",
          "declaration": {
            "name": "FormGroupImplementation",
            "module": "types/form-group/FormGroupMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/form-group/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FormGroupMixinTypes"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/registration/FormRegisteringMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormRegisteringHost",
          "members": [
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "description": "The name the host is registered with to a parent"
            },
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "type": {
                "text": "FormRegistrarHost | undefined"
              },
              "privacy": "protected",
              "description": "The registrar this FormControl registers to, Usually a descendant of FormGroup or\nChoiceGroup"
            },
            {
              "kind": "field",
              "name": "__unregisterFormElement",
              "type": {
                "text": "void"
              },
              "privacy": "private"
            }
          ]
        },
        {
          "kind": "function",
          "name": "FormRegisteringImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FormRegisteringHost> &\n  Pick<typeof FormRegisteringHost, keyof typeof FormRegisteringHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegisteringHost",
          "declaration": {
            "name": "FormRegisteringHost",
            "module": "types/registration/FormRegisteringMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormRegisteringImplementation",
          "declaration": {
            "name": "FormRegisteringImplementation",
            "module": "types/registration/FormRegisteringMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/registration/FormRegistrarMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ElementWithParentFormGroup",
          "members": [
            {
              "kind": "field",
              "name": "_parentFormGroup",
              "type": {
                "text": "FormRegistrarHost"
              }
            }
          ]
        },
        {
          "kind": "class",
          "description": "",
          "name": "FormRegistrarHost",
          "members": [
            {
              "kind": "field",
              "name": "formElements",
              "type": {
                "text": "FormControlsCollection & { [x: string]: any }"
              },
              "description": "Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed\nboth like an array and an object (based on control/element names)."
            },
            {
              "kind": "method",
              "name": "addFormElement",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "| (FormControlHost & ElementWithParentFormGroup)\n      | (FormControlHost & HTMLElement)\n      | (HTMLElement & ElementWithParentFormGroup)"
                  }
                },
                {
                  "name": "indexToInsertAt",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Adds FormControl to `.formElements`"
            },
            {
              "kind": "method",
              "name": "removeFormElement",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "child",
                  "type": {
                    "text": "FormRegisteringHost"
                  }
                }
              ],
              "description": "Removes FormControl from `.formElements`"
            },
            {
              "kind": "method",
              "name": "isRegisteredFormElement",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Whether FormControl is part of `.formElements`"
            },
            {
              "kind": "field",
              "name": "registrationComplete",
              "type": {
                "text": "Promise<boolean>"
              },
              "description": "Promise that is resolved by `._completeRegistration`. By default after one microtask,\nso children get the chance to register themselves"
            },
            {
              "kind": "field",
              "name": "initComplete",
              "type": {
                "text": "Promise<boolean>"
              },
              "description": "initComplete resolves after all pending initialization logic\n(for instance `<form-group .serializedValue=${{ child1: 'a', child2: 'b' }}>`)\nis executed."
            },
            {
              "kind": "field",
              "name": "_isFormOrFieldset",
              "type": {
                "text": "boolean"
              },
              "privacy": "protected",
              "description": "Flag that determines how \".formElements\" should behave.\nFor a regular fieldset (see LionFieldset) we expect \".formElements\"\nto be accessible as an object.\nIn case of a radio-group, a checkbox-group or a select/listbox,\nit should act like an array (see ChoiceGroupMixin).\nUsually, when false, we deal with a choice-group (radio-group, checkbox-group,\n(multi)select)"
            },
            {
              "kind": "method",
              "name": "_onRequestToAddFormElement",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ],
              "description": "Hook for Subclassers to perform logic before an element is added"
            },
            {
              "kind": "method",
              "name": "_onRequestToChangeFormElementName",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_onRequestToRemoveFormElement",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "_completeRegistration",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Resolves the registrationComplete promise. Subclassers can delay if needed"
            }
          ]
        },
        {
          "kind": "function",
          "name": "FormRegistrarImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FormRegistrarHost> &\n  Pick<typeof FormRegistrarHost, keyof typeof FormRegistrarHost> &\n  Constructor<FormRegisteringHost> &\n  Pick<typeof FormRegisteringHost, keyof typeof FormRegisteringHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ElementWithParentFormGroup",
          "declaration": {
            "name": "ElementWithParentFormGroup",
            "module": "types/registration/FormRegistrarMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarHost",
          "declaration": {
            "name": "FormRegistrarHost",
            "module": "types/registration/FormRegistrarMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarImplementation",
          "declaration": {
            "name": "FormRegistrarImplementation",
            "module": "types/registration/FormRegistrarMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/registration/FormRegistrarPortalMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FormRegistrarPortalHost",
          "members": [
            {
              "kind": "field",
              "name": "registrationTarget",
              "type": {
                "text": "HTMLElement"
              },
              "description": "Registration target: an element, usually in the body of the dom, that captures events\nand redispatches them on host"
            },
            {
              "kind": "method",
              "name": "__redispatchEventForFormRegistrarPortalMixin",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "function",
          "name": "FormRegistrarPortalImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<FormRegistrarPortalHost> &\n  Pick<typeof FormRegistrarPortalHost, keyof typeof FormRegistrarPortalHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FormRegistrarPortalHost",
          "declaration": {
            "name": "FormRegistrarPortalHost",
            "module": "types/registration/FormRegistrarPortalMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "FormRegistrarPortalImplementation",
          "declaration": {
            "name": "FormRegistrarPortalImplementation",
            "module": "types/registration/FormRegistrarPortalMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/registration/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FormRegisteringMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FormRegistrarMixinTypes"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./FormRegistrarPortalMixinTypes"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/utils/SyncUpdatableMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "SyncUpdatableHost",
          "members": [
            {
              "kind": "method",
              "name": "updateSync",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "An abstraction that has the exact same api as `requestUpdate`, but taking\ninto account:\n- [member order independence](https://github.com/webcomponents/gold-standard/wiki/Member-Order-Independence)\n- property effects start when all (light) dom has initialized (on firstUpdated)\n- property effects don't interrupt the first meaningful paint\n- compatible with propertyAccessor.`hasChanged`: no manual checks needed or accidentally\nrun property effects / events when no change happened\neffects when values didn't change\nAll code previously present in requestUpdate can be placed in this method."
            },
            {
              "kind": "method",
              "name": "__syncUpdatableInitialize",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "__SyncUpdatableNamespace",
              "type": {
                "text": "SyncUpdatableNamespace"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__syncUpdatableHasChanged",
              "privacy": "private",
              "static": true,
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "newValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "any"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "function",
          "name": "SyncUpdatableImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<SyncUpdatableHost> &\n  Pick<typeof SyncUpdatableHost, keyof typeof SyncUpdatableHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SyncUpdatableHost",
          "declaration": {
            "name": "SyncUpdatableHost",
            "module": "types/utils/SyncUpdatableMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "SyncUpdatableImplementation",
          "declaration": {
            "name": "SyncUpdatableImplementation",
            "module": "types/utils/SyncUpdatableMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/utils/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./SyncUpdatableMixinTypes"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/validate/ValidateMixinTypes.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ValidateHost",
          "members": [
            {
              "kind": "field",
              "name": "validators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Application Developers to add Validators to a FormControl."
            },
            {
              "kind": "field",
              "name": "hasFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "As soon as validation happens (after modelValue/validators/validator param change), this\narray is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.).\nNotice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on\n`.feedbackCondition()`.\n\nFor styling purposes, will be reflected to [has-feedback-for=\"error warning\"]. This can\nbe useful for subtle visual feedback on keyup, like a red/green border around an input."
            },
            {
              "kind": "field",
              "name": "showsFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "description": "Based on outcome of feedbackCondition, this array decides what ValidationTypes should be\nshown in validationFeedback, based on meta data like interaction states.\n\nFor styling purposes, it reflects it `[shows-feedback-for=\"error warning\"]`"
            },
            {
              "kind": "field",
              "name": "shouldShowFeedbackFor",
              "type": {
                "text": "ValidationType[]"
              },
              "privacy": "private",
              "description": "A temporary storage to transition from hasFeedbackFor to showsFeedbackFor"
            },
            {
              "kind": "field",
              "name": "validationStates",
              "type": {
                "text": "{ [key: string]: { [key: string]: Object } }"
              },
              "description": "The outcome of a validation 'round'. Keyed by ValidationType and Validator name"
            },
            {
              "kind": "field",
              "name": "isPending",
              "type": {
                "text": "boolean"
              },
              "description": "Flag indicating whether async validation is pending.\nCreates attribute [is-pending] as a styling hook"
            },
            {
              "kind": "field",
              "name": "defaultValidators",
              "type": {
                "text": "Validator[]"
              },
              "description": "Used by Subclassers to add default Validators to a particular FormControl.\nA date input for instance, always needs the isDate validator."
            },
            {
              "kind": "field",
              "name": "fieldName",
              "type": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "validateComplete",
              "type": {
                "text": "Promise<void>"
              }
            },
            {
              "kind": "field",
              "name": "feedbackComplete",
              "type": {
                "text": "Promise<void>"
              }
            },
            {
              "kind": "field",
              "name": "validationTypes",
              "type": {
                "text": "string[]"
              },
              "static": true
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "opts",
                  "optional": true,
                  "type": {
                    "text": "{ clearCurrentResult?: boolean }"
                  }
                }
              ],
              "description": "Triggered by:\n - modelValue change\n - change in the 'validators' array\n - change in the config of an individual Validator\n\nThree situations are handled:\n- a1) the FormControl is empty: further execution is halted. When the Required Validator\n(being mutually exclusive to the other Validators) is applied, it will end up in the\nvalidation result (as the only Validator, since further execution was halted).\n- a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't\nchanged since last async results were generated, 'sync results' are merged with the\n'async results'.\n- a3) there are asynchronous Validators: for instance when server side evaluation is needed.\nExecutions are scheduled and awaited and the 'async results' are merged with the\n'sync results'.\n\n- b) there are ResultValidators. After steps a1, a2, or a3 are finished, the holistic\nResultValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators)\nwill be run...\n\nSituations a2 and a3 are not mutually exclusive and can be triggered within one `validate()`\ncall. Situation b will occur after every call."
            },
            {
              "kind": "field",
              "name": "_visibleMessagesAmount",
              "type": {
                "text": "number"
              },
              "privacy": "protected",
              "description": "The amount of feedback messages that will visible in LionValidationFeedback"
            },
            {
              "kind": "field",
              "name": "_allValidators",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "protected",
              "description": "Combination of validators provided by Application Developer and the default validators"
            },
            {
              "kind": "field",
              "name": "_feedbackConditionMeta",
              "type": {
                "text": "object"
              },
              "privacy": "protected",
              "description": "Allows Subclassers to add meta info for feedbackCondition"
            },
            {
              "kind": "method",
              "name": "_updateFeedbackComponent",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "description": "Responsible for retrieving messages from Validators and\n(delegation of) rendering them.\n\nFor `._feedbackNode` (extension of LionValidationFeedback):\n- retrieve messages from highest prio Validators\n- provide the result to custom feedback node and let the\ncustom node decide on their renderings\n\nIn both cases:\n- we compute the 'show' flag (like 'hasErrorVisible') for all types\n- we set the customValidity message of the highest prio Validator\n- we set aria-invalid=\"true\" in case hasErrorVisible is true"
            },
            {
              "kind": "method",
              "name": "_showFeedbackConditionFor",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  },
                  "description": "could be 'error', 'warning', 'info', 'success' or any other custom\nValidator type"
                },
                {
                  "name": "meta",
                  "type": {
                    "text": "object"
                  },
                  "description": "meta info (interaction states etc)"
                }
              ],
              "description": "Default feedbackCondition condition, used by Subclassers, that will be used when\n`feedbackCondition()` is not overridden by Application Developer.\nShow the validity feedback when returning true, don't show when false"
            },
            {
              "kind": "method",
              "name": "_hasFeedbackVisibleFor",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Used to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`"
            },
            {
              "kind": "method",
              "name": "_updateShouldShowFeedbackFor",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "_prioritizeAndFilterFeedback",
              "privacy": "protected",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "parameters": [
                {
                  "name": "opts",
                  "type": {
                    "text": "{ validationResult: Validator[] }"
                  }
                }
              ],
              "description": "Orders all active validators in this.__validationResult. Can also filter out occurrences\n(based on interaction states)."
            },
            {
              "kind": "field",
              "name": "__syncValidationResult",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__asyncValidationResult",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__validationResult",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__prevValidationResult",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__prevShownValidationResult",
              "type": {
                "text": "Validator[]"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__childModelValueChanged",
              "type": {
                "text": "boolean"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__storePrevResult",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__executeValidators",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__validateCompleteResolve",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__executeSyncValidators",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "syncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "opts",
                  "type": {
                    "text": "{ hasAsync: boolean }"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__executeAsyncValidators",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "asyncValidators",
                  "type": {
                    "text": "Validator[]"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__executeResultValidators",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Validator[]"
                }
              },
              "parameters": [
                {
                  "name": "regularValidationResult",
                  "type": {
                    "text": "Validator[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__finishValidation",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "{ source: 'sync' | 'async'; hasAsync?: boolean }"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__clearValidationResults",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__onValidatorUpdated",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "Event | CustomEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__setupValidators",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "__isEmpty",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "__getFeedbackMessages",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<FeedbackMessage[]>"
                }
              },
              "parameters": [
                {
                  "name": "validators",
                  "type": {
                    "text": "Validator[]"
                  }
                }
              ]
            }
          ]
        },
        {
          "kind": "function",
          "name": "ValidateImplementation",
          "return": {
            "type": {
              "text": "T &\n  Constructor<ValidateHost> &\n  Pick<typeof ValidateHost, keyof typeof ValidateHost> &\n  Constructor<FormControlHost> &\n  Pick<typeof FormControlHost, keyof typeof FormControlHost> &\n  Constructor<SyncUpdatableHost> &\n  Pick<typeof SyncUpdatableHost, keyof typeof SyncUpdatableHost> &\n  Constructor<DisabledHost> &\n  Pick<typeof DisabledHost, keyof typeof DisabledHost> &\n  Constructor<SlotHost> &\n  Pick<typeof SlotHost, keyof typeof SlotHost> &\n  Constructor<ScopedElementsHost> &\n  Pick<typeof ScopedElementsHost, keyof typeof ScopedElementsHost> &\n  Pick<typeof LitElement, keyof typeof LitElement>"
            }
          },
          "parameters": [
            {
              "name": "superclass",
              "type": {
                "text": "T"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ValidateHost",
          "declaration": {
            "name": "ValidateHost",
            "module": "types/validate/ValidateMixinTypes.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "ValidateImplementation",
          "declaration": {
            "name": "ValidateImplementation",
            "module": "types/validate/ValidateMixinTypes.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/validate/index.d.ts",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./validate"
          }
        },
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "package": "./ValidateMixinTypes"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "types/validate/validate.d.ts",
      "declarations": [],
      "exports": []
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/resultValidators/DefaultSuccess.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "DefaultSuccess",
          "superclass": {
            "name": "ResultValidator",
            "module": "/src/validate/ResultValidator.js"
          },
          "members": [
            {
              "kind": "method",
              "name": "executeOnResults",
              "parameters": [
                {
                  "name": "{\n    regularValidationResult,\n    prevValidationResult,\n    prevShownValidationResult,\n    validators,\n  }"
                },
                {
                  "name": "context",
                  "type": {
                    "text": "@param {Validator[]} context.regularValidationResult\n   * @param {Validator[]} context.prevValidationResult\n   * @param {Validator[]} context.prevShownValidationResult\n   * @param {Validator[]} [context.validators]\n   * "
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ResultValidator",
                "module": "src/validate/ResultValidator.js"
              }
            },
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DefaultSuccess",
          "declaration": {
            "name": "DefaultSuccess",
            "module": "src/validate/resultValidators/DefaultSuccess.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/resultValidators/DefaultSuccess.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "DefaultSuccess",
          "members": [
            {
              "kind": "method",
              "name": "executeOnResults",
              "parameters": [
                {
                  "name": "{ regularValidationResult, prevShownValidationResult }"
                },
                {
                  "name": "context",
                  "type": {
                    "text": "@param {Validator[]} context.regularValidationResult\n   * @param {Validator[]} context.prevValidationResult\n   * @param {Validator[]} context.prevShownValidationResult\n   * "
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "ResultValidator",
                "module": "src/validate/ResultValidator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              },
              "default": "'success'"
            },
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "ResultValidator",
            "module": "/src/validate/ResultValidator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DefaultSuccess",
          "declaration": {
            "name": "DefaultSuccess",
            "module": "src/validate/resultValidators/DefaultSuccess.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/DateValidators.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IsDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MaxDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinMaxDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "IsDateDisabled",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IsDate",
          "declaration": {
            "name": "IsDate",
            "module": "src/validate/validators/DateValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MinDate",
          "declaration": {
            "name": "MinDate",
            "module": "src/validate/validators/DateValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MaxDate",
          "declaration": {
            "name": "MaxDate",
            "module": "src/validate/validators/DateValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxDate",
          "declaration": {
            "name": "MinMaxDate",
            "module": "src/validate/validators/DateValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "IsDateDisabled",
          "declaration": {
            "name": "IsDateDisabled",
            "module": "src/validate/validators/DateValidators.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/DateValidators.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IsDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "min",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MaxDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "max",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinMaxDate",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "{ min = 0, max = 0 }",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "IsDateDisabled",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "isDisabledFn",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IsDate",
          "declaration": {
            "name": "IsDate",
            "module": "src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinDate",
          "declaration": {
            "name": "MinDate",
            "module": "src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MaxDate",
          "declaration": {
            "name": "MaxDate",
            "module": "src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxDate",
          "declaration": {
            "name": "MinMaxDate",
            "module": "src/validate/validators/DateValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "IsDateDisabled",
          "declaration": {
            "name": "IsDateDisabled",
            "module": "src/validate/validators/DateValidators.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/NumberValidators.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IsNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MaxNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinMaxNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IsNumber",
          "declaration": {
            "name": "IsNumber",
            "module": "src/validate/validators/NumberValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MinNumber",
          "declaration": {
            "name": "MinNumber",
            "module": "src/validate/validators/NumberValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MaxNumber",
          "declaration": {
            "name": "MaxNumber",
            "module": "src/validate/validators/NumberValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxNumber",
          "declaration": {
            "name": "MinMaxNumber",
            "module": "src/validate/validators/NumberValidators.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/NumberValidators.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IsNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "min",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MaxNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "max",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinMaxNumber",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "{ min = 0, max = 0 }",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IsNumber",
          "declaration": {
            "name": "IsNumber",
            "module": "src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinNumber",
          "declaration": {
            "name": "MinNumber",
            "module": "src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MaxNumber",
          "declaration": {
            "name": "MaxNumber",
            "module": "src/validate/validators/NumberValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxNumber",
          "declaration": {
            "name": "MinMaxNumber",
            "module": "src/validate/validators/NumberValidators.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/Required.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "Required",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "_compatibleRoles",
              "type": {
                "text": "string[]"
              },
              "static": true,
              "description": "In order to prevent accessibility violations, the aria-required attribute will\nbe combined with compatible aria roles: https://www.w3.org/TR/wai-aria/#aria-required"
            },
            {
              "kind": "field",
              "name": "_compatibleTags",
              "type": {
                "text": "string[]"
              },
              "static": true,
              "description": "In order to prevent accessibility violations, the aria-required attribute will\nbe combined with compatible platform input elements"
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/validate/validators/Required.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/Required.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "Required",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "_compatibleRoles",
              "static": true,
              "description": "In order to prevent accessibility violations, the aria-required attribute will\nbe combined with compatible aria roles: https://www.w3.org/TR/wai-aria/#aria-required"
            },
            {
              "kind": "field",
              "name": "_compatibleTags",
              "static": true,
              "description": "In order to prevent accessibility violations, the aria-required attribute will\nbe combined with compatible platform input elements"
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "{ _inputNode: inputNode }"
                },
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost & HTMLElement"
                  }
                }
              ],
              "description": "We don't have an execute function, since the Required validator is 'special'.\nThe outcome depends on the modelValue of the FormControl and\nFormControl.__isEmpty / FormControl._isEmpty.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "{ _inputNode: inputNode }"
                },
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost & HTMLElement"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Required",
          "declaration": {
            "name": "Required",
            "module": "src/validate/validators/Required.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/StringValidators.d.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IsString",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "EqualsLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MaxLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinMaxLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "IsEmail",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "Pattern",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "modelValue",
                  "type": {
                    "text": "any"
                  }
                },
                {
                  "name": "param",
                  "optional": true,
                  "type": {
                    "text": "ValidatorParam"
                  }
                },
                {
                  "name": "config",
                  "optional": true,
                  "type": {
                    "text": "ValidatorConfig"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IsString",
          "declaration": {
            "name": "IsString",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "EqualsLength",
          "declaration": {
            "name": "EqualsLength",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MinLength",
          "declaration": {
            "name": "MinLength",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MaxLength",
          "declaration": {
            "name": "MaxLength",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxLength",
          "declaration": {
            "name": "MinMaxLength",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "IsEmail",
          "declaration": {
            "name": "IsEmail",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        },
        {
          "kind": "js",
          "name": "Pattern",
          "declaration": {
            "name": "Pattern",
            "module": "src/validate/validators/StringValidators.d.ts"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/validate/validators/StringValidators.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "IsString",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "EqualsLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "length",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "min",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MaxLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "max",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "MinMaxLength",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "{ min = 0, max = 0 }",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "IsEmail",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        },
        {
          "kind": "class",
          "description": "",
          "name": "Pattern",
          "members": [
            {
              "kind": "field",
              "name": "validatorName",
              "type": {
                "text": "ValidatorName"
              },
              "static": true,
              "default": "''",
              "description": "The name under which validation results get registered. For convience and predictability, this\nshould always be the same as the constructor name (since it will be obfuscated in js builds,\nwe need to provide it separately).",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "execute",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "?"
                  }
                },
                {
                  "name": "pattern",
                  "default": "this.param"
                }
              ],
              "description": "The function that returns a validity outcome. When we need to show feedback,\nit should return true, otherwise false. So when an error\\info|warning|success message\nneeds to be shown, return true. For async Validators, the function can return a Promise.\nIt's also possible to return an enum. Let's say that a phone number can have multiple\nstates: 'invalid-country-code' | 'too-long' | 'too-short'\nThose states can be retrieved in the getMessage",
              "return": {
                "type": {
                  "text": "ValidatorOutcome|Promise<ValidatorOutcome>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "async",
              "type": {
                "text": "boolean"
              },
              "static": true,
              "default": "false",
              "description": "Whether the validator is asynchronous or not. When true., this means execute function returns\na Promise. This can be handy for:\n- server side calls\n- validations that are dependent on lazy loaded resources (they can be async until the dependency\nis loaded)",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "param",
              "description": "The first argument of the constructor, for instance 3 in `new MinLength(3)`. Will\nbe stored on Validator instance and passed to `execute` function",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "config",
              "description": "The second argument of the constructor, for instance\n`new MinLength(3, {getFeedMessage: async () => 'too long'})`.\nWill be stored on Validator instance and passed to `execute` function.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "_getMessage",
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "This is a protected method that usually should not be overridden. It is called by ValidateMixin\nand it gathers data to be passed to getMessage functions found:\n- `this.config.getMessage`, locally provided by consumers of the Validator (overrides global getMessage)\n- `MyValidator.getMessage`, globally provided by creators or consumers of the Validator\n\nConfusion can arise because of similarities with former mentioned methods. In that regard, a\nbetter name for this function would have been _pepareDataAndCallHighestPrioGetMessage.",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "privacy": "protected",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "getMessage",
              "static": true,
              "parameters": [
                {
                  "name": "data",
                  "optional": true,
                  "type": {
                    "text": "Partial<FeedbackMessageData>"
                  }
                }
              ],
              "description": "Called inside Validator.prototype._getMessage (see explanation).",
              "return": {
                "type": {
                  "text": "Promise<string|Element>"
                }
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlConnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Validators are allowed to have knowledge about FormControls.\nIn some cases (in case of the Required Validator) we wanted to enhance accessibility by\nadding [aria-required]. Also, it would be possible to write an advanced MinLength\nValidator that adds a .preprocessor that restricts from typing too many characters\n(like the native [minlength] validator).\nWill be called when Validator is added to FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "onFormControlDisconnect",
              "parameters": [
                {
                  "name": "formControl",
                  "type": {
                    "text": "FormControlHost"
                  }
                }
              ],
              "description": "Also see `onFormControlConnect`.\nWill be called when Validator is removed from FormControl.validators.",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "method",
              "name": "abortExecution",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__param",
              "type": {
                "text": "ValidatorParam"
              },
              "default": "param",
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "__config",
              "type": {
                "text": "ValidatorConfig"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ValidationType"
              },
              "inheritedFrom": {
                "name": "Validator",
                "module": "src/validate/Validator.js"
              }
            }
          ],
          "superclass": {
            "name": "Validator",
            "module": "/src/validate/Validator.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IsString",
          "declaration": {
            "name": "IsString",
            "module": "src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "EqualsLength",
          "declaration": {
            "name": "EqualsLength",
            "module": "src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinLength",
          "declaration": {
            "name": "MinLength",
            "module": "src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MaxLength",
          "declaration": {
            "name": "MaxLength",
            "module": "src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "MinMaxLength",
          "declaration": {
            "name": "MinMaxLength",
            "module": "src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "IsEmail",
          "declaration": {
            "name": "IsEmail",
            "module": "src/validate/validators/StringValidators.js"
          }
        },
        {
          "kind": "js",
          "name": "Pattern",
          "declaration": {
            "name": "Pattern",
            "module": "src/validate/validators/StringValidators.js"
          }
        }
      ]
    }
  ]
}
