[
  {
    "name": "id",
    "type": "string",
    "required": true,
    "description": "This is used for the main component and to compose the `id` attribute for each item.",
    "released": "1.0.0"
  },
  {
    "name": "namePrefix",
    "type": "string",
    "required": false,
    "description": "Optional prefix. This is used to prefix each date input `name` attribute, wrapped in `[` and `]`. For example, setting `namePrefix: \"dob\"` will output the `name` attributes `dob[day]`, `dob[month]` and `dob[year]` respectively.",
    "released": "1.0.0"
  },
  {
    "name": "items",
    "type": "array",
    "required": false,
    "description": "The inputs within the date input component. The `input.errorMessage` and `input.hint` options are not supported.",
    "alias": "input",
    "released": "1.0.0",
    "isComponent": true,
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Item-specific `name` attribute. Defaults to `\"day\"`, `\"month\"` or `\"year\"`.",
        "released": "1.0.0"
      },
      {
        "name": "label",
        "type": "object",
        "required": false,
        "description": "Item-specific label. The `label.size` and `label.isPageHeading` options are not supported. Defaults to the `name` option capitalised.",
        "released": "10.5.0",
        "isComponent": true
      },
      {
        "name": "error",
        "type": "boolean",
        "required": false,
        "description": "If set to `true`, show a red border on the item input.",
        "released": "10.4.0"
      }
    ]
  },
  {
    "name": "hint",
    "type": "object",
    "required": false,
    "description": "Can be used to add a hint to the date input component.",
    "released": "1.0.0",
    "isComponent": true
  },
  {
    "name": "errorMessage",
    "type": "object",
    "required": false,
    "description": "Can be used to add an error message to the date input component. The error message component will not display if you use a falsy value for `errorMessage`, for example `false` or `null`.",
    "released": "1.0.0",
    "isComponent": true
  },
  {
    "name": "formGroup",
    "type": "object",
    "required": false,
    "description": "Additional options for the form group containing the date input component.",
    "released": "1.0.0",
    "params": [
      {
        "name": "classes",
        "type": "string",
        "required": false,
        "description": "Classes to add to the form group (for example to show error state for the whole group).",
        "released": "1.0.0"
      },
      {
        "name": "attributes",
        "type": "object",
        "required": false,
        "description": "HTML attributes (for example data attributes) to add to the form group.",
        "released": "10.0.0"
      },
      {
        "name": "beforeInputs",
        "type": "object",
        "required": false,
        "description": "Content to add before the inputs used by the date input component.",
        "released": "10.1.0",
        "params": [
          {
            "name": "text",
            "type": "string",
            "required": true,
            "description": "Text to add before the inputs. If `html` is provided, the `text` option will be ignored.",
            "released": "10.1.0"
          },
          {
            "name": "html",
            "type": "string",
            "required": true,
            "description": "HTML to add before the inputs. If `html` is provided, the `text` option will be ignored.",
            "released": "10.1.0"
          }
        ]
      },
      {
        "name": "afterInputs",
        "type": "object",
        "required": false,
        "description": "Content to add after the inputs used by the date input component.",
        "released": "10.1.0",
        "params": [
          {
            "name": "text",
            "type": "string",
            "required": true,
            "description": "Text to add after the inputs. If `html` is provided, the `text` option will be ignored.",
            "released": "10.1.0"
          },
          {
            "name": "html",
            "type": "string",
            "required": true,
            "description": "HTML to add after the inputs. If `html` is provided, the `text` option will be ignored.",
            "released": "10.1.0"
          }
        ]
      }
    ]
  },
  {
    "name": "fieldset",
    "type": "object",
    "required": false,
    "description": "Can be used to add a fieldset to the date input component. The `fieldset.html` option is not supported.",
    "released": "1.0.0",
    "isComponent": true
  },
  {
    "name": "day",
    "type": "object",
    "required": false,
    "description": "Can be used to customise the day input within the date input component. The `input.formGroup` and `input.inputWrapper` options are not supported.",
    "alias": "input",
    "released": "10.5.0",
    "isComponent": true,
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": "The `name` attribute for the day input. Defaults to `\"day\"`.",
        "released": "10.5.0"
      },
      {
        "name": "value",
        "type": "string",
        "required": false,
        "description": "The `value` attribute for the day input.",
        "released": "10.5.0"
      },
      {
        "name": "label",
        "type": "object",
        "required": false,
        "description": "The label used by the day input. The `label.size` and `label.isPageHeading` options are not supported. Defaults to the `name` option capitalised.",
        "released": "10.5.0",
        "isComponent": true
      },
      {
        "name": "error",
        "type": "boolean",
        "required": false,
        "description": "If set to `true`, show a red border on the day input.",
        "released": "10.5.0"
      }
    ]
  },
  {
    "name": "month",
    "type": "object",
    "required": false,
    "description": "Can be used to customise the month input within the date input component. The `input.formGroup` and `input.inputWrapper` options are not supported.",
    "alias": "input",
    "released": "10.5.0",
    "isComponent": true,
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": "The `name` attribute for the month input. Defaults to `\"month\"`.",
        "released": "10.5.0"
      },
      {
        "name": "value",
        "type": "string",
        "required": false,
        "description": "The `value` attribute for the month input.",
        "released": "10.5.0"
      },
      {
        "name": "label",
        "type": "object",
        "required": false,
        "description": "The label used by the month input. The `label.size` and `label.isPageHeading` options are not supported. Defaults to the `name` option capitalised.",
        "released": "10.5.0",
        "isComponent": true
      },
      {
        "name": "error",
        "type": "boolean",
        "required": false,
        "description": "If set to `true`, show a red border on the month input.",
        "released": "10.5.0"
      }
    ]
  },
  {
    "name": "year",
    "type": "object",
    "required": false,
    "description": "Can be used to customise the year input within the date input component. The `input.formGroup` and `input.inputWrapper` options are not supported.",
    "alias": "input",
    "released": "10.5.0",
    "isComponent": true,
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": "The `name` attribute for the year input. Defaults to `\"year\"`.",
        "released": "10.5.0"
      },
      {
        "name": "value",
        "type": "string",
        "required": false,
        "description": "The `value` attribute for the year input.",
        "released": "10.5.0"
      },
      {
        "name": "label",
        "type": "object",
        "required": false,
        "description": "The label used by the year input. The `label.size` and `label.isPageHeading` options are not supported. Defaults to the `name` option capitalised.",
        "released": "10.5.0",
        "isComponent": true
      },
      {
        "name": "error",
        "type": "boolean",
        "required": false,
        "description": "If set to `true`, show a red border on the year input.",
        "released": "10.5.0"
      }
    ]
  },
  {
    "name": "values",
    "type": "object",
    "required": false,
    "description": "An optional object used to specify `value` attributes for the inputs within the date input component without setting `items`.",
    "released": "9.0.0",
    "params": [
      {
        "name": "day",
        "type": "string",
        "required": false,
        "description": "The `value` attribute for the day input.",
        "released": "9.0.0"
      },
      {
        "name": "month",
        "type": "string",
        "required": false,
        "description": "The `value` attribute for the month input.",
        "released": "9.0.0"
      },
      {
        "name": "year",
        "type": "string",
        "required": false,
        "description": "The `value` attribute for the year input.",
        "released": "9.0.0"
      }
    ]
  },
  {
    "name": "disabled",
    "type": "boolean",
    "required": false,
    "description": "If `true`, inputs used by the date input component will be disabled.",
    "released": "10.5.0"
  },
  {
    "name": "classes",
    "type": "string",
    "required": false,
    "description": "Classes to add to the date input container.",
    "released": "1.0.0"
  },
  {
    "name": "inputWrapper",
    "type": "object",
    "required": false,
    "description": "Additional options for the wrapping element containing the date input component.",
    "released": "10.5.0",
    "params": [
      {
        "name": "classes",
        "type": "string",
        "required": false,
        "description": "Classes to add to the wrapping element.",
        "released": "10.5.0"
      },
      {
        "name": "attributes",
        "type": "object",
        "required": false,
        "description": "HTML attributes (for example data attributes) to add to the wrapping element.",
        "released": "10.5.0"
      }
    ]
  },
  {
    "name": "attributes",
    "type": "object",
    "required": false,
    "description": "HTML attributes (for example data attributes) to add to the date input container.",
    "released": "1.0.0"
  }
]
