@sentropic/design-system-svelte 0.34.0 → 0.34.20

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.
Files changed (98) hide show
  1. package/dist/AppHeader.svelte +159 -1
  2. package/dist/AppHeader.svelte.d.ts +18 -1
  3. package/dist/AppHeader.svelte.d.ts.map +1 -1
  4. package/dist/ArcDiagramChart.svelte +380 -0
  5. package/dist/ArcDiagramChart.svelte.d.ts +43 -0
  6. package/dist/ArcDiagramChart.svelte.d.ts.map +1 -0
  7. package/dist/AreaRangeChart.svelte +487 -0
  8. package/dist/AreaRangeChart.svelte.d.ts +38 -0
  9. package/dist/AreaRangeChart.svelte.d.ts.map +1 -0
  10. package/dist/AreaSplineRangeChart.svelte +478 -0
  11. package/dist/AreaSplineRangeChart.svelte.d.ts +37 -0
  12. package/dist/AreaSplineRangeChart.svelte.d.ts.map +1 -0
  13. package/dist/BellCurveChart.svelte +487 -0
  14. package/dist/BellCurveChart.svelte.d.ts +40 -0
  15. package/dist/BellCurveChart.svelte.d.ts.map +1 -0
  16. package/dist/Calendar.svelte +11 -0
  17. package/dist/ChatThread.svelte +32 -1
  18. package/dist/ChatThread.svelte.d.ts +14 -0
  19. package/dist/ChatThread.svelte.d.ts.map +1 -1
  20. package/dist/ColumnPyramidChart.svelte +332 -0
  21. package/dist/ColumnPyramidChart.svelte.d.ts +35 -0
  22. package/dist/ColumnPyramidChart.svelte.d.ts.map +1 -0
  23. package/dist/ColumnRangeChart.svelte +432 -0
  24. package/dist/ColumnRangeChart.svelte.d.ts +42 -0
  25. package/dist/ColumnRangeChart.svelte.d.ts.map +1 -0
  26. package/dist/Combobox.svelte +3 -0
  27. package/dist/ContentSwitcher.svelte +1 -1
  28. package/dist/DataTable.svelte.d.ts +1 -1
  29. package/dist/DatePicker.svelte +3 -0
  30. package/dist/DependencyWheelChart.svelte +413 -0
  31. package/dist/DependencyWheelChart.svelte.d.ts +42 -0
  32. package/dist/DependencyWheelChart.svelte.d.ts.map +1 -0
  33. package/dist/DumbbellChart.svelte +403 -0
  34. package/dist/DumbbellChart.svelte.d.ts +44 -0
  35. package/dist/DumbbellChart.svelte.d.ts.map +1 -0
  36. package/dist/ErrorBarChart.svelte +428 -0
  37. package/dist/ErrorBarChart.svelte.d.ts +40 -0
  38. package/dist/ErrorBarChart.svelte.d.ts.map +1 -0
  39. package/dist/GanttChart.svelte +410 -0
  40. package/dist/GanttChart.svelte.d.ts +39 -0
  41. package/dist/GanttChart.svelte.d.ts.map +1 -0
  42. package/dist/HLCChart.svelte +330 -0
  43. package/dist/HLCChart.svelte.d.ts +32 -0
  44. package/dist/HLCChart.svelte.d.ts.map +1 -0
  45. package/dist/HeikinAshiChart.svelte +365 -0
  46. package/dist/HeikinAshiChart.svelte.d.ts +37 -0
  47. package/dist/HeikinAshiChart.svelte.d.ts.map +1 -0
  48. package/dist/HollowCandlestickChart.svelte +357 -0
  49. package/dist/HollowCandlestickChart.svelte.d.ts +34 -0
  50. package/dist/HollowCandlestickChart.svelte.d.ts.map +1 -0
  51. package/dist/Input.svelte +3 -0
  52. package/dist/ItemChart.svelte +389 -0
  53. package/dist/ItemChart.svelte.d.ts +67 -0
  54. package/dist/ItemChart.svelte.d.ts.map +1 -0
  55. package/dist/LollipopChart.svelte +1 -1
  56. package/dist/MultiSelect.svelte +3 -0
  57. package/dist/NumberInput.svelte +3 -0
  58. package/dist/OHLCChart.svelte +343 -0
  59. package/dist/OHLCChart.svelte.d.ts +33 -0
  60. package/dist/OHLCChart.svelte.d.ts.map +1 -0
  61. package/dist/OrganizationChart.svelte +284 -0
  62. package/dist/OrganizationChart.svelte.d.ts +19 -0
  63. package/dist/OrganizationChart.svelte.d.ts.map +1 -0
  64. package/dist/PasswordInput.svelte +3 -0
  65. package/dist/PolygonChart.svelte +189 -0
  66. package/dist/PolygonChart.svelte.d.ts +17 -0
  67. package/dist/PolygonChart.svelte.d.ts.map +1 -0
  68. package/dist/Search.svelte +7 -5
  69. package/dist/Select.svelte +3 -0
  70. package/dist/StreamgraphChart.svelte +283 -0
  71. package/dist/StreamgraphChart.svelte.d.ts +23 -0
  72. package/dist/StreamgraphChart.svelte.d.ts.map +1 -0
  73. package/dist/StreamingMessage.svelte +44 -2
  74. package/dist/StreamingMessage.svelte.d.ts +18 -1
  75. package/dist/StreamingMessage.svelte.d.ts.map +1 -1
  76. package/dist/TileMapChart.svelte +314 -0
  77. package/dist/TileMapChart.svelte.d.ts +45 -0
  78. package/dist/TileMapChart.svelte.d.ts.map +1 -0
  79. package/dist/TimePicker.svelte +3 -0
  80. package/dist/TimelineChart.svelte +362 -0
  81. package/dist/TimelineChart.svelte.d.ts +22 -0
  82. package/dist/TimelineChart.svelte.d.ts.map +1 -0
  83. package/dist/TreegraphChart.svelte +281 -0
  84. package/dist/TreegraphChart.svelte.d.ts +19 -0
  85. package/dist/TreegraphChart.svelte.d.ts.map +1 -0
  86. package/dist/VariablePieChart.svelte +313 -0
  87. package/dist/VariablePieChart.svelte.d.ts +52 -0
  88. package/dist/VariablePieChart.svelte.d.ts.map +1 -0
  89. package/dist/VennChart.svelte +348 -0
  90. package/dist/VennChart.svelte.d.ts +72 -0
  91. package/dist/VennChart.svelte.d.ts.map +1 -0
  92. package/dist/WordCloudChart.svelte +279 -0
  93. package/dist/WordCloudChart.svelte.d.ts +18 -0
  94. package/dist/WordCloudChart.svelte.d.ts.map +1 -0
  95. package/dist/index.d.ts +48 -0
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +24 -0
  98. package/package.json +5 -3
@@ -0,0 +1,432 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * ColumnRangeChart — barre allant d'une valeur BASSE à une valeur HAUTE par
4
+ * catégorie (ex. températures min/max par mois, fourchettes de prix).
5
+ * API canonique (référence Svelte ; React/Vue doivent s'aligner).
6
+ *
7
+ * Props obligatoires :
8
+ * data ColumnRangeChartDatum[] - tableau {category, low, high, tone?}
9
+ * label string - aria-label du graphique
10
+ *
11
+ * Props optionnelles :
12
+ * orientation "vertical"|"horizontal" (défaut "vertical")
13
+ * width number (défaut 480)
14
+ * height number (défaut 240)
15
+ * domain [number, number] - domaine fixe de l'axe des valeurs
16
+ * class string
17
+ */
18
+ export type ColumnRangeChartTone =
19
+ | "category1"
20
+ | "category2"
21
+ | "category3"
22
+ | "category4"
23
+ | "category5"
24
+ | "category6"
25
+ | "category7"
26
+ | "category8";
27
+
28
+ export type ColumnRangeChartDatum = {
29
+ category: string;
30
+ low: number;
31
+ high: number;
32
+ tone?: ColumnRangeChartTone;
33
+ };
34
+ </script>
35
+
36
+ <script lang="ts">
37
+ import ChartDataList from "./ChartDataList.svelte";
38
+
39
+ type ColumnRangeChartProps = {
40
+ data: ColumnRangeChartDatum[];
41
+ width?: number;
42
+ height?: number;
43
+ orientation?: "vertical" | "horizontal";
44
+ label: string;
45
+ /**
46
+ * Domaine fixe de l'axe des valeurs `[min, max]`. Quand fourni (et fini),
47
+ * l'échelle l'utilise au lieu du min/max dérivé des données — laissant
48
+ * plusieurs ColumnRangeCharts d'une grille partager une échelle. Absent ou
49
+ * invalide → repli sur la plage auto (inchangé).
50
+ */
51
+ domain?: [number, number];
52
+ class?: string;
53
+ };
54
+
55
+ let {
56
+ data = [],
57
+ width = 480,
58
+ height = 240,
59
+ orientation = "vertical",
60
+ label,
61
+ domain,
62
+ class: className
63
+ }: ColumnRangeChartProps = $props();
64
+
65
+ const MARGIN = { top: 12, right: 16, bottom: 32, left: 44 };
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 formatTick(v: number): string {
91
+ if (Math.abs(v) >= 1000) return `${(v / 1000).toFixed(v % 1000 === 0 ? 0 : 1)}k`;
92
+ if (Number.isInteger(v)) return String(v);
93
+ return v.toFixed(1);
94
+ }
95
+
96
+ // Normalise un point : low/high finis, ordonnés (lo <= hi).
97
+ function normalize(d: ColumnRangeChartDatum): { lo: number; hi: number } | null {
98
+ if (!Number.isFinite(d.low) || !Number.isFinite(d.high)) return null;
99
+ return { lo: Math.min(d.low, d.high), hi: Math.max(d.low, d.high) };
100
+ }
101
+
102
+ let hoveredIndex: number | null = $state(null);
103
+
104
+ // Données valides : low + high finis.
105
+ const validData = $derived(data.filter((d) => normalize(d) !== null));
106
+
107
+ // Un domaine n'est honoré que si fini et ordonné (min < max).
108
+ const validDomain = $derived.by<[number, number] | null>(() => {
109
+ if (!domain) return null;
110
+ const [d0, d1] = domain;
111
+ if (!Number.isFinite(d0) || !Number.isFinite(d1) || d0 >= d1) return null;
112
+ return [d0, d1];
113
+ });
114
+
115
+ const scales = $derived.by(() => {
116
+ const lows = validData.map((d) => Math.min(d.low, d.high));
117
+ const highs = validData.map((d) => Math.max(d.low, d.high));
118
+ const minRaw = validDomain ? validDomain[0] : Math.min(...lows, ...highs);
119
+ const maxRaw = validDomain ? validDomain[1] : Math.max(...lows, ...highs);
120
+ const ticks = niceTicks(minRaw, maxRaw, 5);
121
+ const domainMin = ticks[0];
122
+ const domainMax = ticks[ticks.length - 1];
123
+ const plotWidth = Math.max(width - MARGIN.left - MARGIN.right, 1);
124
+ const plotHeight = Math.max(height - MARGIN.top - MARGIN.bottom, 1);
125
+ return { ticks, domainMin, domainMax, plotWidth, plotHeight };
126
+ });
127
+
128
+ // Fraction [0,1] d'une valeur le long de l'axe (0 = domainMin, 1 = domainMax).
129
+ const valueFraction = $derived((v: number) => {
130
+ const { domainMin, domainMax } = scales;
131
+ if (domainMax === domainMin) return 0;
132
+ const f = (v - domainMin) / (domainMax - domainMin);
133
+ return Math.min(1, Math.max(0, f));
134
+ });
135
+
136
+ const bars = $derived.by(() => {
137
+ const { plotWidth, plotHeight } = scales;
138
+ if (validData.length === 0) return [];
139
+ if (orientation === "vertical") {
140
+ const band = plotWidth / validData.length;
141
+ const barWidth = band * 0.62;
142
+ // Pixel y pour une valeur (fraction 0 → bas, 1 → haut du plot).
143
+ const yOf = (v: number) => plotHeight * (1 - valueFraction(v));
144
+ return validData.map((d, i) => {
145
+ const range = normalize(d)!;
146
+ const yLow = yOf(range.lo);
147
+ const yHigh = yOf(range.hi);
148
+ const y = Math.min(yLow, yHigh);
149
+ const h = Math.abs(yLow - yHigh);
150
+ const x = MARGIN.left + band * i + (band - barWidth) / 2;
151
+ return {
152
+ x,
153
+ y: MARGIN.top + y,
154
+ width: barWidth,
155
+ height: Math.max(h, 0.5),
156
+ cx: MARGIN.left + band * (i + 0.5),
157
+ cy: MARGIN.top + (yLow + yHigh) / 2,
158
+ datum: d,
159
+ range,
160
+ tone: d.tone ?? "category1"
161
+ };
162
+ });
163
+ }
164
+ // horizontal
165
+ const band = plotHeight / validData.length;
166
+ const barHeight = band * 0.62;
167
+ // Pixel x pour une valeur (fraction 0 → gauche, 1 → droite du plot).
168
+ const xOf = (v: number) => plotWidth * valueFraction(v);
169
+ return validData.map((d, i) => {
170
+ const range = normalize(d)!;
171
+ const xLow = xOf(range.lo);
172
+ const xHigh = xOf(range.hi);
173
+ const x = Math.min(xLow, xHigh);
174
+ const w = Math.abs(xHigh - xLow);
175
+ const y = MARGIN.top + band * i + (band - barHeight) / 2;
176
+ return {
177
+ x: MARGIN.left + x,
178
+ y,
179
+ width: Math.max(w, 0.5),
180
+ height: barHeight,
181
+ cx: MARGIN.left + (xLow + xHigh) / 2,
182
+ cy: MARGIN.top + band * (i + 0.5),
183
+ datum: d,
184
+ range,
185
+ tone: d.tone ?? "category1"
186
+ };
187
+ });
188
+ });
189
+
190
+ const dataValueItems = $derived(
191
+ bars.map((bar) => `${bar.datum.category}: ${bar.range.lo} – ${bar.range.hi}`)
192
+ );
193
+
194
+ const valueAxisTicks = $derived.by(() => {
195
+ const { ticks, plotWidth, plotHeight } = scales;
196
+ if (orientation === "vertical") {
197
+ return ticks.map((tick) => ({
198
+ value: tick,
199
+ x1: MARGIN.left,
200
+ x2: MARGIN.left + plotWidth,
201
+ y: MARGIN.top + plotHeight * (1 - valueFraction(tick)),
202
+ x: undefined,
203
+ y1: undefined,
204
+ y2: undefined
205
+ }));
206
+ }
207
+ return ticks.map((tick) => ({
208
+ value: tick,
209
+ x: MARGIN.left + plotWidth * valueFraction(tick),
210
+ y1: MARGIN.top,
211
+ y2: MARGIN.top + plotHeight,
212
+ x1: undefined,
213
+ x2: undefined,
214
+ y: undefined
215
+ }));
216
+ });
217
+
218
+ function handleLeave() {
219
+ hoveredIndex = null;
220
+ }
221
+ function handleVisualPointerMove(event: PointerEvent) {
222
+ const target = event.target;
223
+ if (!(target instanceof Element)) {
224
+ hoveredIndex = null;
225
+ return;
226
+ }
227
+ const index = Number(target.getAttribute("data-chart-index"));
228
+ hoveredIndex = Number.isInteger(index) ? index : null;
229
+ }
230
+
231
+ const classes = () => ["st-columnRangeChart", className].filter(Boolean).join(" ");
232
+ </script>
233
+
234
+ <div class={classes()}>
235
+ <div
236
+ class="st-columnRangeChart__visual"
237
+ role="img"
238
+ aria-label={label}
239
+ onpointermove={handleVisualPointerMove}
240
+ onpointerleave={handleLeave}
241
+ >
242
+ <svg
243
+ viewBox="0 0 {width} {height}"
244
+ preserveAspectRatio="xMidYMid meet"
245
+ width="100%"
246
+ height="100%"
247
+ focusable="false"
248
+ aria-hidden="true"
249
+ >
250
+ <!-- gridlines + value axis ticks -->
251
+ {#if orientation === "vertical"}
252
+ {#each valueAxisTicks as tick (tick.value)}
253
+ <line class="st-columnRangeChart__grid" x1={tick.x1} x2={tick.x2} y1={tick.y} y2={tick.y} />
254
+ <text
255
+ class="st-columnRangeChart__tickLabel"
256
+ x={MARGIN.left - 6}
257
+ y={tick.y}
258
+ text-anchor="end"
259
+ dominant-baseline="middle"
260
+ >
261
+ {formatTick(tick.value)}
262
+ </text>
263
+ {/each}
264
+ {:else}
265
+ {#each valueAxisTicks as tick (tick.value)}
266
+ <line class="st-columnRangeChart__grid" x1={tick.x} x2={tick.x} y1={tick.y1} y2={tick.y2} />
267
+ <text
268
+ class="st-columnRangeChart__tickLabel"
269
+ x={tick.x}
270
+ y={height - MARGIN.bottom + 16}
271
+ text-anchor="middle"
272
+ >
273
+ {formatTick(tick.value)}
274
+ </text>
275
+ {/each}
276
+ {/if}
277
+
278
+ <!-- axes -->
279
+ <line
280
+ class="st-columnRangeChart__axis"
281
+ x1={MARGIN.left}
282
+ x2={MARGIN.left}
283
+ y1={MARGIN.top}
284
+ y2={height - MARGIN.bottom}
285
+ />
286
+ <line
287
+ class="st-columnRangeChart__axis"
288
+ x1={MARGIN.left}
289
+ x2={width - MARGIN.right}
290
+ y1={height - MARGIN.bottom}
291
+ y2={height - MARGIN.bottom}
292
+ />
293
+
294
+ <!-- category labels -->
295
+ {#each bars as bar (bar.datum.category)}
296
+ {#if orientation === "vertical"}
297
+ <text
298
+ class="st-columnRangeChart__categoryLabel"
299
+ x={bar.x + bar.width / 2}
300
+ y={height - MARGIN.bottom + 16}
301
+ text-anchor="middle"
302
+ >
303
+ {bar.datum.category}
304
+ </text>
305
+ {:else}
306
+ <text
307
+ class="st-columnRangeChart__categoryLabel"
308
+ x={MARGIN.left - 6}
309
+ y={bar.y + bar.height / 2}
310
+ text-anchor="end"
311
+ dominant-baseline="middle"
312
+ >
313
+ {bar.datum.category}
314
+ </text>
315
+ {/if}
316
+ {/each}
317
+
318
+ <!-- range bars (decorative, inside aria-hidden SVG) -->
319
+ {#each bars as bar, i (bar.datum.category)}
320
+ <rect
321
+ class="st-columnRangeChart__bar st-columnRangeChart__bar--{bar.tone}"
322
+ x={bar.x}
323
+ y={bar.y}
324
+ width={bar.width}
325
+ height={bar.height}
326
+ rx="2"
327
+ data-chart-index={i}
328
+ />
329
+ {/each}
330
+ </svg>
331
+ </div>
332
+
333
+ <ChartDataList {label} items={dataValueItems} />
334
+
335
+ {#if hoveredIndex !== null && bars[hoveredIndex]}
336
+ {@const bar = bars[hoveredIndex]}
337
+ <div
338
+ class="st-columnRangeChart__tooltip"
339
+ role="presentation"
340
+ style="left: {(bar.cx / width) * 100}%; top: {(bar.cy / height) * 100}%"
341
+ >
342
+ <span class="st-columnRangeChart__tooltipLabel">{bar.datum.category}</span>
343
+ <span class="st-columnRangeChart__tooltipValue">{bar.range.lo} – {bar.range.hi}</span>
344
+ </div>
345
+ {/if}
346
+ </div>
347
+
348
+ <style>
349
+ .st-columnRangeChart {
350
+ color: var(--st-semantic-text-secondary);
351
+ display: block;
352
+ font-family: inherit;
353
+ position: relative;
354
+ width: 100%;
355
+ }
356
+
357
+ .st-columnRangeChart svg {
358
+ display: block;
359
+ overflow: visible;
360
+ }
361
+
362
+ .st-columnRangeChart__visual {
363
+ display: block;
364
+ }
365
+
366
+ .st-columnRangeChart__grid {
367
+ stroke: var(--st-component-columnRangeChart-gridStroke, var(--st-semantic-border-subtle));
368
+ stroke-dasharray: 2 3;
369
+ stroke-width: 1;
370
+ opacity: 0.7;
371
+ }
372
+
373
+ .st-columnRangeChart__axis {
374
+ stroke: var(--st-component-columnRangeChart-axisStroke, var(--st-semantic-border-subtle));
375
+ stroke-width: 1;
376
+ }
377
+
378
+ .st-columnRangeChart__tickLabel,
379
+ .st-columnRangeChart__categoryLabel {
380
+ fill: var(--st-component-columnRangeChart-labelColor, var(--st-semantic-text-secondary));
381
+ font-size: 0.6875rem;
382
+ }
383
+
384
+ .st-columnRangeChart__bar {
385
+ cursor: pointer;
386
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
387
+ }
388
+
389
+ .st-columnRangeChart__bar:hover {
390
+ opacity: 0.82;
391
+ }
392
+
393
+ .st-columnRangeChart__bar--category1 { fill: var(--st-semantic-data-category1); }
394
+ .st-columnRangeChart__bar--category2 { fill: var(--st-semantic-data-category2); }
395
+ .st-columnRangeChart__bar--category3 { fill: var(--st-semantic-data-category3); }
396
+ .st-columnRangeChart__bar--category4 { fill: var(--st-semantic-data-category4); }
397
+ .st-columnRangeChart__bar--category5 { fill: var(--st-semantic-data-category5); }
398
+ .st-columnRangeChart__bar--category6 { fill: var(--st-semantic-data-category6); }
399
+ .st-columnRangeChart__bar--category7 { fill: var(--st-semantic-data-category7); }
400
+ .st-columnRangeChart__bar--category8 { fill: var(--st-semantic-data-category8); }
401
+
402
+ .st-columnRangeChart__tooltip {
403
+ background: var(--st-component-columnRangeChart-tooltipBackground, var(--st-semantic-surface-inverse));
404
+ border-radius: var(--st-radius-sm, 0.25rem);
405
+ color: var(--st-component-columnRangeChart-tooltipText, var(--st-semantic-text-inverse));
406
+ display: inline-flex;
407
+ flex-direction: column;
408
+ font-size: 0.75rem;
409
+ gap: 0.125rem;
410
+ line-height: 1.2;
411
+ padding: 0.375rem 0.5rem;
412
+ pointer-events: none;
413
+ position: absolute;
414
+ transform: translate(-50%, calc(-100% - 8px));
415
+ white-space: nowrap;
416
+ z-index: 1;
417
+ }
418
+
419
+ .st-columnRangeChart__tooltipLabel {
420
+ font-weight: 600;
421
+ }
422
+
423
+ .st-columnRangeChart__tooltipValue {
424
+ opacity: 0.85;
425
+ }
426
+
427
+ @media (prefers-reduced-motion: reduce) {
428
+ .st-columnRangeChart__bar {
429
+ transition: none;
430
+ }
431
+ }
432
+ </style>
@@ -0,0 +1,42 @@
1
+ /**
2
+ * ColumnRangeChart — barre allant d'une valeur BASSE à une valeur HAUTE par
3
+ * catégorie (ex. températures min/max par mois, fourchettes de prix).
4
+ * API canonique (référence Svelte ; React/Vue doivent s'aligner).
5
+ *
6
+ * Props obligatoires :
7
+ * data ColumnRangeChartDatum[] - tableau {category, low, high, 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 ColumnRangeChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
18
+ export type ColumnRangeChartDatum = {
19
+ category: string;
20
+ low: number;
21
+ high: number;
22
+ tone?: ColumnRangeChartTone;
23
+ };
24
+ type ColumnRangeChartProps = {
25
+ data: ColumnRangeChartDatum[];
26
+ width?: number;
27
+ height?: number;
28
+ orientation?: "vertical" | "horizontal";
29
+ label: string;
30
+ /**
31
+ * Domaine fixe de l'axe des valeurs `[min, max]`. Quand fourni (et fini),
32
+ * l'échelle l'utilise au lieu du min/max dérivé des données — laissant
33
+ * plusieurs ColumnRangeCharts d'une grille partager une échelle. Absent ou
34
+ * invalide → repli sur la plage auto (inchangé).
35
+ */
36
+ domain?: [number, number];
37
+ class?: string;
38
+ };
39
+ declare const ColumnRangeChart: import("svelte").Component<ColumnRangeChartProps, {}, "">;
40
+ type ColumnRangeChart = ReturnType<typeof ColumnRangeChart>;
41
+ export default ColumnRangeChart;
42
+ //# sourceMappingURL=ColumnRangeChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnRangeChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/ColumnRangeChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAMF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,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;AAqPJ,QAAA,MAAM,gBAAgB,2DAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -274,14 +274,17 @@
274
274
 
275
275
  .st-combobox--sm {
276
276
  min-height: var(--st-component-control-smHeight, 2rem);
277
+ font-size: 0.8125rem;
277
278
  }
278
279
 
279
280
  .st-combobox--md {
280
281
  min-height: var(--st-component-control-mdHeight, 2.5rem);
282
+ font-size: 0.875rem;
281
283
  }
282
284
 
283
285
  .st-combobox--lg {
284
286
  min-height: var(--st-component-control-lgHeight, 3rem);
287
+ font-size: 1rem;
285
288
  }
286
289
 
287
290
  .st-combobox:hover:not(:has(input:disabled)) {
@@ -116,7 +116,7 @@
116
116
 
117
117
  .st-contentSwitcher__option--selected {
118
118
  background: var(--st-semantic-surface-default);
119
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
119
+ box-shadow: var(--st-shadow-subtle);
120
120
  color: var(--st-semantic-text-primary);
121
121
  }
122
122
 
@@ -44,7 +44,7 @@ type DataTableProps = Omit<HTMLTableAttributes, "class"> & {
44
44
  onRowClick?: (row: DataTableRow) => void;
45
45
  class?: string;
46
46
  };
47
- declare const DataTable: import("svelte").Component<DataTableProps, {}, "page" | "selectedIds" | "sortBy">;
47
+ declare const DataTable: import("svelte").Component<DataTableProps, {}, "selectedIds" | "page" | "sortBy">;
48
48
  type DataTable = ReturnType<typeof DataTable>;
49
49
  export default DataTable;
50
50
  //# sourceMappingURL=DataTable.svelte.d.ts.map
@@ -461,14 +461,17 @@
461
461
 
462
462
  .st-datepicker--sm {
463
463
  min-height: var(--st-component-control-smHeight, 2rem);
464
+ font-size: 0.8125rem;
464
465
  }
465
466
 
466
467
  .st-datepicker--md {
467
468
  min-height: var(--st-component-control-mdHeight, 2.5rem);
469
+ font-size: 0.875rem;
468
470
  }
469
471
 
470
472
  .st-datepicker--lg {
471
473
  min-height: var(--st-component-control-lgHeight, 3rem);
474
+ font-size: 1rem;
472
475
  }
473
476
 
474
477
  .st-datepicker:hover:not(:has(input:disabled)) {