@softwareone/spi-sv5-library 1.14.4 → 1.15.1
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.
- package/dist/components/accordion/Accordion.svelte +14 -23
- package/dist/components/announcement/Announcement.svelte +53 -61
- package/dist/components/avatar/Avatar.svelte +30 -12
- package/dist/components/avatar/Avatar.svelte.d.ts +2 -2
- package/dist/components/button/Button.svelte +43 -46
- package/dist/components/card/Card.svelte +4 -6
- package/dist/components/chips/Chips.svelte +37 -36
- package/dist/components/chips/Chips.svelte.d.ts +1 -1
- package/dist/components/confirmation/Confirmation.svelte +1 -1
- package/dist/components/controls/attach-file/AttachFile.svelte +18 -41
- package/dist/components/controls/attach-file/FileManager.svelte +16 -30
- package/dist/components/controls/attach-file/Warnings.svelte +13 -15
- package/dist/components/controls/input/Input.svelte +46 -72
- package/dist/components/controls/input/InputIcon.svelte +13 -13
- package/dist/components/controls/label/Label.svelte +5 -9
- package/dist/components/controls/radio-group/RadioGroup.svelte +25 -39
- package/dist/components/controls/select/Select.svelte +49 -71
- package/dist/components/controls/textarea/TextArea.svelte +36 -45
- package/dist/components/controls/toggle/Toggle.svelte +35 -37
- package/dist/components/delete-confirmation/DeleteConfirmation.svelte +1 -1
- package/dist/components/error-page/ErrorPage.svelte +9 -18
- package/dist/components/footer/Footer.svelte +6 -7
- package/dist/components/form/Form.svelte +1 -1
- package/dist/components/header/Header.svelte +39 -45
- package/dist/components/header/HeaderAccount.svelte +21 -33
- package/dist/components/header/HeaderLoader.svelte +13 -8
- package/dist/components/highlight-panel/HighlightPanel.svelte +29 -34
- package/dist/components/home/Home.svelte +18 -36
- package/dist/components/link/Link.svelte +1 -1
- package/dist/components/menu/Menu.svelte +12 -12
- package/dist/components/menu/MenuItem.svelte +25 -29
- package/dist/components/menu/Sidebar.svelte +32 -40
- package/dist/components/modal/Modal.svelte +8 -12
- package/dist/components/modal/ModalContent.svelte +3 -3
- package/dist/components/modal/ModalFooter.svelte +5 -5
- package/dist/components/modal/ModalHeader.svelte +6 -11
- package/dist/components/notification/Notification.svelte +20 -27
- package/dist/components/processing/Processing.svelte +9 -16
- package/dist/components/progress-page/ProgressPage.svelte +13 -18
- package/dist/components/progress-wizard/ProgressWizard.svelte +43 -54
- package/dist/components/search/Search.svelte +24 -29
- package/dist/components/spinner/Spinner.svelte +1 -1
- package/dist/components/switcher/Switcher.svelte +14 -23
- package/dist/components/table/ActionsColumn.svelte +13 -33
- package/dist/components/table/AdvancedFilter.svelte +39 -74
- package/dist/components/table/Body.svelte +9 -18
- package/dist/components/table/ColumnVisibilityDropdown.svelte +24 -55
- package/dist/components/table/Footer.svelte +2 -4
- package/dist/components/table/Header.svelte +23 -44
- package/dist/components/table/PageSize.svelte +24 -36
- package/dist/components/table/Pagination.svelte +49 -35
- package/dist/components/table/RowCheckBox.svelte +5 -12
- package/dist/components/table/Skeleton.svelte +16 -25
- package/dist/components/table/Table.svelte +50 -38
- package/dist/components/table/Table.svelte.d.ts +5 -1
- package/dist/components/table/types.d.ts +9 -1
- package/dist/components/table/utils.d.ts +5 -1
- package/dist/components/table/utils.js +8 -8
- package/dist/components/tabs/Tabs.svelte +16 -20
- package/dist/components/toast/Toast.svelte +27 -30
- package/dist/components/tooltip/Tooltip.svelte +15 -19
- package/dist/components/waffle/Waffle.svelte +9 -13
- package/dist/components/waffle/WaffleItems.svelte +10 -13
- package/dist/styles/index.css +3 -0
- package/dist/styles/reset.css +19 -0
- package/dist/styles/tokens/index.css +2 -0
- package/dist/styles/tokens/primitives/borders.css +17 -0
- package/dist/styles/tokens/primitives/colors.css +41 -0
- package/dist/styles/tokens/primitives/index.css +7 -0
- package/dist/styles/tokens/primitives/motion.css +11 -0
- package/dist/styles/tokens/primitives/opacity.css +6 -0
- package/dist/styles/tokens/primitives/shadows.css +11 -0
- package/dist/styles/tokens/primitives/sizing.css +19 -0
- package/dist/styles/tokens/primitives/typography.css +13 -0
- package/dist/styles/tokens/semantic/colors.css +78 -0
- package/dist/styles/tokens/semantic/index.css +2 -0
- package/dist/styles/tokens/semantic/shadows.css +9 -0
- package/dist/styles/utilities.css +73 -0
- package/package.json +3 -2
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
<div class="filter-container">
|
|
89
89
|
<button
|
|
90
90
|
type="button"
|
|
91
|
-
class={['filter-button', hasActiveFilters && 'filter-button--active']}
|
|
91
|
+
class={['filter-button', 'spi-text-regular-2', hasActiveFilters && 'filter-button--active']}
|
|
92
92
|
onclick={toggleModal}
|
|
93
93
|
>
|
|
94
|
-
<span class="material-icons">filter_list</span>
|
|
94
|
+
<span class="material-icons spi-text-regular-5">filter_list</span>
|
|
95
95
|
{#if hasActiveFilters}
|
|
96
96
|
<strong>{filters.length} {filters.length === 1 ? 'Filter' : 'Filters'}</strong>
|
|
97
97
|
{:else}
|
|
@@ -115,14 +115,14 @@
|
|
|
115
115
|
aria-labelledby="filter-dialog-title"
|
|
116
116
|
>
|
|
117
117
|
<div class="filter-header">
|
|
118
|
-
<h2 id="filter-dialog-title" class="filter-title">Filters</h2>
|
|
118
|
+
<h2 id="filter-dialog-title" class="filter-title spi-text-semibold-4">Filters</h2>
|
|
119
119
|
<button
|
|
120
120
|
type="button"
|
|
121
121
|
onclick={toggleModal}
|
|
122
122
|
class="filter-close-button"
|
|
123
123
|
aria-label="Close"
|
|
124
124
|
>
|
|
125
|
-
<span class="material-icons">close</span>
|
|
125
|
+
<span class="material-icons spi-text-regular-5">close</span>
|
|
126
126
|
</button>
|
|
127
127
|
</div>
|
|
128
128
|
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
class="filter-delete-button"
|
|
169
169
|
aria-label="Remove filter"
|
|
170
170
|
>
|
|
171
|
-
<span class="material-icons-outlined">delete</span>
|
|
171
|
+
<span class="material-icons-outlined spi-text-regular-5">delete</span>
|
|
172
172
|
</button>
|
|
173
173
|
</div>
|
|
174
174
|
{/each}
|
|
@@ -204,55 +204,29 @@
|
|
|
204
204
|
|
|
205
205
|
<style>
|
|
206
206
|
.filter-container {
|
|
207
|
-
--color-primary: #472aff;
|
|
208
|
-
--color-primary-light: #eaecff;
|
|
209
|
-
--color-white: #fff;
|
|
210
|
-
--color-text-primary: #25282d;
|
|
211
|
-
--color-text-dark: #111827;
|
|
212
|
-
--color-text-secondary: #6b7280;
|
|
213
|
-
--color-text-hover: #374151;
|
|
214
|
-
--color-bg-hover: #f4f6f8;
|
|
215
|
-
--color-border: #e5e7eb;
|
|
216
|
-
--spacing-xs: 4px;
|
|
217
|
-
--spacing-sm: 8px;
|
|
218
|
-
--spacing-md: 12px;
|
|
219
|
-
--spacing-lg: 16px;
|
|
220
|
-
--spacing-xl: 24px;
|
|
221
|
-
--font-size-sm: 14px;
|
|
222
|
-
--font-size-md: 18px;
|
|
223
|
-
--font-size-icon: 20px;
|
|
224
|
-
--border-radius-sm: 8px;
|
|
225
|
-
--border-radius-circle: 50%;
|
|
226
|
-
--button-size: 40px;
|
|
227
|
-
--delete-button-size: 48px;
|
|
228
|
-
--modal-width: 640px;
|
|
229
|
-
--operation-column-width: 80px;
|
|
230
|
-
--transition-speed: 0.2s;
|
|
231
|
-
|
|
232
207
|
position: relative;
|
|
233
208
|
}
|
|
234
209
|
|
|
235
210
|
.filter-button {
|
|
236
211
|
display: flex;
|
|
237
212
|
align-items: center;
|
|
238
|
-
gap: var(--
|
|
239
|
-
padding: var(--
|
|
213
|
+
gap: var(--spi-size-2);
|
|
214
|
+
padding: var(--spi-size-2) var(--spi-size-4);
|
|
240
215
|
border: none;
|
|
241
|
-
border-radius: var(--
|
|
242
|
-
background: var(--color-
|
|
243
|
-
|
|
244
|
-
color: var(--color-text-primary);
|
|
216
|
+
border-radius: var(--spi-rounded-lg);
|
|
217
|
+
background: var(--spi-color-surface-default);
|
|
218
|
+
color: var(--spi-color-text-primary);
|
|
245
219
|
cursor: pointer;
|
|
246
|
-
transition: background-color var(--
|
|
220
|
+
transition: background-color var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
247
221
|
}
|
|
248
222
|
|
|
249
223
|
.filter-button:hover {
|
|
250
|
-
background: var(--color-
|
|
224
|
+
background: var(--spi-color-surface-subtle);
|
|
251
225
|
}
|
|
252
226
|
|
|
253
227
|
.filter-button--active {
|
|
254
|
-
background: var(--color-primary-
|
|
255
|
-
color: var(--color-primary);
|
|
228
|
+
background: var(--spi-color-primary-lighter);
|
|
229
|
+
color: var(--spi-color-primary-base);
|
|
256
230
|
}
|
|
257
231
|
|
|
258
232
|
.filter-overlay {
|
|
@@ -266,58 +240,54 @@
|
|
|
266
240
|
|
|
267
241
|
.filter-modal {
|
|
268
242
|
position: absolute;
|
|
269
|
-
top: calc(100% + var(--
|
|
243
|
+
top: calc(100% + var(--spi-size-2));
|
|
270
244
|
right: 0;
|
|
271
245
|
z-index: 10;
|
|
272
|
-
width:
|
|
273
|
-
padding: var(--
|
|
274
|
-
border:
|
|
275
|
-
border-radius: var(--
|
|
276
|
-
background: var(--color-
|
|
277
|
-
box-shadow:
|
|
278
|
-
0 10px 15px -3px rgba(0, 0, 0, 0.1),
|
|
279
|
-
0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
246
|
+
width: 640px;
|
|
247
|
+
padding: var(--spi-size-6);
|
|
248
|
+
border: var(--spi-border-1) solid var(--spi-color-border-default);
|
|
249
|
+
border-radius: var(--spi-rounded-lg);
|
|
250
|
+
background: var(--spi-color-surface-default);
|
|
251
|
+
box-shadow: var(--spi-shadow-dropdown);
|
|
280
252
|
}
|
|
281
253
|
|
|
282
254
|
.filter-header {
|
|
283
255
|
display: flex;
|
|
284
256
|
align-items: center;
|
|
285
257
|
justify-content: space-between;
|
|
286
|
-
margin-bottom: var(--
|
|
258
|
+
margin-bottom: var(--spi-size-6);
|
|
287
259
|
}
|
|
288
260
|
|
|
289
261
|
.filter-title {
|
|
290
|
-
|
|
291
|
-
font-weight: 600;
|
|
292
|
-
color: var(--color-text-dark);
|
|
262
|
+
color: var(--spi-color-text-primary);
|
|
293
263
|
}
|
|
294
264
|
|
|
295
265
|
.filter-close-button {
|
|
296
266
|
display: flex;
|
|
297
267
|
align-items: center;
|
|
298
|
-
padding: var(--
|
|
268
|
+
padding: var(--spi-size-1);
|
|
299
269
|
border: none;
|
|
300
270
|
background: transparent;
|
|
301
|
-
color: var(--color-text-
|
|
271
|
+
color: var(--spi-color-text-muted);
|
|
302
272
|
cursor: pointer;
|
|
303
|
-
transition: color var(--
|
|
273
|
+
transition: color var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
304
274
|
}
|
|
305
275
|
|
|
306
276
|
.filter-close-button:hover {
|
|
307
|
-
color: var(--color-text-
|
|
277
|
+
color: var(--spi-color-text-secondary);
|
|
308
278
|
}
|
|
309
279
|
|
|
310
280
|
.filter-body {
|
|
311
281
|
display: flex;
|
|
312
282
|
flex-direction: column;
|
|
313
|
-
gap: var(--
|
|
283
|
+
gap: var(--spi-size-4);
|
|
314
284
|
}
|
|
315
285
|
|
|
316
286
|
.filter-row {
|
|
317
287
|
display: grid;
|
|
318
|
-
grid-template-columns: var(--
|
|
288
|
+
grid-template-columns: var(--spi-size-20) 1fr 1fr var(--spi-size-12);
|
|
319
289
|
align-items: end;
|
|
320
|
-
gap: var(--
|
|
290
|
+
gap: var(--spi-size-3);
|
|
321
291
|
}
|
|
322
292
|
|
|
323
293
|
.filter-operation,
|
|
@@ -330,36 +300,31 @@
|
|
|
330
300
|
display: flex;
|
|
331
301
|
align-items: center;
|
|
332
302
|
justify-content: center;
|
|
333
|
-
padding: var(--
|
|
303
|
+
padding: var(--spi-size-2);
|
|
334
304
|
border: none;
|
|
335
305
|
background: transparent;
|
|
336
|
-
color: var(--color-text-primary);
|
|
337
|
-
border-radius: var(--
|
|
338
|
-
width: var(--
|
|
339
|
-
height: var(--
|
|
306
|
+
color: var(--spi-color-text-primary);
|
|
307
|
+
border-radius: var(--spi-rounded-full);
|
|
308
|
+
width: var(--spi-size-10);
|
|
309
|
+
height: var(--spi-size-10);
|
|
340
310
|
cursor: pointer;
|
|
341
|
-
transition: background-color var(--
|
|
311
|
+
transition: background-color var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
342
312
|
}
|
|
343
313
|
|
|
344
314
|
.filter-delete-button:hover {
|
|
345
|
-
background: var(--color-
|
|
315
|
+
background: var(--spi-color-surface-subtle);
|
|
346
316
|
}
|
|
347
317
|
|
|
348
318
|
.filter-actions {
|
|
349
319
|
display: flex;
|
|
350
320
|
align-items: center;
|
|
351
321
|
justify-content: space-between;
|
|
352
|
-
margin-top: var(--
|
|
322
|
+
margin-top: var(--spi-size-2);
|
|
353
323
|
}
|
|
354
324
|
|
|
355
325
|
.filter-footer {
|
|
356
326
|
display: flex;
|
|
357
327
|
justify-content: flex-end;
|
|
358
|
-
margin-top: var(--
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
.material-icons,
|
|
362
|
-
.material-icons-outlined {
|
|
363
|
-
font-size: var(--font-size-icon);
|
|
328
|
+
margin-top: var(--spi-size-4);
|
|
364
329
|
}
|
|
365
330
|
</style>
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
<td
|
|
39
39
|
class={[
|
|
40
40
|
'table-cell',
|
|
41
|
+
'spi-text-regular-2',
|
|
41
42
|
alignColumn === 'right' && 'table-cell--right',
|
|
42
43
|
alignColumn === 'center' && 'table-cell--center',
|
|
43
44
|
!alignColumn && 'table-cell--left'
|
|
@@ -54,32 +55,23 @@
|
|
|
54
55
|
|
|
55
56
|
<style>
|
|
56
57
|
.table-body {
|
|
57
|
-
--color-
|
|
58
|
-
--color-black: #000;
|
|
59
|
-
--color-row-selected: #eaecff;
|
|
60
|
-
--color-gray-300: #e0e5e8;
|
|
61
|
-
--color-gray-400: #f3f4f6;
|
|
62
|
-
--spacing-md: 8px;
|
|
63
|
-
--spacing-lg: 16px;
|
|
64
|
-
--font-size-sm: 14px;
|
|
65
|
-
|
|
66
|
-
background: var(--color-white);
|
|
58
|
+
background: var(--spi-color-surface-default);
|
|
67
59
|
}
|
|
68
60
|
|
|
69
61
|
.table-row {
|
|
70
|
-
transition: background-color
|
|
62
|
+
transition: background-color var(--spi-duration-fast) var(--spi-ease-default);
|
|
71
63
|
}
|
|
72
64
|
|
|
73
65
|
.table-row:hover {
|
|
74
|
-
background: var(--color-
|
|
66
|
+
background: var(--spi-color-surface-subtle);
|
|
75
67
|
}
|
|
76
68
|
|
|
77
69
|
.table-row--selected {
|
|
78
|
-
background: var(--color-
|
|
70
|
+
background: var(--spi-color-primary-lighter);
|
|
79
71
|
}
|
|
80
72
|
|
|
81
73
|
.table-row--selected:hover {
|
|
82
|
-
background: var(--color-
|
|
74
|
+
background: var(--spi-color-primary-lighter);
|
|
83
75
|
}
|
|
84
76
|
|
|
85
77
|
.table-row--clickable {
|
|
@@ -88,10 +80,9 @@
|
|
|
88
80
|
|
|
89
81
|
.table-cell {
|
|
90
82
|
max-width: 50px;
|
|
91
|
-
padding: var(--
|
|
92
|
-
border-bottom:
|
|
93
|
-
|
|
94
|
-
color: var(--color-black);
|
|
83
|
+
padding: var(--spi-size-2) var(--spi-size-4);
|
|
84
|
+
border-bottom: var(--spi-border-1) solid var(--spi-color-border-default);
|
|
85
|
+
color: var(--spi-color-text-primary);
|
|
95
86
|
word-wrap: break-word;
|
|
96
87
|
white-space: normal;
|
|
97
88
|
}
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
</script>
|
|
16
16
|
|
|
17
17
|
<div class="column-visibility">
|
|
18
|
-
<button type="button" class="column-visibility-toggle" onclick={toggleModal}>
|
|
19
|
-
<span class="material-icons">table_rows</span>
|
|
18
|
+
<button type="button" class="column-visibility-toggle spi-text-regular-2" onclick={toggleModal}>
|
|
19
|
+
<span class="material-icons spi-text-regular-2">table_rows</span>
|
|
20
20
|
Columns
|
|
21
21
|
</button>
|
|
22
22
|
|
|
23
23
|
{#if isOpen}
|
|
24
24
|
<div class="column-visibility-dropdown" role="menu">
|
|
25
25
|
<div class="column-visibility-header">
|
|
26
|
-
<h2 class="column-visibility-title">Toggle columns</h2>
|
|
26
|
+
<h2 class="column-visibility-title spi-text-semibold-2">Toggle columns</h2>
|
|
27
27
|
<button type="button" onclick={toggleModal} class="column-visibility-close">
|
|
28
|
-
<span class="material-icons">close</span>
|
|
28
|
+
<span class="material-icons spi-text-regular-2">close</span>
|
|
29
29
|
</button>
|
|
30
30
|
</div>
|
|
31
31
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
checked={column.getIsVisible()}
|
|
42
42
|
onchange={() => column.toggleVisibility()}
|
|
43
43
|
/>
|
|
44
|
-
<span class="column-visibility-label">{header}</span>
|
|
44
|
+
<span class="column-visibility-label spi-text-regular-2">{header}</span>
|
|
45
45
|
</label>
|
|
46
46
|
{/each}
|
|
47
47
|
</div>
|
|
@@ -60,68 +60,45 @@
|
|
|
60
60
|
|
|
61
61
|
<style>
|
|
62
62
|
.column-visibility {
|
|
63
|
-
--color-white: #ffffff;
|
|
64
|
-
--color-gray-50: #f9fafb;
|
|
65
|
-
--color-gray-100: #f3f4f6;
|
|
66
|
-
--color-gray-500: #6b7280;
|
|
67
|
-
--color-gray-600: #4b5563;
|
|
68
|
-
--spacing-xs: 8px;
|
|
69
|
-
--spacing-sm: 8px;
|
|
70
|
-
--spacing-md: 16px;
|
|
71
|
-
--font-size-sm: 14px;
|
|
72
|
-
--font-size-icon: 14px;
|
|
73
|
-
--font-semibold: 600;
|
|
74
|
-
--radius-lg: 8px;
|
|
75
|
-
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
76
|
-
--z-index-dropdown: 10;
|
|
77
|
-
--z-index-backdrop: 9;
|
|
78
|
-
|
|
79
63
|
position: relative;
|
|
80
64
|
}
|
|
81
65
|
|
|
82
66
|
.column-visibility-toggle {
|
|
83
67
|
display: flex;
|
|
84
68
|
align-items: center;
|
|
85
|
-
gap: var(--
|
|
86
|
-
padding: var(--
|
|
69
|
+
gap: var(--spi-size-2);
|
|
70
|
+
padding: var(--spi-size-2) var(--spi-size-4);
|
|
87
71
|
border: none;
|
|
88
|
-
border-radius: var(--
|
|
89
|
-
background: var(--color-
|
|
90
|
-
font-size: var(--font-size-sm);
|
|
72
|
+
border-radius: var(--spi-rounded-lg);
|
|
73
|
+
background: var(--spi-color-surface-default);
|
|
91
74
|
cursor: pointer;
|
|
92
75
|
}
|
|
93
76
|
|
|
94
77
|
.column-visibility-toggle:hover {
|
|
95
|
-
background: var(--color-
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.column-visibility-toggle .material-icons {
|
|
99
|
-
font-size: var(--font-size-icon);
|
|
78
|
+
background: var(--spi-color-surface-muted);
|
|
100
79
|
}
|
|
101
80
|
|
|
102
81
|
.column-visibility-dropdown {
|
|
103
82
|
position: absolute;
|
|
104
|
-
top:
|
|
83
|
+
top: var(--spi-size-12);
|
|
105
84
|
right: 0;
|
|
106
|
-
z-index:
|
|
85
|
+
z-index: 10;
|
|
107
86
|
width: 224px;
|
|
108
|
-
padding: var(--
|
|
109
|
-
background: var(--color-
|
|
110
|
-
border-radius: var(--
|
|
111
|
-
box-shadow: var(--shadow-
|
|
87
|
+
padding: var(--spi-size-4);
|
|
88
|
+
background: var(--spi-color-surface-default);
|
|
89
|
+
border-radius: var(--spi-rounded-lg);
|
|
90
|
+
box-shadow: var(--spi-shadow-dropdown);
|
|
112
91
|
}
|
|
113
92
|
|
|
114
93
|
.column-visibility-header {
|
|
115
94
|
display: flex;
|
|
116
95
|
align-items: center;
|
|
117
96
|
justify-content: space-between;
|
|
118
|
-
margin-bottom: var(--
|
|
97
|
+
margin-bottom: var(--spi-size-2);
|
|
119
98
|
}
|
|
120
99
|
|
|
121
100
|
.column-visibility-title {
|
|
122
101
|
margin: 0;
|
|
123
|
-
font-size: var(--font-size-sm);
|
|
124
|
-
font-weight: var(--font-semibold);
|
|
125
102
|
}
|
|
126
103
|
|
|
127
104
|
.column-visibility-close {
|
|
@@ -130,16 +107,12 @@
|
|
|
130
107
|
padding: 0;
|
|
131
108
|
border: none;
|
|
132
109
|
background: none;
|
|
133
|
-
color: var(--color-
|
|
110
|
+
color: var(--spi-color-text-muted);
|
|
134
111
|
cursor: pointer;
|
|
135
112
|
}
|
|
136
113
|
|
|
137
114
|
.column-visibility-close:hover {
|
|
138
|
-
color: var(--color-
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.column-visibility-close .material-icons {
|
|
142
|
-
font-size: var(--font-size-icon);
|
|
115
|
+
color: var(--spi-color-text-secondary);
|
|
143
116
|
}
|
|
144
117
|
|
|
145
118
|
.column-visibility-list {
|
|
@@ -150,24 +123,20 @@
|
|
|
150
123
|
.column-visibility-item {
|
|
151
124
|
display: flex;
|
|
152
125
|
align-items: center;
|
|
153
|
-
gap: var(--
|
|
154
|
-
padding: var(--
|
|
155
|
-
border-radius: var(--
|
|
126
|
+
gap: var(--spi-size-2);
|
|
127
|
+
padding: var(--spi-size-2);
|
|
128
|
+
border-radius: var(--spi-rounded-lg);
|
|
156
129
|
cursor: pointer;
|
|
157
130
|
}
|
|
158
131
|
|
|
159
132
|
.column-visibility-item:hover {
|
|
160
|
-
background: var(--color-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.column-visibility-label {
|
|
164
|
-
font-size: var(--font-size-sm);
|
|
133
|
+
background: var(--spi-color-surface-subtle);
|
|
165
134
|
}
|
|
166
135
|
|
|
167
136
|
.column-visibility-backdrop {
|
|
168
137
|
position: fixed;
|
|
169
138
|
inset: 0;
|
|
170
|
-
z-index:
|
|
139
|
+
z-index: 9;
|
|
171
140
|
border: none;
|
|
172
141
|
background: transparent;
|
|
173
142
|
cursor: default;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
let { table, minPageSize }: Props = $props();
|
|
12
12
|
</script>
|
|
13
13
|
|
|
14
|
-
<footer class="table-footer">
|
|
14
|
+
<footer class="table-footer spi-text-medium-2">
|
|
15
15
|
<Pagination {table} />
|
|
16
16
|
<PageSize {table} {minPageSize} />
|
|
17
17
|
</footer>
|
|
@@ -21,9 +21,7 @@
|
|
|
21
21
|
display: flex;
|
|
22
22
|
align-items: center;
|
|
23
23
|
justify-content: space-between;
|
|
24
|
-
margin-bottom:
|
|
25
|
-
font-size: 14px;
|
|
26
|
-
font-weight: 500;
|
|
24
|
+
margin-bottom: var(--spi-size-5);
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
@media (max-width: 750px) {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
};
|
|
26
26
|
</script>
|
|
27
27
|
|
|
28
|
-
<thead
|
|
28
|
+
<thead>
|
|
29
29
|
{#each headerGroups as headerGroup (headerGroup.id)}
|
|
30
30
|
<tr class="table-header-row">
|
|
31
31
|
{#each headerGroup.headers as header (header.id)}
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
colSpan={header.colSpan}
|
|
43
43
|
class={[
|
|
44
44
|
'table-header-cell',
|
|
45
|
+
'spi-text-bold-2',
|
|
45
46
|
className,
|
|
46
47
|
isActive && 'table-header-cell--active'
|
|
47
48
|
]}
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
<button
|
|
55
56
|
type="button"
|
|
56
57
|
class={[
|
|
57
|
-
'table-header-button',
|
|
58
|
+
'table-header-button spi-text-bold-2',
|
|
58
59
|
canSort && 'table-header-button--sortable',
|
|
59
60
|
!canSort && 'table-header-button--disabled'
|
|
60
61
|
]}
|
|
@@ -74,7 +75,7 @@
|
|
|
74
75
|
|
|
75
76
|
{#if canSort}
|
|
76
77
|
<div class="table-header-sort-icon">
|
|
77
|
-
<span class="material-icons"
|
|
78
|
+
<span class="material-icons spi-text-regular-2"
|
|
78
79
|
>{getSortIcon[header.column.getIsSorted().toString()]}</span
|
|
79
80
|
>
|
|
80
81
|
</div>
|
|
@@ -82,13 +83,18 @@
|
|
|
82
83
|
|
|
83
84
|
{#if isFiltered}
|
|
84
85
|
<div class="table-header-filtered-icon">
|
|
85
|
-
<span class="material-icons-outlined"
|
|
86
|
+
<span class="material-icons-outlined spi-text-regular-2"
|
|
87
|
+
>filter_alt</span
|
|
88
|
+
>
|
|
86
89
|
</div>
|
|
87
90
|
{/if}
|
|
88
91
|
</button>
|
|
89
92
|
|
|
90
93
|
{#if enableColumnSearch && !hideColumnFilter}
|
|
91
|
-
<div
|
|
94
|
+
<div
|
|
95
|
+
class="table-header-search spi-text-regular-1"
|
|
96
|
+
style:justify-content={justifyContent}
|
|
97
|
+
>
|
|
92
98
|
<Search
|
|
93
99
|
oninput={({ currentTarget }) =>
|
|
94
100
|
header.column.setFilterValue(currentTarget.value)}
|
|
@@ -105,42 +111,24 @@
|
|
|
105
111
|
</thead>
|
|
106
112
|
|
|
107
113
|
<style>
|
|
108
|
-
.container {
|
|
109
|
-
--color-primary: #472aff;
|
|
110
|
-
--color-primary-light: #eaecff;
|
|
111
|
-
--color-black: #000000;
|
|
112
|
-
--color-gray-100: #f3f4f6;
|
|
113
|
-
--color-gray-200: #e5e7eb;
|
|
114
|
-
--color-gray-300: #e0e5e8;
|
|
115
|
-
--spacing-xs: 4px;
|
|
116
|
-
--spacing-sm: 8px;
|
|
117
|
-
--spacing-md: 16px;
|
|
118
|
-
--font-size-xs: 12px;
|
|
119
|
-
--font-size-sm: 14px;
|
|
120
|
-
--font-bold: 700;
|
|
121
|
-
--font-normal: 400;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
114
|
.table-header-cell:first-child {
|
|
125
|
-
border-left: 0.5px solid var(--color-
|
|
115
|
+
border-left: 0.5px solid var(--spi-color-border-default);
|
|
126
116
|
}
|
|
127
117
|
|
|
128
118
|
.table-header-cell {
|
|
129
|
-
padding: var(--
|
|
130
|
-
border-right: 0.5px solid var(--color-
|
|
131
|
-
border-bottom:
|
|
119
|
+
padding: var(--spi-size-2) var(--spi-size-4);
|
|
120
|
+
border-right: 0.5px solid var(--spi-color-border-default);
|
|
121
|
+
border-bottom: var(--spi-border-2) solid var(--spi-color-text-primary);
|
|
132
122
|
text-align: left;
|
|
133
|
-
font-size: var(--font-size-sm);
|
|
134
|
-
font-weight: var(--font-bold);
|
|
135
123
|
}
|
|
136
124
|
|
|
137
125
|
.table-header-cell:hover {
|
|
138
|
-
background: var(--color-
|
|
126
|
+
background: var(--spi-color-surface-subtle);
|
|
139
127
|
}
|
|
140
128
|
|
|
141
129
|
.table-header-cell--active {
|
|
142
|
-
background: var(--color-primary-
|
|
143
|
-
color: var(--color-primary);
|
|
130
|
+
background: var(--spi-color-primary-lighter);
|
|
131
|
+
color: var(--spi-color-primary-base);
|
|
144
132
|
}
|
|
145
133
|
|
|
146
134
|
.table-header-button {
|
|
@@ -151,8 +139,6 @@
|
|
|
151
139
|
padding: 0;
|
|
152
140
|
border: none;
|
|
153
141
|
background: none;
|
|
154
|
-
font-size: inherit;
|
|
155
|
-
font-weight: inherit;
|
|
156
142
|
color: inherit;
|
|
157
143
|
}
|
|
158
144
|
|
|
@@ -169,7 +155,7 @@
|
|
|
169
155
|
}
|
|
170
156
|
|
|
171
157
|
.table-header-label--sortable {
|
|
172
|
-
margin-right:
|
|
158
|
+
margin-right: var(--spi-size-4);
|
|
173
159
|
}
|
|
174
160
|
|
|
175
161
|
@media (max-width: 750px) {
|
|
@@ -181,7 +167,7 @@
|
|
|
181
167
|
.table-header-sort-icon {
|
|
182
168
|
position: absolute;
|
|
183
169
|
right: -8px;
|
|
184
|
-
margin-top:
|
|
170
|
+
margin-top: var(--spi-size-1);
|
|
185
171
|
}
|
|
186
172
|
|
|
187
173
|
.table-header-sort-icon:has(+ .table-header-filtered-icon) {
|
|
@@ -191,23 +177,16 @@
|
|
|
191
177
|
.table-header-filtered-icon {
|
|
192
178
|
position: absolute;
|
|
193
179
|
right: -13px;
|
|
194
|
-
margin-top:
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.table-header-sort-icon .material-icons,
|
|
198
|
-
.material-icons-outlined {
|
|
199
|
-
font-size: var(--font-size-sm);
|
|
180
|
+
margin-top: var(--spi-size-1);
|
|
200
181
|
}
|
|
201
182
|
|
|
202
183
|
.table-header-search {
|
|
203
184
|
display: flex;
|
|
204
185
|
min-width: 144px;
|
|
205
|
-
margin: var(--
|
|
206
|
-
font-weight: var(--font-normal);
|
|
186
|
+
margin: var(--spi-size-1) 0;
|
|
207
187
|
}
|
|
208
188
|
|
|
209
189
|
.table-header-search :global(.search-input) {
|
|
210
|
-
padding: var(--
|
|
211
|
-
font-size: var(--font-size-xs);
|
|
190
|
+
padding: var(--spi-size-1) var(--spi-size-9);
|
|
212
191
|
}
|
|
213
192
|
</style>
|