'use client'; import * as React from 'react'; import * as SheetPrimitive from '@radix-ui/react-dialog'; import { XIcon } from 'lucide-react'; import { cn } from '../../shared/utils'; /** * Sliding side panel (off-canvas / drawer overlay). * * @description * Replaces centered `` modals for extended forms or full mobile navigation menus. * Slides in from any edge (top/right/bottom/left). Built on Radix UI Dialog. * * @ai-rules * 1. `` requires an explicit `side` prop — the standard corporate variant is `side="right"`. * 2. For mobile bottom pull-up panels, use `` instead. * 3. For full-page modal dialogs, use `` instead. */ function Sheet({ ...props }: React.ComponentProps) { return ; } function SheetTrigger({ ...props }: React.ComponentProps) { return ; } function SheetClose({ ...props }: React.ComponentProps) { return ; } function SheetPortal({ ...props }: React.ComponentProps) { return ; } const SheetOverlay = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )); SheetOverlay.displayName = SheetPrimitive.Overlay.displayName; function SheetContent({ className, children, side = 'right', ...props }: React.ComponentProps & { side?: 'top' | 'right' | 'bottom' | 'left'; }) { return ( {children} Close ); } function SheetHeader({ className, ...props }: React.ComponentProps<'div'>) { return (
); } function SheetBody({ className, ...props }: React.ComponentProps<'div'>) { return (
); } function SheetFooter({ className, ...props }: React.ComponentProps<'div'>) { return (
); } function SheetTitle({ className, ...props }: React.ComponentProps) { return ( ); } function SheetDescription({ className, ...props }: React.ComponentProps) { return ( ); } export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetBody, SheetFooter, SheetTitle, SheetDescription, SheetPortal, };