feat: update Card components to use variant="glass"

- Changed Card components in various charts and dashboard sections to use the "glass" variant for a consistent UI enhancement.
- This update affects CompletionTrendChart, PriorityDistributionChart, VelocityChart, WeeklyStatsCard, DashboardStats, ProductivityAnalytics, RecentTasks, TagDistributionChart, MetricsDistributionCharts, MetricsMainCharts, CriticalDeadlinesCard, DeadlineRiskCard, DeadlineSummaryCard, and StatCard.
This commit is contained in:
Julien Froidefond
2025-10-03 17:29:46 +02:00
parent 9fb374fb23
commit 0658b8ff93
14 changed files with 24 additions and 24 deletions

View File

@@ -49,7 +49,7 @@ export function CompletionTrendChart({ data, title = "Tendance de Completion" }:
}; };
return ( return (
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">{title}</h3> <h3 className="text-lg font-semibold mb-4">{title}</h3>
<div className="h-64"> <div className="h-64">
<ResponsiveContainer width="100%" height="100%"> <ResponsiveContainer width="100%" height="100%">

View File

@@ -61,7 +61,7 @@ export function PriorityDistributionChart({ data, title = "Distribution des Prio
}; };
return ( return (
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">{title}</h3> <h3 className="text-lg font-semibold mb-4">{title}</h3>
<div className="h-64"> <div className="h-64">
<ResponsiveContainer width="100%" height="100%"> <ResponsiveContainer width="100%" height="100%">

View File

@@ -38,7 +38,7 @@ export function VelocityChart({ data, title = "Vélocité Hebdomadaire" }: Veloc
}; };
return ( return (
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">{title}</h3> <h3 className="text-lg font-semibold mb-4">{title}</h3>
<div className="h-64"> <div className="h-64">
<ResponsiveContainer width="100%" height="100%"> <ResponsiveContainer width="100%" height="100%">

View File

@@ -23,7 +23,7 @@ export function WeeklyStatsCard({ stats, title = "Performance Hebdomadaire" }: W
: 'bg-[var(--destructive)]/10 border border-[var(--destructive)]/20'; : 'bg-[var(--destructive)]/10 border border-[var(--destructive)]/20';
return ( return (
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-6">{title}</h3> <h3 className="text-lg font-semibold mb-6">{title}</h3>
<div className="grid grid-cols-2 gap-6"> <div className="grid grid-cols-2 gap-6">

View File

@@ -258,7 +258,7 @@ export function DashboardStats({ selectedSources = [], hiddenSources = [] }: Das
))} ))}
{/* Cartes de pourcentage */} {/* Cartes de pourcentage */}
<Card className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1">
<h3 className="text-lg font-semibold mb-4">Taux de Completion</h3> <h3 className="text-lg font-semibold mb-4">Taux de Completion</h3>
<div className="space-y-4"> <div className="space-y-4">
<ProgressBar <ProgressBar
@@ -276,7 +276,7 @@ export function DashboardStats({ selectedSources = [], hiddenSources = [] }: Das
</Card> </Card>
{/* Distribution détaillée par statut */} {/* Distribution détaillée par statut */}
<Card className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1">
<h3 className="text-lg font-semibold mb-4">Distribution par Statut</h3> <h3 className="text-lg font-semibold mb-4">Distribution par Statut</h3>
{/* Graphique en camembert avec Recharts */} {/* Graphique en camembert avec Recharts */}
@@ -309,7 +309,7 @@ export function DashboardStats({ selectedSources = [], hiddenSources = [] }: Das
</Card> </Card>
{/* Insights rapides */} {/* Insights rapides */}
<Card className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1">
<h3 className="text-lg font-semibold mb-4">Aperçu Rapide</h3> <h3 className="text-lg font-semibold mb-4">Aperçu Rapide</h3>
<div className="space-y-3"> <div className="space-y-3">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
@@ -341,7 +341,7 @@ export function DashboardStats({ selectedSources = [], hiddenSources = [] }: Das
</Card> </Card>
{/* Distribution par sources */} {/* Distribution par sources */}
<Card className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow md:col-span-1 lg:col-span-1">
<h3 className="text-lg font-semibold mb-4">Distribution par Sources</h3> <h3 className="text-lg font-semibold mb-4">Distribution par Sources</h3>
{/* Graphique en camembert avec Recharts */} {/* Graphique en camembert avec Recharts */}

View File

@@ -110,7 +110,7 @@ export function ProductivityAnalytics({ metrics, deadlineMetrics, tagMetrics, se
<PriorityDistributionChart data={filteredMetrics.priorityDistribution} /> <PriorityDistributionChart data={filteredMetrics.priorityDistribution} />
{/* Status Flow - Graphique simple en barres horizontales */} {/* Status Flow - Graphique simple en barres horizontales */}
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">Répartition par Statut</h3> <h3 className="text-lg font-semibold mb-4">Répartition par Statut</h3>
<div className="space-y-3"> <div className="space-y-3">
{filteredMetrics.statusFlow.map((item, index) => ( {filteredMetrics.statusFlow.map((item, index) => (
@@ -140,7 +140,7 @@ export function ProductivityAnalytics({ metrics, deadlineMetrics, tagMetrics, se
<TagDistributionChart metrics={tagMetrics} /> <TagDistributionChart metrics={tagMetrics} />
{/* Insights automatiques */} {/* Insights automatiques */}
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">💡 Insights</h3> <h3 className="text-lg font-semibold mb-4">💡 Insights</h3>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4"> <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<MetricCard <MetricCard

View File

@@ -37,7 +37,7 @@ export function RecentTasks({ tasks, selectedSources = [], hiddenSources = [] }:
return ( return (
<Card className="p-6 mt-8"> <Card variant="glass" className="p-6 mt-8">
<div className="flex items-center justify-between mb-4"> <div className="flex items-center justify-between mb-4">
<h3 className="text-lg font-semibold">Tâches Récentes</h3> <h3 className="text-lg font-semibold">Tâches Récentes</h3>
<Link href="/kanban"> <Link href="/kanban">

View File

@@ -85,7 +85,7 @@ export function TagDistributionChart({ metrics, className }: TagDistributionChar
<div className={className}> <div className={className}>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6"> <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
{/* Distribution par tags - Camembert */} {/* Distribution par tags - Camembert */}
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">🏷 Distribution par Tags</h3> <h3 className="text-lg font-semibold mb-4">🏷 Distribution par Tags</h3>
<div className="h-64"> <div className="h-64">
@@ -118,7 +118,7 @@ export function TagDistributionChart({ metrics, className }: TagDistributionChar
</Card> </Card>
{/* Top tags - Barres */} {/* Top tags - Barres */}
<Card className="p-6"> <Card variant="glass" className="p-6">
<h3 className="text-lg font-semibold mb-4">📊 Top Tags par Usage</h3> <h3 className="text-lg font-semibold mb-4">📊 Top Tags par Usage</h3>
<div className="h-64"> <div className="h-64">
@@ -149,7 +149,7 @@ export function TagDistributionChart({ metrics, className }: TagDistributionChar
</div> </div>
{/* Statistiques des tags */} {/* Statistiques des tags */}
<Card className="p-6 mt-6"> <Card variant="glass" className="p-6 mt-6">
<h3 className="text-lg font-semibold mb-4">📈 Statistiques des Tags</h3> <h3 className="text-lg font-semibold mb-4">📈 Statistiques des Tags</h3>
<div className="grid grid-cols-2 md:grid-cols-5 gap-4"> <div className="grid grid-cols-2 md:grid-cols-5 gap-4">

View File

@@ -13,7 +13,7 @@ interface MetricsDistributionChartsProps {
export function MetricsDistributionCharts({ metrics }: MetricsDistributionChartsProps) { export function MetricsDistributionCharts({ metrics }: MetricsDistributionChartsProps) {
return ( return (
<div className="grid grid-cols-1 lg:grid-cols-3 gap-6"> <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
<Card> <Card variant="glass">
<CardHeader> <CardHeader>
<h3 className="text-lg font-semibold">🍰 Répartition des statuts</h3> <h3 className="text-lg font-semibold">🍰 Répartition des statuts</h3>
</CardHeader> </CardHeader>
@@ -22,7 +22,7 @@ export function MetricsDistributionCharts({ metrics }: MetricsDistributionCharts
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card variant="glass">
<CardHeader> <CardHeader>
<h3 className="text-lg font-semibold"> Performance par priorité</h3> <h3 className="text-lg font-semibold"> Performance par priorité</h3>
</CardHeader> </CardHeader>
@@ -31,7 +31,7 @@ export function MetricsDistributionCharts({ metrics }: MetricsDistributionCharts
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card variant="glass">
<CardHeader> <CardHeader>
<h3 className="text-lg font-semibold">🔥 Heatmap d&apos;activité</h3> <h3 className="text-lg font-semibold">🔥 Heatmap d&apos;activité</h3>
</CardHeader> </CardHeader>

View File

@@ -12,7 +12,7 @@ interface MetricsMainChartsProps {
export function MetricsMainCharts({ metrics }: MetricsMainChartsProps) { export function MetricsMainCharts({ metrics }: MetricsMainChartsProps) {
return ( return (
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6"> <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
<Card> <Card variant="glass">
<CardHeader> <CardHeader>
<h3 className="text-lg font-semibold">📈 Évolution quotidienne des statuts</h3> <h3 className="text-lg font-semibold">📈 Évolution quotidienne des statuts</h3>
</CardHeader> </CardHeader>
@@ -21,7 +21,7 @@ export function MetricsMainCharts({ metrics }: MetricsMainChartsProps) {
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card variant="glass">
<CardHeader> <CardHeader>
<h3 className="text-lg font-semibold">🎯 Taux de completion quotidien</h3> <h3 className="text-lg font-semibold">🎯 Taux de completion quotidien</h3>
</CardHeader> </CardHeader>

View File

@@ -53,7 +53,7 @@ export function CriticalDeadlinesCard({ overdue, critical, warning, disableHover
if (urgentTasks.length === 0) { if (urgentTasks.length === 0) {
return ( return (
<Card className="p-6 hover:shadow-lg transition-shadow"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow">
<h3 className="text-lg font-semibold mb-4">Tâches Urgentes</h3> <h3 className="text-lg font-semibold mb-4">Tâches Urgentes</h3>
<div className="text-center py-8"> <div className="text-center py-8">
<div className="text-4xl mb-2">🎉</div> <div className="text-4xl mb-2">🎉</div>
@@ -67,7 +67,7 @@ export function CriticalDeadlinesCard({ overdue, critical, warning, disableHover
} }
return ( return (
<Card className="p-6 hover:shadow-lg transition-shadow"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow">
<div className="flex items-center justify-between mb-4"> <div className="flex items-center justify-between mb-4">
<h3 className="text-lg font-semibold">Tâches Urgentes</h3> <h3 className="text-lg font-semibold">Tâches Urgentes</h3>
<div className="text-sm text-[var(--muted-foreground)]"> <div className="text-sm text-[var(--muted-foreground)]">

View File

@@ -41,7 +41,7 @@ export function DeadlineRiskCard({ metrics }: DeadlineRiskCardProps) {
}; };
return ( return (
<Card className={`p-6 ${getRiskBgColor(riskAnalysis.riskLevel)} transition-all hover:shadow-lg`}> <Card variant="glass" className={`p-6 ${getRiskBgColor(riskAnalysis.riskLevel)} transition-all hover:shadow-lg`}>
<div className="flex items-center justify-between mb-4"> <div className="flex items-center justify-between mb-4">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<span className="text-2xl">{getRiskIcon(riskAnalysis.riskLevel)}</span> <span className="text-2xl">{getRiskIcon(riskAnalysis.riskLevel)}</span>

View File

@@ -42,7 +42,7 @@ export function DeadlineSummaryCard({ metrics }: DeadlineSummaryCardProps) {
]; ];
return ( return (
<Card className="p-6 hover:shadow-lg transition-shadow"> <Card variant="glass" className="p-6 hover:shadow-lg transition-shadow">
<div className="flex items-center justify-between mb-4"> <div className="flex items-center justify-between mb-4">
<h3 className="text-lg font-semibold">Répartition des Échéances</h3> <h3 className="text-lg font-semibold">Répartition des Échéances</h3>
<div className="text-sm text-[var(--muted-foreground)]"> <div className="text-sm text-[var(--muted-foreground)]">

View File

@@ -26,7 +26,7 @@ export function StatCard({
className className
}: StatCardProps) { }: StatCardProps) {
return ( return (
<Card className={cn("p-6 hover:shadow-lg transition-shadow", className)}> <Card variant="glass" className={cn("p-6 hover:shadow-lg transition-shadow", className)}>
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<div> <div>
<p className="text-sm font-medium text-[var(--muted-foreground)] mb-1"> <p className="text-sm font-medium text-[var(--muted-foreground)] mb-1">