diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx
index bf541d6..dacf9b7 100644
--- a/src/app/dashboard/layout.tsx
+++ b/src/app/dashboard/layout.tsx
@@ -95,9 +95,10 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
- } label="Overview" active={pathname === "/dashboard"} />
- } label="Leaderboard" active={pathname.startsWith("/dashboard/leaderboard")} />
+ } label="Overview" active={pathname === "/dashboard"} />
+ } label="Leaderboard" active={pathname.startsWith("/dashboard/leaderboard")} />
}
label="Syllabus Tracker"
@@ -105,6 +106,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("chapter-wise-progress-tracking")}
/>
}
label="Mock Tests (CBT)"
@@ -112,6 +114,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("weekly-test-series")}
/>
}
label="Quick Notes"
@@ -119,6 +122,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("detailed-performance-analytics")}
/>
}
label="Performance Analytics"
@@ -126,6 +130,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("detailed-performance-analytics")}
/>
}
label="Doubt Forum"
@@ -146,6 +151,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
}
label="AI Tutor"
@@ -153,6 +159,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("ai-tutor-chat")}
/>
}
label="PrepPilot AI"
@@ -160,6 +167,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("ai-tutor-chat")}
/>
}
label="Exam Readiness"
@@ -167,6 +175,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("detailed-performance-analytics")}
/>
}
label="College Predictor"
@@ -174,6 +183,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("college-predictor")}
/>
}
label="Exam Strategy"
@@ -181,6 +191,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("exam-day-strategy")}
/>
}
label="AI Study Plan"
@@ -188,6 +199,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("personalized-study-plan")}
/>
}
label="Time Optimization"
@@ -195,6 +207,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("personalized-study-plan")}
/>
}
label="Mistake Heatmap"
@@ -202,6 +215,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("ai-mistake-tracking")}
/>
}
label="Weekly Progress"
@@ -209,6 +223,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
isLocked={!hasAccessTo("detailed-performance-analytics")}
/>
}
label="Mistake Analyzer"
@@ -332,28 +347,49 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
)
}
-function NavItem({ href, icon, label, active, isLocked }: { href: string, icon: React.ReactNode, label: string, active?: boolean, isLocked?: boolean }) {
+function NavItem({ href, icon, label, active, isLocked, section }: { href: string, icon: React.ReactNode, label: string, active?: boolean, isLocked?: boolean, section?: "pro" | "ai" }) {
+ // Section-aware active color tokens (light mode only, dark mode falls back to cyan)
+ const activeClasses = active
+ ? section === "pro"
+ ? "bg-yellow-50 light:bg-yellow-50 text-yellow-700 dark:bg-[#00F0FF]/10 dark:text-[#00F0FF] font-semibold border border-yellow-300/60 dark:border-[#00F0FF]/20 shadow-[0_0_12px_-4px_rgba(234,179,8,0.2)] dark:shadow-[0_0_12px_-4px_rgba(0,240,255,0.3)]"
+ : section === "ai"
+ ? "bg-cyan-50 dark:bg-[#00F0FF]/10 text-cyan-800 dark:text-[#00F0FF] font-semibold border border-cyan-300/60 dark:border-[#00F0FF]/20 shadow-[0_0_12px_-4px_rgba(6,182,212,0.2)] dark:shadow-[0_0_12px_-4px_rgba(0,240,255,0.3)]"
+ : "bg-[#00F0FF]/10 text-[#00F0FF] font-semibold border border-[#00F0FF]/20 shadow-[0_0_12px_-4px_rgba(0,240,255,0.3)]"
+ : isLocked
+ ? "text-muted-foreground/40 cursor-not-allowed border border-transparent"
+ : "text-muted-foreground/80 hover:bg-secondary/60 hover:text-foreground border border-transparent hover:border-border/40"
+
+ const iconActiveClass = active
+ ? section === "pro"
+ ? "text-yellow-600 dark:text-[#00F0FF]"
+ : section === "ai"
+ ? "text-cyan-700 dark:text-[#00F0FF]"
+ : "text-[#00F0FF]"
+ : isLocked
+ ? "text-muted-foreground/30"
+ : "text-muted-foreground/60 group-hover:text-foreground/80"
+
+ const activeBarClass = active
+ ? section === "pro"
+ ? "w-1 h-4 rounded-full bg-yellow-500 dark:bg-[#00F0FF] shrink-0 shadow-[0_0_6px_rgba(234,179,8,0.6)] dark:shadow-[0_0_6px_rgba(0,240,255,0.8)]"
+ : section === "ai"
+ ? "w-1 h-4 rounded-full bg-cyan-600 dark:bg-[#00F0FF] shrink-0 shadow-[0_0_6px_rgba(6,182,212,0.6)] dark:shadow-[0_0_6px_rgba(0,240,255,0.8)]"
+ : "w-1 h-4 rounded-full bg-[#00F0FF] shrink-0 shadow-[0_0_6px_rgba(0,240,255,0.8)]"
+ : ""
+
return (
-
+
{icon}
{label}
{isLocked && }
- {active && }
+ {active && }
)
}