import React from 'react'; import { BookOpen, Clock, TrendingUp, Award, Mic, Target, Brain, Gauge, Pause, XCircle, HelpCircle } from 'lucide-react'; import { MetricCard } from './MetricCard'; interface DashboardMetricsData { totalStories: number; averageReadingFluency: number; totalReadingTime: number; currentLevel: number; averagePronunciation: number; averageAccuracy: number; averageComprehension: number; averageWordsPerMinute: number; averagePauses: number; averageErrors: number; } interface DashboardMetricsProps { data: DashboardMetricsData; className?: string; } const MAIN_METRICS = [ { key: 'totalStories', title: 'Total de Histórias', getValue: (data: DashboardMetricsData) => data.totalStories, icon: BookOpen, iconColor: 'text-purple-600', iconBgColor: 'bg-purple-100' }, { key: 'averageReadingFluency', title: 'Fluência Média', getValue: (data: DashboardMetricsData) => `${data.averageReadingFluency}%`, icon: TrendingUp, iconColor: 'text-green-600', iconBgColor: 'bg-green-100' }, { key: 'totalReadingTime', title: 'Tempo de Leitura', getValue: (data: DashboardMetricsData) => `${data.totalReadingTime}min`, icon: Clock, iconColor: 'text-blue-600', iconBgColor: 'bg-blue-100' }, { key: 'currentLevel', title: 'Nível Atual', getValue: (data: DashboardMetricsData) => data.currentLevel, icon: Award, iconColor: 'text-yellow-600', iconBgColor: 'bg-yellow-100' } ]; const DETAILED_METRICS = [ { key: 'averagePronunciation', title: 'Pronúncia Média', getValue: (data: DashboardMetricsData) => `${data.averagePronunciation}%`, icon: Mic, iconColor: 'text-indigo-600', iconBgColor: 'bg-indigo-100', tooltip: 'Avalia a qualidade da sua pronúncia durante a leitura, considerando a clareza e correção dos sons das palavras' }, { key: 'averageAccuracy', title: 'Precisão na Leitura', getValue: (data: DashboardMetricsData) => `${data.averageAccuracy}%`, icon: Target, iconColor: 'text-pink-600', iconBgColor: 'bg-pink-100', tooltip: 'Indica o quão preciso você é ao ler as palavras, sem trocas ou omissões de letras e sílabas' }, { key: 'averageComprehension', title: 'Compreensão do Texto', getValue: (data: DashboardMetricsData) => `${data.averageComprehension}%`, icon: Brain, iconColor: 'text-orange-600', iconBgColor: 'bg-orange-100', tooltip: 'Avalia seu nível de entendimento do texto durante a leitura, baseado no ritmo e entonação adequados' }, { key: 'averageWordsPerMinute', title: 'Velocidade de Leitura', getValue: (data: DashboardMetricsData) => `${data.averageWordsPerMinute} WPM`, icon: Gauge, iconColor: 'text-cyan-600', iconBgColor: 'bg-cyan-100', tooltip: 'Média de palavras lidas por minuto (WPM), indicando a velocidade e fluidez da sua leitura' }, { key: 'averagePauses', title: 'Pausas na Leitura', getValue: (data: DashboardMetricsData) => data.averagePauses, icon: Pause, iconColor: 'text-amber-600', iconBgColor: 'bg-amber-100', tooltip: 'Média de pausas não planejadas durante a leitura, indicando momentos de hesitação' }, { key: 'averageErrors', title: 'Erros de Leitura', getValue: (data: DashboardMetricsData) => data.averageErrors, icon: XCircle, iconColor: 'text-red-600', iconBgColor: 'bg-red-100', tooltip: 'Média de erros cometidos durante a leitura, como trocas, omissões ou adições de palavras' } ]; export function DashboardMetrics({ data, className = '' }: DashboardMetricsProps) { return (