import * as React from "react"; import * as DialogPrimitive from "@radix-ui/react-dialog"; import { type VariantProps } from "class-variance-authority"; /** Unified overlay backdrop — dimmed, no blur. Single source of truth for * every full-screen backdrop (Drawer, AppLayoutDrawer, MobileBurgerMenu, * TimeTracker popover) so all panels dim the page identically. */ declare const OVERLAY_BACKDROP_CLASS = "bg-ods-overlay"; declare const Drawer: React.FC; declare const DrawerTrigger: React.ForwardRefExoticComponent>; declare const DrawerClose: React.ForwardRefExoticComponent>; declare const DrawerPortal: React.FC; declare const DrawerOverlay: React.ForwardRefExoticComponent, "ref"> & React.RefAttributes>; declare const drawerVariants: (props?: ({ side?: "bottom" | "left" | "right" | "top" | null | undefined; flush?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type DrawerSide = "right" | "left" | "top" | "bottom"; interface DrawerContentProps extends Omit, "style">, VariantProps { /** Remove outer wrapper padding and panel rounded/border/padding so the * panel attaches flush to the viewport edge. Use for full-height side * panels (e.g. the embedded chat). */ flush?: boolean; /** Enable the drag-to-resize handle on the inside-facing edge. Only * active for `side="left"` / `side="right"` (or `top`/`bottom`) on * non-mobile viewports. */ resizable?: boolean; /** Minimum allowed size (px) when resizable. */ minSize?: number; /** Maximum allowed size (px) when resizable. Also clamped by viewport. */ maxSize?: number; /** Initial size (px) when no localStorage entry exists. */ defaultSize?: number; /** localStorage key for persisting the size across sessions. */ storageKey?: string; /** Pixel breakpoint below which `resizable` is disabled and inline * size is not applied (so consumer CSS can render full-viewport). * Defaults to 800 — the library's Tailwind `md` breakpoint, so the JS * mobile switch and the `md:` panel styles flip together. */ mobileBreakpoint?: number; /** Optional className applied to the overlay. */ overlayClassName?: string; /** Optional aria-label for the resize handle. */ resizeAriaLabel?: string; /** Inline style merged onto the outer animated wrapper (DialogPrimitive.Content). * Use this for animation-end transform/animation resets so `position: fixed` * descendants can escape the wrapper's containing block. */ style?: React.CSSProperties; /** Inline style merged onto the inner panel (next to the resize-driven size). */ panelStyle?: React.CSSProperties; /** Optional className applied to the inner panel. (Alias for `className`.) */ panelClassName?: string; /** Offset the drawer's top edge below the app header + announcement bar. * Measured live via ResizeObserver so it tracks height changes. */ offsetHeader?: boolean; } declare const DrawerContent: React.ForwardRefExoticComponent>; declare const DrawerHeader: { ({ className, children, ...props }: React.HTMLAttributes): React.JSX.Element; displayName: string; }; interface DrawerTitleProps extends React.ComponentPropsWithoutRef { /** Optional header actions rendered between the title and the close button. */ actions?: React.ReactNode; /** Hide the close (X) button. */ hideClose?: boolean; } declare const DrawerTitle: React.ForwardRefExoticComponent>; declare const DrawerDescription: React.ForwardRefExoticComponent, "ref"> & React.RefAttributes>; declare const DrawerBody: { ({ className, ...props }: React.HTMLAttributes): React.JSX.Element; displayName: string; }; declare const DrawerFooter: { ({ className, ...props }: React.HTMLAttributes): React.JSX.Element; displayName: string; }; export { OVERLAY_BACKDROP_CLASS, Drawer, DrawerTrigger, DrawerClose, DrawerPortal, DrawerOverlay, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerBody, DrawerFooter, }; export type { DrawerContentProps, DrawerSide, DrawerTitleProps }; //# sourceMappingURL=drawer.d.ts.map