'use client' import * as React from 'react' import * as DialogPrimitive from '@radix-ui/react-dialog' import { XIcon } from 'lucide-react' import { cn } from '@/lib/utils' // Root (não precisa de wrapper com forwardRef) const Dialog = DialogPrimitive.Root // Trigger const DialogTrigger = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ ...props }, ref) => ( )) DialogTrigger.displayName = DialogPrimitive.Trigger.displayName ?? 'DialogTrigger' // Portal (não repassamos ref — Portal não expõe ref) function DialogPortal({ children, ...props }: React.ComponentPropsWithoutRef) { return ( {children} ) } // Close const DialogClose = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ ...props }, ref) => ( )) DialogClose.displayName = DialogPrimitive.Close.displayName ?? 'DialogClose' // Overlay const DialogOverlay = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DialogOverlay.displayName = DialogPrimitive.Overlay.displayName ?? 'DialogOverlay' // Content const DialogContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef & { showCloseButton?: boolean } >(({ className, children, showCloseButton = true, ...props }, ref) => ( {children} {showCloseButton && ( Close )} )) DialogContent.displayName = DialogPrimitive.Content.displayName ?? 'DialogContent' // Header const DialogHeader = React.forwardRef>( ({ className, ...props }, ref) => (
), ) DialogHeader.displayName = 'DialogHeader' // Footer const DialogFooter = React.forwardRef>( ({ className, ...props }, ref) => (
), ) DialogFooter.displayName = 'DialogFooter' // Title const DialogTitle = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DialogTitle.displayName = DialogPrimitive.Title.displayName ?? 'DialogTitle' // Description const DialogDescription = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DialogDescription.displayName = DialogPrimitive.Description.displayName ?? 'DialogDescription' export { Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, }