Layout

Panel

Contenitore collassabile con header, body e footer. Supporta toggle con v-model, slot per icone aggiuntive e dimensioni configurabili.

Import

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

Esempio Base

Props

PropTipoDefaultDescrizione
headerstring''Testo del titolo nell'header
headingLevel1 | 2 | 3 | 4 | 5 | 63Livello del titolo (h1…h6), da adattare alla gerarchia della pagina (dalla 1.24.0)
toggleAriaLabelstring«Attiva/disattiva pannello» + titoloNome accessibile del pulsante di apertura/chiusura (dalla 1.24.0)
toggleablebooleanfalseAbilita la funzionalità di collasso/espansione
collapsedbooleanfalseStato collassato (usare con v-model:collapsed)
toggleIconstring''Icona personalizzata per il pulsante toggle
size'small' | 'medium' | 'large''medium'Dimensione del pannello
roundedbooleantrueBordi arrotondati
shadowbooleantrueOmbra esterna
borderbooleantrueBordo visibile
disabledbooleanfalseDisabilita il toggle

Emits

EventoPayloadDescrizione
update:collapsedbooleanEmesso quando cambia lo stato collapsed (per v-model)
expand—Emesso quando il pannello viene espanso
collapse—Emesso quando il pannello viene collassato
toggleMouseEventEmesso al click sul pulsante toggle

Slot

SlotScopeDescrizione
default—Contenuto principale del pannello
header—Header personalizzato (sostituisce la prop header)
icons—Icone/azioni aggiuntive nell'area destra dell'header
footer—Footer del pannello

Esempi

Panel collassabile con v-model

Dimensioni disponibili

Accessibilità

Il pulsante toggle usa aria-expanded per comunicare lo stato corrente. Il pannello è navigabile da tastiera. La prop disabled inibisce l'interazione e viene propagata al pulsante nativo.

Dalla 1.24.0 il pulsante si chiama «Attiva/disattiva pannello » (prima lo stesso nome in ogni pannello della pagina), sostituibile con toggleAriaLabel; il titolo non è più un h3 fisso ma segue headingLevel, così non spezza la gerarchia dei titoli.

TypeScript

import type { PanelProps, PanelEmits, PanelSlots } from '@pzeta/vue-components'