'use client'; import { Github, Database, Boxes, ExternalLink, MessageSquare, Code } from 'lucide-react'; import { clsx } from 'clsx'; import { PROJECT_CONFIG, LINKS } from '@/config/constants'; import { WarmupIndicator } from '@/components/Chat/WarmupIndicator'; import type { AppMode } from '@/types'; interface HeaderProps { mode?: AppMode; onModeChange?: (mode: AppMode) => void; } interface BadgeProps { href: string; icon: React.ReactNode; label: string; variant: 'default' | 'accent' | 'highlight'; } function Badge({ href, icon, label, variant }: BadgeProps) { const variantStyles = { default: 'bg-zinc-800/80 hover:bg-zinc-700/80 text-zinc-300 border-zinc-700/50', accent: 'bg-teal-900/30 hover:bg-teal-800/40 text-teal-400 border-teal-700/40', highlight: 'bg-amber-900/30 hover:bg-amber-800/40 text-amber-400 border-amber-700/40', }; return ( {icon} {label} ); } interface ModeToggleProps { mode: AppMode; onModeChange: (mode: AppMode) => void; } function ModeToggle({ mode, onModeChange }: ModeToggleProps) { return (
); } export function Header({ mode = 'chat', onModeChange }: HeaderProps) { return (
{/* Title - far left */}

{PROJECT_CONFIG.name}

{PROJECT_CONFIG.description}

{/* Mode Toggle - center */} {onModeChange && (
)} {/* Badges - far right */}
} label="GitHub" variant="default" /> } label="Dataset" variant="highlight" /> } label="Models" variant="accent" />
); }