import Link from 'next/link'; import { t } from '@/i18n'; import { routes } from '@/lib/site'; import { Logo } from '@/components/brand/Logo'; import { MoreMenu } from './more-menu'; import { NavLinks } from './nav-links'; import { SearchTrigger } from './search-trigger'; import { ThemeToggle } from './theme-toggle'; /** Primary desktop navigation (order from the product spec); everything else lives under "More". */ export const PRIMARY_NAV = [ { key: 'nav.explore', href: routes.explore() }, { key: 'nav.countries', href: routes.countries() }, { key: 'nav.compare', href: routes.compare() }, { key: 'nav.rankings', href: routes.rankings() }, { key: 'nav.indicators', href: routes.indicators() }, { key: 'nav.changes', href: routes.changes() }, ] as const; export const MORE_NAV: ReadonlyArray<{ key: string; href: string; group: 'explore' | 'reference' }> = [ { key: 'nav.regions', href: routes.regions(), group: 'explore' }, { key: 'nav.trajectories', href: routes.trajectories(), group: 'explore' }, { key: 'nav.scatter', href: routes.scatter(), group: 'explore' }, { key: 'nav.finder', href: routes.finder(), group: 'explore' }, { key: 'nav.extremes', href: routes.extremes(), group: 'explore' }, { key: 'nav.peers', href: routes.peers(), group: 'explore' }, { key: 'nav.stories', href: routes.stories(), group: 'explore' }, { key: 'nav.sources', href: routes.sources(), group: 'reference' }, { key: 'nav.api', href: routes.api(), group: 'reference' }, { key: 'nav.downloads', href: routes.download(), group: 'reference' }, { key: 'nav.updates', href: routes.updates(), group: 'reference' }, { key: 'nav.methodology', href: routes.methodology(), group: 'reference' }, ]; /** Sticky top bar: wordmark, primary nav (md+), "More" menu, search trigger, theme toggle. 52 px tall on mobile, 56 on md. */ export function SiteHeader() { return (
({ href: n.href, label: t(n.key) }))} />
({ href: n.href, label: t(n.key as 'nav.regions'), group: n.group }))} />
); }