@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
@@ -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>;
@@ -3,8 +3,8 @@
3
3
 
4
4
  interface Props {
5
5
  title: string;
6
- confirmationText: string;
7
- confirmButtonText?: string;
6
+ message: string;
7
+ confirmButtonLabel?: string;
8
8
  show?: boolean;
9
9
  onconfirm: () => Promise<string | void> | string | void;
10
10
  onclose?: VoidFunction;
@@ -12,8 +12,8 @@
12
12
 
13
13
  let {
14
14
  title,
15
- confirmationText,
16
- confirmButtonText = 'Proceed',
15
+ message,
16
+ confirmButtonLabel = 'Proceed',
17
17
  show = $bindable(false),
18
18
  onconfirm,
19
19
  onclose
@@ -37,8 +37,8 @@
37
37
 
38
38
  <Modal {title} bind:show {onclose}>
39
39
  <Spinner show={isLoading} />
40
- <p>{confirmationText}</p>
40
+ <p class="spi-text-regular-2">{message}</p>
41
41
  {#snippet footer()}
42
- <Button type="button" onclick={handleConfirm}>{confirmButtonText}</Button>
42
+ <Button type="button" onclick={handleConfirm}>{confirmButtonLabel}</Button>
43
43
  {/snippet}
44
44
  </Modal>
@@ -1,7 +1,7 @@
1
1
  interface Props {
2
2
  title: string;
3
- confirmationText: string;
4
- confirmButtonText?: string;
3
+ message: string;
4
+ confirmButtonLabel?: string;
5
5
  show?: boolean;
6
6
  onconfirm: () => Promise<string | void> | string | void;
7
7
  onclose?: VoidFunction;
@@ -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 {