import * as React from "react" import type { CSSProperties } from "react" import { Dialog as SheetPrimitive } from "@base-ui/react/dialog" import { cn } from "@/lib/utils" import { Button } from "@/components/ui/button" import { XIcon } from "lucide-react" import { getAsChildChildren, getAsChildRender } from "@/lib/as-child" type DragRegionStyle = CSSProperties & { WebkitAppRegion?: 'drag' | 'no-drag' } import type { ValueOf } from "@/types/utils" const SHEET_SIDE = { TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left", } as const type SheetSide = ValueOf function Sheet({ ...props }: React.ComponentProps) { return } function SheetTrigger({ asChild = false, children, ...props }: React.ComponentProps & { asChild?: boolean }) { return ( {getAsChildChildren(asChild, children)} ) } function SheetClose({ asChild = false, children, ...props }: React.ComponentProps & { asChild?: boolean }) { return ( {getAsChildChildren(asChild, children)} ) } function SheetPortal({ ...props }: React.ComponentProps) { return } function SheetOverlay({ className, style, ...props }: React.ComponentProps) { return ( ) } function SheetContent({ className, children, side = SHEET_SIDE.RIGHT, showCloseButton = true, showOverlay = true, style, ...props }: React.ComponentProps & { side?: SheetSide showCloseButton?: boolean showOverlay?: boolean }) { return ( {showOverlay ? : null} {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, }