import { Fragment } from 'react'; import { Dialog as HeadlessDialog, Transition } from '@headlessui/react'; import { XMarkIcon } from '@heroicons/react/24/outline'; interface DialogProps { isOpen: boolean; onClose: () => void; title?: string; children: React.ReactNode; size?: 'sm' | 'md' | 'lg' | 'xl'; showClose?: boolean; } const sizeClasses = { sm: 'max-w-md', md: 'max-w-lg', lg: 'max-w-2xl', xl: 'max-w-4xl', }; export default function Dialog({ isOpen, onClose, title, children, size = 'md', showClose = true, }: DialogProps) { return (
{title && (
{title} {showClose && ( )}
)} {children}
); } // Componente auxiliar para o corpo do dialog Dialog.Body = function DialogBody({ children, className = '' }: { children: React.ReactNode; className?: string }) { return
{children}
; }; // Componente auxiliar para o rodapé do dialog Dialog.Footer = function DialogFooter({ children, className = '' }: { children: React.ReactNode; className?: string }) { return
{children}
; };