80 lines
1.9 KiB
Markdown

---
title: select
label: Select
---
The select widget allows you to pick a string value from a dropdown menu.
* **Name:** `select`
* **UI:** select input
* **Data type:** string or array
* **Options:**
* `default`: `options` must contain any default values
* string values: accepts a string; defaults to an empty string. Accepts an array of strings and defaults to an empty array with `multiple: true` enabled.
* object with `label` and `value` fields: accepts an object with `label` and `value` field or an array of such objects when `multiple: true` is enable. Defaults to no value
* `options`: (**required**) there are two ways to list of options for the dropdown menu:
* string values: the dropdown displays the value directly
* object with `label` and `value` fields: the label displays in the dropdown; the value saves in the file
* `multiple`: accepts a boolean; defaults to `false`
* `min`: minimum number of items; ignored if **multiple** is `false`
* `max`: maximum number of items; ignored if **multiple** is `false`
* **Example** (options as strings):
```yaml
- label: "Align Content"
name: "align"
widget: "select"
options: ["left", "center", "right"]
```
Selecting the `center` option, will save the value as:
```yaml
align: "center"
```
* **Example** (options as objects):
```yaml
- label: "City"
name: "airport-code"
widget: "select"
options:
- { label: "Chicago", value: "ORD" }
- { label: "Paris", value: "CDG" }
- { label: "Tokyo", value: "HND" }
```
Selecting the `Chicago` option, will save the value as:
```yaml
airport-code: "ORD"
```
* **Example** (multiple):
```yaml
- label: "Tags"
name: "tags"
widget: "select"
multiple: true
options: ["Design", "UX", "Dev"]
default: ["Design"]
```
* **Example** (min/max):
```yaml
- label: "Tags"
name: "tags"
widget: "select"
multiple: true
min: 1
max: 3
options: ["Design", "UX", "Dev"]
default: ["Design"]
```