{
  "mixins": ["composables/private.use-field/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"
    },

    "tag": {
      "extends": "tag",
      "default": "'label'",
      "examples": ["'div'", "'label'"],
      "addedIn": "v2.13.1"
    }
  },

  "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": {
      "desc": "Emitted when the model changes, only when used with 'clearable' or the 'control' scoped slot."
    }
  }
}
