Forme DS

Composants

RadioGroup

Le choix exclusif dans une liste. RadioGroup enrobe le RadioList d'Astryx ; chaque option est un <Radio> déclaratif (il ne rend rien seul, il est lu par le groupe et mappé en RadioListItem).

<Radio> est un composant déclaratif : il s'utilise uniquement comme enfant de RadioGroup.
import { RadioGroup, Radio } from "@forme-ch/ui/controls";

const [mode, setMode] = useState("std");

<RadioGroup label="Mode de livraison" value={mode} onChange={setMode}>
  <Radio value="std">Standard</Radio>
  <Radio value="exp" description="Livraison sous 24h, supplément CHF 12.–">Express</Radio>
  <Radio value="retrait" description="Au dépôt de Lausanne">Retrait sur place</Radio>
</RadioGroup>

Groupe désactivé

<RadioGroup label="Groupe désactivé" defaultValue="a" isDisabled>
  <Radio value="a">Option A</Radio>
  <Radio value="b">Option B</Radio>
</RadioGroup>

Props — RadioGroup

PropTypeDéfautDescription
children ReactNode — Les <Radio> du groupe.
value string — Mode contrôlé (valeur sélectionnée).
defaultValue string — Mode non-contrôlé (sélection initiale).
onChange (value: string) => void — Callback à la sélection.
label ReactNode — Libellé visible du groupe.
ariaLabel string — Nom accessible si aucun label visible (repli littéral « Choix »).
name string — Nom du champ dans un <form>.
isDisabled boolean — Désactive tout le groupe.

Props — Radio

PropTypeDéfautDescription
value * string — Valeur de l'option.
children ReactNode — Libellé (voie RAC).
label string — Libellé explicite, prioritaire sur children.
description string — Texte descriptif sous le libellé.

Accessibilité

Le groupe porte un nom accessible via label (visible) ou ariaLabel (repli littéral « Choix »). La navigation clavier entre options (flèches) et la sémantique radiogroup sont gérées nativement par Astryx. Le libellé de chaque option vient de label puis de children.

Do & Don't

✓ À faire

Un label de groupe explicite. Une description pour clarifier une option.

✕ À éviter

Rendre un <Radio> hors d'un RadioGroup. Utiliser des radios pour plus de sept options — préférer FormeSelect.