import * as React from 'react'; import { cn, Button, Input, Search } from '@tree-e2e-1770175251/ui'; import { Bell, Menu } from 'lucide-react'; export interface HeaderProps { /** Title to display in the header */ title?: string; /** Breadcrumb or secondary navigation element */ breadcrumb?: React.ReactNode; /** Whether to show the search input */ showSearch?: boolean; /** Placeholder text for search input */ searchPlaceholder?: string; /** Search input change handler */ onSearch?: (value: string) => void; /** Custom actions to display on the right side */ actions?: React.ReactNode; /** User menu or avatar element */ userMenu?: React.ReactNode; /** Mobile menu toggle handler */ onMenuToggle?: () => void; /** Whether to show the menu toggle button (for mobile) */ showMenuToggle?: boolean; /** Additional class names */ className?: string; } /** * Header provides the top navigation bar for dashboard applications. * Supports title, breadcrumbs, search, notifications, and user menu. * * @example *
console.log(value)} * userMenu={} * /> */ export function Header({ title, breadcrumb, showSearch = false, searchPlaceholder = 'Search...', onSearch, actions, userMenu, onMenuToggle, showMenuToggle = false, className, }: HeaderProps) { const [searchValue, setSearchValue] = React.useState(''); const handleSearchChange = (e: React.ChangeEvent) => { setSearchValue(e.target.value); onSearch?.(e.target.value); }; return (
{/* Left section */}
{showMenuToggle && ( )} {breadcrumb ? (
{breadcrumb}
) : title ? (

{title}

) : null}
{/* Center section - Search */} {showSearch && (
)} {/* Right section */}
{actions} {/* Notifications */} {/* User menu */} {userMenu && (
{userMenu}
)}
); }