Forms

Forms

Componenti form — input, select, date picker, toggle, upload e componenti speciali. 31 componenti totali.

Componenti

ComponenteDescrizione
InputTextCampo testo base con supporto validazione e stati
InputNumberCampo numerico con formattazione, step e limiti min/max
PasswordCampo password con toggle visibilità e indicatore forza
TextareaArea testo multiriga con auto-resize opzionale
InputMaskInput con maschera per formati fissi (telefono, CF, ecc.)
PinInputInput PIN/OTP a celle separate con navigazione automatica
InputGroupContenitore per raggruppare input con prefissi/suffissi
FloatLabelLabel flottante animata sopra il campo al focus/fill
FormLabelEtichetta semantica per campi form con supporto required
FormHelperTextTesto di supporto/errore sotto i campi form
SelectDropdown a selezione singola con ricerca opzionale
MultiSelectDropdown a selezione multipla con chip e ricerca
AutoCompleteInput con suggerimenti dinamici e ricerca asincrona
ListboxLista scrollabile con selezione singola o multipla
TreeSelectDropdown con struttura ad albero per dati gerarchici
SelectableCardCard cliccabile usabile come alternativa visiva a radio/checkbox
CheckboxCasella di spunta con stato indeterminato opzionale
RadioButtonBottone radio per selezione esclusiva in un gruppo
ToggleSwitchInterruttore on/off con animazione e label opzionale
RatingValutazione a stelle con punteggio configurabile
SliderCursore per selezione valore in un intervallo continuo
ColorPickerSelettore colore con palette, HEX, RGB e HSL
DatePickerSelettore data con calendario popup e navigazione mese/anno
TimePickerSelettore orario con formato 12h/24h e step minuti
DateTimePickerSelettore combinato data e ora in un unico componente
CalendarCalendario inline per visualizzazione e selezione date
ClockOrologio analogico interattivo per selezione orario
FileUploadUpload file con drag & drop, preview e validazione tipo/size
SignatureInputCanvas per firma digitale con export immagine
Int4RangeInputInput per intervalli interi PostgreSQL (int4range)
IntervalInputInput per durate e intervalli temporali (formato ISO 8601)

Plugin

import { FormsPlugin } from '@pzeta/vue-components'
app.use(FormsPlugin)

Attributi non dichiarati come prop

Dalla versione 1.9.0 i campi form ripartiscono gli attributi passati dall'esterno tra il wrapper e il controllo interno. Prima venivano scartati in silenzio: class e data-* sparivano dal DOM, rompendo i selettori dei test end-to-end senza alcun avviso.

AttributoDove finisce
class, styleWrapper radice del campo, fusi con le classi del componente
data-*, name, aria-* extra, listener non dichiaratiControllo interno (input, textarea, trigger del combobox, canvas)
idControllo interno, ed è l'id a cui punta la <label>
aria-describedbyControllo interno, concatenato con helper text, messaggio di errore e counter
<InputText id="codiceclient" class="flex-1" data-testid="wizard-codiceclient" />
<div class="hs-inputtext-wrapper w-full flex-1">
  <div class="relative">
    <input id="codiceclient" data-testid="wizard-codiceclient" class="hs-inputtext ..." />
  </div>
</div>

Nei campi compositi — Int4RangeInput e IntervalInput — non esiste un singolo controllo nativo, quindi gli attributi diversi da class/style finiscono sul gruppo [role="group"] che raccoglie i campi. Nei test il campo si raggiunge con [data-testid="..."] input.

Il meccanismo è fornito dal composable useSplitAttrs.

Spazio del messaggio di validazione

Tutti i campi riservano lo spazio del messaggio sotto il controllo, così la comparsa di un errore non sposta i campi sottostanti. Nelle colonne strette, dove il messaggio va a capo, si regolano le righe riservate con --hs-form-message-lines — vedi FormHelperText.

Componenti per sottocategoria

Input Base

InputText, InputNumber, Password, Textarea, InputMask, PinInput, InputGroup, FloatLabel, FormLabel, FormHelperText

Select e Dropdown

Select, MultiSelect, AutoComplete, Listbox, TreeSelect, SelectableCard

Toggle e Controlli

Checkbox, RadioButton, ToggleSwitch, Rating, Slider, ColorPicker

Date, Time e Speciali

DatePicker, TimePicker, DateTimePicker, Calendar, Clock, FileUpload, SignatureInput, Int4RangeInput, IntervalInput