Layout

Stepper

Wizard multi-step composto da cinque sub-componenti (Stepper, StepList, Step, StepPanels, StepPanel). Supporta modalità lineare (blocca l'avanzamento), orientamento orizzontale/verticale e tracciamento completamento automatico.

Import

import { Stepper, StepList, Step, StepPanels, StepPanel } from '@pzeta/vue-components'

Esempio Base


Stepper (root)

Props

PropTipoDefaultDescrizione
modelValuestring | numberStep corrente (v-model)
valuestring | number''Alias di modelValue
linearbooleanfalseModalità lineare: blocca il click diretto sugli step non raggiunti
orientation'horizontal' | 'vertical''horizontal'Orientamento del wizard
severitySeverityundefinedColore dell'indicatore step
size'small' | 'medium' | 'large''medium'Dimensione degli indicatori

Emits

EventoPayloadDescrizione
update:modelValuestring | numberAggiornamento del v-model
update:valuestring | numberAlias per compatibilità
stepChange{ previousValue: string | number; currentValue: string | number }Emesso al cambio di step

Metodi esposti (defineExpose)

MetodoFirmaDescrizione
selectStep(value: string | number) => voidNaviga a uno step specifico
completeStep(value: string | number) => voidMarca uno step come completato
uncompleteStep(value: string | number) => voidRimuove il completamento da uno step
resetCompleted() => voidAzzera tutti gli step completati
isStepCompleted(value: string | number) => booleanVerifica se uno step è completato

StepList

Container per la lista degli step.

Props

PropTipoDefaultDescrizione
orientation'horizontal' | 'vertical''horizontal'Orientamento (eredita da Stepper)

Step

Singolo elemento step con indicatore visivo, label e connettore.

Props

PropTipoDefaultDescrizione
valuestring | numberIdentificatore univoco dello step
labelstringEtichetta dello step
descriptionstringDescrizione sotto la label
iconstringIcona nell'indicatore (classe CSS)
disabledbooleanfalseDisabilita il click sullo step
showConnectorbooleantrueMostra la linea connettore prima dell'indicatore
asstring | nullnullTag HTML da renderizzare
asChildbooleanfalseModalità headless

Emits

EventoPayloadDescrizione
clickMouseEventClick sullo step

Slot

SlotScopeDescrizione
defaultContenuto personalizzato dell'indicatore (numero, testo)
indicator{ isActive, isCompleted }Sovrascrive l'indicatore visivo

StepPanels

Container per i pannelli di contenuto.

Props

PropTipoDefaultDescrizione
orientation'horizontal' | 'vertical''horizontal'Orientamento

StepPanel

Contenuto associato a uno step.

Props

PropTipoDefaultDescrizione
valuestring | numberValore corrispondente allo Step
asstring | nullnullTag HTML del wrapper
asChildbooleanfalseModalità headless

Slot

SlotScopeDescrizione
defaultContenuto del pannello

Esempi

Stepper lineare orizzontale con navigazione

Stepper verticale non lineare

Accessibilità

  • StepList usa role="tablist"
  • Ogni Step ha role="tab", aria-selected, aria-current="step" quando attivo e aria-disabled quando disabilitato
  • Ogni StepPanel ha role="tabpanel" e aria-hidden
  • In modalità lineare, il click su step non raggiunti è bloccato a livello logico

TypeScript

import type {
  StepperProps,
  StepperEmits,
  StepProps,
  StepEmits,
  StepPanelProps,
  StepListProps,
  StepPanelsProps,
  StepperOrientation,
} from '@pzeta/vue-components'