Spaces:
Sleeping
Sleeping
File size: 2,516 Bytes
6fe3275 ade3003 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
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';
|