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
modelValuestring—Valore del campo (v-model)
defaultValuestring | null—Valore predefinito (modalità non controllata)
labelstring | null—Label mostrata sopra il campo
placeholderstring | null—Testo placeholder
helperTextstring | null—Testo di aiuto sotto il campo
errorstring | null—Messaggio 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
feedbackboolean—Mostra indicatore di forza password (non implementato nel renderer)
promptLabelstring—Label per campo vuoto nell'indicatore forza
weakLabelstring—Label per password debole
mediumLabelstring—Label per password media
strongLabelstring—Label per password forte
panelClassstring | null—Classe CSS del pannello feedback
panelStylestring | object | null—Stile inline del pannello feedback
showClearbooleanfalseMostra pulsante per cancellare il contenuto
clearIconstringconfig globaleClasse CSS icona clear
showCharacterCounterbooleanfalseMostra contatore caratteri (richiede maxlength)
maxlengthnumber—Numero massimo di caratteri
autocompletestring—Valore attributo autocomplete HTML
prefixIconstring | null—Classe CSS icona a sinistra del campo
suffixIconstring | null—Classe CSS icona a destra del campo (non usata se toggleMask è attivo)
inputIdstring | nullauto-generatoID dell'elemento input
inputClassstring | null—Classe CSS aggiuntiva per l'input
ariaLabelstring | null—Label ARIA per screen reader
ariaLabelledbystring | null—ID elemento che funge da label ARIA
tabindexnumber | null—Ordine di tabulazione
autofocusbooleanfalseFocus automatico al mount
namestring | null—Nome 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
prefix—Contenuto personalizzato a sinistra dell'input
suffix—Contenuto 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',
}