{
  "mixins": [ "composables/private.use-field/use-field", "components/input/use-mask", "composables/use-form/private.use-form" ],

  "meta": {
    "docsUrl": "https://v2.quasar.dev/vue-components/input"
  },

  "props": {
    "model-value": {
      "extends": "model-value",
      "type": [ "String", "Number", "FileList", "null", "undefined" ],
      "desc": "Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",
      "examples": [ "# v-model=\"myText\"" ]
    },

    "shadow-text": {
      "type": "String",
      "desc": "Text to be displayed as shadow at the end of the text in the control; Does NOT applies to type=file",
      "examples": [ "'rest of the fill value'" ],
      "category": "content"
    },

    "type": {
      "type": "String",
      "desc": "Input type",
      "default": "'text'",
      "values": [
        "'text'", "'password'", "'textarea'", "'email'", "'search'",
        "'tel'", "'file'", "'number'", "'url'", "'time'", "'date'",
        "'datetime-local'"
      ],
      "category": "general"
    },

    "debounce": {
      "type": [ "String", "Number" ],
      "desc": "Debounce amount (in milliseconds) when updating model",
      "category": "model"
    },

    "maxlength": {
      "type": [ "String", "Number" ],
      "desc": "Specify a max length of model",
      "category": "model"
    },

    "autogrow": {
      "type": "Boolean",
      "desc": "Make field autogrow along with its content (uses a textarea)",
      "category": "content"
    },

    "input-class": {
      "type": [ "String", "Array", "Object" ],
      "tsType": "VueClassProp",
      "desc": "Class definitions to be attributed to the underlying input tag",
      "examples": [
        "'my-special-class'",
        "{ 'my-special-class': true }"
      ],
      "category": "style"
    },

    "input-style": {
      "type": [ "String", "Array", "Object" ],
      "tsType": "VueStyleProp",
      "desc": "Style definitions to be attributed to the underlying input tag",
      "examples": [
        "'background-color: #ff0000'",
        "{ backgroundColor: '#ff0000' }"
      ],
      "category": "style"
    },

    "name": {
      "desc": "Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists"
    }
  },

  "events": {
    "update:model-value": {
      "params": {
        "value": {
          "type": [ "String", "Number", "null" ]
        }
      }
    },

    "click": { "internal": true },
    "paste": { "internal": true },
    "animationend": { "internal": true },
    "change": { "internal": true },
    "keydown": { "internal": true }
  },

  "methods": {
    "focus": {
      "desc": "Focus underlying input tag"
    },

    "blur": {
      "desc": "Lose focus on underlying input tag"
    },

    "select": {
      "desc": "Select input text",
      "params": null,
      "returns": null
    },

    "getNativeElement": {
      "desc": "DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element",
      "params": null,
      "returns": {
        "type": "Element",
        "tsType": "QInputNativeElement",
        "desc": "The underlying native input/textarea DOM Element"
      }
    }
  },

  "computedProps": {
    "nativeEl": {
      "type": "Element",
      "tsType": "QInputNativeElement",
      "desc": "The native input/textarea DOM Element",
      "addedIn": "v2.10.1"
    }
  }
}
