@softwareone/spi-sv5-library 1.14.4 → 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 (79) 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 +1 -1
  10. package/dist/components/controls/attach-file/AttachFile.svelte +18 -41
  11. package/dist/components/controls/attach-file/FileManager.svelte +16 -30
  12. package/dist/components/controls/attach-file/Warnings.svelte +13 -15
  13. package/dist/components/controls/input/Input.svelte +46 -72
  14. package/dist/components/controls/input/InputIcon.svelte +13 -13
  15. package/dist/components/controls/label/Label.svelte +5 -9
  16. package/dist/components/controls/radio-group/RadioGroup.svelte +25 -39
  17. package/dist/components/controls/select/Select.svelte +49 -71
  18. package/dist/components/controls/textarea/TextArea.svelte +36 -45
  19. package/dist/components/controls/toggle/Toggle.svelte +35 -37
  20. package/dist/components/delete-confirmation/DeleteConfirmation.svelte +1 -1
  21. package/dist/components/error-page/ErrorPage.svelte +9 -18
  22. package/dist/components/footer/Footer.svelte +6 -7
  23. package/dist/components/form/Form.svelte +1 -1
  24. package/dist/components/header/Header.svelte +39 -45
  25. package/dist/components/header/HeaderAccount.svelte +21 -33
  26. package/dist/components/header/HeaderLoader.svelte +13 -8
  27. package/dist/components/highlight-panel/HighlightPanel.svelte +29 -34
  28. package/dist/components/home/Home.svelte +18 -36
  29. package/dist/components/link/Link.svelte +1 -1
  30. package/dist/components/menu/Menu.svelte +12 -12
  31. package/dist/components/menu/MenuItem.svelte +25 -29
  32. package/dist/components/menu/Sidebar.svelte +32 -40
  33. package/dist/components/modal/Modal.svelte +8 -12
  34. package/dist/components/modal/ModalContent.svelte +3 -3
  35. package/dist/components/modal/ModalFooter.svelte +5 -5
  36. package/dist/components/modal/ModalHeader.svelte +6 -11
  37. package/dist/components/notification/Notification.svelte +20 -27
  38. package/dist/components/processing/Processing.svelte +9 -16
  39. package/dist/components/progress-page/ProgressPage.svelte +13 -18
  40. package/dist/components/progress-wizard/ProgressWizard.svelte +43 -54
  41. package/dist/components/search/Search.svelte +24 -29
  42. package/dist/components/spinner/Spinner.svelte +1 -1
  43. package/dist/components/switcher/Switcher.svelte +14 -23
  44. package/dist/components/table/ActionsColumn.svelte +13 -33
  45. package/dist/components/table/AdvancedFilter.svelte +39 -74
  46. package/dist/components/table/Body.svelte +9 -18
  47. package/dist/components/table/ColumnVisibilityDropdown.svelte +24 -55
  48. package/dist/components/table/Footer.svelte +2 -4
  49. package/dist/components/table/Header.svelte +23 -44
  50. package/dist/components/table/PageSize.svelte +24 -36
  51. package/dist/components/table/Pagination.svelte +49 -35
  52. package/dist/components/table/RowCheckBox.svelte +5 -12
  53. package/dist/components/table/Skeleton.svelte +16 -25
  54. package/dist/components/table/Table.svelte +50 -38
  55. package/dist/components/table/Table.svelte.d.ts +5 -1
  56. package/dist/components/table/types.d.ts +9 -1
  57. package/dist/components/table/utils.d.ts +5 -1
  58. package/dist/components/table/utils.js +8 -8
  59. package/dist/components/tabs/Tabs.svelte +16 -20
  60. package/dist/components/toast/Toast.svelte +27 -30
  61. package/dist/components/tooltip/Tooltip.svelte +15 -19
  62. package/dist/components/waffle/Waffle.svelte +9 -13
  63. package/dist/components/waffle/WaffleItems.svelte +10 -13
  64. package/dist/styles/index.css +3 -0
  65. package/dist/styles/reset.css +19 -0
  66. package/dist/styles/tokens/index.css +2 -0
  67. package/dist/styles/tokens/primitives/borders.css +17 -0
  68. package/dist/styles/tokens/primitives/colors.css +41 -0
  69. package/dist/styles/tokens/primitives/index.css +7 -0
  70. package/dist/styles/tokens/primitives/motion.css +11 -0
  71. package/dist/styles/tokens/primitives/opacity.css +6 -0
  72. package/dist/styles/tokens/primitives/shadows.css +11 -0
  73. package/dist/styles/tokens/primitives/sizing.css +19 -0
  74. package/dist/styles/tokens/primitives/typography.css +13 -0
  75. package/dist/styles/tokens/semantic/colors.css +78 -0
  76. package/dist/styles/tokens/semantic/index.css +2 -0
  77. package/dist/styles/tokens/semantic/shadows.css +9 -0
  78. package/dist/styles/utilities.css +73 -0
  79. package/package.json +3 -2
@@ -2,70 +2,71 @@
2
2
  import { ChipType } from './enums.js';
3
3
 
4
4
  interface Props {
5
+ text: string;
5
6
  type?: ChipType;
6
- text?: string;
7
7
  }
8
8
 
9
- let { type = ChipType.Info, text = type.charAt(0).toUpperCase() + type.slice(1) }: Props =
10
- $props();
9
+ let { text, type = ChipType.Info }: Props = $props();
11
10
  </script>
12
11
 
13
- <div class="chip {type}">
12
+ <div class={['chip', 'spi-text-medium-2', type]}>
14
13
  {text}
15
14
  </div>
16
15
 
17
16
  <style>
18
17
  .chip {
19
18
  display: inline-block;
20
- font-size: 14px;
21
- font-weight: 500;
22
- line-height: 20px;
23
- background: var(--chip-bg);
24
- color: var(--chip-text);
25
- padding: 2px 8px;
26
- border-radius: 4px;
19
+ padding: 2px var(--spi-size-2);
20
+ border-radius: var(--spi-rounded-sm);
27
21
  cursor: default;
28
22
  }
29
23
 
30
- .chip:hover {
31
- background: var(--chip-bg-hover);
32
- }
33
-
34
24
  .chip:focus {
35
- box-shadow: 0px 0px 0px 3px #959bff;
25
+ box-shadow: var(--spi-shadow-focus-primary);
36
26
  }
27
+
37
28
  .chip.info {
38
- --chip-text: #3520bf;
39
- --chip-bg: #eaecff;
40
- --chip-text-hover: #2b1999;
41
- --chip-bg-hover: #959bff;
29
+ color: var(--spi-color-primary-dark);
30
+ background: var(--spi-color-primary-lighter);
31
+ }
32
+
33
+ .chip.info:hover {
34
+ background: var(--spi-color-primary-light);
42
35
  }
43
36
 
44
37
  .chip.success {
45
- --chip-text: #00784d;
46
- --chip-bg: #e6f9f2;
47
- --chip-text-hover: #005838;
48
- --chip-bg-hover: #80e1ae;
38
+ color: var(--spi-color-success-dark);
39
+ background: var(--spi-color-success-lighter);
40
+ }
41
+
42
+ .chip.success:hover {
43
+ background: var(--spi-color-success-light);
49
44
  }
50
45
 
51
46
  .chip.warning {
52
- --chip-text: #a15d26;
53
- --chip-bg: #fdf2e9;
54
- --chip-text-hover: #733f11;
55
- --chip-bg-hover: #f1b178;
47
+ color: var(--spi-color-warning-dark);
48
+ background: var(--spi-color-warning-lighter);
49
+ }
50
+
51
+ .chip.warning:hover {
52
+ background: var(--spi-color-warning-light);
56
53
  }
57
54
 
58
55
  .chip.error {
59
- --chip-text: #bb1425;
60
- --chip-bg: #fce8ea;
61
- --chip-text-hover: #8f101d;
62
- --chip-bg-hover: #ee8c96;
56
+ color: var(--spi-color-danger-dark);
57
+ background: var(--spi-color-danger-lighter);
58
+ }
59
+
60
+ .chip.error:hover {
61
+ background: var(--spi-color-danger-light);
63
62
  }
64
63
 
65
64
  .chip.neutral {
66
- --chip-text: #434952;
67
- --chip-bg: #f4f6f8;
68
- --chip-text-hover: #25282d;
69
- --chip-bg-hover: #e0e5e8;
65
+ color: var(--spi-color-neutral-darker);
66
+ background: var(--spi-color-neutral-lighter);
67
+ }
68
+
69
+ .chip.neutral:hover {
70
+ background: var(--spi-color-neutral-light);
70
71
  }
71
72
  </style>
@@ -1,7 +1,7 @@
1
1
  import { ChipType } from './enums.js';
2
2
  interface Props {
3
+ text: string;
3
4
  type?: ChipType;
4
- text?: string;
5
5
  }
6
6
  declare const Chips: import("svelte").Component<Props, {}, "">;
7
7
  type Chips = ReturnType<typeof Chips>;
@@ -37,7 +37,7 @@
37
37
 
38
38
  <Modal {title} bind:show {onclose}>
39
39
  <Spinner show={isLoading} />
40
- <p>{message}</p>
40
+ <p class="spi-text-regular-2">{message}</p>
41
41
  {#snippet footer()}
42
42
  <Button type="button" onclick={handleConfirm}>{confirmButtonLabel}</Button>
43
43
  {/snippet}
@@ -152,7 +152,7 @@
152
152
  <div class="container">
153
153
  <Notification type="info">
154
154
  {#snippet content()}
155
- <ul class="message">
155
+ <ul class="message spi-text-regular-2">
156
156
  {#each reviewMessages as message, index (index)}
157
157
  <li>{message}</li>
158
158
  {/each}
@@ -167,8 +167,8 @@
167
167
  {infoTooltip}
168
168
  />
169
169
  <section class="drop-area">
170
- <p class="caption">Drag and drop files here</p>
171
- <p class="text-small">or</p>
170
+ <p class="caption spi-text-regular-2">Drag and drop files here</p>
171
+ <p class="text-small spi-text-regular-1">or</p>
172
172
 
173
173
  <input
174
174
  {@attach loadFiles}
@@ -180,12 +180,12 @@
180
180
  {multiple}
181
181
  onchange={({ currentTarget }) => onChangeInputFile(currentTarget.files)}
182
182
  />
183
- <div class="file-select">
183
+ <div class="file-select spi-text-regular-2">
184
184
  <span>Select file</span>
185
185
  </div>
186
186
  </section>
187
187
  {#if error}
188
- <p class="text-error">
188
+ <p class="text-error spi-text-regular-1">
189
189
  {Array.isArray(error) ? error[0] : error}
190
190
  </p>
191
191
  {/if}
@@ -199,53 +199,31 @@
199
199
 
200
200
  <style>
201
201
  .container {
202
- --color-red: #dc2626;
203
- --color-gray-outer: #434952;
204
- --color-gray-auro: #6b7180;
205
- --color-gray: #e0e5e8;
206
- --color-magentablue: #472aff;
207
- --color-border: #cccccc;
208
- --color-bg-select: #e0e7ff;
209
- --color-text-select: var(--color-magentablue);
210
- --spacing-md: 20px;
211
- --spacing-sm: 10px;
212
- --border-radius-md: 5px;
213
-
214
202
  display: flex;
215
203
  flex-direction: column;
216
- gap: 8px;
204
+ gap: var(--spi-size-2);
217
205
  width: 100%;
218
206
  }
219
207
 
220
- .message {
221
- font-size: 14px;
222
- line-height: 20px;
223
- }
224
-
225
208
  .caption {
226
- font-size: 14px;
227
- line-height: 24px;
228
- color: var(--color-gray-outer);
209
+ color: var(--spi-color-text-secondary);
229
210
  }
230
211
 
231
212
  .text-small {
232
- font-size: 12px;
233
- line-height: 20px;
234
- color: var(--color-gray-auro);
235
- margin-top: 4px;
236
- margin-bottom: 8px;
213
+ color: var(--spi-color-text-muted);
214
+ margin-top: var(--spi-size-1);
215
+ margin-bottom: var(--spi-size-2);
237
216
  }
238
217
 
239
218
  .text-error {
240
- color: var(--color-red);
241
- font-size: 12px;
219
+ color: var(--spi-color-text-danger);
242
220
  }
243
221
 
244
222
  .drop-area {
245
223
  position: relative;
246
- padding: var(--spacing-md);
247
- border: 2px dashed var(--color-border);
248
- border-radius: var(--border-radius-md);
224
+ padding: var(--spi-size-5);
225
+ border: var(--spi-border-2) dashed var(--spi-color-border-medium);
226
+ border-radius: var(--spi-rounded-sm);
249
227
  text-align: center;
250
228
  }
251
229
 
@@ -260,11 +238,10 @@
260
238
 
261
239
  .file-select {
262
240
  display: inline-block;
263
- font-size: 14px;
264
- background: var(--color-bg-select);
265
- color: var(--color-text-select);
266
- padding: var(--spacing-sm) var(--spacing-md);
267
- border-radius: var(--border-radius-md);
241
+ background: var(--spi-color-primary-lighter);
242
+ color: var(--spi-color-primary-base);
243
+ padding: var(--spi-size-3) var(--spi-size-5);
244
+ border-radius: var(--spi-rounded-sm);
268
245
  }
269
246
 
270
247
  .drop-area input[type='file']::before {
@@ -21,7 +21,7 @@
21
21
 
22
22
  <section>
23
23
  {#if fileSizeLimitMB}
24
- <p class="header-file">
24
+ <p class="header-file spi-text-regular-2">
25
25
  {(totalSize / MB_IN_BYTES).toFixed(2)} from {fileSizeLimitMB} MB
26
26
  </p>
27
27
  {/if}
@@ -30,11 +30,11 @@
30
30
  {#if files?.length}
31
31
  {#each Array.from(files) as file, index (index)}
32
32
  <li class="list-detail">
33
- <span class="material-icons-outlined">description</span>
33
+ <span class="material-icons-outlined description-icon">description</span>
34
34
 
35
35
  <span class="item-detail">
36
- <h3 class="file-name">{file.name}</h3>
37
- <p class="file-size">
36
+ <h3 class="file-name spi-text-medium-1">{file.name}</h3>
37
+ <p class="file-size spi-text-regular-1">
38
38
  {(file.size / MB_IN_BYTES).toFixed(2)} MB
39
39
  </p>
40
40
  </span>
@@ -45,7 +45,7 @@
45
45
  class="button-icon"
46
46
  aria-label="Remove file"
47
47
  >
48
- <span class="material-icons-outlined icon-size">close</span>
48
+ <span class="material-icons-outlined spi-text-regular-2">close</span>
49
49
  </button>
50
50
  </li>
51
51
  {/each}
@@ -55,14 +55,12 @@
55
55
 
56
56
  <style>
57
57
  .header-file {
58
- color: var(--color-gray-auro);
58
+ color: var(--spi-color-text-muted);
59
59
  text-align: right;
60
- font-size: 14px;
61
- line-height: 20px;
62
60
  }
63
61
 
64
62
  .container {
65
- margin-top: 8px;
63
+ margin-top: var(--spi-size-2);
66
64
  height: auto;
67
65
  max-height: 208px;
68
66
  overflow-x: hidden;
@@ -70,51 +68,39 @@
70
68
  }
71
69
 
72
70
  .list-detail {
73
- --color-white-anti: #f5f7f9;
74
71
  display: flex;
75
72
  justify-content: space-between;
76
- background-color: var(--color-gray-light, var(--color-white-anti));
77
- border-radius: 8px;
78
- gap: 8px;
79
- padding: 8px;
80
- margin-bottom: 8px;
73
+ background-color: var(--spi-color-surface-subtle);
74
+ border-radius: var(--spi-rounded-lg);
75
+ gap: var(--spi-size-2);
76
+ padding: var(--spi-size-2);
77
+ margin-bottom: var(--spi-size-2);
81
78
  }
82
79
 
83
80
  .item-detail {
84
81
  width: 100%;
85
- padding-left: 8px;
86
- padding-right: 8px;
82
+ padding-left: var(--spi-size-2);
83
+ padding-right: var(--spi-size-2);
87
84
  }
88
85
 
89
86
  .file-name {
90
- font-size: 12px;
91
- line-height: 16px;
92
- font-weight: 500;
93
87
  word-break: break-all;
94
88
  }
95
89
 
96
90
  .file-size {
97
- font-size: 12px;
98
- line-height: 16px;
99
- color: var(--color-gray-auro);
91
+ color: var(--spi-color-text-muted);
100
92
  }
101
93
 
102
94
  .button-icon {
103
95
  display: flex;
104
96
  flex-direction: column;
105
97
  align-items: center;
106
- font-size: 14px;
107
- line-height: 20px;
108
98
  border: none;
109
99
  background-color: transparent;
110
100
  cursor: pointer;
111
101
  }
112
102
 
113
- .material-icons-outlined {
103
+ .material-icons-outlined.description-icon {
114
104
  font-size: 40px;
115
105
  }
116
-
117
- .icon-size {
118
- font-size: 15px;
119
- }
120
106
  </style>
@@ -8,11 +8,11 @@
8
8
  <details class="container">
9
9
  <summary class="header-summary" aria-label="Warnings">
10
10
  <span class="material-icons-outlined">warning</span>
11
- <span>Warnings</span>
11
+ <span class="spi-text-semibold-1">Warnings</span>
12
12
  </summary>
13
13
 
14
14
  <section class="detail-section">
15
- <ul class="list-inside">
15
+ <ul class="list-inside spi-text-regular-1">
16
16
  {#each validationMessages as message, index (index)}
17
17
  <li class="item">
18
18
  {message}
@@ -24,32 +24,30 @@
24
24
 
25
25
  <style>
26
26
  .container {
27
- margin-top: 8px;
28
- font-size: 12px;
29
- line-height: 16px;
27
+ margin-top: var(--spi-size-2);
30
28
  }
31
29
 
32
30
  .header-summary {
33
31
  display: flex;
34
- font-weight: 600;
35
- gap: 4px;
36
- --color: #e67e00;
37
- color: var(--color);
32
+ align-items: center;
33
+ gap: var(--spi-size-1);
34
+ color: var(--spi-color-text-warning);
38
35
  cursor: pointer;
39
- padding: 4px;
40
- border-width: 1px;
41
- border-radius: 4px;
36
+ padding: var(--spi-size-1);
37
+ border-width: var(--spi-border-1);
38
+ border-radius: var(--spi-rounded-sm);
42
39
  border-style: solid;
43
40
  width: max-content;
44
41
  }
42
+
45
43
  .detail-section {
46
- margin-top: 4px;
47
- margin-left: 8px;
44
+ margin-top: var(--spi-size-1);
45
+ margin-left: var(--spi-size-2);
48
46
  }
49
47
 
50
48
  .list-inside {
51
49
  list-style-position: inside;
52
- padding-left: 16px;
50
+ padding-left: var(--spi-size-4);
53
51
  }
54
52
 
55
53
  .item {
@@ -68,6 +68,7 @@
68
68
  {readonly}
69
69
  class={[
70
70
  'form-input',
71
+ 'spi-text-regular-2',
71
72
  disabled && 'form-input-disabled',
72
73
  readonly && 'form-input-readonly',
73
74
  (showIcon || showDatePicker) && 'form-input-with-icon',
@@ -77,7 +78,7 @@
77
78
  />
78
79
 
79
80
  {#if type === 'money' && currency}
80
- <div class="form-input-currency">{currency}</div>
81
+ <div class="form-input-currency spi-text-regular-1">{currency}</div>
81
82
  {/if}
82
83
 
83
84
  {#if showIcon}
@@ -102,12 +103,12 @@
102
103
  </div>
103
104
 
104
105
  {#if description}
105
- <p class="form-message form-message-description">
106
+ <p class="form-message form-message-description spi-text-regular-1">
106
107
  {description}
107
108
  </p>
108
109
  {/if}
109
110
  {#if isInvalid}
110
- <p class="form-message form-message-error">
111
+ <p class="form-message form-message-error spi-text-regular-1">
111
112
  {Array.isArray(error) ? error[0] : error}
112
113
  </p>
113
114
  {/if}
@@ -117,13 +118,7 @@
117
118
  .form-container {
118
119
  display: flex;
119
120
  flex-direction: column;
120
- gap: 8px;
121
- font-size: 14px;
122
- line-height: 20px;
123
- }
124
-
125
- .form-message {
126
- font-size: 12px;
121
+ gap: var(--spi-size-2);
127
122
  }
128
123
 
129
124
  .form-input-wrapper {
@@ -131,38 +126,30 @@
131
126
  display: flex;
132
127
  align-items: center;
133
128
  width: 100%;
134
- border-radius: 8px;
135
- border: 1px solid #6b7180;
136
- background: #fff;
137
- transition: all 0.2s ease-in-out;
129
+ border-radius: var(--spi-rounded-lg);
130
+ border: var(--spi-border-1) solid var(--spi-color-border-strong);
131
+ background: var(--spi-color-surface-default);
132
+ transition: all var(--spi-duration-normal) var(--spi-ease-in-out);
138
133
  }
139
134
 
140
135
  .form-input-wrapper:hover:not(:has(.form-input:disabled)):not(:has(.form-input:read-only)),
141
136
  .form-input-wrapper:focus-within {
142
- border-color: #472aff;
143
- }
144
-
145
- .form-input-wrapper:focus-within,
146
- .form-input-wrapper:not(.money-with-icon):not(.error):not(.success) .form-input:focus-visible {
147
- box-shadow: 0px 0px 0px 3px rgba(149, 155, 255, 0.3);
137
+ border-color: var(--spi-color-border-focus);
148
138
  }
149
139
 
150
- .form-input-wrapper:not(.money-with-icon):not(.error):not(.success) .form-input:focus-visible {
151
- outline: none;
152
- border-color: #472aff;
140
+ .form-input-wrapper:focus-within {
141
+ box-shadow: var(--spi-shadow-focus-primary);
153
142
  }
154
143
 
155
144
  .form-input {
156
- font-size: 14px;
157
- line-height: 20px;
158
145
  display: flex;
159
146
  width: 100%;
160
- padding: 8px 16px;
147
+ padding: var(--spi-size-2) var(--spi-size-4);
161
148
  align-items: center;
162
149
  border: none;
163
- border-radius: 8px;
164
- color: #000;
165
- transition: all 0.2s ease-in-out;
150
+ border-radius: var(--spi-rounded-lg);
151
+ color: var(--spi-color-text-primary);
152
+ transition: all var(--spi-duration-normal) var(--spi-ease-in-out);
166
153
  text-overflow: ellipsis;
167
154
  white-space: nowrap;
168
155
  overflow: hidden;
@@ -177,15 +164,15 @@
177
164
  }
178
165
 
179
166
  .form-input-disabled {
180
- background-color: #e0e5e8;
181
- border-color: #6b7180;
182
- color: #000;
167
+ background-color: var(--spi-color-disabled-bg);
168
+ border-color: var(--spi-color-disabled-border);
169
+ color: var(--spi-color-text-primary);
183
170
  cursor: not-allowed;
184
171
  }
185
172
 
186
173
  .form-input-readonly {
187
- background-color: #f9fafb;
188
- border-color: #d1d5db;
174
+ background-color: var(--spi-color-surface-subtle);
175
+ border-color: var(--spi-color-border-default);
189
176
  cursor: default;
190
177
  }
191
178
 
@@ -195,10 +182,10 @@
195
182
  }
196
183
 
197
184
  .form-input-date::-webkit-calendar-picker-indicator {
198
- opacity: 1;
185
+ opacity: var(--spi-opacity-100);
199
186
  cursor: pointer;
200
- width: 20px;
201
- height: 20px;
187
+ width: var(--spi-size-5);
188
+ height: var(--spi-size-5);
202
189
  position: absolute;
203
190
  right: 10px;
204
191
  top: 50%;
@@ -206,10 +193,10 @@
206
193
  }
207
194
 
208
195
  .form-input-date::-moz-calendar-picker-indicator {
209
- opacity: 1;
196
+ opacity: var(--spi-opacity-100);
210
197
  cursor: pointer;
211
- width: 20px;
212
- height: 20px;
198
+ width: var(--spi-size-5);
199
+ height: var(--spi-size-5);
213
200
  position: absolute;
214
201
  right: 12px;
215
202
  top: 50%;
@@ -234,22 +221,22 @@
234
221
  top: 0;
235
222
  bottom: 0;
236
223
  width: 0.5px;
237
- background-color: #6b7180;
224
+ background-color: var(--spi-color-border-strong);
238
225
  z-index: 1;
239
226
  }
240
227
 
241
228
  .form-input::placeholder,
242
229
  .form-input:disabled::placeholder {
243
- color: #6b7180;
244
- opacity: 1;
230
+ color: var(--spi-color-text-placeholder);
231
+ opacity: var(--spi-opacity-100);
245
232
  }
246
233
 
247
234
  .form-message-error {
248
- color: #dc2626;
235
+ color: var(--spi-color-text-danger);
249
236
  }
250
237
 
251
238
  .form-message-description {
252
- color: #6b7180;
239
+ color: var(--spi-color-text-muted);
253
240
  }
254
241
 
255
242
  .form-input-icon-container {
@@ -260,12 +247,12 @@
260
247
  display: flex;
261
248
  align-items: center;
262
249
  justify-content: center;
263
- gap: 24px;
250
+ gap: var(--spi-size-6);
264
251
  pointer-events: none;
265
252
  }
266
253
 
267
254
  .form-input-icon-container-password {
268
- gap: 8px;
255
+ gap: var(--spi-size-2);
269
256
  }
270
257
 
271
258
  .form-input-wrapper:has(.form-input-icon-container-password) .form-input {
@@ -277,19 +264,11 @@
277
264
  transform: none;
278
265
  }
279
266
 
280
- .form-input-wrapper:not(.money-with-icon):not(.error):not(.success) .form-input:focus-visible {
281
- outline: none;
282
- border-color: #472aff;
283
- box-shadow: 0px 0px 0px 3px rgba(149, 155, 255, 0.3);
284
- }
285
-
286
267
  .form-input-currency {
287
268
  display: flex;
288
269
  align-items: center;
289
- padding: 0 10px 0 10px;
290
- color: #000;
291
- font-size: 12px;
292
- font-weight: 400;
270
+ padding: 0 10px;
271
+ color: var(--spi-color-text-primary);
293
272
  height: 100%;
294
273
  flex-shrink: 0;
295
274
  position: relative;
@@ -299,28 +278,23 @@
299
278
  content: '';
300
279
  position: absolute;
301
280
  left: 0;
302
- top: -8px;
303
- bottom: -8px;
281
+ top: -10px;
282
+ bottom: -10px;
304
283
  width: 0.5px;
305
- background-color: #6b7180;
284
+ background-color: var(--spi-color-border-strong);
306
285
  z-index: 1;
307
286
  }
308
287
 
309
- .form-input-wrapper:focus-within {
310
- border-color: #472aff;
311
- box-shadow: 0px 0px 0px 3px rgba(149, 155, 255, 0.3);
312
- }
313
-
314
288
  .form-input-wrapper.error,
315
289
  .form-input-wrapper.error:hover:not(:has(.form-input:disabled)):not(
316
290
  :has(.form-input:read-only)
317
291
  ),
318
292
  .form-input-wrapper.error:focus-within {
319
- border-color: #dc2626;
293
+ border-color: var(--spi-color-border-danger);
320
294
  }
321
295
 
322
296
  .form-input-wrapper.error:focus-within {
323
- box-shadow: 0px 0px 0px 3px rgba(220, 38, 38, 0.2);
297
+ box-shadow: var(--spi-shadow-focus-danger);
324
298
  }
325
299
 
326
300
  .form-input-wrapper.success,
@@ -328,11 +302,11 @@
328
302
  :has(.form-input:read-only)
329
303
  ),
330
304
  .form-input-wrapper.success:focus-within {
331
- border-color: #008556;
305
+ border-color: var(--spi-color-border-success);
332
306
  }
333
307
 
334
308
  .form-input-wrapper.success:focus-within {
335
- box-shadow: 0px 0px 0px 3px rgba(16, 185, 129, 0.15);
309
+ box-shadow: var(--spi-shadow-focus-success);
336
310
  }
337
311
 
338
312
  .form-input-wrapper:has(.form-input-currency) .form-input-icon-container {
@@ -356,12 +330,12 @@
356
330
 
357
331
  @media (prefers-contrast: high) {
358
332
  .form-input {
359
- border-width: 2px;
333
+ border-width: var(--spi-border-2);
360
334
  }
361
335
 
362
336
  .form-input:focus {
363
- outline: 2px solid;
364
- outline-offset: 2px;
337
+ outline: var(--spi-border-2) solid;
338
+ outline-offset: var(--spi-border-2);
365
339
  }
366
340
  }
367
341