import { Dialog as ShadCNDialog } from '@/common/components/organisms/Dialog/Dialog'; import { DialogTrigger } from '@/common/components/organisms/Dialog/Dialog.Trigger'; import { DialogContent } from '../../organisms/Dialog/Dialog.Content'; import { DialogHeader } from '@/common/components/organisms/Dialog/Dialog.Header'; import { DialogTitle } from '../../organisms/Dialog/Dialog.Title'; import { DialogDescription } from '@/common/components/organisms/Dialog/Dialog.Description'; import { DialogFooter } from '@/common/components/organisms/Dialog/Dialog.Footer'; import { ComponentProps, FunctionComponent, ReactNode } from 'react'; import { ctw } from '@ballerine/ui'; import { AnimatePresence } from 'framer-motion'; import { DialogClose } from '@radix-ui/react-dialog'; export interface DialogProps extends ComponentProps { trigger: ReactNode | ReactNode[]; content: ReactNode | ReactNode[]; title?: ReactNode | ReactNode[]; description?: ReactNode | ReactNode[]; footer?: ReactNode | ReactNode[]; close?: ReactNode | ReactNode[]; props?: { dialog?: ComponentProps; trigger?: ComponentProps; content?: ComponentProps; header?: ComponentProps; title?: ComponentProps; description?: ComponentProps; footer?: ComponentProps; close?: ComponentProps; }; } export const Dialog: FunctionComponent = ({ trigger, title, description, content, footer, close, props, ...rest }) => { return ( {trigger} {(title || description) && ( {title && {title}} {description && ( {description} )} )} {content} {(footer || close) && ( {footer} {close && ( {close} )} )} ); };