{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://schema.mydesignsystem.com/search-modal.schema.json",
  "title": "Search Modal",
  "description": "Search modal component for displaying a search interface in a modal dialog.",
  "type": "object",
  "properties": {
    "headline": {
      "type": "string",
      "default": "Search"
    },
    "closeAriaLabel": {
      "type": "string",
      "default": "close"
    },
    "form": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "http://schema.mydesignsystem.com/search-form.schema.json",
      "title": "Search Form",
      "description": "Search form component for submitting search queries and displaying search results.",
      "type": "object",
      "properties": {
        "component": {
          "type": "string",
          "description": "ks-component attribute",
          "default": "dsa.search-form"
        },
        "result": {
          "type": "object",
          "properties": {
            "maxSubresults": {
              "type": "number",
              "description": "Max number of subresults of a single search result"
            },
            "showLink": {
              "title": "Show Link",
              "type": "boolean",
              "description": "Whether to display the link to the search result.",
              "default": true
            },
            "imageColSize": {
              "title": "Image Row Size",
              "type": "string",
              "description": "The reserved space of the image row.",
              "default": "small",
              "enum": [
                "none",
                "small",
                "large"
              ]
            }
          },
          "additionalProperties": false
        },
        "resultPerPage": {
          "type": "number",
          "default": 10
        },
        "moreButtonLabel": {
          "type": "string",
          "default": "View all results"
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "headline",
    "closeAriaLabel"
  ],
  "additionalProperties": false
}