/**
* Drawer - BASIC bottom-sheet fork of Studio's `Drawer` (which is a large
* Vaul-style component). Same API shape for the parts we need: Root / Trigger /
* Content (overlay + sheet + drag handle) / Title / Header / Body / Footer /
* Close. Surface classes ported 1:1 from Studio (tokens remapped). Slides up
* from the bottom; dismisses on `Escape` and overlay click. A11y work tracked
* in modal-surface.tsx.
*
* @example
* ```tsx
* import { Button, Drawer, DrawerContent, DrawerTitle, DrawerTrigger } from "veryfront/ui";
*
*
*
* Edit profile
* ;
* ```
*
* @module react/components/ui/drawer
*/
import * as React from "react";
/** Props accepted by ``. */
export interface DrawerProps {
/** The trigger and content parts to compose. */
children: React.ReactNode;
/** Controlled open state (pair with `onOpenChange`). */
open?: boolean;
/** Initial open state when uncontrolled. */
defaultOpen?: boolean;
/** Fires when the open state changes. */
onOpenChange?: (open: boolean) => void;
}
/** Drawer root - owns open state (via the adapter's drawer engine). */
export declare function Drawer(props: DrawerProps): React.ReactElement;
/** Trigger - opens the drawer. `asChild` merges onto the child element. */
export declare function DrawerTrigger(props: React.ButtonHTMLAttributes & {
asChild?: boolean;
ref?: React.Ref;
}): React.ReactElement;
/** Props accepted by ``. */
export interface DrawerContentProps extends React.HTMLAttributes {
/** React 19: ref is a regular prop, forwarded to the drawer panel. */
ref?: React.Ref;
}
/** Bottom sheet - overlay + sliding surface with a drag handle. */
export declare function DrawerContent({ children, className, ...props }: DrawerContentProps): React.ReactElement | null;
/** Drawer title - 18px medium (Studio Heading-ish). Add `sr-only` to hide.
* Registers its id with the adapter so the sheet adopts `aria-labelledby`. */
export declare function DrawerTitle({ className, id, ...props }: React.HTMLAttributes): React.ReactElement;
/** Header column wrapper. */
export declare function DrawerHeader({ className, ...props }: React.HTMLAttributes): React.ReactElement;
/** Scrollable body area. */
export declare function DrawerBody({ className, ...props }: React.HTMLAttributes): React.ReactElement;
/** Sticky footer, full-width stacked actions. */
export declare function DrawerFooter({ className, ...props }: React.HTMLAttributes): React.ReactElement;
/** Closes the drawer. `asChild` merges onto the child element. */
export declare function DrawerClose(props: React.ButtonHTMLAttributes & {
asChild?: boolean;
ref?: React.Ref;
}): React.ReactElement;
//# sourceMappingURL=drawer.d.ts.map