/** * ItemChart (« parlement » / hémicycle) — API canonique (référence Svelte, * React/Vue doivent s'aligner). * * Chaque groupe apporte `value` POINTS (sièges). La somme des points est * disposée en plusieurs RANGÉES CONCENTRIQUES formant un demi-anneau du haut * (hémicycle). Les points d'un même groupe sont CONTIGUS et colorés par un ton * catégoriel (`categoryN`). On lit donc la taille relative des groupes à la * longueur de l'arc qu'ils occupent — façon répartition des sièges. * * Géométrie : * - nombre de rangées = clamp(round(sqrt(total / 12)), 3, 5) tant qu'il reste * des points (au moins 1 rangée). * - les rangées ont des rayons régulièrement espacés ; le nombre de points * par rangée est ∝ au rayon (les rangées extérieures portent plus de * sièges), de sorte que l'espacement angulaire reste homogène. * - chaque siège est posé sur un demi-cercle (de gauche π à droite 0, via le * haut), tous les sièges étant ordonnés rangée par rangée puis attribués * aux groupes dans l'ordre fourni → blocs contigus. * * Props obligatoires : * data ItemChartDatum[] - {label, value, tone?} * label string - aria-label du graphique (role=img) * * Props optionnelles : * width number (défaut 480) * height number (défaut 280) * class string * * NaN/négatif : `value` non-finie ou < 0 → 0 siège pour ce groupe. Total 0 → * rendu vide sans crash. `value` est arrondie à l'entier le plus proche pour * compter des sièges. */ export type ItemChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8"; export type ItemChartDatum = { label: string; value: number; tone?: ItemChartTone; }; export type ItemChartSeat = { x: number; y: number; r: number; tone: ItemChartTone; groupIndex: number; }; export declare function seatCount(value: number): number; /** * Construit la liste ordonnée des sièges de l'hémicycle, puis affecte chaque * siège à un groupe dans l'ordre fourni (blocs contigus). Pur, sans état. */ export declare function buildSeats(counts: number[], width: number, height: number): { seats: ItemChartSeat[]; cx: number; cy: number; }; type ItemChartProps = { data: ItemChartDatum[]; label: string; width?: number; height?: number; class?: string; }; declare const ItemChart: import("svelte").Component; type ItemChart = ReturnType; export default ItemChart; //# sourceMappingURL=ItemChart.svelte.d.ts.map