---
url: /documentation/input-types/select.md
description: >-
  Configure dropdown select inputs with option arrays and isEmpty or equals
  conditions for visibility.
---

# Select Input

Basic HTML select input.

```js
{
  input: {
    type: 'select', // [!code focus:6]
    options: [
      { value: 'opt1', label: 'Option 1' },
      { value: 'opt2', label: 'Option 2' },
      { value: 'opt3', label: 'Option 3' }
    ]
  }
}
```

## Input Options

| Option | Values | Default | Description |
| - | - | - | - |
| `options` | `Option[]` | `null` | Select options as an array of objects containing value and label keys. |

with

```ts
interface Option {
  /**
   * The value returned if the option is selected
   */
  value: string

  /**
   * The human readable name of the option
   */
  label: string

  /**
   * Additional information about the option
   */
  description?: string

  /**
   * Whether the option is preselected if no choice has been made
   * 
   * @deprecated Use the property definition's `defaultValue` instead
   */
  selected?: boolean
}
```

## Conditions

The `select` input type supports the following conditions for [dynamic visibility](/documentation/concepts/elements/definition#dynamic-visibility):

| Condition | Payload | Description |
| - | - | - |
| `isEmpty` | `boolean`defaults to `true` | Checks whether an item has been selected or not. |
| `equals` | `string` | Checks whether the selected value equals the `payload` string. |
