@xen-orchestra/web-core 0.15.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.
Files changed (29) hide show
  1. package/lib/components/connection-status/VtsConnectionStatus.vue +3 -0
  2. package/lib/components/console/VtsClipboardConsole.vue +2 -2
  3. package/lib/components/console/VtsRemoteConsole.vue +1 -1
  4. package/lib/components/data-table/VtsDataTable.vue +13 -14
  5. package/lib/components/input-wrapper/VtsInputWrapper.vue +94 -0
  6. package/lib/components/menu/MenuList.vue +1 -0
  7. package/lib/components/state-hero/VtsLoadingHero.vue +1 -3
  8. package/lib/components/ui/character-limit/UiCharacterLimit.vue +35 -0
  9. package/lib/components/ui/dropdown/UiDropdown.vue +214 -0
  10. package/lib/components/ui/dropdown/UiDropdownList.vue +16 -0
  11. package/lib/components/ui/input/UiInput.vue +7 -8
  12. package/lib/components/ui/label/UiLabel.vue +3 -1
  13. package/lib/components/ui/progress-bar/UiProgressBar.vue +108 -0
  14. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +1 -1
  15. package/lib/components/ui/table-pagination/UiTablePagination.vue +23 -57
  16. package/lib/components/ui/{input → text-area}/UiTextarea.vue +54 -12
  17. package/lib/composables/mapper.composable.md +74 -0
  18. package/lib/composables/mapper.composable.ts +18 -0
  19. package/lib/composables/pagination.composable.md +32 -0
  20. package/lib/composables/pagination.composable.ts +91 -0
  21. package/lib/composables/ranked.composable.md +118 -0
  22. package/lib/composables/ranked.composable.ts +37 -0
  23. package/lib/locales/en.json +23 -1
  24. package/lib/locales/fr.json +22 -0
  25. package/lib/utils/if-else.utils.ts +1 -1
  26. package/lib/utils/injection-keys.util.ts +3 -2
  27. package/package.json +22 -22
  28. package/lib/components/dropdown/DropdownItem.vue +0 -163
  29. package/lib/components/dropdown/DropdownList.vue +0 -31
@@ -44,12 +44,16 @@
44
44
  "backups.vms-protection.protected": "In at least 1 job & protected",
45
45
  "backups.vms-protection.tooltip": "A VM is protected if it's in a backup job, with an enabled schedule, and the last run succeeded",
46
46
  "backups.vms-protection.unprotected": "In at least 1 job but unprotected",
47
+ "bond": "Bond",
48
+ "bond-devices": "Bond devices",
49
+ "bond-status": "Bond status",
47
50
  "bytes.gi": "GiB",
48
51
  "bytes.ki": "KiB",
49
52
  "bytes.mi": "MiB",
50
53
  "cancel": "Cancel",
51
54
  "change-state": "Change state",
52
55
  "check-errors": "Check out the errors:",
56
+ "check-summing": "TX checksumming",
53
57
  "click-to-display-alarms": "Click to display alarms:",
54
58
  "click-to-return-default-pool": "Click here to return to the default pool",
55
59
  "close": "Close",
@@ -65,7 +69,9 @@
65
69
  "console-clipboard": "Console clipboard",
66
70
  "console-unavailable": "Console unavailable",
67
71
  "copy": "Copy",
72
+ "copy-all": "Copy all",
68
73
  "copy-info-json": "Copy information into JSON",
74
+ "core.character-limit": "{count}/{max} character | {count}/{max} characters",
69
75
  "core.close": "Close",
70
76
  "core.copied": "Copied",
71
77
  "core.copy-id": "Copy ID",
@@ -74,6 +80,8 @@
74
80
  "core.group": "Group",
75
81
  "core.hide": "Hide",
76
82
  "core.open": "Open",
83
+ "core.pagination.all": "All",
84
+ "core.pagination.show-by": "Show by",
77
85
  "core.query-search-bar.label": "Search Engine",
78
86
  "core.query-search-bar.placeholder": "Write your query…",
79
87
  "core.query-search-bar.use-query-builder": "Use query builder",
@@ -91,6 +99,7 @@
91
99
  "core.sidebar.unlock": "Unlock sidebar",
92
100
  "core.sort.ascending": "Sort ascending",
93
101
  "core.sort.descending": "Sort descending",
102
+ "core.textarea.exceeds-max-characters": "Field value must be {max} characters or less.",
94
103
  "cpu-provisioning": "CPU provisioning",
95
104
  "cpu-provisioning-warning": "The number of vCPUs allocated exceeds the number of physical CPUs available. System performance could be affected",
96
105
  "cpu-usage": "CPU usage",
@@ -238,6 +247,7 @@
238
247
  "log-out": "Log out",
239
248
  "login": "Login",
240
249
  "login-only-on-master": "Login is only possible on the master host",
250
+ "mac-address": "MAC address",
241
251
  "mac-addresses": "MAC addresses",
242
252
  "management": "Management",
243
253
  "master": "Primary host",
@@ -257,22 +267,25 @@
257
267
  "network": "Network",
258
268
  "network-block-device": "Network block device",
259
269
  "network-download": "Download",
270
+ "network-information": "Network information",
260
271
  "network-throughput": "Network throughput",
261
272
  "network-upload": "Upload",
262
273
  "networks": "Networks",
263
274
  "new": "New",
264
275
  "new-features-are-coming": "New features are coming soon!",
276
+ "new-vif": "New VIF",
265
277
  "news": "News",
266
278
  "news-name": "{name} news",
267
279
  "no-alarm-triggered": "No alarm triggered",
268
280
  "no-data": "No data",
269
281
  "no-network-detected": "No network detected",
270
- "no-pif-detected": "No pif detected",
282
+ "no-pif-detected": "No PIF detected",
271
283
  "no-result": "No result",
272
284
  "no-results": "No results",
273
285
  "no-selected-vm-can-be-exported": "No selected VM can be exported",
274
286
  "no-selected-vm-can-be-migrated": "No selected VM can be migrated",
275
287
  "no-tasks": "No tasks",
288
+ "no-vif-detected": "No VIF detected",
276
289
  "none": "None",
277
290
  "not-found": "Not found",
278
291
  "object": "Object",
@@ -290,6 +303,9 @@
290
303
  "password-invalid": "Password invalid",
291
304
  "patches": "Patches",
292
305
  "pause": "Pause",
306
+ "physical-interface-status": "Physical interface status",
307
+ "pif": "PIF",
308
+ "pif-status": "PIF status",
293
309
  "pifs": "PIFs",
294
310
  "pifs-status": "PIFs status",
295
311
  "please-confirm": "Please confirm",
@@ -306,6 +322,7 @@
306
322
  "power-on-vm-for-console": "Power on your VM to access its console",
307
323
  "power-state": "Power state",
308
324
  "professional-support": "Professional support",
325
+ "properties": "Properties",
309
326
  "property": "Property",
310
327
  "ram-usage": "RAM usage",
311
328
  "reboot": "Reboot",
@@ -363,6 +380,7 @@
363
380
  "switch-theme": "Switch theme",
364
381
  "system": "System",
365
382
  "table-actions": "Table actions",
383
+ "tags": "Tags",
366
384
  "task.estimated-end": "Estimated end",
367
385
  "task.progress": "Progress",
368
386
  "task.started": "Started",
@@ -395,6 +413,10 @@
395
413
  "vcpus": "vCPUs",
396
414
  "vcpus-used": "vCPUs used",
397
415
  "version": "Version",
416
+ "vif": "VIF",
417
+ "vif-device": "VIF #{device}",
418
+ "vif-status": "VIF status",
419
+ "vifs": "VIFs",
398
420
  "vlan": "VLAN",
399
421
  "vm": "VM",
400
422
  "vm-description": "VM description",
@@ -44,12 +44,16 @@
44
44
  "backups.vms-protection.protected": "Dans au moins 1 job et protégé",
45
45
  "backups.vms-protection.tooltip": "Une VM est protégée si elle se trouve dans un job, avec une planification activée, et si la dernière exécution a réussi",
46
46
  "backups.vms-protection.unprotected": "Dans au moins 1 job mais sans protection",
47
+ "bond": "Bond",
48
+ "bond-devices": "Devices du bond",
49
+ "bond-status": "Statut du bond",
47
50
  "bytes.gi": "Gio",
48
51
  "bytes.ki": "Kio",
49
52
  "bytes.mi": "Mio",
50
53
  "cancel": "Annuler",
51
54
  "change-state": "Changer l'état",
52
55
  "check-errors": "Consultez les erreurs :",
56
+ "check-summing": "TX checksumming",
53
57
  "click-to-display-alarms": "Cliquer pour afficher les alarmes :",
54
58
  "click-to-return-default-pool": "Cliquer ici pour revenir au pool par défaut",
55
59
  "close": "Fermer",
@@ -65,7 +69,9 @@
65
69
  "console-clipboard": "Presse-papiers de la console",
66
70
  "console-unavailable": "Console indisponible",
67
71
  "copy": "Copier",
72
+ "copy-all": "Copier tout",
68
73
  "copy-info-json": "Copier les informations en JSON",
74
+ "core.character-limit": "{count}/{max} caractère | {count}/{max} caractères",
69
75
  "core.close": "Fermer",
70
76
  "core.copied": "Copié",
71
77
  "core.copy-id": "Copier l'ID",
@@ -74,6 +80,8 @@
74
80
  "core.group": "Grouper",
75
81
  "core.hide": "Masquer",
76
82
  "core.open": "Ouvrir",
83
+ "core.pagination.all": "Tous",
84
+ "core.pagination.show-by": "Afficher par",
77
85
  "core.query-search-bar.label": "Moteur de recherche",
78
86
  "core.query-search-bar.placeholder": "Écrivez votre requête…",
79
87
  "core.query-search-bar.use-query-builder": "Utiliser le constructeur de requête",
@@ -91,6 +99,7 @@
91
99
  "core.sidebar.unlock": "Déverrouiller la barre latérale",
92
100
  "core.sort.ascending": "Trier par ordre croissant",
93
101
  "core.sort.descending": "Trier par ordre décroissant",
102
+ "core.textarea.exceeds-max-characters": "Le champ doit contenir {max} caractères ou moins.",
94
103
  "cpu-provisioning": "Provisionnement CPU",
95
104
  "cpu-provisioning-warning": "Le nombre de vCPU alloués dépasse le nombre de CPU physique disponible. Les performances du système pourraient être affectées",
96
105
  "cpu-usage": "Utilisation CPU",
@@ -238,6 +247,7 @@
238
247
  "log-out": "Se déconnecter",
239
248
  "login": "Connexion",
240
249
  "login-only-on-master": "La connexion n'est possible que sur l'hôte primaire",
250
+ "mac-address": "Adresse MAC",
241
251
  "mac-addresses": "Adresses MAC",
242
252
  "management": "Gestion",
243
253
  "master": "Hôte primaire",
@@ -257,11 +267,13 @@
257
267
  "network": "Réseau",
258
268
  "network-block-device": "Protocole NBD (Network Block Device)",
259
269
  "network-download": "Descendant",
270
+ "network-information": "Informations du réseau",
260
271
  "network-throughput": "Débit du réseau",
261
272
  "network-upload": "Montant",
262
273
  "networks": "Réseaux",
263
274
  "new": "Nouveau",
264
275
  "new-features-are-coming": "De nouvelles fonctionnalités arrivent bientôt !",
276
+ "new-vif": "Nouveau VIF",
265
277
  "news": "Actualités",
266
278
  "news-name": "Actualités {name}",
267
279
  "no-alarm-triggered": "Aucune alarme déclenchée",
@@ -273,6 +285,7 @@
273
285
  "no-selected-vm-can-be-exported": "Aucune VM sélectionnée ne peut être exportée",
274
286
  "no-selected-vm-can-be-migrated": "Aucune VM sélectionnée ne peut être migrée",
275
287
  "no-tasks": "Aucune tâche",
288
+ "no-vif-detected": "Aucun VIF détecté",
276
289
  "none": "Aucun",
277
290
  "not-found": "Non trouvé",
278
291
  "object": "Objet",
@@ -290,6 +303,9 @@
290
303
  "password-invalid": "Mot de passe incorrect",
291
304
  "patches": "Patches",
292
305
  "pause": "Pause",
306
+ "physical-interface-status": "Statut de l'interface physique",
307
+ "pif": "PIF",
308
+ "pif-status": "Statut du PIF",
293
309
  "pifs": "PIFs",
294
310
  "pifs-status": "Statut des PIFs",
295
311
  "please-confirm": "Veuillez confirmer",
@@ -306,6 +322,7 @@
306
322
  "power-on-vm-for-console": "Allumez votre VM pour accéder à sa console",
307
323
  "power-state": "État d'alimentation",
308
324
  "professional-support": "Support professionnel",
325
+ "properties": "Propriétés",
309
326
  "property": "Propriété",
310
327
  "ram-usage": "Utilisation de la RAM",
311
328
  "reboot": "Redémarrer",
@@ -363,6 +380,7 @@
363
380
  "switch-theme": "Changer de thème",
364
381
  "system": "Système",
365
382
  "table-actions": "Actions du tableau",
383
+ "tags": "Tags",
366
384
  "task.estimated-end": "Fin estimée",
367
385
  "task.progress": "Progression",
368
386
  "task.started": "Démarré",
@@ -395,6 +413,10 @@
395
413
  "vcpus": "vCPUs",
396
414
  "vcpus-used": "vCPUs utilisés",
397
415
  "version": "Version",
416
+ "vif": "VIF",
417
+ "vif-device": "VIF #{device}",
418
+ "vif-status": "Statut du VIF",
419
+ "vifs": "VIFs",
398
420
  "vlan": "VLAN",
399
421
  "vm": "VM",
400
422
  "vm-description": "Description de la VM",
@@ -2,7 +2,7 @@ import type { MaybeArray, VoidFunction } from '@core/types/utility.type'
2
2
  import { toArray } from '@core/utils/to-array.utils'
3
3
  import { watch, type WatchOptions, type WatchSource } from 'vue'
4
4
 
5
- export interface IfElseOptions extends Pick<WatchOptions, 'immediate'> {}
5
+ export interface IfElseOptions extends Pick<WatchOptions, 'immediate' | 'flush'> {}
6
6
 
7
7
  export function ifElse(
8
8
  source: WatchSource<boolean>,
@@ -1,3 +1,4 @@
1
+ import type { InputWrapperController } from '@core/components/input-wrapper/VtsInputWrapper.vue'
1
2
  import type { ValueFormatter } from '@core/types/chart'
2
3
  import type { ComputedRef, InjectionKey, Ref } from 'vue'
3
4
 
@@ -11,8 +12,6 @@ export const IK_TREE_ITEM_EXPANDED = Symbol('IK_TREE_ITEM_EXPANDED') as Injectio
11
12
 
12
13
  export const IK_TREE_LIST_DEPTH = Symbol('IK_TREE_LIST_DEPTH') as InjectionKey<number>
13
14
 
14
- export const IK_DROPDOWN_CHECKBOX = Symbol('IK_DROPDOWN_CHECKBOX') as InjectionKey<ComputedRef<boolean>>
15
-
16
15
  export const IK_MENU_HORIZONTAL = Symbol('IK_MENU_HORIZONTAL') as InjectionKey<ComputedRef<boolean>>
17
16
 
18
17
  export const IK_CLOSE_MENU = Symbol('IK_CLOSE_MENU') as InjectionKey<() => void>
@@ -20,3 +19,5 @@ export const IK_CLOSE_MENU = Symbol('IK_CLOSE_MENU') as InjectionKey<() => void>
20
19
  export const IK_MENU_TELEPORTED = Symbol('IK_MENU_TELEPORTED') as InjectionKey<boolean>
21
20
 
22
21
  export const IK_DISABLED = Symbol('IK_DISABLED') as InjectionKey<ComputedRef<boolean>>
22
+
23
+ export const IK_INPUT_WRAPPER_CONTROLLER = Symbol('IK_INPUT_WRAPPER_CONTROLLER') as InjectionKey<InputWrapperController>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xen-orchestra/web-core",
3
3
  "type": "module",
4
- "version": "0.15.0",
4
+ "version": "0.17.0",
5
5
  "private": false,
6
6
  "exports": {
7
7
  "./*": {
@@ -10,19 +10,19 @@
10
10
  }
11
11
  },
12
12
  "dependencies": {
13
- "@floating-ui/vue": "^1.1.5",
14
- "@fontsource/poppins": "^5.0.14",
15
- "@fortawesome/fontawesome-common-types": "^6.5.1",
16
- "@fortawesome/free-regular-svg-icons": "^6.5.1",
17
- "@fortawesome/free-solid-svg-icons": "^6.5.1",
18
- "@fortawesome/vue-fontawesome": "^3.0.5",
19
- "@novnc/novnc": "^1.4.0",
13
+ "@floating-ui/vue": "^1.1.6",
14
+ "@fontsource/poppins": "^5.2.5",
15
+ "@fortawesome/fontawesome-common-types": "^6.7.2",
16
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
17
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
18
+ "@fortawesome/vue-fontawesome": "^3.0.8",
19
+ "@novnc/novnc": "~1.5.0",
20
20
  "@types/d3-time-format": "^4.0.3",
21
- "@vueuse/core": "^10.7.1",
22
- "@vueuse/math": "^10.7.1",
23
- "@vueuse/shared": "^10.7.1",
21
+ "@vueuse/core": "^13.0.0",
22
+ "@vueuse/math": "^13.0.0",
23
+ "@vueuse/shared": "^13.0.0",
24
24
  "d3-time-format": "^4.1.0",
25
- "echarts": "^5.4.3",
25
+ "echarts": "^5.6.0",
26
26
  "human-format": "^1.2.1",
27
27
  "iterable-backoff": "^0.1.0",
28
28
  "lodash-es": "^4.17.21",
@@ -30,19 +30,19 @@
30
30
  "vue-echarts": "^6.6.8"
31
31
  },
32
32
  "peerDependencies": {
33
- "pinia": "^2.2.6",
34
- "vue": "~3.5.12",
35
- "vue-i18n": "^9.9.0",
36
- "vue-router": "^4.4.5"
33
+ "pinia": "^3.0.1",
34
+ "vue": "~3.5.13",
35
+ "vue-i18n": "^11.1.2",
36
+ "vue-router": "^4.5.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/lodash-es": "^4.17.12",
40
- "@types/novnc__novnc": "^1.5.0",
41
- "@vue/tsconfig": "^0.5.1",
42
- "pinia": "^2.2.6",
43
- "vue": "~3.5.12",
44
- "vue-i18n": "^9.9.0",
45
- "vue-router": "^4.4.5"
40
+ "@types/novnc__novnc": "~1.5.0",
41
+ "@vue/tsconfig": "^0.7.0",
42
+ "pinia": "^3.0.1",
43
+ "vue": "~3.5.13",
44
+ "vue-i18n": "^11.1.2",
45
+ "vue-router": "^4.5.0"
46
46
  },
47
47
  "homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/web-core",
48
48
  "bugs": "https://github.com/vatesfr/xen-orchestra/issues",
@@ -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>