@salmexio/ui 1.1.0 → 1.2.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.
Files changed (39) hide show
  1. package/dist/dialogs/ContextMenu/ContextMenu.svelte +11 -1
  2. package/dist/dialogs/Modal/Modal.svelte +34 -1
  3. package/dist/feedback/Alert/Alert.svelte +54 -11
  4. package/dist/feedback/ProgressBar/ProgressBar.svelte +11 -8
  5. package/dist/feedback/ProgressBar/ProgressBar.svelte.d.ts +2 -2
  6. package/dist/feedback/ProgressBar/ProgressBar.svelte.d.ts.map +1 -1
  7. package/dist/feedback/Skeleton/Skeleton.svelte +7 -3
  8. package/dist/feedback/Spinner/Spinner.svelte +2 -0
  9. package/dist/feedback/Toast/Toaster.svelte +35 -3
  10. package/dist/forms/Checkbox/Checkbox.svelte +30 -7
  11. package/dist/forms/Select/Select.svelte +19 -3
  12. package/dist/forms/Slider/Slider.svelte +41 -13
  13. package/dist/forms/Slider/Slider.svelte.d.ts +1 -1
  14. package/dist/forms/Slider/Slider.svelte.d.ts.map +1 -1
  15. package/dist/forms/TextInput/TextInput.svelte +19 -1
  16. package/dist/forms/Textarea/Textarea.svelte +18 -3
  17. package/dist/forms/Toggle/Toggle.svelte +70 -11
  18. package/dist/layout/Card/Card.svelte +125 -4
  19. package/dist/layout/Card/Card.svelte.d.ts +3 -0
  20. package/dist/layout/Card/Card.svelte.d.ts.map +1 -1
  21. package/dist/layout/ThermalBackground/ThermalBackground.svelte +2 -40
  22. package/dist/layout/ThermalBackground/ThermalBackground.svelte.d.ts +0 -2
  23. package/dist/layout/ThermalBackground/ThermalBackground.svelte.d.ts.map +1 -1
  24. package/dist/navigation/CommandPalette/CommandPalette.svelte +37 -3
  25. package/dist/navigation/NavMenu/NavMenu.svelte +800 -0
  26. package/dist/navigation/NavMenu/NavMenu.svelte.d.ts +81 -0
  27. package/dist/navigation/NavMenu/NavMenu.svelte.d.ts.map +1 -0
  28. package/dist/navigation/NavMenu/index.d.ts +3 -0
  29. package/dist/navigation/NavMenu/index.d.ts.map +1 -0
  30. package/dist/navigation/NavMenu/index.js +1 -0
  31. package/dist/navigation/Tabs/Tabs.svelte +37 -8
  32. package/dist/navigation/index.d.ts +2 -0
  33. package/dist/navigation/index.d.ts.map +1 -1
  34. package/dist/navigation/index.js +1 -0
  35. package/dist/primitives/Badge/Badge.svelte +55 -10
  36. package/dist/primitives/Button/Button.svelte +220 -71
  37. package/dist/primitives/Tooltip/Tooltip.svelte +9 -1
  38. package/dist/styles/tokens.css +1 -0
  39. package/package.json +1 -1
@@ -1,13 +1,12 @@
1
1
  <!--
2
2
  ThermalBackground — Dynamic INFRARED background
3
3
 
4
- Layered ambient background with thermal blob drift, radar sweep,
4
+ Layered ambient background with thermal blob drift
5
5
  and film grain. Pure CSS — zero JS runtime cost.
6
6
 
7
7
  Usage:
8
8
  <ThermalBackground /> — default (all layers)
9
9
  <ThermalBackground grain={false} /> — no grain overlay
10
- <ThermalBackground sweep={false} /> — no radar sweep
11
10
  <ThermalBackground intensity="low" /> — subtler blobs
12
11
  -->
13
12
 
@@ -15,8 +14,6 @@
15
14
  interface Props {
16
15
  /** Show film grain overlay */
17
16
  grain?: boolean;
18
- /** Show radar sweep line */
19
- sweep?: boolean;
20
17
  /** Blob intensity: low = barely visible, default = subtle, high = pronounced */
21
18
  intensity?: 'low' | 'default' | 'high';
22
19
  /** Additional CSS class */
@@ -27,7 +24,6 @@
27
24
 
28
25
  let {
29
26
  grain = true,
30
- sweep = true,
31
27
  intensity = 'default',
32
28
  class: className = '',
33
29
  testId = undefined,
@@ -47,12 +43,7 @@
47
43
  <div class="sx-thermal-blob sx-thermal-blob-4"></div>
48
44
  </div>
49
45
 
50
- <!-- Layer 2: Radar/thermal sweep horizontal scan line -->
51
- {#if sweep}
52
- <div class="sx-thermal-sweep"></div>
53
- {/if}
54
-
55
- <!-- Layer 3: Animated film grain -->
46
+ <!-- Layer 2: Animated film grain -->
56
47
  {#if grain}
57
48
  <div class="sx-thermal-grain"></div>
58
49
  {/if}
@@ -244,34 +235,6 @@
244
235
  );
245
236
  }
246
237
 
247
- /* ========================================
248
- RADAR SWEEP — Horizontal scan line
249
- A faint horizontal gradient that sweeps
250
- top to bottom like a thermal scanner or
251
- radar display. Very subtle.
252
- ======================================== */
253
-
254
- .sx-thermal-sweep {
255
- position: absolute;
256
- inset: 0;
257
- background: linear-gradient(
258
- 180deg,
259
- transparent 0%,
260
- rgba(255, 107, 53, 0.015) 48%,
261
- rgba(255, 107, 53, 0.04) 50%,
262
- rgba(255, 107, 53, 0.015) 52%,
263
- transparent 100%
264
- );
265
- background-size: 100% 300%;
266
- animation: sx-thermal-scan 8s linear infinite;
267
- opacity: 0.7;
268
- }
269
-
270
- @keyframes sx-thermal-scan {
271
- 0% { background-position: 0% 0%; }
272
- 100% { background-position: 0% 100%; }
273
- }
274
-
275
238
  /* ========================================
276
239
  FILM GRAIN — Animated noise texture
277
240
  SVG feTurbulence noise with subtle position
@@ -305,7 +268,6 @@
305
268
 
306
269
  @media (prefers-reduced-motion: reduce) {
307
270
  .sx-thermal-blob,
308
- .sx-thermal-sweep,
309
271
  .sx-thermal-grain {
310
272
  animation: none !important;
311
273
  }
@@ -1,8 +1,6 @@
1
1
  interface Props {
2
2
  /** Show film grain overlay */
3
3
  grain?: boolean;
4
- /** Show radar sweep line */
5
- sweep?: boolean;
6
4
  /** Blob intensity: low = barely visible, default = subtle, high = pronounced */
7
5
  intensity?: 'low' | 'default' | 'high';
8
6
  /** Additional CSS class */
@@ -1 +1 @@
1
- {"version":3,"file":"ThermalBackground.svelte.d.ts","sourceRoot":"","sources":["../../../src/layout/ThermalBackground/ThermalBackground.svelte.ts"],"names":[],"mappings":"AAGC,UAAU,KAAK;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAuCF,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ThermalBackground.svelte.d.ts","sourceRoot":"","sources":["../../../src/layout/ThermalBackground/ThermalBackground.svelte.ts"],"names":[],"mappings":"AAGC,UAAU,KAAK;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAiCF,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -467,14 +467,37 @@ function getItemId(itemId: string): string {
467
467
  border: 1px solid var(--sx-color-border-strong);
468
468
  border-radius: var(--sx-radius-lg);
469
469
  box-shadow:
470
- var(--sx-shadow-xl),
471
- 0 0 0 1px rgba(255, 255, 255, 0.04),
472
- 0 0 60px rgba(0, 0, 0, 0.5);
470
+ /* 3D extrusion */
471
+ 0 1px 0 0 rgba(0, 0, 0, 0.2),
472
+ 0 2px 0 0 rgba(0, 0, 0, 0.15),
473
+ 0 3px 0 0 rgba(0, 0, 0, 0.1),
474
+ 0 4px 0 0 rgba(0, 0, 0, 0.06),
475
+ /* Deep ambient shadow */
476
+ 0 8px 24px -4px rgba(0, 0, 0, 0.5),
477
+ 0 16px 48px -8px rgba(0, 0, 0, 0.3),
478
+ /* Warm forge glow */
479
+ 0 0 40px -10px rgba(255, 107, 53, 0.1);
473
480
  font-family: var(--sx-font-body);
474
481
  overflow: hidden;
475
482
  animation: sx-cmd-panel-in 200ms var(--sx-ease-out) both;
476
483
  }
477
484
 
485
+ /* Top-lit bevel */
486
+ .sx-command::before {
487
+ content: '';
488
+ position: absolute;
489
+ inset: 0;
490
+ border-radius: inherit;
491
+ background: linear-gradient(
492
+ 180deg,
493
+ rgba(255, 255, 255, 0.04) 0%,
494
+ transparent 25%,
495
+ rgba(0, 0, 0, 0.04) 100%
496
+ );
497
+ pointer-events: none;
498
+ z-index: 10;
499
+ }
500
+
478
501
  .sx-command-exit {
479
502
  animation: sx-cmd-panel-out 120ms ease-in both;
480
503
  }
@@ -505,11 +528,18 @@ function getItemId(itemId: string): string {
505
528
  SEARCH FIELD
506
529
  ======================================== */
507
530
  .sx-command-search {
531
+ position: relative;
532
+ z-index: 1;
508
533
  display: flex;
509
534
  align-items: center;
510
535
  gap: var(--sx-space-3);
511
536
  padding: var(--sx-space-4) var(--sx-space-5);
512
537
  border-bottom: 1px solid var(--sx-color-border);
538
+ /* Recessed search well */
539
+ background: rgba(0, 0, 0, 0.08);
540
+ box-shadow:
541
+ inset 0 1px 3px rgba(0, 0, 0, 0.2),
542
+ inset 0 0 0 1px rgba(0, 0, 0, 0.04);
513
543
  }
514
544
 
515
545
  .sx-command-search-icon {
@@ -559,6 +589,8 @@ function getItemId(itemId: string): string {
559
589
  RESULTS LIST
560
590
  ======================================== */
561
591
  .sx-command-results {
592
+ position: relative;
593
+ z-index: 1;
562
594
  flex: 1;
563
595
  overflow-y: auto;
564
596
  overscroll-behavior: contain;
@@ -735,6 +767,8 @@ function getItemId(itemId: string): string {
735
767
  FOOTER
736
768
  ======================================== */
737
769
  .sx-command-footer {
770
+ position: relative;
771
+ z-index: 1;
738
772
  display: flex;
739
773
  align-items: center;
740
774
  gap: var(--sx-space-5);