Spaces:
Runtime error
Runtime error
| import * as React from "react"; | |
| import * as DialogPrimitive from "@radix-ui/react-dialog"; | |
| import { cn } from "@/lib/utils"; | |
| const Drawer = DialogPrimitive.Root; | |
| const DrawerTrigger = DialogPrimitive.Trigger; | |
| const DrawerPortal = DialogPrimitive.Portal; | |
| const DrawerClose = DialogPrimitive.Close; | |
| const DrawerOverlay = React.forwardRef< | |
| React.ElementRef<typeof DialogPrimitive.Overlay>, | |
| React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay> | |
| >(({ className, ...props }, ref) => ( | |
| <DialogPrimitive.Overlay | |
| ref={ref} | |
| className={cn( | |
| "fixed inset-0 z-50 bg-[rgba(20,13,7,0.55)] backdrop-blur-[2px]", | |
| className, | |
| )} | |
| {...props} | |
| /> | |
| )); | |
| DrawerOverlay.displayName = DialogPrimitive.Overlay.displayName; | |
| const DrawerContent = React.forwardRef< | |
| React.ElementRef<typeof DialogPrimitive.Content>, | |
| React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> | |
| >(({ className, ...props }, ref) => ( | |
| <DrawerPortal> | |
| <DrawerOverlay /> | |
| <DialogPrimitive.Content | |
| ref={ref} | |
| className={cn( | |
| "fixed inset-y-0 right-0 z-50 flex h-full w-full flex-col overflow-y-auto border-l border-[var(--border)] bg-[var(--card)] shadow-[-18px_0_60px_-36px_rgba(34,22,13,0.8)] sm:max-w-xl", | |
| className, | |
| )} | |
| {...props} | |
| /> | |
| </DrawerPortal> | |
| )); | |
| DrawerContent.displayName = DialogPrimitive.Content.displayName; | |
| function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) { | |
| return ( | |
| <div | |
| className={cn("flex flex-col gap-2 border-b border-[var(--border)] px-5 py-5 text-right sm:px-6", className)} | |
| {...props} | |
| /> | |
| ); | |
| } | |
| function DrawerBody({ className, ...props }: React.ComponentProps<"div">) { | |
| return <div className={cn("flex-1 px-5 py-5 sm:px-6", className)} {...props} />; | |
| } | |
| function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) { | |
| return ( | |
| <div | |
| className={cn( | |
| "mt-auto flex flex-col-reverse gap-3 border-t border-[var(--border)] px-5 py-4 sm:flex-row sm:justify-start sm:px-6", | |
| className, | |
| )} | |
| {...props} | |
| /> | |
| ); | |
| } | |
| const DrawerTitle = React.forwardRef< | |
| React.ElementRef<typeof DialogPrimitive.Title>, | |
| React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title> | |
| >(({ className, ...props }, ref) => ( | |
| <DialogPrimitive.Title | |
| ref={ref} | |
| className={cn("text-xl font-semibold text-[var(--foreground)]", className)} | |
| {...props} | |
| /> | |
| )); | |
| DrawerTitle.displayName = DialogPrimitive.Title.displayName; | |
| const DrawerDescription = React.forwardRef< | |
| React.ElementRef<typeof DialogPrimitive.Description>, | |
| React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description> | |
| >(({ className, ...props }, ref) => ( | |
| <DialogPrimitive.Description | |
| ref={ref} | |
| className={cn("text-sm leading-7 text-[var(--foreground-muted)]", className)} | |
| {...props} | |
| /> | |
| )); | |
| DrawerDescription.displayName = DialogPrimitive.Description.displayName; | |
| export { | |
| Drawer, | |
| DrawerBody, | |
| DrawerClose, | |
| DrawerContent, | |
| DrawerDescription, | |
| DrawerFooter, | |
| DrawerHeader, | |
| DrawerTitle, | |
| DrawerTrigger, | |
| }; | |