Dashboard
Pages de tableau de bord complètes
Pages de tableau de bord
Les pages de tableau de bord offrent une interface d'administration complète avec navigation, widgets et fonctionnalités avancées.
Utilisation basique
import { DashboardPage } from '@brikl/ui';
export default function Dashboard() {
return (
<DashboardPage
title="Mon tableau de bord"
description="Vue d'ensemble de votre activité"
/>
);
}Avec navigation
import { DashboardPage } from '@brikl/ui';
import { IconHome, IconUsers, IconSettings, IconAnalytics } from '@brikl/icons';
export default function AdminDashboard() {
const navigation = [
{
label: 'Tableau de bord',
href: '/dashboard',
icon: <IconHome />,
active: true
},
{
label: 'Utilisateurs',
href: '/users',
icon: <IconUsers />
},
{
label: 'Analytics',
href: '/analytics',
icon: <IconAnalytics />
},
{
label: 'Paramètres',
href: '/settings',
icon: <IconSettings />
}
];
return (
<DashboardPage
title="Administration"
navigation={navigation}
/>
);
}Avec widgets
import { DashboardPage } from '@brikl/ui';
export default function DashboardWithWidgets() {
const widgets = [
{
title: 'Utilisateurs actifs',
value: '1,234',
change: '+12%',
trend: 'up',
icon: <IconUsers />
},
{
title: 'Revenus mensuels',
value: '€45,678',
change: '+8%',
trend: 'up',
icon: <IconDollar />
},
{
title: 'Taux de conversion',
value: '3.2%',
change: '-2%',
trend: 'down',
icon: <IconTrendingUp />
},
{
title: 'Tickets ouverts',
value: '89',
change: '+5%',
trend: 'up',
icon: <IconTicket />
}
];
return (
<DashboardPage
title="Tableau de bord"
widgets={widgets}
/>
);
}Avec graphiques
import { DashboardPage } from '@brikl/ui';
export default function DashboardWithCharts() {
const charts = [
{
title: 'Ventes mensuelles',
type: 'line',
data: [
{ month: 'Jan', sales: 1200 },
{ month: 'Fév', sales: 1900 },
{ month: 'Mar', sales: 1500 },
{ month: 'Avr', sales: 2100 }
]
},
{
title: 'Répartition des utilisateurs',
type: 'pie',
data: [
{ label: 'Nouveaux', value: 45 },
{ label: 'Actifs', value: 35 },
{ label: 'Inactifs', value: 20 }
]
}
];
return (
<DashboardPage
title="Analytics"
charts={charts}
/>
);
}Avec tableaux de données
import { DashboardPage } from '@brikl/ui';
export default function DashboardWithTables() {
const recentUsers = [
{
id: 1,
name: 'John Doe',
email: 'john@example.com',
status: 'active',
joined: '2024-01-15'
},
{
id: 2,
name: 'Jane Smith',
email: 'jane@example.com',
status: 'pending',
joined: '2024-01-14'
}
];
const columns = [
{ key: 'name', label: 'Nom' },
{ key: 'email', label: 'Email' },
{ key: 'status', label: 'Statut' },
{ key: 'joined', label: 'Date d\'inscription' }
];
return (
<DashboardPage
title="Gestion des utilisateurs"
tables={[
{
title: 'Utilisateurs récents',
data: recentUsers,
columns: columns
}
]}
/>
);
}Personnalisation avancée
import { DashboardPage } from '@brikl/ui';
export default function CustomDashboard() {
return (
<DashboardPage
title="Tableau de bord personnalisé"
theme={{
primary: '#3B82F6',
secondary: '#6B7280',
accent: '#10B981'
}}
layout={{
sidebar: true,
header: true,
footer: false
}}
user={{
name: 'John Doe',
email: 'john@example.com',
avatar: '/avatars/john.jpg',
role: 'Administrateur'
}}
notifications={[
{
id: 1,
title: 'Nouveau utilisateur',
message: 'Jane Smith s\'est inscrite',
type: 'info',
time: '2 min ago'
}
]}
/>
);
}Propriétés
| Propriété | Type | Défaut | Description |
|---|---|---|---|
title | string | - | Titre de la page |
description | string | - | Description de la page |
navigation | NavigationItem[] | - | Éléments de navigation |
widgets | Widget[] | - | Widgets à afficher |
charts | Chart[] | - | Graphiques à afficher |
tables | Table[] | - | Tableaux de données |
user | User | - | Informations utilisateur |
theme | Theme | - | Configuration du thème |
layout | Layout | - | Configuration du layout |
Accessibilité
- Navigation au clavier complète
- Support des lecteurs d'écran
- Attributs ARIA appropriés
- Focus management
- Contraste élevé