Forms

RadioButton

Pulsante radio per selezione esclusiva all'interno di un gruppo, con supporto v-model condiviso, varianti stilistiche e stati di caricamento.

Import

import { RadioButton } from '@pzeta/vue-components'

Esempio Base

Props

PropTipoDefaultDescrizione
modelValueunknownundefinedValore del gruppo radio (v-model condiviso tra tutti i radio del gruppo).
valueunknownObbligatorio. Valore univoco del singolo radio. Viene emesso quando il radio viene selezionato.
defaultValueunknown | nullValore predefinito se modelValue non è fornito.
labelstringundefinedEtichetta visualizzata accanto al radio.
helperTextstringundefinedTesto di aiuto visualizzato sotto il label.
errorstringundefinedMessaggio di errore; attiva lo stato di errore visivo.
size'small' | 'medium' | 'large''medium'Dimensione del radio button.
severity'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'help' | 'contrast''primary'Colore/severità visiva.
variant'default' | 'outlined' | 'filled''default'Variante stilistica del radio button.
disabledbooleanfalseDisabilita il componente.
readonlybooleanfalseRende il componente non modificabile.
loadingbooleanfalseMostra il loading spinner.
loadingIconstringDa configIcona personalizzata per il loading.
requiredbooleanfalseMarca il campo come obbligatorio.
namestringnullAttributo name per raggruppare i radio in un form HTML.
inputIdstringnullID dell'input (per associazione a label).
inputClassstring | objectClasse CSS aggiuntiva sull'input.
inputStylestring | objectStyle inline sull'input.
ariaLabelstringLabel accessibile per screen reader.
ariaLabelledbystringRiferimento a elemento label esterno.
tabindexnumberIndice tab per navigazione da tastiera.
autofocusbooleanFocus automatico al mount.

Emits

EventoPayloadDescrizione
update:modelValueunknownEmesso quando il radio viene selezionato (emette il value del radio).
change{ originalEvent: Event; value: unknown }Emesso al cambio con l'evento originale e il valore selezionato.
focusFocusEventEmesso quando il componente riceve il focus.
blurFocusEventEmesso quando il componente perde il focus.

Slot

Il componente RadioButton non espone slot personalizzabili. Il label è definito tramite il prop label.

Esempi

Pattern Gruppo Radio (v-model Condiviso)

Il meccanismo di gruppo si realizza condividendo lo stesso v-model tra più RadioButton. Quando l'utente seleziona un radio, modelValue viene aggiornato con il value del radio selezionato; gli altri si deselezionano automaticamente.

Gruppi Indipendenti

Con Helper Text

Severità e Varianti

Accessibilità

  • L'input <input type="radio"> è nascosto visivamente (sr-only) ma accessibile agli screen reader.
  • Usare il prop name per raggruppare i radio a livello di form HTML (navigazione da tastiera).
  • inputId associa il radio a un <label> esterno.
  • ariaLabel e ariaLabelledby forniscono descrizioni accessibili aggiuntive.
  • Quando required è true, viene aggiunta * visivamente e un testo (obbligatorio) per screen reader.

TypeScript

import type { RadioButtonProps, RadioButtonEmits } from '@pzeta/vue-components'