/** * Main navigation (CLAUDE.md ยง2). Single source of truth for header, mobile menu, footer and sitemap. * Routes are grouped so the header stays legible; every module remains reachable. */ export interface NavItem { label: string; href: string; description: string; group: 'discover' | 'markets' | 'portfolio' | 'tools' | 'company'; /** show in the primary header bar on desktop */ primary?: boolean; } export const NAV: NavItem[] = [ { label: 'Home', href: '/', description: 'The global market for collectibles', group: 'discover' }, { label: 'Explore', href: '/explore', description: 'Browse tracked assets across every category', group: 'discover', primary: true }, { label: 'Markets', href: '/markets', description: 'Category markets, movers and volume', group: 'markets', primary: true }, { label: 'Categories', href: '/categories', description: 'The RareIndex taxonomy', group: 'discover' }, { label: 'RareIndex', href: '/rareindex', description: 'RARE and its subindices', group: 'markets', primary: true }, { label: 'Screener', href: '/screener', description: 'Filter and rank assets by valuation, liquidity, returns and supply', group: 'markets' }, { label: 'Trending', href: '/trending', description: 'What collectors are moving into', group: 'markets' }, { label: 'Sales', href: '/sales', description: 'Latest observed transactions', group: 'markets', primary: true }, { label: 'Listings', href: '/listings', description: 'Live asks across marketplaces', group: 'markets' }, { label: 'Auctions', href: '/auctions', description: 'Lots, results and auction houses', group: 'markets' }, { label: 'Price History', href: '/price-history', description: 'Historical series for any asset', group: 'tools' }, { label: 'Collections', href: '/collections', description: 'Track your portfolio', group: 'portfolio', primary: true }, { label: 'Watchlist', href: '/watchlist', description: 'Assets, sets and markets you follow', group: 'portfolio' }, { label: 'Compare', href: '/compare', description: 'Compare assets and categories side by side', group: 'tools' }, { label: 'Scanner', href: '/scanner', description: 'Identify and price from a photo or URL', group: 'tools', primary: true }, { label: 'AI Research', href: '/research', description: 'Ask questions over structured market data', group: 'tools' }, { label: 'Market Map', href: '/market-map', description: 'Heatmap of category performance', group: 'markets' }, { label: 'Grading', href: '/grading', description: 'Graders, populations and premiums', group: 'tools' }, { label: 'Auction Calendar', href: '/auctions/calendar', description: 'Upcoming auctions worldwide', group: 'markets' }, { label: 'News', href: '/news', description: 'Market news and record sales', group: 'discover' }, { label: 'Data', href: '/data', description: 'Coverage, sources and exports', group: 'company' }, { label: 'Methodology', href: '/methodology', description: 'How RIV, confidence, scores and indices are computed', group: 'company' }, { label: 'API', href: '/api-docs', description: 'Programmatic access to RareIndex data', group: 'company' }, { label: 'About', href: '/about', description: 'Mission, disclaimers and contact', group: 'company' }, ]; export const NAV_GROUPS: Array<{ id: NavItem['group']; label: string }> = [ { id: 'discover', label: 'Discover' }, { id: 'markets', label: 'Markets' }, { id: 'portfolio', label: 'Portfolio' }, { id: 'tools', label: 'Tools' }, { id: 'company', label: 'Company' }, ]; export const PRIMARY_NAV = NAV.filter((n) => n.primary);