Feedback

Message

Messaggio di feedback inline con severity, varianti visive, auto-dismiss configurabile e pulsante di chiusura.

Import

import { Message } from '@pzeta/vue-components'
// oppure tramite plugin:
import { FeedbackPlugin } from '@pzeta/vue-components'
app.use(FeedbackPlugin)

Esempio Base

Props

PropTipoDefaultDescrizione
severity'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast''info'Severity che determina colore e icona
messagestring | nullnullTesto del messaggio (alternativa allo slot)
closablebooleantrueMostra il pulsante di chiusura
closeIconstringIcona del pulsante di chiusura (default dal config globale)
lifenumber | nullnullDurata in ms prima della chiusura automatica (richiede sticky: false)
stickybooleantrueSe true, ignora life e rimane visibile fino alla chiusura manuale
iconstring | nullnullIcona custom (override dell'icona determinata dalla severity)
size'small' | 'medium' | 'large''medium'Dimensione del messaggio
variant'default' | 'outlined' | 'filled' | 'borderless''default'Variante visiva

Emits

EventoPayloadDescrizione
closeEventEmesso quando l'utente chiude manualmente il messaggio
lifeEndEmesso quando scade il timer life (auto-dismiss)

Slot

SlotScopeDescrizione
defaultContenuto custom del messaggio (sostituisce la prop message)
iconclass: stringIcona custom con accesso alla classe severity

Esempi

Varianti visive

Auto-dismiss

Non closable (solo informativo)

Contenuto custom via slot

Con icona custom

Accessibilità

  • Il componente usa role="alert" per notificare automaticamente gli screen reader.
  • aria-live="assertive" per severity error, aria-live="polite" per le altre.
  • Il pulsante di chiusura ha aria-label localizzato.

TypeScript

import type { MessageProps, MessageEmits } from '@pzeta/vue-components'
import type { MessageSeverity, MessageVariant } from '@pzeta/vue-components'

// MessageSeverity = 'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast'
// MessageVariant  = 'default' | 'outlined' | 'filled' | 'borderless'