@salmexio/ui 0.3.1 → 1.0.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 (110) hide show
  1. package/README.md +52 -3
  2. package/dist/dialogs/ContextMenu/ContextMenu.svelte +96 -93
  3. package/dist/dialogs/ContextMenu/ContextMenu.svelte.d.ts +3 -2
  4. package/dist/dialogs/ContextMenu/ContextMenu.svelte.d.ts.map +1 -1
  5. package/dist/dialogs/Modal/Modal.svelte +112 -102
  6. package/dist/dialogs/Modal/Modal.svelte.d.ts +1 -1
  7. package/dist/feedback/Alert/Alert.svelte +115 -221
  8. package/dist/feedback/Alert/Alert.svelte.d.ts +1 -1
  9. package/dist/feedback/ProgressBar/ProgressBar.svelte +246 -0
  10. package/dist/feedback/ProgressBar/ProgressBar.svelte.d.ts +40 -0
  11. package/dist/feedback/ProgressBar/ProgressBar.svelte.d.ts.map +1 -0
  12. package/dist/feedback/ProgressBar/index.d.ts +2 -0
  13. package/dist/feedback/ProgressBar/index.d.ts.map +1 -0
  14. package/dist/feedback/ProgressBar/index.js +1 -0
  15. package/dist/feedback/Skeleton/Skeleton.svelte +153 -0
  16. package/dist/feedback/Skeleton/Skeleton.svelte.d.ts +37 -0
  17. package/dist/feedback/Skeleton/Skeleton.svelte.d.ts.map +1 -0
  18. package/dist/feedback/Skeleton/index.d.ts +2 -0
  19. package/dist/feedback/Skeleton/index.d.ts.map +1 -0
  20. package/dist/feedback/Skeleton/index.js +1 -0
  21. package/dist/feedback/Spinner/Spinner.svelte +88 -154
  22. package/dist/feedback/Spinner/Spinner.svelte.d.ts +5 -3
  23. package/dist/feedback/Spinner/Spinner.svelte.d.ts.map +1 -1
  24. package/dist/feedback/Toast/Toaster.svelte +431 -0
  25. package/dist/feedback/Toast/Toaster.svelte.d.ts +22 -0
  26. package/dist/feedback/Toast/Toaster.svelte.d.ts.map +1 -0
  27. package/dist/feedback/Toast/index.d.ts +4 -0
  28. package/dist/feedback/Toast/index.d.ts.map +1 -0
  29. package/dist/feedback/Toast/index.js +2 -0
  30. package/dist/feedback/Toast/toastStore.d.ts +34 -0
  31. package/dist/feedback/Toast/toastStore.d.ts.map +1 -0
  32. package/dist/feedback/Toast/toastStore.js +43 -0
  33. package/dist/feedback/index.d.ts +4 -0
  34. package/dist/feedback/index.d.ts.map +1 -1
  35. package/dist/feedback/index.js +3 -0
  36. package/dist/forms/Checkbox/Checkbox.svelte +82 -103
  37. package/dist/forms/Checkbox/Checkbox.svelte.d.ts +1 -1
  38. package/dist/forms/Select/Select.svelte +136 -177
  39. package/dist/forms/Select/Select.svelte.d.ts +1 -1
  40. package/dist/forms/Slider/Slider.svelte +356 -0
  41. package/dist/forms/Slider/Slider.svelte.d.ts +50 -0
  42. package/dist/forms/Slider/Slider.svelte.d.ts.map +1 -0
  43. package/dist/forms/Slider/index.d.ts +2 -0
  44. package/dist/forms/Slider/index.d.ts.map +1 -0
  45. package/dist/forms/Slider/index.js +1 -0
  46. package/dist/forms/TextInput/TextInput.svelte +148 -164
  47. package/dist/forms/TextInput/TextInput.svelte.d.ts +1 -1
  48. package/dist/forms/Textarea/Textarea.svelte +615 -0
  49. package/dist/forms/Textarea/Textarea.svelte.d.ts +47 -0
  50. package/dist/forms/Textarea/Textarea.svelte.d.ts.map +1 -0
  51. package/dist/forms/Textarea/index.d.ts +2 -0
  52. package/dist/forms/Textarea/index.d.ts.map +1 -0
  53. package/dist/forms/Textarea/index.js +1 -0
  54. package/dist/forms/Toggle/Toggle.svelte +239 -0
  55. package/dist/forms/Toggle/Toggle.svelte.d.ts +39 -0
  56. package/dist/forms/Toggle/Toggle.svelte.d.ts.map +1 -0
  57. package/dist/forms/Toggle/index.d.ts +2 -0
  58. package/dist/forms/Toggle/index.d.ts.map +1 -0
  59. package/dist/forms/Toggle/index.js +1 -0
  60. package/dist/forms/index.d.ts +3 -0
  61. package/dist/forms/index.d.ts.map +1 -1
  62. package/dist/forms/index.js +3 -0
  63. package/dist/index.d.ts +0 -1
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +0 -1
  66. package/dist/layout/Card/Card.svelte +64 -40
  67. package/dist/layout/Card/Card.svelte.d.ts +1 -1
  68. package/dist/layout/Card/Card.svelte.d.ts.map +1 -1
  69. package/dist/layout/Container/Container.svelte +71 -71
  70. package/dist/layout/Container/Container.svelte.d.ts +2 -2
  71. package/dist/navigation/CommandPalette/CommandPalette.svelte +410 -181
  72. package/dist/navigation/CommandPalette/CommandPalette.svelte.d.ts +8 -3
  73. package/dist/navigation/CommandPalette/CommandPalette.svelte.d.ts.map +1 -1
  74. package/dist/navigation/Tabs/Tabs.svelte +94 -178
  75. package/dist/navigation/Tabs/Tabs.svelte.d.ts +2 -2
  76. package/dist/primitives/Badge/Badge.svelte +85 -223
  77. package/dist/primitives/Badge/Badge.svelte.d.ts +2 -2
  78. package/dist/primitives/Badge/Badge.svelte.d.ts.map +1 -1
  79. package/dist/primitives/Button/Button.svelte +138 -208
  80. package/dist/primitives/Button/Button.svelte.d.ts +3 -3
  81. package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
  82. package/dist/primitives/Tooltip/Tooltip.svelte +260 -0
  83. package/dist/primitives/Tooltip/Tooltip.svelte.d.ts +36 -0
  84. package/dist/primitives/Tooltip/Tooltip.svelte.d.ts.map +1 -0
  85. package/dist/primitives/Tooltip/index.d.ts +2 -0
  86. package/dist/primitives/Tooltip/index.d.ts.map +1 -0
  87. package/dist/primitives/Tooltip/index.js +1 -0
  88. package/dist/primitives/index.d.ts +1 -0
  89. package/dist/primitives/index.d.ts.map +1 -1
  90. package/dist/primitives/index.js +1 -0
  91. package/dist/styles/tokens.css +200 -259
  92. package/package.json +5 -5
  93. package/dist/windowing/Window/Window.svelte +0 -602
  94. package/dist/windowing/Window/Window.svelte.d.ts +0 -65
  95. package/dist/windowing/Window/Window.svelte.d.ts.map +0 -1
  96. package/dist/windowing/Window/index.d.ts +0 -2
  97. package/dist/windowing/Window/index.d.ts.map +0 -1
  98. package/dist/windowing/Window/index.js +0 -1
  99. package/dist/windowing/WindowManager/WindowManager.svelte +0 -410
  100. package/dist/windowing/WindowManager/WindowManager.svelte.d.ts +0 -38
  101. package/dist/windowing/WindowManager/WindowManager.svelte.d.ts.map +0 -1
  102. package/dist/windowing/WindowManager/index.d.ts +0 -2
  103. package/dist/windowing/WindowManager/index.d.ts.map +0 -1
  104. package/dist/windowing/WindowManager/index.js +0 -1
  105. package/dist/windowing/index.d.ts +0 -5
  106. package/dist/windowing/index.d.ts.map +0 -1
  107. package/dist/windowing/index.js +0 -3
  108. package/dist/windowing/windowStore.svelte.d.ts +0 -49
  109. package/dist/windowing/windowStore.svelte.d.ts.map +0 -1
  110. package/dist/windowing/windowStore.svelte.js +0 -170
@@ -1,16 +1,18 @@
1
1
  <!--
2
2
  @component Spinner
3
3
 
4
- Win2K × Basquiat Bold loading indicator.
5
- Flat shadows, crown yellow / electric blue, geometric shapes. No soft gradients.
4
+ Neo-Brutalist DarkClean loading indicator.
5
+ Cyan accent, dark surfaces, geometric shapes.
6
6
  role="status", aria-label, delay, overlay. prefers-reduced-motion respected.
7
+
8
+ Three styles: ring (default), dots (inline), pulse (radar/broadcast).
7
9
  -->
8
10
  <script lang="ts">
9
11
  import { cn } from '../../utils/cn.js';
10
12
 
11
13
  type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
14
  type SpinnerVariant = 'primary' | 'secondary' | 'white';
13
- type SpinnerStyle = 'ring' | 'bars' | 'segment' | 'dots' | 'pulse';
15
+ type SpinnerStyle = 'ring' | 'dots' | 'pulse';
14
16
 
15
17
  interface Props {
16
18
  size?: SpinnerSize;
@@ -54,11 +56,11 @@ const sizeConfig: Record<
54
56
  SpinnerSize,
55
57
  { dimension: number; stroke: number; fontSize: string; dotSize: number }
56
58
  > = {
57
- xs: { dimension: 16, stroke: 2.5, fontSize: 'var(--salmex-font-size-xs)', dotSize: 4 },
58
- sm: { dimension: 20, stroke: 3, fontSize: 'var(--salmex-font-size-sm)', dotSize: 5 },
59
- md: { dimension: 28, stroke: 4, fontSize: 'var(--salmex-font-size-sm)', dotSize: 6 },
60
- lg: { dimension: 40, stroke: 5, fontSize: 'var(--salmex-font-size-base)', dotSize: 8 },
61
- xl: { dimension: 56, stroke: 6, fontSize: 'var(--salmex-font-size-md)', dotSize: 10 }
59
+ xs: { dimension: 16, stroke: 2.5, fontSize: 'var(--sx-text-xs)', dotSize: 4 },
60
+ sm: { dimension: 20, stroke: 3, fontSize: 'var(--sx-text-sm)', dotSize: 5 },
61
+ md: { dimension: 28, stroke: 4, fontSize: 'var(--sx-text-sm)', dotSize: 6 },
62
+ lg: { dimension: 40, stroke: 5, fontSize: 'var(--sx-text-base)', dotSize: 8 },
63
+ xl: { dimension: 56, stroke: 6, fontSize: 'var(--sx-text-md)', dotSize: 10 }
62
64
  };
63
65
 
64
66
  const config = $derived(sizeConfig[size]);
@@ -68,11 +70,11 @@ const config = $derived(sizeConfig[size]);
68
70
  <div
69
71
  {id}
70
72
  class={cn(
71
- 'salmex-spinner',
72
- `salmex-spinner-${size}`,
73
- `salmex-spinner-${variant}`,
74
- `salmex-spinner-style-${style}`,
75
- overlay && 'salmex-spinner-overlay',
73
+ 'sx-spinner',
74
+ `sx-spinner-${size}`,
75
+ `sx-spinner-${variant}`,
76
+ `sx-spinner-style-${style}`,
77
+ overlay && 'sx-spinner-overlay',
76
78
  className
77
79
  )}
78
80
  role="status"
@@ -80,28 +82,26 @@ const config = $derived(sizeConfig[size]);
80
82
  aria-busy="true"
81
83
  aria-label={label}
82
84
  >
83
- <div class="salmex-spinner-content">
85
+ <div class="sx-spinner-content">
84
86
  {#if style === 'ring'}
85
87
  <svg
86
- class="salmex-spinner-ring"
88
+ class="sx-spinner-ring"
87
89
  width={config.dimension}
88
90
  height={config.dimension}
89
91
  viewBox="0 0 32 32"
90
92
  fill="none"
91
93
  aria-hidden="true"
92
94
  >
93
- <!-- Track: full circle, bold stroke -->
94
95
  <circle
95
- class="salmex-spinner-track"
96
+ class="sx-spinner-track"
96
97
  cx="16"
97
98
  cy="16"
98
99
  r="14"
99
100
  stroke="currentColor"
100
101
  stroke-width={config.stroke}
101
102
  />
102
- <!-- Arc: one bold segment, round caps -->
103
103
  <circle
104
- class="salmex-spinner-arc"
104
+ class="sx-spinner-arc"
105
105
  cx="16"
106
106
  cy="16"
107
107
  r="14"
@@ -111,81 +111,60 @@ const config = $derived(sizeConfig[size]);
111
111
  stroke-dasharray="22 66"
112
112
  />
113
113
  </svg>
114
- {/if}
115
-
116
- {#if style === 'bars'}
114
+ {:else if style === 'pulse'}
117
115
  <div
118
- class="salmex-spinner-bars"
116
+ class="sx-spinner-pulse"
119
117
  style="width: {config.dimension}px; height: {config.dimension}px;"
120
118
  aria-hidden="true"
121
- ></div>
122
- {/if}
123
-
124
- {#if style === 'segment'}
125
- <div
126
- class="salmex-spinner-segment"
127
- style="width: {config.dimension}px; height: {config.dimension}px;"
128
- aria-hidden="true"
129
- ></div>
130
- {/if}
131
-
132
- {#if style === 'dots'}
133
- <div
134
- class="salmex-spinner-dots"
135
- style="--dot-size: {config.dotSize}px; --spinner-dim: {config.dimension}px;"
136
- aria-hidden="true"
137
119
  >
138
- <span class="salmex-spinner-dot salmex-spinner-dot-1"></span>
139
- <span class="salmex-spinner-dot salmex-spinner-dot-2"></span>
140
- <span class="salmex-spinner-dot salmex-spinner-dot-3"></span>
120
+ <span class="sx-pulse-ring sx-pulse-ring-1"></span>
121
+ <span class="sx-pulse-ring sx-pulse-ring-2"></span>
122
+ <span class="sx-pulse-dot"></span>
141
123
  </div>
142
- {/if}
143
-
144
- {#if style === 'pulse'}
124
+ {:else}
145
125
  <div
146
- class="salmex-spinner-pulse"
147
- style="width: {config.dimension}px; height: {config.dimension}px;"
126
+ class="sx-spinner-dots"
127
+ style="--dot-size: {config.dotSize}px; --spinner-dim: {config.dimension}px;"
148
128
  aria-hidden="true"
149
129
  >
150
- <span class="salmex-pulse-ring salmex-pulse-ring-1"></span>
151
- <span class="salmex-pulse-ring salmex-pulse-ring-2"></span>
152
- <span class="salmex-pulse-dot"></span>
130
+ <span class="sx-spinner-dot sx-spinner-dot-1"></span>
131
+ <span class="sx-spinner-dot sx-spinner-dot-2"></span>
132
+ <span class="sx-spinner-dot sx-spinner-dot-3"></span>
153
133
  </div>
154
134
  {/if}
155
135
 
156
136
  {#if showLabel}
157
- <span class="salmex-spinner-label" style="font-size: {config.fontSize};">
137
+ <span class="sx-spinner-label" style="font-size: {config.fontSize};">
158
138
  {label}
159
139
  </span>
160
140
  {:else}
161
- <span class="salmex-sr-only">{label}</span>
141
+ <span class="sx-sr-only">{label}</span>
162
142
  {/if}
163
143
  </div>
164
144
  </div>
165
145
  {/if}
166
146
 
167
147
  <style>
168
- .salmex-spinner {
148
+ .sx-spinner {
169
149
  display: inline-flex;
170
150
  align-items: center;
171
151
  justify-content: center;
172
152
  }
173
153
 
174
- .salmex-spinner-content {
154
+ .sx-spinner-content {
175
155
  display: inline-flex;
176
156
  align-items: center;
177
- gap: var(--salmex-space-2);
157
+ gap: var(--sx-space-2);
178
158
  }
179
159
 
180
- .salmex-spinner-label {
181
- font-family: var(--salmex-font-system);
182
- font-weight: 700;
183
- text-transform: uppercase;
160
+ .sx-spinner-label {
161
+ font-family: var(--sx-font-body);
162
+ font-weight: 600;
184
163
  letter-spacing: 0.3px;
185
- color: rgb(var(--salmex-text-secondary));
164
+ color: var(--sx-color-text-secondary);
186
165
  }
187
166
 
188
- .salmex-sr-only {
167
+ .sx-sr-only {
189
168
  position: absolute;
190
169
  width: 1px;
191
170
  height: 1px;
@@ -197,86 +176,54 @@ const config = $derived(sizeConfig[size]);
197
176
  border: 0;
198
177
  }
199
178
 
200
- .salmex-spinner-overlay {
179
+ .sx-spinner-overlay {
201
180
  position: absolute;
202
181
  inset: 0;
203
182
  display: flex;
204
183
  align-items: center;
205
184
  justify-content: center;
206
- background: rgb(var(--salmex-chalk-white) / 0.9);
207
- z-index: var(--salmex-z-modal-backdrop);
185
+ background: rgba(10, 10, 15, 0.7);
186
+ backdrop-filter: blur(4px);
187
+ -webkit-backdrop-filter: blur(4px);
188
+ z-index: var(--sx-z-modal-backdrop);
208
189
  border-radius: inherit;
209
- /* Flat, bold overlay edge - no blur */
210
- box-shadow: inset 0 0 0 3px rgb(var(--salmex-border-default));
211
- }
212
-
213
- :global([data-theme='dark']) .salmex-spinner-overlay {
214
- background: rgb(var(--salmex-midnight-black) / 0.9);
215
- box-shadow: inset 0 0 0 3px rgb(var(--salmex-border-light));
216
- }
217
-
218
- /* Variants - crown yellow / electric blue, bold */
219
- .salmex-spinner-primary {
220
- color: rgb(var(--salmex-electric-blue));
221
190
  }
222
191
 
223
- :global([data-theme='dark']) .salmex-spinner-primary {
224
- color: rgb(var(--salmex-crown-yellow));
192
+ /* Variants */
193
+ .sx-spinner-primary {
194
+ color: var(--sx-color-cyan);
225
195
  }
226
196
 
227
- .salmex-spinner-secondary {
228
- color: rgb(var(--salmex-text-secondary));
197
+ .sx-spinner-secondary {
198
+ color: var(--sx-color-text-secondary);
229
199
  }
230
200
 
231
- .salmex-spinner-white {
232
- color: rgb(var(--salmex-chalk-white));
201
+ .sx-spinner-white {
202
+ color: var(--sx-color-text);
233
203
  }
234
204
 
235
- /* ========== RING: bold stroke, one segment, round caps ========== */
236
- .salmex-spinner-ring {
237
- animation: salmex-spin 0.85s linear infinite;
238
- filter: drop-shadow(var(--salmex-shadow-sm));
205
+ /* ========== RING ========== */
206
+ .sx-spinner-ring {
207
+ animation: sx-spin 0.85s linear infinite;
239
208
  }
240
209
 
241
- .salmex-spinner-track {
242
- opacity: 0.25;
210
+ .sx-spinner-track {
211
+ opacity: 0.15;
212
+ stroke: var(--sx-color-surface-2);
243
213
  }
244
214
 
245
- .salmex-spinner-arc {
215
+ .sx-spinner-arc {
246
216
  transform-origin: center;
247
217
  }
248
218
 
249
- @keyframes salmex-spin {
219
+ @keyframes sx-spin {
250
220
  to {
251
221
  transform: rotate(360deg);
252
222
  }
253
223
  }
254
224
 
255
- /* ========== BARS: conic gradient, 12 segments, geometric ========== */
256
- .salmex-spinner-bars {
257
- border-radius: 50%;
258
- background: repeating-conic-gradient(
259
- currentColor 0deg 12deg,
260
- transparent 12deg 30deg
261
- );
262
- animation: salmex-spin 0.9s linear infinite;
263
- box-shadow: var(--salmex-shadow-sm);
264
- }
265
-
266
- /* ========== SEGMENT: one bold pie slice, high contrast ========== */
267
- .salmex-spinner-segment {
268
- border-radius: 50%;
269
- background: conic-gradient(
270
- from 0deg,
271
- currentColor 0deg 100deg,
272
- transparent 100deg 360deg
273
- );
274
- animation: salmex-spin 0.75s linear infinite;
275
- box-shadow: var(--salmex-shadow-sm);
276
- }
277
-
278
- /* ========== DOTS: bold, flat shadow ========== */
279
- .salmex-spinner-dots {
225
+ /* ========== DOTS ========== */
226
+ .sx-spinner-dots {
280
227
  display: flex;
281
228
  align-items: center;
282
229
  justify-content: center;
@@ -284,24 +231,23 @@ const config = $derived(sizeConfig[size]);
284
231
  height: var(--spinner-dim);
285
232
  }
286
233
 
287
- .salmex-spinner-dot {
234
+ .sx-spinner-dot {
288
235
  width: var(--dot-size);
289
236
  height: var(--dot-size);
290
- border-radius: var(--salmex-radius-sm);
237
+ border-radius: 50%;
291
238
  background: currentColor;
292
- box-shadow: var(--salmex-shadow-sm);
293
- animation: salmex-dot-bounce 1s ease-out infinite both;
239
+ animation: sx-dot-bounce 1s ease-out infinite both;
294
240
  }
295
241
 
296
- .salmex-spinner-dot-1 {
242
+ .sx-spinner-dot-1 {
297
243
  animation-delay: -0.2s;
298
244
  }
299
245
 
300
- .salmex-spinner-dot-2 {
246
+ .sx-spinner-dot-2 {
301
247
  animation-delay: -0.1s;
302
248
  }
303
249
 
304
- @keyframes salmex-dot-bounce {
250
+ @keyframes sx-dot-bounce {
305
251
  0%, 60%, 100% {
306
252
  transform: scale(0.75);
307
253
  opacity: 0.7;
@@ -312,37 +258,36 @@ const config = $derived(sizeConfig[size]);
312
258
  }
313
259
  }
314
260
 
315
- /* ========== PULSE: bold ring + dot ========== */
316
- .salmex-spinner-pulse {
261
+ /* ========== PULSE ========== */
262
+ .sx-spinner-pulse {
317
263
  position: relative;
318
264
  display: flex;
319
265
  align-items: center;
320
266
  justify-content: center;
321
267
  }
322
268
 
323
- .salmex-pulse-ring {
269
+ .sx-pulse-ring {
324
270
  position: absolute;
325
271
  inset: 0;
326
272
  border-radius: 50%;
327
273
  border: 3px solid currentColor;
328
274
  opacity: 0;
329
- animation: salmex-pulse-ring 1.5s ease-out infinite;
275
+ animation: sx-pulse-ring 1.5s ease-out infinite;
330
276
  }
331
277
 
332
- .salmex-pulse-ring-2 {
278
+ .sx-pulse-ring-2 {
333
279
  animation-delay: 0.75s;
334
280
  }
335
281
 
336
- .salmex-pulse-dot {
282
+ .sx-pulse-dot {
337
283
  width: 28%;
338
284
  height: 28%;
339
- border-radius: var(--salmex-radius-sm);
285
+ border-radius: 50%;
340
286
  background: currentColor;
341
- box-shadow: var(--salmex-shadow-sm);
342
- animation: salmex-pulse-dot 1.5s ease-out infinite;
287
+ animation: sx-pulse-dot 1.5s ease-out infinite;
343
288
  }
344
289
 
345
- @keyframes salmex-pulse-ring {
290
+ @keyframes sx-pulse-ring {
346
291
  0% {
347
292
  transform: scale(0.4);
348
293
  opacity: 0.9;
@@ -353,7 +298,7 @@ const config = $derived(sizeConfig[size]);
353
298
  }
354
299
  }
355
300
 
356
- @keyframes salmex-pulse-dot {
301
+ @keyframes sx-pulse-dot {
357
302
  0%, 100% {
358
303
  transform: scale(0.85);
359
304
  opacity: 0.8;
@@ -366,55 +311,44 @@ const config = $derived(sizeConfig[size]);
366
311
 
367
312
  /* ========== REDUCED MOTION ========== */
368
313
  @media (prefers-reduced-motion: reduce) {
369
- .salmex-spinner-ring,
370
- .salmex-spinner-bars,
371
- .salmex-spinner-segment {
314
+ .sx-spinner-ring {
372
315
  animation: none;
373
316
  }
374
317
 
375
- .salmex-spinner-ring {
376
- filter: none;
377
- }
378
-
379
- .salmex-spinner-arc {
318
+ .sx-spinner-arc {
380
319
  stroke-dasharray: 22 66;
381
320
  opacity: 0.9;
382
321
  transform: rotate(-90deg);
383
322
  }
384
323
 
385
- .salmex-spinner-bars,
386
- .salmex-spinner-segment {
387
- opacity: 0.85;
388
- }
389
-
390
- .salmex-spinner-dot {
324
+ .sx-spinner-dot {
391
325
  animation: none;
392
326
  opacity: 0.8;
393
327
  }
394
328
 
395
- .salmex-spinner-dot-1 {
329
+ .sx-spinner-dot-1 {
396
330
  opacity: 0.5;
397
331
  }
398
332
 
399
- .salmex-spinner-dot-2 {
333
+ .sx-spinner-dot-2 {
400
334
  opacity: 0.75;
401
335
  }
402
336
 
403
- .salmex-pulse-ring,
404
- .salmex-pulse-dot {
337
+ .sx-pulse-ring,
338
+ .sx-pulse-dot {
405
339
  animation: none;
406
340
  }
407
341
 
408
- .salmex-pulse-ring {
342
+ .sx-pulse-ring {
409
343
  opacity: 0.25;
410
344
  transform: scale(1);
411
345
  }
412
346
 
413
- .salmex-pulse-ring-2 {
347
+ .sx-pulse-ring-2 {
414
348
  display: none;
415
349
  }
416
350
 
417
- .salmex-pulse-dot {
351
+ .sx-pulse-dot {
418
352
  opacity: 1;
419
353
  }
420
354
  }
@@ -1,6 +1,6 @@
1
1
  type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
2
  type SpinnerVariant = 'primary' | 'secondary' | 'white';
3
- type SpinnerStyle = 'ring' | 'bars' | 'segment' | 'dots' | 'pulse';
3
+ type SpinnerStyle = 'ring' | 'dots' | 'pulse';
4
4
  interface Props {
5
5
  size?: SpinnerSize;
6
6
  variant?: SpinnerVariant;
@@ -15,9 +15,11 @@ interface Props {
15
15
  /**
16
16
  * Spinner
17
17
  *
18
- * Win2K × Basquiat Bold loading indicator.
19
- * Flat shadows, crown yellow / electric blue, geometric shapes. No soft gradients.
18
+ * Neo-Brutalist DarkClean loading indicator.
19
+ * Cyan accent, dark surfaces, geometric shapes.
20
20
  * role="status", aria-label, delay, overlay. prefers-reduced-motion respected.
21
+ *
22
+ * Three styles: ring (default), dots (inline), pulse (radar/broadcast).
21
23
  */
22
24
  declare const Spinner: import("svelte").Component<Props, {}, "">;
23
25
  type Spinner = ReturnType<typeof Spinner>;
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.svelte.d.ts","sourceRoot":"","sources":["../../../src/feedback/Spinner/Spinner.svelte.ts"],"names":[],"mappings":"AAMA,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpD,KAAK,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AACxD,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,UAAU,KAAK;IACd,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AA2GD;;;;;;GAMG;AACH,QAAA,MAAM,OAAO,2CAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Spinner.svelte.d.ts","sourceRoot":"","sources":["../../../src/feedback/Spinner/Spinner.svelte.ts"],"names":[],"mappings":"AAMA,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpD,KAAK,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AACxD,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9C,UAAU,KAAK;IACd,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AA6FD;;;;;;;;GAQG;AACH,QAAA,MAAM,OAAO,2CAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}