"use client"; import * as React from "react"; import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog"; import { Button } from "@/components/ui/button"; type ConfirmDialogProps = { open: boolean; onOpenChange: (open: boolean) => void; title: string; description?: React.ReactNode; confirmLabel: string; cancelLabel: string; destructive?: boolean; onConfirm: () => void | Promise; }; /** * Convenience confirmation dialog. Controlled-only and trigger-less by design: * callers render their own trigger Button and own the open state, which avoids * every trigger-composition pitfall (no asChild, no nested ); } export { ConfirmDialog, type ConfirmDialogProps };