import { BarChart3, BellRing, Boxes, CalendarClock, Files, Filter, Gauge, LayoutDashboard, LayoutGrid, KeyRound, ListChecks, MessageSquare, ScrollText, Settings as SettingsIcon, Table2, Upload, UserCog, Users, Wrench, type LucideIcon, } from 'lucide-react' export interface NavItem { to: string; label: string; icon: LucideIcon; ownerOnly?: boolean /** Match this route exactly (for parents like /documents whose children have their own items). */ end?: boolean } export interface NavGroup { label: string; items: NavItem[] } /** * Grouped sidebar. Six intent-based groups (D30): Overview (Home hub + My Day), * Work (daily queues), Clients & billing (the book), Catalog, Insight, Admin. * "New document" is an action (Home card / Documents "+ New" / Ctrl-K), not a nav row. */ export const NAV_GROUPS: NavGroup[] = [ { label: 'Overview', items: [ { to: '/home', label: 'Home', icon: LayoutGrid }, { to: '/', label: 'Dashboard', icon: LayoutDashboard }, ], }, { label: 'Work', items: [ { to: '/pipeline', label: 'Pipeline', icon: Filter }, { to: '/reminders', label: 'Reminders', icon: BellRing }, { to: '/tickets', label: 'Tickets', icon: Wrench }, { to: '/projects', label: 'Onboarding', icon: ListChecks }, ], }, { label: 'Clients & billing', items: [ { to: '/clients', label: 'Clients', icon: Users }, { to: '/documents', label: 'Documents', icon: Files, end: true }, { to: '/renewals', label: 'Renewals', icon: CalendarClock }, { to: '/sms-balances', label: 'SMS credits', icon: MessageSquare }, ], }, { label: 'Catalog', items: [ { to: '/modules', label: 'Modules', icon: Boxes }, { to: '/module-data', label: 'Module data', icon: Table2 }, { to: '/portals', label: 'Portals', icon: KeyRound }, ], }, { label: 'Insight', items: [ { to: '/mis', label: 'MIS cockpit', icon: Gauge, ownerOnly: true }, { to: '/reports', label: 'Reports', icon: BarChart3 }, ], }, { label: 'Admin', items: [ { to: '/employees', label: 'Employees', icon: UserCog, ownerOnly: true }, { to: '/import', label: 'APEX import', icon: Upload, ownerOnly: true }, { to: '/audit', label: 'Audit log', icon: ScrollText, ownerOnly: true }, { to: '/settings', label: 'Settings', icon: SettingsIcon }, ], }, ]