import * as React from "react"; import * as DialogPrimitive from "@radix-ui/react-dialog"; import { type VariantProps } from "class-variance-authority"; interface AppLayoutDrawerRootProps extends React.ComponentPropsWithoutRef { } declare const AppLayoutDrawerRoot: { ({ open: openProp, defaultOpen, onOpenChange, modal, children, ...rest }: AppLayoutDrawerRootProps): React.JSX.Element; displayName: string; }; declare const AppLayoutDrawerTrigger: React.ForwardRefExoticComponent>; declare const AppLayoutDrawerClose: React.ForwardRefExoticComponent>; declare const appLayoutDrawerVariants: (props?: ({ side?: "bottom" | "left" | "right" | "top" | null | undefined; flush?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface AppLayoutDrawerContentProps extends Omit, "style">, VariantProps { flush?: boolean; resizable?: boolean; minSize?: number; maxSize?: number; defaultSize?: number; storageKey?: string; /** Pixel breakpoint below which `resizable` is disabled and inline size is * not applied (so the panel can render full-area on mobile). Defaults to * 800 — the library's Tailwind `md` breakpoint, so the JS mobile switch * and the `md:` panel styles flip together. */ mobileBreakpoint?: number; overlayClassName?: string; resizeAriaLabel?: string; style?: React.CSSProperties; panelStyle?: React.CSSProperties; panelClassName?: string; /** Override the portal container. Defaults to AppLayout's main-area container * (from context). Pass `null` to opt out of portaling. */ container?: HTMLElement | null; /** Keep the panel mounted across close so its subtree state survives an * open → close → open cycle (no remount, no refetch, no flicker). Lazy: * nothing renders until the first open; after that the panel stays mounted * (Radix `forceMount`) and the slide animation runs off `data-state`. * Default `false` — preserves the standard unmount-on-close behaviour for * every other consumer. */ keepMounted?: boolean; /** When `true` (default), clicks on the dim overlay over the main content * area close the drawer. Clicks on AppLayout chrome (header, sidebar) NEVER * close the drawer regardless of this flag — chrome interactions shouldn't * accidentally dismiss a persistent panel. Pass `false` to make the drawer * fully persistent (X button or Escape only). Consumer-provided * `onInteractOutside` still runs first and can preventDefault to override. */ dismissOnInteractOutside?: boolean; /** Debug helper — when `true`, on each open the component snapshots the * scroll metrics (scrollLeft / scrollWidth / clientWidth / overflow-x) of * every ancestor of the portal container, at mount, after RAF, +150ms, * +350ms, and on close. Use to diagnose layout-shift on open: look for an * ancestor that gains `scrollLeft > 0` or has `overflow-x: visible` while * `scrollWidth > clientWidth`. Remove the prop once diagnosed. */ debugLayoutShift?: boolean; } declare const AppLayoutDrawerContent: React.ForwardRefExoticComponent>; declare const AppLayoutDrawerHeader: { ({ className, children, ...props }: React.HTMLAttributes): React.JSX.Element; displayName: string; }; declare const AppLayoutDrawerTitle: React.ForwardRefExoticComponent>; declare const AppLayoutDrawerDescription: React.ForwardRefExoticComponent, "ref"> & React.RefAttributes>; declare const AppLayoutDrawerBody: { ({ className, ...props }: React.HTMLAttributes): React.JSX.Element; displayName: string; }; declare const AppLayoutDrawerFooter: { ({ className, ...props }: React.HTMLAttributes): React.JSX.Element; displayName: string; }; export { AppLayoutDrawerRoot as AppLayoutDrawer, AppLayoutDrawerTrigger, AppLayoutDrawerClose, AppLayoutDrawerContent, AppLayoutDrawerHeader, AppLayoutDrawerTitle, AppLayoutDrawerDescription, AppLayoutDrawerBody, AppLayoutDrawerFooter, }; //# sourceMappingURL=app-layout-drawer.d.ts.map