@xen-orchestra/web-core 0.16.0 → 0.17.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.
@@ -1,163 +0,0 @@
1
- <template>
2
- <div v-tooltip="{ selector: '.label' }" :class="[color, { disabled, selected }]" class="dropdown-item">
3
- <VtsIcon v-if="checkbox" :accent="color" :icon="selected ? faSquareCheck : faSquare" />
4
- <slot name="icon">
5
- <VtsIcon :icon accent="current" />
6
- </slot>
7
- <div class="label p2 medium text-ellipsis">
8
- <slot />
9
- </div>
10
- <div v-if="info" class="info-text p3 italic">{{ info }}</div>
11
- <VtsIcon v-if="arrow" :accent="disabled ? 'current' : 'brand'" :icon="faAngleRight" class="right-icon" />
12
- </div>
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- import VtsIcon, { type IconAccent } from '@core/components/icon/VtsIcon.vue'
17
- import { vTooltip } from '@core/directives/tooltip.directive'
18
- import { IK_DROPDOWN_CHECKBOX } from '@core/utils/injection-keys.util'
19
- import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
20
- import { faSquare } from '@fortawesome/free-regular-svg-icons'
21
- import { faAngleRight, faSquareCheck } from '@fortawesome/free-solid-svg-icons'
22
- import { computed, inject } from 'vue'
23
-
24
- defineProps<{
25
- arrow?: boolean
26
- color: IconAccent
27
- disabled?: boolean
28
- icon?: IconDefinition
29
- info?: string
30
- selected?: boolean
31
- }>()
32
-
33
- const checkbox = inject(
34
- IK_DROPDOWN_CHECKBOX,
35
- computed(() => false)
36
- )
37
- </script>
38
-
39
- <style lang="postcss" scoped>
40
- /* COLOR VARIANTS */
41
- .dropdown-item {
42
- &.info {
43
- --color: var(--color-neutral-txt-primary);
44
- --background-color: var(--color-neutral-background-primary);
45
-
46
- &:is(.active, .selected) {
47
- --color: var(--color-neutral-txt-primary);
48
- --background-color: var(--color-info-background-selected);
49
- }
50
-
51
- &:is(:hover, .hover, :focus-visible) {
52
- --color: var(--color-neutral-txt-primary);
53
- --background-color: var(--color-info-background-hover);
54
- }
55
-
56
- &:is(:active, .pressed) {
57
- --color: var(--color-neutral-txt-primary);
58
- --background-color: var(--color-info-background-active);
59
- }
60
-
61
- &.disabled {
62
- --color: var(--color-neutral-txt-secondary);
63
- --background-color: var(--color-neutral-background-primary);
64
- }
65
- }
66
-
67
- &.success {
68
- --color: var(--color-success-txt-base);
69
- --background-color: var(--color-neutral-background-primary);
70
-
71
- &:is(.active, .selected) {
72
- --color: var(--color-success-txt-base);
73
- --background-color: var(--color-success-background-selected);
74
- }
75
-
76
- &:is(:hover, .hover, :focus-visible) {
77
- --color: var(--color-success-txt-hover);
78
- --background-color: var(--color-success-background-hover);
79
- }
80
-
81
- &:is(:active, .pressed) {
82
- --color: var(--color-success-txt-active);
83
- --background-color: var(--color-success-background-active);
84
- }
85
-
86
- &.disabled {
87
- --color: var(--color-neutral-txt-secondary);
88
- --background-color: var(--color-neutral-background-primary);
89
- }
90
- }
91
-
92
- &.warning {
93
- --color: var(--color-warning-txt-base);
94
- --background-color: var(--color-neutral-background-primary);
95
-
96
- &:is(.active, .selected) {
97
- --color: var(--color-warning-txt-base);
98
- --background-color: var(--color-warning-background-selected);
99
- }
100
-
101
- &:is(:hover, .hover, :focus-visible) {
102
- --color: var(--color-warning-txt-hover);
103
- --background-color: var(--color-warning-background-hover);
104
- }
105
-
106
- &:is(:active, .pressed) {
107
- --color: var(--color-warning-txt-active);
108
- --background-color: var(--color-warning-background-active);
109
- }
110
-
111
- &.disabled {
112
- --color: var(--color-neutral-txt-secondary);
113
- --background-color: var(--color-neutral-background-primary);
114
- }
115
- }
116
-
117
- &.danger {
118
- --color: var(--color-danger-txt-base);
119
- --background-color: var(--color-neutral-background-primary);
120
-
121
- &:is(.active, .selected) {
122
- --color: var(--color-danger-txt-base);
123
- --background-color: var(--color-danger-background-selected);
124
- }
125
-
126
- &:is(:hover, .hover, :focus-visible) {
127
- --color: var(--color-danger-txt-hover);
128
- --background-color: var(--color-danger-background-hover);
129
- }
130
-
131
- &:is(:active, .pressed) {
132
- --color: var(--color-danger-txt-active);
133
- --background-color: var(--color-danger-background-active);
134
- }
135
-
136
- &.disabled {
137
- --color: var(--color-neutral-txt-secondary);
138
- --background-color: var(--color-neutral-background-primary);
139
- }
140
- }
141
- }
142
-
143
- /* IMPLEMENTATION */
144
- .dropdown-item {
145
- display: flex;
146
- align-items: center;
147
- padding: 0.8rem;
148
- gap: 0.8rem;
149
- height: 3.7rem;
150
- color: var(--color);
151
- background: var(--background-color);
152
- border-radius: 0.4rem;
153
- margin: 0 0.4rem;
154
- }
155
-
156
- .label {
157
- margin-right: auto;
158
- }
159
-
160
- .info-text {
161
- color: var(--color-neutral-txt-secondary);
162
- }
163
- </style>
@@ -1,31 +0,0 @@
1
- <template>
2
- <div class="dropdown-list">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- import { IK_DROPDOWN_CHECKBOX } from '@core/utils/injection-keys.util'
9
- import { computed, provide } from 'vue'
10
-
11
- const props = defineProps<{
12
- checkbox?: boolean
13
- }>()
14
-
15
- provide(
16
- IK_DROPDOWN_CHECKBOX,
17
- computed(() => props.checkbox)
18
- )
19
- </script>
20
-
21
- <style lang="postcss" scoped>
22
- .dropdown-list {
23
- display: flex;
24
- flex-direction: column;
25
- padding: 0.4rem 0;
26
- gap: 0.2rem;
27
- border-radius: 0.4rem;
28
- background: var(--color-neutral-background-primary);
29
- box-shadow: var(--shadow-300);
30
- }
31
- </style>