Forms

Password

Campo password con toggle visibilità, clear button e contatore caratteri. Supporta la stessa API di InputText con l'aggiunta del pulsante show/hide password.

Import

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

Esempio Base

Props

PropTipoDefaultDescrizione
modelValuestringValore del campo (v-model)
defaultValuestring | nullValore predefinito (modalità non controllata)
labelstring | nullLabel mostrata sopra il campo
placeholderstring | nullTesto placeholder
helperTextstring | nullTesto di aiuto sotto il campo
errorstring | nullMessaggio di errore (sovrascrive helperText)
variant'outlined' | 'filled''outlined'Variante visiva del campo
size'small' | 'medium' | 'large''medium'Dimensione del campo
severity'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'contrast' | 'help''primary'Colore focus e accenti
disabledbooleanfalseDisabilita il campo
readonlybooleanfalseCampo in sola lettura
requiredbooleanfalseCampo obbligatorio
invalidbooleanfalseStato di validazione invalido
fluidbooleanfalseOccupa tutta la larghezza disponibile
roundedbooleanfalseBordi completamente arrotondati
loadingbooleanfalseMostra indicatore di caricamento
loadingIconstringconfig globaleClasse CSS icona di caricamento
toggleMaskbooleantrueMostra pulsante per visualizzare/nascondere la password
feedbackbooleanMostra indicatore di forza password (non implementato nel renderer)
promptLabelstringLabel per campo vuoto nell'indicatore forza
weakLabelstringLabel per password debole
mediumLabelstringLabel per password media
strongLabelstringLabel per password forte
panelClassstring | nullClasse CSS del pannello feedback
panelStylestring | object | nullStile inline del pannello feedback
showClearbooleanfalseMostra pulsante per cancellare il contenuto
clearIconstringconfig globaleClasse CSS icona clear
showCharacterCounterbooleanfalseMostra contatore caratteri (richiede maxlength)
maxlengthnumberNumero massimo di caratteri
autocompletestringValore attributo autocomplete HTML
prefixIconstring | nullClasse CSS icona a sinistra del campo
suffixIconstring | nullClasse CSS icona a destra del campo (non usata se toggleMask è attivo)
inputIdstring | nullauto-generatoID dell'elemento input
inputClassstring | nullClasse CSS aggiuntiva per l'input
ariaLabelstring | nullLabel ARIA per screen reader
ariaLabelledbystring | nullID elemento che funge da label ARIA
tabindexnumber | nullOrdine di tabulazione
autofocusbooleanfalseFocus automatico al mount
namestring | nullNome del campo per form nativi

Emits

EventoPayloadDescrizione
update:modelValuestringAggiornamento v-model
input{ originalEvent: Event, value: string }Ad ogni input dell'utente
change{ originalEvent: Event, value: string }Al cambio del valore (blur)
focusFocusEventQuando il campo riceve il focus
blurFocusEventQuando il campo perde il focus
keydownKeyboardEventAlla pressione di un tasto
keyupKeyboardEventAl rilascio di un tasto
keypressKeyboardEventAlla pressione di un tasto che produce carattere
pasteClipboardEventAl paste di contenuto
clearEventQuando il contenuto viene cancellato tramite clear button

Slot

SlotScopeDescrizione
prefixContenuto personalizzato a sinistra dell'input
suffixContenuto personalizzato a destra (non visibile se toggleMask è attivo)

Esempi

Con icona personalizzata

Senza toggle visibilità

Con clear button

Form cambio password

Accessibilità

  • Il pulsante toggle visibilità ha aria-label localizzato ("Mostra password" / "Nascondi password")
  • Il pulsante toggle ha tabindex="-1" per non interferire con la navigazione da tastiera
  • L'attributo autocomplete="current-password" o "new-password" dovrebbe essere impostato esplicitamente via prop autocomplete

TypeScript

import type { PasswordProps } from '@pzeta/vue-components'

const passwordProps: PasswordProps = {
  label: 'Password',
  toggleMask: true,
  showClear: false,
  required: true,
  autocomplete: 'current-password',
}