@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.
- 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 +41 -44
- 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 +6 -6
- package/dist/components/confirmation/Confirmation.svelte.d.ts +2 -2
- 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 +3 -5
- package/dist/components/error-page/ErrorPage.svelte +9 -18
- package/dist/components/footer/Footer.svelte +9 -14
- package/dist/components/footer/Footer.svelte.d.ts +0 -1
- package/dist/components/footer/FooterLogo.svelte +16 -0
- package/dist/components/footer/FooterLogo.svelte.d.ts +26 -0
- 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 +16 -21
- package/dist/components/menu/MenuItem.svelte +25 -29
- package/dist/components/menu/Sidebar.svelte +32 -40
- package/dist/components/menu/utils.d.ts +1 -1
- package/dist/components/menu/utils.js +6 -7
- package/dist/components/modal/Modal.svelte +8 -11
- 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/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/url.d.ts +3 -0
- package/dist/utils/url.js +15 -0
- package/package.json +3 -2
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
<section
|
|
244
244
|
role="button"
|
|
245
245
|
tabindex="0"
|
|
246
|
-
class="dropdown-container"
|
|
246
|
+
class="dropdown-container spi-text-regular-2"
|
|
247
247
|
onclick={readonly ? undefined : onToggleListOptions}
|
|
248
248
|
onkeypress={readonly ? undefined : onToggleListOptions}
|
|
249
249
|
bind:this={dropdownContainer}
|
|
@@ -319,12 +319,12 @@
|
|
|
319
319
|
{/if}
|
|
320
320
|
</div>
|
|
321
321
|
{#if description}
|
|
322
|
-
<p class="message-description">
|
|
322
|
+
<p class="message-description spi-text-regular-1">
|
|
323
323
|
{description}
|
|
324
324
|
</p>
|
|
325
325
|
{/if}
|
|
326
326
|
{#if isInvalid}
|
|
327
|
-
<p class="message-error">
|
|
327
|
+
<p class="message-error spi-text-regular-1">
|
|
328
328
|
{Array.isArray(error) ? error[0] : error}
|
|
329
329
|
</p>
|
|
330
330
|
{/if}
|
|
@@ -373,25 +373,10 @@
|
|
|
373
373
|
|
|
374
374
|
<style>
|
|
375
375
|
.form-control {
|
|
376
|
-
--primary-color: #472aff;
|
|
377
|
-
--white: #fff;
|
|
378
|
-
--black: #000;
|
|
379
|
-
--error: #dc2626;
|
|
380
|
-
--success: #008556;
|
|
381
|
-
--info-1: #eaecff;
|
|
382
|
-
--gray-1: #f4f6f8;
|
|
383
|
-
--gray-2: #e0e5e8;
|
|
384
|
-
--gray-3: #aeb1b9;
|
|
385
|
-
--gray-4: #6b7180;
|
|
386
|
-
--readonly-bg: #f9fafb;
|
|
387
|
-
--readonly-border: #d1d5db;
|
|
388
|
-
--border: 1px solid var(--gray-4);
|
|
389
|
-
|
|
390
376
|
display: flex;
|
|
391
377
|
flex-direction: column;
|
|
392
378
|
width: 100%;
|
|
393
|
-
gap:
|
|
394
|
-
font-size: 14px;
|
|
379
|
+
gap: var(--spi-size-2);
|
|
395
380
|
|
|
396
381
|
> .label-wrapper {
|
|
397
382
|
width: fit-content;
|
|
@@ -400,24 +385,22 @@
|
|
|
400
385
|
}
|
|
401
386
|
|
|
402
387
|
> .message-description {
|
|
403
|
-
|
|
404
|
-
color: var(--gray-4);
|
|
388
|
+
color: var(--spi-color-text-muted);
|
|
405
389
|
}
|
|
406
390
|
|
|
407
391
|
> .message-error {
|
|
408
|
-
|
|
409
|
-
color: var(--error);
|
|
392
|
+
color: var(--spi-color-text-danger);
|
|
410
393
|
}
|
|
411
394
|
}
|
|
412
395
|
|
|
413
396
|
.dropdown {
|
|
414
397
|
position: relative;
|
|
415
|
-
border: var(--border);
|
|
416
|
-
border-radius:
|
|
398
|
+
border: var(--spi-border-1) solid var(--spi-color-border-strong);
|
|
399
|
+
border-radius: var(--spi-rounded-lg);
|
|
417
400
|
background: transparent;
|
|
418
401
|
transition:
|
|
419
|
-
border-color
|
|
420
|
-
box-shadow
|
|
402
|
+
border-color var(--spi-duration-normal) var(--spi-ease-in-out),
|
|
403
|
+
box-shadow var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
421
404
|
}
|
|
422
405
|
|
|
423
406
|
.dropdown.disabled {
|
|
@@ -425,7 +408,7 @@
|
|
|
425
408
|
|
|
426
409
|
> .dropdown-container {
|
|
427
410
|
pointer-events: none;
|
|
428
|
-
background: var(--
|
|
411
|
+
background: var(--spi-color-surface-muted);
|
|
429
412
|
}
|
|
430
413
|
}
|
|
431
414
|
|
|
@@ -434,74 +417,72 @@
|
|
|
434
417
|
|
|
435
418
|
> .dropdown-container {
|
|
436
419
|
cursor: default;
|
|
437
|
-
background: var(--
|
|
438
|
-
border-color: var(--
|
|
420
|
+
background: var(--spi-color-surface-subtle);
|
|
421
|
+
border-color: var(--spi-color-disabled-border);
|
|
439
422
|
}
|
|
440
423
|
}
|
|
441
424
|
|
|
442
425
|
.dropdown:not(.disabled, .readonly, .invalid, .valid):hover {
|
|
443
|
-
border:
|
|
426
|
+
border: var(--spi-border-1) solid var(--spi-color-primary-base);
|
|
444
427
|
}
|
|
445
428
|
|
|
446
429
|
.dropdown:not(.disabled, .readonly, .invalid, .valid):focus-within {
|
|
447
|
-
border:
|
|
448
|
-
box-shadow:
|
|
430
|
+
border: var(--spi-border-1) solid var(--spi-color-primary-base);
|
|
431
|
+
box-shadow: var(--spi-shadow-focus-primary);
|
|
449
432
|
}
|
|
450
433
|
|
|
451
434
|
.dropdown.valid {
|
|
452
|
-
border:
|
|
435
|
+
border: var(--spi-border-1) solid var(--spi-color-success-base);
|
|
453
436
|
}
|
|
454
437
|
|
|
455
438
|
.dropdown.valid:focus-within {
|
|
456
|
-
box-shadow:
|
|
439
|
+
box-shadow: var(--spi-shadow-focus-success);
|
|
457
440
|
}
|
|
458
441
|
|
|
459
442
|
.dropdown.invalid {
|
|
460
|
-
border:
|
|
443
|
+
border: var(--spi-border-1) solid var(--spi-color-danger-base);
|
|
461
444
|
}
|
|
462
445
|
|
|
463
446
|
.dropdown.invalid:focus-within {
|
|
464
|
-
box-shadow:
|
|
447
|
+
box-shadow: var(--spi-shadow-focus-danger);
|
|
465
448
|
}
|
|
466
449
|
|
|
467
450
|
.dropdown > .dropdown-container {
|
|
468
|
-
font-size: 14px;
|
|
469
|
-
line-height: 20px;
|
|
470
451
|
display: grid;
|
|
471
452
|
grid-template-columns: 1fr auto;
|
|
472
|
-
min-height:
|
|
473
|
-
padding:
|
|
474
|
-
gap:
|
|
453
|
+
min-height: var(--spi-size-9);
|
|
454
|
+
padding: var(--spi-size-2) var(--spi-size-4);
|
|
455
|
+
gap: var(--spi-size-2);
|
|
475
456
|
align-items: center;
|
|
476
457
|
cursor: pointer;
|
|
477
458
|
outline: none;
|
|
478
459
|
border: none;
|
|
479
|
-
border-radius:
|
|
480
|
-
background: var(--
|
|
460
|
+
border-radius: var(--spi-rounded-lg);
|
|
461
|
+
background: var(--spi-color-surface-default);
|
|
481
462
|
}
|
|
482
463
|
|
|
483
464
|
.dropdown > .dropdown-container > .dropdown-container-selected-options {
|
|
484
465
|
display: flex;
|
|
485
466
|
flex-wrap: wrap;
|
|
486
467
|
max-height: 250px;
|
|
487
|
-
gap:
|
|
468
|
+
gap: var(--spi-size-2);
|
|
488
469
|
align-items: center;
|
|
489
470
|
overflow-y: auto;
|
|
490
471
|
|
|
491
472
|
> .placeholder {
|
|
492
|
-
color: var(--
|
|
493
|
-
opacity:
|
|
473
|
+
color: var(--spi-color-text-muted);
|
|
474
|
+
opacity: var(--spi-opacity-100);
|
|
494
475
|
}
|
|
495
476
|
|
|
496
477
|
> .dropdown-container-selected-option {
|
|
497
478
|
display: flex;
|
|
498
|
-
padding:
|
|
499
|
-
gap:
|
|
479
|
+
padding: 0 var(--spi-size-1);
|
|
480
|
+
gap: var(--spi-size-1);
|
|
500
481
|
align-items: center;
|
|
501
482
|
cursor: default;
|
|
502
|
-
border-radius:
|
|
503
|
-
border:
|
|
504
|
-
background: var(--
|
|
483
|
+
border-radius: var(--spi-rounded-sm);
|
|
484
|
+
border: var(--spi-border-1) solid var(--spi-color-border-default);
|
|
485
|
+
background: var(--spi-color-surface-subtle);
|
|
505
486
|
}
|
|
506
487
|
}
|
|
507
488
|
|
|
@@ -511,19 +492,16 @@
|
|
|
511
492
|
flex-direction: column;
|
|
512
493
|
z-index: 100;
|
|
513
494
|
width: 100%;
|
|
514
|
-
padding:
|
|
515
|
-
margin-top:
|
|
516
|
-
gap:
|
|
517
|
-
border-radius:
|
|
518
|
-
background: var(--
|
|
519
|
-
box-shadow:
|
|
520
|
-
0px 4px 5px rgba(51, 56, 64, 0.15),
|
|
521
|
-
0px 1px 3px rgba(51, 56, 64, 0.2),
|
|
522
|
-
0px 1px 16px rgba(51, 56, 64, 0.1);
|
|
495
|
+
padding: var(--spi-size-2);
|
|
496
|
+
margin-top: var(--spi-size-2);
|
|
497
|
+
gap: var(--spi-size-2);
|
|
498
|
+
border-radius: var(--spi-rounded-lg);
|
|
499
|
+
background: var(--spi-color-surface-default);
|
|
500
|
+
box-shadow: var(--spi-shadow-card-hover);
|
|
523
501
|
|
|
524
502
|
> .dropdown-list-no-options-message {
|
|
525
503
|
text-align: center;
|
|
526
|
-
color: var(--
|
|
504
|
+
color: var(--spi-color-text-muted);
|
|
527
505
|
}
|
|
528
506
|
}
|
|
529
507
|
|
|
@@ -531,7 +509,7 @@
|
|
|
531
509
|
top: auto;
|
|
532
510
|
transform-origin: bottom;
|
|
533
511
|
bottom: 100%;
|
|
534
|
-
margin-bottom:
|
|
512
|
+
margin-bottom: var(--spi-size-2);
|
|
535
513
|
}
|
|
536
514
|
|
|
537
515
|
.dropdown > .dropdown-list.position-fixed {
|
|
@@ -545,7 +523,7 @@
|
|
|
545
523
|
display: flex;
|
|
546
524
|
flex-direction: column;
|
|
547
525
|
max-height: 200px;
|
|
548
|
-
gap:
|
|
526
|
+
gap: var(--spi-size-2);
|
|
549
527
|
overflow-y: auto;
|
|
550
528
|
|
|
551
529
|
.dropdown-list-option {
|
|
@@ -554,8 +532,8 @@
|
|
|
554
532
|
align-items: center;
|
|
555
533
|
text-align: left;
|
|
556
534
|
width: 100%;
|
|
557
|
-
min-height:
|
|
558
|
-
padding:
|
|
535
|
+
min-height: var(--spi-size-10);
|
|
536
|
+
padding: 0 var(--spi-size-2);
|
|
559
537
|
cursor: pointer;
|
|
560
538
|
outline: none;
|
|
561
539
|
border: none;
|
|
@@ -565,25 +543,25 @@
|
|
|
565
543
|
|
|
566
544
|
.dropdown-list-option:not(.active) > button:focus-visible,
|
|
567
545
|
.dropdown-list-option:not(.active) > button:hover {
|
|
568
|
-
background: var(--
|
|
546
|
+
background: var(--spi-color-surface-subtle);
|
|
569
547
|
}
|
|
570
548
|
|
|
571
549
|
.dropdown-list-option.active {
|
|
572
|
-
background: var(--
|
|
550
|
+
background: var(--spi-color-primary-lighter);
|
|
573
551
|
}
|
|
574
552
|
}
|
|
575
553
|
|
|
576
554
|
.clear-button {
|
|
577
555
|
outline: none;
|
|
578
556
|
border: none;
|
|
579
|
-
color: var(--
|
|
557
|
+
color: var(--spi-color-text-muted);
|
|
580
558
|
background: transparent;
|
|
581
|
-
transition: color
|
|
559
|
+
transition: color var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
582
560
|
}
|
|
583
561
|
|
|
584
562
|
.clear-button:focus-visible,
|
|
585
563
|
.clear-button:hover {
|
|
586
564
|
cursor: pointer;
|
|
587
|
-
color: var(--
|
|
565
|
+
color: var(--spi-color-text-primary);
|
|
588
566
|
}
|
|
589
567
|
</style>
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
bind:value
|
|
56
56
|
class={[
|
|
57
57
|
'form-textarea',
|
|
58
|
+
'spi-text-regular-2',
|
|
58
59
|
props.disabled && 'form-textarea-disabled',
|
|
59
60
|
props.readonly && 'form-textarea-readonly',
|
|
60
61
|
!resize && 'form-textarea-no-resize'
|
|
@@ -67,18 +68,18 @@
|
|
|
67
68
|
<div class="form-footer">
|
|
68
69
|
<div class="form-messages">
|
|
69
70
|
{#if description}
|
|
70
|
-
<p class="form-message form-message-description">
|
|
71
|
+
<p class="form-message form-message-description spi-text-regular-1">
|
|
71
72
|
{description}
|
|
72
73
|
</p>
|
|
73
74
|
{/if}
|
|
74
75
|
{#if errorMessage}
|
|
75
|
-
<p class="form-message form-message-error">
|
|
76
|
+
<p class="form-message form-message-error spi-text-regular-1">
|
|
76
77
|
{Array.isArray(errorMessage) ? errorMessage[0] : errorMessage}
|
|
77
78
|
</p>
|
|
78
79
|
{/if}
|
|
79
80
|
</div>
|
|
80
81
|
{#if maximumCharactersAllowed}
|
|
81
|
-
<div class={['form-character-count', isOverLimit && 'error']}>
|
|
82
|
+
<div class={['form-character-count', 'spi-text-regular-1', isOverLimit && 'error']}>
|
|
82
83
|
{currentTextLength} / {maximumCharactersAllowed}
|
|
83
84
|
</div>
|
|
84
85
|
{/if}
|
|
@@ -90,23 +91,17 @@
|
|
|
90
91
|
.form-container {
|
|
91
92
|
display: flex;
|
|
92
93
|
flex-direction: column;
|
|
93
|
-
gap:
|
|
94
|
-
font-size: 14px;
|
|
95
|
-
line-height: 20px;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.form-message {
|
|
99
|
-
font-size: 12px;
|
|
94
|
+
gap: var(--spi-size-2);
|
|
100
95
|
}
|
|
101
96
|
|
|
102
97
|
.form-textarea-wrapper {
|
|
103
98
|
position: relative;
|
|
104
99
|
display: flex;
|
|
105
100
|
width: 100%;
|
|
106
|
-
border-radius:
|
|
107
|
-
border:
|
|
108
|
-
background:
|
|
109
|
-
transition: all
|
|
101
|
+
border-radius: var(--spi-rounded-lg);
|
|
102
|
+
border: var(--spi-border-1) solid var(--spi-color-border-strong);
|
|
103
|
+
background: var(--spi-color-surface-default);
|
|
104
|
+
transition: all var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
110
105
|
overflow: hidden;
|
|
111
106
|
}
|
|
112
107
|
|
|
@@ -114,24 +109,22 @@
|
|
|
114
109
|
:has(.form-textarea:read-only)
|
|
115
110
|
),
|
|
116
111
|
.form-textarea-wrapper:focus-within {
|
|
117
|
-
border-color:
|
|
112
|
+
border-color: var(--spi-color-border-focus);
|
|
118
113
|
}
|
|
119
114
|
|
|
120
115
|
.form-textarea-wrapper:focus-within {
|
|
121
|
-
box-shadow:
|
|
116
|
+
box-shadow: var(--spi-shadow-focus-primary);
|
|
122
117
|
}
|
|
123
118
|
|
|
124
119
|
.form-textarea {
|
|
125
|
-
font-size: 14px;
|
|
126
|
-
line-height: 20px;
|
|
127
120
|
display: flex;
|
|
128
121
|
width: 100%;
|
|
129
|
-
min-height:
|
|
130
|
-
padding:
|
|
122
|
+
min-height: var(--spi-size-20);
|
|
123
|
+
padding: var(--spi-size-2) var(--spi-size-4);
|
|
131
124
|
border: none;
|
|
132
|
-
border-radius:
|
|
133
|
-
color:
|
|
134
|
-
transition: all
|
|
125
|
+
border-radius: var(--spi-rounded-lg);
|
|
126
|
+
color: var(--spi-color-text-primary);
|
|
127
|
+
transition: all var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
135
128
|
font-family: inherit;
|
|
136
129
|
}
|
|
137
130
|
|
|
@@ -140,15 +133,14 @@
|
|
|
140
133
|
}
|
|
141
134
|
|
|
142
135
|
.form-textarea-disabled {
|
|
143
|
-
background-color:
|
|
144
|
-
border-color:
|
|
145
|
-
color: #6b7180;
|
|
136
|
+
background-color: var(--spi-color-disabled-bg);
|
|
137
|
+
border-color: var(--spi-color-disabled-border);
|
|
146
138
|
cursor: not-allowed;
|
|
147
139
|
}
|
|
148
140
|
|
|
149
141
|
.form-textarea-readonly {
|
|
150
|
-
background-color:
|
|
151
|
-
border-color:
|
|
142
|
+
background-color: var(--spi-color-surface-subtle);
|
|
143
|
+
border-color: var(--spi-color-border-default);
|
|
152
144
|
cursor: default;
|
|
153
145
|
}
|
|
154
146
|
|
|
@@ -158,41 +150,40 @@
|
|
|
158
150
|
|
|
159
151
|
.form-textarea::placeholder,
|
|
160
152
|
.form-textarea:disabled::placeholder {
|
|
161
|
-
color:
|
|
162
|
-
opacity:
|
|
153
|
+
color: var(--spi-color-text-placeholder);
|
|
154
|
+
opacity: var(--spi-opacity-100);
|
|
163
155
|
}
|
|
164
156
|
|
|
165
157
|
.form-footer {
|
|
166
158
|
display: flex;
|
|
167
159
|
justify-content: space-between;
|
|
168
160
|
align-items: flex-start;
|
|
169
|
-
gap:
|
|
161
|
+
gap: var(--spi-size-2);
|
|
170
162
|
}
|
|
171
163
|
|
|
172
164
|
.form-messages {
|
|
173
165
|
display: flex;
|
|
174
166
|
flex-direction: column;
|
|
175
|
-
gap:
|
|
167
|
+
gap: var(--spi-size-1);
|
|
176
168
|
flex: 1;
|
|
177
169
|
}
|
|
178
170
|
|
|
179
171
|
.form-message-error {
|
|
180
|
-
color:
|
|
172
|
+
color: var(--spi-color-text-danger);
|
|
181
173
|
}
|
|
182
174
|
|
|
183
175
|
.form-message-description {
|
|
184
|
-
color:
|
|
176
|
+
color: var(--spi-color-text-muted);
|
|
185
177
|
}
|
|
186
178
|
|
|
187
179
|
.form-character-count {
|
|
188
|
-
font-size: 12px;
|
|
189
|
-
color: #6b7180;
|
|
190
180
|
white-space: nowrap;
|
|
181
|
+
color: var(--spi-color-text-muted);
|
|
191
182
|
flex-shrink: 0;
|
|
192
183
|
}
|
|
193
184
|
|
|
194
185
|
.form-character-count.error {
|
|
195
|
-
color:
|
|
186
|
+
color: var(--spi-color-text-danger);
|
|
196
187
|
}
|
|
197
188
|
|
|
198
189
|
.form-textarea-wrapper.error,
|
|
@@ -200,11 +191,11 @@
|
|
|
200
191
|
:has(.form-textarea:read-only)
|
|
201
192
|
),
|
|
202
193
|
.form-textarea-wrapper.error:focus-within {
|
|
203
|
-
border-color:
|
|
194
|
+
border-color: var(--spi-color-border-danger);
|
|
204
195
|
}
|
|
205
196
|
|
|
206
197
|
.form-textarea-wrapper.error:focus-within {
|
|
207
|
-
box-shadow:
|
|
198
|
+
box-shadow: var(--spi-shadow-focus-danger);
|
|
208
199
|
}
|
|
209
200
|
|
|
210
201
|
.form-textarea-wrapper.success,
|
|
@@ -212,27 +203,27 @@
|
|
|
212
203
|
:has(.form-textarea:read-only)
|
|
213
204
|
),
|
|
214
205
|
.form-textarea-wrapper.success:focus-within {
|
|
215
|
-
border-color:
|
|
206
|
+
border-color: var(--spi-color-border-success);
|
|
216
207
|
}
|
|
217
208
|
|
|
218
209
|
.form-textarea-wrapper.success:focus-within {
|
|
219
|
-
box-shadow:
|
|
210
|
+
box-shadow: var(--spi-shadow-focus-success);
|
|
220
211
|
}
|
|
221
212
|
|
|
222
213
|
.form-textarea-wrapper:has(.form-textarea:disabled),
|
|
223
214
|
.form-textarea-wrapper:has(.form-textarea:read-only) {
|
|
224
|
-
border-color:
|
|
215
|
+
border-color: var(--spi-color-disabled-border) !important;
|
|
225
216
|
box-shadow: none !important;
|
|
226
217
|
}
|
|
227
218
|
|
|
228
219
|
@media (prefers-contrast: high) {
|
|
229
220
|
.form-textarea {
|
|
230
|
-
border-width:
|
|
221
|
+
border-width: var(--spi-border-2);
|
|
231
222
|
}
|
|
232
223
|
|
|
233
224
|
.form-textarea:focus {
|
|
234
|
-
outline:
|
|
235
|
-
outline-offset:
|
|
225
|
+
outline: var(--spi-border-2) solid;
|
|
226
|
+
outline-offset: var(--spi-border-2);
|
|
236
227
|
}
|
|
237
228
|
}
|
|
238
229
|
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
role="switch"
|
|
33
33
|
/>
|
|
34
34
|
<div class={['toggle-slider', checked && 'checked', disabled && 'disabled']}>
|
|
35
|
-
<span class="material-icons-outlined toggle-icon">
|
|
35
|
+
<span class="material-icons-outlined toggle-icon spi-text-regular-1">
|
|
36
36
|
{#if checked}
|
|
37
37
|
done
|
|
38
38
|
{:else}
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
display: flex;
|
|
50
50
|
flex-direction: row;
|
|
51
51
|
align-items: center;
|
|
52
|
-
gap:
|
|
52
|
+
gap: var(--spi-size-2);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.container.vertical {
|
|
@@ -64,90 +64,88 @@
|
|
|
64
64
|
.container.vertical label {
|
|
65
65
|
order: 1;
|
|
66
66
|
}
|
|
67
|
+
|
|
67
68
|
.toggle-container {
|
|
68
69
|
position: relative;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
.toggle-input {
|
|
72
73
|
position: absolute;
|
|
73
|
-
opacity: 0;
|
|
74
|
+
opacity: var(--spi-opacity-0);
|
|
74
75
|
width: 0;
|
|
75
76
|
height: 0;
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
.toggle-slider {
|
|
79
80
|
display: flex;
|
|
80
|
-
width:
|
|
81
|
+
width: var(--spi-size-10);
|
|
81
82
|
padding: 2px;
|
|
82
83
|
align-items: center;
|
|
83
|
-
border-radius:
|
|
84
|
-
border:
|
|
85
|
-
background:
|
|
86
|
-
transition: all
|
|
84
|
+
border-radius: var(--spi-rounded-xl);
|
|
85
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-dark);
|
|
86
|
+
background: var(--spi-color-surface-default);
|
|
87
|
+
transition: all var(--spi-duration-slow) var(--spi-ease-default);
|
|
87
88
|
cursor: pointer;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
.toggle-slider.checked {
|
|
91
92
|
justify-content: flex-end;
|
|
92
|
-
border:
|
|
93
|
-
background:
|
|
93
|
+
border: var(--spi-border-2) solid var(--spi-color-primary-base);
|
|
94
|
+
background: var(--spi-color-primary-base);
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
.toggle-slider.disabled {
|
|
97
98
|
cursor: not-allowed;
|
|
98
|
-
border:
|
|
99
|
-
background:
|
|
99
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-dark);
|
|
100
|
+
background: var(--spi-color-surface-muted);
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
.toggle-slider.disabled.checked {
|
|
103
|
-
border:
|
|
104
|
-
background:
|
|
104
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-dark);
|
|
105
|
+
background: var(--spi-color-neutral-dark);
|
|
105
106
|
}
|
|
106
107
|
|
|
107
108
|
.toggle-icon {
|
|
108
109
|
display: flex;
|
|
109
|
-
font-size: 12px;
|
|
110
|
-
flex-direction: column;
|
|
111
110
|
align-items: center;
|
|
112
|
-
|
|
113
|
-
border-radius:
|
|
114
|
-
border:
|
|
115
|
-
background:
|
|
116
|
-
color:
|
|
117
|
-
transition: all
|
|
118
|
-
cursor: pointer;
|
|
111
|
+
line-height: normal;
|
|
112
|
+
border-radius: var(--spi-rounded-2xl);
|
|
113
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-dark);
|
|
114
|
+
background: var(--spi-color-neutral-dark);
|
|
115
|
+
color: var(--spi-color-text-inverse);
|
|
116
|
+
transition: all var(--spi-duration-slow) var(--spi-ease-default);
|
|
119
117
|
}
|
|
120
118
|
|
|
121
119
|
.toggle-slider.checked .toggle-icon {
|
|
122
|
-
border:
|
|
123
|
-
background:
|
|
124
|
-
color:
|
|
120
|
+
border: var(--spi-border-2) solid var(--spi-color-surface-default);
|
|
121
|
+
background: var(--spi-color-surface-default);
|
|
122
|
+
color: var(--spi-color-primary-base);
|
|
125
123
|
}
|
|
126
124
|
|
|
127
125
|
.toggle-slider.disabled .toggle-icon {
|
|
128
126
|
cursor: not-allowed;
|
|
129
|
-
border:
|
|
130
|
-
background:
|
|
131
|
-
color:
|
|
127
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-dark);
|
|
128
|
+
background: var(--spi-color-neutral-dark);
|
|
129
|
+
color: var(--spi-color-text-inverse);
|
|
132
130
|
}
|
|
133
131
|
|
|
134
132
|
.toggle-slider.disabled.checked .toggle-icon {
|
|
135
|
-
border:
|
|
136
|
-
background:
|
|
137
|
-
color:
|
|
133
|
+
border: var(--spi-border-2) solid var(--spi-color-surface-default);
|
|
134
|
+
background: var(--spi-color-surface-default);
|
|
135
|
+
color: var(--spi-color-neutral-dark);
|
|
138
136
|
}
|
|
139
137
|
|
|
140
138
|
.toggle-container:hover .toggle-slider:not(.disabled).checked {
|
|
141
|
-
background:
|
|
142
|
-
border:
|
|
139
|
+
background: var(--spi-color-primary-dark);
|
|
140
|
+
border: var(--spi-border-2) solid var(--spi-color-primary-dark);
|
|
143
141
|
}
|
|
144
142
|
|
|
145
143
|
.toggle-container:hover .toggle-slider:not(.disabled):not(.checked) {
|
|
146
|
-
border:
|
|
144
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-darker);
|
|
147
145
|
}
|
|
148
146
|
|
|
149
147
|
.toggle-container:hover .toggle-slider:not(.disabled):not(.checked) .toggle-icon {
|
|
150
|
-
border:
|
|
151
|
-
background:
|
|
148
|
+
border: var(--spi-border-2) solid var(--spi-color-neutral-darker);
|
|
149
|
+
background: var(--spi-color-neutral-darker);
|
|
152
150
|
}
|
|
153
151
|
</style>
|
|
@@ -17,9 +17,7 @@
|
|
|
17
17
|
onclose
|
|
18
18
|
}: Props = $props();
|
|
19
19
|
|
|
20
|
-
let
|
|
21
|
-
`Are you sure you want to delete ${confirmationName || 'this item'}?`
|
|
22
|
-
);
|
|
20
|
+
let message = $derived(`Are you sure you want to delete ${confirmationName || 'this item'}?`);
|
|
23
21
|
let value = $state('');
|
|
24
22
|
let isLoading = $state(false);
|
|
25
23
|
let enableButton = $derived(!enableDoubleConfirmation || confirmationName === value);
|
|
@@ -41,7 +39,7 @@
|
|
|
41
39
|
<Modal title="Delete confirmation" bind:show {onclose}>
|
|
42
40
|
<Spinner show={isLoading} />
|
|
43
41
|
<div class="content">
|
|
44
|
-
<p>{
|
|
42
|
+
<p>{message}</p>
|
|
45
43
|
{#if enableDoubleConfirmation}
|
|
46
44
|
<p>
|
|
47
45
|
To confirm, type "<strong>{confirmationName}</strong>" in the box below
|
|
@@ -73,7 +71,7 @@
|
|
|
73
71
|
.content {
|
|
74
72
|
display: flex;
|
|
75
73
|
flex-direction: column;
|
|
76
|
-
gap:
|
|
74
|
+
gap: var(--spi-size-4);
|
|
77
75
|
width: 100%;
|
|
78
76
|
}
|
|
79
77
|
|