@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
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
{#snippet profile()}
|
|
36
36
|
<Avatar text={userName} />
|
|
37
37
|
<div class="account-info">
|
|
38
|
-
<p class="account-name">{accountName}</p>
|
|
39
|
-
<p class="account-more-name">{accountDescription}</p>
|
|
38
|
+
<p class="account-name spi-text-medium-2">{accountName}</p>
|
|
39
|
+
<p class="account-more-name spi-text-regular-1">{accountDescription}</p>
|
|
40
40
|
</div>
|
|
41
41
|
{/snippet}
|
|
42
42
|
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
{#each profileMenuItems as item, index (index)}
|
|
71
71
|
<li>
|
|
72
72
|
<button
|
|
73
|
-
class="account-menu-item"
|
|
73
|
+
class="account-menu-item spi-text-regular-2"
|
|
74
74
|
type="button"
|
|
75
75
|
onclick={() => {
|
|
76
76
|
onClickProfileItem(item.url);
|
|
@@ -100,21 +100,21 @@
|
|
|
100
100
|
display: flex;
|
|
101
101
|
width: 256px;
|
|
102
102
|
align-items: center;
|
|
103
|
-
padding:
|
|
104
|
-
gap:
|
|
103
|
+
padding: var(--spi-size-2);
|
|
104
|
+
gap: var(--spi-size-4);
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
.account-button {
|
|
108
|
-
border-radius:
|
|
108
|
+
border-radius: var(--spi-rounded-md);
|
|
109
109
|
border: none;
|
|
110
110
|
height: 66px;
|
|
111
111
|
background: transparent;
|
|
112
112
|
cursor: pointer;
|
|
113
|
-
transition: background-color
|
|
113
|
+
transition: background-color var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.account-button:hover {
|
|
117
|
-
background:
|
|
117
|
+
background: var(--spi-color-surface-muted);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.account-info {
|
|
@@ -125,23 +125,14 @@
|
|
|
125
125
|
word-break: break-words;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
.account-name {
|
|
129
|
-
font-weight: 500;
|
|
130
|
-
font-size: 14px;
|
|
131
|
-
line-height: 20px;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
128
|
.account-more-name {
|
|
135
|
-
|
|
136
|
-
font-size: 12px;
|
|
137
|
-
color: #6b7280;
|
|
138
|
-
line-height: normal;
|
|
129
|
+
color: var(--spi-color-text-muted);
|
|
139
130
|
}
|
|
140
131
|
|
|
141
132
|
.account-backdrop {
|
|
142
133
|
position: fixed;
|
|
143
134
|
inset: 0;
|
|
144
|
-
background:
|
|
135
|
+
background: var(--spi-color-backdrop);
|
|
145
136
|
cursor: pointer;
|
|
146
137
|
z-index: 40;
|
|
147
138
|
}
|
|
@@ -152,35 +143,32 @@
|
|
|
152
143
|
flex-direction: column;
|
|
153
144
|
width: 250px;
|
|
154
145
|
top: 70px;
|
|
155
|
-
gap:
|
|
156
|
-
padding:
|
|
157
|
-
background:
|
|
158
|
-
border:
|
|
159
|
-
border-radius: 0 0
|
|
160
|
-
box-shadow:
|
|
146
|
+
gap: var(--spi-size-2);
|
|
147
|
+
padding: var(--spi-size-4);
|
|
148
|
+
background: var(--spi-color-surface-default);
|
|
149
|
+
border: var(--spi-border-1) solid var(--spi-color-border-default);
|
|
150
|
+
border-radius: 0 0 var(--spi-rounded-xl) var(--spi-rounded-xl);
|
|
151
|
+
box-shadow: var(--spi-shadow-dropdown);
|
|
161
152
|
z-index: 40;
|
|
162
153
|
}
|
|
163
154
|
|
|
164
155
|
.account-menu-item {
|
|
165
156
|
width: 100%;
|
|
166
|
-
font-weight: 400;
|
|
167
|
-
font-size: 14px;
|
|
168
157
|
text-align: left;
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
border-radius: 8px;
|
|
158
|
+
padding: var(--spi-size-2);
|
|
159
|
+
border-radius: var(--spi-rounded-lg);
|
|
172
160
|
border: none;
|
|
173
161
|
background: transparent;
|
|
174
162
|
cursor: pointer;
|
|
175
|
-
transition: background-color
|
|
163
|
+
transition: background-color var(--spi-duration-normal) var(--spi-ease-default);
|
|
176
164
|
}
|
|
177
165
|
|
|
178
166
|
.account-menu-item:hover {
|
|
179
|
-
background:
|
|
167
|
+
background: var(--spi-color-surface-subtle);
|
|
180
168
|
}
|
|
181
169
|
|
|
182
170
|
.account-menu-item:focus,
|
|
183
171
|
.account-menu-item:focus-visible {
|
|
184
|
-
background:
|
|
172
|
+
background: var(--spi-color-primary-lighter);
|
|
185
173
|
}
|
|
186
174
|
</style>
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
7
|
{#if navigating.to}
|
|
8
|
-
<!--
|
|
9
|
-
Loading animation for next page since svelte doesn't show any indicator.
|
|
10
|
-
- delay 100ms because most page loads are instant, and we don't want to flash
|
|
8
|
+
<!--
|
|
9
|
+
Loading animation for next page since svelte doesn't show any indicator.
|
|
10
|
+
- delay 100ms because most page loads are instant, and we don't want to flash
|
|
11
11
|
- long 12s duration because we don't actually know how long it will take
|
|
12
12
|
- exponential easing so fast loads (>100ms and <1s) still see enough progress,
|
|
13
13
|
while slow networks see it moving for a full 12 seconds
|
|
@@ -21,11 +21,16 @@
|
|
|
21
21
|
<style>
|
|
22
22
|
.navigation-loader {
|
|
23
23
|
position: fixed;
|
|
24
|
-
top:
|
|
25
|
-
right:
|
|
26
|
-
left:
|
|
27
|
-
height:
|
|
24
|
+
top: 0;
|
|
25
|
+
right: 0;
|
|
26
|
+
left: 0;
|
|
27
|
+
height: var(--spi-border-3);
|
|
28
28
|
z-index: 9999;
|
|
29
|
-
background: linear-gradient(
|
|
29
|
+
background: linear-gradient(
|
|
30
|
+
90deg,
|
|
31
|
+
var(--spi-color-primary-dark),
|
|
32
|
+
var(--spi-color-primary-base),
|
|
33
|
+
#00c9cd
|
|
34
|
+
);
|
|
30
35
|
}
|
|
31
36
|
</style>
|
|
@@ -17,28 +17,33 @@
|
|
|
17
17
|
{#each columns as column, index (index)}
|
|
18
18
|
<div class="panel-element">
|
|
19
19
|
{#if column.type === ColumnType.Text}
|
|
20
|
-
<h2>{column.label}</h2>
|
|
21
|
-
<p>{column.value}</p>
|
|
20
|
+
<h2 class="spi-text-medium-2">{column.label}</h2>
|
|
21
|
+
<p class="spi-text-regular-2">{column.value}</p>
|
|
22
22
|
{#if column.description}
|
|
23
|
-
<p class="text-description">{column.description}</p>
|
|
23
|
+
<p class="text-description spi-text-regular-1">{column.description}</p>
|
|
24
24
|
{/if}
|
|
25
25
|
{/if}
|
|
26
26
|
|
|
27
27
|
{#if column.type === ColumnType.Status}
|
|
28
|
-
<h2>{column.label}</h2>
|
|
28
|
+
<h2 class="spi-text-medium-2">{column.label}</h2>
|
|
29
29
|
<Chips text={column.value} type={column.chipType} />
|
|
30
30
|
{/if}
|
|
31
31
|
|
|
32
32
|
{#if column.type === ColumnType.Link}
|
|
33
|
-
<h2>{column.label}</h2>
|
|
34
|
-
<a
|
|
33
|
+
<h2 class="spi-text-medium-2">{column.label}</h2>
|
|
34
|
+
<a
|
|
35
|
+
rel="noreferrer"
|
|
36
|
+
class="link spi-text-regular-2"
|
|
37
|
+
target="_blank"
|
|
38
|
+
href={column.url}
|
|
39
|
+
>
|
|
35
40
|
{column.value}
|
|
36
41
|
</a>
|
|
37
42
|
{/if}
|
|
38
43
|
|
|
39
44
|
{#if column.type === ColumnType.Image}
|
|
40
45
|
{@const { content, iconType } = column}
|
|
41
|
-
<h2>{column.label}</h2>
|
|
46
|
+
<h2 class="spi-text-medium-2">{column.label}</h2>
|
|
42
47
|
|
|
43
48
|
<figure class:text-right={column.alignTextRight}>
|
|
44
49
|
{#if iconType === ImageType.Default}
|
|
@@ -52,10 +57,12 @@
|
|
|
52
57
|
{#if column.value || column.description}
|
|
53
58
|
<div>
|
|
54
59
|
{#if column.value}
|
|
55
|
-
<p>{column.value}</p>
|
|
60
|
+
<p class="spi-text-regular-2">{column.value}</p>
|
|
56
61
|
{/if}
|
|
57
62
|
{#if column.description}
|
|
58
|
-
<p class="text-description">
|
|
63
|
+
<p class="text-description spi-text-regular-1">
|
|
64
|
+
{column.description}
|
|
65
|
+
</p>
|
|
59
66
|
{/if}
|
|
60
67
|
</div>
|
|
61
68
|
{/if}
|
|
@@ -63,7 +70,7 @@
|
|
|
63
70
|
{/if}
|
|
64
71
|
|
|
65
72
|
{#if column.type === ColumnType.Custom}
|
|
66
|
-
<h2>{column.label}</h2>
|
|
73
|
+
<h2 class="spi-text-medium-2">{column.label}</h2>
|
|
67
74
|
{@render column.snippet()}
|
|
68
75
|
{/if}
|
|
69
76
|
</div>
|
|
@@ -78,25 +85,13 @@
|
|
|
78
85
|
</div>
|
|
79
86
|
|
|
80
87
|
<style>
|
|
81
|
-
h2,
|
|
82
|
-
p,
|
|
83
|
-
a {
|
|
84
|
-
font-size: 14px;
|
|
85
|
-
line-height: 20px;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
h2 {
|
|
89
|
-
font-weight: 500;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
88
|
.text-description {
|
|
93
|
-
|
|
94
|
-
color: #6b7180;
|
|
89
|
+
color: var(--spi-color-text-muted);
|
|
95
90
|
text-align: left;
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
.link {
|
|
99
|
-
color:
|
|
94
|
+
color: var(--spi-color-text-link);
|
|
100
95
|
}
|
|
101
96
|
|
|
102
97
|
.link:hover {
|
|
@@ -106,47 +101,47 @@
|
|
|
106
101
|
.highlight-panel {
|
|
107
102
|
display: grid;
|
|
108
103
|
grid-template-columns: 1fr auto;
|
|
109
|
-
gap:
|
|
104
|
+
gap: var(--spi-size-12);
|
|
110
105
|
}
|
|
111
106
|
|
|
112
107
|
.panel-section-flex {
|
|
113
108
|
display: flex;
|
|
114
109
|
flex-wrap: wrap;
|
|
115
|
-
gap:
|
|
110
|
+
gap: var(--spi-size-12);
|
|
116
111
|
}
|
|
117
112
|
|
|
118
113
|
.panel-section-flex-column {
|
|
119
114
|
display: flex;
|
|
120
115
|
flex-direction: column;
|
|
121
|
-
gap:
|
|
116
|
+
gap: var(--spi-size-6);
|
|
122
117
|
}
|
|
123
118
|
|
|
124
119
|
.panel-section-grid {
|
|
125
120
|
display: grid;
|
|
126
121
|
grid-template-columns: repeat(auto-fit, minmax(50px, auto));
|
|
127
|
-
grid-gap:
|
|
122
|
+
grid-gap: var(--spi-size-12);
|
|
128
123
|
}
|
|
129
124
|
|
|
130
125
|
.buttons-section {
|
|
131
126
|
display: flex;
|
|
132
|
-
gap:
|
|
127
|
+
gap: var(--spi-size-3);
|
|
133
128
|
align-items: flex-start;
|
|
134
129
|
}
|
|
135
130
|
|
|
136
131
|
.panel-element h2 {
|
|
137
|
-
margin-bottom:
|
|
132
|
+
margin-bottom: var(--spi-size-2);
|
|
138
133
|
}
|
|
139
134
|
|
|
140
135
|
.panel-element img {
|
|
141
|
-
width:
|
|
142
|
-
height:
|
|
143
|
-
border-radius:
|
|
136
|
+
width: var(--spi-size-10);
|
|
137
|
+
height: var(--spi-size-10);
|
|
138
|
+
border-radius: var(--spi-rounded-full);
|
|
144
139
|
}
|
|
145
140
|
|
|
146
141
|
.panel-element > figure {
|
|
147
142
|
display: flex;
|
|
148
143
|
flex-direction: column;
|
|
149
|
-
gap:
|
|
144
|
+
gap: var(--spi-size-2);
|
|
150
145
|
}
|
|
151
146
|
|
|
152
147
|
.panel-element > figure.text-right {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
let { title, homeItems }: Props = $props();
|
|
10
10
|
</script>
|
|
11
11
|
|
|
12
|
-
<h1 class="home-title">
|
|
12
|
+
<h1 class="home-title spi-text-semibold-4">
|
|
13
13
|
{title}
|
|
14
14
|
</h1>
|
|
15
15
|
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
<a href={homeItem.url} class="home-item">
|
|
19
19
|
<img src={homeItem.homeIcon} alt={homeItem.text} />
|
|
20
20
|
<div>
|
|
21
|
-
<h2>{homeItem.text}</h2>
|
|
22
|
-
<p>{homeItem.detail}</p>
|
|
21
|
+
<h2 class="spi-text-semibold-3">{homeItem.text}</h2>
|
|
22
|
+
<p class="spi-text-regular-2">{homeItem.detail}</p>
|
|
23
23
|
</div>
|
|
24
24
|
</a>
|
|
25
25
|
{/each}
|
|
@@ -27,20 +27,12 @@
|
|
|
27
27
|
|
|
28
28
|
<style>
|
|
29
29
|
.home-title {
|
|
30
|
-
padding-bottom:
|
|
31
|
-
font-size: 18px;
|
|
32
|
-
line-height: 1.55;
|
|
33
|
-
font-weight: 600;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.home-container {
|
|
37
|
-
--black: #000;
|
|
38
|
-
--white: #fff;
|
|
30
|
+
padding-bottom: var(--spi-size-4);
|
|
39
31
|
}
|
|
40
32
|
|
|
41
33
|
.home-container.grid {
|
|
42
34
|
display: grid;
|
|
43
|
-
gap:
|
|
35
|
+
gap: var(--spi-size-6);
|
|
44
36
|
|
|
45
37
|
@media (width >= 640px) {
|
|
46
38
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
@@ -59,45 +51,35 @@
|
|
|
59
51
|
display: flex;
|
|
60
52
|
max-height: 190px;
|
|
61
53
|
max-width: 770px;
|
|
62
|
-
gap:
|
|
63
|
-
padding:
|
|
64
|
-
border-radius:
|
|
65
|
-
background: var(--
|
|
54
|
+
gap: var(--spi-size-4);
|
|
55
|
+
padding: var(--spi-size-3);
|
|
56
|
+
border-radius: var(--spi-rounded-2xl);
|
|
57
|
+
background: var(--spi-color-surface-default);
|
|
66
58
|
transition:
|
|
67
|
-
box-shadow
|
|
68
|
-
transform
|
|
69
|
-
box-shadow:
|
|
70
|
-
0 1px 16px 0 rgba(107, 113, 128, 0.1),
|
|
71
|
-
0 1px 3px 0 rgba(107, 113, 128, 0.2);
|
|
59
|
+
box-shadow var(--spi-duration-normal) var(--spi-ease-in-out),
|
|
60
|
+
transform var(--spi-duration-normal) var(--spi-ease-in-out);
|
|
61
|
+
box-shadow: var(--spi-shadow-card);
|
|
72
62
|
|
|
73
63
|
&:hover {
|
|
74
64
|
transform: translateY(-2px);
|
|
75
65
|
box-shadow:
|
|
76
|
-
0 4px 20px 0
|
|
77
|
-
0 2px 6px 0
|
|
66
|
+
0 4px 20px 0 color-mix(in srgb, var(--spi-color-primary-light) 50%, transparent),
|
|
67
|
+
0 2px 6px 0 color-mix(in srgb, var(--spi-color-neutral-base) 50%, transparent);
|
|
78
68
|
}
|
|
79
69
|
|
|
80
70
|
> img {
|
|
81
|
-
width:
|
|
82
|
-
height:
|
|
71
|
+
width: var(--spi-size-9);
|
|
72
|
+
height: var(--spi-size-9);
|
|
83
73
|
margin: auto 0;
|
|
84
74
|
filter: invert(27%) sepia(99%) saturate(4729%) hue-rotate(240deg) brightness(101%)
|
|
85
75
|
contrast(106%);
|
|
86
76
|
}
|
|
87
77
|
|
|
88
78
|
> div {
|
|
89
|
-
color: var(--
|
|
79
|
+
color: var(--spi-color-text-primary);
|
|
90
80
|
|
|
91
81
|
> h2 {
|
|
92
|
-
padding-bottom:
|
|
93
|
-
font-size: 16px;
|
|
94
|
-
line-height: 1.5;
|
|
95
|
-
font-weight: 600;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
> p {
|
|
99
|
-
font-size: 14px;
|
|
100
|
-
line-height: 1.42;
|
|
82
|
+
padding-bottom: var(--spi-size-2);
|
|
101
83
|
}
|
|
102
84
|
}
|
|
103
85
|
}
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
.menu-backdrop {
|
|
66
66
|
position: fixed;
|
|
67
67
|
inset: 0;
|
|
68
|
-
background-color:
|
|
68
|
+
background-color: var(--spi-color-backdrop);
|
|
69
69
|
cursor: pointer;
|
|
70
70
|
z-index: 30;
|
|
71
71
|
border: none;
|
|
@@ -73,16 +73,16 @@
|
|
|
73
73
|
|
|
74
74
|
.menu-nav {
|
|
75
75
|
position: absolute;
|
|
76
|
-
top:
|
|
77
|
-
left:
|
|
78
|
-
bottom:
|
|
76
|
+
top: var(--spi-size-20);
|
|
77
|
+
left: var(--spi-size-6);
|
|
78
|
+
bottom: var(--spi-size-6);
|
|
79
79
|
display: flex;
|
|
80
|
-
border:
|
|
81
|
-
border-bottom-left-radius:
|
|
82
|
-
border-bottom-right-radius:
|
|
83
|
-
background-color:
|
|
84
|
-
box-shadow:
|
|
85
|
-
min-height: calc(100vh -
|
|
80
|
+
border: var(--spi-border-1) solid var(--spi-color-border-default);
|
|
81
|
+
border-bottom-left-radius: var(--spi-rounded-xl);
|
|
82
|
+
border-bottom-right-radius: var(--spi-rounded-xl);
|
|
83
|
+
background-color: var(--spi-color-surface-default);
|
|
84
|
+
box-shadow: var(--spi-shadow-dropdown);
|
|
85
|
+
min-height: calc(100vh - var(--spi-size-20) - 55px);
|
|
86
86
|
z-index: 40;
|
|
87
87
|
width: auto;
|
|
88
88
|
}
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
.menu-list {
|
|
91
91
|
display: flex;
|
|
92
92
|
flex-direction: column;
|
|
93
|
-
gap:
|
|
94
|
-
padding:
|
|
93
|
+
gap: var(--spi-size-1);
|
|
94
|
+
padding: var(--spi-size-3);
|
|
95
95
|
width: 150px;
|
|
96
96
|
overflow-y: auto;
|
|
97
97
|
overflow-x: hidden;
|
|
@@ -23,44 +23,41 @@
|
|
|
23
23
|
]}
|
|
24
24
|
onclick={() => onClick?.(item)}
|
|
25
25
|
>
|
|
26
|
-
<span class="material-icons-outlined icon-span">{item.icon}</span>
|
|
27
|
-
<h2 class="item-name-span" class:hidden={isCollapsed}>
|
|
26
|
+
<span class="material-icons-outlined icon-span spi-text-regular-5">{item.icon}</span>
|
|
27
|
+
<h2 class="item-name-span spi-text-regular-2" class:hidden={isCollapsed}>
|
|
28
|
+
{item.text}
|
|
29
|
+
</h2>
|
|
28
30
|
</a>
|
|
29
31
|
</Tooltip>
|
|
30
32
|
</li>
|
|
31
33
|
|
|
32
34
|
<style>
|
|
33
35
|
.item {
|
|
34
|
-
min-height:
|
|
35
|
-
padding:
|
|
36
|
-
border-radius:
|
|
36
|
+
min-height: var(--spi-size-7);
|
|
37
|
+
padding: var(--spi-size-2);
|
|
38
|
+
border-radius: var(--spi-rounded-lg);
|
|
37
39
|
justify-content: flex-start;
|
|
38
40
|
align-items: center;
|
|
39
|
-
gap:
|
|
41
|
+
gap: var(--spi-size-2);
|
|
40
42
|
display: inline-flex;
|
|
41
43
|
background: none;
|
|
42
44
|
border: none;
|
|
43
45
|
cursor: pointer;
|
|
44
|
-
transition: background-color
|
|
46
|
+
transition: background-color var(--spi-duration-normal) var(--spi-ease-default);
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
.item-name-span {
|
|
48
50
|
text-align: left;
|
|
49
|
-
color:
|
|
50
|
-
font-size: 14px;
|
|
51
|
-
font-weight: 400;
|
|
52
|
-
line-height: 20px;
|
|
51
|
+
color: var(--spi-color-text-primary);
|
|
53
52
|
word-wrap: break-word;
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
.icon-span {
|
|
57
|
-
color: black;
|
|
58
|
-
font-size: 20px;
|
|
59
|
-
font-weight: 400;
|
|
60
|
-
line-height: 20px;
|
|
61
56
|
word-wrap: break-word;
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
line-height: normal;
|
|
58
|
+
color: var(--spi-color-text-primary);
|
|
59
|
+
border-radius: var(--spi-rounded-full);
|
|
60
|
+
transition: background-color var(--spi-duration-normal) var(--spi-ease-default);
|
|
64
61
|
}
|
|
65
62
|
|
|
66
63
|
.expanded {
|
|
@@ -68,34 +65,33 @@
|
|
|
68
65
|
}
|
|
69
66
|
|
|
70
67
|
.expanded:hover:not(.active-expanded) {
|
|
71
|
-
background-color:
|
|
68
|
+
background-color: var(--spi-color-surface-subtle);
|
|
72
69
|
}
|
|
73
70
|
|
|
74
71
|
.active-expanded {
|
|
75
|
-
background-color:
|
|
76
|
-
color:
|
|
72
|
+
background-color: var(--spi-color-primary-lighter);
|
|
73
|
+
color: var(--spi-color-primary-base);
|
|
77
74
|
cursor: default;
|
|
78
75
|
}
|
|
79
76
|
|
|
80
77
|
.collapsed {
|
|
81
|
-
width: 68px;
|
|
82
78
|
justify-content: center;
|
|
83
79
|
position: relative;
|
|
84
80
|
width: 100%;
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
.collapsed .icon-span:hover {
|
|
88
|
-
background-color:
|
|
84
|
+
background-color: var(--spi-color-surface-subtle);
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
.active-collapsed {
|
|
92
|
-
background-color:
|
|
93
|
-
border-radius:
|
|
94
|
-
color:
|
|
88
|
+
background-color: var(--spi-color-primary-lighter);
|
|
89
|
+
border-radius: var(--spi-rounded-full);
|
|
90
|
+
color: var(--spi-color-primary-base);
|
|
95
91
|
}
|
|
96
92
|
|
|
97
93
|
.active-collapsed:hover {
|
|
98
|
-
background-color:
|
|
94
|
+
background-color: var(--spi-color-primary-lighter);
|
|
99
95
|
cursor: default;
|
|
100
96
|
}
|
|
101
97
|
|
|
@@ -103,7 +99,7 @@
|
|
|
103
99
|
.active-collapsed .icon-span,
|
|
104
100
|
.active-expanded .item-name-span,
|
|
105
101
|
.active-collapsed .item-name-span {
|
|
106
|
-
color:
|
|
102
|
+
color: var(--spi-color-primary-base);
|
|
107
103
|
}
|
|
108
104
|
|
|
109
105
|
.item.collapsed:focus,
|
|
@@ -115,8 +111,8 @@
|
|
|
115
111
|
|
|
116
112
|
.item.collapsed:focus-visible .icon-span,
|
|
117
113
|
.item.expanded:focus-visible {
|
|
118
|
-
box-shadow: 0 0 0
|
|
119
|
-
background-color:
|
|
114
|
+
box-shadow: 0 0 0 var(--spi-border-2) var(--spi-color-primary-base);
|
|
115
|
+
background-color: var(--spi-color-primary-lighter);
|
|
120
116
|
outline: none;
|
|
121
117
|
}
|
|
122
118
|
|