Spaces:
Sleeping
Sleeping
| export interface BentoCardData { | |
| id: string; | |
| title: string; | |
| summary: string; | |
| type: 'stat' | 'concept' | 'quote' | 'insight' | 'process'; | |
| colSpan: number; // 1 to 4 | |
| rowSpan: number; // 1 to 2 | |
| detailPrompt: string; // The prompt to send to Gemini to get more details | |
| mermaid?: string; // Mermaid JS diagram definition | |
| expandedContent?: string; | |
| isLoadingDetails?: boolean; | |
| rating?: number; | |
| feedback?: string; | |
| } | |
| export interface ChatMessage { | |
| id: string; | |
| role: 'user' | 'model' | 'system'; | |
| text: string; | |
| timestamp: number; | |
| } | |
| export type ModelType = 'gemini-flash-latest' | 'gemini-3-pro-preview'; | |
| export interface AppSettings { | |
| apiKey: string; | |
| model: ModelType; | |
| theme: 'light' | 'dark'; | |
| layoutMode: 'auto' | 'grid' | 'list'; | |
| useThinking: boolean; | |
| } | |
| export interface ProcessingStatus { | |
| state: 'idle' | 'reading' | 'analyzing' | 'generating' | 'complete' | 'error'; | |
| message?: string; | |
| } | |
| // Blog View Types | |
| export interface BlogSection { | |
| id: string; | |
| title: string; | |
| content: string; // Markdown | |
| visualizationType?: 'mermaid' | 'chart' | 'equation' | 'none'; | |
| visualizationData?: string; | |
| chartData?: ChartData; | |
| marginNotes?: MarginNote[]; | |
| technicalTerms?: TechnicalTerm[]; | |
| collapsibleSections?: CollapsibleContent[]; | |
| isLoading?: boolean; | |
| error?: string; | |
| } | |
| // Structure plan from paper analysis | |
| export interface SectionPlan { | |
| id: string; | |
| title: string; | |
| sectionType: 'intro' | 'background' | 'methodology' | 'results' | 'analysis' | 'applications' | 'conclusion' | 'custom'; | |
| focusPoints: string[]; // Key points to cover | |
| suggestedVisualization: 'mermaid' | 'chart' | 'equation' | 'none'; | |
| visualizationHint?: string; // What to visualize | |
| estimatedLength: 'short' | 'medium' | 'long'; | |
| } | |
| export interface PaperStructure { | |
| paperTitle: string; | |
| paperAbstract: string; | |
| mainContribution: string; | |
| sections: SectionPlan[]; | |
| keyTerms: string[]; // Important terms across the paper | |
| } | |
| export interface MarginNote { | |
| id: string; | |
| text: string; | |
| icon?: 'info' | 'warning' | 'tip' | 'note'; | |
| } | |
| export interface TechnicalTerm { | |
| term: string; | |
| definition: string; | |
| } | |
| export interface CollapsibleContent { | |
| id: string; | |
| title: string; | |
| content: string; | |
| } | |
| // Chart Types | |
| export interface ChartData { | |
| type: 'bar' | 'line' | 'pie' | 'scatter' | 'area'; | |
| title: string; | |
| data: Array<{ label: string; value: number; [key: string]: any }>; | |
| xAxis?: string; | |
| yAxis?: string; | |
| colors?: string[]; | |
| } | |
| export type ViewMode = 'grid' | 'blog'; | |