@xen-orchestra/web-core 0.13.0 → 0.15.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 (82) hide show
  1. package/lib/assets/css/_colors.pcss +8 -8
  2. package/lib/assets/css/_typography.pcss +148 -6
  3. package/lib/assets/css/base.pcss +6 -6
  4. package/lib/components/backup-item/VtsBackupItem.vue +1 -1
  5. package/lib/components/card/VtsCardRowKeyValue.vue +4 -2
  6. package/lib/components/cell-object/VtsCellObject.vue +2 -2
  7. package/lib/components/cell-text/VtsCellText.vue +2 -2
  8. package/lib/components/console/VtsActionsConsole.vue +3 -3
  9. package/lib/components/console/VtsClipboardConsole.vue +2 -2
  10. package/lib/components/data-table/VtsDataTable.vue +11 -3
  11. package/lib/components/dropdown/DropdownItem.vue +1 -1
  12. package/lib/components/icon/VtsIcon.vue +2 -2
  13. package/lib/components/layout/VtsLayoutSidebar.vue +1 -1
  14. package/lib/components/menu/MenuTrigger.vue +2 -2
  15. package/lib/components/resources/VtsResource.vue +42 -0
  16. package/lib/components/resources/VtsResources.vue +13 -0
  17. package/lib/components/state-hero/VtsPageNotFoundHero.vue +1 -1
  18. package/lib/components/state-hero/VtsStateHero.vue +2 -2
  19. package/lib/components/tab/TabItem.vue +10 -10
  20. package/lib/components/table/ColumnTitle.vue +8 -8
  21. package/lib/components/table/VtsTable.vue +2 -2
  22. package/lib/components/task/VtsQuickTaskButton.vue +1 -1
  23. package/lib/components/task/VtsQuickTaskList.vue +1 -1
  24. package/lib/components/task/VtsQuickTaskTabBar.vue +7 -1
  25. package/lib/components/tree/VtsTreeItemError.vue +1 -1
  26. package/lib/components/tree/VtsTreeLine.vue +2 -2
  27. package/lib/components/tree/VtsTreeLoadingItem.vue +1 -1
  28. package/lib/components/ui/account-menu-button/UiAccountMenuButton.vue +4 -4
  29. package/lib/components/ui/actions-title/UiActionsTitle.vue +1 -1
  30. package/lib/components/ui/button/UiButton.vue +58 -167
  31. package/lib/components/ui/button-icon/UiButtonIcon.vue +56 -55
  32. package/lib/components/ui/card-numbers/UiCardNumbers.vue +4 -6
  33. package/lib/components/ui/card-subtitle/UiCardSubtitle.vue +5 -5
  34. package/lib/components/ui/card-title/UiCardTitle.vue +4 -4
  35. package/lib/components/ui/checkbox/UiCheckbox.vue +39 -141
  36. package/lib/components/ui/checkbox-group/UiCheckboxGroup.vue +4 -4
  37. package/lib/components/ui/chip/ChipRemoveIcon.vue +7 -3
  38. package/lib/components/ui/chip/UiChip.vue +1 -1
  39. package/lib/components/ui/counter/UiCounter.vue +22 -12
  40. package/lib/components/ui/dropdown-button/UiDropdownButton.vue +14 -14
  41. package/lib/components/ui/head-bar/UiHeadBar.vue +2 -2
  42. package/lib/components/ui/info/UiInfo.vue +1 -1
  43. package/lib/components/ui/input/UiInput.vue +9 -2
  44. package/lib/components/ui/label/UiLabel.vue +1 -1
  45. package/lib/components/ui/legend/UiLegend.vue +3 -3
  46. package/lib/components/ui/legend-title/UiLegendTitle.vue +1 -1
  47. package/lib/components/ui/link/UiLink.vue +10 -15
  48. package/lib/components/ui/object-link/UiObjectLink.vue +10 -10
  49. package/lib/components/ui/panel/UiPanel.vue +4 -2
  50. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +5 -5
  51. package/lib/components/ui/quick-task-item/UiQuickTaskItem.vue +4 -4
  52. package/lib/components/ui/radio-button/UiRadioButton.vue +32 -63
  53. package/lib/components/ui/radio-button-group/UiRadioButtonGroup.vue +4 -4
  54. package/lib/components/ui/stacked-bar/StackedBarSegment.vue +1 -1
  55. package/lib/components/ui/table-pagination/PaginationButton.vue +8 -5
  56. package/lib/components/ui/table-pagination/UiTablePagination.vue +20 -20
  57. package/lib/components/ui/tag/UiTag.vue +1 -1
  58. package/lib/components/ui/title/UiTitle.vue +3 -3
  59. package/lib/components/ui/toaster/UiToaster.vue +3 -3
  60. package/lib/components/ui/toggle/UiToggle.vue +3 -3
  61. package/lib/components/ui/tooltip/UiTooltip.vue +1 -1
  62. package/lib/components/ui/top-bottom-table/UiTopBottomTable.vue +3 -3
  63. package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +9 -9
  64. package/lib/components/ui/user-link/UiUserLink.vue +8 -8
  65. package/lib/components/ui/user-logo/UiUserLogo.vue +1 -1
  66. package/lib/i18n.ts +4 -0
  67. package/lib/layouts/CoreLayout.vue +1 -1
  68. package/lib/locales/cs.json +362 -16
  69. package/lib/locales/de.json +245 -41
  70. package/lib/locales/en.json +304 -14
  71. package/lib/locales/es.json +355 -29
  72. package/lib/locales/fa.json +206 -9
  73. package/lib/locales/fr.json +308 -18
  74. package/lib/locales/sv.json +421 -0
  75. package/lib/utils/to-variants.util.md +3 -3
  76. package/package.json +1 -1
  77. package/lib/assets/css/typography/_legacy.pcss +0 -123
  78. package/lib/assets/css/typography/_letter-spacing.pcss +0 -27
  79. package/lib/assets/css/typography/_line-height.pcss +0 -19
  80. package/lib/assets/css/typography/_size.pcss +0 -95
  81. package/lib/assets/css/typography/_style.pcss +0 -35
  82. package/lib/assets/css/typography/_weight.pcss +0 -57
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <li class="vts-tree-item-error typo h6-semi-bold">
2
+ <li class="vts-tree-item-error typo-h6">
3
3
  <slot />
4
4
  </li>
5
5
  </template>
@@ -22,7 +22,7 @@ defineProps<{
22
22
 
23
23
  .tree-line-vertical {
24
24
  width: 0.1rem;
25
- background: var(--color-info-txt-base);
25
+ background: var(--color-brand-txt-base);
26
26
  height: calc(100% + 0.7rem);
27
27
  transform: translateY(calc(0.7rem * -1));
28
28
  }
@@ -33,7 +33,7 @@ defineProps<{
33
33
  background: transparent;
34
34
 
35
35
  &.right {
36
- background: var(--color-info-txt-base);
36
+ background: var(--color-brand-txt-base);
37
37
  }
38
38
  }
39
39
  }
@@ -44,7 +44,7 @@ const depth = inject(IK_TREE_LIST_DEPTH, 0)
44
44
  .loader {
45
45
  flex: 1;
46
46
  animation: pulse alternate 1s infinite;
47
- background-color: var(--color-info-background-selected);
47
+ background-color: var(--color-brand-background-selected);
48
48
  }
49
49
  }
50
50
 
@@ -29,15 +29,15 @@ const isDisabled = useDisabled()
29
29
  }
30
30
 
31
31
  &:hover {
32
- background-color: var(--color-info-background-hover);
32
+ background-color: var(--color-brand-background-hover);
33
33
  }
34
34
 
35
35
  &:active {
36
- background-color: var(--color-info-background-active);
36
+ background-color: var(--color-brand-background-active);
37
37
  }
38
38
 
39
39
  &.selected {
40
- background-color: var(--color-info-background-selected);
40
+ background-color: var(--color-brand-background-selected);
41
41
  }
42
42
 
43
43
  &:focus-visible {
@@ -47,7 +47,7 @@ const isDisabled = useDisabled()
47
47
  content: '';
48
48
  position: absolute;
49
49
  inset: -0.4rem;
50
- border: 0.2rem solid var(--color-info-txt-base);
50
+ border: 0.2rem solid var(--color-brand-txt-base);
51
51
  border-radius: 0.4rem;
52
52
  }
53
53
  }
@@ -1,6 +1,6 @@
1
1
  <!-- v2 -->
2
2
  <template>
3
- <span class="ui-actions-title typo p2-regular">
3
+ <span class="ui-actions-title typo-body-regular-small">
4
4
  <slot />
5
5
  </span>
6
6
  </template>
@@ -1,4 +1,4 @@
1
- <!-- v4 -->
1
+ <!-- v6 -->
2
2
  <template>
3
3
  <button :class="classNames" :disabled="busy || isDisabled || lockIcon" class="ui-button" type="button">
4
4
  <VtsIcon :busy :icon="leftIcon" accent="current" class="icon" fixed-width />
@@ -16,10 +16,10 @@ import { faLock } from '@fortawesome/free-solid-svg-icons'
16
16
  import { computed } from 'vue'
17
17
 
18
18
  type ButtonVariant = 'primary' | 'secondary' | 'tertiary'
19
- type ButtonAccent = 'info' | 'success' | 'warning' | 'danger'
20
- type ButtonSize = 'small' | 'medium' | 'large'
19
+ type ButtonAccent = 'brand' | 'warning' | 'danger'
20
+ type ButtonSize = 'small' | 'medium'
21
21
 
22
- const props = defineProps<{
22
+ const { accent, variant, size, disabled, busy, lockIcon } = defineProps<{
23
23
  variant: ButtonVariant
24
24
  accent: ButtonAccent
25
25
  size: ButtonSize
@@ -33,22 +33,22 @@ defineSlots<{
33
33
  default(): any
34
34
  }>()
35
35
 
36
- const isDisabled = useDisabled(() => props.disabled)
36
+ const isDisabled = useDisabled(() => disabled)
37
37
 
38
38
  const fontClasses = {
39
- small: 'typo p3-medium',
40
- medium: 'typo h6-medium',
41
- large: 'typo h3-semi-bold',
39
+ small: 'typo-action-button-small',
40
+ medium: 'typo-action-button',
41
+ large: 'typo-h3',
42
42
  }
43
43
 
44
44
  const classNames = computed(() => [
45
- fontClasses[props.size],
45
+ fontClasses[size],
46
46
  toVariants({
47
- accent: props.accent,
48
- variant: props.variant,
49
- size: props.size,
50
- busy: props.busy,
51
- lock: props.lockIcon,
47
+ accent,
48
+ variant,
49
+ size,
50
+ busy,
51
+ lock: lockIcon,
52
52
  disabled: isDisabled.value,
53
53
  }),
54
54
  ])
@@ -90,60 +90,60 @@ const classNames = computed(() => [
90
90
 
91
91
  /* ACCENT + VARIANT */
92
92
 
93
- &.accent--info {
93
+ &.accent--brand {
94
94
  &.variant--primary {
95
- background-color: var(--color-info-item-base);
96
- border-color: var(--color-info-item-base);
97
- color: var(--color-info-txt-item);
95
+ background-color: var(--color-brand-item-base);
96
+ border-color: var(--color-brand-item-base);
97
+ color: var(--color-brand-txt-item);
98
98
 
99
99
  &:hover {
100
- background-color: var(--color-info-item-hover);
101
- border-color: var(--color-info-item-hover);
102
- color: var(--color-info-txt-item);
100
+ background-color: var(--color-brand-item-hover);
101
+ border-color: var(--color-brand-item-hover);
102
+ color: var(--color-brand-txt-item);
103
103
  }
104
104
 
105
105
  &:focus-visible::before {
106
- border-color: var(--color-info-txt-base);
106
+ border-color: var(--color-brand-txt-base);
107
107
  }
108
108
 
109
109
  &:active {
110
- background-color: var(--color-info-item-active);
111
- border-color: var(--color-info-item-active);
112
- color: var(--color-info-txt-item);
110
+ background-color: var(--color-brand-item-active);
111
+ border-color: var(--color-brand-item-active);
112
+ color: var(--color-brand-txt-item);
113
113
  }
114
114
 
115
115
  &:is(:disabled, .disabled) {
116
- background-color: var(--color-info-item-disabled);
117
- border-color: var(--color-info-item-disabled);
116
+ background-color: var(--color-brand-item-disabled);
117
+ border-color: var(--color-brand-item-disabled);
118
118
  color: var(--color-neutral-txt-secondary);
119
119
  }
120
120
 
121
121
  &.busy {
122
- background-color: var(--color-info-item-base);
123
- border-color: var(--color-info-item-base);
124
- color: var(--color-info-txt-item);
122
+ background-color: var(--color-brand-item-base);
123
+ border-color: var(--color-brand-item-base);
124
+ color: var(--color-brand-txt-item);
125
125
  }
126
126
  }
127
127
 
128
128
  &.variant--secondary {
129
129
  background-color: var(--color-neutral-background-primary);
130
- border-color: var(--color-info-item-base);
131
- color: var(--color-info-txt-base);
130
+ border-color: var(--color-brand-item-base);
131
+ color: var(--color-brand-txt-base);
132
132
 
133
133
  &:hover {
134
134
  background-color: var(--color-neutral-background-primary);
135
- border-color: var(--color-info-item-hover);
136
- color: var(--color-info-txt-hover);
135
+ border-color: var(--color-brand-item-hover);
136
+ color: var(--color-brand-txt-hover);
137
137
  }
138
138
 
139
139
  &:focus-visible::before {
140
- border-color: var(--color-info-txt-base);
140
+ border-color: var(--color-brand-txt-base);
141
141
  }
142
142
 
143
143
  &:active {
144
144
  background-color: var(--color-neutral-background-primary);
145
- border-color: var(--color-info-item-active);
146
- color: var(--color-info-txt-active);
145
+ border-color: var(--color-brand-item-active);
146
+ color: var(--color-brand-txt-active);
147
147
  }
148
148
 
149
149
  &:is(:disabled, .disabled) {
@@ -154,30 +154,30 @@ const classNames = computed(() => [
154
154
 
155
155
  &.busy {
156
156
  background-color: var(--color-neutral-background-primary);
157
- border-color: var(--color-info-item-base);
158
- color: var(--color-info-txt-base);
157
+ border-color: var(--color-brand-item-base);
158
+ color: var(--color-brand-txt-base);
159
159
  }
160
160
  }
161
161
 
162
162
  &.variant--tertiary {
163
163
  background-color: transparent;
164
164
  border-color: transparent;
165
- color: var(--color-info-txt-base);
165
+ color: var(--color-brand-txt-base);
166
166
 
167
167
  &:hover {
168
- background-color: var(--color-info-background-hover);
169
- border-color: var(--color-info-background-hover);
170
- color: var(--color-info-txt-hover);
168
+ background-color: var(--color-brand-background-hover);
169
+ border-color: var(--color-brand-background-hover);
170
+ color: var(--color-brand-txt-hover);
171
171
  }
172
172
 
173
173
  &:focus-visible::before {
174
- border-color: var(--color-info-txt-base);
174
+ border-color: var(--color-brand-txt-base);
175
175
  }
176
176
 
177
177
  &:active {
178
- background-color: var(--color-info-background-active);
179
- border-color: var(--color-info-background-active);
180
- color: var(--color-info-txt-active);
178
+ background-color: var(--color-brand-background-active);
179
+ border-color: var(--color-brand-background-active);
180
+ color: var(--color-brand-txt-active);
181
181
  }
182
182
 
183
183
  &:is(:disabled, .disabled) {
@@ -187,113 +187,9 @@ const classNames = computed(() => [
187
187
  }
188
188
 
189
189
  &.busy {
190
- background-color: var(--color-info-background-selected);
191
- border-color: var(--color-info-background-selected);
192
- color: var(--color-info-txt-base);
193
- }
194
- }
195
- }
196
-
197
- &.accent--success {
198
- &.variant--primary {
199
- background-color: var(--color-success-item-base);
200
- border-color: var(--color-success-item-base);
201
- color: var(--color-success-txt-item);
202
-
203
- &:hover {
204
- background-color: var(--color-success-item-hover);
205
- border-color: var(--color-success-item-hover);
206
- color: var(--color-success-txt-item);
207
- }
208
-
209
- &:focus-visible::before {
210
- border-color: var(--color-success-txt-base);
211
- }
212
-
213
- &:active {
214
- background-color: var(--color-success-item-active);
215
- border-color: var(--color-success-item-active);
216
- color: var(--color-success-txt-item);
217
- }
218
-
219
- &:is(:disabled, .disabled) {
220
- background-color: var(--color-success-item-disabled);
221
- border-color: var(--color-success-item-disabled);
222
- color: var(--color-neutral-txt-secondary);
223
- }
224
-
225
- &.busy {
226
- background-color: var(--color-success-item-base);
227
- border-color: var(--color-success-item-base);
228
- color: var(--color-success-txt-item);
229
- }
230
- }
231
-
232
- &.variant--secondary {
233
- background-color: var(--color-neutral-background-primary);
234
- border-color: var(--color-success-txt-base);
235
- color: var(--color-success-txt-base);
236
-
237
- &:hover {
238
- background-color: var(--color-neutral-background-primary);
239
- border-color: var(--color-success-txt-hover);
240
- color: var(--color-success-txt-hover);
241
- }
242
-
243
- &:focus-visible::before {
244
- border-color: var(--color-success-txt-base);
245
- }
246
-
247
- &:active {
248
- background-color: var(--color-neutral-background-primary);
249
- border-color: var(--color-success-txt-active);
250
- color: var(--color-success-txt-active);
251
- }
252
-
253
- &:is(:disabled, .disabled) {
254
- background-color: var(--color-neutral-background-disabled);
255
- border-color: var(--color-neutral-txt-secondary);
256
- color: var(--color-neutral-txt-secondary);
257
- }
258
-
259
- &.busy {
260
- background-color: var(--color-neutral-background-primary);
261
- border-color: var(--color-success-txt-base);
262
- color: var(--color-success-txt-base);
263
- }
264
- }
265
-
266
- &.variant--tertiary {
267
- background-color: transparent;
268
- border-color: transparent;
269
- color: var(--color-success-txt-base);
270
-
271
- &:hover {
272
- background-color: var(--color-success-background-hover);
273
- border-color: var(--color-success-background-hover);
274
- color: var(--color-success-txt-hover);
275
- }
276
-
277
- &:focus-visible::before {
278
- border-color: var(--color-success-txt-base);
279
- }
280
-
281
- &:active {
282
- background-color: var(--color-success-background-active);
283
- border-color: var(--color-success-background-active);
284
- color: var(--color-success-txt-active);
285
- }
286
-
287
- &:is(:disabled, .disabled) {
288
- background-color: transparent;
289
- border-color: transparent;
290
- color: var(--color-neutral-txt-secondary);
291
- }
292
-
293
- &.busy {
294
- background-color: var(--color-success-background-selected);
295
- border-color: var(--color-success-background-selected);
296
- color: var(--color-success-txt-base);
190
+ background-color: var(--color-brand-background-selected);
191
+ border-color: var(--color-brand-background-selected);
192
+ color: var(--color-brand-txt-base);
297
193
  }
298
194
  }
299
195
  }
@@ -311,7 +207,7 @@ const classNames = computed(() => [
311
207
  }
312
208
 
313
209
  &:focus-visible::before {
314
- border-color: var(--color-warning-txt-base);
210
+ border-color: var(--color-brand-txt-base);
315
211
  }
316
212
 
317
213
  &:active {
@@ -345,7 +241,7 @@ const classNames = computed(() => [
345
241
  }
346
242
 
347
243
  &:focus-visible::before {
348
- border-color: var(--color-warning-txt-base);
244
+ border-color: var(--color-brand-txt-base);
349
245
  }
350
246
 
351
247
  &:active {
@@ -379,7 +275,7 @@ const classNames = computed(() => [
379
275
  }
380
276
 
381
277
  &:focus-visible::before {
382
- border-color: var(--color-warning-txt-base);
278
+ border-color: var(--color-brand-txt-base);
383
279
  }
384
280
 
385
281
  &:active {
@@ -415,7 +311,7 @@ const classNames = computed(() => [
415
311
  }
416
312
 
417
313
  &:focus-visible::before {
418
- border-color: var(--color-danger-txt-base);
314
+ border-color: var(--color-brand-txt-base);
419
315
  }
420
316
 
421
317
  &:active {
@@ -449,7 +345,7 @@ const classNames = computed(() => [
449
345
  }
450
346
 
451
347
  &:focus-visible::before {
452
- border-color: var(--color-danger-txt-base);
348
+ border-color: var(--color-brand-txt-base);
453
349
  }
454
350
 
455
351
  &:active {
@@ -483,7 +379,7 @@ const classNames = computed(() => [
483
379
  }
484
380
 
485
381
  &:focus-visible::before {
486
- border-color: var(--color-danger-txt-base);
382
+ border-color: var(--color-brand-txt-base);
487
383
  }
488
384
 
489
385
  &:active {
@@ -509,18 +405,13 @@ const classNames = computed(() => [
509
405
  /* SIZE */
510
406
 
511
407
  &.size--small {
512
- padding: 0.4rem 0.8rem;
408
+ padding: 0.8rem;
513
409
  border-radius: 0.2rem;
514
410
  }
515
411
 
516
412
  &.size--medium {
517
- padding: 0.8rem 1.6rem;
413
+ padding: 1.2rem 1.6rem;
518
414
  border-radius: 0.4rem;
519
415
  }
520
-
521
- &.size--large {
522
- padding: 1.6rem 2.4rem;
523
- border-radius: 0.8rem;
524
- }
525
416
  }
526
417
  </style>
@@ -13,37 +13,40 @@ import { toVariants } from '@core/utils/to-variants.util'
13
13
  import type { IconDefinition } from '@fortawesome/fontawesome-common-types'
14
14
  import { computed } from 'vue'
15
15
 
16
- type ButtonIconAccent = 'info' | 'success' | 'warning' | 'danger'
16
+ type ButtonIconAccent = 'brand' | 'warning' | 'danger'
17
17
  type ButtonSize = 'small' | 'medium' | 'large'
18
18
 
19
- const props = withDefaults(
20
- defineProps<{
21
- icon: IconDefinition
22
- size: ButtonSize
23
- accent: ButtonIconAccent
24
- disabled?: boolean
25
- selected?: boolean
26
- dot?: boolean
27
- targetScale?: number | { x: number; y: number }
28
- }>(),
29
- { targetScale: 1 }
30
- )
19
+ const {
20
+ accent,
21
+ size,
22
+ disabled,
23
+ selected,
24
+ targetScale = 1,
25
+ } = defineProps<{
26
+ icon: IconDefinition
27
+ size: ButtonSize
28
+ accent: ButtonIconAccent
29
+ disabled?: boolean
30
+ selected?: boolean
31
+ dot?: boolean
32
+ targetScale?: number | { x: number; y: number }
33
+ }>()
31
34
 
32
35
  const cssTargetScale = computed(() => {
33
- if (typeof props.targetScale === 'number') {
34
- return `scale(${props.targetScale})`
36
+ if (typeof targetScale === 'number') {
37
+ return `scale(${targetScale})`
35
38
  }
36
39
 
37
- return `scale(${props.targetScale.x}, ${props.targetScale.y})`
40
+ return `scale(${targetScale.x}, ${targetScale.y})`
38
41
  })
39
42
 
40
43
  const classNames = computed(() => {
41
44
  return [
42
45
  toVariants({
43
- accent: props.accent,
44
- size: props.size,
45
- muted: props.disabled,
46
- selected: props.selected,
46
+ accent,
47
+ size,
48
+ muted: disabled,
49
+ selected,
47
50
  }),
48
51
  ]
49
52
  })
@@ -72,54 +75,44 @@ const classNames = computed(() => {
72
75
  background-color: var(--color-danger-txt-base);
73
76
  }
74
77
 
75
- /* ACCENT VARIANTS */
76
-
77
- &.accent--info {
78
- & {
79
- color: var(--color-info-txt-base);
80
- background-color: transparent;
81
- }
78
+ &:focus-visible {
79
+ outline: none;
82
80
 
83
- &:is(:hover, :focus-visible) {
84
- color: var(--color-info-txt-hover);
85
- background-color: var(--color-info-background-hover);
86
- }
87
-
88
- &:active {
89
- color: var(--color-info-txt-active);
90
- background-color: var(--color-info-background-active);
81
+ &::before {
82
+ content: '';
83
+ position: absolute;
84
+ inset: -0.2rem;
85
+ border-radius: 0.4rem;
86
+ border-width: 0.2rem;
87
+ border-style: solid;
91
88
  }
89
+ }
92
90
 
93
- &.selected {
94
- color: var(--color-info-txt-base);
95
- background-color: var(--color-info-background-selected);
96
- }
91
+ /* ACCENT VARIANTS */
97
92
 
98
- &.muted {
99
- color: var(--color-neutral-txt-secondary);
93
+ &.accent--brand {
94
+ & {
95
+ color: var(--color-brand-txt-base);
100
96
  background-color: transparent;
101
97
  }
102
- }
103
98
 
104
- &.accent--success {
105
- & {
106
- color: var(--color-success-txt-base);
107
- background-color: transparent;
99
+ &:hover {
100
+ color: var(--color-brand-txt-hover);
101
+ background-color: var(--color-brand-background-hover);
108
102
  }
109
103
 
110
- &:is(:hover, :focus-visible) {
111
- color: var(--color-success-txt-hover);
112
- background-color: var(--color-success-background-hover);
104
+ &:focus-visible::before {
105
+ border-color: var(--color-brand-txt-base);
113
106
  }
114
107
 
115
108
  &:active {
116
- color: var(--color-success-txt-active);
117
- background-color: var(--color-success-background-active);
109
+ color: var(--color-brand-txt-active);
110
+ background-color: var(--color-brand-background-active);
118
111
  }
119
112
 
120
113
  &.selected {
121
- color: var(--color-success-txt-base);
122
- background-color: var(--color-success-background-selected);
114
+ color: var(--color-brand-txt-base);
115
+ background-color: var(--color-brand-background-selected);
123
116
  }
124
117
 
125
118
  &.muted {
@@ -134,11 +127,15 @@ const classNames = computed(() => {
134
127
  background-color: transparent;
135
128
  }
136
129
 
137
- &:is(:hover, :focus-visible) {
130
+ &:hover {
138
131
  color: var(--color-warning-txt-hover);
139
132
  background-color: var(--color-warning-background-hover);
140
133
  }
141
134
 
135
+ &:focus-visible::before {
136
+ border-color: var(--color-brand-txt-base);
137
+ }
138
+
142
139
  &:active {
143
140
  color: var(--color-warning-txt-active);
144
141
  background-color: var(--color-warning-background-active);
@@ -165,11 +162,15 @@ const classNames = computed(() => {
165
162
  }
166
163
  }
167
164
 
168
- &:is(:hover, :focus-visible) {
165
+ &:hover {
169
166
  color: var(--color-danger-txt-hover);
170
167
  background-color: var(--color-danger-background-hover);
171
168
  }
172
169
 
170
+ &:focus-visible::before {
171
+ border-color: var(--color-brand-txt-base);
172
+ }
173
+
173
174
  &:active {
174
175
  color: var(--color-danger-txt-active);
175
176
  background-color: var(--color-danger-background-active);
@@ -1,9 +1,9 @@
1
1
  <!-- v1 -->
2
2
  <template>
3
3
  <div class="ui-card-numbers" :class="sizeClass">
4
- <span class="label" :class="labelFontClass">{{ label }}</span>
4
+ <span class="label typo-caption-small">{{ label }}</span>
5
5
  <div class="values" :class="sizeClass">
6
- <span v-if="percentValue" class="value typo c2-semi-bold">
6
+ <span v-if="percentValue" class="value typo-caption-small">
7
7
  {{ percentValue }}
8
8
  </span>
9
9
 
@@ -31,11 +31,9 @@ const { n } = useI18n()
31
31
 
32
32
  const sizeClass = computed(() => toVariants({ size: props.size }))
33
33
 
34
- const labelFontClass = computed(() => (props.size === 'medium' ? 'typo c3-semi-bold' : 'typo c2-semi-bold'))
34
+ const valueFontClass = computed(() => (props.size === 'medium' ? 'typo-h3' : 'typo-caption-small'))
35
35
 
36
- const valueFontClass = computed(() => (props.size === 'medium' ? 'typo h3-semi-bold' : 'typo c2-semi-bold'))
37
-
38
- const unitFontClass = computed(() => (props.size === 'medium' ? 'typo p2-medium' : 'typo c2-semi-bold'))
36
+ const unitFontClass = computed(() => (props.size === 'medium' ? 'typo-body-bold-small' : 'typo-caption-small'))
39
37
 
40
38
  const percentValue = computed(() => {
41
39
  if (props.size !== 'small' || props.max === undefined || props.max === 0) {
@@ -1,8 +1,8 @@
1
1
  <!-- v1 -->
2
2
  <template>
3
- <div class="ui-card-subtitle">
4
- <span class="typo h7-semi-bold"><slot /></span>
5
- <span v-if="slots.info" class="typo p3-medium"><slot name="info" /></span>
3
+ <div class="ui-card-subtitle typo-body-bold-small">
4
+ <span><slot /></span>
5
+ <span v-if="slots.info"><slot name="info" /></span>
6
6
  </div>
7
7
  </template>
8
8
 
@@ -15,8 +15,8 @@ const slots = defineSlots<{
15
15
 
16
16
  <style lang="postcss" scoped>
17
17
  .ui-card-subtitle {
18
- color: var(--color-info-txt-base);
19
- border-bottom: 0.1rem solid var(--color-info-txt-base);
18
+ color: var(--color-brand-txt-base);
19
+ border-bottom: 0.1rem solid var(--color-brand-txt-base);
20
20
  display: flex;
21
21
  justify-content: space-between;
22
22
  gap: 0.8rem;