/**
* AlertDialog — WealthX DS overrides (shadcn / \@base-ui alert-dialog)
*
* Changes from shadcn default:
* - AlertDialogOverlay: `bg-black/50` → `bg-foreground/50` — DS foreground token (matches Figma)
* - AlertDialogContent: `rounded-lg` removed — sharp corners per Figma
* - AlertDialogContent: `shadow-lg` removed — flat panels per Figma
* - AlertDialogFooter: always row, right-aligned; `border-t border-border pt-4` separator
* - AlertDialogMedia: borderless icon slot — `size-10` default, `size-8` sm
*/
import { type ReactElement } from "react";
import * as React from "react";
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
import { cn } from "@/lib/utils";
import { asChildProps } from "@/lib/as-child";
import { useThemeVars } from "@/lib/theme-provider";
import { buttonVariants } from "@/components/ui/button";
export type AlertDialogProps = React.ComponentProps<
typeof AlertDialogPrimitive.Root
>;
function AlertDialog({ ...props }: AlertDialogProps): ReactElement {
return ;
}
export type AlertDialogTriggerProps = React.ComponentProps<
typeof AlertDialogPrimitive.Trigger
> & {
/** shadcn-compatible alias for Base UI's `render`: replaces the trigger with its single child. */
asChild?: boolean;
};
function AlertDialogTrigger({
asChild,
children,
...props
}: AlertDialogTriggerProps): ReactElement {
return (
);
}
export type AlertDialogPortalProps = React.ComponentProps<
typeof AlertDialogPrimitive.Portal
>;
function AlertDialogPortal({ ...props }: AlertDialogPortalProps): ReactElement {
return (
);
}
export type AlertDialogOverlayProps = React.ComponentProps<
typeof AlertDialogPrimitive.Backdrop
>;
function AlertDialogOverlay({
className,
...props
}: AlertDialogOverlayProps): ReactElement {
return (
);
}
export type AlertDialogContentProps = React.ComponentProps<
typeof AlertDialogPrimitive.Popup
> & {
size?: "default" | "sm";
};
function AlertDialogContent({
className,
size = "default",
style,
...props
}: AlertDialogContentProps): ReactElement {
const themeVars = useThemeVars();
return (
);
}
export type AlertDialogHeaderProps = React.ComponentProps<"div">;
function AlertDialogHeader({
className,
...props
}: AlertDialogHeaderProps): ReactElement {
return (
);
}
export type AlertDialogFooterProps = React.ComponentProps<"div">;
function AlertDialogFooter({
className,
...props
}: AlertDialogFooterProps): ReactElement {
return (
);
}
export type AlertDialogTitleProps = React.ComponentProps<
typeof AlertDialogPrimitive.Title
>;
function AlertDialogTitle({
className,
...props
}: AlertDialogTitleProps): ReactElement {
return (
);
}
export type AlertDialogDescriptionProps = React.ComponentProps<
typeof AlertDialogPrimitive.Description
>;
function AlertDialogDescription({
className,
...props
}: AlertDialogDescriptionProps): ReactElement {
return (
);
}
export type AlertDialogMediaProps = React.ComponentProps<"div">;
function AlertDialogMedia({
className,
...props
}: AlertDialogMediaProps): ReactElement {
return (
);
}
export type AlertDialogActionProps = React.ComponentProps<
typeof AlertDialogPrimitive.Close
> & {
variant?:
| "default"
| "destructive"
| "outline"
| "secondary"
| "ghost"
| "link";
size?: "default" | "sm" | "lg" | "xs" | "icon";
};
function AlertDialogAction({
className,
variant = "default",
size = "default",
...props
}: AlertDialogActionProps): ReactElement {
return (
);
}
export type AlertDialogCancelProps = React.ComponentProps<
typeof AlertDialogPrimitive.Close
> & {
variant?:
| "default"
| "destructive"
| "outline"
| "secondary"
| "ghost"
| "link";
size?: "default" | "sm" | "lg" | "xs" | "icon";
};
function AlertDialogCancel({
className,
variant = "outline",
size = "default",
...props
}: AlertDialogCancelProps): ReactElement {
return (
);
}
export {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogMedia,
AlertDialogOverlay,
AlertDialogPortal,
AlertDialogTitle,
AlertDialogTrigger,
};