Componenti

Base

Widget di utility base — placeholder, loading, metriche e bottoni di selezione.

I widget base sono primitive riutilizzabili dentro o fuori la dashboard. Non estendono BaseWidgetProps (a parte dove specificato), e possono essere importati direttamente.

EmptyWidget

Placeholder per stato vuoto o assenza dati. Usa EmptyState di @pzeta/vue-components internamente.

PropTipoDescrizione
iconstringClasse CSS icona (default: status.inbox dal registry)
titlestringTitolo (default: t('widgets.empty.title'))
descriptionstringDescrizione (default: t('widgets.empty.description'))
<EmptyWidget title="Nessuna trattativa" description="Crea la prima trattativa">
  <Button label="Nuova trattativa" />
</EmptyWidget>

LoadingWidget

Spinner di caricamento opzionalmente con testo.

PropTipoDefaultDescrizione
textstring''Testo personalizzato
showTextbooleanfalseMostra testo default t('widgets.loading.title')

MetricsWidget

Griglia di card metriche con animazione contatori e indicatori di trend.

PropTipoDefaultDescrizione
metricsMetricCard[]Array metriche con title, value, icon, trend?, change?
columns1 | 2 | 3 | 42Colonne griglia
animatebooleantrueAbilita animazione contatori
animationDurationnumber1500Durata animazione in ms
<MetricsWidget
  :metrics="[
    { title: 'Vendite', value: 1234, icon: 'pi pi-shopping-cart', change: 12, trend: 'up' },
    { title: 'Ordini', value: 567, icon: 'pi pi-box', change: -3, trend: 'down' },
  ]"
  :columns="2"
/>

SelectButtons

Gruppo di bottoni per selezione singola, alternativa compatta a <select>.

PropTipoDefaultDescrizione
optionsSelectOption[][]Opzioni { label, value }
modelValuestringValore selezionato
size'small' | 'normal''small'Dimensione bottoni
EventoPayload
update:modelValuestring
change{ value: string, selectedOption: SelectOption }

StatsCards

Griglia di card statistiche con sfondo personalizzato (immagine o colore) e indicatore di trend.

PropTipoDescrizione
statisticheStatisticCard[]Array con titolo, valore, trend, bgColor, backgroundUrl?

Layout responsive a 4 colonne su lg, 2 su md, 1 su mobile.