import type { Component } from "vue"; /** Hiérarchie ENCODÉE DANS LE TYPE : une seule action `primary` est légitime * dans une pile. `secondary` = action secondaire ; `ghost` = action discrète. * La couleur sémantique (danger) n'est PAS un `kind` — elle vit dans * `dangerZone`, rendue à part. Le mauvais chemin (4 « primaires » arc-en-ciel) * devient ainsi impossible à exprimer proprement. */ export type NavActionKind = "primary" | "secondary" | "ghost"; export type NavAction = { label: string; /** Icône optionnelle (composant), rendue avant le libellé. */ icon?: Component; onClick?: () => void; href?: string; kind?: NavActionKind; disabled?: boolean; }; /** Action destructrice, isolée sous un séparateur + un overline « Zone * sensible ». Toujours en ton danger, jamais alignée avec les actions * normales. Pas de `kind` : c'est une zone, pas une catégorie de couleur. */ export type NavActionDangerZone = { label: string; icon?: Component; onClick?: () => void; href?: string; }; export type NavActionStackOrientation = "vertical" | "horizontal"; export type NavActionStackProps = { actions?: NavAction[]; dangerZone?: NavActionDangerZone; /** Libellé de l'overline de la zone sensible. Défaut « Zone sensible ». */ dangerLabel?: string; orientation?: NavActionStackOrientation; /** Étiquette a11y du groupe d'actions. */ label?: string; class?: string; }; /** * NavActionStack — empile des actions en ENCODANT la hiérarchie dans le type. * Au plus UN `kind:"primary"` (les suivants sont dégradés en secondary + * console.warn). La couleur sémantique « danger » n'est pas détournée en * catégorie : la `dangerZone` est rendue séparément, sous un Divider + un * overline, en ton danger pleine largeur. Réutilise le Button du DS — aucun * bouton n'est réimplémenté. Style token-only, aucun hex en dur. */ export declare const NavActionStack: import("vue").DefineComponent NavAction[]; default: () => never[]; }; dangerZone: { type: () => NavActionDangerZone; default: undefined; }; dangerLabel: { type: StringConstructor; default: string; }; orientation: { type: () => NavActionStackOrientation; default: string; }; label: { type: StringConstructor; default: string; }; class: { type: StringConstructor; default: undefined; }; }>, () => import("vue").VNode, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly NavAction[]; default: () => never[]; }; dangerZone: { type: () => NavActionDangerZone; default: undefined; }; dangerLabel: { type: StringConstructor; default: string; }; orientation: { type: () => NavActionStackOrientation; default: string; }; label: { type: StringConstructor; default: string; }; class: { type: StringConstructor; default: undefined; }; }>> & Readonly<{}>, { class: string; label: string; orientation: NavActionStackOrientation; actions: NavAction[]; dangerZone: NavActionDangerZone; dangerLabel: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; //# sourceMappingURL=NavActionStack.d.ts.map