{
  "version": "experimental",
  "tags": [
    {
      "name": "ef-email-field",
      "description": "A form control element for email.",
      "attributes": [
        {
          "name": "multiple",
          "description": "Set to multiple mode, allows multiple emails in a single input",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "pattern",
          "description": "Set regular expression for input validation",
          "type": "string | null"
        },
        {
          "name": "maxlength",
          "description": "Set character max limit",
          "type": "number | null"
        },
        {
          "name": "minlength",
          "description": "Set character min limit",
          "type": "number | null"
        },
        {
          "name": "disabled",
          "description": "Set disabled state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "error",
          "description": "Set error state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "icon",
          "description": "Specify icon to display in input. Value can be icon name",
          "type": "string | null"
        },
        {
          "name": "icon-has-action",
          "description": "Specify when icon need to be clickable",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "placeholder",
          "description": "Set placeholder text",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "readonly",
          "description": "Set readonly state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "transparent",
          "description": "Disables all other states and border/background styles.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "warning",
          "description": "Set warning state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "value",
          "description": "Input's value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "clears",
          "description": "Show clears button",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "icon-has-action",
          "description": "Specify when icon need to be clickable",
          "type": "boolean"
        }
      ],
      "properties": [
        {
          "name": "multiple",
          "attribute": "multiple",
          "description": "Set to multiple mode, allows multiple emails in a single input",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "pattern",
          "attribute": "pattern",
          "description": "Set regular expression for input validation",
          "type": "string | null"
        },
        {
          "name": "maxLength",
          "attribute": "maxlength",
          "description": "Set character max limit",
          "type": "number | null"
        },
        {
          "name": "minLength",
          "attribute": "minlength",
          "description": "Set character min limit",
          "type": "number | null"
        },
        {
          "name": "disabled",
          "attribute": "disabled",
          "description": "Set disabled state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "error",
          "attribute": "error",
          "description": "Set error state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "icon",
          "attribute": "icon",
          "description": "Specify icon to display in input. Value can be icon name",
          "type": "string | null"
        },
        {
          "name": "iconHasAction",
          "attribute": "icon-has-action",
          "description": "Specify when icon need to be clickable",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "placeholder",
          "attribute": "placeholder",
          "description": "Set placeholder text",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "readonly",
          "attribute": "readonly",
          "description": "Set readonly state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "transparent",
          "attribute": "transparent",
          "description": "Disables all other states and border/background styles.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "warning",
          "attribute": "warning",
          "description": "Set warning state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "value",
          "attribute": "value",
          "description": "Input's value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "clears",
          "attribute": "clears",
          "description": "Show clears button",
          "type": "boolean",
          "default": "false"
        }
      ],
      "events": [
        {
          "name": "value-changed",
          "description": "Fired when the user commits a value change. The event is not triggered if `value` property is changed programmatically."
        },
        {
          "name": "error-changed",
          "description": "Fired when the user inputs an invalid value. The event is not triggered if `error` property is changed programmatically."
        },
        {
          "name": "icon-click",
          "description": "Fired when the user taps on icon added into control's slot."
        }
      ],
      "methods": [
        {
          "name": "checkValidity",
          "description": "Returns `true` if the element input is valid; otherwise, returns `false`.",
          "params": []
        },
        {
          "name": "reportValidity",
          "description": "Validate the element input and mark it as error if its input is invalid.",
          "params": []
        }
      ]
    }
  ]
}