@sentropic/design-system-svelte 0.34.35 → 0.34.36

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.
@@ -0,0 +1,388 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * AnomalySwimLaneChart - heatmap TEMPS × JOB dont chaque cellule encode un
4
+ * SCORE CONTINU (façon Kibana ML « anomaly swim lane »). Une ligne = un `job` ;
5
+ * une colonne = un bucket temporel (trié par `at`). La couleur suit l'INTENSITÉ
6
+ * du score normalisé 0..max sur l'échelle catégorielle continue (category1..8),
7
+ * reprise de HeatmapChart. Distinct de StatusHistoryChart (statut DISCRET) : ici
8
+ * le score est CONTINU → gradient d'intensité.
9
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
10
+ *
11
+ * Props obligatoires :
12
+ * data AnomalySwimLaneSeries[] - tableau {job, buckets[]}
13
+ *
14
+ * Props optionnelles :
15
+ * max number (défaut dérivé du score max des data)
16
+ * label string
17
+ * width number (défaut 520)
18
+ * height number (défaut 300)
19
+ * size number (alias de width)
20
+ * class string
21
+ */
22
+ export type AnomalySwimLaneTone =
23
+ | "category1" | "category2" | "category3" | "category4"
24
+ | "category5" | "category6" | "category7" | "category8";
25
+
26
+ export type AnomalySwimLaneBucket = {
27
+ at: number;
28
+ score: number;
29
+ };
30
+
31
+ export type AnomalySwimLaneSeries = {
32
+ job: string;
33
+ buckets: AnomalySwimLaneBucket[];
34
+ };
35
+ </script>
36
+
37
+ <script lang="ts">
38
+ import ChartDataList from "./ChartDataList.svelte";
39
+
40
+ type AnomalySwimLaneChartProps = {
41
+ data: AnomalySwimLaneSeries[];
42
+ max?: number;
43
+ label?: string;
44
+ width?: number;
45
+ height?: number;
46
+ size?: number;
47
+ class?: string;
48
+ };
49
+
50
+ let {
51
+ data = [],
52
+ max,
53
+ label,
54
+ width,
55
+ height = 300,
56
+ size,
57
+ class: className
58
+ }: AnomalySwimLaneChartProps = $props();
59
+
60
+ const resolvedWidth = $derived(width ?? size ?? 520);
61
+
62
+ const MARGIN = { top: 28, right: 18, bottom: 44, left: 132 };
63
+ const TONES = [
64
+ "category1","category2","category3","category4","category5","category6","category7","category8"
65
+ ] as const;
66
+
67
+ // Échelle continue : intensité du score normalisé 0..max → category1..8 (reprise
68
+ // de HeatmapChart). max ≤ 0 ou score non fini → category1 (intensité plancher).
69
+ function toneForScore(score: number, scoreMax: number): AnomalySwimLaneTone {
70
+ if (!Number.isFinite(score) || scoreMax <= 0) return "category1";
71
+ const ratio = Math.max(0, Math.min(1, score / scoreMax));
72
+ const index = Math.max(0, Math.min(TONES.length - 1, Math.floor(ratio * TONES.length)));
73
+ return TONES[index];
74
+ }
75
+
76
+ // Tronque une étiquette à la largeur de la marge gauche (approx. par char).
77
+ function ellipsize(text: string, maxChars: number): string {
78
+ if (text.length <= maxChars) return text;
79
+ if (maxChars <= 1) return "…";
80
+ return `${text.slice(0, maxChars - 1)}…`;
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 hoveredKey: string | null = $state(null);
90
+
91
+ const plotWidth = $derived(Math.max(resolvedWidth - MARGIN.left - MARGIN.right, 1));
92
+ const plotHeight = $derived(Math.max(height - MARGIN.top - MARGIN.bottom, 1));
93
+
94
+ // Normalise : filtre les jobs sans libellé et les buckets non finis.
95
+ const validData = $derived(
96
+ data
97
+ .filter((d) => typeof d.job === "string" && d.job.length > 0)
98
+ .map((d) => ({
99
+ job: d.job,
100
+ buckets: (d.buckets ?? [])
101
+ .filter((b) => Number.isFinite(b.at))
102
+ .map((b) => ({ at: b.at, score: b.score }))
103
+ }))
104
+ );
105
+
106
+ // Colonnes temporelles distinctes (par `at`, croissant).
107
+ const columnOrder = $derived.by(() => {
108
+ const seen: number[] = [];
109
+ for (const d of validData) {
110
+ for (const b of d.buckets) {
111
+ if (!seen.includes(b.at)) seen.push(b.at);
112
+ }
113
+ }
114
+ return seen.sort((a, b) => a - b);
115
+ });
116
+
117
+ // Score max effectif : prop `max` si finie et > 0, sinon dérivée des data.
118
+ const scoreMax = $derived.by(() => {
119
+ if (typeof max === "number" && Number.isFinite(max) && max > 0) return max;
120
+ const scores = validData.flatMap((d) => d.buckets.map((b) => b.score)).filter(Number.isFinite);
121
+ return scores.length > 0 ? Math.max(...scores) : 1;
122
+ });
123
+
124
+ const rows = $derived.by(() => {
125
+ if (validData.length === 0 || columnOrder.length === 0) return [];
126
+ const band = plotHeight / validData.length;
127
+ const rowHeight = Math.min(band * 0.78, 34);
128
+ const colWidth = plotWidth / columnOrder.length;
129
+ return validData.map((d, i) => {
130
+ const y = MARGIN.top + band * i + (band - rowHeight) / 2;
131
+ const cells = d.buckets.map((b, j) => {
132
+ const colIndex = Math.max(0, columnOrder.indexOf(b.at));
133
+ const x = MARGIN.left + colIndex * colWidth;
134
+ const w = Math.max(colWidth - 2, 1);
135
+ return {
136
+ key: `${i}-${j}`,
137
+ datum: b,
138
+ x,
139
+ width: w,
140
+ cx: x + w / 2,
141
+ tone: toneForScore(b.score, scoreMax)
142
+ };
143
+ });
144
+ return {
145
+ datum: d,
146
+ index: i,
147
+ y,
148
+ height: rowHeight,
149
+ rowCenterY: MARGIN.top + band * (i + 0.5),
150
+ cells
151
+ };
152
+ });
153
+ });
154
+
155
+ const columns = $derived.by(() => {
156
+ if (columnOrder.length === 0) return [];
157
+ const colWidth = plotWidth / columnOrder.length;
158
+ return columnOrder.map((at, index) => ({
159
+ at,
160
+ cx: MARGIN.left + (index + 0.5) * colWidth
161
+ }));
162
+ });
163
+
164
+ const dataValueItems = $derived(
165
+ validData.map(
166
+ (d) => `${d.job}: ${d.buckets.map((b) => `${b.at} = ${b.score}`).join(", ")}`
167
+ )
168
+ );
169
+
170
+ const legendItems = $derived(TONES.map((tone) => ({ tone })));
171
+ const hasLegend = $derived(validData.length > 0 && columnOrder.length > 0);
172
+
173
+ function handlePointerMove(event: PointerEvent) {
174
+ const target = event.target;
175
+ if (!(target instanceof Element)) {
176
+ hoveredKey = null;
177
+ return;
178
+ }
179
+ const key = target.getAttribute("data-chart-key");
180
+ hoveredKey = key ?? null;
181
+ }
182
+
183
+ const hoveredCell = $derived.by(() => {
184
+ if (hoveredKey === null) return null;
185
+ for (const row of rows) {
186
+ for (const cell of row.cells) {
187
+ if (cell.key === hoveredKey) return { row, cell };
188
+ }
189
+ }
190
+ return null;
191
+ });
192
+
193
+ const classes = () => ["st-anomalySwimLaneChart", className].filter(Boolean).join(" ");
194
+ </script>
195
+
196
+ <div class={classes()}>
197
+ <div
198
+ class="st-anomalySwimLaneChart__visual"
199
+ role="img"
200
+ aria-label={label}
201
+ onpointermove={handlePointerMove}
202
+ onpointerleave={() => (hoveredKey = null)}
203
+ >
204
+ <svg
205
+ viewBox="0 0 {resolvedWidth} {height}"
206
+ preserveAspectRatio="xMidYMid meet"
207
+ width="100%"
208
+ height="100%"
209
+ focusable="false"
210
+ aria-hidden="true"
211
+ >
212
+ <!-- tick labels (axe X temporel) -->
213
+ {#each columns as column (column.at)}
214
+ <text class="st-anomalySwimLaneChart__tickLabel" x={column.cx} y={height - MARGIN.bottom + 16} text-anchor="middle">
215
+ {formatTick(column.at)}
216
+ </text>
217
+ {/each}
218
+
219
+ <!-- axes -->
220
+ <line class="st-anomalySwimLaneChart__axis" x1={MARGIN.left} x2={MARGIN.left} y1={MARGIN.top} y2={height - MARGIN.bottom} />
221
+ <line class="st-anomalySwimLaneChart__axis" x1={MARGIN.left} x2={resolvedWidth - MARGIN.right} y1={height - MARGIN.bottom} y2={height - MARGIN.bottom} />
222
+
223
+ <!-- une ligne par job : étiquette à gauche + cellules de score par bucket -->
224
+ {#each rows as row (`${row.index}-${row.datum.job}`)}
225
+ <text
226
+ class="st-anomalySwimLaneChart__jobLabel"
227
+ x={MARGIN.left - 8}
228
+ y={row.rowCenterY}
229
+ text-anchor="end"
230
+ dominant-baseline="middle"
231
+ >
232
+ {ellipsize(row.datum.job, 18)}
233
+ </text>
234
+ {#each row.cells as cell (cell.key)}
235
+ <rect
236
+ class="st-anomalySwimLaneChart__cell st-anomalySwimLaneChart__cell--{cell.tone}"
237
+ class:st-anomalySwimLaneChart__cell--dim={hoveredKey !== null && hoveredKey !== cell.key}
238
+ x={cell.x}
239
+ y={row.y}
240
+ width={cell.width}
241
+ height={row.height}
242
+ rx="2"
243
+ data-chart-key={cell.key}
244
+ />
245
+ {/each}
246
+ {/each}
247
+ </svg>
248
+ </div>
249
+
250
+ {#if hasLegend}
251
+ <div class="st-anomalySwimLaneChart__legend" aria-hidden="true">
252
+ <span class="st-anomalySwimLaneChart__legendText">Low</span>
253
+ <span class="st-anomalySwimLaneChart__legendRamp">
254
+ {#each legendItems as item (item.tone)}
255
+ <span class="st-anomalySwimLaneChart__legendSwatch st-anomalySwimLaneChart__legendSwatch--{item.tone}"></span>
256
+ {/each}
257
+ </span>
258
+ <span class="st-anomalySwimLaneChart__legendText">High</span>
259
+ </div>
260
+ {/if}
261
+
262
+ <ChartDataList label={label ?? "anomaly swim lane"} items={dataValueItems} />
263
+
264
+ {#if hoveredCell}
265
+ {@const cell = hoveredCell.cell}
266
+ {@const row = hoveredCell.row}
267
+ <div
268
+ class="st-anomalySwimLaneChart__tooltip"
269
+ role="presentation"
270
+ style="left: {(cell.cx / resolvedWidth) * 100}%; top: {(row.rowCenterY / height) * 100}%"
271
+ >
272
+ <span class="st-anomalySwimLaneChart__tooltipLabel">{row.datum.job} · {cell.datum.at}</span>
273
+ <span class="st-anomalySwimLaneChart__tooltipValue">{cell.datum.score}</span>
274
+ </div>
275
+ {/if}
276
+ </div>
277
+
278
+ <style>
279
+ .st-anomalySwimLaneChart {
280
+ color: var(--st-semantic-text-secondary);
281
+ display: block;
282
+ font-family: inherit;
283
+ position: relative;
284
+ width: 100%;
285
+ }
286
+
287
+ .st-anomalySwimLaneChart svg {
288
+ display: block;
289
+ overflow: visible;
290
+ }
291
+
292
+ .st-anomalySwimLaneChart__visual {
293
+ display: block;
294
+ }
295
+
296
+ .st-anomalySwimLaneChart__axis {
297
+ stroke: var(--st-semantic-border-subtle);
298
+ stroke-width: 1;
299
+ }
300
+
301
+ .st-anomalySwimLaneChart__tickLabel,
302
+ .st-anomalySwimLaneChart__jobLabel {
303
+ fill: var(--st-semantic-text-secondary);
304
+ font-size: 0.6875rem;
305
+ }
306
+
307
+ .st-anomalySwimLaneChart__cell {
308
+ cursor: pointer;
309
+ stroke: var(--st-semantic-surface-default, Canvas);
310
+ stroke-width: 1;
311
+ transition: opacity 120ms ease;
312
+ }
313
+
314
+ .st-anomalySwimLaneChart__cell--dim {
315
+ opacity: 0.4;
316
+ }
317
+
318
+ .st-anomalySwimLaneChart__cell--category1,
319
+ .st-anomalySwimLaneChart__legendSwatch--category1 { fill: var(--st-semantic-data-category1); background: var(--st-semantic-data-category1); }
320
+ .st-anomalySwimLaneChart__cell--category2,
321
+ .st-anomalySwimLaneChart__legendSwatch--category2 { fill: var(--st-semantic-data-category2); background: var(--st-semantic-data-category2); }
322
+ .st-anomalySwimLaneChart__cell--category3,
323
+ .st-anomalySwimLaneChart__legendSwatch--category3 { fill: var(--st-semantic-data-category3); background: var(--st-semantic-data-category3); }
324
+ .st-anomalySwimLaneChart__cell--category4,
325
+ .st-anomalySwimLaneChart__legendSwatch--category4 { fill: var(--st-semantic-data-category4); background: var(--st-semantic-data-category4); }
326
+ .st-anomalySwimLaneChart__cell--category5,
327
+ .st-anomalySwimLaneChart__legendSwatch--category5 { fill: var(--st-semantic-data-category5); background: var(--st-semantic-data-category5); }
328
+ .st-anomalySwimLaneChart__cell--category6,
329
+ .st-anomalySwimLaneChart__legendSwatch--category6 { fill: var(--st-semantic-data-category6); background: var(--st-semantic-data-category6); }
330
+ .st-anomalySwimLaneChart__cell--category7,
331
+ .st-anomalySwimLaneChart__legendSwatch--category7 { fill: var(--st-semantic-data-category7); background: var(--st-semantic-data-category7); }
332
+ .st-anomalySwimLaneChart__cell--category8,
333
+ .st-anomalySwimLaneChart__legendSwatch--category8 { fill: var(--st-semantic-data-category8); background: var(--st-semantic-data-category8); }
334
+
335
+ .st-anomalySwimLaneChart__legend {
336
+ align-items: center;
337
+ display: flex;
338
+ gap: var(--st-spacing-2, 0.5rem);
339
+ margin-top: var(--st-spacing-2, 0.5rem);
340
+ }
341
+
342
+ .st-anomalySwimLaneChart__legendRamp {
343
+ display: inline-grid;
344
+ grid-template-columns: repeat(8, minmax(0.75rem, 1fr));
345
+ min-width: 8rem;
346
+ }
347
+
348
+ .st-anomalySwimLaneChart__legendSwatch {
349
+ display: block;
350
+ height: 0.5rem;
351
+ }
352
+
353
+ .st-anomalySwimLaneChart__legendText {
354
+ color: var(--st-semantic-text-secondary);
355
+ font-size: 0.75rem;
356
+ }
357
+
358
+ .st-anomalySwimLaneChart__tooltip {
359
+ background: var(--st-semantic-surface-inverse);
360
+ border-radius: var(--st-radius-sm, 0.25rem);
361
+ color: var(--st-semantic-text-inverse);
362
+ display: inline-flex;
363
+ flex-direction: column;
364
+ font-size: 0.75rem;
365
+ gap: 0.125rem;
366
+ line-height: 1.2;
367
+ padding: 0.375rem 0.5rem;
368
+ pointer-events: none;
369
+ position: absolute;
370
+ transform: translate(-50%, calc(-100% - 8px));
371
+ white-space: nowrap;
372
+ z-index: 1;
373
+ }
374
+
375
+ .st-anomalySwimLaneChart__tooltipLabel {
376
+ font-weight: 600;
377
+ }
378
+
379
+ .st-anomalySwimLaneChart__tooltipValue {
380
+ opacity: 0.85;
381
+ }
382
+
383
+ @media (prefers-reduced-motion: reduce) {
384
+ .st-anomalySwimLaneChart__cell {
385
+ transition: none;
386
+ }
387
+ }
388
+ </style>
@@ -0,0 +1,42 @@
1
+ /**
2
+ * AnomalySwimLaneChart - heatmap TEMPS × JOB dont chaque cellule encode un
3
+ * SCORE CONTINU (façon Kibana ML « anomaly swim lane »). Une ligne = un `job` ;
4
+ * une colonne = un bucket temporel (trié par `at`). La couleur suit l'INTENSITÉ
5
+ * du score normalisé 0..max sur l'échelle catégorielle continue (category1..8),
6
+ * reprise de HeatmapChart. Distinct de StatusHistoryChart (statut DISCRET) : ici
7
+ * le score est CONTINU → gradient d'intensité.
8
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
9
+ *
10
+ * Props obligatoires :
11
+ * data AnomalySwimLaneSeries[] - tableau {job, buckets[]}
12
+ *
13
+ * Props optionnelles :
14
+ * max number (défaut dérivé du score max des data)
15
+ * label string
16
+ * width number (défaut 520)
17
+ * height number (défaut 300)
18
+ * size number (alias de width)
19
+ * class string
20
+ */
21
+ export type AnomalySwimLaneTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
22
+ export type AnomalySwimLaneBucket = {
23
+ at: number;
24
+ score: number;
25
+ };
26
+ export type AnomalySwimLaneSeries = {
27
+ job: string;
28
+ buckets: AnomalySwimLaneBucket[];
29
+ };
30
+ type AnomalySwimLaneChartProps = {
31
+ data: AnomalySwimLaneSeries[];
32
+ max?: number;
33
+ label?: string;
34
+ width?: number;
35
+ height?: number;
36
+ size?: number;
37
+ class?: string;
38
+ };
39
+ declare const AnomalySwimLaneChart: import("svelte").Component<AnomalySwimLaneChartProps, {}, "">;
40
+ type AnomalySwimLaneChart = ReturnType<typeof AnomalySwimLaneChart>;
41
+ export default AnomalySwimLaneChart;
42
+ //# sourceMappingURL=AnomalySwimLaneChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnomalySwimLaneChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/AnomalySwimLaneChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAMF,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+MJ,QAAA,MAAM,oBAAoB,+DAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,439 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * RibbonChart - rang empilé à rubans dans le temps (façon Power BI « ribbon
4
+ * chart »). Par période, les catégories sont empilées (hauteur = value) et
5
+ * TRIÉES par valeur (la plus grande en bas) ; des RUBANS lissés relient le
6
+ * segment d'une même `category` d'une période à la suivante, matérialisant le
7
+ * flux de rang. Distinct d'un StackedBarChart classique : l'ordre d'empilement
8
+ * est un classement par valeur et les rubans inter-périodes encodent la
9
+ * continuité d'une catégorie.
10
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
11
+ *
12
+ * Modèle : catégories et périodes dérivées des `data`. La couleur suit `tone`
13
+ * si fourni, sinon une teinte stable par `category` (cycle sur category1..8).
14
+ * Légende des catégories sous le graphe via ChartDataList.
15
+ *
16
+ * Props obligatoires :
17
+ * data RibbonChartDatum[] - tableau {category, period, value, tone?}
18
+ *
19
+ * Props optionnelles :
20
+ * label string
21
+ * width number (défaut 520)
22
+ * height number (défaut 300)
23
+ * size number (alias de width)
24
+ * class string
25
+ */
26
+ export type RibbonChartTone =
27
+ | "category1" | "category2" | "category3" | "category4"
28
+ | "category5" | "category6" | "category7" | "category8";
29
+
30
+ export type RibbonChartDatum = {
31
+ category: string;
32
+ period: string | number;
33
+ value: number;
34
+ tone?: RibbonChartTone;
35
+ };
36
+ </script>
37
+
38
+ <script lang="ts">
39
+ import ChartDataList from "./ChartDataList.svelte";
40
+
41
+ type RibbonChartProps = {
42
+ data: RibbonChartDatum[];
43
+ label?: string;
44
+ width?: number;
45
+ height?: number;
46
+ size?: number;
47
+ class?: string;
48
+ };
49
+
50
+ let {
51
+ data = [],
52
+ label,
53
+ width,
54
+ height = 300,
55
+ size,
56
+ class: className
57
+ }: RibbonChartProps = $props();
58
+
59
+ const resolvedWidth = $derived(width ?? size ?? 520);
60
+
61
+ const MARGIN = { top: 16, right: 16, bottom: 32, left: 16 };
62
+ const RIBBON_SMOOTH = 0.4;
63
+
64
+ const TONES = [
65
+ "category1","category2","category3","category4","category5","category6","category7","category8"
66
+ ] as const;
67
+
68
+ let hoveredKey: string | null = $state(null);
69
+
70
+ const plotWidth = $derived(Math.max(resolvedWidth - MARGIN.left - MARGIN.right, 1));
71
+ const plotHeight = $derived(Math.max(height - MARGIN.top - MARGIN.bottom, 1));
72
+
73
+ // Normalise : filtre les data sans catégorie et de valeur non finie/< 0.
74
+ const validData = $derived(
75
+ data.filter(
76
+ (d) =>
77
+ typeof d.category === "string" &&
78
+ d.category.length > 0 &&
79
+ Number.isFinite(d.value) &&
80
+ d.value >= 0
81
+ )
82
+ );
83
+
84
+ // Périodes distinctes (ordre d'apparition), colonnes empilées de gauche à droite.
85
+ const periodOrder = $derived.by(() => {
86
+ const seen: (string | number)[] = [];
87
+ for (const d of validData) {
88
+ if (!seen.includes(d.period)) seen.push(d.period);
89
+ }
90
+ return seen;
91
+ });
92
+
93
+ // Catégories distinctes (ordre d'apparition) → index categoryN (1..8, cyclé)
94
+ // si aucun `tone` explicite. Un `tone` sur une donnée l'emporte sur la dérivation.
95
+ const categoryOrder = $derived.by(() => {
96
+ const seen: string[] = [];
97
+ for (const d of validData) {
98
+ if (!seen.includes(d.category)) seen.push(d.category);
99
+ }
100
+ return seen;
101
+ });
102
+ const explicitToneByCategory = $derived.by(() => {
103
+ const map = new Map<string, RibbonChartTone>();
104
+ for (const d of validData) {
105
+ if (d.tone) map.set(d.category, d.tone);
106
+ }
107
+ return map;
108
+ });
109
+ const toneOf = (category: string): RibbonChartTone => {
110
+ const explicit = explicitToneByCategory.get(category);
111
+ if (explicit) return explicit;
112
+ const idx = categoryOrder.indexOf(category);
113
+ return `category${((idx < 0 ? 0 : idx) % 8) + 1}` as RibbonChartTone;
114
+ };
115
+
116
+ // Empilement par période : segments TRIÉS par valeur décroissante (rang), la
117
+ // plus grande catégorie au pied. Pour chaque segment on garde y haut/bas afin
118
+ // de tracer les rubans inter-périodes par catégorie.
119
+ type Segment = {
120
+ key: string;
121
+ category: string;
122
+ value: number;
123
+ tone: RibbonChartTone;
124
+ x: number;
125
+ width: number;
126
+ yTop: number;
127
+ yBottom: number;
128
+ cx: number;
129
+ cy: number;
130
+ };
131
+
132
+ const columns = $derived.by(() => {
133
+ if (validData.length === 0 || periodOrder.length === 0) return [] as {
134
+ period: string | number;
135
+ index: number;
136
+ cx: number;
137
+ segments: Segment[];
138
+ }[];
139
+ const band = plotWidth / periodOrder.length;
140
+ const barWidth = Math.min(band * 0.5, 72);
141
+ // Domaine vertical = plus grande somme de période (toutes empilées).
142
+ const totals = periodOrder.map((p) =>
143
+ validData.filter((d) => d.period === p).reduce((s, d) => s + Math.max(d.value, 0), 0)
144
+ );
145
+ const domainMax = Math.max(1, ...totals);
146
+ return periodOrder.map((period, pi) => {
147
+ const x = MARGIN.left + band * pi + (band - barWidth) / 2;
148
+ const rows = validData
149
+ .filter((d) => d.period === period)
150
+ .map((d) => ({ category: d.category, value: Math.max(d.value, 0) }))
151
+ // Tri par rang : valeur décroissante (la plus grande au pied).
152
+ .sort((a, b) => b.value - a.value);
153
+ let acc = 0;
154
+ const segments = rows.map((row, ri) => {
155
+ const h = (row.value / domainMax) * plotHeight;
156
+ const yBottom = MARGIN.top + plotHeight - acc;
157
+ const yTop = yBottom - h;
158
+ acc += h;
159
+ return {
160
+ key: `${pi}-${ri}-${row.category}`,
161
+ category: row.category,
162
+ value: row.value,
163
+ tone: toneOf(row.category),
164
+ x,
165
+ width: barWidth,
166
+ yTop,
167
+ yBottom,
168
+ cx: x + barWidth / 2,
169
+ cy: yTop + (yBottom - yTop) / 2
170
+ } satisfies Segment;
171
+ });
172
+ return { period, index: pi, cx: MARGIN.left + band * (pi + 0.5), segments };
173
+ });
174
+ });
175
+
176
+ // Rubans : pour chaque catégorie présente dans deux périodes consécutives, une
177
+ // bande lissée reliant le segment gauche (bord droit) au segment droit (bord
178
+ // gauche). Quadrilatère à bords supérieur/inférieur en cubiques.
179
+ type Ribbon = { key: string; category: string; tone: RibbonChartTone; d: string };
180
+
181
+ const ribbons = $derived.by(() => {
182
+ const out: Ribbon[] = [];
183
+ for (let ci = 0; ci < columns.length - 1; ci++) {
184
+ const left = columns[ci];
185
+ const right = columns[ci + 1];
186
+ for (const ls of left.segments) {
187
+ const rs = right.segments.find((s) => s.category === ls.category);
188
+ if (!rs) continue;
189
+ const x0 = ls.x + ls.width;
190
+ const x1 = rs.x;
191
+ const mid = x0 + (x1 - x0) * RIBBON_SMOOTH;
192
+ const mid2 = x1 - (x1 - x0) * RIBBON_SMOOTH;
193
+ // Bord supérieur (gauche→droite) puis bord inférieur (droite→gauche).
194
+ const d =
195
+ `M${x0.toFixed(2)},${ls.yTop.toFixed(2)} ` +
196
+ `C${mid.toFixed(2)},${ls.yTop.toFixed(2)} ${mid2.toFixed(2)},${rs.yTop.toFixed(2)} ${x1.toFixed(2)},${rs.yTop.toFixed(2)} ` +
197
+ `L${x1.toFixed(2)},${rs.yBottom.toFixed(2)} ` +
198
+ `C${mid2.toFixed(2)},${rs.yBottom.toFixed(2)} ${mid.toFixed(2)},${ls.yBottom.toFixed(2)} ${x0.toFixed(2)},${ls.yBottom.toFixed(2)} Z`;
199
+ out.push({ key: `${ci}-${ls.category}`, category: ls.category, tone: ls.tone, d });
200
+ }
201
+ }
202
+ return out;
203
+ });
204
+
205
+ const legendItems = $derived(categoryOrder.map((category) => ({ category, tone: toneOf(category) })));
206
+ const hasLegend = $derived(categoryOrder.length > 0);
207
+
208
+ const dataValueItems = $derived(
209
+ categoryOrder.map(
210
+ (category) =>
211
+ `${category}: ${periodOrder
212
+ .map((p) => {
213
+ const found = validData.find((d) => d.category === category && d.period === p);
214
+ return `${p} = ${found ? found.value : 0}`;
215
+ })
216
+ .join(", ")}`
217
+ )
218
+ );
219
+
220
+ function handlePointerMove(event: PointerEvent) {
221
+ const target = event.target;
222
+ if (!(target instanceof Element)) {
223
+ hoveredKey = null;
224
+ return;
225
+ }
226
+ const key = target.getAttribute("data-chart-key");
227
+ hoveredKey = key ?? null;
228
+ }
229
+
230
+ const hoveredSegment = $derived.by(() => {
231
+ if (hoveredKey === null) return null;
232
+ for (const col of columns) {
233
+ for (const seg of col.segments) {
234
+ if (seg.key === hoveredKey) return seg;
235
+ }
236
+ }
237
+ return null;
238
+ });
239
+
240
+ const classes = () => ["st-ribbonChart", className].filter(Boolean).join(" ");
241
+ </script>
242
+
243
+ <div class={classes()}>
244
+ <div
245
+ class="st-ribbonChart__visual"
246
+ role="img"
247
+ aria-label={label}
248
+ onpointermove={handlePointerMove}
249
+ onpointerleave={() => (hoveredKey = null)}
250
+ >
251
+ <svg
252
+ viewBox="0 0 {resolvedWidth} {height}"
253
+ preserveAspectRatio="xMidYMid meet"
254
+ width="100%"
255
+ height="100%"
256
+ focusable="false"
257
+ aria-hidden="true"
258
+ >
259
+ <!-- rubans inter-périodes (sous les segments) -->
260
+ {#each ribbons as ribbon (ribbon.key)}
261
+ <path
262
+ class="st-ribbonChart__ribbon st-ribbonChart__ribbon--{ribbon.tone}"
263
+ class:st-ribbonChart__ribbon--dim={hoveredSegment !== null && hoveredSegment.category !== ribbon.category}
264
+ d={ribbon.d}
265
+ />
266
+ {/each}
267
+
268
+ <!-- segments empilés par période -->
269
+ {#each columns as col (col.index)}
270
+ <text class="st-ribbonChart__periodLabel" x={col.cx} y={height - MARGIN.bottom + 16} text-anchor="middle">
271
+ {col.period}
272
+ </text>
273
+ {#each col.segments as seg (seg.key)}
274
+ <rect
275
+ class="st-ribbonChart__seg st-ribbonChart__seg--{seg.tone}"
276
+ class:st-ribbonChart__seg--dim={hoveredSegment !== null && hoveredSegment.category !== seg.category}
277
+ x={seg.x}
278
+ y={seg.yTop}
279
+ width={seg.width}
280
+ height={Math.max(seg.yBottom - seg.yTop, 0)}
281
+ rx="2"
282
+ data-chart-key={seg.key}
283
+ />
284
+ {/each}
285
+ {/each}
286
+ </svg>
287
+ </div>
288
+
289
+ {#if hasLegend}
290
+ <ul class="st-ribbonChart__legend" aria-label={`Catégories de ${label ?? "ribbon"}`}>
291
+ {#each legendItems as item (item.category)}
292
+ <li class="st-ribbonChart__legendItem">
293
+ <span class="st-ribbonChart__legendSwatch st-ribbonChart__legendSwatch--{item.tone}" aria-hidden="true"></span>
294
+ {item.category}
295
+ </li>
296
+ {/each}
297
+ </ul>
298
+ {/if}
299
+
300
+ <ChartDataList label={label ?? "ribbon"} items={dataValueItems} />
301
+
302
+ {#if hoveredSegment}
303
+ {@const seg = hoveredSegment}
304
+ <div
305
+ class="st-ribbonChart__tooltip"
306
+ role="presentation"
307
+ style="left: {(seg.cx / resolvedWidth) * 100}%; top: {(seg.cy / height) * 100}%"
308
+ >
309
+ <span class="st-ribbonChart__tooltipLabel">{seg.category}</span>
310
+ <span class="st-ribbonChart__tooltipValue">{seg.value}</span>
311
+ </div>
312
+ {/if}
313
+ </div>
314
+
315
+ <style>
316
+ .st-ribbonChart {
317
+ color: var(--st-semantic-text-secondary);
318
+ display: block;
319
+ font-family: inherit;
320
+ position: relative;
321
+ width: 100%;
322
+ }
323
+
324
+ .st-ribbonChart svg {
325
+ display: block;
326
+ overflow: visible;
327
+ }
328
+
329
+ .st-ribbonChart__visual {
330
+ display: block;
331
+ }
332
+
333
+ .st-ribbonChart__periodLabel {
334
+ fill: var(--st-semantic-text-secondary);
335
+ font-size: 0.6875rem;
336
+ }
337
+
338
+ .st-ribbonChart__ribbon {
339
+ opacity: 0.34;
340
+ transition: opacity 120ms ease;
341
+ }
342
+
343
+ .st-ribbonChart__ribbon--dim {
344
+ opacity: 0.1;
345
+ }
346
+
347
+ .st-ribbonChart__seg {
348
+ cursor: pointer;
349
+ stroke: var(--st-semantic-surface-default, Canvas);
350
+ stroke-width: 1;
351
+ transition: opacity 120ms ease;
352
+ }
353
+
354
+ .st-ribbonChart__seg--dim {
355
+ opacity: 0.4;
356
+ }
357
+
358
+ .st-ribbonChart__seg--category1,
359
+ .st-ribbonChart__ribbon--category1 { fill: var(--st-semantic-data-category1); }
360
+ .st-ribbonChart__seg--category2,
361
+ .st-ribbonChart__ribbon--category2 { fill: var(--st-semantic-data-category2); }
362
+ .st-ribbonChart__seg--category3,
363
+ .st-ribbonChart__ribbon--category3 { fill: var(--st-semantic-data-category3); }
364
+ .st-ribbonChart__seg--category4,
365
+ .st-ribbonChart__ribbon--category4 { fill: var(--st-semantic-data-category4); }
366
+ .st-ribbonChart__seg--category5,
367
+ .st-ribbonChart__ribbon--category5 { fill: var(--st-semantic-data-category5); }
368
+ .st-ribbonChart__seg--category6,
369
+ .st-ribbonChart__ribbon--category6 { fill: var(--st-semantic-data-category6); }
370
+ .st-ribbonChart__seg--category7,
371
+ .st-ribbonChart__ribbon--category7 { fill: var(--st-semantic-data-category7); }
372
+ .st-ribbonChart__seg--category8,
373
+ .st-ribbonChart__ribbon--category8 { fill: var(--st-semantic-data-category8); }
374
+
375
+ .st-ribbonChart__legend {
376
+ display: flex;
377
+ flex-wrap: wrap;
378
+ gap: var(--st-spacing-3, 0.75rem);
379
+ list-style: none;
380
+ margin: var(--st-spacing-2, 0.5rem) 0 0 0;
381
+ padding: 0;
382
+ }
383
+
384
+ .st-ribbonChart__legendItem {
385
+ align-items: center;
386
+ color: var(--st-semantic-text-secondary);
387
+ display: inline-flex;
388
+ font-size: 0.75rem;
389
+ gap: var(--st-spacing-1, 0.25rem);
390
+ line-height: 1;
391
+ }
392
+
393
+ .st-ribbonChart__legendSwatch {
394
+ border-radius: var(--st-radius-sm, 0.25rem);
395
+ display: inline-block;
396
+ height: 0.625rem;
397
+ width: 0.625rem;
398
+ }
399
+ .st-ribbonChart__legendSwatch--category1 { background: var(--st-semantic-data-category1); }
400
+ .st-ribbonChart__legendSwatch--category2 { background: var(--st-semantic-data-category2); }
401
+ .st-ribbonChart__legendSwatch--category3 { background: var(--st-semantic-data-category3); }
402
+ .st-ribbonChart__legendSwatch--category4 { background: var(--st-semantic-data-category4); }
403
+ .st-ribbonChart__legendSwatch--category5 { background: var(--st-semantic-data-category5); }
404
+ .st-ribbonChart__legendSwatch--category6 { background: var(--st-semantic-data-category6); }
405
+ .st-ribbonChart__legendSwatch--category7 { background: var(--st-semantic-data-category7); }
406
+ .st-ribbonChart__legendSwatch--category8 { background: var(--st-semantic-data-category8); }
407
+
408
+ .st-ribbonChart__tooltip {
409
+ background: var(--st-semantic-surface-inverse);
410
+ border-radius: var(--st-radius-sm, 0.25rem);
411
+ color: 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-ribbonChart__tooltipLabel {
426
+ font-weight: 600;
427
+ }
428
+
429
+ .st-ribbonChart__tooltipValue {
430
+ opacity: 0.85;
431
+ }
432
+
433
+ @media (prefers-reduced-motion: reduce) {
434
+ .st-ribbonChart__seg,
435
+ .st-ribbonChart__ribbon {
436
+ transition: none;
437
+ }
438
+ }
439
+ </style>
@@ -0,0 +1,43 @@
1
+ /**
2
+ * RibbonChart - rang empilé à rubans dans le temps (façon Power BI « ribbon
3
+ * chart »). Par période, les catégories sont empilées (hauteur = value) et
4
+ * TRIÉES par valeur (la plus grande en bas) ; des RUBANS lissés relient le
5
+ * segment d'une même `category` d'une période à la suivante, matérialisant le
6
+ * flux de rang. Distinct d'un StackedBarChart classique : l'ordre d'empilement
7
+ * est un classement par valeur et les rubans inter-périodes encodent la
8
+ * continuité d'une catégorie.
9
+ * API canonique (référence Svelte, React/Vue doivent s'aligner).
10
+ *
11
+ * Modèle : catégories et périodes dérivées des `data`. La couleur suit `tone`
12
+ * si fourni, sinon une teinte stable par `category` (cycle sur category1..8).
13
+ * Légende des catégories sous le graphe via ChartDataList.
14
+ *
15
+ * Props obligatoires :
16
+ * data RibbonChartDatum[] - tableau {category, period, value, tone?}
17
+ *
18
+ * Props optionnelles :
19
+ * label string
20
+ * width number (défaut 520)
21
+ * height number (défaut 300)
22
+ * size number (alias de width)
23
+ * class string
24
+ */
25
+ export type RibbonChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
26
+ export type RibbonChartDatum = {
27
+ category: string;
28
+ period: string | number;
29
+ value: number;
30
+ tone?: RibbonChartTone;
31
+ };
32
+ type RibbonChartProps = {
33
+ data: RibbonChartDatum[];
34
+ label?: string;
35
+ width?: number;
36
+ height?: number;
37
+ size?: number;
38
+ class?: string;
39
+ };
40
+ declare const RibbonChart: import("svelte").Component<RibbonChartProps, {}, "">;
41
+ type RibbonChart = ReturnType<typeof RibbonChart>;
42
+ export default RibbonChart;
43
+ //# sourceMappingURL=RibbonChart.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RibbonChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/RibbonChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,eAAe,GACvB,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,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,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAwPJ,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
@@ -100,6 +100,8 @@ export { default as SolidGaugeChart } from "./SolidGaugeChart.svelte";
100
100
  export { default as StateTimelineChart } from "./StateTimelineChart.svelte";
101
101
  export { default as StatusHistoryChart } from "./StatusHistoryChart.svelte";
102
102
  export { default as WaffleChart } from "./WaffleChart.svelte";
103
+ export { default as RibbonChart } from "./RibbonChart.svelte";
104
+ export { default as AnomalySwimLaneChart } from "./AnomalySwimLaneChart.svelte";
103
105
  export { default as GeoMap } from "./GeoMap.svelte";
104
106
  export { default as Header } from "./Header.svelte";
105
107
  export { default as HeatmapChart } from "./HeatmapChart.svelte";
@@ -226,6 +228,8 @@ export type { SolidGaugeTone, SolidGaugeThreshold, SolidGaugeFormat } from "./So
226
228
  export type { StateTimelineTone, StateTimelineSegment, StateTimelineSeries } from "./StateTimelineChart.svelte";
227
229
  export type { StatusHistoryTone, StatusHistoryBucket, StatusHistorySeries } from "./StatusHistoryChart.svelte";
228
230
  export type { WaffleTone, WaffleChartDatum } from "./WaffleChart.svelte";
231
+ export type { RibbonChartTone, RibbonChartDatum } from "./RibbonChart.svelte";
232
+ export type { AnomalySwimLaneTone, AnomalySwimLaneBucket, AnomalySwimLaneSeries } from "./AnomalySwimLaneChart.svelte";
229
233
  export type { FunnelChartTone, FunnelChartDatum } from "./FunnelChart.svelte";
230
234
  export type { ViolinChartDatum, ViolinChartTone } from "./ViolinChart.svelte";
231
235
  export type { WaterfallType, WaterfallChartDatum } from "./WaterfallChart.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":"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"}
package/dist/index.js CHANGED
@@ -90,6 +90,8 @@ export { default as SolidGaugeChart } from "./SolidGaugeChart.svelte";
90
90
  export { default as StateTimelineChart } from "./StateTimelineChart.svelte";
91
91
  export { default as StatusHistoryChart } from "./StatusHistoryChart.svelte";
92
92
  export { default as WaffleChart } from "./WaffleChart.svelte";
93
+ export { default as RibbonChart } from "./RibbonChart.svelte";
94
+ export { default as AnomalySwimLaneChart } from "./AnomalySwimLaneChart.svelte";
93
95
  export { default as GeoMap } from "./GeoMap.svelte";
94
96
  export { default as Header } from "./Header.svelte";
95
97
  export { default as HeatmapChart } from "./HeatmapChart.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-svelte",
3
- "version": "0.34.35",
3
+ "version": "0.34.36",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"