"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Alert = Alert;
exports.AlertTitle = AlertTitle;
exports.AlertDescription = AlertDescription;
exports.AlertActions = AlertActions;
exports.AlertTopAction = AlertTopAction;
exports.AlertClose = AlertClose;
const jsx_runtime_1 = require("react/jsx-runtime");
const class_variance_authority_1 = require("class-variance-authority");
const utils_1 = require("../../../lib/utils");
const icon_button_1 = require("../icon-button");
const lucide_react_1 = require("lucide-react");
const alertVariants = (0, class_variance_authority_1.cva)('alert', {
    variants: {
        variant: {
            default: '',
            informative: 'alert-informative',
            destructive: 'alert-destructive',
            warning: 'alert-warning',
            success: 'alert-success'
        }
    },
    defaultVariants: {
        variant: 'default'
    }
});
function Alert({ className, variant, ...props }) {
    return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "alert", role: "alert", className: (0, utils_1.cn)(alertVariants({ variant }), className), ...props }));
}
function AlertTitle({ className, ...props }) {
    return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "alert-title", className: (0, utils_1.cn)('alert-title', className), ...props }));
}
function AlertDescription({ className, ...props }) {
    return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "alert-description", className: (0, utils_1.cn)('alert-description', className), ...props }));
}
function AlertActions({ className, ...props }) {
    return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "alert-actions", className: (0, utils_1.cn)('alert-actions', className), ...props }));
}
function AlertTopAction({ className, ...props }) {
    return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "alert-top-action", className: (0, utils_1.cn)('alert-top-action', className), ...props }));
}
function AlertClose({ className, ...props }) {
    return ((0, jsx_runtime_1.jsx)(AlertTopAction, { children: (0, jsx_runtime_1.jsx)(icon_button_1.IconButton, { className: (0, utils_1.cn)('alert-close', className), variant: "outline", size: "small", rounded: true, ...props, children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, {}) }) }));
}
