@sentropic/design-system-svelte 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,19 @@
25
25
  height?: number;
26
26
  orientation?: "vertical" | "horizontal";
27
27
  label: string;
28
+ /**
29
+ * Keys of the currently selected bars (a bar's key is its `label`).
30
+ * CONTROLLED — the parent owns the toggle; the component never stores
31
+ * selection. When non-empty the selected bars stay full opacity (+ accent)
32
+ * and the rest dim; when empty every bar is normal. Defaults to [].
33
+ */
34
+ selectedKeys?: string[];
35
+ /**
36
+ * Called when a bar is clicked / activated (Enter / Space) with the bar's
37
+ * key (its `label`). When provided the bars become focusable buttons; when
38
+ * omitted the chart is purely presentational (no interactivity, unchanged).
39
+ */
40
+ onSelect?: (key: string) => void;
28
41
  class?: string;
29
42
  };
30
43
 
@@ -34,6 +47,8 @@
34
47
  height = 240,
35
48
  orientation = "vertical",
36
49
  label,
50
+ selectedKeys = [],
51
+ onSelect,
37
52
  class: className
38
53
  }: BarChartProps = $props();
39
54
 
@@ -75,6 +90,20 @@
75
90
 
76
91
  let hoveredIndex: number | null = $state(null);
77
92
 
93
+ // Selection (controlled): fast lookup + "is any bar selected" flag. Only when
94
+ // something is selected do we dim the non-selected bars.
95
+ const selectedSet = $derived(new Set<string>(selectedKeys));
96
+ const hasSelection = $derived(selectedSet.size > 0);
97
+ const interactive = $derived(typeof onSelect === "function");
98
+
99
+ function handleBarKeydown(key: string, e: KeyboardEvent) {
100
+ if (e.key === "Enter" || e.key === " ") {
101
+ // preventDefault on Space so it activates rather than scrolling the page.
102
+ e.preventDefault();
103
+ onSelect?.(key);
104
+ }
105
+ }
106
+
78
107
  const scales = $derived.by(() => {
79
108
  const values = data.map((d) => d.value);
80
109
  const minRaw = Math.min(0, ...values);
@@ -272,15 +301,29 @@
272
301
  {/each}
273
302
 
274
303
  <!-- bars -->
304
+ <!-- A bar becomes an interactive button only when `onSelect` is provided;
305
+ the role + tabindex are then dynamic, which the static a11y check cannot
306
+ verify, hence the targeted ignore (mirrors SelectableRow). -->
275
307
  {#each bars as bar, i (bar.datum.label)}
308
+ {@const isSelected = selectedSet.has(bar.datum.label)}
309
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
276
310
  <rect
277
311
  class="st-barChart__bar st-barChart__bar--{bar.tone}"
312
+ class:st-barChart__bar--selected={isSelected}
313
+ class:st-barChart__bar--dim={hasSelection && !isSelected}
314
+ class:st-barChart__bar--interactive={interactive}
278
315
  x={bar.x}
279
316
  y={bar.y}
280
317
  width={bar.width}
281
318
  height={bar.height}
282
319
  rx="2"
283
320
  data-chart-index={i}
321
+ role={interactive ? "button" : undefined}
322
+ tabindex={interactive ? 0 : undefined}
323
+ aria-pressed={interactive ? isSelected : undefined}
324
+ aria-label={interactive ? `${bar.datum.label}: ${bar.datum.value}` : undefined}
325
+ onclick={interactive ? () => onSelect?.(bar.datum.label) : undefined}
326
+ onkeydown={interactive ? (e) => handleBarKeydown(bar.datum.label, e) : undefined}
284
327
  />
285
328
  {/each}
286
329
  </svg>
@@ -339,13 +382,38 @@
339
382
 
340
383
  .st-barChart__bar {
341
384
  cursor: pointer;
342
- transition: opacity 120ms ease;
385
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
343
386
  }
344
387
 
345
388
  .st-barChart__bar:hover {
346
389
  opacity: 0.82;
347
390
  }
348
391
 
392
+ /* Interactive (onSelect provided): the bar is a keyboard-activable button. */
393
+ .st-barChart__bar--interactive:focus-visible {
394
+ outline: 2px solid var(--st-semantic-border-interactive, var(--st-semantic-action-primary));
395
+ outline-offset: 1px;
396
+ }
397
+
398
+ /* Non-selected bars are dimmed while a selection is active. */
399
+ .st-barChart__bar--dim {
400
+ opacity: 0.45;
401
+ }
402
+ /* Hover still lifts a dimmed bar so it stays explorable. */
403
+ .st-barChart__bar--dim:hover {
404
+ opacity: 0.7;
405
+ }
406
+
407
+ /* Selected bar: full opacity + a contrast-safe accent stroke (two signals,
408
+ never a font/size reflow). Outranks the dim rule. */
409
+ .st-barChart__bar--selected,
410
+ .st-barChart__bar--selected:hover {
411
+ opacity: 1;
412
+ stroke: var(--st-semantic-border-interactive, var(--st-semantic-action-primary));
413
+ stroke-width: 2;
414
+ paint-order: stroke;
415
+ }
416
+
349
417
  .st-barChart__bar--category1 { fill: var(--st-semantic-data-category1); }
350
418
  .st-barChart__bar--category2 { fill: var(--st-semantic-data-category2); }
351
419
  .st-barChart__bar--category3 { fill: var(--st-semantic-data-category3); }
@@ -379,4 +447,8 @@
379
447
  .st-barChart__tooltipValue {
380
448
  opacity: 0.85;
381
449
  }
450
+
451
+ @media (prefers-reduced-motion: reduce) {
452
+ .st-barChart__bar { transition: none; }
453
+ }
382
454
  </style>
@@ -10,6 +10,19 @@ type BarChartProps = {
10
10
  height?: number;
11
11
  orientation?: "vertical" | "horizontal";
12
12
  label: string;
13
+ /**
14
+ * Keys of the currently selected bars (a bar's key is its `label`).
15
+ * CONTROLLED — the parent owns the toggle; the component never stores
16
+ * selection. When non-empty the selected bars stay full opacity (+ accent)
17
+ * and the rest dim; when empty every bar is normal. Defaults to [].
18
+ */
19
+ selectedKeys?: string[];
20
+ /**
21
+ * Called when a bar is clicked / activated (Enter / Space) with the bar's
22
+ * key (its `label`). When provided the bars become focusable buttons; when
23
+ * omitted the chart is purely presentational (no interactivity, unchanged).
24
+ */
25
+ onSelect?: (key: string) => void;
13
26
  class?: string;
14
27
  };
15
28
  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;CACrB,CAAC;AAMF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAqNJ,QAAA,MAAM,QAAQ,mDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"BarChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/BarChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAMF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAwOJ,QAAA,MAAM,QAAQ,mDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,95 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from "svelte";
3
+
4
+ export type FilterBarProps = {
5
+ /** Aria-label du groupe de filtres, ex "Filtres actifs". */
6
+ label: string;
7
+ /** Callback "tout effacer" — le bouton n'est rendu que si ce callback est fourni. */
8
+ onClearAll?: () => void;
9
+ /** Libellé du bouton "tout effacer". Défaut "Tout effacer". */
10
+ clearAllLabel?: string;
11
+ children?: Snippet;
12
+ class?: string;
13
+ };
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ let {
18
+ label,
19
+ onClearAll,
20
+ clearAllLabel = "Tout effacer",
21
+ children,
22
+ class: className
23
+ }: FilterBarProps = $props();
24
+
25
+ const classes = $derived(
26
+ ["st-filterBar", className].filter(Boolean).join(" ")
27
+ );
28
+ </script>
29
+
30
+ <div class={classes} role="group" aria-label={label}>
31
+ <div class="st-filterBar__pills">
32
+ {@render children?.()}
33
+ </div>
34
+ {#if onClearAll}
35
+ <button
36
+ type="button"
37
+ class="st-filterBar__clearAll"
38
+ onclick={onClearAll}
39
+ >
40
+ {clearAllLabel}
41
+ </button>
42
+ {/if}
43
+ </div>
44
+
45
+ <style>
46
+ .st-filterBar {
47
+ align-items: flex-start;
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ gap: var(--st-spacing-2, 0.5rem);
51
+ }
52
+
53
+ .st-filterBar__pills {
54
+ align-items: center;
55
+ display: flex;
56
+ flex: 1 1 auto;
57
+ flex-wrap: wrap;
58
+ gap: var(--st-spacing-2, 0.5rem);
59
+ }
60
+
61
+ /* Bouton "tout effacer" — variant discret (ghost-like, texte seul) */
62
+ .st-filterBar__clearAll {
63
+ align-items: center;
64
+ background: transparent;
65
+ border: 0;
66
+ border-radius: var(--st-radius-md, 0.375rem);
67
+ color: var(--st-semantic-text-link, #2563eb);
68
+ cursor: var(--st-cursor-interactive, pointer);
69
+ display: inline-flex;
70
+ font: inherit;
71
+ font-size: 0.8125rem;
72
+ gap: var(--st-spacing-1, 0.25rem);
73
+ padding: 0.3125rem var(--st-spacing-2, 0.5rem);
74
+ transition:
75
+ background-color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease),
76
+ color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
77
+ white-space: nowrap;
78
+ }
79
+
80
+ .st-filterBar__clearAll:hover {
81
+ background: var(--st-semantic-surface-subtle, #f8fafc);
82
+ color: var(--st-semantic-action-primaryHover, #1d4ed8);
83
+ }
84
+
85
+ .st-filterBar__clearAll:focus-visible {
86
+ outline: 2px solid var(--st-semantic-border-interactive, #2563eb);
87
+ outline-offset: 2px;
88
+ }
89
+
90
+ @media (prefers-reduced-motion: reduce) {
91
+ .st-filterBar__clearAll {
92
+ transition: none;
93
+ }
94
+ }
95
+ </style>
@@ -0,0 +1,15 @@
1
+ import type { Snippet } from "svelte";
2
+ export type FilterBarProps = {
3
+ /** Aria-label du groupe de filtres, ex "Filtres actifs". */
4
+ label: string;
5
+ /** Callback "tout effacer" — le bouton n'est rendu que si ce callback est fourni. */
6
+ onClearAll?: () => void;
7
+ /** Libellé du bouton "tout effacer". Défaut "Tout effacer". */
8
+ clearAllLabel?: string;
9
+ children?: Snippet;
10
+ class?: string;
11
+ };
12
+ declare const FilterBar: import("svelte").Component<FilterBarProps, {}, "">;
13
+ type FilterBar = ReturnType<typeof FilterBar>;
14
+ export default FilterBar;
15
+ //# sourceMappingURL=FilterBar.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBar.svelte.d.ts","sourceRoot":"","sources":["../src/lib/FilterBar.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCJ,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
@@ -0,0 +1,369 @@
1
+ <script lang="ts" module>
2
+ export type FilterPillTone = "neutral" | "success" | "warning" | "error" | "info";
3
+
4
+ export type FilterPillProps = {
5
+ /** Nom du champ/dimension affiché à gauche. */
6
+ field: string;
7
+ /** Résumé de la valeur sélectionnée, ex "France, Italie" ou "> 100". */
8
+ value: string;
9
+ /** Opérateur optionnel affiché entre field et value, ex "=", "in", "entre". */
10
+ operator?: string;
11
+ /** Pilule active (aria-pressed). Défaut true. */
12
+ active?: boolean;
13
+ /** Affiche le bouton ✕. Défaut true. */
14
+ removable?: boolean;
15
+ disabled?: boolean;
16
+ tone?: FilterPillTone;
17
+ onClick?: () => void;
18
+ onRemove?: () => void;
19
+ class?: string;
20
+ };
21
+ </script>
22
+
23
+ <script lang="ts">
24
+ import { X } from "@lucide/svelte";
25
+
26
+ let {
27
+ field,
28
+ value,
29
+ operator,
30
+ active = true,
31
+ removable = true,
32
+ disabled = false,
33
+ tone = "neutral",
34
+ onClick,
35
+ onRemove,
36
+ class: className
37
+ }: FilterPillProps = $props();
38
+
39
+ let bodyEl: HTMLButtonElement | null = $state(null);
40
+
41
+ const groupClasses = $derived(
42
+ [
43
+ "st-filterPill",
44
+ `st-filterPill--${tone}`,
45
+ active ? "st-filterPill--active" : null,
46
+ disabled ? "st-filterPill--disabled" : null,
47
+ className
48
+ ]
49
+ .filter(Boolean)
50
+ .join(" ")
51
+ );
52
+
53
+ // Fix #5 : transfert de focus quand le corps-bouton focalisé devient disabled.
54
+ $effect(() => {
55
+ if (typeof document === "undefined") return;
56
+ if (!disabled || !bodyEl) return;
57
+ const container = bodyEl.closest(".st-filterPill");
58
+ if (container && container.contains(document.activeElement)) {
59
+ // Trouver le prochain élément focusable en dehors du composant, sinon body.
60
+ const focusable = document.querySelectorAll<HTMLElement>(
61
+ 'a[href], button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])'
62
+ );
63
+ let transferred = false;
64
+ for (const el of Array.from(focusable)) {
65
+ if (!container.contains(el)) {
66
+ el.focus();
67
+ transferred = true;
68
+ break;
69
+ }
70
+ }
71
+ if (!transferred) {
72
+ (document.body as HTMLElement).focus();
73
+ }
74
+ }
75
+ });
76
+
77
+ function handleClick() {
78
+ if (disabled) return;
79
+ onClick?.();
80
+ }
81
+
82
+ function handleRemove() {
83
+ if (disabled) return;
84
+ onRemove?.();
85
+ }
86
+
87
+ // Suppr/Backspace sur le corps-bouton → onRemove (si removable).
88
+ // Enter/Space sont gérés nativement par <button> → pas de double-fire.
89
+ function handleBodyKeydown(e: KeyboardEvent) {
90
+ if (disabled) return;
91
+ if ((e.key === "Delete" || e.key === "Backspace") && removable) {
92
+ e.preventDefault();
93
+ onRemove?.();
94
+ }
95
+ }
96
+ </script>
97
+
98
+ <!--
99
+ Fix #1 : conteneur <span role="group"> NON focusable + deux <button> FRÈRES.
100
+ Plus d'imbrication role="button" avec <button> enfant.
101
+ -->
102
+ <span class={groupClasses} role="group" aria-label={`Filtre ${field}`}>
103
+ {#if onClick}
104
+ <button
105
+ bind:this={bodyEl}
106
+ type="button"
107
+ class="st-filterPill__body"
108
+ aria-pressed={active}
109
+ disabled={disabled || undefined}
110
+ onclick={handleClick}
111
+ onkeydown={handleBodyKeydown}
112
+ >
113
+ <span class="st-filterPill__field">{field}</span>
114
+ {#if operator}
115
+ <span class="st-filterPill__operator" aria-hidden="true">{operator}</span>
116
+ {/if}
117
+ <span class="st-filterPill__value">{value}</span>
118
+ </button>
119
+ {:else}
120
+ <span class="st-filterPill__body st-filterPill__body--static">
121
+ <span class="st-filterPill__field">{field}</span>
122
+ {#if operator}
123
+ <span class="st-filterPill__operator" aria-hidden="true">{operator}</span>
124
+ {/if}
125
+ <span class="st-filterPill__value">{value}</span>
126
+ </span>
127
+ {/if}
128
+ {#if removable}
129
+ <button
130
+ type="button"
131
+ class="st-filterPill__remove"
132
+ aria-label={`Retirer le filtre ${field}`}
133
+ disabled={disabled || undefined}
134
+ onclick={handleRemove}
135
+ >
136
+ <X size={12} strokeWidth={2.5} aria-hidden="true" />
137
+ </button>
138
+ {/if}
139
+ </span>
140
+
141
+ <style>
142
+ /* Conteneur groupe — pas focusable, pas de cursor global */
143
+ .st-filterPill {
144
+ align-items: center;
145
+ border-radius: var(--st-radius-pill, 999px);
146
+ display: inline-flex;
147
+ font-size: 0.8125rem;
148
+ font-weight: 500;
149
+ gap: 0;
150
+ line-height: 1;
151
+ transition:
152
+ background-color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease),
153
+ color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
154
+ user-select: none;
155
+ }
156
+
157
+ /* ---------- Tone : neutral (défaut) ---------- */
158
+ .st-filterPill--neutral {
159
+ background: var(--st-semantic-surface-subtle, #f8fafc);
160
+ color: var(--st-semantic-text-secondary, #475569);
161
+ border: 1px solid var(--st-semantic-border-interactive, #cbd5e1);
162
+ }
163
+
164
+ /* ---------- Tone : success ---------- */
165
+ .st-filterPill--success {
166
+ background: color-mix(in srgb, var(--st-semantic-feedback-success, #16a34a) 12%, white);
167
+ color: color-mix(in oklch, var(--st-semantic-feedback-success, #16a34a) 78%, black);
168
+ border: 1px solid color-mix(in srgb, var(--st-semantic-feedback-success, #16a34a) 40%, white);
169
+ }
170
+
171
+ /* ---------- Tone : warning ---------- */
172
+ .st-filterPill--warning {
173
+ background: color-mix(in srgb, var(--st-semantic-feedback-warning, #d97706) 12%, white);
174
+ color: color-mix(in oklch, var(--st-semantic-feedback-warning, #d97706) 78%, black);
175
+ border: 1px solid color-mix(in srgb, var(--st-semantic-feedback-warning, #d97706) 40%, white);
176
+ }
177
+
178
+ /* ---------- Tone : error ---------- */
179
+ .st-filterPill--error {
180
+ background: color-mix(in srgb, var(--st-semantic-feedback-error, #dc2626) 12%, white);
181
+ color: color-mix(in oklch, var(--st-semantic-feedback-error, #dc2626) 78%, black);
182
+ border: 1px solid color-mix(in srgb, var(--st-semantic-feedback-error, #dc2626) 40%, white);
183
+ }
184
+
185
+ /* ---------- Tone : info ---------- */
186
+ .st-filterPill--info {
187
+ background: color-mix(in srgb, var(--st-semantic-feedback-info, #2563eb) 12%, white);
188
+ color: color-mix(in oklch, var(--st-semantic-feedback-info, #2563eb) 78%, black);
189
+ border: 1px solid color-mix(in srgb, var(--st-semantic-feedback-info, #2563eb) 40%, white);
190
+ }
191
+
192
+ /* ---------- État actif — Fix #3 (contraste) + Fix #4 (tone honoré) ----------
193
+ L'état actif renforce le tone courant avec un fond SOLIDE opaque (no transparent)
194
+ et un texte contrasté apparié. La spécificité (0,2,0) surclasse les règles tone
195
+ (0,1,0) — tone est toujours honoré, actif l'intensifie.
196
+ */
197
+ .st-filterPill--neutral.st-filterPill--active {
198
+ background: var(
199
+ --st-component-filterPill-activeBackground,
200
+ color-mix(in oklch, var(--st-semantic-action-primary, #2563eb) 12%, white)
201
+ );
202
+ color: var(
203
+ --st-component-filterPill-activeText,
204
+ color-mix(in oklch, var(--st-semantic-action-primary, #2563eb) 78%, black)
205
+ );
206
+ border-color: color-mix(in oklch, var(--st-semantic-action-primary, #2563eb) 50%, white);
207
+ }
208
+
209
+ .st-filterPill--success.st-filterPill--active {
210
+ background: color-mix(in oklch, var(--st-semantic-feedback-success, #16a34a) 78%, black);
211
+ color: white;
212
+ border-color: color-mix(in oklch, var(--st-semantic-feedback-success, #16a34a) 78%, black);
213
+ }
214
+
215
+ .st-filterPill--warning.st-filterPill--active {
216
+ background: color-mix(in oklch, var(--st-semantic-feedback-warning, #d97706) 78%, black);
217
+ color: white;
218
+ border-color: color-mix(in oklch, var(--st-semantic-feedback-warning, #d97706) 78%, black);
219
+ }
220
+
221
+ .st-filterPill--error.st-filterPill--active {
222
+ background: color-mix(in oklch, var(--st-semantic-feedback-error, #dc2626) 78%, black);
223
+ color: white;
224
+ border-color: color-mix(in oklch, var(--st-semantic-feedback-error, #dc2626) 78%, black);
225
+ }
226
+
227
+ .st-filterPill--info.st-filterPill--active {
228
+ background: color-mix(in oklch, var(--st-semantic-feedback-info, #2563eb) 78%, black);
229
+ color: white;
230
+ border-color: color-mix(in oklch, var(--st-semantic-feedback-info, #2563eb) 78%, black);
231
+ }
232
+
233
+ /* Fallback moteurs sans color-mix */
234
+ @supports not (color: color-mix(in oklch, red, blue)) {
235
+ .st-filterPill--neutral.st-filterPill--active {
236
+ background: var(
237
+ --st-component-filterPill-activeBackground,
238
+ var(--st-semantic-surface-subtle, #eef2ff)
239
+ );
240
+ color: var(
241
+ --st-component-filterPill-activeText,
242
+ var(--st-semantic-action-primary, #1d4ed8)
243
+ );
244
+ }
245
+ .st-filterPill--success.st-filterPill--active {
246
+ background: var(--st-semantic-feedback-success, #16a34a);
247
+ color: white;
248
+ }
249
+ .st-filterPill--warning.st-filterPill--active {
250
+ background: var(--st-semantic-feedback-warning, #d97706);
251
+ color: white;
252
+ }
253
+ .st-filterPill--error.st-filterPill--active {
254
+ background: var(--st-semantic-feedback-error, #dc2626);
255
+ color: white;
256
+ }
257
+ .st-filterPill--info.st-filterPill--active {
258
+ background: var(--st-semantic-feedback-info, #2563eb);
259
+ color: white;
260
+ }
261
+ }
262
+
263
+ .st-filterPill--disabled {
264
+ cursor: var(--st-cursor-disabled, not-allowed);
265
+ opacity: 0.55;
266
+ }
267
+
268
+ /* Corps bouton / span statique */
269
+ .st-filterPill__body {
270
+ align-items: center;
271
+ background: transparent;
272
+ border: 0;
273
+ border-radius: var(--st-radius-pill, 999px) 0 0 var(--st-radius-pill, 999px);
274
+ color: inherit;
275
+ cursor: var(--st-cursor-interactive, pointer);
276
+ display: inline-flex;
277
+ font: inherit;
278
+ gap: var(--st-spacing-1, 0.25rem);
279
+ line-height: 1;
280
+ padding: 0.3125rem var(--st-spacing-1, 0.25rem) 0.3125rem var(--st-spacing-2, 0.5rem);
281
+ transition:
282
+ background-color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease),
283
+ color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
284
+ }
285
+
286
+ /* Corps statique (sans onClick) : arrondi complet si pas de ✕ */
287
+ .st-filterPill__body--static {
288
+ cursor: default;
289
+ padding: 0.3125rem var(--st-spacing-2, 0.5rem);
290
+ border-radius: var(--st-radius-pill, 999px);
291
+ }
292
+
293
+ /* Quand le ✕ est présent, le statique garde arrondi à gauche seulement */
294
+ .st-filterPill:has(.st-filterPill__remove) .st-filterPill__body--static {
295
+ border-radius: var(--st-radius-pill, 999px) 0 0 var(--st-radius-pill, 999px);
296
+ padding-right: var(--st-spacing-1, 0.25rem);
297
+ }
298
+
299
+ .st-filterPill__body:not(:disabled):hover {
300
+ opacity: 0.88;
301
+ }
302
+
303
+ .st-filterPill__body:focus-visible {
304
+ outline: 2px solid var(--st-semantic-border-interactive, var(--st-semantic-action-primary, #2563eb));
305
+ outline-offset: 2px;
306
+ border-radius: var(--st-radius-pill, 999px);
307
+ z-index: 1;
308
+ position: relative;
309
+ }
310
+
311
+ .st-filterPill__body:disabled {
312
+ cursor: var(--st-cursor-disabled, not-allowed);
313
+ }
314
+
315
+ .st-filterPill__operator {
316
+ color: var(--st-semantic-text-muted, #64748b);
317
+ font-size: 0.75em;
318
+ font-style: italic;
319
+ margin-inline: 0.125rem;
320
+ }
321
+
322
+ .st-filterPill__value {
323
+ max-width: 12rem;
324
+ overflow: hidden;
325
+ text-overflow: ellipsis;
326
+ white-space: nowrap;
327
+ }
328
+
329
+ .st-filterPill__remove {
330
+ align-items: center;
331
+ background: transparent;
332
+ border: 0;
333
+ border-radius: 0 var(--st-radius-pill, 999px) var(--st-radius-pill, 999px) 0;
334
+ color: inherit;
335
+ cursor: pointer;
336
+ display: inline-flex;
337
+ font: inherit;
338
+ height: 100%;
339
+ justify-content: center;
340
+ line-height: 1;
341
+ padding: 0.3125rem var(--st-spacing-2, 0.5rem) 0.3125rem var(--st-spacing-1, 0.25rem);
342
+ transition: background-color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
343
+ min-width: 1.75rem;
344
+ }
345
+
346
+ .st-filterPill__remove:hover:not(:disabled) {
347
+ background: color-mix(in srgb, currentColor 12%, transparent);
348
+ }
349
+
350
+ .st-filterPill__remove:focus-visible {
351
+ outline: 2px solid currentColor;
352
+ outline-offset: 1px;
353
+ border-radius: var(--st-radius-pill, 999px);
354
+ z-index: 1;
355
+ position: relative;
356
+ }
357
+
358
+ .st-filterPill__remove:disabled {
359
+ cursor: var(--st-cursor-disabled, not-allowed);
360
+ }
361
+
362
+ @media (prefers-reduced-motion: reduce) {
363
+ .st-filterPill,
364
+ .st-filterPill__body,
365
+ .st-filterPill__remove {
366
+ transition: none;
367
+ }
368
+ }
369
+ </style>
@@ -0,0 +1,22 @@
1
+ export type FilterPillTone = "neutral" | "success" | "warning" | "error" | "info";
2
+ export type FilterPillProps = {
3
+ /** Nom du champ/dimension affiché à gauche. */
4
+ field: string;
5
+ /** Résumé de la valeur sélectionnée, ex "France, Italie" ou "> 100". */
6
+ value: string;
7
+ /** Opérateur optionnel affiché entre field et value, ex "=", "in", "entre". */
8
+ operator?: string;
9
+ /** Pilule active (aria-pressed). Défaut true. */
10
+ active?: boolean;
11
+ /** Affiche le bouton ✕. Défaut true. */
12
+ removable?: boolean;
13
+ disabled?: boolean;
14
+ tone?: FilterPillTone;
15
+ onClick?: () => void;
16
+ onRemove?: () => void;
17
+ class?: string;
18
+ };
19
+ declare const FilterPill: import("svelte").Component<FilterPillProps, {}, "">;
20
+ type FilterPill = ReturnType<typeof FilterPill>;
21
+ export default FilterPill;
22
+ //# sourceMappingURL=FilterPill.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterPill.svelte.d.ts","sourceRoot":"","sources":["../src/lib/FilterPill.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgHJ,QAAA,MAAM,UAAU,qDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -0,0 +1,158 @@
1
+ <script lang="ts" module>
2
+ export type SelectionChipTone = "neutral" | "success" | "warning" | "error" | "info";
3
+
4
+ export type SelectionChipProps = {
5
+ /** Libellé de la dimension sélectionnée. */
6
+ label: string;
7
+ /** Nombre d'éléments sélectionnés — affiché "(N)" si fourni et Number.isFinite. */
8
+ count?: number;
9
+ tone?: SelectionChipTone;
10
+ /** Callback effacement — affiche le bouton ✕ si fourni. */
11
+ onClear?: () => void;
12
+ disabled?: boolean;
13
+ class?: string;
14
+ };
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ import { X } from "@lucide/svelte";
19
+
20
+ let {
21
+ label,
22
+ count,
23
+ tone = "neutral",
24
+ onClear,
25
+ disabled = false,
26
+ class: className
27
+ }: SelectionChipProps = $props();
28
+
29
+ const classes = $derived(
30
+ [
31
+ "st-selectionChip",
32
+ `st-selectionChip--${tone}`,
33
+ disabled ? "st-selectionChip--disabled" : null,
34
+ className
35
+ ]
36
+ .filter(Boolean)
37
+ .join(" ")
38
+ );
39
+
40
+ const showCount = $derived(count !== undefined && Number.isFinite(count));
41
+
42
+ function handleClear(e: MouseEvent) {
43
+ e.stopPropagation();
44
+ if (disabled) return;
45
+ onClear?.();
46
+ }
47
+ </script>
48
+
49
+ <span class={classes} aria-disabled={disabled ? "true" : undefined}>
50
+ <span class="st-selectionChip__label">{label}</span>
51
+ {#if showCount}
52
+ <span class="st-selectionChip__count" aria-label="({count})"
53
+ >({count})</span
54
+ >
55
+ {/if}
56
+ {#if onClear}
57
+ <button
58
+ type="button"
59
+ class="st-selectionChip__clear"
60
+ aria-label="Effacer {label}"
61
+ disabled={disabled}
62
+ onclick={handleClear}
63
+ >
64
+ <X size={11} strokeWidth={2.5} aria-hidden="true" />
65
+ </button>
66
+ {/if}
67
+ </span>
68
+
69
+ <style>
70
+ .st-selectionChip {
71
+ align-items: center;
72
+ border-radius: var(--st-radius-pill, 999px);
73
+ display: inline-flex;
74
+ font-size: 0.75rem;
75
+ font-weight: 600;
76
+ gap: var(--st-spacing-1, 0.25rem);
77
+ line-height: 1;
78
+ padding: 0.25rem var(--st-spacing-2, 0.5rem);
79
+ }
80
+
81
+ /* Tone: neutral */
82
+ .st-selectionChip--neutral {
83
+ background: var(--st-semantic-surface-subtle, #f8fafc);
84
+ color: var(--st-semantic-text-secondary, #475569);
85
+ }
86
+
87
+ /* Tone: success */
88
+ .st-selectionChip--success {
89
+ background: color-mix(in srgb, var(--st-semantic-feedback-success, #16a34a) 14%, white);
90
+ color: var(--st-semantic-feedback-success, #16a34a);
91
+ }
92
+
93
+ /* Tone: warning */
94
+ .st-selectionChip--warning {
95
+ background: color-mix(in srgb, var(--st-semantic-feedback-warning, #d97706) 14%, white);
96
+ color: var(--st-semantic-feedback-warning, #d97706);
97
+ }
98
+
99
+ /* Tone: error */
100
+ .st-selectionChip--error {
101
+ background: color-mix(in srgb, var(--st-semantic-feedback-error, #dc2626) 14%, white);
102
+ color: var(--st-semantic-feedback-error, #dc2626);
103
+ }
104
+
105
+ /* Tone: info */
106
+ .st-selectionChip--info {
107
+ background: color-mix(in srgb, var(--st-semantic-feedback-info, #2563eb) 14%, white);
108
+ color: var(--st-semantic-feedback-info, #2563eb);
109
+ }
110
+
111
+ .st-selectionChip--disabled {
112
+ cursor: var(--st-cursor-disabled, not-allowed);
113
+ opacity: 0.55;
114
+ }
115
+
116
+ .st-selectionChip__count {
117
+ color: inherit;
118
+ opacity: 0.75;
119
+ }
120
+
121
+ .st-selectionChip__clear {
122
+ align-items: center;
123
+ background: transparent;
124
+ border: 0;
125
+ border-radius: 50%;
126
+ color: inherit;
127
+ cursor: pointer;
128
+ display: inline-flex;
129
+ font: inherit;
130
+ font-size: 1em;
131
+ height: 1.25em;
132
+ justify-content: center;
133
+ line-height: 1;
134
+ margin-inline-start: 0.0625rem;
135
+ padding: 0;
136
+ transition: background-color var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
137
+ width: 1.25em;
138
+ }
139
+
140
+ .st-selectionChip__clear:hover:not(:disabled) {
141
+ background: var(--st-semantic-surface-subtle, #f1f5f9);
142
+ }
143
+
144
+ .st-selectionChip__clear:focus-visible {
145
+ outline: 2px solid currentColor;
146
+ outline-offset: 1px;
147
+ }
148
+
149
+ .st-selectionChip__clear:disabled {
150
+ cursor: var(--st-cursor-disabled, not-allowed);
151
+ }
152
+
153
+ @media (prefers-reduced-motion: reduce) {
154
+ .st-selectionChip__clear {
155
+ transition: none;
156
+ }
157
+ }
158
+ </style>
@@ -0,0 +1,16 @@
1
+ export type SelectionChipTone = "neutral" | "success" | "warning" | "error" | "info";
2
+ export type SelectionChipProps = {
3
+ /** Libellé de la dimension sélectionnée. */
4
+ label: string;
5
+ /** Nombre d'éléments sélectionnés — affiché "(N)" si fourni et Number.isFinite. */
6
+ count?: number;
7
+ tone?: SelectionChipTone;
8
+ /** Callback effacement — affiche le bouton ✕ si fourni. */
9
+ onClear?: () => void;
10
+ disabled?: boolean;
11
+ class?: string;
12
+ };
13
+ declare const SelectionChip: import("svelte").Component<SelectionChipProps, {}, "">;
14
+ type SelectionChip = ReturnType<typeof SelectionChip>;
15
+ export default SelectionChip;
16
+ //# sourceMappingURL=SelectionChip.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionChip.svelte.d.ts","sourceRoot":"","sources":["../src/lib/SelectionChip.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAErF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAuDJ,QAAA,MAAM,aAAa,wDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
package/dist/index.d.ts CHANGED
@@ -44,6 +44,8 @@ export { default as Drawer } from "./Drawer.svelte";
44
44
  export { default as Dropdown } from "./Dropdown.svelte";
45
45
  export { default as EmptyState } from "./EmptyState.svelte";
46
46
  export { default as FileUploader } from "./FileUploader.svelte";
47
+ export { default as FilterBar } from "./FilterBar.svelte";
48
+ export { default as FilterPill } from "./FilterPill.svelte";
47
49
  export { default as Flex } from "./Flex.svelte";
48
50
  export { default as Footer } from "./Footer.svelte";
49
51
  export { default as ForceGraph } from "./ForceGraph.svelte";
@@ -96,6 +98,7 @@ export { default as ScatterPlot } from "./ScatterPlot.svelte";
96
98
  export { default as Search } from "./Search.svelte";
97
99
  export { default as Select } from "./Select.svelte";
98
100
  export { default as SelectableRow } from "./SelectableRow.svelte";
101
+ export { default as SelectionChip } from "./SelectionChip.svelte";
99
102
  export { default as SelectableList } from "./SelectableList.svelte";
100
103
  export { default as SideNav } from "./SideNav.svelte";
101
104
  export { default as SkeletonText } from "./SkeletonText.svelte";
@@ -207,4 +210,7 @@ export type { TypographyVariant, TypographyWeight, TypographyTone, TypographyAli
207
210
  export type { StepperStep, StepperOrientation } from "./Stepper.svelte";
208
211
  export type { PortalProps } from "./Portal.svelte";
209
212
  export type { PopperProps, PopperPlacement, PopperStrategy } from "./Popper.svelte";
213
+ export type { FilterPillProps, FilterPillTone } from "./FilterPill.svelte";
214
+ export type { FilterBarProps } from "./FilterBar.svelte";
215
+ export type { SelectionChipProps, SelectionChipTone } from "./SelectionChip.svelte";
210
216
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -44,6 +44,8 @@ export { default as Drawer } from "./Drawer.svelte";
44
44
  export { default as Dropdown } from "./Dropdown.svelte";
45
45
  export { default as EmptyState } from "./EmptyState.svelte";
46
46
  export { default as FileUploader } from "./FileUploader.svelte";
47
+ export { default as FilterBar } from "./FilterBar.svelte";
48
+ export { default as FilterPill } from "./FilterPill.svelte";
47
49
  export { default as Flex } from "./Flex.svelte";
48
50
  export { default as Footer } from "./Footer.svelte";
49
51
  export { default as ForceGraph } from "./ForceGraph.svelte";
@@ -96,6 +98,7 @@ export { default as ScatterPlot } from "./ScatterPlot.svelte";
96
98
  export { default as Search } from "./Search.svelte";
97
99
  export { default as Select } from "./Select.svelte";
98
100
  export { default as SelectableRow } from "./SelectableRow.svelte";
101
+ export { default as SelectionChip } from "./SelectionChip.svelte";
99
102
  export { default as SelectableList } from "./SelectableList.svelte";
100
103
  export { default as SideNav } from "./SideNav.svelte";
101
104
  export { default as SkeletonText } from "./SkeletonText.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-svelte",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"