TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1/**2 * Main navigation (CLAUDE.md §2). Single source of truth for header, mobile menu, footer and sitemap.3 * Routes are grouped so the header stays legible; every module remains reachable.4 */5export interface NavItem {6 label: string;7 href: string;8 description: string;9 group: 'discover' | 'markets' | 'portfolio' | 'tools' | 'company';10 /** show in the primary header bar on desktop */11 primary?: boolean;12}1314export const NAV: NavItem[] = [15 { label: 'Home', href: '/', description: 'The global market for collectibles', group: 'discover' },16 { label: 'Explore', href: '/explore', description: 'Browse tracked assets across every category', group: 'discover', primary: true },17 { label: 'Markets', href: '/markets', description: 'Category markets, movers and volume', group: 'markets', primary: true },18 { label: 'Categories', href: '/categories', description: 'The RareIndex taxonomy', group: 'discover' },19 { label: 'RareIndex', href: '/rareindex', description: 'RARE and its subindices', group: 'markets', primary: true },20 { label: 'Screener', href: '/screener', description: 'Filter and rank assets by valuation, liquidity, returns and supply', group: 'markets' },21 { label: 'Trending', href: '/trending', description: 'What collectors are moving into', group: 'markets' },22 { label: 'Sales', href: '/sales', description: 'Latest observed transactions', group: 'markets', primary: true },23 { label: 'Listings', href: '/listings', description: 'Live asks across marketplaces', group: 'markets' },24 { label: 'Auctions', href: '/auctions', description: 'Lots, results and auction houses', group: 'markets' },25 { label: 'Price History', href: '/price-history', description: 'Historical series for any asset', group: 'tools' },26 { label: 'Collections', href: '/collections', description: 'Track your portfolio', group: 'portfolio', primary: true },27 { label: 'Watchlist', href: '/watchlist', description: 'Assets, sets and markets you follow', group: 'portfolio' },28 { label: 'Compare', href: '/compare', description: 'Compare assets and categories side by side', group: 'tools' },29 { label: 'Scanner', href: '/scanner', description: 'Identify and price from a photo or URL', group: 'tools', primary: true },30 { label: 'AI Research', href: '/research', description: 'Ask questions over structured market data', group: 'tools' },31 { label: 'Market Map', href: '/market-map', description: 'Heatmap of category performance', group: 'markets' },32 { label: 'Grading', href: '/grading', description: 'Graders, populations and premiums', group: 'tools' },33 { label: 'Auction Calendar', href: '/auctions/calendar', description: 'Upcoming auctions worldwide', group: 'markets' },34 { label: 'News', href: '/news', description: 'Market news and record sales', group: 'discover' },35 { label: 'Data', href: '/data', description: 'Coverage, sources and exports', group: 'company' },36 { label: 'Methodology', href: '/methodology', description: 'How RIV, confidence, scores and indices are computed', group: 'company' },37 { label: 'API', href: '/api-docs', description: 'Programmatic access to RareIndex data', group: 'company' },38 { label: 'About', href: '/about', description: 'Mission, disclaimers and contact', group: 'company' },39];4041export const NAV_GROUPS: Array<{ id: NavItem['group']; label: string }> = [42 { id: 'discover', label: 'Discover' },43 { id: 'markets', label: 'Markets' },44 { id: 'portfolio', label: 'Portfolio' },45 { id: 'tools', label: 'Tools' },46 { id: 'company', label: 'Company' },47];4849export const PRIMARY_NAV = NAV.filter((n) => n.primary);50