[
  {
    "attribute": "size",
    "property": "size",
    "type": "\"s\" | \"m\" | \"l\" | \"xl\"",
    "kind": "enum",
    "values": [
      "s",
      "m",
      "l",
      "xl"
    ],
    "optional": false,
    "description": "Size of the control, label, and supporting text.",
    "inheritedFrom": "SizedMixin",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "accessible-describedby",
    "property": "accessibleDescribedby",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": true,
    "description": "Space-separated description IDs in the field's document or shadow root.\nCombines with the visible description or error text.",
    "inheritedFrom": "FieldDescriptionMixin",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "accessible-label",
    "property": "accessibleLabel",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": true,
    "default": "''",
    "description": "Accessible name supplied as `aria-label`.\n`accessible-labelledby` takes precedence when both are set.",
    "inheritedFrom": "LabellingMixin",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "accessible-labelledby",
    "property": "accessibleLabelledby",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": true,
    "description": "Space-separated label IDs in the field's document or shadow root.\nTakes precedence over `accessible-label` and the visible label.",
    "inheritedFrom": "LabellingMixin",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "value",
    "property": "value",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": false,
    "default": "''",
    "description": "Current input value, normalized using the native input type's rules.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "name",
    "property": "name",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": false,
    "description": "Name used for the field's entry in `FormData`.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "type",
    "property": "type",
    "type": "\"text\" | \"url\" | \"tel\" | \"email\" | \"password\"",
    "kind": "enum",
    "values": [
      "text",
      "url",
      "tel",
      "email",
      "password"
    ],
    "optional": false,
    "default": "'text'",
    "description": "Native input type. Unsupported values fall back to `text`.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "placeholder",
    "property": "placeholder",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": false,
    "default": "''",
    "description": "Hint displayed when the field is empty. Does not replace a visible label.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "pattern",
    "property": "pattern",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": true,
    "description": "Regular expression the entire nonempty value must match to pass validation.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "inputmode",
    "property": "inputmode",
    "type": "string",
    "kind": "text",
    "values": [],
    "optional": true,
    "description": "Suggests a virtual keyboard layout without changing validation.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "maxlength",
    "property": "maxlength",
    "type": "number",
    "kind": "number",
    "values": [],
    "optional": true,
    "description": "Maximum length for user input, measured in UTF-16 code units.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "minlength",
    "property": "minlength",
    "type": "number",
    "kind": "number",
    "values": [],
    "optional": true,
    "description": "Minimum nonempty input length, measured in UTF-16 code units.\nApplies to user edits, not programmatically assigned values.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "required",
    "property": "required",
    "type": "boolean",
    "kind": "boolean",
    "values": [],
    "optional": false,
    "default": "false",
    "description": "Requires a nonempty value when the field participates in validation.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "field-status",
    "property": "fieldStatus",
    "type": "\"disabled\" | \"invalid\" | \"valid\" | \"readonly\"",
    "kind": "enum",
    "values": [
      "disabled",
      "invalid",
      "valid",
      "readonly"
    ],
    "optional": true,
    "description": "Sets one interaction or validation status. `undefined` clears authored status.\nAn eligible field with `invalid` fails validation; `valid` does not override\nnative constraints.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "label-position",
    "property": "labelPosition",
    "type": "\"top\" | \"side\"",
    "kind": "enum",
    "values": [
      "top",
      "side"
    ],
    "optional": false,
    "default": "'top'",
    "description": "Position of the visible label relative to the control.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  },
  {
    "attribute": "necessity-indicator",
    "property": "necessityIndicator",
    "type": "\"icon\" | \"label\"",
    "kind": "enum",
    "values": [
      "icon",
      "label"
    ],
    "optional": false,
    "default": "'icon'",
    "description": "Necessity marker added to a visible label. `icon` shows an asterisk only\nwhen required; `label` shows `(required)` or `(optional)`.",
    "inheritedFrom": "TextFieldBase",
    "since": "2.0.0-beta.1"
  }
]
