import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { cn } from "../lib/utils";
/**
 * Reusable page header component with icon, title, and optional description.
 * Used for consistent page headers across the application.
 */
export function PageHeader({ icon, title, description, className, iconClassName, titleClassName, descriptionClassName, variant = "default", showIconBox = true, actions, testId = "page-header", }) {
    const isCompact = variant === "compact";
    const isWorkspace = variant === "workspace";
    return (_jsx("div", { className: cn("shrink-0", isWorkspace ? "bg-transparent px-0 py-0" : "bg-white", !isWorkspace && (isCompact ? "px-6 py-4" : "px-8 pt-10 pb-6"), className), "data-testid": testId, children: _jsxs("div", { className: cn("flex gap-4", isWorkspace ? "items-start" : "items-center"), children: [icon && (_jsx("div", { className: cn("flex shrink-0 items-center justify-center", showIconBox
                        ? cn("bg-neutral-grey-100 shadow-neutral-grey-100/10 rounded-2xl text-white shadow-xl", isCompact ? "h-10 w-10" : "h-12 w-12")
                        : "text-neutral-grey-50", iconClassName), children: icon })), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("h1", { className: cn("text-neutral-grey-100 text-2xl font-medium", isWorkspace
                                ? "truncate leading-tight tracking-normal"
                                : "tracking-tight", titleClassName), children: title }), description && (_jsx("p", { className: cn("text-neutral-grey-50", isWorkspace
                                ? "mt-2 max-w-3xl text-sm leading-6"
                                : cn("font-medium", isCompact ? "text-sm" : "text-[15px]"), descriptionClassName), children: description }))] }), actions && (_jsx("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: actions }))] }) }));
}
//# sourceMappingURL=PageHeader.js.map