"use client" import * as React from "react" import { XIcon } from "lucide-react" import { Dialog as SheetPrimitive } from "radix-ui" 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, forceMount, ...props }: React.ComponentProps) { return ( ) } function SheetContent({ className, children, side = "right", showCloseButton = true, onCloseAnimationEnd, onAnimationEnd, overlayClassName, closeLabel = "Close", ...props }: React.ComponentProps & { side?: "top" | "right" | "bottom" | "left" showCloseButton?: boolean /** When provided, content and overlay stay mounted until close animation ends (forceMount). */ onCloseAnimationEnd?: () => void /** Optional class name applied to the overlay (e.g. backdrop-blur-md). */ overlayClassName?: string /** Accessible label for the close button text (sr-only). */ closeLabel?: string }) { const useForceMount = Boolean(onCloseAnimationEnd) const handleAnimationEnd = React.useCallback( (e: React.AnimationEvent) => { onAnimationEnd?.(e) if (e.currentTarget.getAttribute("data-state") === "closed") { onCloseAnimationEnd?.() } }, [onAnimationEnd, onCloseAnimationEnd] ) return ( {children} {showCloseButton && ( {closeLabel} )} ) } 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, }