import { forwardRef, ReactNode } from "react"; import { faTimes } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import * as DialogPrimitive from "@radix-ui/react-dialog"; import { twMerge } from "tailwind-merge"; import { Card, CardBody, CardFooter, CardTitle } from "../Card"; import { IconButton } from "../IconButton"; export type ModalContentProps = Omit & { title?: ReactNode; subTitle?: ReactNode; footerContent?: ReactNode; bodyClassName?: string; onClose?: () => void; overlayClassName?: string; }; export const ModalContent = forwardRef( ( { children, title, subTitle, className, overlayClassName, footerContent, bodyClassName, onClose, ...props }, forwardedRef ) => ( {title && ( {title} )} {children} {footerContent && {footerContent}} ) ); ModalContent.displayName = "ModalContent"; export type ModalProps = Omit & { isOpen?: boolean }; export const Modal = ({ isOpen, ...props }: ModalProps) => ( ); export const ModalTrigger = DialogPrimitive.Trigger; export type ModalTriggerProps = DialogPrimitive.DialogTriggerProps; export const ModalClose = DialogPrimitive.Close; export type ModalCloseProps = DialogPrimitive.DialogCloseProps;