| import { Icon } from "./Icon"; |
|
|
| type Props = { |
| |
| onNewRequisition?: () => void; |
| }; |
|
|
| export function Header({ onNewRequisition }: Props) { |
| return ( |
| <header className="h-16 border-b border-outline-variant bg-surface z-50 shrink-0"> |
| <div className="mx-auto flex h-full w-full max-w-6xl items-center justify-between px-gutter"> |
| <div className="flex items-center gap-8"> |
| <div className="flex flex-col"> |
| <h1 className="font-headline-md text-xl font-bold text-primary leading-tight"> |
| Procure |
| </h1> |
| <p className="text-[10px] uppercase tracking-wider text-secondary font-bold -mt-1"> |
| AI Agent |
| </p> |
| </div> |
| <nav className="hidden md:flex items-center h-full"> |
| <a |
| className="flex items-center gap-2 px-4 h-16 border-b-2 border-primary text-primary font-semibold transition-all" |
| href="#chat" |
| > |
| <span className="font-label-caps text-xs">AI Chat</span> |
| </a> |
| <a |
| className="flex items-center gap-2 px-4 h-16 border-b-2 border-transparent text-secondary hover:text-primary transition-all" |
| href="#requests" |
| > |
| <Icon name="assignment" className="text-xl" /> |
| <span className="font-label-caps text-xs">Requests</span> |
| </a> |
| <a |
| className="flex items-center gap-2 px-4 h-16 border-b-2 border-transparent text-secondary hover:text-primary transition-all" |
| href="#dashboard" |
| > |
| <Icon name="dashboard" className="text-xl" /> |
| <span className="font-label-caps text-xs">Dashboard</span> |
| </a> |
| <a |
| className="flex items-center gap-2 px-4 h-16 border-b-2 border-transparent text-secondary hover:text-primary transition-all" |
| href="#settings" |
| > |
| <Icon name="settings" className="text-xl" /> |
| <span className="font-label-caps text-xs">Settings</span> |
| </a> |
| </nav> |
| </div> |
| <div className="flex items-center gap-6"> |
| <div className="relative w-64 hidden lg:block"> |
| <Icon |
| name="search" |
| className="absolute left-3 top-1/2 -translate-y-1/2 text-outline text-sm" |
| /> |
| <input |
| className="w-full pl-9 pr-4 py-1.5 bg-surface-container-low border border-outline-variant rounded-full focus:outline-none focus:border-primary text-body-sm" |
| placeholder="Search records..." |
| type="search" |
| aria-label="Search records" |
| /> |
| </div> |
| <button |
| type="button" |
| onClick={() => onNewRequisition?.()} |
| className="bg-primary text-on-primary px-4 py-1.5 rounded-full text-xs font-bold flex items-center gap-2 hover:opacity-90 transition-opacity" |
| > |
| <Icon name="add" className="text-sm" /> |
| New Requisition |
| </button> |
| <div className="flex items-center gap-3 pl-4 border-l border-outline-variant"> |
| <button |
| type="button" |
| className="text-secondary hover:text-primary transition-colors" |
| aria-label="Notifications" |
| > |
| <Icon name="notifications" /> |
| </button> |
| <div className="w-8 h-8 rounded-full overflow-hidden border border-outline-variant"> |
| <img |
| alt="User profile" |
| src="https://lh3.googleusercontent.com/aida-public/AB6AXuAB8IlU467es5NJk5X-KZ5aX33_ZJkLGC895NLoBOZaN8KZKwZZ4kehChNkwJqRDgUk4de9KdRpGG0-upWuOC20Uf7BU7O_T_Iu3Dtn9ORKohW57PyR0zFpC4WDe6mynmt3Ldl2U1XyvncN82W91Zqx3hPt1gxCs_LJINzsPfHfTW_apu_mST5BRuarVGGbv_F2b6uXeOgoPSsHSbiuvssQt3D_oPLxUPYFhfpO-RjqJxl-g4thcHTG0NMflquQxR5QLcnLR0X9UYwR" |
| width={32} |
| height={32} |
| className="w-full h-full object-cover" |
| /> |
| </div> |
| </div> |
| </div> |
| </div> |
| </header> |
| ); |
| } |
|
|