
# Champs de sélection

Quatre types de champs permettent aux enregistrements de choisir parmi des options prédéfinies. Tous partagent les [propriétés de base des champs](/fr/docs/tables-overview#proprietes-de-base-des-champs).

| Type            | Stocke                                                                          |
| --------------- | ------------------------------------------------------------------------------- |
| `checkbox`      | Une valeur booléenne vrai/faux.                                                 |
| `single-select` | Une option choisie dans une liste prédéfinie.                                   |
| `multi-select`  | Plusieurs options choisies dans une liste prédéfinie.                           |
| `status`        | Un état de workflow coloré, choisi dans une liste d'options `{ value, color }`. |

## `checkbox`

Champ booléen, généralement rendu sous forme de case à cocher.

| Propriété | Description                                     |
| --------- | ----------------------------------------------- |
| `default` | Valeur booléenne par défaut (`true` / `false`). |

```yaml
- { id: 1, name: is_active, type: checkbox, required: true, default: false }
```

## `single-select`

Un choix unique dans une liste d'options de type chaîne.

| Propriété    | Description                                                                                                                                                                                                          |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `options`    | Tableau de chaînes définissant les choix disponibles.                                                                                                                                                                |
| `default`    | Option sélectionnée par défaut (une chaîne).                                                                                                                                                                         |
| `conditions` | Conditions comportementales optionnelles : `[{ when: <option>, then: { …changements de propriétés } }]` — applique des changements de propriétés (par ex. `readOnly`) lorsqu'une option spécifique est sélectionnée. |

```yaml
- id: 2
  name: category
  type: single-select
  options: [Electronics, Clothing, Food]
  default: Electronics
```

## `multi-select`

Plusieurs choix dans une liste d'options de type chaîne.

| Propriété       | Description                                                               |
| --------------- | ------------------------------------------------------------------------- |
| `options`       | Tableau de chaînes définissant les choix disponibles.                     |
| `maxSelections` | Nombre maximal de choix (entier ≥ 1 ; ne peut dépasser `options.length`). |
| `default`       | Sélections par défaut (un tableau de chaînes).                            |

```yaml
- id: 3
  name: tags
  type: multi-select
  options: [Urgent, Important, Review]
  maxSelections: 3
```

## `status`

Un état de workflow coloré. Chaque option est un objet avec un `value` et un `color`, idéal pour les colonnes Kanban et les étapes de pipeline.

| Propriété | Description                                                                          |
| --------- | ------------------------------------------------------------------------------------ |
| `options` | Tableau d'objets `{ value, color }` définissant les états colorés.                   |
| `default` | Valeur de statut par défaut (une chaîne correspondant à l'une des valeurs d'option). |

```yaml
- id: 4
  name: status
  type: status
  options:
    - { value: todo, color: '#94A3B8' }
    - { value: in_progress, color: '#3B82F6' }
    - { value: done, color: '#10B981' }
  default: todo
```

:::callout
**Single-select vs status.** Utilisez `single-select` pour de simples valeurs énumérées (`options` de type chaîne). Utilisez `status` lorsque chaque état nécessite une couleur pour des affichages de workflow visuels tels que les tableaux Kanban.
:::
