Render the campaign analysis in the report drawer: status row for generating (5s polling), failed (error + retry) and empty states, then the structured result — overall callout, problem cards with severity tags and evidence chips linking to run reports, per-scenario narratives and priority-sorted suggestions. Generate buttons are terminal-only with guidance when no analysis model is configured.
79 lines
1.4 KiB
TypeScript
79 lines
1.4 KiB
TypeScript
export const colors = {
|
|
// Sidebar
|
|
sider: '#1e2030',
|
|
siderSelected: '#2e3250',
|
|
siderHover: 'rgba(255,255,255,0.08)',
|
|
siderText: 'rgba(255,255,255,0.65)',
|
|
siderTextHover: 'rgba(255,255,255,0.9)',
|
|
siderTextActive: '#ffffff',
|
|
|
|
// Layout
|
|
bgLayout: '#f5f6f8',
|
|
bgContainer: '#ffffff',
|
|
bgSubtle: '#fafafa',
|
|
border: '#f0f0f0',
|
|
|
|
// Brand
|
|
primary: '#1677ff',
|
|
|
|
// Text
|
|
text: '#1f2937',
|
|
textSecondary: '#6b7280',
|
|
textMuted: '#9ca3af',
|
|
|
|
// Feedback
|
|
warning: '#faad14',
|
|
|
|
// Chat bubbles
|
|
chatUser: '#e6f4ff',
|
|
chatAgent: '#f0fdf4',
|
|
chatSystemError: '#fff1f0',
|
|
} as const
|
|
|
|
export const statusColors: Record<string, string> = {
|
|
pending: '#8c8c8c',
|
|
running: '#1677ff',
|
|
completed: '#52c41a',
|
|
failed: '#ff4d4f',
|
|
cancelled: '#8c8c8c',
|
|
}
|
|
|
|
export const statusLabels: Record<string, string> = {
|
|
pending: '待执行',
|
|
running: '执行中',
|
|
completed: '已完成',
|
|
failed: '失败',
|
|
cancelled: '已取消',
|
|
}
|
|
|
|
export const triggerLabels: Record<string, string> = {
|
|
manual: '手动',
|
|
ai_assistant: 'AI 助手',
|
|
cli: 'CLI',
|
|
campaign: '活动',
|
|
}
|
|
|
|
export const triggerColors: Record<string, string> = {
|
|
manual: 'default',
|
|
ai_assistant: 'purple',
|
|
cli: 'blue',
|
|
campaign: 'cyan',
|
|
}
|
|
|
|
export const spacing = {
|
|
xs: 4,
|
|
sm: 8,
|
|
md: 12,
|
|
lg: 16,
|
|
xl: 24,
|
|
} as const
|
|
|
|
export const fontSizes = {
|
|
meta: 11,
|
|
body: 12,
|
|
emphasis: 13,
|
|
title: 16,
|
|
hero: 24,
|
|
} as const
|
|
|