SPB Git forge

spb/qc26

Public
10commits 1branches 0releases
2.8 MBsize
maindefault branch
17 days agolast push
Python 51.6% TypeScript 46.7% CSS 1.7%
1.8 KB · 21 lines tsx
Raw Blame History
1import type { Metadata } from "next";2import Link from "next/link";3import { Card } from "@/components/ui";45export const metadata: Metadata = { title: "Plus", robots: { index: false } };67const GROUPS: [string, [string, string, string][]][] = [8  ["Données", [["/prevision", "Prévision", "Sièges, vote, probabilités, historique"], ["/signaux", "Au-delà des sondages", "Marchés, presse, attention, fondamentaux, partielles"], ["/sondages", "Sondages", "Moyenne QC26, Poll Inspector, effets maison"], ["/circonscriptions", "Circonscriptions", "127 fiches, recherche instantanée"], ["/live", "Soirée électorale", "Direct, forecast vs live, nowcast"], ["/replay", "Replay", "Rejouer la soirée"]]],9  ["Partis", [["/partis", "Partis", "Chefs, candidatures, projections"], ["/partis/comparateur", "Comparateur", "Matrice enjeux × partis"], ["/enjeux", "Enjeux", "Propositions par sujet, recherche documentaire"], ["/documents", "Bibliothèque", "Documents officiels versionnés"]]],10  ["Transparence", [["/methodologie", "Méthodologie", "Comment QC26 calcule"], ["/methodologie/changelog", "Changelog", "Versions du modèle et runs"], ["/statut", "Statut des données", "Connecteurs, sources, travaux"], ["/live/model-vs-reality", "Modèle vs réalité", "Précision le soir du vote"]]],11];1213export default function Page() {14  return (15    <div className="space-y-8">16      <h1 className="display text-[36px]">Plus</h1>17      {GROUPS.map(([g, items]) => (<section key={g}><div className="eyebrow mb-2">{g}</div><div className="grid gap-2">{items.map(([href, t, d]) => <Link key={href} href={href}><Card className="!p-3.5 card-hover"><div className="font-semibold text-[15px]">{t}</div><div className="text-[12.5px] text-ink-2">{d}</div></Card></Link>)}</div></section>))}18    </div>19  );20}21