@props(['role' => 'admin']) @php // Explicit URL checking rules to highlight parent blocks and auto-expand lists cleanly $isAcademicsActive = request()->is('admin/academic-years*') || request()->is('admin/subjects*') || request()->is('admin/classes*') || request()->is('admin/enrollment*'); $isPeopleActive = request()->is('admin/teachers*') || request()->is('admin/students*') || request()->is('admin/parents*'); $isOperationsActive = request()->is('admin/timetable*') || request()->is('admin/sessions*') || request()->is('admin/assignments*') || request()->is('admin/exams*') || request()->is('admin/resources*'); $isAnalyticsActive = request()->is('admin/ops*') || request()->is('admin/interventions*'); $isFinanceActive = request()->is('admin/finance*') && !request()->is('admin/finance/payroll*'); $isGovernanceActive = request()->is('admin/governance*'); // Premium UI Navigation with dynamic SVG stroke icons matching the Tailwind palette $gridIcon = ''; $academicIcon = ''; $peopleIcon = ''; $opsIcon = ''; $analyticsIcon = ''; $financeIcon = ''; $payrollIcon = ''; $governanceIcon = ''; $intelligenceIcon = ''; $videoIcon = ''; $docCheckIcon = ''; $docTextIcon = ''; $pencilIcon = ''; $mapIcon = ''; $awardIcon = ''; $inboxIcon = ''; $trendUpIcon = ''; $checkCircleIcon = ''; $taskListIcon = ''; $navItems = match($role) { 'admin' => [ ['label' => 'Dashboard', 'icon' => $gridIcon, 'url' => url('/admin/dashboard'), 'active' => request()->is('admin/dashboard')], ['label' => 'Academics', 'icon' => $academicIcon, 'url' => '#', 'active' => $isAcademicsActive, 'children' => [ ['label' => 'Academic Years', 'url' => url('/admin/academic-years'), 'active' => request()->is('admin/academic-years*')], ['label' => 'Subjects', 'url' => url('/admin/subjects'), 'active' => request()->is('admin/subjects*')], ['label' => 'Classes', 'url' => url('/admin/classes'), 'active' => request()->is('admin/classes*')], ['label' => 'Enrollment', 'url' => url('/admin/enrollment'), 'active' => request()->is('admin/enrollment*')], ]], ['label' => 'People', 'icon' => $peopleIcon, 'url' => '#', 'active' => $isPeopleActive, 'children' => [ ['label' => 'Onboard Students 🎒', 'url' => url('/admin/students/create'), 'active' => request()->is('admin/students/create')], ['label' => 'Teachers', 'url' => url('/admin/teachers'), 'active' => request()->is('admin/teachers*')], ['label' => 'Students Directory', 'url' => url('/admin/students'), 'active' => request()->is('admin/students') || request()->is('admin/students/*') && !request()->is('admin/students/create')], ['label' => 'Parents', 'url' => url('/admin/parents'), 'active' => request()->is('admin/parents*')], ]], ['label' => 'Operations', 'icon' => $opsIcon, 'url' => '#', 'active' => $isOperationsActive, 'children' => [ ['label' => 'Timetable', 'url' => url('/admin/timetable'), 'active' => request()->is('admin/timetable*')], ['label' => 'Sessions', 'url' => url('/admin/sessions'), 'active' => request()->is('admin/sessions*')], ['label' => 'Assignments', 'url' => url('/admin/assignments'), 'active' => request()->is('admin/assignments*')], ['label' => 'Exams', 'url' => url('/admin/exams'), 'active' => request()->is('admin/exams*')], ['label' => 'Resources', 'url' => url('/admin/resources'), 'active' => request()->is('admin/resources*')], ]], ['label' => 'Analytics Hub', 'icon' => $analyticsIcon, 'url' => '#', 'active' => $isAnalyticsActive, 'children' => [ ['label' => 'Command Center', 'url' => url('/admin/analytics/command-center'), 'active' => request()->is('admin/analytics/command-center*')], ['label' => 'Risk Dashboard', 'url' => url('/admin/analytics/risk-dashboard'), 'active' => request()->is('admin/analytics/risk-dashboard*')], ['label' => 'Telemetry', 'url' => url('/admin/analytics/telemetry'), 'active' => request()->is('admin/analytics/telemetry*')], ]], ['label' => 'Finance', 'icon' => $financeIcon, 'url' => '#', 'active' => $isFinanceActive, 'children' => [ ['label' => 'Fee Categories', 'url' => url('/admin/finance/fee-categories'), 'active' => request()->is('admin/finance/fee-categories*')], ['label' => 'Fee Structures', 'url' => url('/admin/finance/fee-structures'), 'active' => request()->is('admin/finance/fee-structures*')], ['label' => 'Invoices', 'url' => url('/admin/finance/invoices'), 'active' => request()->is('admin/finance/invoices*')], ['label' => 'Expenses', 'url' => url('/admin/finance/expenses'), 'active' => request()->is('admin/finance/expenses*')], ['label' => 'Budget Center', 'url' => url('/admin/finance/budget'), 'active' => request()->is('admin/finance/budget*')], ]], ['label' => 'Payroll Engine', 'icon' => $payrollIcon, 'url' => url('/admin/finance/payroll'), 'active' => request()->is('admin/finance/payroll*')], ['label' => 'Governance', 'icon' => $governanceIcon, 'url' => '#', 'active' => $isGovernanceActive, 'children' => [ ['label' => 'SOC Console', 'url' => url('/admin/governance/soc'), 'active' => request()->is('admin/governance/soc*')], ['label' => 'Case Management', 'url' => url('/admin/governance/cases'), 'active' => request()->is('admin/governance/cases*')], ['label' => 'Consent Registry', 'url' => url('/admin/governance/consent-registry'), 'active' => request()->is('admin/governance/consent-registry*')], ]], ['label' => 'Intelligence', 'icon' => $intelligenceIcon, 'url' => '#', 'active' => $isAnalyticsActive, 'children' => [ ['label' => 'Mission Control', 'url' => url('/admin/intelligence/mission-control'), 'active' => request()->is('admin/intelligence/mission-control*')], ['label' => 'Rule Builder', 'url' => url('/admin/intelligence/rule-builder'), 'active' => request()->is('admin/intelligence/rule-builder*')], ['label' => 'ROI Leaderboard', 'url' => url('/admin/intelligence/roi-leaderboard'), 'active' => request()->is('admin/intelligence/roi-leaderboard*')], ]], ], 'teacher' => [ ['label' => 'Dashboard', 'icon' => $gridIcon, 'url' => url('/teacher/dashboard'), 'active' => request()->is('teacher/dashboard')], ['label' => 'Sessions Center', 'icon' => $videoIcon, 'url' => url('/teacher/sessions'), 'active' => request()->is('teacher/sessions*')], ['label' => 'Gradebook', 'icon' => $docCheckIcon, 'url' => url('/teacher/gradebook'), 'active' => request()->is('teacher/gradebook*')], ['label' => 'Report Cards', 'icon' => $docTextIcon, 'url' => url('/teacher/report-cards'), 'active' => request()->is('teacher/report-cards*')], ['label' => 'Assignments', 'icon' => $pencilIcon, 'url' => url('/teacher/assignments'), 'active' => request()->is('teacher/assignments*')], ['label' => 'Exams Engine', 'icon' => $docCheckIcon, 'url' => url('/teacher/exams'), 'active' => request()->is('teacher/exams*')], ['label' => 'Payroll Audit', 'icon' => $payrollIcon, 'url' => '/teacher/payroll-audit', 'active' => request()->is('teacher/payroll-audit*')], ['label' => 'Finance Earnings', 'icon' => $financeIcon, 'url' => url('/teacher/finance/earnings'), 'active' => request()->is('teacher/finance/earnings*')], ['label' => 'Inbox', 'icon' => $inboxIcon, 'url' => url('/communication/inbox'), 'active' => request()->is('communication/inbox*')], ], 'student' => [ ['label' => 'Dashboard', 'icon' => $gridIcon, 'url' => url('/student/dashboard'), 'active' => request()->is('student/dashboard')], ['label' => 'My Sessions', 'icon' => $videoIcon, 'url' => url('/student/sessions'), 'active' => request()->is('student/sessions*')], ['label' => 'Gradebook', 'icon' => $analyticsIcon, 'url' => url('/student/gradebook'), 'active' => request()->is('student/gradebook*')], ['label' => 'Exams', 'icon' => $docCheckIcon, 'url' => url('/student/exams'), 'active' => request()->is('student/exams*')], ['label' => 'Journey Tracker', 'icon' => $mapIcon, 'url' => url('/student/journey'), 'active' => request()->is('student/journey*')], ['label' => 'Certificates', 'icon' => $awardIcon, 'url' => url('/student/certificates'), 'active' => request()->is('student/certificates*')], ['label' => 'Inbox', 'icon' => $inboxIcon, 'url' => url('/communication/inbox'), 'active' => request()->is('communication/inbox*')], ], 'parent' => [ ['label' => 'Dashboard', 'icon' => $gridIcon, 'url' => url('/parent/dashboard'), 'active' => request()->is('parent/dashboard')], ['label' => 'OPS Reputation', 'icon' => $trendUpIcon, 'url' => url('/credentials/ops-reputation'), 'active' => request()->is('credentials/ops-reputation*')], ['label' => 'Attendance', 'icon' => $checkCircleIcon, 'url' => url('/parent/attendance'), 'active' => request()->is('parent/attendance*')], ['label' => 'Action Items', 'icon' => $taskListIcon, 'url' => url('/parent/action-items'), 'active' => request()->is('parent/action-items*')], ['label' => 'Invoices & Fees', 'icon' => $financeIcon, 'url' => url('/parent/finance/invoices'), 'active' => request()->is('parent/finance/invoices*')], ['label' => 'Inbox Messages', 'icon' => $inboxIcon, 'url' => url('/communication/inbox'), 'active' => request()->is('communication/inbox*')], ], default => [], }; @endphp {{-- DESKTOP SIDEBAR PANEL (FIXED) --}} {{-- MOBILE SIDEBAR OVERLAY DRAWER --}}