import { css } from 'styled-system/css'; import { NavigationMenu } from '../NavigationMenu'; import { DiscourserLogo } from '../Icons/DiscourserLogo'; import { DashboardIcon } from '../Icons/DashboardIcon'; import { NotebookIcon } from '../Icons/NotebookIcon'; import { ScenarioIcon } from '../Icons/ScenarioIcon'; import { HelpIcon } from '../Icons/HelpIcon'; import { AccountIcon } from '../Icons/AccountIcon'; import { ClockIcon } from '../Icons/ClockIcon'; import { RightArrowIcon } from '../Icons/RightArrowIcon'; import type { NavSection } from '../NavigationMenu/types'; export interface QuickStartScenario { title: string; level: 'beginner' | 'intermediate' | 'advanced'; duration: string; } export interface QuickStartPageProps { /** User's first name shown in the greeting */ userName: string; /** The first scenario queued for the user */ firstScenario?: QuickStartScenario; /** Currently active nav href */ activeHref?: string; /** Nav sections — defaults to the standard Discourser nav */ navSections?: NavSection[]; onStartPracticing?: () => void; onLearnAboutSetup?: () => void; onNavigate?: (href: string) => void; } const levelLabel: Record = { beginner: 'Beginner level', intermediate: 'Intermediate', advanced: 'Advanced', }; const levelColor: Record = { beginner: '#dcfce7', intermediate: '#fef9c3', advanced: '#fce7f3', }; const levelTextColor: Record = { beginner: '#15803d', intermediate: '#a16207', advanced: '#be185d', }; const DEFAULT_NAV_SECTIONS: NavSection[] = [ { value: 'dashboard', title: 'Dashboard', icon: , items: [ { label: 'Quick Start', href: '/dashboard/quick-start' }, { label: 'Resume Session', href: '/dashboard/resume' }, { label: 'Progress', href: '/dashboard/progress' }, { label: 'Momentum', href: '/dashboard/momentum' }, { label: 'Recent Session', href: '/dashboard/recent' }, ], }, { value: 'notebook', title: 'MyNotebook', icon: , items: [ { label: 'Knowledge Base', href: '/notebook/knowledge' }, { label: 'Session Library', href: '/notebook/sessions' }, { label: 'Decision Patterns', href: '/notebook/decisions' }, { label: 'Personal Insights', href: '/notebook/insights' }, ], }, { value: 'scenarios', title: 'Scenarios', icon: , items: [ { label: 'MyQueue', href: '/scenarios/queue' }, { label: 'Conversation Studio', href: '/scenarios/studio' }, { label: 'By Level', href: '/scenarios/level' }, { label: 'By Skill', href: '/scenarios/skill' }, ], }, { value: 'help', title: 'Help', icon: , items: [ { label: 'How it Works', href: '/help/how-it-works' }, { label: 'Practice Tips', href: '/help/tips' }, { label: 'Technical Support', href: '/help/support' }, { label: 'Context', href: '/help/context' }, { label: 'Contact Support', href: '/help/contact' }, ], }, { value: 'account', title: 'Account', icon: , items: [ { label: 'Profile', href: '/account/profile' }, { label: 'User Preferences', href: '/account/preferences' }, ], }, ]; const DEFAULT_SCENARIO: QuickStartScenario = { title: 'UX Interview Practice', level: 'beginner', duration: '~15-20 minutes', }; export function QuickStartPage({ userName, firstScenario = DEFAULT_SCENARIO, activeHref = '/dashboard/quick-start', navSections = DEFAULT_NAV_SECTIONS, onStartPracticing, onLearnAboutSetup, onNavigate, }: QuickStartPageProps) { return (
{/* ── Left nav ── */} {/* ── Main stage ── */}
{/* Masthead */}
{/* Breadcrumb */} {/* Greeting */}

Welcome,{' '} {userName} ! Let's get you practicing.

{/* Content grid */}

How would you like to start?

{/* Left column — action cards */}
{/* Dive Right In card */}

Dive Right In

Start practicing immediately with AI-selected scenarios based on your goals and experience level

{/* Scenario preview */}

First scenario:

{firstScenario.title}

{levelLabel[firstScenario.level]} {firstScenario.duration}
{/* CTA button */}
{/* See the Setup First card */}

See the Setup First

Preview your personalized practice plan and adjust settings before you begin

    {[ 'View scenario details', 'Adjust difficulty & topics', 'See your learning queue', "Then start when you're ready", ].map((item) => (
  • {item}
  • ))}
{/* Right column — info cards */}
{/* First time practicing? */}

First time practicing?

Here's what to expect in your first session

{/* Gradient image placeholder */}
🎯
{/* Quick Tips */}

Quick Tips

    {[ 'Practice sessions are private – no external pressure', 'Try not to stop the conversation before answering', 'Focus on thinking out loud, not perfect answers', ].map((tip) => (
  • {tip}
  • ))}
); }