@sentropic/design-system-svelte 0.24.0 → 0.25.1

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,218 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from "svelte";
3
+
4
+ export interface AppHeaderProps {
5
+ /**
6
+ * Force le mode compact (burger). Calque la source : le burger est à GAUCHE
7
+ * et la nav desktop est masquée quand `compact` est vrai.
8
+ */
9
+ compact?: boolean;
10
+ /** État ouvert du panneau burger (contrôlé). */
11
+ menuOpen?: boolean;
12
+ /** Callback de bascule du burger (clic sur le bouton compact). */
13
+ onMenuToggle?: () => void;
14
+ /** aria-label du bouton burger. */
15
+ menuLabel?: string;
16
+ /**
17
+ * Id du tiroir, partagé entre `aria-controls` (burger) et `id` (drawer).
18
+ * Auto-généré et stable si non fourni.
19
+ */
20
+ drawerId?: string;
21
+ /** Logo (décision actée : logo SENT + sous-titre). */
22
+ logo?: Snippet;
23
+ /** Liens de navigation (rendus dans le <nav> desktop). */
24
+ nav?: Snippet;
25
+ /** Contenu à droite (typiquement LanguageToggle + IdentityMenu). */
26
+ actions?: Snippet;
27
+ /** Contenu du tiroir compact (nav + langue + identité en accordéon). */
28
+ drawer?: Snippet;
29
+ class?: string;
30
+ }
31
+
32
+ // Compteur module pour générer un id de tiroir stable, déterministe et
33
+ // SSR-safe (pas de crypto). Aligné sur le pattern des 3 fw.
34
+ let appHeaderIdCounter = 0;
35
+ function nextAppHeaderId(): number {
36
+ return ++appHeaderIdCounter;
37
+ }
38
+ </script>
39
+
40
+ <script lang="ts">
41
+ import { untrack } from "svelte";
42
+ import { Menu, X } from "@lucide/svelte";
43
+
44
+ let {
45
+ compact = false,
46
+ menuOpen = false,
47
+ onMenuToggle,
48
+ menuLabel = "Menu",
49
+ drawerId,
50
+ logo,
51
+ nav,
52
+ actions,
53
+ drawer,
54
+ class: className,
55
+ }: AppHeaderProps = $props();
56
+
57
+ // Id stable du tiroir : prop fournie sinon compteur module (SSR-safe, sans
58
+ // crypto). Capturé une seule fois (untrack) : un id stable ne doit pas réagir.
59
+ const resolvedDrawerId = untrack(
60
+ () => drawerId ?? `st-appHeader-drawer-${nextAppHeaderId()}`,
61
+ );
62
+
63
+ const classes = () => ["st-appHeader", className].filter(Boolean).join(" ");
64
+ </script>
65
+
66
+ <header class={classes()}>
67
+ <div class="st-appHeader__bar">
68
+ <!-- Burger à GAUCHE (calque exact de la source ~L176-191). -->
69
+ {#if compact}
70
+ <div class="st-appHeader__burger">
71
+ <button
72
+ type="button"
73
+ class="st-appHeader__burgerButton"
74
+ onclick={onMenuToggle}
75
+ aria-label={menuLabel}
76
+ aria-expanded={menuOpen}
77
+ aria-controls={resolvedDrawerId}
78
+ aria-haspopup="menu"
79
+ >
80
+ {#if menuOpen}
81
+ <X class="st-appHeader__burgerIcon" size={20} aria-hidden="true" />
82
+ {:else}
83
+ <Menu class="st-appHeader__burgerIcon" size={20} aria-hidden="true" />
84
+ {/if}
85
+ </button>
86
+ </div>
87
+ {:else}
88
+ <!-- Nav desktop (masquée en mode compact). -->
89
+ <nav class="st-appHeader__nav" aria-label="Primary">
90
+ {#if nav}{@render nav()}{/if}
91
+ </nav>
92
+ {/if}
93
+
94
+ {#if logo}
95
+ <div class="st-appHeader__logo">{@render logo()}</div>
96
+ {/if}
97
+
98
+ <!-- Contrôles de droite (masqués en mode compact). -->
99
+ {#if !compact}
100
+ <div class="st-appHeader__actions">
101
+ {#if actions}{@render actions()}{/if}
102
+ </div>
103
+ {/if}
104
+ </div>
105
+ </header>
106
+
107
+ {#if compact && menuOpen && drawer}
108
+ <button
109
+ type="button"
110
+ class="st-appHeader__scrim"
111
+ aria-label={menuLabel}
112
+ onclick={onMenuToggle}
113
+ ></button>
114
+ <aside id={resolvedDrawerId} class="st-appHeader__drawer">
115
+ {@render drawer()}
116
+ </aside>
117
+ {/if}
118
+
119
+ <style>
120
+ .st-appHeader {
121
+ background: var(--st-semantic-surface-default);
122
+ border-bottom: 1px solid var(--st-semantic-border-subtle);
123
+ color: var(--st-semantic-text-primary);
124
+ font-family: var(--st-font-sans);
125
+ width: 100%;
126
+ }
127
+
128
+ .st-appHeader__bar {
129
+ align-items: center;
130
+ display: flex;
131
+ gap: var(--st-spacing-4, 1rem);
132
+ height: 3.5rem;
133
+ justify-content: space-between;
134
+ margin: 0 auto;
135
+ max-width: 80rem;
136
+ padding: 0 var(--st-spacing-4, 1rem);
137
+ width: 100%;
138
+ }
139
+
140
+ .st-appHeader__nav {
141
+ align-items: center;
142
+ display: flex;
143
+ flex: 1 1 auto;
144
+ flex-wrap: wrap;
145
+ font-size: 0.875rem;
146
+ font-weight: 500;
147
+ gap: var(--st-spacing-4, 1rem);
148
+ min-width: 0;
149
+ }
150
+
151
+ .st-appHeader__burger {
152
+ align-items: center;
153
+ display: flex;
154
+ flex: 1 1 auto;
155
+ justify-content: flex-start;
156
+ }
157
+
158
+ .st-appHeader__burgerButton {
159
+ align-items: center;
160
+ background: transparent;
161
+ border: 0;
162
+ border-radius: var(--st-radius-sm, 0.375rem);
163
+ color: var(--st-semantic-text-primary);
164
+ cursor: pointer;
165
+ display: inline-flex;
166
+ justify-content: center;
167
+ padding: var(--st-spacing-2, 0.5rem);
168
+ }
169
+
170
+ .st-appHeader__burgerButton:hover {
171
+ background: var(--st-semantic-surface-subtle);
172
+ }
173
+
174
+ .st-appHeader__burgerButton:focus-visible {
175
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
176
+ outline: none;
177
+ }
178
+
179
+ .st-appHeader__burgerIcon {
180
+ display: block;
181
+ }
182
+
183
+ .st-appHeader__logo {
184
+ align-items: center;
185
+ display: inline-flex;
186
+ flex: 0 0 auto;
187
+ }
188
+
189
+ .st-appHeader__actions {
190
+ align-items: center;
191
+ display: flex;
192
+ flex: 0 0 auto;
193
+ gap: var(--st-spacing-3, 0.75rem);
194
+ }
195
+
196
+ .st-appHeader__scrim {
197
+ background: transparent;
198
+ border: 0;
199
+ cursor: default;
200
+ inset: 0;
201
+ padding: 0;
202
+ position: fixed;
203
+ z-index: var(--st-zindex-overlay, 80);
204
+ }
205
+
206
+ .st-appHeader__drawer {
207
+ background: var(--st-semantic-surface-default);
208
+ border: 1px solid var(--st-semantic-border-subtle);
209
+ box-shadow: var(--st-shadow-medium, 0 8px 24px rgb(15 23 42 / 0.12));
210
+ left: 0;
211
+ max-height: 100vh;
212
+ overflow-y: auto;
213
+ position: fixed;
214
+ top: 0;
215
+ width: min(22rem, 85vw);
216
+ z-index: calc(var(--st-zindex-overlay, 80) + 10);
217
+ }
218
+ </style>
@@ -0,0 +1,32 @@
1
+ import type { Snippet } from "svelte";
2
+ export interface AppHeaderProps {
3
+ /**
4
+ * Force le mode compact (burger). Calque la source : le burger est à GAUCHE
5
+ * et la nav desktop est masquée quand `compact` est vrai.
6
+ */
7
+ compact?: boolean;
8
+ /** État ouvert du panneau burger (contrôlé). */
9
+ menuOpen?: boolean;
10
+ /** Callback de bascule du burger (clic sur le bouton compact). */
11
+ onMenuToggle?: () => void;
12
+ /** aria-label du bouton burger. */
13
+ menuLabel?: string;
14
+ /**
15
+ * Id du tiroir, partagé entre `aria-controls` (burger) et `id` (drawer).
16
+ * Auto-généré et stable si non fourni.
17
+ */
18
+ drawerId?: string;
19
+ /** Logo (décision actée : logo SENT + sous-titre). */
20
+ logo?: Snippet;
21
+ /** Liens de navigation (rendus dans le <nav> desktop). */
22
+ nav?: Snippet;
23
+ /** Contenu à droite (typiquement LanguageToggle + IdentityMenu). */
24
+ actions?: Snippet;
25
+ /** Contenu du tiroir compact (nav + langue + identité en accordéon). */
26
+ drawer?: Snippet;
27
+ class?: string;
28
+ }
29
+ declare const AppHeader: import("svelte").Component<AppHeaderProps, {}, "">;
30
+ type AppHeader = ReturnType<typeof AppHeader>;
31
+ export default AppHeader;
32
+ //# sourceMappingURL=AppHeader.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppHeader.svelte.d.ts","sourceRoot":"","sources":["../src/lib/AppHeader.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0DAA0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqFH,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
@@ -0,0 +1,477 @@
1
+ <script lang="ts" module>
2
+ export interface IdentityUser {
3
+ displayName: string;
4
+ email?: string;
5
+ id?: string;
6
+ }
7
+
8
+ export interface IdentityMenuProps {
9
+ /** Identité connectée (contrôlé). `null` quand anonyme. */
10
+ user?: IdentityUser | null;
11
+ /** État d'authentification (contrôlé : aucun état auth interne). */
12
+ isAuthenticated?: boolean;
13
+ /**
14
+ * État ouvert du dropdown (optionnellement contrôlé). Si fourni, le
15
+ * composant suit la valeur du parent ; sinon il gère un état interne.
16
+ * Reste $bindable pour l'idiome Svelte.
17
+ */
18
+ open?: boolean;
19
+ /**
20
+ * Notifié à chaque demande de changement d'état ouvert (pattern
21
+ * contrôlé/non-contrôlé, aligné React/Vue). Le composant met aussi à jour
22
+ * `open` (bindable) quand il est non contrôlé.
23
+ */
24
+ onOpenChange?: (open: boolean) => void;
25
+ /** Notifié au clic « Se connecter ». */
26
+ onLogin?: () => void;
27
+ /** Notifié au clic « Se déconnecter ». */
28
+ onLogout?: () => void;
29
+ /** Lien « Appareils ». */
30
+ devicesHref?: string;
31
+ /** Lien « Paramètres ». */
32
+ settingsHref?: string;
33
+ /** Libellé du bouton de connexion. */
34
+ loginLabel?: string;
35
+ /** Libellé « Appareils ». */
36
+ devicesLabel?: string;
37
+ /** Libellé « Paramètres ». */
38
+ settingsLabel?: string;
39
+ /** Libellé « Se déconnecter ». */
40
+ logoutLabel?: string;
41
+ /**
42
+ * Variante d'affichage :
43
+ * - `dropdown` (défaut) : déclencheur + menu flottant (header desktop).
44
+ * - `accordion` : déclencheur + liste inline (tiroir mobile).
45
+ */
46
+ variant?: "dropdown" | "accordion";
47
+ class?: string;
48
+ }
49
+
50
+ /** Première lettre du displayName, en majuscule (calque de la source). */
51
+ export function identityInitial(user: IdentityUser | null | undefined): string {
52
+ const source = user?.displayName || user?.email || "U";
53
+ return source.charAt(0).toUpperCase();
54
+ }
55
+ </script>
56
+
57
+ <script lang="ts">
58
+ import { ChevronDown } from "@lucide/svelte";
59
+
60
+ let {
61
+ user = null,
62
+ isAuthenticated = false,
63
+ open = $bindable(),
64
+ onOpenChange,
65
+ onLogin,
66
+ onLogout,
67
+ devicesHref = "#",
68
+ settingsHref = "#",
69
+ loginLabel = "Se connecter",
70
+ devicesLabel = "Appareils",
71
+ settingsLabel = "Paramètres",
72
+ logoutLabel = "Se déconnecter",
73
+ variant = "dropdown",
74
+ class: className,
75
+ }: IdentityMenuProps = $props();
76
+
77
+ let root: HTMLDivElement | undefined = $state();
78
+ let triggerEl: HTMLButtonElement | undefined = $state();
79
+
80
+ // Pattern contrôlé/non-contrôlé, IDENTIQUE aux 3 fw : si `open` est fourni en
81
+ // prop, le parent contrôle ; sinon un état interne prend le relais.
82
+ let internalOpen = $state(false);
83
+ const isOpen = $derived(open ?? internalOpen);
84
+ // Quel item focuser à la prochaine ouverture : "first" (défaut) ou "last"
85
+ // (ArrowUp depuis le trigger). Lu par l'$effect d'ouverture.
86
+ let pendingFocus: "first" | "last" = "first";
87
+
88
+ function setOpen(next: boolean) {
89
+ if (open === undefined) internalOpen = next;
90
+ else open = next; // bindable : reflète aussi côté parent en mode contrôlé
91
+ onOpenChange?.(next);
92
+ }
93
+
94
+ const classes = () => ["st-identityMenu", className].filter(Boolean).join(" ");
95
+ const initial = $derived(identityInitial(user));
96
+ const displayName = $derived(user?.displayName || user?.email || "User");
97
+
98
+ function getMenuItems(): HTMLElement[] {
99
+ return Array.from(
100
+ root?.querySelectorAll<HTMLElement>('[role="menuitem"]') ?? []
101
+ );
102
+ }
103
+
104
+ function focusItem(index: number) {
105
+ const items = getMenuItems();
106
+ if (!items.length) return;
107
+ const len = items.length;
108
+ const target = ((index % len) + len) % len;
109
+ items[target]?.focus();
110
+ }
111
+
112
+ function toggle() {
113
+ setOpen(!isOpen);
114
+ }
115
+
116
+ function closeAndFocusTrigger() {
117
+ setOpen(false);
118
+ triggerEl?.focus();
119
+ }
120
+
121
+ function onTriggerKeydown(event: KeyboardEvent) {
122
+ if (event.key === "ArrowDown" || event.key === "Enter" || event.key === " ") {
123
+ event.preventDefault();
124
+ pendingFocus = "first";
125
+ if (!isOpen) setOpen(true);
126
+ else queueMicrotask(() => focusItem(0));
127
+ return;
128
+ }
129
+ if (event.key === "ArrowUp") {
130
+ event.preventDefault();
131
+ pendingFocus = "last";
132
+ if (!isOpen) setOpen(true);
133
+ else queueMicrotask(() => focusItem(-1));
134
+ return;
135
+ }
136
+ if (event.key === "Escape" && isOpen) {
137
+ // Esc ferme aussi depuis le trigger (global au composant ouvert).
138
+ event.preventDefault();
139
+ closeAndFocusTrigger();
140
+ }
141
+ }
142
+
143
+ function onMenuKeydown(event: KeyboardEvent) {
144
+ const items = getMenuItems();
145
+ const current = items.indexOf(document.activeElement as HTMLElement);
146
+ if (event.key === "ArrowDown") {
147
+ event.preventDefault();
148
+ focusItem(current + 1);
149
+ return;
150
+ }
151
+ if (event.key === "ArrowUp") {
152
+ event.preventDefault();
153
+ focusItem(current - 1);
154
+ return;
155
+ }
156
+ if (event.key === "Home") {
157
+ event.preventDefault();
158
+ focusItem(0);
159
+ return;
160
+ }
161
+ if (event.key === "End") {
162
+ event.preventDefault();
163
+ focusItem(items.length - 1);
164
+ return;
165
+ }
166
+ if (event.key === "Tab") {
167
+ // Piège de focus : Tab/Shift+Tab bouclent DANS le menu.
168
+ if (!items.length) return;
169
+ event.preventDefault();
170
+ focusItem(current + (event.shiftKey ? -1 : 1));
171
+ return;
172
+ }
173
+ if (event.key === "Escape") {
174
+ event.preventDefault();
175
+ closeAndFocusTrigger();
176
+ }
177
+ }
178
+
179
+ // Enter/Space activent l'item courant. Sur un <a>, on suit le href en
180
+ // déclenchant un clic natif (preventDefault sur Space pour éviter le scroll).
181
+ function onItemKeydown(event: KeyboardEvent) {
182
+ if (event.key === "Enter" || event.key === " ") {
183
+ event.preventDefault();
184
+ (event.currentTarget as HTMLElement).click();
185
+ }
186
+ }
187
+
188
+ function selectAndClose() {
189
+ setOpen(false);
190
+ triggerEl?.focus();
191
+ }
192
+
193
+ function handleLogout() {
194
+ setOpen(false);
195
+ triggerEl?.focus();
196
+ onLogout?.();
197
+ }
198
+
199
+ // À l'ouverture : focus le 1er item (ou le dernier sur ArrowUp). Client-only
200
+ // (guard typeof document). Restaure `pendingFocus` à "first" ensuite.
201
+ $effect(() => {
202
+ if (isOpen && typeof document !== "undefined") {
203
+ const which = pendingFocus;
204
+ queueMicrotask(() => focusItem(which === "last" ? -1 : 0));
205
+ pendingFocus = "first";
206
+ }
207
+ });
208
+ </script>
209
+
210
+ <svelte:window
211
+ onpointerdown={(e) => {
212
+ if (isOpen && root && e.target instanceof Node && !root.contains(e.target)) {
213
+ // Clic extérieur : ferme ET restaure le focus sur le trigger.
214
+ setOpen(false);
215
+ triggerEl?.focus();
216
+ }
217
+ }}
218
+ />
219
+
220
+ {#if isAuthenticated && user}
221
+ <div
222
+ class={classes()}
223
+ class:st-identityMenu--accordion={variant === "accordion"}
224
+ bind:this={root}
225
+ >
226
+ <button
227
+ type="button"
228
+ class="st-identityMenu__trigger"
229
+ bind:this={triggerEl}
230
+ aria-haspopup="menu"
231
+ aria-expanded={isOpen}
232
+ aria-label={`Compte de ${displayName}`}
233
+ onclick={toggle}
234
+ onkeydown={onTriggerKeydown}
235
+ >
236
+ <span class="st-identityMenu__avatar" aria-hidden="true">{initial}</span>
237
+ <span class="st-identityMenu__meta">
238
+ <span class="st-identityMenu__name">{displayName}</span>
239
+ {#if variant === "accordion" && user.email}
240
+ <span class="st-identityMenu__email">{user.email}</span>
241
+ {/if}
242
+ </span>
243
+ <ChevronDown
244
+ class={`st-identityMenu__chevron${isOpen ? " st-identityMenu__chevron--open" : ""}`}
245
+ size={16}
246
+ aria-hidden="true"
247
+ />
248
+ </button>
249
+
250
+ {#if isOpen}
251
+ <div
252
+ class="st-identityMenu__menu"
253
+ role="menu"
254
+ tabindex="-1"
255
+ aria-label={`Menu de ${displayName}`}
256
+ onkeydown={onMenuKeydown}
257
+ >
258
+ <a
259
+ href={devicesHref}
260
+ class="st-identityMenu__item"
261
+ role="menuitem"
262
+ tabindex="-1"
263
+ onclick={selectAndClose}
264
+ onkeydown={onItemKeydown}
265
+ >
266
+ {devicesLabel}
267
+ </a>
268
+ <a
269
+ href={settingsHref}
270
+ class="st-identityMenu__item"
271
+ role="menuitem"
272
+ tabindex="-1"
273
+ onclick={selectAndClose}
274
+ onkeydown={onItemKeydown}
275
+ >
276
+ {settingsLabel}
277
+ </a>
278
+ <div class="st-identityMenu__divider" role="separator" aria-hidden="true"></div>
279
+ <button
280
+ type="button"
281
+ class="st-identityMenu__item st-identityMenu__item--danger"
282
+ role="menuitem"
283
+ tabindex="-1"
284
+ onclick={handleLogout}
285
+ >
286
+ {logoutLabel}
287
+ </button>
288
+ </div>
289
+ {/if}
290
+ </div>
291
+ {:else}
292
+ <button
293
+ type="button"
294
+ class="st-identityMenu__login"
295
+ class:st-identityMenu__login--accordion={variant === "accordion"}
296
+ onclick={() => onLogin?.()}
297
+ >
298
+ {loginLabel}
299
+ </button>
300
+ {/if}
301
+
302
+ <style>
303
+ .st-identityMenu {
304
+ font-family: var(--st-font-sans);
305
+ position: relative;
306
+ }
307
+
308
+ .st-identityMenu--accordion {
309
+ width: 100%;
310
+ }
311
+
312
+ .st-identityMenu__trigger {
313
+ align-items: center;
314
+ background: transparent;
315
+ border: 0;
316
+ border-radius: var(--st-radius-sm, 0.375rem);
317
+ color: var(--st-semantic-text-primary);
318
+ cursor: pointer;
319
+ display: inline-flex;
320
+ font: inherit;
321
+ font-family: var(--st-font-sans);
322
+ font-size: 0.875rem;
323
+ font-weight: 500;
324
+ gap: var(--st-spacing-2, 0.5rem);
325
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-3, 0.75rem);
326
+ }
327
+
328
+ .st-identityMenu--accordion .st-identityMenu__trigger {
329
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
330
+ width: 100%;
331
+ }
332
+
333
+ .st-identityMenu__trigger:hover {
334
+ background: var(--st-semantic-surface-subtle);
335
+ }
336
+
337
+ .st-identityMenu__trigger:focus-visible {
338
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
339
+ outline: none;
340
+ }
341
+
342
+ .st-identityMenu__avatar {
343
+ align-items: center;
344
+ background: var(--st-semantic-action-primary);
345
+ border-radius: var(--st-radius-pill, 9999px);
346
+ color: var(--st-semantic-action-primaryText);
347
+ display: inline-flex;
348
+ flex: 0 0 auto;
349
+ font-weight: 500;
350
+ height: 2rem;
351
+ justify-content: center;
352
+ width: 2rem;
353
+ }
354
+
355
+ .st-identityMenu__meta {
356
+ display: grid;
357
+ gap: 0.05rem;
358
+ min-width: 0;
359
+ text-align: left;
360
+ }
361
+
362
+ .st-identityMenu--accordion .st-identityMenu__meta {
363
+ flex: 1 1 auto;
364
+ }
365
+
366
+ .st-identityMenu__name {
367
+ color: var(--st-semantic-text-primary);
368
+ overflow: hidden;
369
+ text-overflow: ellipsis;
370
+ white-space: nowrap;
371
+ }
372
+
373
+ .st-identityMenu__email {
374
+ color: var(--st-semantic-text-secondary);
375
+ font-size: 0.75rem;
376
+ overflow: hidden;
377
+ text-overflow: ellipsis;
378
+ white-space: nowrap;
379
+ }
380
+
381
+ .st-identityMenu :global(.st-identityMenu__chevron) {
382
+ color: var(--st-semantic-text-secondary);
383
+ flex: 0 0 auto;
384
+ transition: transform var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
385
+ }
386
+
387
+ .st-identityMenu :global(.st-identityMenu__chevron--open) {
388
+ transform: rotate(180deg);
389
+ }
390
+
391
+ .st-identityMenu__menu {
392
+ background: var(--st-semantic-surface-raised);
393
+ border: 1px solid var(--st-semantic-border-subtle);
394
+ border-radius: var(--st-radius-md, 0.375rem);
395
+ box-shadow: var(--st-shadow-medium, 0 8px 24px rgb(15 23 42 / 0.12));
396
+ display: grid;
397
+ margin-top: var(--st-spacing-2, 0.5rem);
398
+ min-width: 12rem;
399
+ padding: var(--st-spacing-1, 0.25rem);
400
+ position: absolute;
401
+ right: 0;
402
+ top: 100%;
403
+ z-index: var(--st-zindex-overlay, 80);
404
+ }
405
+
406
+ /* En accordéon, le menu est inline (pas flottant). */
407
+ .st-identityMenu--accordion .st-identityMenu__menu {
408
+ box-shadow: none;
409
+ margin-top: var(--st-spacing-1, 0.25rem);
410
+ position: static;
411
+ width: 100%;
412
+ }
413
+
414
+ .st-identityMenu__item {
415
+ background: transparent;
416
+ border: 0;
417
+ border-radius: var(--st-radius-sm, 0.375rem);
418
+ color: var(--st-semantic-text-primary);
419
+ cursor: pointer;
420
+ display: block;
421
+ font: inherit;
422
+ font-family: var(--st-font-sans);
423
+ font-size: 0.875rem;
424
+ font-weight: 500;
425
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
426
+ text-align: left;
427
+ text-decoration: none;
428
+ width: 100%;
429
+ }
430
+
431
+ .st-identityMenu__item:hover {
432
+ background: var(--st-semantic-surface-subtle);
433
+ }
434
+
435
+ .st-identityMenu__item:focus-visible {
436
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
437
+ outline: none;
438
+ }
439
+
440
+ .st-identityMenu__item--danger {
441
+ color: var(--st-semantic-action-danger);
442
+ }
443
+
444
+ .st-identityMenu__divider {
445
+ background: var(--st-semantic-border-subtle);
446
+ height: 1px;
447
+ margin: var(--st-spacing-1, 0.25rem) 0;
448
+ }
449
+
450
+ .st-identityMenu__login {
451
+ background: var(--st-semantic-action-primary);
452
+ border: 0;
453
+ border-radius: var(--st-radius-md, 0.375rem);
454
+ color: var(--st-semantic-action-primaryText);
455
+ cursor: pointer;
456
+ font: inherit;
457
+ font-family: var(--st-font-sans);
458
+ font-size: 0.875rem;
459
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-3, 0.75rem);
460
+ }
461
+
462
+ .st-identityMenu__login--accordion {
463
+ display: block;
464
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
465
+ text-align: center;
466
+ width: 100%;
467
+ }
468
+
469
+ .st-identityMenu__login:hover {
470
+ background: var(--st-semantic-action-primaryHover);
471
+ }
472
+
473
+ .st-identityMenu__login:focus-visible {
474
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
475
+ outline: none;
476
+ }
477
+ </style>
@@ -0,0 +1,52 @@
1
+ export interface IdentityUser {
2
+ displayName: string;
3
+ email?: string;
4
+ id?: string;
5
+ }
6
+ export interface IdentityMenuProps {
7
+ /** Identité connectée (contrôlé). `null` quand anonyme. */
8
+ user?: IdentityUser | null;
9
+ /** État d'authentification (contrôlé : aucun état auth interne). */
10
+ isAuthenticated?: boolean;
11
+ /**
12
+ * État ouvert du dropdown (optionnellement contrôlé). Si fourni, le
13
+ * composant suit la valeur du parent ; sinon il gère un état interne.
14
+ * Reste $bindable pour l'idiome Svelte.
15
+ */
16
+ open?: boolean;
17
+ /**
18
+ * Notifié à chaque demande de changement d'état ouvert (pattern
19
+ * contrôlé/non-contrôlé, aligné React/Vue). Le composant met aussi à jour
20
+ * `open` (bindable) quand il est non contrôlé.
21
+ */
22
+ onOpenChange?: (open: boolean) => void;
23
+ /** Notifié au clic « Se connecter ». */
24
+ onLogin?: () => void;
25
+ /** Notifié au clic « Se déconnecter ». */
26
+ onLogout?: () => void;
27
+ /** Lien « Appareils ». */
28
+ devicesHref?: string;
29
+ /** Lien « Paramètres ». */
30
+ settingsHref?: string;
31
+ /** Libellé du bouton de connexion. */
32
+ loginLabel?: string;
33
+ /** Libellé « Appareils ». */
34
+ devicesLabel?: string;
35
+ /** Libellé « Paramètres ». */
36
+ settingsLabel?: string;
37
+ /** Libellé « Se déconnecter ». */
38
+ logoutLabel?: string;
39
+ /**
40
+ * Variante d'affichage :
41
+ * - `dropdown` (défaut) : déclencheur + menu flottant (header desktop).
42
+ * - `accordion` : déclencheur + liste inline (tiroir mobile).
43
+ */
44
+ variant?: "dropdown" | "accordion";
45
+ class?: string;
46
+ }
47
+ /** Première lettre du displayName, en majuscule (calque de la source). */
48
+ export declare function identityInitial(user: IdentityUser | null | undefined): string;
49
+ declare const IdentityMenu: import("svelte").Component<IdentityMenuProps, {}, "open">;
50
+ type IdentityMenu = ReturnType<typeof IdentityMenu>;
51
+ export default IdentityMenu;
52
+ //# sourceMappingURL=IdentityMenu.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityMenu.svelte.d.ts","sourceRoot":"","sources":["../src/lib/IdentityMenu.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG7E;AA8MH,QAAA,MAAM,YAAY,2DAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,230 @@
1
+ <script lang="ts" module>
2
+ export type LanguageToggleLocale = "fr" | "en";
3
+
4
+ // Compteur module pour un id de <select> stable, déterministe et SSR-safe.
5
+ let languageToggleIdCounter = 0;
6
+ function nextLanguageToggleId(): number {
7
+ return ++languageToggleIdCounter;
8
+ }
9
+
10
+ export interface LanguageToggleProps {
11
+ /** Langue courante (contrôlé). */
12
+ locale?: LanguageToggleLocale;
13
+ /** Notifié au changement de langue. */
14
+ onLocaleChange?: (locale: LanguageToggleLocale) => void;
15
+ /** Libellé FR (i18n-agnostique : fourni par le parent). */
16
+ frLabel?: string;
17
+ /** Libellé EN (i18n-agnostique : fourni par le parent). */
18
+ enLabel?: string;
19
+ /** Libellé du sélecteur (associé via <label for> + aria-label). */
20
+ label?: string;
21
+ /** Id du <select> ; auto-généré et stable si non fourni. */
22
+ selectId?: string;
23
+ /**
24
+ * Variante d'affichage :
25
+ * - `select` (défaut) : le <select> de la source (header desktop).
26
+ * - `accordion` : la liste de boutons du tiroir mobile.
27
+ */
28
+ variant?: "select" | "accordion";
29
+ /** Titre de la section accordéon. */
30
+ accordionLabel?: string;
31
+ class?: string;
32
+ }
33
+ </script>
34
+
35
+ <script lang="ts">
36
+ import { untrack } from "svelte";
37
+ import { ChevronDown } from "@lucide/svelte";
38
+
39
+ let {
40
+ locale = "fr",
41
+ onLocaleChange,
42
+ frLabel = "FR",
43
+ enLabel = "EN",
44
+ label = "Langue",
45
+ selectId,
46
+ variant = "select",
47
+ accordionLabel = "Langue",
48
+ class: className,
49
+ }: LanguageToggleProps = $props();
50
+
51
+ // Capturé une seule fois (untrack) : un id stable ne doit pas réagir.
52
+ const resolvedSelectId = untrack(
53
+ () => selectId ?? `st-languageToggle-${nextLanguageToggleId()}`,
54
+ );
55
+
56
+ let open = $state(false);
57
+
58
+ const classes = () => ["st-languageToggle", className].filter(Boolean).join(" ");
59
+
60
+ function emit(next: LanguageToggleLocale) {
61
+ onLocaleChange?.(next);
62
+ }
63
+
64
+ function onSelectChange(event: Event) {
65
+ const value = (event.currentTarget as HTMLSelectElement).value as LanguageToggleLocale;
66
+ emit(value);
67
+ }
68
+ </script>
69
+
70
+ {#if variant === "accordion"}
71
+ <div class={classes()}>
72
+ <button
73
+ type="button"
74
+ class="st-languageToggle__accordionTrigger"
75
+ aria-expanded={open}
76
+ onclick={() => (open = !open)}
77
+ >
78
+ <span>{accordionLabel}</span>
79
+ <ChevronDown
80
+ class={`st-languageToggle__chevron${open ? " st-languageToggle__chevron--open" : ""}`}
81
+ size={16}
82
+ aria-hidden="true"
83
+ />
84
+ </button>
85
+ {#if open}
86
+ <div class="st-languageToggle__accordionPanel">
87
+ <button
88
+ type="button"
89
+ class="st-languageToggle__option"
90
+ class:st-languageToggle__option--active={locale === "fr"}
91
+ aria-current={locale === "fr" ? "true" : "false"}
92
+ onclick={() => emit("fr")}
93
+ >
94
+ {frLabel}
95
+ </button>
96
+ <button
97
+ type="button"
98
+ class="st-languageToggle__option"
99
+ class:st-languageToggle__option--active={locale === "en"}
100
+ aria-current={locale === "en" ? "true" : "false"}
101
+ onclick={() => emit("en")}
102
+ >
103
+ {enLabel}
104
+ </button>
105
+ </div>
106
+ {/if}
107
+ </div>
108
+ {:else}
109
+ <label class="st-languageToggle__srLabel" for={resolvedSelectId}>{label}</label>
110
+ <select
111
+ id={resolvedSelectId}
112
+ class={`st-languageToggle__select${className ? ` ${className}` : ""}`}
113
+ value={locale}
114
+ aria-label={label}
115
+ onchange={onSelectChange}
116
+ >
117
+ <option value="fr">{frLabel}</option>
118
+ <option value="en">{enLabel}</option>
119
+ </select>
120
+ {/if}
121
+
122
+ <style>
123
+ .st-languageToggle {
124
+ width: 100%;
125
+ }
126
+
127
+ /* Label associé au <select>, masqué visuellement (a11y : <label for>). */
128
+ .st-languageToggle__srLabel {
129
+ border: 0;
130
+ clip: rect(0 0 0 0);
131
+ height: 1px;
132
+ margin: -1px;
133
+ overflow: hidden;
134
+ padding: 0;
135
+ position: absolute;
136
+ white-space: nowrap;
137
+ width: 1px;
138
+ }
139
+
140
+ /* Variante <select> — calque du <select> source (header desktop). */
141
+ .st-languageToggle__select {
142
+ background: var(--st-semantic-surface-default);
143
+ border: 1px solid var(--st-semantic-border-subtle);
144
+ border-radius: var(--st-radius-md, 0.375rem);
145
+ color: var(--st-semantic-text-primary);
146
+ cursor: pointer;
147
+ font: inherit;
148
+ font-family: var(--st-font-sans);
149
+ font-size: 0.875rem;
150
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-2, 0.5rem);
151
+ }
152
+
153
+ .st-languageToggle__select:focus-visible {
154
+ border-color: var(--st-semantic-border-interactive);
155
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
156
+ outline: none;
157
+ }
158
+
159
+ /* Variante accordéon — calque du tiroir mobile source. */
160
+ .st-languageToggle__accordionTrigger {
161
+ align-items: center;
162
+ background: transparent;
163
+ border: 0;
164
+ border-radius: var(--st-radius-sm, 0.375rem);
165
+ color: var(--st-semantic-text-primary);
166
+ cursor: pointer;
167
+ display: flex;
168
+ font: inherit;
169
+ font-family: var(--st-font-sans);
170
+ font-size: 0.875rem;
171
+ font-weight: 500;
172
+ justify-content: space-between;
173
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
174
+ width: 100%;
175
+ }
176
+
177
+ .st-languageToggle__accordionTrigger:hover {
178
+ background: var(--st-semantic-surface-subtle);
179
+ }
180
+
181
+ .st-languageToggle__accordionTrigger:focus-visible {
182
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
183
+ outline: none;
184
+ }
185
+
186
+ .st-languageToggle :global(.st-languageToggle__chevron) {
187
+ color: var(--st-semantic-text-secondary);
188
+ transition: transform var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
189
+ }
190
+
191
+ .st-languageToggle :global(.st-languageToggle__chevron--open) {
192
+ transform: rotate(180deg);
193
+ }
194
+
195
+ .st-languageToggle__accordionPanel {
196
+ display: grid;
197
+ gap: var(--st-spacing-1, 0.25rem);
198
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-3, 0.75rem) var(--st-spacing-2, 0.5rem);
199
+ }
200
+
201
+ .st-languageToggle__option {
202
+ background: transparent;
203
+ border: 0;
204
+ border-radius: var(--st-radius-sm, 0.375rem);
205
+ color: var(--st-semantic-text-secondary);
206
+ cursor: pointer;
207
+ font: inherit;
208
+ font-family: var(--st-font-sans);
209
+ font-size: 0.875rem;
210
+ font-weight: 500;
211
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
212
+ text-align: left;
213
+ width: 100%;
214
+ }
215
+
216
+ .st-languageToggle__option:hover {
217
+ background: var(--st-semantic-surface-subtle);
218
+ color: var(--st-semantic-text-primary);
219
+ }
220
+
221
+ .st-languageToggle__option--active {
222
+ background: var(--st-semantic-surface-subtle);
223
+ color: var(--st-semantic-text-primary);
224
+ }
225
+
226
+ .st-languageToggle__option:focus-visible {
227
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
228
+ outline: none;
229
+ }
230
+ </style>
@@ -0,0 +1,28 @@
1
+ export type LanguageToggleLocale = "fr" | "en";
2
+ export interface LanguageToggleProps {
3
+ /** Langue courante (contrôlé). */
4
+ locale?: LanguageToggleLocale;
5
+ /** Notifié au changement de langue. */
6
+ onLocaleChange?: (locale: LanguageToggleLocale) => void;
7
+ /** Libellé FR (i18n-agnostique : fourni par le parent). */
8
+ frLabel?: string;
9
+ /** Libellé EN (i18n-agnostique : fourni par le parent). */
10
+ enLabel?: string;
11
+ /** Libellé du sélecteur (associé via <label for> + aria-label). */
12
+ label?: string;
13
+ /** Id du <select> ; auto-généré et stable si non fourni. */
14
+ selectId?: string;
15
+ /**
16
+ * Variante d'affichage :
17
+ * - `select` (défaut) : le <select> de la source (header desktop).
18
+ * - `accordion` : la liste de boutons du tiroir mobile.
19
+ */
20
+ variant?: "select" | "accordion";
21
+ /** Titre de la section accordéon. */
22
+ accordionLabel?: string;
23
+ class?: string;
24
+ }
25
+ declare const LanguageToggle: import("svelte").Component<LanguageToggleProps, {}, "">;
26
+ type LanguageToggle = ReturnType<typeof LanguageToggle>;
27
+ export default LanguageToggle;
28
+ //# sourceMappingURL=LanguageToggle.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageToggle.svelte.d.ts","sourceRoot":"","sources":["../src/lib/LanguageToggle.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;AAQ/C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwEH,QAAA,MAAM,cAAc,yDAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,10 @@
1
1
  export { default as Accordion } from "./Accordion.svelte";
2
+ export { default as AppHeader } from "./AppHeader.svelte";
3
+ export type { AppHeaderProps } from "./AppHeader.svelte";
4
+ export { default as LanguageToggle } from "./LanguageToggle.svelte";
5
+ export type { LanguageToggleProps, LanguageToggleLocale } from "./LanguageToggle.svelte";
6
+ export { default as IdentityMenu, identityInitial } from "./IdentityMenu.svelte";
7
+ export type { IdentityMenuProps, IdentityUser } from "./IdentityMenu.svelte";
2
8
  export { default as BulletChart } from "./BulletChart.svelte";
3
9
  export { default as MarimekkoChart } from "./MarimekkoChart.svelte";
4
10
  export { default as ParallelCoordinatesChart } from "./ParallelCoordinatesChart.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
@@ -1,4 +1,7 @@
1
1
  export { default as Accordion } from "./Accordion.svelte";
2
+ export { default as AppHeader } from "./AppHeader.svelte";
3
+ export { default as LanguageToggle } from "./LanguageToggle.svelte";
4
+ export { default as IdentityMenu, identityInitial } from "./IdentityMenu.svelte";
2
5
  export { default as BulletChart } from "./BulletChart.svelte";
3
6
  export { default as MarimekkoChart } from "./MarimekkoChart.svelte";
4
7
  export { default as ParallelCoordinatesChart } from "./ParallelCoordinatesChart.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-svelte",
3
- "version": "0.24.0",
3
+ "version": "0.25.1",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"