{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://schema.mydesignsystem.com/text-field.schema.json",
  "title": "TextField",
  "description": "TextField buttons allow users to select a single option from a list of mutually exclusive options.",
  "type": "object",
  "properties": {
    "label": {
      "title": "Label",
      "description": "The label for the element",
      "type": "string",
      "examples": [
        "Est dolore a debitis"
      ]
    },
    "value": {
      "title": "Value",
      "description": "The value of the input element, used when submitting an HTML form",
      "type": "string"
    },
    "name": {
      "title": "Name",
      "description": "The name of the input element, used when submitting an HTML form",
      "type": "string"
    },
    "disabled": {
      "title": "Disabled",
      "description": "Whether the input is disabled",
      "type": "boolean",
      "default": false
    },
    "placeholder": {
      "title": "Placeholder",
      "description": "Temporary text that occupies the text input when it is empty",
      "type": "string"
    },
    "type": {
      "title": "Type",
      "description": "The type of input to render",
      "type": "string",
      "enum": [
        "color",
        "date",
        "datetime-local",
        "email",
        "file",
        "month",
        "number",
        "password",
        "search",
        "tel",
        "text",
        "time",
        "url",
        "week"
      ],
      "default": "text"
    },
    "inputMode": {
      "title": "Input Mode",
      "description": "Hints at the type of data that might be entered by the user while editing the element or its contents",
      "type": "string",
      "enum": [
        "none",
        "text",
        "search",
        "url",
        "tel",
        "email",
        "numeric",
        "decimal"
      ],
      "default": "text"
    },
    "hideLabel": {
      "title": "Hide Label",
      "description": "Hide label visually",
      "type": "boolean"
    },
    "icon": {
      "title": "Icon",
      "description": "Decoration Icon",
      "type": "string"
    },
    "invalid": {
      "title": "Invalid",
      "description": "Wheter the input is invalid",
      "type": "boolean"
    },
    "invalidMessage": {
      "title": "Invalid message",
      "description": "Message to show if the input is invalid",
      "type": "string"
    },
    "hint": {
      "title": "Hint message",
      "description": "Help text that gives more context about what a user needs to input",
      "type": "string"
    },
    "className": {
      "title": "Class",
      "description": "Additional css classes attached to the input element",
      "type": "string"
    }
  },
  "required": [
    "label"
  ],
  "additionalProperties": false
}