@xen-orchestra/web-core 0.1.0 → 0.2.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 +148 -116
- package/lib/assets/css/_context.pcss +44 -44
- package/lib/assets/css/base.pcss +9 -8
- package/lib/assets/no-data.svg +67 -0
- package/lib/components/CardNumbers.vue +5 -5
- package/lib/components/LegendTitle.vue +3 -3
- package/lib/components/PowerStateIcon.vue +6 -6
- package/lib/components/UiCard.vue +2 -2
- package/lib/components/UiTag.vue +39 -31
- package/lib/components/backup-item/BackupItem.vue +5 -2
- package/lib/components/backup-state/BackupState.vue +4 -5
- package/lib/components/button/ButtonIcon.vue +40 -40
- package/lib/components/button/UiButton.vue +356 -93
- package/lib/components/card/CardSubtitle.vue +2 -2
- package/lib/components/card/CardTitle.vue +9 -4
- package/lib/components/cell-object/CellObject.vue +4 -4
- package/lib/components/cell-text/CellText.vue +3 -3
- package/lib/components/chip/ChipIcon.vue +6 -5
- package/lib/components/chip/UiChip.vue +20 -20
- package/lib/components/counter/VtsCounter.vue +147 -0
- package/lib/components/divider/Divider.vue +2 -2
- package/lib/components/donut-chart/DonutChart.vue +9 -9
- package/lib/components/dropdown/DropdownItem.vue +53 -73
- package/lib/components/dropdown/DropdownList.vue +1 -1
- package/lib/components/dropdown/DropdownTitle.vue +6 -6
- package/lib/components/head-bar/HeadBar.vue +6 -6
- package/lib/components/icon/ComplexIcon.vue +1 -1
- package/lib/components/icon/ObjectIcon.vue +19 -19
- package/lib/components/icon/VtsIcon.vue +96 -0
- package/lib/components/info/VtsInfo.vue +55 -0
- package/lib/components/input/UiInput.vue +22 -16
- package/lib/components/layout/LayoutSidebar.vue +3 -3
- package/lib/components/legend/LegendItem.vue +11 -11
- package/lib/components/menu/MenuItem.vue +4 -4
- package/lib/components/menu/MenuList.vue +6 -6
- package/lib/components/menu/MenuSeparator.vue +2 -2
- package/lib/components/menu/MenuTrigger.vue +6 -6
- package/lib/components/object-link/ObjectLink.vue +12 -12
- package/lib/components/query-search-bar/QuerySearchBar.vue +10 -3
- package/lib/components/stacked-bar/StackedBar.vue +2 -2
- package/lib/components/stacked-bar/StackedBarSegment.vue +6 -5
- package/lib/components/state-hero/NoDataHero.vue +11 -0
- package/lib/components/state-hero/StateHero.vue +6 -3
- package/lib/components/tab/TabItem.vue +11 -11
- package/lib/components/tab/TabList.vue +2 -2
- package/lib/components/table/ColumnTitle.vue +19 -16
- package/lib/components/table/UiTable.vue +5 -5
- package/lib/components/task/QuickTaskItem.vue +6 -6
- package/lib/components/task/QuickTaskList.vue +1 -1
- package/lib/components/task/QuickTaskPanel.vue +1 -1
- package/lib/components/task/QuickTaskTabBar.vue +22 -4
- package/lib/components/tooltip/TooltipItem.vue +15 -9
- package/lib/components/tree/TreeItemError.vue +1 -1
- package/lib/components/tree/TreeItemLabel.vue +12 -12
- package/lib/components/tree/TreeLine.vue +2 -2
- package/lib/components/tree/TreeLoadingItem.vue +4 -8
- package/lib/components/user/UserLink.vue +8 -8
- package/lib/components/user/UserLogo.vue +2 -2
- package/lib/composables/hide-route-query.composable.ts +10 -0
- package/lib/composables/route-query/actions/handle-delete.ts +9 -6
- package/lib/composables/route-query/actions/handle-set.ts +6 -4
- package/lib/composables/route-query/types.ts +10 -1
- package/lib/composables/sort-route-query.composable.ts +18 -0
- package/lib/composables/table/create-base-definition.ts +20 -0
- package/lib/composables/table/create-define-column.ts +26 -0
- package/lib/composables/table/create-sorting-definition.ts +48 -0
- package/lib/composables/table/create-visibility-definition.ts +44 -0
- package/lib/composables/table/type.ts +112 -0
- package/lib/composables/table.composable.ts +76 -0
- package/lib/layouts/CoreLayout.vue +3 -3
- package/lib/locales/en.json +1 -0
- package/lib/locales/fr.json +1 -0
- package/lib/types/backup.type.ts +1 -1
- package/lib/types/button.type.ts +1 -1
- package/lib/types/color.type.ts +2 -4
- package/lib/types/size.type.ts +0 -2
- package/lib/types/utility.type.ts +2 -0
- package/lib/utils/to-variants.util.ts +9 -0
- package/package.json +3 -3
- package/lib/components/UiCounter.vue +0 -89
- package/lib/components/icon/UiIcon.vue +0 -47
- package/lib/components/icon/VmIcon.vue +0 -30
|
@@ -21,7 +21,7 @@ withDefaults(
|
|
|
21
21
|
color?: Color
|
|
22
22
|
disabled?: boolean
|
|
23
23
|
}>(),
|
|
24
|
-
{ color: '
|
|
24
|
+
{ color: 'normal' }
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
const emit = defineEmits<{
|
|
@@ -33,13 +33,13 @@ const emit = defineEmits<{
|
|
|
33
33
|
<style lang="postcss" scoped>
|
|
34
34
|
/* COLOR VARIANTS */
|
|
35
35
|
.ui-chip {
|
|
36
|
-
--color: var(--color-
|
|
36
|
+
--color: var(--color-neutral-txt-primary);
|
|
37
37
|
|
|
38
38
|
&.disabled {
|
|
39
|
-
--color: var(--color-
|
|
39
|
+
--color: var(--color-normal-txt-item);
|
|
40
40
|
|
|
41
41
|
&.info {
|
|
42
|
-
--color: var(--color-
|
|
42
|
+
--color: var(--color-neutral-txt-secondary);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -47,66 +47,66 @@ const emit = defineEmits<{
|
|
|
47
47
|
/* BACKGROUND COLOR VARIANTS */
|
|
48
48
|
.ui-chip {
|
|
49
49
|
&.info {
|
|
50
|
-
--background-color: var(--
|
|
50
|
+
--background-color: var(--color-normal-background-selected);
|
|
51
51
|
|
|
52
52
|
&:is(:hover, .hover, :focus-visible) {
|
|
53
|
-
--background-color: var(--
|
|
53
|
+
--background-color: var(--color-normal-background-hover);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
&:is(:active, .pressed) {
|
|
57
|
-
--background-color: var(--
|
|
57
|
+
--background-color: var(--color-normal-background-active);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
&.disabled {
|
|
61
|
-
--background-color: var(--background-
|
|
61
|
+
--background-color: var(--color-neutral-background-secondary);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
&.success {
|
|
66
|
-
--background-color: var(--
|
|
66
|
+
--background-color: var(--color-success-background-selected);
|
|
67
67
|
|
|
68
68
|
&:is(:hover, .hover, :focus-visible) {
|
|
69
|
-
--background-color: var(--
|
|
69
|
+
--background-color: var(--color-success-background-hover);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
&:is(:active, .pressed) {
|
|
73
|
-
--background-color: var(--
|
|
73
|
+
--background-color: var(--color-success-background-active);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
&.disabled {
|
|
77
|
-
--background-color: var(--color-
|
|
77
|
+
--background-color: var(--color-success-item-disabled);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
&.warning {
|
|
82
|
-
--background-color: var(--
|
|
82
|
+
--background-color: var(--color-warning-background-selected);
|
|
83
83
|
|
|
84
84
|
&:is(:hover, .hover, :focus-visible) {
|
|
85
|
-
--background-color: var(--
|
|
85
|
+
--background-color: var(--color-warning-background-hover);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
&:is(:active, .pressed) {
|
|
89
|
-
--background-color: var(--
|
|
89
|
+
--background-color: var(--color-warning-background-active);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
&.disabled {
|
|
93
|
-
--background-color: var(--color-
|
|
93
|
+
--background-color: var(--color-warning-item-disabled);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
&:is(.danger, .error) {
|
|
98
|
-
--background-color: var(--
|
|
98
|
+
--background-color: var(--color-danger-background-selected);
|
|
99
99
|
|
|
100
100
|
&:is(:hover, .hover, :focus-visible) {
|
|
101
|
-
--background-color: var(--
|
|
101
|
+
--background-color: var(--color-danger-background-hover);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
&:is(:active, .pressed) {
|
|
105
|
-
--background-color: var(--
|
|
105
|
+
--background-color: var(--color-danger-background-active);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
&.disabled {
|
|
109
|
-
--background-color: var(--color-
|
|
109
|
+
--background-color: var(--color-danger-item-disabled);
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<!-- v2 -->
|
|
2
|
+
<template>
|
|
3
|
+
<span :class="classNames" class="vts-counter">
|
|
4
|
+
<span class="inner">{{ value }}</span>
|
|
5
|
+
</span>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script lang="ts" setup>
|
|
9
|
+
import { toVariants } from '@core/utils/to-variants.util'
|
|
10
|
+
import { computed } from 'vue'
|
|
11
|
+
|
|
12
|
+
type CounterAccent = 'brand' | 'neutral' | 'success' | 'warning' | 'danger' | 'muted'
|
|
13
|
+
type CounterVariant = 'primary' | 'secondary'
|
|
14
|
+
type CounterSize = 'small' | 'medium'
|
|
15
|
+
|
|
16
|
+
const props = defineProps<{
|
|
17
|
+
value: number | string
|
|
18
|
+
accent: CounterAccent
|
|
19
|
+
variant: CounterVariant
|
|
20
|
+
size: CounterSize
|
|
21
|
+
}>()
|
|
22
|
+
|
|
23
|
+
const typoClasses = {
|
|
24
|
+
small: 'typo p4-semi-bold',
|
|
25
|
+
medium: 'typo p1-medium',
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const classNames = computed(() => {
|
|
29
|
+
return [
|
|
30
|
+
typoClasses[props.size],
|
|
31
|
+
toVariants({
|
|
32
|
+
accent: props.accent,
|
|
33
|
+
variant: props.variant,
|
|
34
|
+
size: props.size,
|
|
35
|
+
}),
|
|
36
|
+
]
|
|
37
|
+
})
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<style lang="postcss" scoped>
|
|
41
|
+
/*
|
|
42
|
+
VARIANT + ACCENT
|
|
43
|
+
--vts-counter--background-color
|
|
44
|
+
--vts-counter--color
|
|
45
|
+
*/
|
|
46
|
+
.vts-counter {
|
|
47
|
+
&.variant--primary {
|
|
48
|
+
&.accent--brand {
|
|
49
|
+
--vts-counter--background-color: var(--color-normal-item-base);
|
|
50
|
+
--vts-counter--color: var(--color-normal-txt-item);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.accent--neutral {
|
|
54
|
+
--vts-counter--background-color: var(--color-neutral-txt-primary);
|
|
55
|
+
--vts-counter--color: var(--color-neutral-background-primary);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&.accent--success {
|
|
59
|
+
--vts-counter--background-color: var(--color-success-item-base);
|
|
60
|
+
--vts-counter--color: var(--color-success-txt-item);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&.accent--warning {
|
|
64
|
+
--vts-counter--background-color: var(--color-warning-item-base);
|
|
65
|
+
--vts-counter--color: var(--color-warning-txt-item);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&.accent--danger {
|
|
69
|
+
--vts-counter--background-color: var(--color-danger-item-base);
|
|
70
|
+
--vts-counter--color: var(--color-danger-txt-item);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&.accent--muted {
|
|
74
|
+
--vts-counter--background-color: var(--color-neutral-background-disabled);
|
|
75
|
+
--vts-counter--color: var(--color-neutral-txt-secondary);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&.variant--secondary {
|
|
80
|
+
&.accent--brand {
|
|
81
|
+
--vts-counter--background-color: var(--color-normal-background-selected);
|
|
82
|
+
--vts-counter--color: var(--color-normal-txt-base);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&.accent--neutral {
|
|
86
|
+
--vts-counter--background-color: var(--color-neutral-background-secondary);
|
|
87
|
+
--vts-counter--color: var(--color-neutral-txt-secondary);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&.accent--success {
|
|
91
|
+
--vts-counter--background-color: var(--color-success-background-selected);
|
|
92
|
+
--vts-counter--color: var(--color-success-txt-base);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&.accent--warning {
|
|
96
|
+
--vts-counter--background-color: var(--color-warning-background-selected);
|
|
97
|
+
--vts-counter--color: var(--color-warning-txt-base);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&.accent--danger {
|
|
101
|
+
--vts-counter--background-color: var(--color-danger-background-selected);
|
|
102
|
+
--vts-counter--color: var(--color-danger-txt-base);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&.accent--muted {
|
|
106
|
+
--vts-counter--background-color: var(--color-neutral-background-secondary);
|
|
107
|
+
--vts-counter--color: var(--color-neutral-txt-secondary);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/*
|
|
113
|
+
SIZE
|
|
114
|
+
--vts-counter--height
|
|
115
|
+
--vts-counter--padding
|
|
116
|
+
*/
|
|
117
|
+
.vts-counter {
|
|
118
|
+
&.size--small {
|
|
119
|
+
--vts-counter--height: 1.5rem;
|
|
120
|
+
--vts-counter--padding: 0 0.4rem;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&.size--medium {
|
|
124
|
+
--vts-counter--height: 2.4rem;
|
|
125
|
+
--vts-counter--padding: 0 0.6rem;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* IMPLEMENTATION */
|
|
130
|
+
.vts-counter {
|
|
131
|
+
display: inline-flex;
|
|
132
|
+
align-items: center;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
vertical-align: middle;
|
|
135
|
+
text-transform: lowercase;
|
|
136
|
+
color: var(--vts-counter--color);
|
|
137
|
+
height: var(--vts-counter--height);
|
|
138
|
+
min-width: var(--vts-counter--height);
|
|
139
|
+
padding: var(--vts-counter--padding);
|
|
140
|
+
background-color: var(--vts-counter--background-color);
|
|
141
|
+
border-radius: calc(var(--vts-counter--height) / 2);
|
|
142
|
+
|
|
143
|
+
.inner {
|
|
144
|
+
line-height: 0;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
</style>
|
|
@@ -10,8 +10,8 @@ defineProps<{
|
|
|
10
10
|
|
|
11
11
|
<style scoped lang="postcss">
|
|
12
12
|
.vts-divider {
|
|
13
|
-
border-left: 0.1rem solid var(--color-
|
|
14
|
-
border-bottom: 0.1rem solid var(--color-
|
|
13
|
+
border-left: 0.1rem solid var(--color-neutral-border);
|
|
14
|
+
border-bottom: 0.1rem solid var(--color-neutral-border);
|
|
15
15
|
|
|
16
16
|
&.tab {
|
|
17
17
|
height: 2.4rem;
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
cy="50"
|
|
14
14
|
r="40"
|
|
15
15
|
/>
|
|
16
|
-
<
|
|
16
|
+
<VtsIcon :icon accent="current" height="24" width="24" x="38" y="38" />
|
|
17
17
|
</svg>
|
|
18
18
|
</template>
|
|
19
19
|
|
|
20
20
|
<script lang="ts" setup>
|
|
21
|
-
import
|
|
21
|
+
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
22
22
|
import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
|
|
23
23
|
import { computed } from 'vue'
|
|
24
24
|
|
|
@@ -67,30 +67,30 @@ const computedSegments = computed(() => {
|
|
|
67
67
|
stroke: var(--stroke-color);
|
|
68
68
|
stroke-width: 10;
|
|
69
69
|
fill: transparent;
|
|
70
|
-
--stroke-color: var(--color-
|
|
70
|
+
--stroke-color: var(--color-neutral-txt-primary);
|
|
71
71
|
|
|
72
72
|
&.primary {
|
|
73
|
-
--stroke-color: var(--color-
|
|
73
|
+
--stroke-color: var(--color-normal-item-base);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
&.secondary {
|
|
77
|
-
--stroke-color: var(--color-
|
|
77
|
+
--stroke-color: var(--color-neutral-txt-primary);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
&.success {
|
|
81
|
-
--stroke-color: var(--color-
|
|
81
|
+
--stroke-color: var(--color-success-item-base);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
&.warning {
|
|
85
|
-
--stroke-color: var(--color-
|
|
85
|
+
--stroke-color: var(--color-warning-item-base);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
&.danger {
|
|
89
|
-
--stroke-color: var(--color-
|
|
89
|
+
--stroke-color: var(--color-danger-item-base);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
&.disabled {
|
|
93
|
-
--stroke-color: var(--color-
|
|
93
|
+
--stroke-color: var(--color-neutral-background-disabled);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
</style>
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-tooltip="{ selector: '.label' }" :class="[color, { disabled, selected }]" class="dropdown-item">
|
|
3
|
-
|
|
3
|
+
<!-- TODO: replace with correct color typing when available -->
|
|
4
|
+
<VtsIcon
|
|
5
|
+
v-if="checkbox"
|
|
6
|
+
:accent="color === 'normal' ? 'brand' : color"
|
|
7
|
+
:icon="selected ? faSquareCheck : faSquare"
|
|
8
|
+
/>
|
|
4
9
|
<slot name="icon">
|
|
5
|
-
<
|
|
10
|
+
<VtsIcon :icon accent="current" />
|
|
6
11
|
</slot>
|
|
7
12
|
<div class="label p2 medium text-ellipsis">
|
|
8
13
|
<slot />
|
|
9
14
|
</div>
|
|
10
15
|
<div v-if="info" class="info-text p3 italic">{{ info }}</div>
|
|
11
|
-
<
|
|
16
|
+
<VtsIcon v-if="arrow" :accent="disabled ? 'current' : 'brand'" :icon="faAngleRight" class="right-icon" />
|
|
12
17
|
</div>
|
|
13
18
|
</template>
|
|
14
19
|
|
|
15
20
|
<script lang="ts" setup>
|
|
16
|
-
import
|
|
21
|
+
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
17
22
|
import { vTooltip } from '@core/directives/tooltip.directive'
|
|
18
23
|
import type { Color } from '@core/types/color.type'
|
|
19
24
|
import { IK_DROPDOWN_CHECKBOX } from '@core/utils/injection-keys.util'
|
|
@@ -24,7 +29,7 @@ import { computed, inject } from 'vue'
|
|
|
24
29
|
|
|
25
30
|
defineProps<{
|
|
26
31
|
arrow?: boolean
|
|
27
|
-
color
|
|
32
|
+
color: Color
|
|
28
33
|
disabled?: boolean
|
|
29
34
|
icon?: IconDefinition
|
|
30
35
|
info?: string
|
|
@@ -40,128 +45,103 @@ const checkbox = inject(
|
|
|
40
45
|
<style lang="postcss" scoped>
|
|
41
46
|
/* COLOR VARIANTS */
|
|
42
47
|
.dropdown-item {
|
|
43
|
-
|
|
44
|
-
--color: var(--color-
|
|
45
|
-
--background-color: var(--background-
|
|
48
|
+
&.normal {
|
|
49
|
+
--color: var(--color-neutral-txt-primary);
|
|
50
|
+
--background-color: var(--color-neutral-background-primary);
|
|
46
51
|
|
|
47
52
|
&:is(.active, .selected) {
|
|
48
|
-
--color: var(--color-
|
|
49
|
-
--background-color: var(--
|
|
53
|
+
--color: var(--color-neutral-txt-primary);
|
|
54
|
+
--background-color: var(--color-normal-background-selected);
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
&:is(:hover, .hover, :focus-visible) {
|
|
53
|
-
--color: var(--color-
|
|
54
|
-
--background-color: var(--
|
|
58
|
+
--color: var(--color-neutral-txt-primary);
|
|
59
|
+
--background-color: var(--color-normal-background-hover);
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
&:is(:active, .pressed) {
|
|
58
|
-
--color: var(--color-
|
|
59
|
-
--background-color: var(--
|
|
63
|
+
--color: var(--color-neutral-txt-primary);
|
|
64
|
+
--background-color: var(--color-normal-background-active);
|
|
60
65
|
}
|
|
61
66
|
|
|
62
67
|
&.disabled {
|
|
63
|
-
--color: var(--color-
|
|
64
|
-
--background-color: var(--background-
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
&.info {
|
|
69
|
-
--color: var(--color-purple-base);
|
|
70
|
-
--background-color: var(--background-color-primary);
|
|
71
|
-
|
|
72
|
-
&:is(.active, .selected) {
|
|
73
|
-
--color: var(--color-purple-base);
|
|
74
|
-
--background-color: var(--background-color-purple-10);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
&:is(:hover, .hover, :focus-visible) {
|
|
78
|
-
--color: var(--color-purple-d20);
|
|
79
|
-
--background-color: var(--background-color-purple-20);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
&:is(:active, .pressed) {
|
|
83
|
-
--color: var(--color-purple-d40);
|
|
84
|
-
--background-color: var(--background-color-purple-30);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
&.disabled {
|
|
88
|
-
--color: var(--color-purple-l60);
|
|
89
|
-
--background-color: var(--background-color-primary);
|
|
68
|
+
--color: var(--color-neutral-txt-secondary);
|
|
69
|
+
--background-color: var(--color-neutral-background-primary);
|
|
90
70
|
}
|
|
91
71
|
}
|
|
92
72
|
|
|
93
73
|
&.success {
|
|
94
|
-
--color: var(--color-
|
|
95
|
-
--background-color: var(--background-
|
|
74
|
+
--color: var(--color-success-txt-base);
|
|
75
|
+
--background-color: var(--color-neutral-background-primary);
|
|
96
76
|
|
|
97
77
|
&:is(.active, .selected) {
|
|
98
|
-
--color: var(--color-
|
|
99
|
-
--background-color: var(--
|
|
78
|
+
--color: var(--color-success-txt-base);
|
|
79
|
+
--background-color: var(--color-success-background-selected);
|
|
100
80
|
}
|
|
101
81
|
|
|
102
82
|
&:is(:hover, .hover, :focus-visible) {
|
|
103
|
-
--color: var(--color-
|
|
104
|
-
--background-color: var(--
|
|
83
|
+
--color: var(--color-success-txt-hover);
|
|
84
|
+
--background-color: var(--color-success-background-hover);
|
|
105
85
|
}
|
|
106
86
|
|
|
107
87
|
&:is(:active, .pressed) {
|
|
108
|
-
--color: var(--color-
|
|
109
|
-
--background-color: var(--
|
|
88
|
+
--color: var(--color-success-txt-active);
|
|
89
|
+
--background-color: var(--color-success-background-active);
|
|
110
90
|
}
|
|
111
91
|
|
|
112
92
|
&.disabled {
|
|
113
|
-
--color: var(--color-
|
|
114
|
-
--background-color: var(--background-
|
|
93
|
+
--color: var(--color-neutral-txt-secondary);
|
|
94
|
+
--background-color: var(--color-neutral-background-primary);
|
|
115
95
|
}
|
|
116
96
|
}
|
|
117
97
|
|
|
118
98
|
&.warning {
|
|
119
|
-
--color: var(--color-
|
|
120
|
-
--background-color: var(--background-
|
|
99
|
+
--color: var(--color-warning-txt-base);
|
|
100
|
+
--background-color: var(--color-neutral-background-primary);
|
|
121
101
|
|
|
122
102
|
&:is(.active, .selected) {
|
|
123
|
-
--color: var(--color-
|
|
124
|
-
--background-color: var(--
|
|
103
|
+
--color: var(--color-warning-txt-base);
|
|
104
|
+
--background-color: var(--color-warning-background-selected);
|
|
125
105
|
}
|
|
126
106
|
|
|
127
107
|
&:is(:hover, .hover, :focus-visible) {
|
|
128
|
-
--color: var(--color-
|
|
129
|
-
--background-color: var(--
|
|
108
|
+
--color: var(--color-warning-txt-hover);
|
|
109
|
+
--background-color: var(--color-warning-background-hover);
|
|
130
110
|
}
|
|
131
111
|
|
|
132
112
|
&:is(:active, .pressed) {
|
|
133
|
-
--color: var(--color-
|
|
134
|
-
--background-color: var(--
|
|
113
|
+
--color: var(--color-warning-txt-active);
|
|
114
|
+
--background-color: var(--color-warning-background-active);
|
|
135
115
|
}
|
|
136
116
|
|
|
137
117
|
&.disabled {
|
|
138
|
-
--color: var(--color-
|
|
139
|
-
--background-color: var(--background-
|
|
118
|
+
--color: var(--color-neutral-txt-secondary);
|
|
119
|
+
--background-color: var(--color-neutral-background-primary);
|
|
140
120
|
}
|
|
141
121
|
}
|
|
142
122
|
|
|
143
|
-
|
|
144
|
-
--color: var(--color-
|
|
145
|
-
--background-color: var(--background-
|
|
123
|
+
&.danger {
|
|
124
|
+
--color: var(--color-danger-txt-base);
|
|
125
|
+
--background-color: var(--color-neutral-background-primary);
|
|
146
126
|
|
|
147
127
|
&:is(.active, .selected) {
|
|
148
|
-
--color: var(--color-
|
|
149
|
-
--background-color: var(--
|
|
128
|
+
--color: var(--color-danger-txt-base);
|
|
129
|
+
--background-color: var(--color-danger-background-selected);
|
|
150
130
|
}
|
|
151
131
|
|
|
152
132
|
&:is(:hover, .hover, :focus-visible) {
|
|
153
|
-
--color: var(--color-
|
|
154
|
-
--background-color: var(--
|
|
133
|
+
--color: var(--color-danger-txt-hover);
|
|
134
|
+
--background-color: var(--color-danger-background-hover);
|
|
155
135
|
}
|
|
156
136
|
|
|
157
137
|
&:is(:active, .pressed) {
|
|
158
|
-
--color: var(--color-
|
|
159
|
-
--background-color: var(--
|
|
138
|
+
--color: var(--color-danger-txt-active);
|
|
139
|
+
--background-color: var(--color-danger-background-active);
|
|
160
140
|
}
|
|
161
141
|
|
|
162
142
|
&.disabled {
|
|
163
|
-
--color: var(--color-
|
|
164
|
-
--background-color: var(--background-
|
|
143
|
+
--color: var(--color-neutral-txt-secondary);
|
|
144
|
+
--background-color: var(--color-neutral-background-primary);
|
|
165
145
|
}
|
|
166
146
|
}
|
|
167
147
|
}
|
|
@@ -184,6 +164,6 @@ const checkbox = inject(
|
|
|
184
164
|
}
|
|
185
165
|
|
|
186
166
|
.info-text {
|
|
187
|
-
color: var(--color-
|
|
167
|
+
color: var(--color-neutral-txt-secondary);
|
|
188
168
|
}
|
|
189
169
|
</style>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
-->
|
|
5
5
|
<template>
|
|
6
6
|
<div class="dropdown-title">
|
|
7
|
-
<
|
|
7
|
+
<VtsIcon :icon accent="current" />
|
|
8
8
|
<div class="label c3 semi-bold">
|
|
9
9
|
<slot />
|
|
10
10
|
</div>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
22
|
<script lang="ts" setup>
|
|
23
|
-
import
|
|
23
|
+
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
24
24
|
import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
|
|
25
25
|
|
|
26
26
|
withDefaults(
|
|
@@ -44,7 +44,7 @@ const emit = defineEmits<{
|
|
|
44
44
|
padding: 0.4rem 1.6rem;
|
|
45
45
|
gap: 0.8rem;
|
|
46
46
|
height: 2.6rem;
|
|
47
|
-
background: var(--background-
|
|
47
|
+
background: var(--color-neutral-background-secondary);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.buttons {
|
|
@@ -55,14 +55,14 @@ const emit = defineEmits<{
|
|
|
55
55
|
span {
|
|
56
56
|
cursor: pointer;
|
|
57
57
|
text-decoration: underline;
|
|
58
|
-
color: var(--color-
|
|
58
|
+
color: var(--color-normal-txt-base);
|
|
59
59
|
|
|
60
60
|
&:hover {
|
|
61
|
-
color: var(--color-
|
|
61
|
+
color: var(--color-normal-item-hover);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
&:active {
|
|
65
|
-
color: var(--color-
|
|
65
|
+
color: var(--color-normal-item-active);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="label-wrapper">
|
|
5
5
|
<span v-if="slots.icon || icon" class="icon">
|
|
6
6
|
<slot name="icon">
|
|
7
|
-
<
|
|
7
|
+
<VtsIcon :icon accent="current" />
|
|
8
8
|
</slot>
|
|
9
9
|
</span>
|
|
10
10
|
<h4 v-tooltip class="typo h4-medium label text-ellipsis">
|
|
@@ -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
|
|
|
@@ -43,8 +43,8 @@ const slots = defineSlots<{
|
|
|
43
43
|
display: flex;
|
|
44
44
|
gap: 4.8rem;
|
|
45
45
|
align-items: center;
|
|
46
|
-
border-bottom: 0.1rem solid var(--color-
|
|
47
|
-
background-color: var(--background-
|
|
46
|
+
border-bottom: 0.1rem solid var(--color-neutral-border);
|
|
47
|
+
background-color: var(--color-neutral-background-primary);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.label-wrapper {
|
|
@@ -55,7 +55,7 @@ const slots = defineSlots<{
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
.label {
|
|
58
|
-
color: var(--color-
|
|
58
|
+
color: var(--color-neutral-txt-primary);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
.icon {
|
|
@@ -63,7 +63,7 @@ const slots = defineSlots<{
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
.status {
|
|
66
|
-
color: var(--color-
|
|
66
|
+
color: var(--color-neutral-txt-secondary);
|
|
67
67
|
display: flex;
|
|
68
68
|
align-items: center;
|
|
69
69
|
gap: 1.6rem;
|