@softwareone/spi-sv5-library 1.14.3 → 1.15.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 (89) hide show
  1. package/dist/components/accordion/Accordion.svelte +14 -23
  2. package/dist/components/announcement/Announcement.svelte +53 -61
  3. package/dist/components/avatar/Avatar.svelte +30 -12
  4. package/dist/components/avatar/Avatar.svelte.d.ts +2 -2
  5. package/dist/components/button/Button.svelte +41 -44
  6. package/dist/components/card/Card.svelte +4 -6
  7. package/dist/components/chips/Chips.svelte +37 -36
  8. package/dist/components/chips/Chips.svelte.d.ts +1 -1
  9. package/dist/components/confirmation/Confirmation.svelte +6 -6
  10. package/dist/components/confirmation/Confirmation.svelte.d.ts +2 -2
  11. package/dist/components/controls/attach-file/AttachFile.svelte +18 -41
  12. package/dist/components/controls/attach-file/FileManager.svelte +16 -30
  13. package/dist/components/controls/attach-file/Warnings.svelte +13 -15
  14. package/dist/components/controls/input/Input.svelte +46 -72
  15. package/dist/components/controls/input/InputIcon.svelte +13 -13
  16. package/dist/components/controls/label/Label.svelte +5 -9
  17. package/dist/components/controls/radio-group/RadioGroup.svelte +25 -39
  18. package/dist/components/controls/select/Select.svelte +49 -71
  19. package/dist/components/controls/textarea/TextArea.svelte +36 -45
  20. package/dist/components/controls/toggle/Toggle.svelte +35 -37
  21. package/dist/components/delete-confirmation/DeleteConfirmation.svelte +3 -5
  22. package/dist/components/error-page/ErrorPage.svelte +9 -18
  23. package/dist/components/footer/Footer.svelte +9 -14
  24. package/dist/components/footer/Footer.svelte.d.ts +0 -1
  25. package/dist/components/footer/FooterLogo.svelte +16 -0
  26. package/dist/components/footer/FooterLogo.svelte.d.ts +26 -0
  27. package/dist/components/form/Form.svelte +1 -1
  28. package/dist/components/header/Header.svelte +39 -45
  29. package/dist/components/header/HeaderAccount.svelte +21 -33
  30. package/dist/components/header/HeaderLoader.svelte +13 -8
  31. package/dist/components/highlight-panel/HighlightPanel.svelte +29 -34
  32. package/dist/components/home/Home.svelte +18 -36
  33. package/dist/components/link/Link.svelte +1 -1
  34. package/dist/components/menu/Menu.svelte +16 -21
  35. package/dist/components/menu/MenuItem.svelte +25 -29
  36. package/dist/components/menu/Sidebar.svelte +32 -40
  37. package/dist/components/menu/utils.d.ts +1 -1
  38. package/dist/components/menu/utils.js +6 -7
  39. package/dist/components/modal/Modal.svelte +8 -11
  40. package/dist/components/modal/ModalContent.svelte +3 -3
  41. package/dist/components/modal/ModalFooter.svelte +5 -5
  42. package/dist/components/modal/ModalHeader.svelte +6 -11
  43. package/dist/components/notification/Notification.svelte +20 -27
  44. package/dist/components/processing/Processing.svelte +9 -16
  45. package/dist/components/progress-page/ProgressPage.svelte +13 -18
  46. package/dist/components/progress-wizard/ProgressWizard.svelte +43 -54
  47. package/dist/components/search/Search.svelte +24 -29
  48. package/dist/components/spinner/Spinner.svelte +1 -1
  49. package/dist/components/switcher/Switcher.svelte +14 -23
  50. package/dist/components/table/ActionsColumn.svelte +13 -33
  51. package/dist/components/table/AdvancedFilter.svelte +39 -74
  52. package/dist/components/table/Body.svelte +9 -18
  53. package/dist/components/table/ColumnVisibilityDropdown.svelte +24 -55
  54. package/dist/components/table/Footer.svelte +2 -4
  55. package/dist/components/table/Header.svelte +23 -44
  56. package/dist/components/table/PageSize.svelte +24 -36
  57. package/dist/components/table/Pagination.svelte +49 -35
  58. package/dist/components/table/RowCheckBox.svelte +5 -12
  59. package/dist/components/table/Skeleton.svelte +16 -25
  60. package/dist/components/table/Table.svelte +50 -38
  61. package/dist/components/table/Table.svelte.d.ts +5 -1
  62. package/dist/components/table/types.d.ts +9 -1
  63. package/dist/components/table/utils.d.ts +5 -1
  64. package/dist/components/table/utils.js +8 -8
  65. package/dist/components/tabs/Tabs.svelte +16 -20
  66. package/dist/components/toast/Toast.svelte +27 -30
  67. package/dist/components/tooltip/Tooltip.svelte +15 -19
  68. package/dist/components/waffle/Waffle.svelte +9 -13
  69. package/dist/components/waffle/WaffleItems.svelte +10 -13
  70. package/dist/styles/index.css +3 -0
  71. package/dist/styles/reset.css +19 -0
  72. package/dist/styles/tokens/index.css +2 -0
  73. package/dist/styles/tokens/primitives/borders.css +17 -0
  74. package/dist/styles/tokens/primitives/colors.css +41 -0
  75. package/dist/styles/tokens/primitives/index.css +7 -0
  76. package/dist/styles/tokens/primitives/motion.css +11 -0
  77. package/dist/styles/tokens/primitives/opacity.css +6 -0
  78. package/dist/styles/tokens/primitives/shadows.css +11 -0
  79. package/dist/styles/tokens/primitives/sizing.css +19 -0
  80. package/dist/styles/tokens/primitives/typography.css +13 -0
  81. package/dist/styles/tokens/semantic/colors.css +78 -0
  82. package/dist/styles/tokens/semantic/index.css +2 -0
  83. package/dist/styles/tokens/semantic/shadows.css +9 -0
  84. package/dist/styles/utilities.css +73 -0
  85. package/dist/utils/index.d.ts +1 -0
  86. package/dist/utils/index.js +1 -0
  87. package/dist/utils/url.d.ts +3 -0
  88. package/dist/utils/url.js +15 -0
  89. package/package.json +3 -2
@@ -15,9 +15,9 @@
15
15
 
16
16
  <aside class={['notification-container', !disableBorder && 'border']}>
17
17
  <span class="status-indicator {type}"></span>
18
- <div class="notification-content">
18
+ <div class="notification-content spi-text-regular-2">
19
19
  {#if title}
20
- <span class="title">{title}</span>
20
+ <span class="title spi-text-bold-2">{title}</span>
21
21
  {/if}
22
22
  {@render content()}
23
23
  </div>
@@ -27,52 +27,45 @@
27
27
  .notification-container {
28
28
  width: 100%;
29
29
  height: 100%;
30
- gap: 16px;
30
+ gap: var(--spi-size-4);
31
31
  display: flex;
32
32
  }
33
33
 
34
34
  .border {
35
- border: 1px solid #e0e5e8;
36
- border-radius: 8px;
37
- padding: 16px;
35
+ border: var(--spi-border-1) solid var(--spi-color-border-default);
36
+ border-radius: var(--spi-rounded-lg);
37
+ padding: var(--spi-size-4);
38
38
  }
39
39
 
40
40
  .status-indicator {
41
- width: 8px;
42
- border-radius: 4px;
43
- background-color: var(--toast-bg);
44
- }
45
-
46
- .notification-content {
47
- flex-direction: column;
48
- flex: 1 1 0;
49
- gap: 4px;
50
- display: flex;
51
- font-size: 14px;
52
- line-height: 20px;
53
- }
54
-
55
- .title {
56
- font-weight: 700;
41
+ width: var(--spi-size-2);
42
+ border-radius: var(--spi-rounded-sm);
57
43
  }
58
44
 
59
45
  .status-indicator.info {
60
- --toast-bg: #472aff;
46
+ background-color: var(--spi-color-primary-base);
61
47
  }
62
48
 
63
49
  .status-indicator.warning {
64
- --toast-bg: #e87d1e;
50
+ background-color: var(--spi-color-warning-base);
65
51
  }
66
52
 
67
53
  .status-indicator.danger {
68
- --toast-bg: #dc182c;
54
+ background-color: var(--spi-color-danger-base);
69
55
  }
70
56
 
71
57
  .status-indicator.neutral {
72
- --toast-bg: #6b7180;
58
+ background-color: var(--spi-color-neutral-dark);
73
59
  }
74
60
 
75
61
  .status-indicator.success {
76
- --toast-bg: #008556;
62
+ background-color: var(--spi-color-success-base);
63
+ }
64
+
65
+ .notification-content {
66
+ flex-direction: column;
67
+ flex: 1 1 0;
68
+ gap: var(--spi-size-1);
69
+ display: flex;
77
70
  }
78
71
  </style>
@@ -28,9 +28,9 @@
28
28
  >
29
29
  <defs>
30
30
  <linearGradient id="processingGradient" x1="1.5%" y1="38%" x2="98.5%" y2="62%">
31
- <stop offset="0%" stop-color="#472aff" />
32
- <stop offset="65.86%" stop-color="#392d9c" />
33
- <stop offset="100%" stop-color="#000000" />
31
+ <stop offset="0%" style="stop-color: var(--spi-color-primary-base)" />
32
+ <stop offset="65.86%" style="stop-color: var(--spi-color-primary-dark)" />
33
+ <stop offset="100%" style="stop-color: var(--spi-color-text-primary)" />
34
34
  </linearGradient>
35
35
  </defs>
36
36
  <path
@@ -38,9 +38,9 @@
38
38
  />
39
39
  </svg>
40
40
  <div class="processing-content">
41
- <h2 class="processing-title">{title}</h2>
41
+ <h2 class="processing-title spi-text-bold-4">{title}</h2>
42
42
  {#if text}
43
- <p class="processing-text">{text}</p>
43
+ <p class="processing-text spi-text-regular-3">{text}</p>
44
44
  {/if}
45
45
  </div>
46
46
  </div>
@@ -64,29 +64,22 @@
64
64
  flex-direction: column;
65
65
  align-items: center;
66
66
  text-align: center;
67
- gap: 24px;
67
+ gap: var(--spi-size-6);
68
68
  }
69
69
 
70
70
  .processing-content {
71
71
  display: flex;
72
72
  flex-direction: column;
73
- gap: 8px;
74
- }
75
-
76
- .processing-title {
77
- font-size: 18px;
78
- font-weight: 700;
73
+ gap: var(--spi-size-2);
79
74
  }
80
75
 
81
76
  .processing-text {
82
- font-size: 16px;
83
77
  white-space: pre-line;
84
- line-height: 1.5;
85
78
  }
86
79
 
87
80
  .processing-icon {
88
- width: 32px;
89
- height: 32px;
81
+ width: var(--spi-size-8);
82
+ height: var(--spi-size-8);
90
83
  animation: rotate 2s linear infinite;
91
84
  }
92
85
 
@@ -23,12 +23,12 @@
23
23
  <article class="progress-page">
24
24
  <span class="material-icons-outlined progress-icon">{iconName}</span>
25
25
  <div class="progress-content">
26
- <p class="progress-title">{title}</p>
26
+ <p class="progress-title spi-text-bold-4">{title}</p>
27
27
  {#if description}
28
- <p class="progress-description">{description}</p>
28
+ <p class="progress-description spi-text-regular-2">{description}</p>
29
29
  {/if}
30
30
  {#if documentationUrl}
31
- <p class="progress-documentation">
31
+ <p class="progress-documentation spi-text-regular-2">
32
32
  To see more details check
33
33
  <a rel="noreferrer" class="progress-link" href={documentationUrl} target="_blank">
34
34
  our documentation.
@@ -47,13 +47,13 @@
47
47
  display: flex;
48
48
  flex-direction: column;
49
49
  align-items: center;
50
- padding: 24px;
50
+ padding: var(--spi-size-6);
51
51
  max-width: 350px;
52
- gap: 24px;
52
+ gap: var(--spi-size-6);
53
53
  }
54
54
 
55
55
  .progress-icon {
56
- color: #472aff;
56
+ color: var(--spi-color-primary-base);
57
57
  font-size: 32px;
58
58
  }
59
59
 
@@ -61,25 +61,20 @@
61
61
  display: flex;
62
62
  flex-direction: column;
63
63
  text-align: center;
64
- gap: 8px;
64
+ gap: var(--spi-size-2);
65
65
  }
66
66
 
67
67
  .progress-title {
68
- font-size: 18px;
69
- font-weight: 700;
70
- color: #000;
71
- line-height: 1.4;
68
+ color: var(--spi-color-text-primary);
72
69
  }
73
70
 
74
71
  .progress-description,
75
72
  .progress-documentation {
76
- font-size: 14px;
77
- color: #000;
78
- line-height: 1.4;
73
+ color: var(--spi-color-text-primary);
79
74
  }
80
75
 
81
76
  .progress-link {
82
- color: #472aff;
77
+ color: var(--spi-color-primary-base);
83
78
  text-decoration: none;
84
79
  }
85
80
 
@@ -88,8 +83,8 @@
88
83
  }
89
84
 
90
85
  .progress-link:focus {
91
- outline: 2px solid #472aff;
92
- outline-offset: 2px;
93
- border-radius: 2px;
86
+ outline: var(--spi-border-2) solid var(--spi-color-primary-base);
87
+ outline-offset: var(--spi-border-2);
88
+ border-radius: var(--spi-rounded-xs);
94
89
  }
95
90
  </style>
@@ -94,7 +94,7 @@
94
94
  ]}
95
95
  >
96
96
  <div class="time-line">
97
- <span class="circle">
97
+ <span class="circle spi-text-bold-1">
98
98
  {circleContent()}
99
99
  </span>
100
100
  <span class="line"></span>
@@ -105,9 +105,9 @@
105
105
  disabled={disabled || readonly}
106
106
  onclick={() => (currentStep = stepIndex)}
107
107
  >
108
- <h2>{step.title}</h2>
108
+ <h2 class="spi-text-bold-3">{step.title}</h2>
109
109
  {#if step.description}
110
- <p>{step.description}</p>
110
+ <p class="spi-text-regular-1">{step.description}</p>
111
111
  {/if}
112
112
  </button>
113
113
  </li>
@@ -147,16 +147,10 @@
147
147
 
148
148
  <style>
149
149
  .progress-wizard {
150
- --primary-color: #472aff;
151
- --red-5: #c41e3a;
152
- --red-2: #fdedec;
153
- --info-1: #eaecff;
154
- --gray-1: #f4f6f8;
155
- --gray-2: #e0e5e8;
156
- --gray-3: #aeb1b9;
157
- --gray-4: #6b7180;
158
- --border-wizard: 1px solid var(--gray-3);
159
- --circle-size: 32px;
150
+ --border-wizard: var(--spi-border-1) solid var(--spi-color-border-medium);
151
+ --border-circle: var(--spi-border-2) solid var(--spi-color-primary-base);
152
+ --border-readonly: var(--spi-border-2) solid var(--spi-color-disabled-bg);
153
+ --circle-size: var(--spi-size-8);
160
154
 
161
155
  display: flex;
162
156
  flex-direction: column;
@@ -180,8 +174,8 @@
180
174
  display: grid;
181
175
  grid-template-columns: auto 1fr;
182
176
  max-height: 70px;
183
- padding: 16px 24px;
184
- gap: 8px;
177
+ padding: var(--spi-size-4) var(--spi-size-6);
178
+ gap: var(--spi-size-2);
185
179
  align-items: center;
186
180
  border: none;
187
181
  }
@@ -199,11 +193,9 @@
199
193
  height: var(--circle-size);
200
194
  align-items: center;
201
195
  justify-content: center;
202
- font-size: 12px;
203
- font-weight: 600;
204
196
  border-radius: 50%;
205
- background: var(--info-1);
206
- color: var(--primary-color);
197
+ background: var(--spi-color-primary-lighter);
198
+ color: var(--spi-color-primary-base);
207
199
  }
208
200
 
209
201
  .line {
@@ -211,8 +203,8 @@
211
203
  top: var(--circle-size);
212
204
  width: 1px;
213
205
  height: 50px;
214
- background: var(--gray-2);
215
- transition: background 500ms ease;
206
+ background: var(--spi-color-border-default);
207
+ transition: background var(--spi-duration-slower) var(--spi-ease-default);
216
208
  }
217
209
 
218
210
  .progress-wizard-step:last-child .time-line .line {
@@ -220,56 +212,53 @@
220
212
  }
221
213
 
222
214
  .details {
223
- padding: 4px 8px;
215
+ padding: var(--spi-size-1) var(--spi-size-2);
224
216
  text-align: left;
225
217
  border: none;
226
- border-radius: 8px;
218
+ border-radius: var(--spi-rounded-lg);
227
219
  background: transparent;
228
220
  cursor: pointer;
229
221
 
230
222
  h2 {
231
- font-size: 16px;
232
- font-weight: 600;
233
- color: #000;
223
+ color: var(--spi-color-text-primary);
234
224
  }
235
225
 
236
226
  p {
237
- font-size: 12px;
238
227
  word-break: keep-all;
239
- color: var(--gray-4);
228
+ color: var(--spi-color-text-muted);
240
229
  }
241
230
  }
242
231
 
243
232
  .details:hover {
244
- background: var(--gray-1);
233
+ background: var(--spi-color-surface-subtle);
245
234
  }
246
235
 
247
236
  .details:focus-visible:not(:disabled) {
248
- background: var(--gray-1);
249
- box-shadow: 0px 0px 0px 3px var(--info-1);
237
+ background: var(--spi-color-surface-subtle);
238
+ box-shadow: 0 0 0 var(--spi-border-2) var(--spi-color-focus-ring);
250
239
  outline: none;
251
240
  }
252
241
 
253
242
  .progress-wizard-content {
254
243
  flex: 1;
255
- padding: 24px;
244
+ padding: var(--spi-size-6);
256
245
  }
257
246
 
258
247
  .progress-wizard-footer {
259
248
  display: flex;
260
- padding: 24px;
249
+ padding: var(--spi-size-6);
261
250
  border-top: var(--border-wizard);
262
251
 
263
252
  .actions {
264
253
  display: flex;
265
- gap: 12px;
254
+ gap: var(--spi-size-3);
266
255
  margin-left: auto;
267
256
  }
268
257
  }
269
258
 
270
259
  .progress-wizard-step.active {
271
260
  .time-line .circle {
272
- border: 2px solid var(--primary-color);
261
+ border: var(--border-circle);
273
262
  }
274
263
 
275
264
  .details {
@@ -278,7 +267,7 @@
278
267
 
279
268
  h2,
280
269
  p {
281
- color: var(--primary-color);
270
+ color: var(--spi-color-primary-base);
282
271
  }
283
272
  }
284
273
  }
@@ -286,21 +275,21 @@
286
275
  .progress-wizard-steps:is(.readonly) {
287
276
  .progress-wizard-step:not(.active) {
288
277
  .line {
289
- background: var(--gray-2);
278
+ background: var(--spi-color-border-default);
290
279
  }
291
280
 
292
281
  .circle {
293
- border: 2px solid var(--gray-2);
294
- background: var(--gray-2);
295
- color: var(--gray-4);
282
+ border: var(--border-readonly);
283
+ background: var(--spi-color-disabled-bg);
284
+ color: var(--spi-color-text-muted);
296
285
  }
297
286
 
298
287
  .details {
299
288
  h2 {
300
- color: var(--gray-4);
289
+ color: var(--spi-color-text-muted);
301
290
  }
302
291
  p {
303
- color: var(--gray-3);
292
+ color: var(--spi-color-text-disabled);
304
293
  }
305
294
  }
306
295
 
@@ -313,28 +302,28 @@
313
302
 
314
303
  .progress-wizard-steps:is(.editing-mode) {
315
304
  .progress-wizard-step.previous .time-line .line {
316
- background: var(--primary-color);
305
+ background: var(--spi-color-primary-base);
317
306
  }
318
307
 
319
308
  .progress-wizard-step.previous.valid .time-line .circle {
320
- color: white;
321
- background: var(--primary-color);
322
- border: 2px solid var(--primary-color);
309
+ color: var(--spi-color-text-inverse);
310
+ background: var(--spi-color-primary-base);
311
+ border: var(--border-circle);
323
312
  }
324
313
 
325
314
  .progress-wizard-step.previous.invalid .time-line .circle {
326
- color: var(--red-5);
327
- background: var(--red-2);
328
- border: 2px solid var(--red-5);
315
+ color: var(--spi-color-text-danger);
316
+ background: var(--spi-color-danger-lighter);
317
+ border: var(--spi-border-2) solid var(--spi-color-border-danger);
329
318
  }
330
319
 
331
320
  .progress-wizard-step:is(.disabled, .previous.disabled) {
332
321
  .details {
333
322
  h2 {
334
- color: var(--gray-4);
323
+ color: var(--spi-color-text-muted);
335
324
  }
336
325
  p {
337
- color: var(--gray-3);
326
+ color: var(--spi-color-text-disabled);
338
327
  }
339
328
  }
340
329
  .details:hover {
@@ -344,9 +333,9 @@
344
333
 
345
334
  .time-line {
346
335
  .circle {
347
- color: var(--gray-4);
348
- background: var(--gray-2);
349
- border: 2px solid var(--gray-2);
336
+ color: var(--spi-color-text-muted);
337
+ background: var(--spi-color-disabled-bg);
338
+ border: var(--border-readonly);
350
339
  }
351
340
  }
352
341
  }
@@ -32,7 +32,7 @@
32
32
  };
33
33
  </script>
34
34
 
35
- <div class="search-container" class:disabled>
35
+ <div class="search-container spi-text-regular-2" class:disabled>
36
36
  <div class="search-wrapper">
37
37
  <svg
38
38
  class="search-icon"
@@ -62,7 +62,9 @@
62
62
  onclick={handleClear}
63
63
  aria-label="Clear search"
64
64
  >
65
- <span class="material-icons-outlined" aria-hidden="true">close</span>
65
+ <span class="material-icons-outlined spi-text-regular-3" aria-hidden="true"
66
+ >close</span
67
+ >
66
68
  </button>
67
69
  {/if}
68
70
  </div>
@@ -71,8 +73,6 @@
71
73
  <style>
72
74
  .search-container {
73
75
  position: relative;
74
- font-size: 14px;
75
- line-height: 20px;
76
76
  }
77
77
 
78
78
  .search-wrapper {
@@ -80,30 +80,29 @@
80
80
  display: flex;
81
81
  align-items: center;
82
82
  width: 100%;
83
- border-radius: 8px;
84
- border: 1px solid #6b7180;
85
- background: #fff;
83
+ border-radius: var(--spi-rounded-lg);
84
+ border: var(--spi-border-1) solid var(--spi-color-border-strong);
85
+ background: var(--spi-color-surface-default);
86
86
  transition:
87
- border-color 0.2s ease-in-out,
88
- box-shadow 0.2s ease-in-out;
87
+ border-color var(--spi-duration-normal) var(--spi-ease-in-out),
88
+ box-shadow var(--spi-duration-normal) var(--spi-ease-in-out);
89
89
  }
90
90
 
91
91
  .search-wrapper:hover:not(:has(.search-input:disabled)),
92
92
  .search-wrapper:focus-within {
93
- border-color: #472aff;
93
+ border-color: var(--spi-color-border-focus);
94
94
  }
95
95
 
96
96
  .search-wrapper:focus-within {
97
- box-shadow: 0 0 0 3px rgba(149, 155, 255, 0.3);
97
+ box-shadow: var(--spi-shadow-focus-primary);
98
98
  }
99
99
 
100
100
  .search-input {
101
101
  width: 100%;
102
- padding: 8px 40px 8px 40px;
102
+ padding: var(--spi-size-2) var(--spi-size-10);
103
103
  border: none;
104
104
  background: transparent;
105
- font-size: 14px;
106
- color: #000;
105
+ color: var(--spi-color-text-primary);
107
106
  }
108
107
 
109
108
  .search-input:focus {
@@ -111,7 +110,7 @@
111
110
  }
112
111
 
113
112
  .search-input::placeholder {
114
- color: #6b7180;
113
+ color: var(--spi-color-text-placeholder);
115
114
  }
116
115
 
117
116
  .search-input::-webkit-search-cancel-button,
@@ -124,26 +123,26 @@
124
123
  position: absolute;
125
124
  top: 50%;
126
125
  transform: translateY(-50%);
127
- color: #6b7180;
126
+ color: var(--spi-color-text-muted);
128
127
  }
129
128
 
130
129
  .search-icon {
131
- left: 12px;
130
+ left: var(--spi-size-3);
132
131
  pointer-events: none;
133
132
  width: 18px;
134
133
  height: 18px;
135
134
  }
136
135
 
137
136
  .clear-button {
138
- right: 12px;
137
+ right: var(--spi-size-3);
139
138
  background: none;
140
139
  border: none;
141
- padding: 4px;
140
+ padding: var(--spi-size-1);
142
141
  cursor: pointer;
143
- border-radius: 4px;
142
+ border-radius: var(--spi-rounded-sm);
144
143
  transition:
145
- color 0.2s ease-in-out,
146
- background-color 0.2s ease-in-out;
144
+ color var(--spi-duration-normal) var(--spi-ease-in-out),
145
+ background-color var(--spi-duration-normal) var(--spi-ease-in-out);
147
146
  display: flex;
148
147
  align-items: center;
149
148
  justify-content: center;
@@ -151,20 +150,16 @@
151
150
 
152
151
  .clear-button:hover,
153
152
  .clear-button:focus {
154
- color: #000;
153
+ color: var(--spi-color-text-primary);
155
154
  outline: none;
156
155
  }
157
156
 
158
- .clear-button span {
159
- font-size: 16px;
160
- }
161
157
  .disabled .search-wrapper {
162
- border-color: #d1d5db;
163
- background-color: #f3f4f6;
158
+ border-color: var(--spi-color-disabled-border);
159
+ background-color: var(--spi-color-disabled-bg);
164
160
  }
165
161
 
166
162
  .disabled .search-input {
167
- color: #6b7180;
168
163
  cursor: not-allowed;
169
164
  }
170
165
 
@@ -40,7 +40,7 @@
40
40
  height: 100%;
41
41
  top: 0;
42
42
  left: 0;
43
- background-color: rgba(255, 255, 255, 0.8);
43
+ background-color: color-mix(in srgb, var(--spi-color-surface-default) 80%, transparent);
44
44
  z-index: 1000;
45
45
  }
46
46
 
@@ -22,7 +22,7 @@
22
22
  {#each originalOptions as option, index (index)}
23
23
  <button
24
24
  type="button"
25
- class={['switcher-option', option.value === value && 'active']}
25
+ class={['switcher-option spi-text-medium-2', option.value === value && 'active']}
26
26
  onclick={() => (value = option.value)}
27
27
  >
28
28
  {option.label}
@@ -32,49 +32,40 @@
32
32
 
33
33
  <style>
34
34
  .switcher-container {
35
- --primary-color: #472aff;
36
- --white: #fff;
37
- --info-1: #eaecff;
38
- --gray-1: #f4f6f8;
39
- --gray-3: #aeb1b9;
40
- --gray-4: #6b7180;
41
-
42
35
  display: flex;
43
36
  flex-wrap: wrap;
44
37
  width: fit-content;
45
- padding: 4px;
46
- gap: 12px;
47
- border: 1px solid var(--gray-3);
48
- border-radius: 8px;
38
+ padding: var(--spi-size-1);
39
+ gap: var(--spi-size-3);
40
+ border: var(--spi-border-1) solid var(--spi-color-border-medium);
41
+ border-radius: var(--spi-rounded-lg);
49
42
  }
50
43
 
51
44
  .switcher-container > .switcher-option {
52
45
  cursor: pointer;
53
46
  border: none;
54
- padding: 4px 20px;
55
- font-size: 14px;
56
- color: var(--gray-4);
57
- font-weight: 500;
58
- border-radius: 8px;
47
+ padding: var(--spi-size-1) var(--spi-size-5);
48
+ color: var(--spi-color-text-muted);
49
+ border-radius: var(--spi-rounded-lg);
59
50
  background: none;
60
51
  }
61
52
 
62
53
  .switcher-container > .switcher-option:hover {
63
- background: var(--gray-1);
54
+ background: var(--spi-color-surface-subtle);
64
55
  }
65
56
 
66
57
  .switcher-container > .switcher-option:focus-visible {
67
- box-shadow: 0px 0px 0px 3px #959bff;
58
+ box-shadow: var(--spi-shadow-focus-primary);
68
59
  outline: none;
69
60
  }
70
61
 
71
62
  .switcher-container > .switcher-option.active {
72
- color: var(--white);
73
- background: var(--primary-color);
74
- transition: background 0.2s ease-in-out;
63
+ color: var(--spi-color-text-inverse);
64
+ background: var(--spi-color-primary-base);
65
+ transition: background var(--spi-duration-normal) var(--spi-ease-in-out);
75
66
  }
76
67
 
77
68
  .switcher-container > .switcher-option.active:hover {
78
- background: #3520bf;
69
+ background: var(--spi-color-primary-dark);
79
70
  }
80
71
  </style>