import type { ElementType, HTMLAttributes, ReactNode } from "react";
function cx(...classNames: Array) {
return classNames.filter(Boolean).join(" ");
}
type PageHeaderProps = Omit, "title"> & {
actions?: ReactNode;
icon?: ReactNode;
as?: ElementType;
description?: ReactNode;
eyebrow?: ReactNode;
sticky?: boolean;
title: ReactNode;
titleAs?: ElementType;
};
export function PageHeader({
actions,
as,
className,
description,
eyebrow,
icon,
sticky = false,
title,
titleAs,
...props
}: PageHeaderProps) {
const Root = as ?? "header";
const Title = titleAs ?? "h1";
return (
{icon ? (
{icon}
) : null}
{eyebrow ? (
{eyebrow}
) : null}
{title}
{description ? (
{description}
) : null}
{actions ? (
{actions}
) : null}
);
}