{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://schema.mydesignsystem.com/checkbox-group.schema.json",
  "title": "Checkbox Group",
  "description": "Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.",
  "type": "object",
  "properties": {
    "label": {
      "title": "Label",
      "description": "The label for the element",
      "type": "string",
      "examples": [
        "Est dolore a debitis"
      ]
    },
    "name": {
      "title": "Name",
      "description": "The name of the input element, used when submitting an HTML form",
      "type": "string"
    },
    "invalid": {
      "title": "Invalid",
      "description": "Wheter the input is invalid",
      "type": "boolean"
    },
    "invalidMessage": {
      "title": "Invalid message",
      "description": "Message to show if the input is invalid",
      "type": "string"
    },
    "options": {
      "title": "Options",
      "type": "array",
      "items": {
        "title": "Checkbox",
        "description": "Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.",
        "type": "object",
        "properties": {
          "label": {
            "title": "Label",
            "description": "The label for the element",
            "type": "string",
            "examples": [
              "Est dolore a debitis"
            ]
          },
          "disabled": {
            "title": "Disabled",
            "description": "Whether the input is disabled",
            "type": "boolean",
            "default": false
          },
          "hint": {
            "title": "Hint message",
            "description": "Help text that gives more context about what a user needs to input",
            "type": "string"
          }
        },
        "required": [
          "label"
        ],
        "additionalProperties": false
      }
    },
    "className": {
      "title": "Class",
      "description": "Additional css classes attached to the input element",
      "type": "string"
    }
  },
  "required": [
    "label"
  ],
  "additionalProperties": false
}