'use client'; import * as React from 'react'; import { XIcon } from '@/icons'; import * as SheetPrimitive from 'radix-ui/dialog'; import { cn } from '@/lib/utils'; import { focusRing, iconSizing } from '@/lib/cva-presets'; export type SheetProps = React.ComponentProps; export interface SheetContentProps extends React.ComponentProps { /** Edge the panel slides in from. */ side?: 'top' | 'right' | 'bottom' | 'left'; showCloseButton?: boolean; } /** * Panel that slides in from an edge of the viewport. * * Built on the same primitive as Dialog, so it is equally modal — use it when * the content is long or navigational, and Dialog when it is a focused * decision. On small screens, Drawer is usually the better fit. */ function Sheet(props: SheetProps) { return ; } function SheetTrigger(props: React.ComponentProps) { return ; } function SheetClose(props: React.ComponentProps) { return ; } function SheetPortal(props: React.ComponentProps) { return ; } function SheetOverlay({ className, ...props }: React.ComponentProps) { return ( ); } function SheetContent({ className, children, side = 'right', showCloseButton = true, ...props }: SheetContentProps) { return ( {children} {showCloseButton && ( Close )} ); } function SheetHeader({ 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, SheetFooter, SheetTitle, SheetDescription, };