Fenêtre contextuelle
نافذة سياقيةPopover
Stable
src/dsm/components/popover.tsxLa fenêtre contextuelle affiche un contenu riche (texte, filtres, mini-formulaire) ancré à un déclencheur, sans quitter la page. Contrairement à l'infobulle, elle reste accessible au clic et au clavier.
Import
import { Popover } from "@/dsm/components/popover";Exemples
Par défaut
Une explication courte ancrée à un lien.
LTR
Avec titre et fermeture
Panneau nommé, fermable explicitement.
LTR
Filtre de démarches
Mini-formulaire de filtres dans une fenêtre contextuelle.
LTR
Usage
Quand l'utiliser
- Utilisez-la pour une explication détaillée qui ne tient pas dans une infobulle (« Comment le savoir ? »).
- Utilisez-la pour un panneau de filtres ou d'options secondaires, accessible depuis une seule action.
Quand ne pas l'utiliser
- N'y placez pas une action irréversible ou destructive : utilisez `AlertDialog`.
- Ne l'utilisez pas pour un contenu qui doit rester ouvert pendant que l'utilisateur défile la page : préférez un `Drawer`.
Accessibilité & langues
Accessibilité
- Le déclencheur reçoit `aria-expanded` et l'ouverture est disponible au clavier (Entrée, Espace).
- Quand `closable` est actif, le bouton de fermeture porte un `aria-label` traduit.
RTL & multilingue
- `side` accepte `inline-start` / `inline-end` : la position bascule automatiquement selon le sens de lecture.
- Le repère visuel optionnel (showArrow) est positionné par Base UI et miroité en RTL, sans propriété physique dans le code d'usage.
Propriétés
Popover
| Propriété | Type | Défaut | Description |
|---|---|---|---|
| trigger* | ReactElement | — | Élément déclencheur, rendu via `Popover.Trigger`. |
| title | ReactNode | — | Titre optionnel en tête de fenêtre. |
| description | ReactNode | — | Texte principal, sous le titre. |
| side | "top" | "bottom" | "inline-start" | "inline-end" | bottom | Côté logique d'ancrage. |
| align | "start" | "center" | "end" | center | Alignement sur l'axe perpendiculaire. |
| sideOffset | number | 4 | Distance en pixels avec le déclencheur. |
| showArrow | boolean | false | Affiche le repère triangulaire vers le déclencheur. |
| closable | boolean | false | Affiche un bouton de fermeture à côté du titre. |
| children | ReactNode | — | Contenu libre, sous le titre et la description. |