"use client" import type { ComponentProps, ReactNode } from "react" import { Button } from "@/components/ui/button" import { Separator } from "@/components/ui/separator" import { SidebarTrigger } from "@/components/ui/sidebar" import { cn } from "@/lib/utils" interface SiteHeaderProps { title: string lead?: string primaryAction?: ReactNode secondaryAction?: ReactNode primaryAlignment?: "right" | "center" } function SiteHeaderBase({ title, lead, primaryAction, secondaryAction, primaryAlignment = "right", }: SiteHeaderProps) { const actionsClassName = primaryAlignment === "center" && !secondaryAction ? "flex w-full flex-col items-stretch gap-2 sm:w-full sm:flex-row sm:items-center sm:justify-center" : "flex w-full flex-col items-stretch gap-2 sm:w-auto sm:flex-row sm:items-center" return (
{lead ? {lead} : null}

{title}

{secondaryAction} {primaryAction}
) } export function SiteHeaderPrimaryButton({ children, className, ...props }: ComponentProps) { return ( ) } export function SiteHeaderSecondaryButton({ children, className, ...props }: ComponentProps) { return ( ) } type SiteHeaderComponent = ((props: SiteHeaderProps) => JSX.Element) & { PrimaryButton: typeof SiteHeaderPrimaryButton SecondaryButton: typeof SiteHeaderSecondaryButton } export const SiteHeader: SiteHeaderComponent = Object.assign(SiteHeaderBase, { PrimaryButton: SiteHeaderPrimaryButton, SecondaryButton: SiteHeaderSecondaryButton, })