"use client"; import * as React from "react"; import { XIcon } from "lucide-react"; import { Dialog as SheetPrimitive } from "radix-ui"; import { applyOutsideDismissPolicy } from "../lib/outside-dismiss"; import { cn } from "../lib/utils"; function Sheet({ ...props }: React.ComponentProps) { 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, dismissOnOutsideClick = false, onInteractOutside, onPointerDownOutside, ...props }: React.ComponentProps & { side?: "top" | "right" | "bottom" | "left"; showCloseButton?: boolean; /** Let a click outside the sheet close it. Off by default: a stray click on * the page behind a form must not discard what the user typed. Turn it on * for a sheet with nothing to lose — navigation, a picker, a read-only * panel. Escape and the close button close either way. */ dismissOnOutsideClick?: boolean; }) { return ( { onPointerDownOutside?.(event); applyOutsideDismissPolicy(event, dismissOnOutsideClick); }} onInteractOutside={(event) => { onInteractOutside?.(event); applyOutsideDismissPolicy(event, dismissOnOutsideClick); }} className={cn( "fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500", side === "right" && "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm", side === "left" && "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm", side === "top" && "inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top", side === "bottom" && "inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom", className, )} {...props} > {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, };