@sentropic/design-system-svelte 0.29.0 → 0.30.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.
- package/dist/BarChart.svelte +272 -3
- package/dist/BarChart.svelte.d.ts +31 -0
- package/dist/BarChart.svelte.d.ts.map +1 -1
- package/dist/LineChart.svelte +273 -5
- package/dist/LineChart.svelte.d.ts +29 -0
- package/dist/LineChart.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/BarChart.svelte
CHANGED
|
@@ -13,6 +13,35 @@
|
|
|
13
13
|
label: string;
|
|
14
14
|
value: number;
|
|
15
15
|
tone?: BarChartTone;
|
|
16
|
+
/** Lower error-bar extent (value-axis units). Drawn only when finite. */
|
|
17
|
+
errorLow?: number;
|
|
18
|
+
/** Upper error-bar extent (value-axis units). Drawn only when finite. */
|
|
19
|
+
errorHigh?: number;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Semantic tone for an analytical overlay (reference line / band / goal).
|
|
24
|
+
* Maps to the feedback token family — markers, not categorical series.
|
|
25
|
+
*/
|
|
26
|
+
export type ChartOverlayTone = "neutral" | "success" | "warning" | "error" | "info";
|
|
27
|
+
|
|
28
|
+
export type ChartReferenceLine = {
|
|
29
|
+
value: number;
|
|
30
|
+
label?: string;
|
|
31
|
+
tone?: ChartOverlayTone;
|
|
32
|
+
axis?: "x" | "y";
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type ChartBand = {
|
|
36
|
+
from: number;
|
|
37
|
+
to: number;
|
|
38
|
+
label?: string;
|
|
39
|
+
tone?: ChartOverlayTone;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type ChartGoalLine = {
|
|
43
|
+
value: number;
|
|
44
|
+
label?: string;
|
|
16
45
|
};
|
|
17
46
|
</script>
|
|
18
47
|
|
|
@@ -48,6 +77,12 @@
|
|
|
48
77
|
* purely presentational (no interactivity, unchanged).
|
|
49
78
|
*/
|
|
50
79
|
onSelect?: (key: string) => void;
|
|
80
|
+
/** Reference lines on the value axis (default `axis: "y"`). */
|
|
81
|
+
referenceLines?: ChartReferenceLine[];
|
|
82
|
+
/** Shaded value-axis bands between `from`..`to`. */
|
|
83
|
+
bands?: ChartBand[];
|
|
84
|
+
/** A single goal line, emphasised above the bars. */
|
|
85
|
+
goalLine?: ChartGoalLine;
|
|
51
86
|
class?: string;
|
|
52
87
|
};
|
|
53
88
|
|
|
@@ -60,6 +95,9 @@
|
|
|
60
95
|
domain,
|
|
61
96
|
selectedKeys = [],
|
|
62
97
|
onSelect,
|
|
98
|
+
referenceLines,
|
|
99
|
+
bands,
|
|
100
|
+
goalLine,
|
|
63
101
|
class: className
|
|
64
102
|
}: BarChartProps = $props();
|
|
65
103
|
|
|
@@ -99,6 +137,58 @@
|
|
|
99
137
|
return v.toFixed(1);
|
|
100
138
|
}
|
|
101
139
|
|
|
140
|
+
// --- Analytical overlay helpers (inline; parity with chartScale) ----------
|
|
141
|
+
function overlayToneClass(prefix: string, t: ChartOverlayTone | undefined): string {
|
|
142
|
+
return `${prefix}--${t ?? "neutral"}`;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function extendValueDomain(
|
|
146
|
+
minV: number,
|
|
147
|
+
maxV: number,
|
|
148
|
+
refs: ChartReferenceLine[] | undefined,
|
|
149
|
+
bnds: ChartBand[] | undefined,
|
|
150
|
+
goal: ChartGoalLine | null,
|
|
151
|
+
extras: number[]
|
|
152
|
+
): [number, number] {
|
|
153
|
+
let lo = minV;
|
|
154
|
+
let hi = maxV;
|
|
155
|
+
const fold = (v: number | undefined) => {
|
|
156
|
+
if (v === undefined || !Number.isFinite(v)) return;
|
|
157
|
+
if (v < lo) lo = v;
|
|
158
|
+
if (v > hi) hi = v;
|
|
159
|
+
};
|
|
160
|
+
for (const r of refs ?? []) if ((r.axis ?? "y") === "y") fold(r.value);
|
|
161
|
+
for (const b of bnds ?? []) {
|
|
162
|
+
fold(b.from);
|
|
163
|
+
fold(b.to);
|
|
164
|
+
}
|
|
165
|
+
if (goal) fold(goal.value);
|
|
166
|
+
for (const v of extras) fold(v);
|
|
167
|
+
return [lo, hi];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function overlayDataListItems(
|
|
171
|
+
refs: ChartReferenceLine[] | undefined,
|
|
172
|
+
bnds: ChartBand[] | undefined,
|
|
173
|
+
goal: ChartGoalLine | null
|
|
174
|
+
): string[] {
|
|
175
|
+
const items: string[] = [];
|
|
176
|
+
for (const r of refs ?? []) {
|
|
177
|
+
if (!Number.isFinite(r.value)) continue;
|
|
178
|
+
items.push(r.label ? `Référence: ${r.label} = ${r.value}` : `Référence: ${r.value}`);
|
|
179
|
+
}
|
|
180
|
+
for (const b of bnds ?? []) {
|
|
181
|
+
if (!Number.isFinite(b.from) || !Number.isFinite(b.to)) continue;
|
|
182
|
+
const lo = Math.min(b.from, b.to);
|
|
183
|
+
const hi = Math.max(b.from, b.to);
|
|
184
|
+
items.push(b.label ? `Bande: ${b.label} (${lo}–${hi})` : `Bande: ${lo}–${hi}`);
|
|
185
|
+
}
|
|
186
|
+
if (goal && Number.isFinite(goal.value)) {
|
|
187
|
+
items.push(goal.label ? `Objectif: ${goal.label} = ${goal.value}` : `Objectif: ${goal.value}`);
|
|
188
|
+
}
|
|
189
|
+
return items;
|
|
190
|
+
}
|
|
191
|
+
|
|
102
192
|
let hoveredIndex: number | null = $state(null);
|
|
103
193
|
|
|
104
194
|
// Selection (controlled): fast lookup + "is any bar selected" flag. Only when
|
|
@@ -116,10 +206,21 @@
|
|
|
116
206
|
return [d0, d1];
|
|
117
207
|
});
|
|
118
208
|
|
|
209
|
+
// A finite goal value is required; otherwise the goal line is ignored.
|
|
210
|
+
const goal = $derived(goalLine && Number.isFinite(goalLine.value) ? goalLine : null);
|
|
211
|
+
|
|
119
212
|
const scales = $derived.by(() => {
|
|
120
213
|
const values = data.map((d) => d.value);
|
|
121
|
-
|
|
122
|
-
|
|
214
|
+
let minRaw = validDomain ? validDomain[0] : Math.min(0, ...values);
|
|
215
|
+
let maxRaw = validDomain ? validDomain[1] : Math.max(0, ...values);
|
|
216
|
+
// A pinned domain is authoritative (small-multiples); only the auto domain
|
|
217
|
+
// is widened to keep finite overlays + error bars on-plot.
|
|
218
|
+
if (!validDomain) {
|
|
219
|
+
const errorExtents = data.flatMap((d) =>
|
|
220
|
+
[d.errorLow, d.errorHigh].filter((v): v is number => v !== undefined && Number.isFinite(v))
|
|
221
|
+
);
|
|
222
|
+
[minRaw, maxRaw] = extendValueDomain(minRaw, maxRaw, referenceLines, bands, goal, errorExtents);
|
|
223
|
+
}
|
|
123
224
|
const ticks = niceTicks(minRaw, maxRaw, 5);
|
|
124
225
|
const domainMin = ticks[0];
|
|
125
226
|
const domainMax = ticks[ticks.length - 1];
|
|
@@ -174,7 +275,83 @@
|
|
|
174
275
|
});
|
|
175
276
|
});
|
|
176
277
|
|
|
177
|
-
|
|
278
|
+
// --- Analytical overlays + error bars ------------------------------------
|
|
279
|
+
const isVertical = $derived(orientation === "vertical");
|
|
280
|
+
// Map a value to its pixel on the value axis (y for vertical, x for horizontal).
|
|
281
|
+
const valuePos = $derived((v: number) => {
|
|
282
|
+
const { domainMin, domainMax, plotWidth, plotHeight } = scales;
|
|
283
|
+
return isVertical
|
|
284
|
+
? MARGIN.top + scaleLinear(v, domainMin, domainMax, plotHeight, 0)
|
|
285
|
+
: MARGIN.left + scaleLinear(v, domainMin, domainMax, 0, plotWidth);
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
const bandRects = $derived(
|
|
289
|
+
(bands ?? [])
|
|
290
|
+
.filter((b) => Number.isFinite(b.from) && Number.isFinite(b.to))
|
|
291
|
+
.map((b, i) => {
|
|
292
|
+
const p1 = valuePos(b.from);
|
|
293
|
+
const p2 = valuePos(b.to);
|
|
294
|
+
return isVertical
|
|
295
|
+
? { key: i, x: MARGIN.left, y: Math.min(p1, p2), width: scales.plotWidth, height: Math.max(Math.abs(p2 - p1), 0.5), label: b.label, tone: b.tone }
|
|
296
|
+
: { key: i, x: Math.min(p1, p2), y: MARGIN.top, width: Math.max(Math.abs(p2 - p1), 0.5), height: scales.plotHeight, label: b.label, tone: b.tone };
|
|
297
|
+
})
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
const refLines = $derived(
|
|
301
|
+
(referenceLines ?? [])
|
|
302
|
+
.filter((r) => Number.isFinite(r.value))
|
|
303
|
+
.map((r, i) => {
|
|
304
|
+
const p = valuePos(r.value);
|
|
305
|
+
return isVertical
|
|
306
|
+
? { key: i, x1: MARGIN.left, x2: MARGIN.left + scales.plotWidth, y1: p, y2: p, label: r.label, tone: r.tone }
|
|
307
|
+
: { key: i, x1: p, x2: p, y1: MARGIN.top, y2: MARGIN.top + scales.plotHeight, label: r.label, tone: r.tone };
|
|
308
|
+
})
|
|
309
|
+
);
|
|
310
|
+
|
|
311
|
+
const goalGeom = $derived(goal ? { p: valuePos(goal.value), label: goal.label, value: goal.value } : null);
|
|
312
|
+
|
|
313
|
+
const errorBarGeom = $derived.by(() => {
|
|
314
|
+
const out: {
|
|
315
|
+
key: string;
|
|
316
|
+
stem: { x1: number; y1: number; x2: number; y2: number };
|
|
317
|
+
capLow: { x1: number; y1: number; x2: number; y2: number };
|
|
318
|
+
capHigh: { x1: number; y1: number; x2: number; y2: number };
|
|
319
|
+
}[] = [];
|
|
320
|
+
for (const bar of bars) {
|
|
321
|
+
const { errorLow, errorHigh } = bar.datum;
|
|
322
|
+
const hasLow = errorLow !== undefined && Number.isFinite(errorLow);
|
|
323
|
+
const hasHigh = errorHigh !== undefined && Number.isFinite(errorHigh);
|
|
324
|
+
if (!hasLow && !hasHigh) continue;
|
|
325
|
+
const lowV = hasLow ? (errorLow as number) : bar.datum.value;
|
|
326
|
+
const highV = hasHigh ? (errorHigh as number) : bar.datum.value;
|
|
327
|
+
const lowP = valuePos(lowV);
|
|
328
|
+
const highP = valuePos(highV);
|
|
329
|
+
const cap = 4;
|
|
330
|
+
if (isVertical) {
|
|
331
|
+
const cx = bar.x + bar.width / 2;
|
|
332
|
+
out.push({
|
|
333
|
+
key: bar.datum.label,
|
|
334
|
+
stem: { x1: cx, y1: lowP, x2: cx, y2: highP },
|
|
335
|
+
capLow: { x1: cx - cap, y1: lowP, x2: cx + cap, y2: lowP },
|
|
336
|
+
capHigh: { x1: cx - cap, y1: highP, x2: cx + cap, y2: highP }
|
|
337
|
+
});
|
|
338
|
+
} else {
|
|
339
|
+
const cy = bar.y + bar.height / 2;
|
|
340
|
+
out.push({
|
|
341
|
+
key: bar.datum.label,
|
|
342
|
+
stem: { x1: lowP, y1: cy, x2: highP, y2: cy },
|
|
343
|
+
capLow: { x1: lowP, y1: cy - cap, x2: lowP, y2: cy + cap },
|
|
344
|
+
capHigh: { x1: highP, y1: cy - cap, x2: highP, y2: cy + cap }
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return out;
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
const dataValueItems = $derived([
|
|
352
|
+
...data.map((d) => `${d.label}: ${d.value}`),
|
|
353
|
+
...overlayDataListItems(referenceLines, bands, goal)
|
|
354
|
+
]);
|
|
178
355
|
|
|
179
356
|
const valueAxisTicks = $derived.by(() => {
|
|
180
357
|
const { ticks, domainMin, domainMax, plotWidth, plotHeight } = scales;
|
|
@@ -312,6 +489,26 @@
|
|
|
312
489
|
{/if}
|
|
313
490
|
{/each}
|
|
314
491
|
|
|
492
|
+
<!-- Analytical overlays — bands + reference lines BELOW the bars. -->
|
|
493
|
+
{#each bandRects as b (b.key)}
|
|
494
|
+
<rect class={`st-barChart__band ${overlayToneClass("st-barChart__band", b.tone)}`} x={b.x} y={b.y} width={b.width} height={b.height} />
|
|
495
|
+
{#if b.label}
|
|
496
|
+
<text class="st-barChart__overlayLabel" x={b.x + 4} y={b.y + 11}>{b.label}</text>
|
|
497
|
+
{/if}
|
|
498
|
+
{/each}
|
|
499
|
+
|
|
500
|
+
{#each refLines as r (r.key)}
|
|
501
|
+
<line class={`st-barChart__refLine ${overlayToneClass("st-barChart__refLine", r.tone)}`} x1={r.x1} x2={r.x2} y1={r.y1} y2={r.y2} />
|
|
502
|
+
{#if r.label}
|
|
503
|
+
<text
|
|
504
|
+
class="st-barChart__overlayLabel"
|
|
505
|
+
x={isVertical ? MARGIN.left + scales.plotWidth - 4 : r.x1 + 4}
|
|
506
|
+
y={isVertical ? r.y1 - 4 : MARGIN.top + 11}
|
|
507
|
+
text-anchor={isVertical ? "end" : "start"}
|
|
508
|
+
>{r.label}</text>
|
|
509
|
+
{/if}
|
|
510
|
+
{/each}
|
|
511
|
+
|
|
315
512
|
<!-- bars -->
|
|
316
513
|
<!-- The bars live inside an aria-hidden SVG, so they are NEVER an accessible
|
|
317
514
|
surface. When `onSelect` is provided they only carry a mouse click
|
|
@@ -339,6 +536,30 @@
|
|
|
339
536
|
onclick={interactive ? () => onSelect?.(bar.datum.label) : undefined}
|
|
340
537
|
/>
|
|
341
538
|
{/each}
|
|
539
|
+
|
|
540
|
+
<!-- Error bars ride on top of their bar (still below the goal line). -->
|
|
541
|
+
{#each errorBarGeom as e (e.key)}
|
|
542
|
+
<g class="st-barChart__errorBar">
|
|
543
|
+
<line class="st-barChart__errorStem" x1={e.stem.x1} y1={e.stem.y1} x2={e.stem.x2} y2={e.stem.y2} />
|
|
544
|
+
<line class="st-barChart__errorCap" x1={e.capLow.x1} y1={e.capLow.y1} x2={e.capLow.x2} y2={e.capLow.y2} />
|
|
545
|
+
<line class="st-barChart__errorCap" x1={e.capHigh.x1} y1={e.capHigh.y1} x2={e.capHigh.x2} y2={e.capHigh.y2} />
|
|
546
|
+
</g>
|
|
547
|
+
{/each}
|
|
548
|
+
|
|
549
|
+
<!-- Goal line — emphasised, ABOVE the bars. -->
|
|
550
|
+
{#if goalGeom}
|
|
551
|
+
{#if isVertical}
|
|
552
|
+
<line class="st-barChart__goalLine" x1={MARGIN.left} x2={MARGIN.left + scales.plotWidth} y1={goalGeom.p} y2={goalGeom.p} />
|
|
553
|
+
{:else}
|
|
554
|
+
<line class="st-barChart__goalLine" x1={goalGeom.p} x2={goalGeom.p} y1={MARGIN.top} y2={MARGIN.top + scales.plotHeight} />
|
|
555
|
+
{/if}
|
|
556
|
+
<text
|
|
557
|
+
class="st-barChart__goalLabel"
|
|
558
|
+
x={isVertical ? MARGIN.left + scales.plotWidth - 4 : goalGeom.p + 4}
|
|
559
|
+
y={isVertical ? goalGeom.p - 4 : MARGIN.top + 11}
|
|
560
|
+
text-anchor={isVertical ? "end" : "start"}
|
|
561
|
+
>{goalGeom.label ?? `Objectif ${goalGeom.value}`}</text>
|
|
562
|
+
{/if}
|
|
342
563
|
</svg>
|
|
343
564
|
</div>
|
|
344
565
|
|
|
@@ -540,6 +761,54 @@
|
|
|
540
761
|
opacity: 0.85;
|
|
541
762
|
}
|
|
542
763
|
|
|
764
|
+
/* --- Analytical overlay layer --------------------------------------------
|
|
765
|
+
Bands sit BELOW the bars via render order; fill uses color-mix (a
|
|
766
|
+
semi-transparent tint of the tone token) instead of raw opacity, so the
|
|
767
|
+
bars drawn on top keep full contrast. */
|
|
768
|
+
.st-barChart__band {
|
|
769
|
+
fill: color-mix(in srgb, var(--st-overlay-tone, var(--st-semantic-border-strong)) 12%, transparent);
|
|
770
|
+
stroke: none;
|
|
771
|
+
}
|
|
772
|
+
.st-barChart__band--neutral { --st-overlay-tone: var(--st-semantic-border-strong); }
|
|
773
|
+
.st-barChart__band--success { --st-overlay-tone: var(--st-semantic-feedback-success); }
|
|
774
|
+
.st-barChart__band--warning { --st-overlay-tone: var(--st-semantic-feedback-warning); }
|
|
775
|
+
.st-barChart__band--error { --st-overlay-tone: var(--st-semantic-feedback-error); }
|
|
776
|
+
.st-barChart__band--info { --st-overlay-tone: var(--st-semantic-feedback-info); }
|
|
777
|
+
|
|
778
|
+
.st-barChart__refLine {
|
|
779
|
+
stroke: var(--st-overlay-tone, var(--st-semantic-border-strong));
|
|
780
|
+
stroke-width: 1;
|
|
781
|
+
stroke-dasharray: 4 3;
|
|
782
|
+
}
|
|
783
|
+
.st-barChart__refLine--neutral { --st-overlay-tone: var(--st-semantic-border-strong); }
|
|
784
|
+
.st-barChart__refLine--success { --st-overlay-tone: var(--st-semantic-feedback-success); }
|
|
785
|
+
.st-barChart__refLine--warning { --st-overlay-tone: var(--st-semantic-feedback-warning); }
|
|
786
|
+
.st-barChart__refLine--error { --st-overlay-tone: var(--st-semantic-feedback-error); }
|
|
787
|
+
.st-barChart__refLine--info { --st-overlay-tone: var(--st-semantic-feedback-info); }
|
|
788
|
+
|
|
789
|
+
.st-barChart__overlayLabel {
|
|
790
|
+
fill: var(--st-semantic-text-secondary);
|
|
791
|
+
font-size: 0.625rem;
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
/* Error bars — a value-axis whisker centred on each bar. */
|
|
795
|
+
.st-barChart__errorStem,
|
|
796
|
+
.st-barChart__errorCap {
|
|
797
|
+
stroke: var(--st-semantic-text-primary);
|
|
798
|
+
stroke-width: 1.25;
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
/* Goal line — drawn ABOVE the bars, emphasised (thicker, solid accent). */
|
|
802
|
+
.st-barChart__goalLine {
|
|
803
|
+
stroke: var(--st-semantic-feedback-success);
|
|
804
|
+
stroke-width: 2.5;
|
|
805
|
+
}
|
|
806
|
+
.st-barChart__goalLabel {
|
|
807
|
+
fill: var(--st-semantic-feedback-success);
|
|
808
|
+
font-size: 0.6875rem;
|
|
809
|
+
font-weight: 600;
|
|
810
|
+
}
|
|
811
|
+
|
|
543
812
|
@media (prefers-reduced-motion: reduce) {
|
|
544
813
|
.st-barChart__bar,
|
|
545
814
|
.st-barChart__filterChip { transition: none; }
|
|
@@ -3,6 +3,31 @@ export type BarChartDatum = {
|
|
|
3
3
|
label: string;
|
|
4
4
|
value: number;
|
|
5
5
|
tone?: BarChartTone;
|
|
6
|
+
/** Lower error-bar extent (value-axis units). Drawn only when finite. */
|
|
7
|
+
errorLow?: number;
|
|
8
|
+
/** Upper error-bar extent (value-axis units). Drawn only when finite. */
|
|
9
|
+
errorHigh?: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Semantic tone for an analytical overlay (reference line / band / goal).
|
|
13
|
+
* Maps to the feedback token family — markers, not categorical series.
|
|
14
|
+
*/
|
|
15
|
+
export type ChartOverlayTone = "neutral" | "success" | "warning" | "error" | "info";
|
|
16
|
+
export type ChartReferenceLine = {
|
|
17
|
+
value: number;
|
|
18
|
+
label?: string;
|
|
19
|
+
tone?: ChartOverlayTone;
|
|
20
|
+
axis?: "x" | "y";
|
|
21
|
+
};
|
|
22
|
+
export type ChartBand = {
|
|
23
|
+
from: number;
|
|
24
|
+
to: number;
|
|
25
|
+
label?: string;
|
|
26
|
+
tone?: ChartOverlayTone;
|
|
27
|
+
};
|
|
28
|
+
export type ChartGoalLine = {
|
|
29
|
+
value: number;
|
|
30
|
+
label?: string;
|
|
6
31
|
};
|
|
7
32
|
type BarChartProps = {
|
|
8
33
|
data: BarChartDatum[];
|
|
@@ -33,6 +58,12 @@ type BarChartProps = {
|
|
|
33
58
|
* purely presentational (no interactivity, unchanged).
|
|
34
59
|
*/
|
|
35
60
|
onSelect?: (key: string) => void;
|
|
61
|
+
/** Reference lines on the value axis (default `axis: "y"`). */
|
|
62
|
+
referenceLines?: ChartReferenceLine[];
|
|
63
|
+
/** Shaded value-axis bands between `from`..`to`. */
|
|
64
|
+
bands?: ChartBand[];
|
|
65
|
+
/** A single goal line, emphasised above the bars. */
|
|
66
|
+
goalLine?: ChartGoalLine;
|
|
36
67
|
class?: string;
|
|
37
68
|
};
|
|
38
69
|
declare const BarChart: import("svelte").Component<BarChartProps, {}, "">;
|
|
@@ -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;
|
|
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;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,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,+DAA+D;IAC/D,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC,oDAAoD;IACpD,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyaJ,QAAA,MAAM,QAAQ,mDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
package/dist/LineChart.svelte
CHANGED
|
@@ -13,6 +13,31 @@
|
|
|
13
13
|
x: number | string;
|
|
14
14
|
y: number;
|
|
15
15
|
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Semantic tone for an analytical overlay (reference line / band / goal).
|
|
19
|
+
* Maps to the feedback token family — markers, not categorical series.
|
|
20
|
+
*/
|
|
21
|
+
export type ChartOverlayTone = "neutral" | "success" | "warning" | "error" | "info";
|
|
22
|
+
|
|
23
|
+
export type ChartReferenceLine = {
|
|
24
|
+
value: number;
|
|
25
|
+
label?: string;
|
|
26
|
+
tone?: ChartOverlayTone;
|
|
27
|
+
axis?: "x" | "y";
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type ChartBand = {
|
|
31
|
+
from: number;
|
|
32
|
+
to: number;
|
|
33
|
+
label?: string;
|
|
34
|
+
tone?: ChartOverlayTone;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type ChartGoalLine = {
|
|
38
|
+
value: number;
|
|
39
|
+
label?: string;
|
|
40
|
+
};
|
|
16
41
|
</script>
|
|
17
42
|
|
|
18
43
|
<script lang="ts">
|
|
@@ -26,6 +51,14 @@
|
|
|
26
51
|
smooth?: boolean;
|
|
27
52
|
area?: boolean;
|
|
28
53
|
label: string;
|
|
54
|
+
/** Reference lines (default `axis: "y"` → horizontal at `value`). */
|
|
55
|
+
referenceLines?: ChartReferenceLine[];
|
|
56
|
+
/** Shaded value-axis bands between `from`..`to`. */
|
|
57
|
+
bands?: ChartBand[];
|
|
58
|
+
/** A single goal line, emphasised above the data. */
|
|
59
|
+
goalLine?: ChartGoalLine;
|
|
60
|
+
/** Least-squares trend line over the data points. */
|
|
61
|
+
trend?: boolean;
|
|
29
62
|
class?: string;
|
|
30
63
|
};
|
|
31
64
|
|
|
@@ -37,6 +70,10 @@
|
|
|
37
70
|
smooth = false,
|
|
38
71
|
area = false,
|
|
39
72
|
label,
|
|
73
|
+
referenceLines,
|
|
74
|
+
bands,
|
|
75
|
+
goalLine,
|
|
76
|
+
trend = false,
|
|
40
77
|
class: className
|
|
41
78
|
}: LineChartProps = $props();
|
|
42
79
|
|
|
@@ -80,6 +117,86 @@
|
|
|
80
117
|
return typeof x === "number" && Number.isFinite(x);
|
|
81
118
|
}
|
|
82
119
|
|
|
120
|
+
// --- Analytical overlay helpers (inline; parity with chartScale) ----------
|
|
121
|
+
function overlayToneClass(prefix: string, t: ChartOverlayTone | undefined): string {
|
|
122
|
+
return `${prefix}--${t ?? "neutral"}`;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function linearRegression(
|
|
126
|
+
pts: { x: number; y: number }[]
|
|
127
|
+
): { slope: number; intercept: number; minX: number; maxX: number } | null {
|
|
128
|
+
const finite = pts.filter((p) => Number.isFinite(p.x) && Number.isFinite(p.y));
|
|
129
|
+
if (finite.length < 2) return null;
|
|
130
|
+
const n = finite.length;
|
|
131
|
+
let sx = 0;
|
|
132
|
+
let sy = 0;
|
|
133
|
+
let sxx = 0;
|
|
134
|
+
let sxy = 0;
|
|
135
|
+
let minX = Infinity;
|
|
136
|
+
let maxX = -Infinity;
|
|
137
|
+
for (const p of finite) {
|
|
138
|
+
sx += p.x;
|
|
139
|
+
sy += p.y;
|
|
140
|
+
sxx += p.x * p.x;
|
|
141
|
+
sxy += p.x * p.y;
|
|
142
|
+
if (p.x < minX) minX = p.x;
|
|
143
|
+
if (p.x > maxX) maxX = p.x;
|
|
144
|
+
}
|
|
145
|
+
const denom = n * sxx - sx * sx;
|
|
146
|
+
if (denom === 0) return null;
|
|
147
|
+
const slope = (n * sxy - sx * sy) / denom;
|
|
148
|
+
const intercept = (sy - slope * sx) / n;
|
|
149
|
+
if (!Number.isFinite(slope) || !Number.isFinite(intercept)) return null;
|
|
150
|
+
return { slope, intercept, minX, maxX };
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function extendValueDomain(
|
|
154
|
+
minV: number,
|
|
155
|
+
maxV: number,
|
|
156
|
+
refs: ChartReferenceLine[] | undefined,
|
|
157
|
+
bnds: ChartBand[] | undefined,
|
|
158
|
+
goal: ChartGoalLine | null
|
|
159
|
+
): [number, number] {
|
|
160
|
+
let lo = minV;
|
|
161
|
+
let hi = maxV;
|
|
162
|
+
const fold = (v: number | undefined) => {
|
|
163
|
+
if (v === undefined || !Number.isFinite(v)) return;
|
|
164
|
+
if (v < lo) lo = v;
|
|
165
|
+
if (v > hi) hi = v;
|
|
166
|
+
};
|
|
167
|
+
for (const r of refs ?? []) if ((r.axis ?? "y") === "y") fold(r.value);
|
|
168
|
+
for (const b of bnds ?? []) {
|
|
169
|
+
fold(b.from);
|
|
170
|
+
fold(b.to);
|
|
171
|
+
}
|
|
172
|
+
if (goal) fold(goal.value);
|
|
173
|
+
return [lo, hi];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function overlayDataListItems(
|
|
177
|
+
refs: ChartReferenceLine[] | undefined,
|
|
178
|
+
bnds: ChartBand[] | undefined,
|
|
179
|
+
goal: ChartGoalLine | null,
|
|
180
|
+
trendModel: { slope: number } | null
|
|
181
|
+
): string[] {
|
|
182
|
+
const items: string[] = [];
|
|
183
|
+
for (const r of refs ?? []) {
|
|
184
|
+
if (!Number.isFinite(r.value)) continue;
|
|
185
|
+
items.push(r.label ? `Référence: ${r.label} = ${r.value}` : `Référence: ${r.value}`);
|
|
186
|
+
}
|
|
187
|
+
for (const b of bnds ?? []) {
|
|
188
|
+
if (!Number.isFinite(b.from) || !Number.isFinite(b.to)) continue;
|
|
189
|
+
const lo = Math.min(b.from, b.to);
|
|
190
|
+
const hi = Math.max(b.from, b.to);
|
|
191
|
+
items.push(b.label ? `Bande: ${b.label} (${lo}–${hi})` : `Bande: ${lo}–${hi}`);
|
|
192
|
+
}
|
|
193
|
+
if (goal && Number.isFinite(goal.value)) {
|
|
194
|
+
items.push(goal.label ? `Objectif: ${goal.label} = ${goal.value}` : `Objectif: ${goal.value}`);
|
|
195
|
+
}
|
|
196
|
+
if (trendModel) items.push(`Tendance: pente ${trendModel.slope.toFixed(2)}`);
|
|
197
|
+
return items;
|
|
198
|
+
}
|
|
199
|
+
|
|
83
200
|
let hoveredIndex: number | null = $state(null);
|
|
84
201
|
|
|
85
202
|
const plotWidth = $derived(Math.max(width - MARGIN.left - MARGIN.right, 1));
|
|
@@ -95,11 +212,16 @@
|
|
|
95
212
|
return { kind: "ordinal" as const, values: data.map((d) => d.x) };
|
|
96
213
|
});
|
|
97
214
|
|
|
215
|
+
// A valid goal line needs a finite value; otherwise it is ignored entirely.
|
|
216
|
+
const goal = $derived(goalLine && Number.isFinite(goalLine.value) ? goalLine : null);
|
|
217
|
+
|
|
98
218
|
const yTicks = $derived.by(() => {
|
|
99
|
-
const ys = data.map((d) => d.y);
|
|
100
|
-
if (ys.length === 0) return [0];
|
|
101
|
-
|
|
102
|
-
|
|
219
|
+
const ys = data.map((d) => d.y).filter((y) => Number.isFinite(y));
|
|
220
|
+
if (ys.length === 0 && !referenceLines?.length && !bands?.length && !goal) return [0];
|
|
221
|
+
let minRaw = ys.length ? Math.min(...ys) : 0;
|
|
222
|
+
let maxRaw = ys.length ? Math.max(...ys) : 0;
|
|
223
|
+
// Fold overlay values into the domain so they never fall outside the plot.
|
|
224
|
+
[minRaw, maxRaw] = extendValueDomain(minRaw, maxRaw, referenceLines, bands, goal);
|
|
103
225
|
const padded = (maxRaw - minRaw) * 0.08 || Math.max(Math.abs(maxRaw), 1) * 0.1;
|
|
104
226
|
return niceTicks(minRaw - padded, maxRaw + padded, 5);
|
|
105
227
|
});
|
|
@@ -130,7 +252,72 @@
|
|
|
130
252
|
});
|
|
131
253
|
});
|
|
132
254
|
|
|
133
|
-
|
|
255
|
+
// --- Analytical overlays --------------------------------------------------
|
|
256
|
+
// All overlays live in the chart's coordinate space, below the data series
|
|
257
|
+
// (the goal line is the single exception, drawn above for emphasis).
|
|
258
|
+
const bandRects = $derived(
|
|
259
|
+
(bands ?? [])
|
|
260
|
+
.filter((b) => Number.isFinite(b.from) && Number.isFinite(b.to))
|
|
261
|
+
.map((b, i) => {
|
|
262
|
+
const y1 = MARGIN.top + scaleLinear(b.from, yDomain.min, yDomain.max, plotHeight, 0);
|
|
263
|
+
const y2 = MARGIN.top + scaleLinear(b.to, yDomain.min, yDomain.max, plotHeight, 0);
|
|
264
|
+
return {
|
|
265
|
+
key: i,
|
|
266
|
+
x: MARGIN.left,
|
|
267
|
+
y: Math.min(y1, y2),
|
|
268
|
+
width: plotWidth,
|
|
269
|
+
height: Math.max(Math.abs(y2 - y1), 0.5),
|
|
270
|
+
label: b.label,
|
|
271
|
+
tone: b.tone
|
|
272
|
+
};
|
|
273
|
+
})
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
const refLines = $derived(
|
|
277
|
+
(referenceLines ?? [])
|
|
278
|
+
.filter((r) => Number.isFinite(r.value))
|
|
279
|
+
.map((r, i) => {
|
|
280
|
+
const axis = r.axis ?? "y";
|
|
281
|
+
if (axis === "x") {
|
|
282
|
+
if (xDomain.kind !== "numeric") return null;
|
|
283
|
+
const x = MARGIN.left + scaleLinear(r.value, xDomain.min, xDomain.max, 0, plotWidth);
|
|
284
|
+
return { key: i, axis, x1: x, x2: x, y1: MARGIN.top, y2: MARGIN.top + plotHeight, label: r.label, tone: r.tone };
|
|
285
|
+
}
|
|
286
|
+
const y = MARGIN.top + scaleLinear(r.value, yDomain.min, yDomain.max, plotHeight, 0);
|
|
287
|
+
return { key: i, axis, x1: MARGIN.left, x2: MARGIN.left + plotWidth, y1: y, y2: y, label: r.label, tone: r.tone };
|
|
288
|
+
})
|
|
289
|
+
.filter((r): r is NonNullable<typeof r> => r !== null)
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
const goalGeom = $derived(
|
|
293
|
+
goal
|
|
294
|
+
? {
|
|
295
|
+
y: MARGIN.top + scaleLinear(goal.value, yDomain.min, yDomain.max, plotHeight, 0),
|
|
296
|
+
label: goal.label,
|
|
297
|
+
value: goal.value
|
|
298
|
+
}
|
|
299
|
+
: null
|
|
300
|
+
);
|
|
301
|
+
|
|
302
|
+
const trendModel = $derived(
|
|
303
|
+
trend && xDomain.kind === "numeric"
|
|
304
|
+
? linearRegression(data.map((d) => ({ x: d.x as number, y: d.y })))
|
|
305
|
+
: null
|
|
306
|
+
);
|
|
307
|
+
const trendLine = $derived.by(() => {
|
|
308
|
+
if (!trendModel || xDomain.kind !== "numeric") return null;
|
|
309
|
+
return {
|
|
310
|
+
x1: MARGIN.left + scaleLinear(trendModel.minX, xDomain.min, xDomain.max, 0, plotWidth),
|
|
311
|
+
y1: MARGIN.top + scaleLinear(trendModel.slope * trendModel.minX + trendModel.intercept, yDomain.min, yDomain.max, plotHeight, 0),
|
|
312
|
+
x2: MARGIN.left + scaleLinear(trendModel.maxX, xDomain.min, xDomain.max, 0, plotWidth),
|
|
313
|
+
y2: MARGIN.top + scaleLinear(trendModel.slope * trendModel.maxX + trendModel.intercept, yDomain.min, yDomain.max, plotHeight, 0)
|
|
314
|
+
};
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
const dataValueItems = $derived([
|
|
318
|
+
...data.map((d) => `${d.x}: ${d.y}`),
|
|
319
|
+
...overlayDataListItems(referenceLines, bands, goal, trendModel)
|
|
320
|
+
]);
|
|
134
321
|
|
|
135
322
|
function buildLinearPath(pts: { x: number; y: number }[]): string {
|
|
136
323
|
return pts.map((p, i) => `${i === 0 ? "M" : "L"}${p.x.toFixed(2)},${p.y.toFixed(2)}`).join(" ");
|
|
@@ -275,6 +462,31 @@
|
|
|
275
462
|
</text>
|
|
276
463
|
{/each}
|
|
277
464
|
|
|
465
|
+
<!-- Analytical overlays — bands + reference lines + trend BELOW the data
|
|
466
|
+
(markers, not series); the goal line is drawn above for emphasis. -->
|
|
467
|
+
{#each bandRects as b (b.key)}
|
|
468
|
+
<rect class={`st-lineChart__band ${overlayToneClass("st-lineChart__band", b.tone)}`} x={b.x} y={b.y} width={b.width} height={b.height} />
|
|
469
|
+
{#if b.label}
|
|
470
|
+
<text class="st-lineChart__overlayLabel" x={b.x + 4} y={b.y + 11}>{b.label}</text>
|
|
471
|
+
{/if}
|
|
472
|
+
{/each}
|
|
473
|
+
|
|
474
|
+
{#each refLines as r (r.key)}
|
|
475
|
+
<line class={`st-lineChart__refLine ${overlayToneClass("st-lineChart__refLine", r.tone)}`} x1={r.x1} x2={r.x2} y1={r.y1} y2={r.y2} />
|
|
476
|
+
{#if r.label}
|
|
477
|
+
<text
|
|
478
|
+
class="st-lineChart__overlayLabel"
|
|
479
|
+
x={r.axis === "x" ? r.x1 + 4 : MARGIN.left + plotWidth - 4}
|
|
480
|
+
y={r.axis === "x" ? MARGIN.top + 11 : r.y1 - 4}
|
|
481
|
+
text-anchor={r.axis === "x" ? "start" : "end"}
|
|
482
|
+
>{r.label}</text>
|
|
483
|
+
{/if}
|
|
484
|
+
{/each}
|
|
485
|
+
|
|
486
|
+
{#if trendLine}
|
|
487
|
+
<line class="st-lineChart__trend" x1={trendLine.x1} y1={trendLine.y1} x2={trendLine.x2} y2={trendLine.y2} />
|
|
488
|
+
{/if}
|
|
489
|
+
|
|
278
490
|
{#if area && areaPath}
|
|
279
491
|
<path class="st-lineChart__area" d={areaPath} />
|
|
280
492
|
{/if}
|
|
@@ -298,6 +510,14 @@
|
|
|
298
510
|
data-chart-index={p.index}
|
|
299
511
|
/>
|
|
300
512
|
{/each}
|
|
513
|
+
|
|
514
|
+
<!-- Goal line — emphasised, ABOVE the data. -->
|
|
515
|
+
{#if goalGeom}
|
|
516
|
+
<line class="st-lineChart__goalLine" x1={MARGIN.left} x2={MARGIN.left + plotWidth} y1={goalGeom.y} y2={goalGeom.y} />
|
|
517
|
+
<text class="st-lineChart__goalLabel" x={MARGIN.left + plotWidth - 4} y={goalGeom.y - 4} text-anchor="end">
|
|
518
|
+
{goalGeom.label ?? `Objectif ${goalGeom.value}`}
|
|
519
|
+
</text>
|
|
520
|
+
{/if}
|
|
301
521
|
</svg>
|
|
302
522
|
</div>
|
|
303
523
|
|
|
@@ -406,4 +626,52 @@
|
|
|
406
626
|
.st-lineChart__tooltipValue {
|
|
407
627
|
opacity: 0.85;
|
|
408
628
|
}
|
|
629
|
+
|
|
630
|
+
/* --- Analytical overlay layer --------------------------------------------
|
|
631
|
+
Bands sit BELOW the data via render order; their fill uses color-mix (a
|
|
632
|
+
semi-transparent tint of the tone token) rather than raw opacity, so the
|
|
633
|
+
data series drawn on top keeps full contrast. */
|
|
634
|
+
.st-lineChart__band {
|
|
635
|
+
fill: color-mix(in srgb, var(--st-overlay-tone, var(--st-semantic-border-strong)) 12%, transparent);
|
|
636
|
+
stroke: none;
|
|
637
|
+
}
|
|
638
|
+
.st-lineChart__band--neutral { --st-overlay-tone: var(--st-semantic-border-strong); }
|
|
639
|
+
.st-lineChart__band--success { --st-overlay-tone: var(--st-semantic-feedback-success); }
|
|
640
|
+
.st-lineChart__band--warning { --st-overlay-tone: var(--st-semantic-feedback-warning); }
|
|
641
|
+
.st-lineChart__band--error { --st-overlay-tone: var(--st-semantic-feedback-error); }
|
|
642
|
+
.st-lineChart__band--info { --st-overlay-tone: var(--st-semantic-feedback-info); }
|
|
643
|
+
|
|
644
|
+
.st-lineChart__refLine {
|
|
645
|
+
stroke: var(--st-overlay-tone, var(--st-semantic-border-strong));
|
|
646
|
+
stroke-width: 1;
|
|
647
|
+
stroke-dasharray: 4 3;
|
|
648
|
+
}
|
|
649
|
+
.st-lineChart__refLine--neutral { --st-overlay-tone: var(--st-semantic-border-strong); }
|
|
650
|
+
.st-lineChart__refLine--success { --st-overlay-tone: var(--st-semantic-feedback-success); }
|
|
651
|
+
.st-lineChart__refLine--warning { --st-overlay-tone: var(--st-semantic-feedback-warning); }
|
|
652
|
+
.st-lineChart__refLine--error { --st-overlay-tone: var(--st-semantic-feedback-error); }
|
|
653
|
+
.st-lineChart__refLine--info { --st-overlay-tone: var(--st-semantic-feedback-info); }
|
|
654
|
+
|
|
655
|
+
.st-lineChart__overlayLabel {
|
|
656
|
+
fill: var(--st-semantic-text-secondary);
|
|
657
|
+
font-size: 0.625rem;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.st-lineChart__trend {
|
|
661
|
+
stroke: var(--st-semantic-text-secondary);
|
|
662
|
+
stroke-width: 1.5;
|
|
663
|
+
stroke-dasharray: 6 4;
|
|
664
|
+
opacity: 0.85;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
/* Goal line — drawn ABOVE the data, emphasised (thicker, solid accent). */
|
|
668
|
+
.st-lineChart__goalLine {
|
|
669
|
+
stroke: var(--st-semantic-feedback-success);
|
|
670
|
+
stroke-width: 2.5;
|
|
671
|
+
}
|
|
672
|
+
.st-lineChart__goalLabel {
|
|
673
|
+
fill: var(--st-semantic-feedback-success);
|
|
674
|
+
font-size: 0.6875rem;
|
|
675
|
+
font-weight: 600;
|
|
676
|
+
}
|
|
409
677
|
</style>
|
|
@@ -3,6 +3,27 @@ export type LineChartDatum = {
|
|
|
3
3
|
x: number | string;
|
|
4
4
|
y: number;
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Semantic tone for an analytical overlay (reference line / band / goal).
|
|
8
|
+
* Maps to the feedback token family — markers, not categorical series.
|
|
9
|
+
*/
|
|
10
|
+
export type ChartOverlayTone = "neutral" | "success" | "warning" | "error" | "info";
|
|
11
|
+
export type ChartReferenceLine = {
|
|
12
|
+
value: number;
|
|
13
|
+
label?: string;
|
|
14
|
+
tone?: ChartOverlayTone;
|
|
15
|
+
axis?: "x" | "y";
|
|
16
|
+
};
|
|
17
|
+
export type ChartBand = {
|
|
18
|
+
from: number;
|
|
19
|
+
to: number;
|
|
20
|
+
label?: string;
|
|
21
|
+
tone?: ChartOverlayTone;
|
|
22
|
+
};
|
|
23
|
+
export type ChartGoalLine = {
|
|
24
|
+
value: number;
|
|
25
|
+
label?: string;
|
|
26
|
+
};
|
|
6
27
|
type LineChartProps = {
|
|
7
28
|
data: LineChartDatum[];
|
|
8
29
|
width?: number;
|
|
@@ -11,6 +32,14 @@ type LineChartProps = {
|
|
|
11
32
|
smooth?: boolean;
|
|
12
33
|
area?: boolean;
|
|
13
34
|
label: string;
|
|
35
|
+
/** Reference lines (default `axis: "y"` → horizontal at `value`). */
|
|
36
|
+
referenceLines?: ChartReferenceLine[];
|
|
37
|
+
/** Shaded value-axis bands between `from`..`to`. */
|
|
38
|
+
bands?: ChartBand[];
|
|
39
|
+
/** A single goal line, emphasised above the data. */
|
|
40
|
+
goalLine?: ChartGoalLine;
|
|
41
|
+
/** Least-squares trend line over the data points. */
|
|
42
|
+
trend?: boolean;
|
|
14
43
|
class?: string;
|
|
15
44
|
};
|
|
16
45
|
declare const LineChart: import("svelte").Component<LineChartProps, {}, "">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/LineChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAMF,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"LineChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/LineChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAMF,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC,oDAAoD;IACpD,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoaJ,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -164,6 +164,7 @@ export type { SunburstChartDatum, SunburstChartTone } from "./SunburstChart.svel
|
|
|
164
164
|
export type { ScatterPlotDatum, ScatterPlotTone } from "./ScatterPlot.svelte";
|
|
165
165
|
export type { StackedBarDatum, StackedBarSegment, StackedBarTone } from "./StackedBarChart.svelte";
|
|
166
166
|
export type { LineChartDatum, LineChartTone } from "./LineChart.svelte";
|
|
167
|
+
export type { ChartOverlayTone, ChartReferenceLine, ChartBand, ChartGoalLine } from "./LineChart.svelte";
|
|
167
168
|
export type { ComboChartTone, ComboChartBarSeries, ComboChartLineSeries } from "./ComboChart.svelte";
|
|
168
169
|
export type { GaugeChartTone, GaugeChartThreshold, GaugeChartFormat } from "./GaugeChart.svelte";
|
|
169
170
|
export type { FunnelChartTone, FunnelChartDatum } from "./FunnelChart.svelte";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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":"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"}
|