// --------------------------------------------------------------------------- // Shared modal wrapper — handles overlay, centering, dialog role, aria // --------------------------------------------------------------------------- import type { ReactNode } from 'react' interface ModalProps { ariaLabelledBy: string children: ReactNode } export default function Modal({ ariaLabelledBy, children }: ModalProps) { return (
{children}
) } // --------------------------------------------------------------------------- // Shared modal footer with two buttons // --------------------------------------------------------------------------- interface ModalActionsProps { cancelLabel: string confirmLabel: string onCancel: () => void onConfirm: () => void /** Tailwind classes for the confirm button (default: white bg) */ confirmClassName?: string } export function ModalActions({ cancelLabel, confirmLabel, onCancel, onConfirm, confirmClassName = 'bg-white text-[#000000] hover:bg-gray-200', }: ModalActionsProps) { return (
) }