Recovered state: integrated TrendSurferAgent, restored frontend/backend files, and cleaned up recovery scripts

This commit is contained in:
ajaysi
2026-02-08 13:56:57 +05:30
parent 1db10ccd0f
commit e404a86502
333 changed files with 42223 additions and 10875 deletions

View File

@@ -8,7 +8,8 @@ import {
StepLabel,
IconButton,
Tooltip,
Fade
Fade,
CircularProgress
} from '@mui/material';
import {
HelpOutline,
@@ -54,7 +55,7 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
sx={{
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
color: 'white',
p: { xs: 3, md: 4 },
p: { xs: 2, md: 3 },
position: 'relative',
overflow: 'hidden',
'&::before': {
@@ -95,8 +96,8 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
)}
{/* Top Row - Title and Actions */}
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 3, position: 'relative', zIndex: 1 }}>
<Box sx={{ flex: 1, display: 'flex', alignItems: 'center', gap: 2 }}>
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1.5, position: 'relative', zIndex: 1 }}>
<Box sx={{ flex: 1, display: 'flex', alignItems: 'center', gap: 1.5 }}>
<UserBadge colorMode="dark" />
{/* Usage Dashboard - Show API usage statistics during onboarding */}
<UsageDashboard compact={true} />
@@ -106,7 +107,43 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
{stepHeaderContent.title}
</Typography>
</Box>
<Box sx={{ display: 'flex', gap: 1, flex: 1, justifyContent: 'flex-end' }}>
<Box sx={{ display: 'flex', gap: 1.5, flex: 1, justifyContent: 'flex-end', alignItems: 'center' }}>
<Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-end', mr: 0.5 }}>
<Tooltip title={`Setup progress: ${Math.round(progress)}%`} arrow>
<Box sx={{ position: 'relative', width: 36, height: 36 }}>
<CircularProgress
variant="determinate"
value={progress}
size={36}
thickness={3.6}
sx={{
color: 'rgba(248, 250, 252, 0.95)',
'& .MuiCircularProgress-circle': {
strokeLinecap: 'round'
}
}}
/>
<Box
sx={{
position: 'absolute',
inset: 0,
display: 'flex',
alignItems: 'center',
justifyContent: 'center'
}}
>
<Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center', lineHeight: 1 }}>
<Typography variant="caption" sx={{ fontSize: 9, opacity: 0.85 }}>
Setup
</Typography>
<Typography variant="caption" sx={{ fontWeight: 700 }}>
{Math.round(progress)}%
</Typography>
</Box>
</Box>
</Box>
</Tooltip>
</Box>
<Tooltip title="Get Help" arrow>
<IconButton
onClick={onHelpToggle}
@@ -139,34 +176,8 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
</Box>
</Box>
{/* Progress Bar */}
<Box sx={{ mb: 3, position: 'relative', zIndex: 1 }}>
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1 }}>
<Typography variant="body2" sx={{ opacity: 0.9, fontWeight: 500 }}>
Setup Progress
</Typography>
<Typography variant="body2" sx={{ opacity: 0.9, fontWeight: 600 }}>
{Math.round(progress)}% Complete
</Typography>
</Box>
<LinearProgress
variant="determinate"
value={progress}
sx={{
height: 8,
borderRadius: 4,
backgroundColor: 'rgba(255,255,255,0.2)',
'& .MuiLinearProgress-bar': {
borderRadius: 4,
background: 'linear-gradient(90deg, #fff 0%, #f8fafc 100%)',
boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
}
}}
/>
</Box>
{/* Stepper in Header */}
<Box sx={{ position: 'relative', zIndex: 1 }}>
<Box sx={{ position: 'relative', zIndex: 1, mt: 0.25 }}>
<Stepper
activeStep={activeStep}
alternativeLabel={!isMobile}
@@ -175,7 +186,7 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
cursor: 'pointer',
},
'& .MuiStepLabel-label': {
fontSize: '0.875rem',
fontSize: '0.8rem',
fontWeight: 600,
color: 'white',
},
@@ -183,6 +194,7 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
mt: 0.25
},
'& .MuiStepLabel-label.Mui-completed': {
color: 'rgba(255, 255, 255, 0.9)',
@@ -197,44 +209,50 @@ export const WizardHeader: React.FC<WizardHeaderProps> = ({
>
{steps.map((step, index) => (
<Step key={step.label}>
<StepLabel
onClick={() => onStepClick(index)}
sx={{
cursor: index <= activeStep ? 'pointer' : 'default',
'& .MuiStepLabel-iconContainer': {
background: index <= activeStep
? 'rgba(255, 255, 255, 0.2)'
: 'rgba(255, 255, 255, 0.1)',
borderRadius: '50%',
width: 40,
height: 40,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
color: index <= activeStep ? 'white' : 'rgba(255, 255, 255, 0.6)',
fontSize: '1.2rem',
transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',
boxShadow: index <= activeStep
? '0 4px 12px rgba(255, 255, 255, 0.2)'
: 'none',
'&:hover': {
transform: index <= activeStep ? 'scale(1.05)' : 'none',
<Tooltip title={step.description} arrow>
<StepLabel
onClick={() => 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 6px 16px rgba(255, 255, 255, 0.3)'
? '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
}
},
}}
>
<Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 0.5 }}>
<Typography variant="h6" sx={{ mb: 0.5 }}>
{step.icon}
</Typography>
}}
>
<Typography variant="body2" sx={{ fontWeight: 600, textAlign: 'center' }}>
{step.label}
</Typography>
</Box>
</StepLabel>
</StepLabel>
</Tooltip>
</Step>
))}
</Stepper>