{
  "version": "experimental",
  "tags": [
    {
      "name": "ef-combo-box",
      "description": "Combines a popup with a filterable selection list",
      "attributes": [
        {
          "name": "multiple",
          "description": "Multiple selection mode",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "opened",
          "description": "Track opened state of popup",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "free-text",
          "description": "Allow to enter any value",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "error",
          "description": "Set error state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "warning",
          "description": "Set warning state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "query-debounce-rate",
          "description": "Control query rate in milliseconds",
          "type": "number",
          "default": "\"0\""
        },
        {
          "name": "value",
          "description": "Returns the first selected item value.\nUse `values` when multiple selection mode is enabled.",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "readonly",
          "description": "Set readonly state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "disabled",
          "description": "Set disabled state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "placeholder",
          "description": "Set placeholder text",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "clears",
          "description": "Show clears button",
          "type": "boolean",
          "default": "false"
        }
      ],
      "properties": [
        {
          "name": "filter",
          "description": "Custom filter for static data\nSet this to null when data is filtered externally, eg XHR",
          "type": "ComboBoxFilter<T> | null",
          "default": "\"createDefaultFilter<T>(this)\""
        },
        {
          "name": "renderer",
          "description": "Renderer used to render list item elements",
          "default": "\"createComboBoxRenderer<T>(this)\""
        },
        {
          "name": "multiple",
          "attribute": "multiple",
          "description": "Multiple selection mode",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "opened",
          "attribute": "opened",
          "description": "Track opened state of popup",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "freeText",
          "attribute": "free-text",
          "description": "Allow to enter any value",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "error",
          "attribute": "error",
          "description": "Set error state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "warning",
          "attribute": "warning",
          "description": "Set warning state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "queryDebounceRate",
          "attribute": "query-debounce-rate",
          "description": "Control query rate in milliseconds",
          "type": "number",
          "default": "\"0\""
        },
        {
          "name": "data",
          "description": "Data array to be displayed",
          "type": "ComboBoxData<T>",
          "default": "[]"
        },
        {
          "name": "value",
          "attribute": "value",
          "description": "Returns the first selected item value.\nUse `values` when multiple selection mode is enabled.",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "values",
          "description": "Returns a values collection of the currently\nselected item values",
          "type": "string[]",
          "default": "[]"
        },
        {
          "name": "query",
          "description": "Query string applied to combo-box\nSet via internal input",
          "type": "string | null"
        },
        {
          "name": "label (readonly)",
          "description": "Label of selected value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "readonly",
          "attribute": "readonly",
          "description": "Set readonly state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "disabled",
          "attribute": "disabled",
          "description": "Set disabled state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "placeholder",
          "attribute": "placeholder",
          "description": "Set placeholder text",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "clears",
          "attribute": "clears",
          "description": "Show clears button",
          "type": "boolean",
          "default": "false"
        }
      ],
      "events": [
        {
          "name": "value-changed",
          "description": "Fired when the user commits a value change. The event is not triggered if `value` property is changed programmatically."
        },
        {
          "name": "query-changed",
          "description": "Fired when the user changes value in the input to change a query word. If `query-debounce-rate` is set, this event will be triggered after debounce completion. The event is not triggered if `query` property is changed programmatically."
        },
        {
          "name": "opened-changed",
          "description": "Fired when the user opens or closes control's popup. The event is not triggered if `opened` property is changed programmatically."
        }
      ]
    }
  ]
}