{
  "definitions": {
    "events": {
      "$ref": "#/definitions/Events",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "definitions": {
        "Events": {
          "additionalProperties": false,
          "properties": {
            "setVal": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string"
                },
                "valid": {
                  "type": "boolean"
                },
                "value": {
                  "type": "string"
                }
              },
              "required": [
                "value",
                "valid",
                "id"
              ],
              "type": "object"
            }
          },
          "required": [
            "setVal"
          ],
          "type": "object"
        }
      }
    },
    "component": {
      "$ref": "#/definitions/Component",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "definitions": {
        "Component": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "is_small": {
              "description": "When `\"yes\"`, applies Bulma `select.is-small`.",
              "enum": [
                "yes",
                "no"
              ],
              "type": "string"
            },
            "schemaentry": {
              "$ref": "#/definitions/FormSchemaEntry"
            },
            "show_validation": {
              "enum": [
                "yes",
                "no"
              ],
              "type": "string"
            },
            "style": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "FormSchemaDependency": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "values": {
              "items": {
                "type": [
                  "string",
                  "number",
                  "boolean"
                ]
              },
              "type": "array"
            }
          },
          "required": [
            "id"
          ],
          "type": "object"
        },
        "FormSchemaEntry": {
          "additionalProperties": false,
          "properties": {
            "array_style": {
              "description": "For `type: \"arraytags\"` only: forwarded to `hb-input-array-tags` as the host `array_style` attribute (`\"pills\"` | `\"area\"` string). When omitted, **`hb-form` defaults to `\"area\"`**.",
              "type": "string"
            },
            "dependencies": {
              "items": {
                "$ref": "#/definitions/FormSchemaDependency"
              },
              "type": "array"
            },
            "disabled": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "params": {
              "$ref": "#/definitions/InputSelectParams"
            },
            "placeholder": {
              "type": "string"
            },
            "readonly": {
              "type": "boolean"
            },
            "required": {
              "type": "boolean"
            },
            "type": {
              "description": "Discriminator for `hb-form` rows (`row`, `text`, `number`, …). May be omitted on a standalone `schemaentry` when implied by the host tag.",
              "type": "string"
            },
            "validationRegex": {
              "type": "string"
            },
            "validationTip": {
              "type": "string"
            },
            "value": {}
          },
          "required": [
            "id"
          ],
          "type": "object"
        },
        "InputSelectOption": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "description": "Stable key for `{#each}` (see component).",
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "value"
          ],
          "type": "object"
        },
        "InputSelectParams": {
          "additionalProperties": false,
          "properties": {
            "options": {
              "items": {
                "$ref": "#/definitions/InputSelectOption"
              },
              "type": "array"
            }
          },
          "type": "object"
        }
      }
    }
  },
  "description": "Native `<select>` driven by `schemaentry`. Optional `params` as `InputSelectParams`: `options` is an array of `InputSelectOption` (`id`, `value`, optional `label`). `readonly` maps to the native `disabled` attribute on `<select>`. Host `is_small=\"yes\"` applies Bulma `select.is-small`. `show_validation` toggles `select.is-success` / `is-danger` and `validationTip` as `help is-danger`. Dispatches `setVal` on every change. Theme `--bulma-*` on `:host`. Exports `InputSelectParams`, `InputSelectOption`, `FormSchemaEntry`, `Component`, `Events` in `types/webcomponent.type.d.ts`.",
  "storybookArgs": {
    "schemaentry": {
      "control": {
        "type": "object"
      }
    },
    "show_validation": {
      "control": {
        "type": "boolean"
      }
    },
    "setVal": {
      "action": "setVal"
    }
  },
  "styleSetup": {
    "vars": [
      {
        "name": "--bulma-text",
        "valueType": "color",
        "defaultValue": "",
        "description": "Label, selected option text, and help message color."
      },
      {
        "name": "--bulma-border",
        "valueType": "color",
        "defaultValue": "",
        "description": "Select wrapper border before `is-success` / `is-danger`."
      },
      {
        "name": "--bulma-danger",
        "valueType": "color",
        "defaultValue": "",
        "description": "Invalid `select.is-danger` and `help is-danger` emphasis."
      },
      {
        "name": "--bulma-success",
        "valueType": "color",
        "defaultValue": "",
        "description": "Valid `select.is-success` when `show_validation` is on."
      },
      {
        "name": "--bulma-link",
        "valueType": "color",
        "defaultValue": "",
        "description": "Dropdown arrow / focus ring accents on the Bulma `select` control."
      },
      {
        "name": "--bulma-scheme-main",
        "valueType": "color",
        "defaultValue": "",
        "description": "Native `<select>` surface inside the shadow root."
      }
    ],
    "parts": [
      {
        "name": "invalid-feedback",
        "description": "The `p.help.is-danger` message when `show_validation` is `yes` and the required select is empty."
      }
    ]
  },
  "contributors": [],
  "htmlSlots": [],
  "i18n": [],
  "examples": [
    {
      "name": "selected1",
      "data": {
        "schemaentry": {
          "type": "select",
          "placeholder": "Select something here...",
          "id": "selectsomething",
          "required": true,
          "label": "Selection of something",
          "validationTip": "This field cannot be empty.",
          "params": {
            "options": [
              {
                "label": "",
                "value": "",
                "id": "testid"
              },
              {
                "label": "testlabel",
                "value": "testvalue",
                "id": "testid2"
              },
              {
                "label": "testlabel3",
                "value": "testvalue3",
                "id": "testid3"
              }
            ]
          },
          "value": "testvalue"
        }
      }
    },
    {
      "name": "selected2",
      "data": {
        "schemaentry": {
          "type": "select",
          "placeholder": "Select something here...",
          "id": "selectsomething",
          "required": true,
          "label": "Selection of something",
          "validationTip": "This field cannot be empty.",
          "params": {
            "options": [
              {
                "label": "",
                "value": "",
                "id": "testid"
              },
              {
                "label": "testlabel",
                "value": "testvalue",
                "id": "testid2"
              },
              {
                "label": "testlabel3",
                "value": "testvalue3",
                "id": "testid3"
              }
            ]
          },
          "value": "testvalue3"
        }
      }
    },
    {
      "name": "default",
      "data": {
        "schemaentry": {
          "type": "select",
          "placeholder": "Select something here...",
          "id": "selectsomething",
          "required": true,
          "label": "Selection of something",
          "validationTip": "This field cannot be empty.",
          "params": {
            "options": [
              {
                "label": "",
                "value": "",
                "id": "testid"
              },
              {
                "label": "testlabel",
                "value": "testvalue",
                "id": "testid2"
              },
              {
                "label": "testlabel3",
                "value": "testvalue3",
                "id": "testid3"
              }
            ]
          }
        }
      }
    },
    {
      "name": "optional",
      "description": "Select is optional; empty placeholder row remains valid.",
      "data": {
        "schemaentry": {
          "type": "select",
          "placeholder": "Pick an option (optional)…",
          "id": "optionalSelect",
          "required": false,
          "label": "Priority",
          "params": {
            "options": [
              {
                "label": "—",
                "value": "",
                "id": "empty"
              },
              {
                "label": "Low",
                "value": "low",
                "id": "low"
              },
              {
                "label": "High",
                "value": "high",
                "id": "high"
              }
            ]
          }
        }
      }
    },
    {
      "name": "disabled",
      "description": "Select is fully disabled and non-interactive.",
      "data": {
        "schemaentry": {
          "type": "select",
          "id": "selectDisabled",
          "label": "Country (locked)",
          "value": "it",
          "disabled": true,
          "params": {
            "options": [
              {
                "label": "Italy",
                "value": "it",
                "id": "it"
              },
              {
                "label": "France",
                "value": "fr",
                "id": "fr"
              },
              {
                "label": "Germany",
                "value": "de",
                "id": "de"
              }
            ]
          }
        }
      }
    }
  ],
  "iifeIntegrity": "sha384-bXTyWlPbpW1wShwrSPNCh70XqnEMXVxN0C+hDA6mOz9myvzMu2E3WmImQ6OwZiJ2",
  "dependencies": [],
  "screenshots": [],
  "licenses": [
    {
      "type": "Apache-2.0",
      "path": "LICENSE.md",
      "cost": 0,
      "currency": "EUR"
    }
  ],
  "readmePath": "README.md",
  "name": "hb-input-select",
  "category": "inputs",
  "tags": [
    "inputs"
  ],
  "size": {},
  "iifePath": "main.iife.js",
  "repoName": "@htmlbricks/hb-input-select",
  "version": "0.73.7"
}