import * as React from 'react'; import { Dialog as DialogPrimitive } from '@base-ui/react/dialog'; import { XIcon } from 'lucide-react'; import { getPortalContainer } from '../../lib/portal'; import { classNames } from '../../lib/utils'; import { Button } from './button'; function Dialog({ ...props }: DialogPrimitive.Root.Props) { return ; } const DialogTrigger = React.forwardRef< HTMLButtonElement, DialogPrimitive.Trigger.Props >(function DialogTrigger({ ...props }, ref) { return ( ); }); const DialogPortal = React.forwardRef< HTMLDivElement, DialogPrimitive.Portal.Props >(function DialogPortal({ ...props }, ref) { return ( ); }); const DialogClose = React.forwardRef< HTMLButtonElement, DialogPrimitive.Close.Props >(function DialogClose({ ...props }, ref) { return ( ); }); const DialogOverlay = React.forwardRef< HTMLDivElement, DialogPrimitive.Backdrop.Props >(function DialogOverlay({ className, ...props }, ref) { return ( ); }); const DialogContent = React.forwardRef< HTMLDivElement, DialogPrimitive.Popup.Props & { showCloseButton?: boolean; } >(function DialogContent( { className, children, showCloseButton = true, ...props }, ref ) { return ( {children} {showCloseButton && ( } > Close )} ); }); const DialogHeader = React.forwardRef< HTMLDivElement, React.ComponentProps<'div'> >(function DialogHeader({ className, ...props }, ref) { return (
); }); const DialogFooter = React.forwardRef< HTMLDivElement, React.ComponentProps<'div'> & { showCloseButton?: boolean; } >(function DialogFooter( { className, showCloseButton = false, children, ...props }, ref ) { return (
{children} {showCloseButton && ( }> Close )}
); }); const DialogTitle = React.forwardRef< HTMLHeadingElement, DialogPrimitive.Title.Props >(function DialogTitle({ className, ...props }, ref) { return ( ); }); const DialogDescription = React.forwardRef< HTMLParagraphElement, DialogPrimitive.Description.Props >(function DialogDescription({ className, ...props }, ref) { return ( ); }); export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };