Overlays
Popover
Overlay flottante ancorato a un elemento trigger. Supporta trigger click/hover/focus/manual, posizionamento automatico con correzione viewport, freccia, e varianti visive.
Import
import { Popover } from '@pzeta/vue-components'
// oppure con plugin selettivo:
import { OverlaysPlugin } from '@pzeta/vue-components'
app.use(OverlaysPlugin)
Esempio Base
Props
| Prop | Tipo | Default | Descrizione |
|---|---|---|---|
modelValue | boolean | false | Visibilità controllata esternamente (v-model) |
title | string | — | Titolo mostrato nell'header del popover |
position | PopoverPosition | 'top' | Posizione preferita del popover rispetto al trigger |
trigger | PopoverTrigger | 'click' | Evento che apre il popover |
closable | boolean | true | Mostra il pulsante di chiusura nell'header |
closeIcon | string | — | Classe CSS icona di chiusura (default dal ConfigPlugin) |
showArrow | boolean | true | Mostra la freccia direzionale verso il trigger |
dismissable | boolean | true | Chiude al click fuori dal popover |
autoHide | boolean | true | Nasconde automaticamente all'uscita del mouse (con trigger hover) o fuori viewport |
showDelay | number | 0 | Delay in ms prima di mostrare il popover |
hideDelay | number | 0 | Delay in ms prima di nascondere il popover |
variant | PopoverVariant | 'default' | Variante visiva |
size | PopoverSize | 'medium' | Dimensione del popover |
PopoverPosition
type PopoverPosition =
| 'top' | 'top-start' | 'top-end'
| 'bottom' | 'bottom-start' | 'bottom-end'
| 'left' | 'left-start' | 'left-end'
| 'right' | 'right-start' | 'right-end'
Il posizionamento si corregge automaticamente se il popover uscirebbe dai bordi del viewport.
PopoverTrigger
type PopoverTrigger = 'click' | 'hover' | 'focus' | 'manual'
PopoverVariant
type PopoverVariant = 'default' | 'outlined' | 'filled'
PopoverSize
type PopoverSize = 'small' | 'medium' | 'large'
Emits
| Evento | Payload | Descrizione |
|---|---|---|
update:modelValue | boolean | Aggiornamento visibilità per v-model |
show | — | Popover reso visibile |
hide | — | Popover nascosto |
beforeShow | — | Emesso prima dell'apertura |
beforeHide | — | Emesso prima della chiusura |
Slot
| Slot | Scope | Descrizione |
|---|---|---|
trigger | — | Elemento che attiva il popover (obbligatorio) |
default | — | Contenuto principale del popover |
header | — | Sostituzione completa dell'header |
footer | — | Area footer del popover (visibile solo se lo slot è fornito) |
Esempi
Trigger hover con delay
Popover con v-model (trigger manuale)
Popover con header e footer
Varianti visive
Posizioni con allineamento
Accessibilità
- Il popover è renderizzato con
role="tooltip" - Il posizionamento è calcolato tramite il composable
usePopoverPositionche usagetBoundingClientRect()e tiene traccia dello scroll - Con
trigger="click"edismissable="true": click fuori chiude il popover - Con
trigger="hover"eautoHide="true": spostare il mouse sopra il popover stesso non chiude (gestione hover su entrambi gli elementi) - La freccia (
showArrow) è posizionata automaticamente in base alla direzione effettiva del popover
TypeScript
import type {
PopoverProps,
PopoverEmits,
PopoverPosition,
PopoverTrigger,
PopoverVariant,
PopoverSize,
} from '@pzeta/vue-components'
Drawer
Pannello laterale overlay con animazione slide configurabile. Supporta apertura da tutti e quattro i lati, tre dimensioni, variante floating e slot header/footer/container.
Sidebar
Barra laterale fissa e collassabile per la navigazione principale dell'applicazione. Progettata per il Portal Shell dei microfrontend, supporta auto-collapse responsive, brand, e slot per header/content/footer.