@xen-orchestra/web-core 0.13.0 → 0.14.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/lib/assets/css/_colors.pcss +8 -8
- package/lib/assets/css/base.pcss +2 -2
- package/lib/components/cell-object/VtsCellObject.vue +1 -1
- package/lib/components/console/VtsActionsConsole.vue +3 -3
- package/lib/components/console/VtsClipboardConsole.vue +2 -2
- package/lib/components/dropdown/DropdownItem.vue +1 -1
- package/lib/components/icon/VtsIcon.vue +2 -2
- package/lib/components/layout/VtsLayoutSidebar.vue +1 -1
- package/lib/components/resources/VtsResource.vue +43 -0
- package/lib/components/resources/VtsResources.vue +13 -0
- package/lib/components/task/VtsQuickTaskButton.vue +1 -1
- package/lib/components/task/VtsQuickTaskTabBar.vue +7 -1
- package/lib/components/tree/VtsTreeLine.vue +2 -2
- package/lib/components/tree/VtsTreeLoadingItem.vue +1 -1
- package/lib/components/ui/account-menu-button/UiAccountMenuButton.vue +3 -3
- package/lib/components/ui/button/UiButton.vue +46 -155
- package/lib/components/ui/button-icon/UiButtonIcon.vue +56 -55
- package/lib/components/ui/card-subtitle/UiCardSubtitle.vue +2 -2
- package/lib/components/ui/card-title/UiCardTitle.vue +1 -1
- package/lib/components/ui/checkbox/UiCheckbox.vue +35 -137
- package/lib/components/ui/checkbox-group/UiCheckboxGroup.vue +4 -4
- package/lib/components/ui/chip/ChipRemoveIcon.vue +7 -3
- package/lib/components/ui/counter/UiCounter.vue +17 -7
- package/lib/components/ui/dropdown-button/UiDropdownButton.vue +12 -12
- package/lib/components/ui/input/UiInput.vue +1 -1
- package/lib/components/ui/legend/UiLegend.vue +2 -2
- package/lib/components/ui/link/UiLink.vue +7 -12
- package/lib/components/ui/object-link/UiObjectLink.vue +3 -3
- package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +4 -4
- package/lib/components/ui/quick-task-item/UiQuickTaskItem.vue +1 -1
- package/lib/components/ui/radio-button/UiRadioButton.vue +30 -61
- package/lib/components/ui/radio-button-group/UiRadioButtonGroup.vue +4 -4
- package/lib/components/ui/table-pagination/PaginationButton.vue +8 -5
- package/lib/components/ui/table-pagination/UiTablePagination.vue +16 -16
- package/lib/components/ui/toaster/UiToaster.vue +1 -1
- package/lib/components/ui/toggle/UiToggle.vue +1 -1
- package/lib/components/ui/top-bottom-table/UiTopBottomTable.vue +2 -2
- package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +8 -8
- package/lib/components/ui/user-logo/UiUserLogo.vue +1 -1
- package/lib/layouts/CoreLayout.vue +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- v3 -->
|
|
2
2
|
<template>
|
|
3
3
|
<component :is="component" :class="classes" class="ui-link" v-bind="attributes">
|
|
4
4
|
<VtsIcon :icon accent="current" />
|
|
5
5
|
<slot />
|
|
6
|
-
<VtsIcon
|
|
7
|
-
v-if="attributes.target === '_blank'"
|
|
8
|
-
:icon="faArrowUpRightFromSquare"
|
|
9
|
-
accent="current"
|
|
10
|
-
class="external-icon"
|
|
11
|
-
/>
|
|
6
|
+
<VtsIcon v-if="attributes.target === '_blank'" :icon="faUpRightFromSquare" accent="current" class="external-icon" />
|
|
12
7
|
</component>
|
|
13
8
|
</template>
|
|
14
9
|
|
|
@@ -16,7 +11,7 @@
|
|
|
16
11
|
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
17
12
|
import { type LinkOptions, useLinkComponent } from '@core/composables/link-component.composable'
|
|
18
13
|
import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
|
|
19
|
-
import {
|
|
14
|
+
import { faUpRightFromSquare } from '@fortawesome/free-solid-svg-icons'
|
|
20
15
|
import { computed } from 'vue'
|
|
21
16
|
|
|
22
17
|
const props = defineProps<
|
|
@@ -41,14 +36,14 @@ const classes = computed(() => [typoClasses[props.size], { disabled: isDisabled.
|
|
|
41
36
|
display: inline-flex;
|
|
42
37
|
align-items: center;
|
|
43
38
|
gap: 0.8rem;
|
|
44
|
-
color: var(--color-
|
|
39
|
+
color: var(--color-brand-txt-base);
|
|
45
40
|
|
|
46
41
|
&:hover {
|
|
47
|
-
color: var(--color-
|
|
42
|
+
color: var(--color-brand-txt-hover);
|
|
48
43
|
}
|
|
49
44
|
|
|
50
45
|
&:active {
|
|
51
|
-
color: var(--color-
|
|
46
|
+
color: var(--color-brand-txt-active);
|
|
52
47
|
}
|
|
53
48
|
|
|
54
49
|
&:focus-visible {
|
|
@@ -57,7 +52,7 @@ const classes = computed(() => [typoClasses[props.size], { disabled: isDisabled.
|
|
|
57
52
|
&::before {
|
|
58
53
|
content: '';
|
|
59
54
|
position: absolute;
|
|
60
|
-
inset: -0.
|
|
55
|
+
inset: -0.4rem;
|
|
61
56
|
border: 0.2rem solid var(--color-info-txt-base);
|
|
62
57
|
border-radius: 0.4rem;
|
|
63
58
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<RouterLink v-if="route && !disabled" :to="route" class="ui-object-link is-link typo p3-regular-underline">
|
|
4
4
|
<span class="icon">
|
|
5
5
|
<slot name="icon">
|
|
6
|
-
<
|
|
6
|
+
<VtsIcon :icon accent="current" />
|
|
7
7
|
</slot>
|
|
8
8
|
</span>
|
|
9
9
|
<span v-tooltip class="content text-ellipsis">
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<span v-else :class="{ disabled }" class="ui-object-link typo p3-regular-underline">
|
|
14
14
|
<span class="icon">
|
|
15
15
|
<slot name="icon">
|
|
16
|
-
<
|
|
16
|
+
<VtsIcon :icon accent="current" />
|
|
17
17
|
</slot>
|
|
18
18
|
</span>
|
|
19
19
|
<slot />
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</template>
|
|
22
22
|
|
|
23
23
|
<script lang="ts" setup>
|
|
24
|
-
import
|
|
24
|
+
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
25
25
|
import { vTooltip } from '@core/directives/tooltip.directive'
|
|
26
26
|
import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
|
|
27
27
|
import { type RouteLocationRaw } from 'vue-router'
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
:placeholder="$t('core.query-search-bar.placeholder')"
|
|
15
15
|
/>
|
|
16
16
|
<template v-if="uiStore.isDesktop">
|
|
17
|
-
<UiButton size="medium" accent="
|
|
17
|
+
<UiButton size="medium" accent="brand" variant="primary" type="submit">{{ $t('core.search') }}</UiButton>
|
|
18
18
|
<VtsDivider type="stretch" />
|
|
19
19
|
<UiButton
|
|
20
20
|
v-tooltip="$t('coming-soon')"
|
|
21
21
|
size="medium"
|
|
22
|
-
accent="
|
|
22
|
+
accent="brand"
|
|
23
23
|
variant="secondary"
|
|
24
24
|
:left-icon="faFilter"
|
|
25
25
|
disabled
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
</UiButton>
|
|
29
29
|
</template>
|
|
30
30
|
<template v-else>
|
|
31
|
-
<UiButtonIcon accent="
|
|
32
|
-
<UiButtonIcon accent="
|
|
31
|
+
<UiButtonIcon accent="brand" size="medium" type="submit" :icon="faMagnifyingGlass" />
|
|
32
|
+
<UiButtonIcon accent="brand" size="medium" disabled :icon="faFilter" />
|
|
33
33
|
</template>
|
|
34
34
|
</form>
|
|
35
35
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<template>
|
|
3
3
|
<li class="ui-quick-task-item">
|
|
4
4
|
<div v-if="hasSubTasks" class="toggle" @click="toggleExpand()">
|
|
5
|
-
<UiButtonIcon accent="
|
|
5
|
+
<UiButtonIcon accent="brand" :icon="isExpanded ? faAngleDown : faAngleRight" size="small" />
|
|
6
6
|
</div>
|
|
7
7
|
<div class="content">
|
|
8
8
|
<div class="typo p1-medium">
|
|
@@ -17,7 +17,7 @@ import { faCircle } from '@fortawesome/free-solid-svg-icons'
|
|
|
17
17
|
import { computed } from 'vue'
|
|
18
18
|
|
|
19
19
|
const { accent, value, disabled } = defineProps<{
|
|
20
|
-
accent: '
|
|
20
|
+
accent: 'brand' | 'warning' | 'danger'
|
|
21
21
|
value: any
|
|
22
22
|
disabled?: boolean
|
|
23
23
|
}>()
|
|
@@ -65,19 +65,6 @@ const isDisabled = useDisabled(() => disabled)
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
&:has(.input:disabled) {
|
|
69
|
-
cursor: not-allowed;
|
|
70
|
-
|
|
71
|
-
/*
|
|
72
|
-
TODO: To be removed or kept after a decision has been taken
|
|
73
|
-
See https://www.figma.com/design/l2O2VvzJRnOCvqxhM7d124?node-id=8-1940#1021964394
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
&:not(:has(.input:checked)) {
|
|
77
|
-
--accent-color: var(--color-neutral-txt-secondary);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
68
|
&:has(.input:checked) {
|
|
82
69
|
background-color: var(--accent-color);
|
|
83
70
|
}
|
|
@@ -95,58 +82,37 @@ const isDisabled = useDisabled(() => disabled)
|
|
|
95
82
|
.radio-icon {
|
|
96
83
|
font-size: 0.8rem;
|
|
97
84
|
position: absolute;
|
|
98
|
-
|
|
99
|
-
|
|
85
|
+
transition: font-size 0.125s ease-in-out;
|
|
86
|
+
color: var(--radio-icon-color);
|
|
87
|
+
--radio-icon-color: var(--color-neutral-background-primary);
|
|
100
88
|
}
|
|
101
89
|
|
|
102
|
-
.input:
|
|
103
|
-
|
|
90
|
+
.input:not(:checked) + .radio-icon {
|
|
91
|
+
font-size: 1.2rem;
|
|
104
92
|
}
|
|
105
93
|
|
|
106
|
-
.input:
|
|
107
|
-
|
|
94
|
+
.input:disabled + .radio-icon {
|
|
95
|
+
--radio-icon-color: var(--color-neutral-background-disabled);
|
|
108
96
|
}
|
|
109
97
|
}
|
|
110
98
|
|
|
111
99
|
/* ACCENT */
|
|
112
100
|
|
|
113
|
-
&.accent--
|
|
114
|
-
--accent-color: var(--color-
|
|
115
|
-
|
|
116
|
-
&:hover {
|
|
117
|
-
--accent-color: var(--color-info-item-hover);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
&:active {
|
|
121
|
-
--accent-color: var(--color-info-item-active);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
&:has(.input:disabled) {
|
|
125
|
-
--accent-color: var(--color-info-item-disabled);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.radio-icon {
|
|
129
|
-
color: var(--color-info-txt-item);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
&.accent--success {
|
|
134
|
-
--accent-color: var(--color-success-item-base);
|
|
101
|
+
&.accent--brand {
|
|
102
|
+
--accent-color: var(--color-brand-item-base);
|
|
135
103
|
|
|
136
104
|
&:hover {
|
|
137
|
-
--accent-color: var(--color-
|
|
105
|
+
--accent-color: var(--color-brand-item-hover);
|
|
138
106
|
}
|
|
139
107
|
|
|
140
108
|
&:active {
|
|
141
|
-
--accent-color: var(--color-
|
|
109
|
+
--accent-color: var(--color-brand-item-active);
|
|
142
110
|
}
|
|
143
111
|
|
|
144
|
-
&:has(.input:disabled) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
.radio-icon {
|
|
149
|
-
color: var(--color-success-txt-item);
|
|
112
|
+
&:has(.input:checked:not(:disabled)) {
|
|
113
|
+
.radio-icon {
|
|
114
|
+
--radio-icon-color: var(--color-brand-txt-item);
|
|
115
|
+
}
|
|
150
116
|
}
|
|
151
117
|
}
|
|
152
118
|
|
|
@@ -161,12 +127,10 @@ const isDisabled = useDisabled(() => disabled)
|
|
|
161
127
|
--accent-color: var(--color-warning-item-active);
|
|
162
128
|
}
|
|
163
129
|
|
|
164
|
-
&:has(.input:disabled) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
.radio-icon {
|
|
169
|
-
color: var(--color-warning-txt-item);
|
|
130
|
+
&:has(.input:checked:not(:disabled)) {
|
|
131
|
+
.radio-icon {
|
|
132
|
+
--radio-icon-color: var(--color-warning-txt-item);
|
|
133
|
+
}
|
|
170
134
|
}
|
|
171
135
|
}
|
|
172
136
|
|
|
@@ -181,13 +145,18 @@ const isDisabled = useDisabled(() => disabled)
|
|
|
181
145
|
--accent-color: var(--color-danger-item-active);
|
|
182
146
|
}
|
|
183
147
|
|
|
184
|
-
&:has(.input:disabled) {
|
|
185
|
-
|
|
148
|
+
&:has(.input:checked:not(:disabled)) {
|
|
149
|
+
.radio-icon {
|
|
150
|
+
--radio-icon-color: var(--color-danger-txt-item);
|
|
151
|
+
}
|
|
186
152
|
}
|
|
153
|
+
}
|
|
187
154
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
155
|
+
/* DISABLED */
|
|
156
|
+
|
|
157
|
+
&:has(.input:disabled) {
|
|
158
|
+
cursor: not-allowed;
|
|
159
|
+
--accent-color: var(--color-neutral-txt-secondary);
|
|
191
160
|
}
|
|
192
161
|
}
|
|
193
162
|
</style>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<slot />
|
|
11
11
|
</div>
|
|
12
12
|
<slot v-if="slots.info || info !== undefined" name="info">
|
|
13
|
-
<UiInfo :accent>
|
|
13
|
+
<UiInfo :accent="accent === 'brand' ? 'info' : accent">
|
|
14
14
|
{{ info }}
|
|
15
15
|
</UiInfo>
|
|
16
16
|
</slot>
|
|
@@ -22,8 +22,8 @@ import UiInfo from '@core/components/ui/info/UiInfo.vue'
|
|
|
22
22
|
import UiLabel from '@core/components/ui/label/UiLabel.vue'
|
|
23
23
|
import { computed } from 'vue'
|
|
24
24
|
|
|
25
|
-
const
|
|
26
|
-
accent: '
|
|
25
|
+
const { accent } = defineProps<{
|
|
26
|
+
accent: 'brand' | 'warning' | 'danger'
|
|
27
27
|
label?: string
|
|
28
28
|
info?: string
|
|
29
29
|
vertical?: boolean
|
|
@@ -34,7 +34,7 @@ const slots = defineSlots<{
|
|
|
34
34
|
label?(): any
|
|
35
35
|
info?(): any
|
|
36
36
|
}>()
|
|
37
|
-
const labelAccent = computed(() => (
|
|
37
|
+
const labelAccent = computed(() => (accent === 'brand' ? 'neutral' : accent))
|
|
38
38
|
</script>
|
|
39
39
|
|
|
40
40
|
<style scoped lang="postcss">
|
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<UiButtonIcon :disabled accent="
|
|
2
|
+
<UiButtonIcon :disabled accent="brand" class="pagination-button" size="medium" :icon />
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script setup lang="ts">
|
|
6
6
|
import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
|
|
7
7
|
import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
defineProps<{
|
|
10
10
|
disabled: boolean
|
|
11
11
|
icon: IconDefinition
|
|
12
12
|
}>()
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<style scoped lang="postcss">
|
|
16
|
-
.pagination-button.accent--
|
|
16
|
+
.pagination-button.accent--brand {
|
|
17
17
|
border: 0.1rem solid var(--color-neutral-border);
|
|
18
18
|
font-size: 1rem;
|
|
19
|
+
/* Override UiButtonIcon size to match DS */
|
|
20
|
+
width: 3rem;
|
|
21
|
+
height: 3rem;
|
|
19
22
|
|
|
20
23
|
&:hover {
|
|
21
|
-
border-color: var(--color-
|
|
24
|
+
border-color: var(--color-brand-item-hover);
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
&:active {
|
|
25
|
-
border-color: var(--color-
|
|
28
|
+
border-color: var(--color-brand-item-active);
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
&:disabled {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- v3 -->
|
|
2
2
|
<template>
|
|
3
3
|
<div class="ui-table-pagination">
|
|
4
4
|
<div class="buttons-container">
|
|
@@ -111,21 +111,21 @@ watch([currentPage, currentPageSize], ([newPage, newPageSize]) => {
|
|
|
111
111
|
.dropdown {
|
|
112
112
|
cursor: pointer;
|
|
113
113
|
padding: 0.2rem 0.6rem;
|
|
114
|
-
height:
|
|
115
|
-
width:
|
|
114
|
+
height: 3rem;
|
|
115
|
+
width: 5rem;
|
|
116
116
|
appearance: none;
|
|
117
117
|
border-radius: 0.4rem;
|
|
118
|
-
color: var(--color-
|
|
118
|
+
color: var(--color-brand-txt-base);
|
|
119
119
|
border: 0.1rem solid var(--color-neutral-border);
|
|
120
120
|
background-color: var(--color-neutral-background-primary);
|
|
121
121
|
|
|
122
122
|
&:hover {
|
|
123
|
-
border-color: var(--color-
|
|
124
|
-
background-color: var(--color-
|
|
125
|
-
color: var(--color-
|
|
123
|
+
border-color: var(--color-brand-item-hover);
|
|
124
|
+
background-color: var(--color-brand-background-hover);
|
|
125
|
+
color: var(--color-brand-txt-hover);
|
|
126
126
|
|
|
127
127
|
+ .icon {
|
|
128
|
-
color: var(--color-
|
|
128
|
+
color: var(--color-brand-txt-hover);
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -141,18 +141,18 @@ watch([currentPage, currentPageSize], ([newPage, newPageSize]) => {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
&:active {
|
|
144
|
-
background-color: var(--color-
|
|
145
|
-
border-color: var(--color-
|
|
144
|
+
background-color: var(--color-brand-background-active);
|
|
145
|
+
border-color: var(--color-brand-item-active);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
&:focus-visible {
|
|
149
|
-
outline: 0.1rem solid var(--color-
|
|
150
|
-
border: 0.1rem solid var(--color-
|
|
151
|
-
color: var(--color-
|
|
152
|
-
background-color: var(--color-
|
|
149
|
+
outline: 0.1rem solid var(--color-brand-item-base);
|
|
150
|
+
border: 0.1rem solid var(--color-brand-item-base);
|
|
151
|
+
color: var(--color-brand-txt-base);
|
|
152
|
+
background-color: var(--color-brand-background-selected);
|
|
153
153
|
|
|
154
154
|
+ .icon {
|
|
155
|
-
color: var(--color-
|
|
155
|
+
color: var(--color-brand-txt-base);
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -171,7 +171,7 @@ watch([currentPage, currentPageSize], ([newPage, newPageSize]) => {
|
|
|
171
171
|
transform: translateY(-50%);
|
|
172
172
|
pointer-events: none;
|
|
173
173
|
font-size: 1rem;
|
|
174
|
-
color: var(--color-
|
|
174
|
+
color: var(--color-brand-txt-base);
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<slot name="description" />
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
14
|
-
<UiButtonIcon class="close-icon" :icon="faXmark"
|
|
14
|
+
<UiButtonIcon class="close-icon" :icon="faXmark" accent="brand" size="medium" />
|
|
15
15
|
</div>
|
|
16
16
|
<div v-if="slots.actions" class="actions">
|
|
17
17
|
<slot name="actions" />
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
<UiButton
|
|
10
10
|
:disabled="selectedItems === totalItems"
|
|
11
|
-
accent="
|
|
11
|
+
accent="brand"
|
|
12
12
|
size="small"
|
|
13
13
|
variant="tertiary"
|
|
14
14
|
@click="emit('toggleSelectAll', true)"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
</UiButton>
|
|
18
18
|
<UiButton
|
|
19
19
|
:disabled="selectedItems === 0"
|
|
20
|
-
accent="
|
|
20
|
+
accent="brand"
|
|
21
21
|
size="small"
|
|
22
22
|
variant="tertiary"
|
|
23
23
|
@click="emit('toggleSelectAll', false)"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- v3 -->
|
|
2
2
|
<template>
|
|
3
3
|
<RouterLink v-slot="{ isExactActive, isActive, href, navigate }" :to="route" custom>
|
|
4
4
|
<div
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
v-if="hasToggle"
|
|
19
19
|
v-tooltip="isExpanded ? $t('core.close') : $t('core.open')"
|
|
20
20
|
class="toggle"
|
|
21
|
-
accent="
|
|
21
|
+
accent="brand"
|
|
22
22
|
:icon="isExpanded ? faAngleDown : faAngleRight"
|
|
23
23
|
size="small"
|
|
24
24
|
:target-scale="{ x: 1.5, y: 2 }"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<div v-else class="h-line" />
|
|
28
28
|
<a v-tooltip="{ selector: '.text' }" :href class="link typo p2-medium" @click="navigate">
|
|
29
29
|
<slot name="icon">
|
|
30
|
-
<
|
|
30
|
+
<VtsIcon :icon accent="current" class="icon" />
|
|
31
31
|
</slot>
|
|
32
32
|
<div class="text text-ellipsis">
|
|
33
33
|
<slot />
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
</template>
|
|
40
40
|
|
|
41
41
|
<script lang="ts" setup>
|
|
42
|
-
import
|
|
42
|
+
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
43
43
|
import VtsTreeLine from '@core/components/tree/VtsTreeLine.vue'
|
|
44
44
|
import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
|
|
45
45
|
import { vTooltip } from '@core/directives/tooltip.directive'
|
|
@@ -114,22 +114,22 @@ const depth = inject(IK_TREE_LIST_DEPTH, 0)
|
|
|
114
114
|
|
|
115
115
|
.h-line {
|
|
116
116
|
width: 2rem;
|
|
117
|
-
border-bottom: 0.1rem solid var(--color-
|
|
117
|
+
border-bottom: 0.1rem solid var(--color-brand-txt-base);
|
|
118
118
|
margin-left: -0.4rem;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/* INTERACTION VARIANTS */
|
|
122
122
|
|
|
123
123
|
&:is(.exact-active, .active) {
|
|
124
|
-
background-color: var(--color-
|
|
124
|
+
background-color: var(--color-brand-background-selected);
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
&:hover {
|
|
128
|
-
background-color: var(--color-
|
|
128
|
+
background-color: var(--color-brand-background-hover);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
&:active {
|
|
132
|
-
background-color: var(--color-
|
|
132
|
+
background-color: var(--color-brand-background-active);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
</style>
|
|
@@ -18,7 +18,7 @@ defineProps<{
|
|
|
18
18
|
display: block;
|
|
19
19
|
background: var(--color-neutral-txt-primary) url('../../../assets/user.png') no-repeat;
|
|
20
20
|
border-style: solid;
|
|
21
|
-
border-color: var(--color-
|
|
21
|
+
border-color: var(--color-brand-item-base);
|
|
22
22
|
border-radius: 20rem;
|
|
23
23
|
|
|
24
24
|
/* SIZE VARIANTS */
|