"use client"; import { createPortal } from "react-dom"; import type { ReactNode } from "react"; import { AlertCircle, X } from "lucide-react"; import { cn } from "@/lib/utils"; interface WarningPopupAction { label: ReactNode; onClick: () => void; disabled?: boolean; } interface WarningPopupProps { open: boolean; onClose: () => void; title?: ReactNode; message?: ReactNode; children?: ReactNode; icon?: ReactNode; primaryAction?: WarningPopupAction; secondaryAction?: WarningPopupAction; className?: string; } export function WarningPopup({ open, onClose, title, message, children, icon, primaryAction, secondaryAction, className, }: WarningPopupProps) { if (!open) return null; const warningIcon = icon ?? ( ); return createPortal(
{title && (
{warningIcon} {title}
)} {message && (
{!title && warningIcon} {message}
)} {children} {(primaryAction || secondaryAction) && (
{secondaryAction && ( )} {primaryAction && ( )}
)}
, document.body, ); } function WarningPopupButton({ action, primary = false, }: { action: WarningPopupAction; primary?: boolean; }) { return ( ); }