@sentropic/design-system-svelte 0.22.1 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,13 @@
25
25
  height?: number;
26
26
  orientation?: "vertical" | "horizontal";
27
27
  label: string;
28
+ /**
29
+ * Fixed value-axis domain `[min, max]`. When provided (and finite), the
30
+ * value scale uses it instead of the data-derived min/max — letting several
31
+ * BarCharts in a grid share one scale (small multiples). When absent or
32
+ * invalid, the scale falls back to the auto data range (unchanged).
33
+ */
34
+ domain?: [number, number];
28
35
  /**
29
36
  * Keys of the currently selected bars (a bar's key is its `label`).
30
37
  * CONTROLLED — the parent owns the toggle; the component never stores
@@ -50,6 +57,7 @@
50
57
  height = 240,
51
58
  orientation = "vertical",
52
59
  label,
60
+ domain,
53
61
  selectedKeys = [],
54
62
  onSelect,
55
63
  class: className
@@ -99,10 +107,19 @@
99
107
  const hasSelection = $derived(selectedSet.size > 0);
100
108
  const interactive = $derived(typeof onSelect === "function");
101
109
 
110
+ // A domain is honoured only when both bounds are finite and ordered (min<max).
111
+ // Otherwise we fall back to the auto data range.
112
+ const validDomain = $derived.by<[number, number] | null>(() => {
113
+ if (!domain) return null;
114
+ const [d0, d1] = domain;
115
+ if (!Number.isFinite(d0) || !Number.isFinite(d1) || d0 >= d1) return null;
116
+ return [d0, d1];
117
+ });
118
+
102
119
  const scales = $derived.by(() => {
103
120
  const values = data.map((d) => d.value);
104
- const minRaw = Math.min(0, ...values);
105
- const maxRaw = Math.max(0, ...values);
121
+ const minRaw = validDomain ? validDomain[0] : Math.min(0, ...values);
122
+ const maxRaw = validDomain ? validDomain[1] : Math.max(0, ...values);
106
123
  const ticks = niceTicks(minRaw, maxRaw, 5);
107
124
  const domainMin = ticks[0];
108
125
  const domainMax = ticks[ticks.length - 1];
@@ -10,6 +10,13 @@ type BarChartProps = {
10
10
  height?: number;
11
11
  orientation?: "vertical" | "horizontal";
12
12
  label: string;
13
+ /**
14
+ * Fixed value-axis domain `[min, max]`. When provided (and finite), the
15
+ * value scale uses it instead of the data-derived min/max — letting several
16
+ * BarCharts in a grid share one scale (small multiples). When absent or
17
+ * invalid, the scale falls back to the auto data range (unchanged).
18
+ */
19
+ domain?: [number, number];
13
20
  /**
14
21
  * Keys of the currently selected bars (a bar's key is its `label`).
15
22
  * CONTROLLED — the parent owns the toggle; the component never stores
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/BarChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAMF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+OJ,QAAA,MAAM,QAAQ,mDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"BarChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/BarChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAMF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyPJ,QAAA,MAAM,QAAQ,mDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,69 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from "svelte";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { spacingToken } from "./Flex.svelte";
5
+
6
+ export type GridProps = Omit<HTMLAttributes<HTMLElement>, "class"> & {
7
+ /** Number of equal columns: `repeat(columns, minmax(0, 1fr))`. */
8
+ columns?: number;
9
+ /**
10
+ * Responsive auto mode: `repeat(auto-fill, minmax(minItemWidth, 1fr))`.
11
+ * Takes priority over `columns` when provided.
12
+ */
13
+ minItemWidth?: string;
14
+ /** Spacing scale step (0..12) mapped to `--st-spacing-*`. */
15
+ gap?: number;
16
+ as?: string;
17
+ class?: string;
18
+ children?: Snippet;
19
+ };
20
+
21
+ /** Resolve the `grid-template-columns` value. `minItemWidth` (responsive
22
+ auto-fill) wins over a fixed column count. */
23
+ export function gridTemplateColumns(
24
+ columns: number | undefined,
25
+ minItemWidth: string | undefined
26
+ ): string | undefined {
27
+ if (minItemWidth != null && minItemWidth !== "") {
28
+ return `repeat(auto-fill, minmax(${minItemWidth}, 1fr))`;
29
+ }
30
+ if (columns != null) {
31
+ const clamped = Math.max(1, Math.round(columns));
32
+ return `repeat(${clamped}, minmax(0, 1fr))`;
33
+ }
34
+ return undefined;
35
+ }
36
+ </script>
37
+
38
+ <script lang="ts">
39
+ let {
40
+ columns,
41
+ minItemWidth,
42
+ gap,
43
+ as = "div",
44
+ class: className,
45
+ children,
46
+ ...rest
47
+ }: GridProps = $props();
48
+
49
+ const classes = $derived(["st-grid", className].filter(Boolean).join(" "));
50
+ const templateColumns = $derived(gridTemplateColumns(columns, minItemWidth));
51
+ </script>
52
+
53
+ <svelte:element
54
+ this={as}
55
+ {...rest}
56
+ class={classes}
57
+ style:display="grid"
58
+ style:grid-template-columns={templateColumns}
59
+ style:gap={spacingToken(gap)}
60
+ >
61
+ {@render children?.()}
62
+ </svelte:element>
63
+
64
+ <style>
65
+ .st-grid {
66
+ box-sizing: border-box;
67
+ min-width: 0;
68
+ }
69
+ </style>
@@ -0,0 +1,23 @@
1
+ import type { Snippet } from "svelte";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ export type GridProps = Omit<HTMLAttributes<HTMLElement>, "class"> & {
4
+ /** Number of equal columns: `repeat(columns, minmax(0, 1fr))`. */
5
+ columns?: number;
6
+ /**
7
+ * Responsive auto mode: `repeat(auto-fill, minmax(minItemWidth, 1fr))`.
8
+ * Takes priority over `columns` when provided.
9
+ */
10
+ minItemWidth?: string;
11
+ /** Spacing scale step (0..12) mapped to `--st-spacing-*`. */
12
+ gap?: number;
13
+ as?: string;
14
+ class?: string;
15
+ children?: Snippet;
16
+ };
17
+ /** Resolve the `grid-template-columns` value. `minItemWidth` (responsive
18
+ auto-fill) wins over a fixed column count. */
19
+ export declare function gridTemplateColumns(columns: number | undefined, minItemWidth: string | undefined): string | undefined;
20
+ declare const Grid: import("svelte").Component<GridProps, {}, "">;
21
+ type Grid = ReturnType<typeof Grid>;
22
+ export default Grid;
23
+ //# sourceMappingURL=Grid.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.svelte.d.ts","sourceRoot":"","sources":["../src/lib/Grid.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;IACnE,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;iDACiD;AACjD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,GAAG,SAAS,CASpB;AA2BH,QAAA,MAAM,IAAI,+CAAwC,CAAC;AACnD,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AACpC,eAAe,IAAI,CAAC"}
@@ -0,0 +1,438 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * LollipopChart — tige fine (ligne) + cercle au sommet, par catégorie.
4
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
5
+ *
6
+ * Props obligatoires :
7
+ * data LollipopChartDatum[] - tableau {label, value, tone?}
8
+ * label string - aria-label du graphique
9
+ *
10
+ * Props optionnelles :
11
+ * orientation "vertical"|"horizontal" (défaut "vertical")
12
+ * width number (défaut 480)
13
+ * height number (défaut 240)
14
+ * domain [number, number] - domaine fixe de l'axe des valeurs
15
+ * class string
16
+ */
17
+ export type LollipopChartTone =
18
+ | "category1"
19
+ | "category2"
20
+ | "category3"
21
+ | "category4"
22
+ | "category5"
23
+ | "category6"
24
+ | "category7"
25
+ | "category8";
26
+
27
+ export type LollipopChartDatum = {
28
+ label: string;
29
+ value: number;
30
+ tone?: LollipopChartTone;
31
+ };
32
+ </script>
33
+
34
+ <script lang="ts">
35
+ import ChartDataList from "./ChartDataList.svelte";
36
+ import { contrastTextForTone } from "./chartContrast.js";
37
+
38
+ type LollipopChartProps = {
39
+ data: LollipopChartDatum[];
40
+ width?: number;
41
+ height?: number;
42
+ orientation?: "vertical" | "horizontal";
43
+ label: string;
44
+ /**
45
+ * Domaine fixe de l'axe des valeurs `[min, max]`. Quand fourni (et fini),
46
+ * l'échelle l'utilise au lieu du min/max dérivé des données — laissant
47
+ * plusieurs LollipopCharts d'une grille partager une échelle. Absent ou
48
+ * invalide → repli sur la plage auto (inchangé).
49
+ */
50
+ domain?: [number, number];
51
+ class?: string;
52
+ };
53
+
54
+ let {
55
+ data = [],
56
+ width = 480,
57
+ height = 240,
58
+ orientation = "vertical",
59
+ label,
60
+ domain,
61
+ class: className
62
+ }: LollipopChartProps = $props();
63
+
64
+ const MARGIN = { top: 12, right: 16, bottom: 32, left: 44 };
65
+ const DOT_RADIUS = 5;
66
+
67
+ function niceTicks(min: number, max: number, target = 5): number[] {
68
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min === max) {
69
+ const base = Number.isFinite(max) ? max : 0;
70
+ return [base];
71
+ }
72
+ const range = max - min;
73
+ const rough = range / Math.max(target - 1, 1);
74
+ const pow = Math.pow(10, Math.floor(Math.log10(rough)));
75
+ const norm = rough / pow;
76
+ let step: number;
77
+ if (norm < 1.5) step = 1 * pow;
78
+ else if (norm < 3) step = 2 * pow;
79
+ else if (norm < 7) step = 5 * pow;
80
+ else step = 10 * pow;
81
+ const start = Math.floor(min / step) * step;
82
+ const end = Math.ceil(max / step) * step;
83
+ const ticks: number[] = [];
84
+ for (let v = start; v <= end + step / 2; v += step) {
85
+ ticks.push(Number(v.toFixed(10)));
86
+ }
87
+ return ticks;
88
+ }
89
+
90
+ function scaleLinear(v: number, d0: number, d1: number, r0: number, r1: number) {
91
+ if (d1 === d0) return r0;
92
+ return r0 + ((v - d0) * (r1 - r0)) / (d1 - d0);
93
+ }
94
+
95
+ function formatTick(v: number): string {
96
+ if (Math.abs(v) >= 1000) return `${(v / 1000).toFixed(v % 1000 === 0 ? 0 : 1)}k`;
97
+ if (Number.isInteger(v)) return String(v);
98
+ return v.toFixed(1);
99
+ }
100
+
101
+ let hoveredIndex: number | null = $state(null);
102
+
103
+ // Données valides : value finie.
104
+ const validData = $derived(data.filter((d) => Number.isFinite(d.value)));
105
+
106
+ // Un domaine n'est honoré que si fini et ordonné (min < max).
107
+ const validDomain = $derived.by<[number, number] | null>(() => {
108
+ if (!domain) return null;
109
+ const [d0, d1] = domain;
110
+ if (!Number.isFinite(d0) || !Number.isFinite(d1) || d0 >= d1) return null;
111
+ return [d0, d1];
112
+ });
113
+
114
+ const scales = $derived.by(() => {
115
+ const values = validData.map((d) => d.value);
116
+ const minRaw = validDomain ? validDomain[0] : Math.min(0, ...values);
117
+ const maxRaw = validDomain ? validDomain[1] : Math.max(0, ...values);
118
+ const ticks = niceTicks(minRaw, maxRaw, 5);
119
+ const domainMin = ticks[0];
120
+ const domainMax = ticks[ticks.length - 1];
121
+ const plotWidth = Math.max(width - MARGIN.left - MARGIN.right, 1);
122
+ const plotHeight = Math.max(height - MARGIN.top - MARGIN.bottom, 1);
123
+ return { ticks, domainMin, domainMax, plotWidth, plotHeight };
124
+ });
125
+
126
+ const lollipops = $derived.by(() => {
127
+ const { domainMin, domainMax, plotWidth, plotHeight } = scales;
128
+ if (validData.length === 0) return [];
129
+ if (orientation === "vertical") {
130
+ const band = plotWidth / validData.length;
131
+ const zeroY = scaleLinear(0, domainMin, domainMax, plotHeight, 0);
132
+ return validData.map((d, i) => {
133
+ const valueY = scaleLinear(d.value, domainMin, domainMax, plotHeight, 0);
134
+ const cx = MARGIN.left + band * (i + 0.5);
135
+ return {
136
+ datum: d,
137
+ tone: d.tone ?? "category1",
138
+ // tige : du zéro jusqu'au point
139
+ stemX1: cx,
140
+ stemY1: MARGIN.top + zeroY,
141
+ stemX2: cx,
142
+ stemY2: MARGIN.top + valueY,
143
+ cx,
144
+ cy: MARGIN.top + valueY,
145
+ labelX: cx,
146
+ labelY: height - MARGIN.bottom + 16
147
+ };
148
+ });
149
+ }
150
+ // horizontal
151
+ const band = plotHeight / validData.length;
152
+ const zeroX = scaleLinear(0, domainMin, domainMax, 0, plotWidth);
153
+ return validData.map((d, i) => {
154
+ const valueX = scaleLinear(d.value, domainMin, domainMax, 0, plotWidth);
155
+ const cy = MARGIN.top + band * (i + 0.5);
156
+ return {
157
+ datum: d,
158
+ tone: d.tone ?? "category1",
159
+ stemX1: MARGIN.left + zeroX,
160
+ stemY1: cy,
161
+ stemX2: MARGIN.left + valueX,
162
+ stemY2: cy,
163
+ cx: MARGIN.left + valueX,
164
+ cy,
165
+ labelX: MARGIN.left - 6,
166
+ labelY: cy
167
+ };
168
+ });
169
+ });
170
+
171
+ const dataValueItems = $derived(validData.map((d) => `${d.label}: ${d.value}`));
172
+
173
+ const valueAxisTicks = $derived.by(() => {
174
+ const { ticks, domainMin, domainMax, plotWidth, plotHeight } = scales;
175
+ if (orientation === "vertical") {
176
+ return ticks.map((tick) => ({
177
+ value: tick,
178
+ x1: MARGIN.left,
179
+ x2: MARGIN.left + plotWidth,
180
+ y: MARGIN.top + scaleLinear(tick, domainMin, domainMax, plotHeight, 0),
181
+ x: undefined,
182
+ y1: undefined,
183
+ y2: undefined
184
+ }));
185
+ }
186
+ return ticks.map((tick) => ({
187
+ value: tick,
188
+ x: MARGIN.left + scaleLinear(tick, domainMin, domainMax, 0, plotWidth),
189
+ y1: MARGIN.top,
190
+ y2: MARGIN.top + plotHeight,
191
+ x1: undefined,
192
+ x2: undefined,
193
+ y: undefined
194
+ }));
195
+ });
196
+
197
+ function handleLeave() {
198
+ hoveredIndex = null;
199
+ }
200
+ function handleVisualPointerMove(event: PointerEvent) {
201
+ const target = event.target;
202
+ if (!(target instanceof Element)) {
203
+ hoveredIndex = null;
204
+ return;
205
+ }
206
+ const index = Number(target.getAttribute("data-chart-index"));
207
+ hoveredIndex = Number.isInteger(index) ? index : null;
208
+ }
209
+
210
+ const classes = () => ["st-lollipopChart", className].filter(Boolean).join(" ");
211
+ </script>
212
+
213
+ <div class={classes()}>
214
+ <div
215
+ class="st-lollipopChart__visual"
216
+ role="img"
217
+ aria-label={label}
218
+ onpointermove={handleVisualPointerMove}
219
+ onpointerleave={handleLeave}
220
+ >
221
+ <svg
222
+ viewBox="0 0 {width} {height}"
223
+ preserveAspectRatio="xMidYMid meet"
224
+ width="100%"
225
+ height="100%"
226
+ focusable="false"
227
+ aria-hidden="true"
228
+ >
229
+ <!-- gridlines + value axis ticks -->
230
+ {#if orientation === "vertical"}
231
+ {#each valueAxisTicks as tick (tick.value)}
232
+ <line class="st-lollipopChart__grid" x1={tick.x1} x2={tick.x2} y1={tick.y} y2={tick.y} />
233
+ <text
234
+ class="st-lollipopChart__tickLabel"
235
+ x={MARGIN.left - 6}
236
+ y={tick.y}
237
+ text-anchor="end"
238
+ dominant-baseline="middle"
239
+ >
240
+ {formatTick(tick.value)}
241
+ </text>
242
+ {/each}
243
+ {:else}
244
+ {#each valueAxisTicks as tick (tick.value)}
245
+ <line class="st-lollipopChart__grid" x1={tick.x} x2={tick.x} y1={tick.y1} y2={tick.y2} />
246
+ <text
247
+ class="st-lollipopChart__tickLabel"
248
+ x={tick.x}
249
+ y={height - MARGIN.bottom + 16}
250
+ text-anchor="middle"
251
+ >
252
+ {formatTick(tick.value)}
253
+ </text>
254
+ {/each}
255
+ {/if}
256
+
257
+ <!-- axes -->
258
+ <line
259
+ class="st-lollipopChart__axis"
260
+ x1={MARGIN.left}
261
+ x2={MARGIN.left}
262
+ y1={MARGIN.top}
263
+ y2={height - MARGIN.bottom}
264
+ />
265
+ <line
266
+ class="st-lollipopChart__axis"
267
+ x1={MARGIN.left}
268
+ x2={width - MARGIN.right}
269
+ y1={height - MARGIN.bottom}
270
+ y2={height - MARGIN.bottom}
271
+ />
272
+
273
+ <!-- category labels -->
274
+ {#each lollipops as pop (pop.datum.label)}
275
+ {#if orientation === "vertical"}
276
+ <text
277
+ class="st-lollipopChart__categoryLabel"
278
+ x={pop.labelX}
279
+ y={pop.labelY}
280
+ text-anchor="middle"
281
+ >
282
+ {pop.datum.label}
283
+ </text>
284
+ {:else}
285
+ <text
286
+ class="st-lollipopChart__categoryLabel"
287
+ x={pop.labelX}
288
+ y={pop.labelY}
289
+ text-anchor="end"
290
+ dominant-baseline="middle"
291
+ >
292
+ {pop.datum.label}
293
+ </text>
294
+ {/if}
295
+ {/each}
296
+
297
+ <!-- stems + dots (decorative, inside aria-hidden SVG) -->
298
+ {#each lollipops as pop, i (pop.datum.label)}
299
+ <line
300
+ class="st-lollipopChart__stem"
301
+ x1={pop.stemX1}
302
+ y1={pop.stemY1}
303
+ x2={pop.stemX2}
304
+ y2={pop.stemY2}
305
+ />
306
+ <circle
307
+ class="st-lollipopChart__dot st-lollipopChart__dot--{pop.tone}"
308
+ cx={pop.cx}
309
+ cy={pop.cy}
310
+ r={DOT_RADIUS}
311
+ data-chart-index={i}
312
+ />
313
+ <!-- value label near the dot, colour kept readable via contrastTextForTone -->
314
+ <text
315
+ class="st-lollipopChart__valueLabel"
316
+ x={pop.cx}
317
+ y={orientation === "vertical" ? pop.cy - DOT_RADIUS - 4 : pop.cy}
318
+ dx={orientation === "vertical" ? 0 : DOT_RADIUS + 4}
319
+ text-anchor={orientation === "vertical" ? "middle" : "start"}
320
+ dominant-baseline={orientation === "vertical" ? "auto" : "middle"}
321
+ style="fill: {contrastTextForTone(pop.tone)}"
322
+ >
323
+ {formatTick(pop.datum.value)}
324
+ </text>
325
+ {/each}
326
+ </svg>
327
+ </div>
328
+
329
+ <ChartDataList {label} items={dataValueItems} />
330
+
331
+ {#if hoveredIndex !== null && lollipops[hoveredIndex]}
332
+ {@const pop = lollipops[hoveredIndex]}
333
+ <div
334
+ class="st-lollipopChart__tooltip"
335
+ role="presentation"
336
+ style="left: {(pop.cx / width) * 100}%; top: {(pop.cy / height) * 100}%"
337
+ >
338
+ <span class="st-lollipopChart__tooltipLabel">{pop.datum.label}</span>
339
+ <span class="st-lollipopChart__tooltipValue">{pop.datum.value}</span>
340
+ </div>
341
+ {/if}
342
+ </div>
343
+
344
+ <style>
345
+ .st-lollipopChart {
346
+ color: var(--st-semantic-text-secondary);
347
+ display: block;
348
+ font-family: inherit;
349
+ position: relative;
350
+ width: 100%;
351
+ }
352
+
353
+ .st-lollipopChart svg {
354
+ display: block;
355
+ overflow: visible;
356
+ }
357
+
358
+ .st-lollipopChart__visual {
359
+ display: block;
360
+ }
361
+
362
+ .st-lollipopChart__grid {
363
+ stroke: var(--st-component-lollipopChart-gridStroke, var(--st-semantic-border-subtle));
364
+ stroke-dasharray: 2 3;
365
+ stroke-width: 1;
366
+ opacity: 0.7;
367
+ }
368
+
369
+ .st-lollipopChart__axis {
370
+ stroke: var(--st-component-lollipopChart-axisStroke, var(--st-semantic-border-subtle));
371
+ stroke-width: 1;
372
+ }
373
+
374
+ .st-lollipopChart__tickLabel,
375
+ .st-lollipopChart__categoryLabel {
376
+ fill: var(--st-component-lollipopChart-labelColor, var(--st-semantic-text-secondary));
377
+ font-size: 0.6875rem;
378
+ }
379
+
380
+ .st-lollipopChart__valueLabel {
381
+ font-size: 0.625rem;
382
+ font-weight: 600;
383
+ }
384
+
385
+ .st-lollipopChart__stem {
386
+ stroke: var(--st-semantic-border-interactive, var(--st-semantic-border-subtle));
387
+ stroke-width: 1.5;
388
+ }
389
+
390
+ .st-lollipopChart__dot {
391
+ cursor: pointer;
392
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
393
+ }
394
+
395
+ .st-lollipopChart__dot:hover {
396
+ opacity: 0.82;
397
+ }
398
+
399
+ .st-lollipopChart__dot--category1 { fill: var(--st-semantic-data-category1); }
400
+ .st-lollipopChart__dot--category2 { fill: var(--st-semantic-data-category2); }
401
+ .st-lollipopChart__dot--category3 { fill: var(--st-semantic-data-category3); }
402
+ .st-lollipopChart__dot--category4 { fill: var(--st-semantic-data-category4); }
403
+ .st-lollipopChart__dot--category5 { fill: var(--st-semantic-data-category5); }
404
+ .st-lollipopChart__dot--category6 { fill: var(--st-semantic-data-category6); }
405
+ .st-lollipopChart__dot--category7 { fill: var(--st-semantic-data-category7); }
406
+ .st-lollipopChart__dot--category8 { fill: var(--st-semantic-data-category8); }
407
+
408
+ .st-lollipopChart__tooltip {
409
+ background: var(--st-component-lollipopChart-tooltipBackground, var(--st-semantic-surface-inverse));
410
+ border-radius: var(--st-radius-sm, 0.25rem);
411
+ color: var(--st-component-lollipopChart-tooltipText, var(--st-semantic-text-inverse));
412
+ display: inline-flex;
413
+ flex-direction: column;
414
+ font-size: 0.75rem;
415
+ gap: 0.125rem;
416
+ line-height: 1.2;
417
+ padding: 0.375rem 0.5rem;
418
+ pointer-events: none;
419
+ position: absolute;
420
+ transform: translate(-50%, calc(-100% - 8px));
421
+ white-space: nowrap;
422
+ z-index: 1;
423
+ }
424
+
425
+ .st-lollipopChart__tooltipLabel {
426
+ font-weight: 600;
427
+ }
428
+
429
+ .st-lollipopChart__tooltipValue {
430
+ opacity: 0.85;
431
+ }
432
+
433
+ @media (prefers-reduced-motion: reduce) {
434
+ .st-lollipopChart__dot {
435
+ transition: none;
436
+ }
437
+ }
438
+ </style>
@@ -0,0 +1,40 @@
1
+ /**
2
+ * LollipopChart — tige fine (ligne) + cercle au sommet, par catégorie.
3
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
4
+ *
5
+ * Props obligatoires :
6
+ * data LollipopChartDatum[] - tableau {label, value, tone?}
7
+ * label string - aria-label du graphique
8
+ *
9
+ * Props optionnelles :
10
+ * orientation "vertical"|"horizontal" (défaut "vertical")
11
+ * width number (défaut 480)
12
+ * height number (défaut 240)
13
+ * domain [number, number] - domaine fixe de l'axe des valeurs
14
+ * class string
15
+ */
16
+ export type LollipopChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
17
+ export type LollipopChartDatum = {
18
+ label: string;
19
+ value: number;
20
+ tone?: LollipopChartTone;
21
+ };
22
+ type LollipopChartProps = {
23
+ data: LollipopChartDatum[];
24
+ width?: number;
25
+ height?: number;
26
+ orientation?: "vertical" | "horizontal";
27
+ label: string;
28
+ /**
29
+ * Domaine fixe de l'axe des valeurs `[min, max]`. Quand fourni (et fini),
30
+ * l'échelle l'utilise au lieu du min/max dérivé des données — laissant
31
+ * plusieurs LollipopCharts d'une grille partager une échelle. Absent ou
32
+ * invalide → repli sur la plage auto (inchangé).
33
+ */
34
+ domain?: [number, number];
35
+ class?: string;
36
+ };
37
+ declare const LollipopChart: import("svelte").Component<LollipopChartProps, {}, "">;
38
+ type LollipopChart = ReturnType<typeof LollipopChart>;
39
+ export default LollipopChart;
40
+ //# sourceMappingURL=LollipopChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LollipopChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/LollipopChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B,CAAC;AAOF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAuOJ,QAAA,MAAM,aAAa,wDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,424 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * ParetoChart — barres triées décroissantes + courbe cumulée en % (2e axe).
4
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
5
+ *
6
+ * Props obligatoires :
7
+ * data ParetoChartDatum[] - tableau {label, value, tone?}
8
+ * label string - aria-label du graphique
9
+ *
10
+ * Props optionnelles :
11
+ * width number (défaut 480)
12
+ * height number (défaut 240)
13
+ * class string
14
+ */
15
+ export type ParetoChartTone =
16
+ | "category1"
17
+ | "category2"
18
+ | "category3"
19
+ | "category4"
20
+ | "category5"
21
+ | "category6"
22
+ | "category7"
23
+ | "category8";
24
+
25
+ export type ParetoChartDatum = {
26
+ label: string;
27
+ value: number;
28
+ tone?: ParetoChartTone;
29
+ };
30
+ </script>
31
+
32
+ <script lang="ts">
33
+ import ChartDataList from "./ChartDataList.svelte";
34
+
35
+ type ParetoChartProps = {
36
+ data: ParetoChartDatum[];
37
+ width?: number;
38
+ height?: number;
39
+ label: string;
40
+ class?: string;
41
+ };
42
+
43
+ let {
44
+ data = [],
45
+ width = 480,
46
+ height = 240,
47
+ label,
48
+ class: className
49
+ }: ParetoChartProps = $props();
50
+
51
+ // Right margin larger than BarChart's to host the % axis labels.
52
+ const MARGIN = { top: 12, right: 44, bottom: 32, left: 44 };
53
+ const DOT_RADIUS = 4;
54
+
55
+ function niceTicks(min: number, max: number, target = 5): number[] {
56
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min === max) {
57
+ const base = Number.isFinite(max) ? max : 0;
58
+ return [base];
59
+ }
60
+ const range = max - min;
61
+ const rough = range / Math.max(target - 1, 1);
62
+ const pow = Math.pow(10, Math.floor(Math.log10(rough)));
63
+ const norm = rough / pow;
64
+ let step: number;
65
+ if (norm < 1.5) step = 1 * pow;
66
+ else if (norm < 3) step = 2 * pow;
67
+ else if (norm < 7) step = 5 * pow;
68
+ else step = 10 * pow;
69
+ const start = Math.floor(min / step) * step;
70
+ const end = Math.ceil(max / step) * step;
71
+ const ticks: number[] = [];
72
+ for (let v = start; v <= end + step / 2; v += step) {
73
+ ticks.push(Number(v.toFixed(10)));
74
+ }
75
+ return ticks;
76
+ }
77
+
78
+ function scaleLinear(v: number, d0: number, d1: number, r0: number, r1: number) {
79
+ if (d1 === d0) return r0;
80
+ return r0 + ((v - d0) * (r1 - r0)) / (d1 - d0);
81
+ }
82
+
83
+ function formatTick(v: number): string {
84
+ if (Math.abs(v) >= 1000) return `${(v / 1000).toFixed(v % 1000 === 0 ? 0 : 1)}k`;
85
+ if (Number.isInteger(v)) return String(v);
86
+ return v.toFixed(1);
87
+ }
88
+
89
+ let hoveredIndex: number | null = $state(null);
90
+
91
+ // Valid data: finite, non-negative value (Pareto cumulative % assumes
92
+ // non-negative magnitudes). Sorted descending by value.
93
+ const sortedData = $derived(
94
+ data
95
+ .filter((d) => Number.isFinite(d.value) && d.value >= 0)
96
+ .slice()
97
+ .sort((a, b) => b.value - a.value)
98
+ );
99
+
100
+ const total = $derived(sortedData.reduce((acc, d) => acc + d.value, 0));
101
+
102
+ const scales = $derived.by(() => {
103
+ const values = sortedData.map((d) => d.value);
104
+ const ticks = niceTicks(0, Math.max(0, ...values), 5);
105
+ const domainMin = ticks[0];
106
+ const domainMax = ticks[ticks.length - 1];
107
+ const plotWidth = Math.max(width - MARGIN.left - MARGIN.right, 1);
108
+ const plotHeight = Math.max(height - MARGIN.top - MARGIN.bottom, 1);
109
+ return { ticks, domainMin, domainMax, plotWidth, plotHeight };
110
+ });
111
+
112
+ type ParetoEntry = {
113
+ datum: ParetoChartDatum;
114
+ tone: ParetoChartTone;
115
+ // bar geometry
116
+ x: number;
117
+ y: number;
118
+ width: number;
119
+ height: number;
120
+ // cumulative point geometry
121
+ cumPercent: number;
122
+ cx: number;
123
+ cy: number;
124
+ };
125
+
126
+ const entries = $derived.by<ParetoEntry[]>(() => {
127
+ const { domainMin, domainMax, plotWidth, plotHeight } = scales;
128
+ if (sortedData.length === 0) return [];
129
+ const band = plotWidth / sortedData.length;
130
+ const barWidth = band * 0.62;
131
+ const zeroY = scaleLinear(0, domainMin, domainMax, plotHeight, 0);
132
+ let running = 0;
133
+ return sortedData.map((d, i) => {
134
+ running += d.value;
135
+ const cumPercent = total > 0 ? (running / total) * 100 : 0;
136
+ const valueY = scaleLinear(d.value, domainMin, domainMax, plotHeight, 0);
137
+ const y = Math.min(valueY, zeroY);
138
+ const h = Math.abs(zeroY - valueY);
139
+ const x = MARGIN.left + band * i + (band - barWidth) / 2;
140
+ // The % axis maps [0,100] over the full plot height (100% at top).
141
+ const cy = MARGIN.top + scaleLinear(cumPercent, 0, 100, plotHeight, 0);
142
+ return {
143
+ datum: d,
144
+ tone: d.tone ?? "category1",
145
+ x,
146
+ y: MARGIN.top + y,
147
+ width: barWidth,
148
+ height: Math.max(h, 0.5),
149
+ cumPercent,
150
+ cx: MARGIN.left + band * (i + 0.5),
151
+ cy
152
+ };
153
+ });
154
+ });
155
+
156
+ const cumulativePath = $derived(
157
+ entries.map((e, i) => `${i === 0 ? "M" : "L"} ${e.cx} ${e.cy}`).join(" ")
158
+ );
159
+
160
+ const dataValueItems = $derived(
161
+ entries.map(
162
+ (e) => `${e.datum.label}: ${e.datum.value} (${formatTick(e.cumPercent)}% cumulé)`
163
+ )
164
+ );
165
+
166
+ const valueAxisTicks = $derived.by(() => {
167
+ const { ticks, domainMin, domainMax, plotWidth, plotHeight } = scales;
168
+ return ticks.map((tick) => ({
169
+ value: tick,
170
+ x1: MARGIN.left,
171
+ x2: MARGIN.left + plotWidth,
172
+ y: MARGIN.top + scaleLinear(tick, domainMin, domainMax, plotHeight, 0)
173
+ }));
174
+ });
175
+
176
+ // Right (percentage) axis: fixed 0–100 in 25% steps.
177
+ const percentAxisTicks = $derived.by(() => {
178
+ const { plotHeight } = scales;
179
+ return [0, 25, 50, 75, 100].map((pct) => ({
180
+ value: pct,
181
+ y: MARGIN.top + scaleLinear(pct, 0, 100, plotHeight, 0)
182
+ }));
183
+ });
184
+
185
+ function handleLeave() {
186
+ hoveredIndex = null;
187
+ }
188
+ function handleVisualPointerMove(event: PointerEvent) {
189
+ const target = event.target;
190
+ if (!(target instanceof Element)) {
191
+ hoveredIndex = null;
192
+ return;
193
+ }
194
+ const index = Number(target.getAttribute("data-chart-index"));
195
+ hoveredIndex = Number.isInteger(index) ? index : null;
196
+ }
197
+
198
+ const classes = () => ["st-paretoChart", className].filter(Boolean).join(" ");
199
+ </script>
200
+
201
+ <div class={classes()}>
202
+ <div
203
+ class="st-paretoChart__visual"
204
+ role="img"
205
+ aria-label={label}
206
+ onpointermove={handleVisualPointerMove}
207
+ onpointerleave={handleLeave}
208
+ >
209
+ <svg
210
+ viewBox="0 0 {width} {height}"
211
+ preserveAspectRatio="xMidYMid meet"
212
+ width="100%"
213
+ height="100%"
214
+ focusable="false"
215
+ aria-hidden="true"
216
+ >
217
+ <!-- value-axis gridlines + left tick labels -->
218
+ {#each valueAxisTicks as tick (tick.value)}
219
+ <line class="st-paretoChart__grid" x1={tick.x1} x2={tick.x2} y1={tick.y} y2={tick.y} />
220
+ <text
221
+ class="st-paretoChart__tickLabel"
222
+ x={MARGIN.left - 6}
223
+ y={tick.y}
224
+ text-anchor="end"
225
+ dominant-baseline="middle"
226
+ >
227
+ {formatTick(tick.value)}
228
+ </text>
229
+ {/each}
230
+
231
+ <!-- right percentage-axis labels -->
232
+ {#each percentAxisTicks as tick (tick.value)}
233
+ <text
234
+ class="st-paretoChart__percentLabel"
235
+ x={width - MARGIN.right + 6}
236
+ y={tick.y}
237
+ text-anchor="start"
238
+ dominant-baseline="middle"
239
+ >
240
+ {tick.value}%
241
+ </text>
242
+ {/each}
243
+
244
+ <!-- axes -->
245
+ <line
246
+ class="st-paretoChart__axis"
247
+ x1={MARGIN.left}
248
+ x2={MARGIN.left}
249
+ y1={MARGIN.top}
250
+ y2={height - MARGIN.bottom}
251
+ />
252
+ <line
253
+ class="st-paretoChart__axis"
254
+ x1={width - MARGIN.right}
255
+ x2={width - MARGIN.right}
256
+ y1={MARGIN.top}
257
+ y2={height - MARGIN.bottom}
258
+ />
259
+ <line
260
+ class="st-paretoChart__axis"
261
+ x1={MARGIN.left}
262
+ x2={width - MARGIN.right}
263
+ y1={height - MARGIN.bottom}
264
+ y2={height - MARGIN.bottom}
265
+ />
266
+
267
+ <!-- category labels -->
268
+ {#each entries as e (e.datum.label)}
269
+ <text
270
+ class="st-paretoChart__categoryLabel"
271
+ x={e.x + e.width / 2}
272
+ y={height - MARGIN.bottom + 16}
273
+ text-anchor="middle"
274
+ >
275
+ {e.datum.label}
276
+ </text>
277
+ {/each}
278
+
279
+ <!-- bars (decorative, inside aria-hidden SVG) -->
280
+ {#each entries as e, i (e.datum.label)}
281
+ <rect
282
+ class="st-paretoChart__bar st-paretoChart__bar--{e.tone}"
283
+ x={e.x}
284
+ y={e.y}
285
+ width={e.width}
286
+ height={e.height}
287
+ rx="2"
288
+ data-chart-index={i}
289
+ />
290
+ {/each}
291
+
292
+ <!-- cumulative % line + dots -->
293
+ {#if entries.length > 0}
294
+ <path class="st-paretoChart__cumLine" d={cumulativePath} fill="none" />
295
+ {#each entries as e, i (e.datum.label)}
296
+ <circle
297
+ class="st-paretoChart__cumDot"
298
+ cx={e.cx}
299
+ cy={e.cy}
300
+ r={DOT_RADIUS}
301
+ data-chart-index={i}
302
+ />
303
+ {/each}
304
+ {/if}
305
+ </svg>
306
+ </div>
307
+
308
+ <ChartDataList {label} items={dataValueItems} />
309
+
310
+ {#if hoveredIndex !== null && entries[hoveredIndex]}
311
+ {@const e = entries[hoveredIndex]}
312
+ <div
313
+ class="st-paretoChart__tooltip"
314
+ role="presentation"
315
+ style="left: {(e.cx / width) * 100}%; top: {(e.cy / height) * 100}%"
316
+ >
317
+ <span class="st-paretoChart__tooltipLabel">{e.datum.label}</span>
318
+ <span class="st-paretoChart__tooltipValue">{e.datum.value} · {formatTick(e.cumPercent)}%</span>
319
+ </div>
320
+ {/if}
321
+ </div>
322
+
323
+ <style>
324
+ .st-paretoChart {
325
+ color: var(--st-semantic-text-secondary);
326
+ display: block;
327
+ font-family: inherit;
328
+ position: relative;
329
+ width: 100%;
330
+ }
331
+
332
+ .st-paretoChart svg {
333
+ display: block;
334
+ overflow: visible;
335
+ }
336
+
337
+ .st-paretoChart__visual {
338
+ display: block;
339
+ }
340
+
341
+ .st-paretoChart__grid {
342
+ stroke: var(--st-component-paretoChart-gridStroke, var(--st-semantic-border-subtle));
343
+ stroke-dasharray: 2 3;
344
+ stroke-width: 1;
345
+ opacity: 0.7;
346
+ }
347
+
348
+ .st-paretoChart__axis {
349
+ stroke: var(--st-component-paretoChart-axisStroke, var(--st-semantic-border-subtle));
350
+ stroke-width: 1;
351
+ }
352
+
353
+ .st-paretoChart__tickLabel,
354
+ .st-paretoChart__categoryLabel,
355
+ .st-paretoChart__percentLabel {
356
+ fill: var(--st-component-paretoChart-labelColor, var(--st-semantic-text-secondary));
357
+ font-size: 0.6875rem;
358
+ }
359
+
360
+ .st-paretoChart__bar {
361
+ cursor: pointer;
362
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
363
+ }
364
+
365
+ .st-paretoChart__bar:hover {
366
+ opacity: 0.82;
367
+ }
368
+
369
+ .st-paretoChart__bar--category1 { fill: var(--st-semantic-data-category1); }
370
+ .st-paretoChart__bar--category2 { fill: var(--st-semantic-data-category2); }
371
+ .st-paretoChart__bar--category3 { fill: var(--st-semantic-data-category3); }
372
+ .st-paretoChart__bar--category4 { fill: var(--st-semantic-data-category4); }
373
+ .st-paretoChart__bar--category5 { fill: var(--st-semantic-data-category5); }
374
+ .st-paretoChart__bar--category6 { fill: var(--st-semantic-data-category6); }
375
+ .st-paretoChart__bar--category7 { fill: var(--st-semantic-data-category7); }
376
+ .st-paretoChart__bar--category8 { fill: var(--st-semantic-data-category8); }
377
+
378
+ .st-paretoChart__cumLine {
379
+ stroke: var(--st-semantic-action-primary, var(--st-semantic-border-interactive));
380
+ stroke-width: 2;
381
+ }
382
+
383
+ .st-paretoChart__cumDot {
384
+ cursor: pointer;
385
+ fill: var(--st-semantic-action-primary, var(--st-semantic-border-interactive));
386
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
387
+ }
388
+
389
+ .st-paretoChart__cumDot:hover {
390
+ opacity: 0.82;
391
+ }
392
+
393
+ .st-paretoChart__tooltip {
394
+ background: var(--st-component-paretoChart-tooltipBackground, var(--st-semantic-surface-inverse));
395
+ border-radius: var(--st-radius-sm, 0.25rem);
396
+ color: var(--st-component-paretoChart-tooltipText, var(--st-semantic-text-inverse));
397
+ display: inline-flex;
398
+ flex-direction: column;
399
+ font-size: 0.75rem;
400
+ gap: 0.125rem;
401
+ line-height: 1.2;
402
+ padding: 0.375rem 0.5rem;
403
+ pointer-events: none;
404
+ position: absolute;
405
+ transform: translate(-50%, calc(-100% - 8px));
406
+ white-space: nowrap;
407
+ z-index: 1;
408
+ }
409
+
410
+ .st-paretoChart__tooltipLabel {
411
+ font-weight: 600;
412
+ }
413
+
414
+ .st-paretoChart__tooltipValue {
415
+ opacity: 0.85;
416
+ }
417
+
418
+ @media (prefers-reduced-motion: reduce) {
419
+ .st-paretoChart__bar,
420
+ .st-paretoChart__cumDot {
421
+ transition: none;
422
+ }
423
+ }
424
+ </style>
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ParetoChart — barres triées décroissantes + courbe cumulée en % (2e axe).
3
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
4
+ *
5
+ * Props obligatoires :
6
+ * data ParetoChartDatum[] - tableau {label, value, tone?}
7
+ * label string - aria-label du graphique
8
+ *
9
+ * Props optionnelles :
10
+ * width number (défaut 480)
11
+ * height number (défaut 240)
12
+ * class string
13
+ */
14
+ export type ParetoChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
15
+ export type ParetoChartDatum = {
16
+ label: string;
17
+ value: number;
18
+ tone?: ParetoChartTone;
19
+ };
20
+ type ParetoChartProps = {
21
+ data: ParetoChartDatum[];
22
+ width?: number;
23
+ height?: number;
24
+ label: string;
25
+ class?: string;
26
+ };
27
+ declare const ParetoChart: import("svelte").Component<ParetoChartProps, {}, "">;
28
+ type ParetoChart = ReturnType<typeof ParetoChart>;
29
+ export default ParetoChart;
30
+ //# sourceMappingURL=ParetoChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParetoChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/ParetoChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB,CAAC;AAMF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkOJ,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { default as ParallelCoordinatesChart } from "./ParallelCoordinatesChart.
5
5
  export { default as CandlestickChart } from "./CandlestickChart.svelte";
6
6
  export { default as CalendarHeatmapChart } from "./CalendarHeatmapChart.svelte";
7
7
  export { default as BumpChart } from "./BumpChart.svelte";
8
+ export { default as LollipopChart } from "./LollipopChart.svelte";
9
+ export { default as ParetoChart } from "./ParetoChart.svelte";
8
10
  export { default as Alert } from "./Alert.svelte";
9
11
  export { default as AreaChart } from "./AreaChart.svelte";
10
12
  export { default as AspectRatio } from "./AspectRatio.svelte";
@@ -50,6 +52,7 @@ export { default as Flex } from "./Flex.svelte";
50
52
  export { default as Footer } from "./Footer.svelte";
51
53
  export { default as ForceGraph } from "./ForceGraph.svelte";
52
54
  export { default as GraphLegend } from "./GraphLegend.svelte";
55
+ export { default as Grid } from "./Grid.svelte";
53
56
  export { default as Form } from "./Form.svelte";
54
57
  export { default as FormGroup } from "./FormGroup.svelte";
55
58
  export { default as FunnelChart } from "./FunnelChart.svelte";
@@ -153,6 +156,8 @@ export type { ParallelCoordinatesChartTone, ParallelAxis } from "./ParallelCoord
153
156
  export type { CandlestickChartDatum } from "./CandlestickChart.svelte";
154
157
  export type { CalendarHeatmapChartDatum } from "./CalendarHeatmapChart.svelte";
155
158
  export type { BumpChartTone, BumpChartSeries } from "./BumpChart.svelte";
159
+ export type { LollipopChartTone, LollipopChartDatum } from "./LollipopChart.svelte";
160
+ export type { ParetoChartTone, ParetoChartDatum } from "./ParetoChart.svelte";
156
161
  export type { TreemapChartTone, TreemapChartDatum, TreemapTiling } from "./TreemapChart.svelte";
157
162
  export type { KpiCardSize, KpiCardTrend, KpiCardFormat, KpiCardDeltaFormat, KpiCardTone } from "./KpiCard.svelte";
158
163
  export type { BreadcrumbItem } from "./Breadcrumb.svelte";
@@ -200,6 +205,7 @@ export type { InlineProps } from "./Inline.svelte";
200
205
  export type { ContainerProps, ContainerSize } from "./Container.svelte";
201
206
  export type { RowProps } from "./Row.svelte";
202
207
  export type { ColProps, ColSpan } from "./Col.svelte";
208
+ export type { GridProps } from "./Grid.svelte";
203
209
  export type { HiddenProps, HiddenBreakpoint } from "./Hidden.svelte";
204
210
  export type { DividerProps, DividerOrientation, DividerVariant } from "./Divider.svelte";
205
211
  export type { AvatarSize, AvatarShape, AvatarTone } from "./Avatar.svelte";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACnG,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,YAAY,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACpG,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5H,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpF,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ export { default as ParallelCoordinatesChart } from "./ParallelCoordinatesChart.
5
5
  export { default as CandlestickChart } from "./CandlestickChart.svelte";
6
6
  export { default as CalendarHeatmapChart } from "./CalendarHeatmapChart.svelte";
7
7
  export { default as BumpChart } from "./BumpChart.svelte";
8
+ export { default as LollipopChart } from "./LollipopChart.svelte";
9
+ export { default as ParetoChart } from "./ParetoChart.svelte";
8
10
  export { default as Alert } from "./Alert.svelte";
9
11
  export { default as AreaChart } from "./AreaChart.svelte";
10
12
  export { default as AspectRatio } from "./AspectRatio.svelte";
@@ -50,6 +52,7 @@ export { default as Flex } from "./Flex.svelte";
50
52
  export { default as Footer } from "./Footer.svelte";
51
53
  export { default as ForceGraph } from "./ForceGraph.svelte";
52
54
  export { default as GraphLegend } from "./GraphLegend.svelte";
55
+ export { default as Grid } from "./Grid.svelte";
53
56
  export { default as Form } from "./Form.svelte";
54
57
  export { default as FormGroup } from "./FormGroup.svelte";
55
58
  export { default as FunnelChart } from "./FunnelChart.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-svelte",
3
- "version": "0.22.1",
3
+ "version": "0.24.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -27,7 +27,7 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "@lucide/svelte": "^0.562.0",
30
- "@sentropic/design-system-themes": "0.10.3"
30
+ "@sentropic/design-system-themes": "0.11.0"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "svelte": "^5.53.2"