# Sélecteur

Sélection déroulante. Par défaut, le calque déroulant est monté sur body (positionnement fixe qui suit le déclencheur) ; popperContainer permet de désigner un conteneur, ou de rendre sur place en passant une valeur vide ; navigation complète au clavier (flèches directionnelles / Enter / ESC).

Sélecteur
<template>
  <div class="demo-col" style="gap: 18px">
    <div class="demo-row" style="gap: 12px; flex-wrap: wrap">
      <LhSelect v-model="value" :options="options" placeholder="Veuillez choisir un thème" clearable name="theme" />
      <LhSelect v-model="value" :options="options" size="small" />
      <LhSelect v-model="value" :options="options" size="large" />
    </div>
    <div class="demo-row" style="gap: 12px; flex-wrap: wrap">
      <LhSelect v-model="value" :options="options" disabled />
      <LhSelect v-model="empty" :options="[]" aria-label="Aucune donnée">
        <template #empty>
          <span class="demo-note">Slot empty : aucun thème correspondant</span>
        </template>
      </LhSelect>
    </div>
    <p class="demo-note">Valeur actuelle : {{ value || '(non sélectionné)' }}</p>
  </div>
</template>

<script>
export default {
  data: () => ({
    value: 'ink',
    empty: undefined,
    options: [
      { value: 'ink', label: 'Encre de Chine' },
      { value: 'paper', label: 'Papier de riz' },
      { value: 'seal', label: 'Sceau' },
      { value: 'blank', label: 'Vide' },
    ],
  }),
}
</script>

# Props

Propriété Description Type Valeur par défaut
v-model Valeur sélectionnée (correspond à option.value ; prop contrôlée modelValue) unknown —
options Liste des options { value, label, disabled? } LhSelectOption[] []
placeholder Texte du placeholder, pack de langue par défaut string t('select.placeholder')
clearable Affiche le bouton d'effacement boolean false
size Taille 'small' \| 'medium' \| 'large' 'medium'
disabled Désactivé boolean false
popperContainer Cible de montage du calque déroulant 'body' \| HTMLElement \| string 'body'
name / ariaLabel Étiquetage d'accessibilité string —
sx Raccourci de mise en page sx — —

# Events

Événement Description Paramètres de rappel
input Événement v-model —
change Déclenché lorsque la valeur sélectionnée change (value, option)
clear Déclenché lors de l'effacement —

# Slots

Slot Description
empty Contenu affiché en l'absence de données (par défaut : « Aucune donnée »)

# Accessibilité

Le déclencheur porte role="combobox" + aria-expanded/haspopup, le calque déroulant role="listbox" et les options role="option" ; placé dans un LhFormItem, le composant reçoit automatiquement aria-invalid en cas d'échec de validation.

Copyright © 2024-2026 FengMo WenXue