Checkpoint: Application SONUM v1.0 - Cartographie des Solutions Numériques FEHAP. Toutes les fonctionnalités implémentées : charte CGU, moteur de recherche multicritères avec tri, Mes Établissements avec accordéons et édition inline, formulaire de saisie guidé en 3 étapes, fiche établissement avec compteur de consultation, prise de contact, Mes Demandes de Contact avec réponse directe, administration SONUM, gestion des rôles (Référent / Gestionnaire), traçabilité, lien espace adhérent FEHAP. 14 tests Vitest passés.

This commit is contained in:
Manus
2026-04-15 12:14:03 -04:00
parent 48bfbc21c0
commit 522d2e3c87
26 changed files with 4638 additions and 198 deletions

View File

@@ -1,5 +1,6 @@
@import "tailwindcss";
@import "tw-animate-css";
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..700;1,14..32,300..700&family=Playfair+Display:wght@600;700&display=swap');
@custom-variant dark (&:is(.dark *));
@@ -43,39 +44,41 @@
}
:root {
--primary: var(--color-blue-700);
--primary-foreground: var(--color-blue-50);
--sidebar-primary: var(--color-blue-600);
--sidebar-primary-foreground: var(--color-blue-50);
--chart-1: var(--color-blue-300);
--chart-2: var(--color-blue-500);
--chart-3: var(--color-blue-600);
--chart-4: var(--color-blue-700);
--chart-5: var(--color-blue-800);
--radius: 0.65rem;
--background: oklch(1 0 0);
--foreground: oklch(0.235 0.015 65);
/* Bleu marine FEHAP */
--primary: oklch(0.30 0.12 255);
--primary-foreground: oklch(0.98 0 0);
/* Rouge FEHAP */
--accent: oklch(0.52 0.20 20);
--accent-foreground: oklch(0.98 0 0);
--sidebar-primary: oklch(0.30 0.12 255);
--sidebar-primary-foreground: oklch(0.98 0 0);
--chart-1: oklch(0.55 0.14 255);
--chart-2: oklch(0.45 0.14 255);
--chart-3: oklch(0.35 0.12 255);
--chart-4: oklch(0.52 0.20 20);
--chart-5: oklch(0.60 0.15 145);
--radius: 0.5rem;
--background: oklch(0.975 0.004 240);
--foreground: oklch(0.18 0.02 250);
--card: oklch(1 0 0);
--card-foreground: oklch(0.235 0.015 65);
--card-foreground: oklch(0.18 0.02 250);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.235 0.015 65);
--secondary: oklch(0.98 0.001 286.375);
--secondary-foreground: oklch(0.4 0.015 65);
--muted: oklch(0.967 0.001 286.375);
--muted-foreground: oklch(0.552 0.016 285.938);
--accent: oklch(0.967 0.001 286.375);
--accent-foreground: oklch(0.141 0.005 285.823);
--popover-foreground: oklch(0.18 0.02 250);
--secondary: oklch(0.93 0.04 240);
--secondary-foreground: oklch(0.30 0.12 255);
--muted: oklch(0.95 0.01 240);
--muted-foreground: oklch(0.52 0.02 250);
--destructive: oklch(0.577 0.245 27.325);
--destructive-foreground: oklch(0.985 0 0);
--border: oklch(0.92 0.004 286.32);
--input: oklch(0.92 0.004 286.32);
--ring: oklch(0.623 0.214 259.815);
--sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.235 0.015 65);
--sidebar-accent: oklch(0.967 0.001 286.375);
--sidebar-accent-foreground: oklch(0.141 0.005 285.823);
--sidebar-border: oklch(0.92 0.004 286.32);
--sidebar-ring: oklch(0.623 0.214 259.815);
--border: oklch(0.88 0.01 240);
--input: oklch(0.88 0.01 240);
--ring: oklch(0.30 0.12 255);
--sidebar: oklch(0.25 0.10 255);
--sidebar-foreground: oklch(0.95 0.01 240);
--sidebar-accent: oklch(0.35 0.12 255);
--sidebar-accent-foreground: oklch(0.98 0 0);
--sidebar-border: oklch(0.38 0.10 255);
--sidebar-ring: oklch(0.55 0.14 255);
}
.dark {
@@ -119,6 +122,13 @@
}
body {
@apply bg-background text-foreground;
font-family: 'Inter', system-ui, sans-serif;
font-feature-settings: "cv11", "ss01";
}
h1, h2, h3 {
font-family: 'Playfair Display', Georgia, serif;
font-weight: 600;
letter-spacing: -0.02em;
}
button:not(:disabled),
[role="button"]:not([aria-disabled="true"]),