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

PropTipoDefaultDescrizione
modelValuebooleanfalseVisibilità controllata esternamente (v-model)
titlestringTitolo mostrato nell'header del popover
positionPopoverPosition'top'Posizione preferita del popover rispetto al trigger
triggerPopoverTrigger'click'Evento che apre il popover
closablebooleantrueMostra il pulsante di chiusura nell'header
closeIconstringClasse CSS icona di chiusura (default dal ConfigPlugin)
showArrowbooleantrueMostra la freccia direzionale verso il trigger
dismissablebooleantrueChiude al click fuori dal popover
autoHidebooleantrueNasconde automaticamente all'uscita del mouse (con trigger hover) o fuori viewport
showDelaynumber0Delay in ms prima di mostrare il popover
hideDelaynumber0Delay in ms prima di nascondere il popover
variantPopoverVariant'default'Variante visiva
sizePopoverSize'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

EventoPayloadDescrizione
update:modelValuebooleanAggiornamento visibilità per v-model
showPopover reso visibile
hidePopover nascosto
beforeShowEmesso prima dell'apertura
beforeHideEmesso prima della chiusura

Slot

SlotScopeDescrizione
triggerElemento che attiva il popover (obbligatorio)
defaultContenuto principale del popover
headerSostituzione completa dell'header
footerArea footer del popover (visibile solo se lo slot è fornito)

Esempi

Trigger hover con delay

Popover con v-model (trigger manuale)

Varianti visive

Posizioni con allineamento

Accessibilità

  • Il popover è renderizzato con role="tooltip"
  • Il posizionamento è calcolato tramite il composable usePopoverPosition che usa getBoundingClientRect() e tiene traccia dello scroll
  • Con trigger="click" e dismissable="true": click fuori chiude il popover
  • Con trigger="hover" e autoHide="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'