import React from 'react'; import { Box, Typography, LinearProgress, Stepper, Step, StepLabel, IconButton, Tooltip, Fade, CircularProgress } from '@mui/material'; import { HelpOutline, Close } from '@mui/icons-material'; import UserBadge from '../../shared/UserBadge'; import UsageDashboard from '../../shared/UsageDashboard'; interface WizardHeaderProps { activeStep: number; progress: number; stepHeaderContent: { title: string; description: string; }; showProgressMessage: boolean; progressMessage: string; showHelp: boolean; isMobile: boolean; steps: Array<{ label: string; description: string; icon: string; }>; onStepClick: (stepIndex: number) => void; onHelpToggle: () => void; } export const WizardHeader: React.FC = ({ activeStep, progress, stepHeaderContent, showProgressMessage, progressMessage, showHelp, isMobile, steps, onStepClick, onHelpToggle }) => { return ( {/* Progress Message */} {showProgressMessage && ( {progressMessage} )} {/* Top Row - Title and Actions */} {/* Usage Dashboard - Show API usage statistics during onboarding */} {stepHeaderContent.title} Setup {Math.round(progress)}% {/* Stepper in Header */} {steps.map((step, index) => ( onStepClick(index)} sx={{ cursor: index <= activeStep ? 'pointer' : 'default', '& .MuiStepLabel-iconContainer': { background: index <= activeStep ? 'rgba(255, 255, 255, 0.2)' : 'rgba(255, 255, 255, 0.08)', borderRadius: '50%', width: 28, height: 28, display: 'flex', alignItems: 'center', justifyContent: 'center', color: index <= activeStep ? 'white' : 'rgba(255, 255, 255, 0.6)', transition: 'all 0.25s cubic-bezier(0.4, 0, 0.2, 1)', boxShadow: index <= activeStep ? '0 3px 10px rgba(15, 23, 42, 0.45)' : 'none', border: index < activeStep ? '1px solid rgba(248, 250, 252, 0.9)' : '1px solid rgba(148, 163, 184, 0.4)', '&:hover': { transform: index <= activeStep ? 'translateY(-1px) scale(1.03)' : 'none', boxShadow: index <= activeStep ? '0 5px 14px rgba(15, 23, 42, 0.55)' : 'none', } }, '& .MuiStepLabel-label': { fontSize: '0.8rem', fontWeight: 600, textAlign: 'center', textDecoration: index < activeStep ? 'underline' : 'none', opacity: index <= activeStep ? 0.98 : 0.7 } }} > {step.label} ))} ); };