ProgressStepper
BetaRSC-safeIndicateur d'étapes multi-step (ex. wizard fiscal, flux /import). Étapes done / active / pending via tokens sémantiques. Clamp hors-bornes confirmé (current'<'0 → première étape, current≥length → dernière), aucune exception. RSC-safe.
import { ProgressStepper } from "@lyra/tokens/components";Playground
current=2 — étape 3/5 active (nominal)
- Revenus (terminée)
- Déductions (terminée)
- REER / CELI
- Crédits
- Résultat
current=-1 (hors-bornes bas) — clampé → étape 0 active
- Revenus
- Déductions
- REER / CELI
- Crédits
- Résultat
current=99 (hors-bornes haut) — clampé → dernière étape active
- Revenus (terminée)
- Déductions (terminée)
- REER / CELI (terminée)
- Crédits (terminée)
- Résultat
Démo interactive — réglages du playground (props ajustables en direct) à venir.
<ProgressStepper
steps={[{ label: "Revenus" }, { label: "Déductions" }, { label: "Résultat" }]}
current={1}
/>
// Hors-bornes — clampé sans exception :
<ProgressStepper steps={steps} current={-1} /> // → étape 0 active
<ProgressStepper steps={steps} current={99} /> // → dernière étape activeDocumentation
- étape 3/5 active
- Revenus (terminée)
- Déductions (terminée)
- REER / CELI
- Crédits
- Résultat
- clamp current=-1
- Revenus
- Déductions
- REER / CELI
- Crédits
- Résultat
- clamp current=99
- Revenus (terminée)
- Déductions (terminée)
- REER / CELI (terminée)
- Crédits (terminée)
- Résultat
steps, current<ProgressStepper
steps={[{ label: "Revenus" }, { label: "Déductions" }, { label: "Résultat" }]}
current={1}
/>
// Hors-bornes — clampé sans exception :
<ProgressStepper steps={steps} current={-1} /> // → étape 0 active
<ProgressStepper steps={steps} current={99} /> // → dernière étape active- '<'ol'>' sémantique — liste ordonnée d'étapes.
- aria-current='step' uniquement sur l'étape active (WCAG 4.1.2).
- État done/active/pending porté par couleur ET icône/numéro/texte — WCAG 1.4.1 (pas couleur seule).
- Touch-target ≥ 44px par étape (maquette d'origine ~40px, corrigée ici — WCAG 2.5.5).
- RSC-safe : aucune dépendance client, aucun hook.