/** * VennChart (diagramme de Venn / Euler) - API canonique (référence Svelte, * React/Vue doivent s'aligner byte-pour-byte sur la géométrie). * * Deux ou trois ensembles dessinés en cercles superposés semi-transparents. * Chaque zone (region) est décrite par les ensembles qu'elle couvre et une * valeur : * - { sets: ["A"], value } → membres de A seul ; * - { sets: ["A","B"], value } → intersection A∩B ; * - { sets: ["A","B","C"], value} → intersection triple. * * Géométrie DÉTERMINISTE (aucun aléatoire, layout identique entre frameworks) : * - Les cercles sont placés à des positions FIXES selon le nombre d'ensembles * (2 : côte à côte avec recouvrement ; 3 : triangle équilatéral). * - Le rayon de chaque cercle ∝ √(taille totale de l'ensemble), où la taille * d'un ensemble est la somme des valeurs de toutes les zones qui le * contiennent. Mapping linéaire du √ entre un rayon min et un rayon max. * * Étiquettes : le nom de chaque ensemble est posé près du cercle ; la valeur de * chaque zone d'intersection (sets.length ≥ 2) est posée au centroïde des * centres des cercles concernés. Légende des ensembles + tooltip au survol + * liste accessible (ChartDataList) hors SVG. * * Props : * data VennChartArea[] - {sets, value} * label string - aria-label (role=img) * width number (420) - largeur du viewBox * height number (360) - hauteur du viewBox * class string - classe CSS additionnelle */ export type VennChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8"; export type VennChartArea = { sets: string[]; value: number; }; export type VennChartProps = { data: VennChartArea[]; label: string; width?: number; height?: number; class?: string; }; type VennCircle = { name: string; tone: VennChartTone; cx: number; cy: number; r: number; total: number; labelX: number; labelY: number; anchor: "start" | "middle" | "end"; }; type VennRegion = { sets: string[]; value: number; x: number; y: number; }; export type VennLayout = { circles: VennCircle[]; regions: VennRegion[]; items: string[]; }; /** * Calcule la géométrie déterministe du diagramme. Identique entre frameworks. */ export declare function vennLayout(data: VennChartArea[], width: number, height: number): VennLayout; declare const VennChart: import("svelte").Component; type VennChart = ReturnType; export default VennChart; //# sourceMappingURL=VennChart.svelte.d.ts.map