Forms

ToggleSwitch

Interruttore on/off con icone personalizzabili, supporto per trueValue/falseValue, varianti di dimensione e severità.

Import

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

Esempio Base

Props

PropTipoDefaultDescrizione
modelValueboolean | nullfalseValore dello switch (v-model).
defaultValueboolean | nullValore predefinito se modelValue non è fornito.
trueValuebooleantrueValore emesso quando lo switch è acceso.
falseValuebooleanfalseValore emesso quando lo switch è spento.
showIconsbooleanfalseMostra le icone on/off all'interno dell'handle dello switch.
onIconstringDa config (toggleOn)Icona CSS visualizzata quando lo switch è acceso (richiede showIcons).
offIconstringDa config (toggleOff)Icona CSS visualizzata quando lo switch è spento (richiede showIcons).
labelstringnullEtichetta visualizzata sopra lo switch.
helperTextstringnullTesto di aiuto visualizzato accanto allo switch.
errorstringnullMessaggio di errore; attiva lo stato di errore visivo.
size'small' | 'medium' | 'large''medium'Dimensione dello switch.
severity'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'help' | 'contrast''primary'Colore/severità visiva quando lo switch è acceso.
variant'default' | 'outlined' | 'filled''default'Variante stilistica dello switch.
disabledbooleanfalseDisabilita il componente.
loadingbooleanfalseMostra il loading spinner all'interno dell'handle.
loadingIconstringDa configIcona personalizzata per il loading.
requiredbooleanfalseMarca il campo come obbligatorio.
namestringnullAttributo name del campo (per form HTML).
inputIdstringnullID dell'input nascosto (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:modelValuebooleanEmesso al cambio valore (per v-model).
change{ originalEvent: Event; value: boolean }Emesso al cambio con l'evento originale e il nuovo valore.
focusFocusEventEmesso quando il componente riceve il focus.
blurFocusEventEmesso quando il componente perde il focus.
keydownKeyboardEventEmesso ad ogni pressione di tasto (Spazio/Enter attivano il toggle).

Slot

SlotScopeDescrizione
handle{ checked: boolean }Contenuto personalizzato all'interno dell'handle dello switch. Sostituisce loading spinner e icone.

Esempi

Con Icone

Con Helper Text

Severità

Dimensioni

Handle Personalizzato tramite Slot

Stato Disabilitato e Loading

Accessibilità

  • Lo switch è implementato come <button type="button"> con navigazione da tastiera nativa.
  • Spazio e Invio attivano il toggle da tastiera.
  • L'input <input type="checkbox"> nascosto (sr-only) garantisce compatibilità con form HTML e screen reader.
  • inputId associa l'input a una label esterna.
  • Il prop required aggiunge * visivo per l'utente.

TypeScript

import type { ToggleSwitchProps, ToggleSwitchEmits } from '@pzeta/vue-components'