import { type ReactNode } from 'react'; export interface WithholdingFormDialogProps { open: boolean; title: string; /** Cuerpo del formulario (campos). */ children: ReactNode; submitLabel: string; cancelLabel: string; /** Mutación en vuelo: bloquea botones y muestra spinner en confirmar. */ isSubmitting: boolean; /** Deshabilita el botón de enviar (p.ej. formulario inválido). */ submitDisabled?: boolean; onSubmit: () => void; onClose: () => void; } /** * Shell de diálogo con formulario para el panel de retenciones (Agregar/Modificar). * * Construido sobre el `Dialog` de Headless UI (mismo cimiento que `AlertDialog`), * porque `AlertDialog` no admite contenido de formulario (`children`). El submit * se dispara desde el `