Python 51.6%
TypeScript 46.7%
CSS 1.7%
1import type { Metadata } from "next";2import { apiSafe, type Meta } from "@/lib/api";3import { MapSection } from "@/components/map-section";4import { Card } from "@/components/ui";56export const metadata: Metadata = { title: "Carte électorale du Québec 2026 — 127 circonscriptions", description: "Carte interactive des 127 circonscriptions : projection, probabilité, marge, variation depuis 2022 et résultats en direct le 5 octobre." };7export const revalidate = 60;89export default async function Page() {10 const meta = await apiSafe<Meta>("/api/meta");11 const live = meta ? meta.mode !== "forecast" : false;12 return (13 <div className="space-y-6">14 <div>15 <div className="eyebrow eyebrow-accent">Carte · 127 circonscriptions · limites officielles 2026</div>16 <h1 className="display text-[40px] md:text-[56px] mt-3">Carte électorale</h1>17 <p className="text-ink-2 mt-3 max-w-2xl text-[15px] leading-relaxed">Géométrie officielle d'Élections Québec (simplifiée pour le web). Avant le scrutin, aucune circonscription n'est « gagnée » : l'opacité traduit la probabilité. Molette ou pincement pour zoomer ; cliquez pour ouvrir la fiche.</p>18 </div>19 <Card pad={false} className="p-3 md:p-4"><MapSection height={680} live={live} /></Card>20 <p className="text-[12px] text-ink-3 break-words">Source de la géométrie : <span className="break-all">donnees.electionsquebec.qc.ca/autres/provincial/circonscriptions_electorales_sans_eau_2026.json</span>. Encarts : Montréal–Laval et Québec–Lévis.</p>21 </div>22 );23}24