@sentropic/design-system-svelte 0.34.27 → 0.34.28

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.
@@ -75,6 +75,10 @@
75
75
  /** Zone identité à droite (IdentityMenu, bouton connexion, …). */
76
76
  identity?: Snippet;
77
77
 
78
+ // ── Contrôles additionnels ─────────────────────────────────────────────────
79
+ /** Contrôles additionnels dans la zone utilitaire. */
80
+ extraSelectors?: Snippet;
81
+
78
82
  // ── Mobile ─────────────────────────────────────────────────────────────────
79
83
  /** État ouvert du tiroir mobile (contrôlé). */
80
84
  mobileMenuOpen?: boolean;
@@ -95,10 +99,10 @@
95
99
  <script lang="ts">
96
100
  import { untrack } from "svelte";
97
101
  import {
98
- Boxes,
99
102
  ChevronDown,
100
103
  Github,
101
104
  Globe,
105
+ Menu,
102
106
  Moon,
103
107
  Palette,
104
108
  Sun,
@@ -127,6 +131,7 @@
127
131
  githubHref,
128
132
  githubLabel = "GitHub",
129
133
  identity,
134
+ extraSelectors,
130
135
  mobileMenuOpen = false,
131
136
  onMobileMenuToggle,
132
137
  menuLabel = "Menu",
@@ -320,6 +325,7 @@
320
325
  {#if showLocaleSelector}{@render localeSelector()}{/if}
321
326
  {#if showGithub}{@render githubLink()}{/if}
322
327
  {#if identity}<div class="st-appChrome__identity">{@render identity()}</div>{/if}
328
+ {#if extraSelectors}<div class="st-appChrome__extraSelectors">{@render extraSelectors()}</div>{/if}
323
329
  </div>
324
330
  {/snippet}
325
331
 
@@ -334,7 +340,7 @@
334
340
  aria-controls={drawerId}
335
341
  aria-label={menuLabel}
336
342
  >
337
- <Boxes size={20} aria-hidden="true" />
343
+ <Menu size={20} aria-hidden="true" />
338
344
  </button>
339
345
  {/snippet}
340
346
 
@@ -434,11 +440,18 @@
434
440
  react/vue : la source de vérité du CSS est le bloc publié (styles.css).
435
441
  Ce <style> scoped ne fait que rendre la démo Svelte autonome. */
436
442
  .st-appChrome {
443
+ position: sticky;
444
+ top: 0;
437
445
  width: 100%;
446
+ z-index: 30;
438
447
  }
439
448
 
440
449
  :global(.st-appChrome__header .st-appHeader__bar) {
450
+ background: color-mix(in srgb, var(--st-semantic-surface-default) 96%, transparent);
451
+ backdrop-filter: blur(8px);
452
+ height: 5rem;
441
453
  max-width: none;
454
+ padding: 0 var(--st-spacing-6, 1.5rem);
442
455
  }
443
456
 
444
457
  .st-appChrome__brand {
@@ -482,7 +495,7 @@
482
495
  .st-appChrome__utilityNav {
483
496
  align-items: center;
484
497
  display: flex;
485
- gap: var(--st-spacing-2, 0.5rem);
498
+ gap: var(--st-spacing-1, 0.25rem);
486
499
  }
487
500
 
488
501
  .st-appChrome__menuWrap {
@@ -579,6 +592,12 @@
579
592
  color: var(--st-semantic-text-primary);
580
593
  }
581
594
 
595
+ .st-appChrome__extraSelectors {
596
+ align-items: center;
597
+ display: flex;
598
+ gap: var(--st-spacing-1, 0.25rem);
599
+ }
600
+
582
601
  .st-appChrome__drawer {
583
602
  background: var(--st-semantic-surface-default);
584
603
  border-bottom: 1px solid var(--st-semantic-border-subtle);
@@ -60,6 +60,8 @@ export interface AppChromeProps {
60
60
  githubLabel?: string;
61
61
  /** Zone identité à droite (IdentityMenu, bouton connexion, …). */
62
62
  identity?: Snippet;
63
+ /** Contrôles additionnels dans la zone utilitaire. */
64
+ extraSelectors?: Snippet;
63
65
  /** État ouvert du tiroir mobile (contrôlé). */
64
66
  mobileMenuOpen?: boolean;
65
67
  /** Callback de bascule du tiroir mobile. */
@@ -1 +1 @@
1
- {"version":3,"file":"AppChrome.svelte.d.ts","sourceRoot":"","sources":["../src/lib/AppChrome.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,WAAW,cAAc;IAE7B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,yDAAyD;IACzD,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,0DAA0D;IAC1D,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAGhE,2DAA2D;IAC3D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqRH,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"AppChrome.svelte.d.ts","sourceRoot":"","sources":["../src/lib/AppChrome.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,WAAW,cAAc;IAE7B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,yDAAyD;IACzD,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,0DAA0D;IAC1D,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAGhE,2DAA2D;IAC3D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,sDAAsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuRH,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
@@ -120,3 +120,13 @@ describe("AppChrome — mobile burger + tiroir", () => {
120
120
  expect(onMobileMenuToggle).toHaveBeenCalledTimes(1);
121
121
  });
122
122
  });
123
+ describe("AppChrome — extraSelectors", () => {
124
+ it("renders extraSelectors snippet content in the utility nav", () => {
125
+ const { container } = render(AppChrome, { props: { extraSelectors: snippet("extra-ctrl") } });
126
+ expect(container.querySelector(".st-appChrome__extraSelectors")?.textContent).toContain("extra-ctrl");
127
+ });
128
+ it("does not render extraSelectors div when not provided", () => {
129
+ const { container } = render(AppChrome);
130
+ expect(container.querySelector(".st-appChrome__extraSelectors")).toBeNull();
131
+ });
132
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-svelte",
3
- "version": "0.34.27",
3
+ "version": "0.34.28",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"