import { Trans } from "@lingui/react/macro"
import { ChevronRightIcon, type LucideIcon, TriangleAlertIcon } from "lucide-react"
import type { ReactNode } from "react"
import { cn } from "@/lib/utils"
import { Link } from "./router"
import { Alert, AlertDescription, AlertTitle } from "./ui/alert"
import { Button } from "./ui/button"
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger } from "./ui/sheet"
/**
* Destructive alert banner with a button that opens a sheet containing details.
* Content agnostic so it can be reused for system alerts, network monitors, etc.
*/
export function AlertBannerSheet({
open,
onOpenChange,
title,
description,
buttonLabel,
sheetTitle,
sheetDescription,
icon: Icon = TriangleAlertIcon,
className,
children,
}: {
open: boolean
onOpenChange: (open: boolean) => void
title: ReactNode
description?: ReactNode
buttonLabel?: ReactNode
sheetTitle: ReactNode
sheetDescription?: ReactNode
icon?: LucideIcon
className?: string
children: ReactNode
}) {
return (