import { IconType, IconFontColor } from './types'; import { SwitchOption } from './switch'; import { PropsWithChildren } from 'react'; import { ModalCloseButtonConfig } from './modal'; export type DrawerFooterProps = PropsWithChildren<{ className?: string; }>; export interface DrawerProps { isOpen: boolean; onClose: () => void; title?: string; titleIcon?: IconType; titleIconDuotonePrimary?: IconFontColor; titleIconDuotoneSecondary?: IconFontColor; titleIconDuotoneOpacityPrimary?: number; titleIconDuotoneOpacitySecondary?: number; /** `xl` (800px) alineado a layouts anchos (p. ej. implementación campaña). */ size?: 'sm' | 'md' | 'lg' | 'xl'; children: React.ReactNode; /** * Botón de cerrar (X): tooltip opcional. Misma forma que `Modal` (`ModalCloseButtonConfig`). * Si `tooltip` es `true` y no pasas `tooltipPosition`, el tooltip se muestra a la **izquierda** del botón. */ closeButton?: ModalCloseButtonConfig; showCloseButton?: boolean; disableEscapeClose?: boolean; disableOutsideTab?: boolean; position?: 'left' | 'right'; /** * Superficie del panel: `default` (gris secundario) o `brand` (relleno brand en panel y Card). * En `brand`: sin borde bajo el header, sin `Card.Separator` antes del footer y `Card` interna con `bordered={false}`. */ surface?: 'default' | 'brand'; className?: string; scrollable?: boolean; cancelButtonText?: string; successButtonText?: string; onCancel?: () => void; onSuccess?: () => void; showCancelButton?: boolean; showSuccessButton?: boolean; closeAtSuccess?: boolean; closeAtCancel?: boolean; disabledSuccessButton?: boolean; disabledCancelButton?: boolean; /** Ancho máximo personalizado del drawer (ej: '500px', '50%', '30rem'). Por defecto usa el size. */ maxWidth?: string; /** Si es true, el drawer ocupará todo el ancho disponible sin max-width */ fullWidth?: boolean; /** Si es true, el drawer se adaptará al ancho de su contenido interno */ fitContent?: boolean; /** Opciones de tabs para mostrar en el header del drawer */ tabs?: SwitchOption[]; /** Valor por defecto del tab seleccionado */ defaultValueTab?: string; /** Callback cuando cambia el tab seleccionado */ onChangeTab?: (value: string) => void; /** Tab actualmente seleccionado (controlado) */ currentTab?: string; /** Si es true, los tabs se muestran centrados entre el título y el botón de cerrar. Si es false, se muestran debajo del título en una fila completa. Default: false */ tabsOverHeader?: boolean; } //# sourceMappingURL=drawer.d.ts.map