Forms

InputNumber

Campo numerico con formattazione locale, supporto valute, pulsanti stepper e gestione min/max/step. Usa Intl.NumberFormat per la formattazione.

Import

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

Esempio Base

Props

PropTipoDefaultDescrizione
modelValuenumber | nullValore del campo (v-model)
defaultValuenumber | nullValore predefinito (modalità non controllata)
labelstring | nullnullLabel mostrata sopra il campo
placeholderstring | nullnullTesto placeholder
helperTextstring | nullnullTesto di aiuto sotto il campo
errorstring | nullnullMessaggio 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
minnumber | nullnullValore minimo consentito
maxnumber | nullnullValore massimo consentito
stepnumber1Incremento per i pulsanti stepper e tasti freccia
minFractionDigitsnumber | nullnullCifre decimali minime
maxFractionDigitsnumber | nullnullCifre decimali massime
mode'decimal' | 'currency''decimal'Modalità di formattazione
currencystring'EUR'Codice valuta ISO 4217 (es: 'EUR', 'USD')
localestring'it-IT'Locale BCP 47 per formattazione (es: 'it-IT', 'en-US')
prefixstring | nullnullPrefisso custom (es: '$', '€') - solo in modalità decimal
suffixstring | nullnullSuffisso custom (es: ' kg', '%') - solo in modalità decimal
showButtonsbooleanfalseMostra pulsanti incremento/decremento
buttonLayout'stacked' | 'horizontal' | 'vertical''stacked'Layout dei pulsanti stepper
incrementButtonIconstringconfig globaleIcona pulsante incremento
decrementButtonIconstringconfig globaleIcona pulsante decremento
incrementButtonClassstring | nullnullClasse CSS aggiuntiva pulsante incremento
decrementButtonClassstring | nullnullClasse CSS aggiuntiva pulsante decremento
highlightOnFocusbooleanfalseSeleziona tutto il testo al focus
useGroupingbooleantrueUsa separatori delle migliaia
allowEmptybooleantrueConsente valore vuoto (null)
showClearbooleanfalseMostra pulsante per cancellare il valore
prefixIconstring | nullnullClasse CSS icona a sinistra del campo
suffixIconstring | nullnullClasse CSS icona a destra del campo
inputIdstring | nullauto-generatoID dell'elemento input
namestring | nullnullNome del campo per form nativi
autofocusbooleanfalseFocus automatico al mount
ariaLabelstring | nullLabel ARIA per screen reader
ariaLabelledbystring | nullID elemento che funge da label ARIA
tabindexnumber | nullOrdine di tabulazione

Emits

EventoPayloadDescrizione
update:modelValuenumber | nullAggiornamento v-model
change{ originalEvent: Event, value: number | null }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 valore viene cancellato tramite clear button

Slot

SlotScopeDescrizione
prefixContenuto personalizzato a sinistra dell'input
suffixContenuto personalizzato a destra dell'input
incrementbuttoniconIcona personalizzata per il pulsante incremento
decrementbuttoniconIcona personalizzata per il pulsante decremento

Esempi

Con range e step

Con prefix e suffix

Modalità valuta

Con pulsanti stepper

Accessibilità

  • La label è collegata all'input tramite for/id (ID auto-generato se non specificato)
  • I tasti ArrowUp/ArrowDown incrementano/decrementano il valore rispettando step, min, max
  • In focus il valore viene mostrato senza formattazione per facilitare la modifica
  • Al blur il valore viene formattato secondo locale e mode

TypeScript

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

const numberProps: InputNumberProps = {
  mode: 'currency',
  currency: 'EUR',
  locale: 'it-IT',
  min: 0,
  max: 9999,
  showButtons: true,
}