merisia-radios
<merisia-radios>Groupe de boutons radio accessible avec structure fieldset/legend et options avec aide individuelle. Le focus des boutons radio est circulaire.
Import
import '@merisia-inc/merisia-components/radios';
Extension
Vous pouvez sous-classer ce composant pour ajouter ou redéfinir des propriétés, méthodes ou styles :
import { customElement } from 'lit/decorators.js';
import { MerisiaRadios } from '@merisia-inc/merisia-components';
@customElement('my-radios')
export class MyRadios extends MerisiaRadios {
// Ajoutez ou redéfinissez des propriétés, méthodes ou styles ici.
}
Démos
Vertical (défaut)
<merisia-radios legend="Mode de transport principal" name="transport" required></merisia-radios>
<script>
document.querySelector('merisia-radios').options = [
{ value: 'voiture', label: 'Voiture' },
{ value: 'velo', label: 'Vélo', hint: 'Recommandé pour moins de 5 km' },
{ value: 'transport', label: 'Transport en commun' },
{ value: 'marche', label: 'Marche à pied', disabled: true },
];
</script>
Avec erreur
const el = document.querySelector('merisia-radios');
el.errors = ["Veuillez sélectionner une option."];
Lecture seule
const el = document.querySelector('merisia-radios');
el.readonly = true;
Tri automatique
La propriété autosort trie les options par leur texte affiché, insensible
aux accents et à la casse.
<merisia-radios autosort legend="Mode de transport principal" name="transport-autosort"></merisia-radios>
<script>
document.querySelector('merisia-radios').options = [
{ value: 'voiture', label: 'Voiture' },
{ value: 'velo', label: 'Vélo', hint: 'Recommandé pour moins de 5 km' },
{ value: 'transport', label: 'Transport en commun' },
{ value: 'marche', label: 'Marche à pied', disabled: true },
];
</script>
Propriétés
| Propriété | Attribut | Type | Défaut | Description |
|---|---|---|---|---|
| MerisiaRadios (propres) | ||||
| options | – | RadioOption[] | [] |
Liste d'options : { value, label, hint?, disabled? } (propriété JS
uniquement)
|
| orientation | orientation | 'vertical' | 'horizontal' | 'vertical' | Disposition des boutons radio |
| autosort | autosort | boolean | false |
Active le tri automatique des options par leur texte affiché, insensible aux
accents/majuscules, selon lang
|
| sortDirection | sort-direction | 'asc' | 'desc' | 'asc' |
Ordre de tri appliqué quand autosort est actif
|
| MerisiaChoiceBase (hérités) | ||||
| legend | legend | string | '' | Texte de la légende du groupe (équivalent du libellé) |
| hint | hint | string | '' | Aide contextuelle affichée sous la légende |
| errors | – | string[] | [] | Liste de messages d'erreur (propriété JS uniquement) |
| errorPrefix | error-prefix | string | 'Erreur :' | Préfixe des messages d'erreur (i18n, visuellement masqué) |
| invalid | invalid | boolean | false |
État d'erreur (synchronisé automatiquement avec errors)
|
| MerisiaFormElement (hérités) | ||||
| name | name | string | '' | Nom du groupe dans le formulaire |
| value | value | string | '' | Valeur de l'option sélectionnée |
| required | required | boolean | false | Rend la sélection obligatoire |
| disabled | disabled | boolean | false | Désactive tout le groupe |
| MerisiaElement (hérités) | ||||
| id | id | string | auto-généré | Identifiant unique du composant |
| lang | lang | string | 'fr' | Langue pour les messages internes (i18n) |
| width | width | number | – |
Largeur maximale en caractères : max-width: calc(N ch + 1.5rem)
|