{
  "mixins": [ "composables/private/use-field" ],

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

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

    "max-values": {
      "type": [ "Number", "String" ],
      "desc": "Used internally by QSelect",
      "internal": true
    }
  },

  "slots": {
    "control": {
      "desc": "Slot for controls; Suggestion QSlider, QRange, QKnob, ...",
      "scope": {
        "id": {
          "type": "String",
          "desc": "Element id used in the `for` attribute of the field label. Can be used to link the control to the label",
          "examples": [ "qf_363270c0-7a83-62b1-8dcf-6dfd64ee38fa" ]
        },
        "field": {
          "type": "Element",
          "desc": "DOM element of the field"
        },
        "editable": {
          "type": "Boolean",
          "desc": "Field is editable"
        },
        "focused": {
          "type": "Boolean",
          "desc": "Field has focus"
        },
        "floatingLabel": {
          "type": "Boolean",
          "desc": "Field's label is floating"
        },
        "modelValue": {
          "type": "Any",
          "desc": "Field's value",
          "examples": [ 0.241, "Text" ]
        },
        "emitValue": {
          "type": "Function",
          "desc": "Function that emits an @input event in the context of the field",
          "params": {
            "value": {
              "type": "Any",
              "required": true,
              "desc": "Value to be emitted",
              "examples": [ 0, "Changed text" ]
            }
          },
          "returns": null
        }
      }
    },

    "rawControl": {
      "internal": true
    }
  },

  "events": {
    "update:model-value": {
      "extends": "update:model-value",
      "desc": "Emitted when the model changes, only when used with 'clearable' or the 'control' scoped slot."
    },

    "focus": {
      "desc": "Emitted when component gets focused",
      "params": {
        "evt": {
          "extends": "evt"
        }
      }
    },

    "blur": {
      "desc": "Emitted when component loses focus",
      "params": {
        "evt": {
          "extends": "evt"
        }
      }
    }
  },

  "methods": {
    "focus": {
      "desc": "Focus field"
    },

    "blur": {
      "desc": "Blur field (lose focus)"
    }
  }
}
