@xen-orchestra/web-core 0.14.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 (65) hide show
  1. package/lib/assets/css/_typography.pcss +148 -6
  2. package/lib/assets/css/base.pcss +4 -4
  3. package/lib/components/backup-item/VtsBackupItem.vue +1 -1
  4. package/lib/components/card/VtsCardRowKeyValue.vue +4 -2
  5. package/lib/components/cell-object/VtsCellObject.vue +1 -1
  6. package/lib/components/cell-text/VtsCellText.vue +2 -2
  7. package/lib/components/data-table/VtsDataTable.vue +11 -3
  8. package/lib/components/menu/MenuTrigger.vue +2 -2
  9. package/lib/components/resources/VtsResource.vue +4 -5
  10. package/lib/components/state-hero/VtsPageNotFoundHero.vue +1 -1
  11. package/lib/components/state-hero/VtsStateHero.vue +2 -2
  12. package/lib/components/tab/TabItem.vue +10 -10
  13. package/lib/components/table/ColumnTitle.vue +8 -8
  14. package/lib/components/table/VtsTable.vue +2 -2
  15. package/lib/components/task/VtsQuickTaskList.vue +1 -1
  16. package/lib/components/tree/VtsTreeItemError.vue +1 -1
  17. package/lib/components/ui/account-menu-button/UiAccountMenuButton.vue +1 -1
  18. package/lib/components/ui/actions-title/UiActionsTitle.vue +1 -1
  19. package/lib/components/ui/button/UiButton.vue +12 -12
  20. package/lib/components/ui/button-icon/UiButtonIcon.vue +3 -3
  21. package/lib/components/ui/card-numbers/UiCardNumbers.vue +4 -6
  22. package/lib/components/ui/card-subtitle/UiCardSubtitle.vue +3 -3
  23. package/lib/components/ui/card-title/UiCardTitle.vue +3 -3
  24. package/lib/components/ui/checkbox/UiCheckbox.vue +4 -4
  25. package/lib/components/ui/chip/UiChip.vue +1 -1
  26. package/lib/components/ui/counter/UiCounter.vue +7 -7
  27. package/lib/components/ui/dropdown-button/UiDropdownButton.vue +2 -2
  28. package/lib/components/ui/head-bar/UiHeadBar.vue +2 -2
  29. package/lib/components/ui/info/UiInfo.vue +1 -1
  30. package/lib/components/ui/input/UiInput.vue +8 -1
  31. package/lib/components/ui/label/UiLabel.vue +1 -1
  32. package/lib/components/ui/legend/UiLegend.vue +3 -3
  33. package/lib/components/ui/legend-title/UiLegendTitle.vue +1 -1
  34. package/lib/components/ui/link/UiLink.vue +3 -3
  35. package/lib/components/ui/object-link/UiObjectLink.vue +7 -7
  36. package/lib/components/ui/panel/UiPanel.vue +4 -2
  37. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +1 -1
  38. package/lib/components/ui/quick-task-item/UiQuickTaskItem.vue +3 -3
  39. package/lib/components/ui/radio-button/UiRadioButton.vue +2 -2
  40. package/lib/components/ui/stacked-bar/StackedBarSegment.vue +1 -1
  41. package/lib/components/ui/table-pagination/UiTablePagination.vue +4 -4
  42. package/lib/components/ui/tag/UiTag.vue +1 -1
  43. package/lib/components/ui/title/UiTitle.vue +3 -3
  44. package/lib/components/ui/toaster/UiToaster.vue +2 -2
  45. package/lib/components/ui/toggle/UiToggle.vue +3 -3
  46. package/lib/components/ui/tooltip/UiTooltip.vue +1 -1
  47. package/lib/components/ui/top-bottom-table/UiTopBottomTable.vue +1 -1
  48. package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +1 -1
  49. package/lib/components/ui/user-link/UiUserLink.vue +8 -8
  50. package/lib/i18n.ts +4 -0
  51. package/lib/locales/cs.json +362 -16
  52. package/lib/locales/de.json +245 -41
  53. package/lib/locales/en.json +304 -14
  54. package/lib/locales/es.json +355 -29
  55. package/lib/locales/fa.json +206 -9
  56. package/lib/locales/fr.json +308 -18
  57. package/lib/locales/sv.json +421 -0
  58. package/lib/utils/to-variants.util.md +3 -3
  59. package/package.json +1 -1
  60. package/lib/assets/css/typography/_legacy.pcss +0 -123
  61. package/lib/assets/css/typography/_letter-spacing.pcss +0 -27
  62. package/lib/assets/css/typography/_line-height.pcss +0 -19
  63. package/lib/assets/css/typography/_size.pcss +0 -95
  64. package/lib/assets/css/typography/_style.pcss +0 -35
  65. package/lib/assets/css/typography/_weight.pcss +0 -57
@@ -2,14 +2,14 @@
2
2
  <template>
3
3
  <div class="ui-card-title">
4
4
  <div class="main-content">
5
- <div class="title typo h6-medium">
5
+ <div class="title typo-body-bold">
6
6
  <slot />
7
7
  </div>
8
- <div v-if="slots.info" class="info typo h7-semi-bold">
8
+ <div v-if="slots.info" class="info typo-body-bold-small">
9
9
  <slot name="info" />
10
10
  </div>
11
11
  </div>
12
- <p v-if="slots.description" class="description typo p3-regular">
12
+ <p v-if="slots.description" class="description typo-body-regular-small">
13
13
  <slot name="description" />
14
14
  </p>
15
15
  </div>
@@ -12,7 +12,7 @@
12
12
  <span class="fake-checkbox">
13
13
  <VtsIcon :icon accent="current" class="icon" />
14
14
  </span>
15
- <span v-if="slots.default" class="typo p1-regular">
15
+ <span v-if="slots.default" class="typo-body-regular">
16
16
  <slot />
17
17
  </span>
18
18
  </label>
@@ -156,7 +156,7 @@ const attrs = useAttrs()
156
156
  }
157
157
 
158
158
  &:focus-visible + .fake-checkbox::before {
159
- border: 0.2rem solid var(--color-info-txt-base);
159
+ border: 0.2rem solid var(--color-brand-txt-base);
160
160
  }
161
161
 
162
162
  &:active + .fake-checkbox {
@@ -207,7 +207,7 @@ const attrs = useAttrs()
207
207
  }
208
208
 
209
209
  &:focus-visible + .fake-checkbox::before {
210
- border: 0.2rem solid var(--color-warning-txt-base);
210
+ border: 0.2rem solid var(--color-brand-txt-base);
211
211
  }
212
212
 
213
213
  &:active + .fake-checkbox {
@@ -262,7 +262,7 @@ const attrs = useAttrs()
262
262
  }
263
263
 
264
264
  &:focus-visible + .fake-checkbox::before {
265
- border: 0.2rem solid var(--color-danger-txt-base);
265
+ border: 0.2rem solid var(--color-brand-txt-base);
266
266
  }
267
267
 
268
268
  &:active + .fake-checkbox {
@@ -1,6 +1,6 @@
1
1
  <!-- v4 -->
2
2
  <template>
3
- <span :class="classNames" class="ui-chip typo p3-regular" @click="emit('edit')">
3
+ <span :class="classNames" class="ui-chip typo-body-regular-small" @click="emit('edit')">
4
4
  <ChipIcon :disabled :icon />
5
5
  <span class="content text-ellipsis">
6
6
  <slot />
@@ -21,8 +21,8 @@ const { size, accent, variant } = defineProps<{
21
21
  }>()
22
22
 
23
23
  const typoClasses = {
24
- small: 'typo p4-semi-bold',
25
- medium: 'typo p1-medium',
24
+ small: 'typo-body-bold-small',
25
+ medium: 'typo-body-bold',
26
26
  }
27
27
 
28
28
  const classNames = computed(() => {
@@ -57,16 +57,16 @@ const classNames = computed(() => {
57
57
  color: var(--color-brand-txt-item);
58
58
  }
59
59
 
60
- &.accent--info {
61
- background-color: var(--color-info-item-base);
62
- color: var(--color-info-txt-item);
63
- }
64
-
65
60
  &.accent--neutral {
66
61
  background-color: var(--color-neutral-txt-primary);
67
62
  color: var(--color-neutral-background-primary);
68
63
  }
69
64
 
65
+ &.accent--info {
66
+ background-color: var(--color-info-item-base);
67
+ color: var(--color-info-txt-item);
68
+ }
69
+
70
70
  &.accent--success {
71
71
  background-color: var(--color-success-item-base);
72
72
  color: var(--color-success-txt-item);
@@ -2,7 +2,7 @@
2
2
  <template>
3
3
  <button :class="{ selected }" :disabled="isDisabled" class="ui-dropdown-item" type="button">
4
4
  <VtsIcon :icon accent="current" class="left-icon" fixed-width />
5
- <span class="typo p1-regular label">
5
+ <span class="typo-action-button label">
6
6
  <slot />
7
7
  </span>
8
8
  <VtsIcon :icon="faAngleDown" accent="current" class="right-icon" fixed-width />
@@ -62,7 +62,7 @@ const isDisabled = useDisabled(() => disabled)
62
62
  content: '';
63
63
  position: absolute;
64
64
  inset: -0.5rem;
65
- border: 0.2rem solid var(--color-info-txt-base);
65
+ border: 0.2rem solid var(--color-brand-txt-base);
66
66
  border-radius: 0.4rem;
67
67
  }
68
68
  }
@@ -7,11 +7,11 @@
7
7
  <VtsIcon :icon accent="current" />
8
8
  </slot>
9
9
  </span>
10
- <h4 v-tooltip class="typo h4-medium label text-ellipsis">
10
+ <h4 v-tooltip class="typo-h4 label text-ellipsis">
11
11
  <slot />
12
12
  </h4>
13
13
  </div>
14
- <div v-if="slots.status" class="status typo c3-regular">
14
+ <div v-if="slots.status" class="status typo-caption-small">
15
15
  <slot name="status" />
16
16
  </div>
17
17
  <div v-if="slots.actions" class="actions">
@@ -2,7 +2,7 @@
2
2
  <template>
3
3
  <div class="ui-info">
4
4
  <VtsIcon :accent class="icon" :icon="faCircle" :overlay-icon="icon" />
5
- <p v-tooltip="!wrap" class="typo p3-regular" :class="{ 'text-ellipsis': !wrap }">
5
+ <p v-tooltip="!wrap" class="typo-form-info" :class="{ 'text-ellipsis': !wrap }">
6
6
  <slot />
7
7
  </p>
8
8
  </div>
@@ -6,7 +6,14 @@
6
6
  </UiLabel>
7
7
  <div>
8
8
  <VtsIcon :icon accent="current" class="before" />
9
- <input :id v-model.trim="modelValue" class="typo p1-regular input text-ellipsis" :type :disabled v-bind="attrs" />
9
+ <input
10
+ :id
11
+ v-model.trim="modelValue"
12
+ class="typo-body-regular input text-ellipsis"
13
+ :type
14
+ :disabled
15
+ v-bind="attrs"
16
+ />
10
17
  <VtsIcon
11
18
  v-if="!attrs.disabled && modelValue && clearable"
12
19
  :icon="faXmark"
@@ -2,7 +2,7 @@
2
2
  <template>
3
3
  <div :class="toVariants({ accent })" class="ui-label">
4
4
  <VtsIcon accent="current" :icon class="icon" />
5
- <label :for="htmlFor" :class="{ required }" class="typo c2-semi-bold label">
5
+ <label :for="htmlFor" :class="{ required }" class="typo-caption label">
6
6
  <slot />
7
7
  </label>
8
8
  <UiLink v-if="href" class="learn-more-link" size="small" :href>{{ $t('learn-more') }}</UiLink>
@@ -2,9 +2,9 @@
2
2
  <template>
3
3
  <li :class="classNames" class="ui-legend">
4
4
  <VtsIcon :icon="faCircle" accent="current" class="circle-icon" />
5
- <span class="label typo p3-regular"><slot /></span>
6
- <VtsIcon v-if="tooltip" v-tooltip="tooltip" :icon="faCircleInfo" class="tooltip-icon" accent="brand" />
7
- <span v-if="valueLabel" class="value-and-unit typo c3-semi-bold">{{ valueLabel }}</span>
5
+ <span class="label typo-body-regular-small"><slot /></span>
6
+ <VtsIcon v-if="tooltip" v-tooltip="tooltip" :icon="faCircleInfo" class="tooltip-icon" accent="info" />
7
+ <span v-if="valueLabel" class="value-and-unit typo-caption-small">{{ valueLabel }}</span>
8
8
  </li>
9
9
  </template>
10
10
 
@@ -1,6 +1,6 @@
1
1
  <!-- v3 -->
2
2
  <template>
3
- <div class="ui-legend-title typo c3-semi-bold">
3
+ <div class="ui-legend-title typo-caption-small">
4
4
  <slot />
5
5
  <VtsIcon v-tooltip="iconTooltip ?? false" :icon accent="info" />
6
6
  </div>
@@ -22,8 +22,8 @@ const props = defineProps<
22
22
  >()
23
23
 
24
24
  const typoClasses = {
25
- small: 'typo p3-regular-underline',
26
- medium: 'typo p1-regular-underline',
25
+ small: 'typo-action-link-small',
26
+ medium: 'typo-action-link',
27
27
  }
28
28
 
29
29
  const { component, attributes, isDisabled } = useLinkComponent('span', () => props)
@@ -53,7 +53,7 @@ const classes = computed(() => [typoClasses[props.size], { disabled: isDisabled.
53
53
  content: '';
54
54
  position: absolute;
55
55
  inset: -0.4rem;
56
- border: 0.2rem solid var(--color-info-txt-base);
56
+ border: 0.2rem solid var(--color-brand-txt-base);
57
57
  border-radius: 0.4rem;
58
58
  }
59
59
  }
@@ -1,6 +1,6 @@
1
1
  <!-- v3 -->
2
2
  <template>
3
- <RouterLink v-if="route && !disabled" :to="route" class="ui-object-link is-link typo p3-regular-underline">
3
+ <RouterLink v-if="route && !disabled" :to="route" class="ui-object-link is-link typo-action-link-small">
4
4
  <span class="icon">
5
5
  <slot name="icon">
6
6
  <VtsIcon :icon accent="current" />
@@ -10,7 +10,7 @@
10
10
  <slot />
11
11
  </span>
12
12
  </RouterLink>
13
- <span v-else :class="{ disabled }" class="ui-object-link typo p3-regular-underline">
13
+ <span v-else :class="{ disabled }" class="ui-object-link typo-action-link-small">
14
14
  <span class="icon">
15
15
  <slot name="icon">
16
16
  <VtsIcon :icon accent="current" />
@@ -43,7 +43,7 @@ defineSlots<{
43
43
  display: flex;
44
44
  min-width: 0;
45
45
  align-items: center;
46
- color: var(--color-info-txt-base);
46
+ color: var(--color-brand-txt-base);
47
47
  gap: 1rem;
48
48
 
49
49
  &.disabled {
@@ -53,18 +53,18 @@ defineSlots<{
53
53
 
54
54
  .icon {
55
55
  color: var(--color-neutral-txt-primary);
56
- font-size: 0.8rem;
56
+ font-size: 1.6rem;
57
57
  }
58
58
 
59
59
  /* INTERACTION VARIANTS */
60
60
 
61
61
  &.is-link {
62
62
  &:hover {
63
- color: var(--color-info-txt-hover);
63
+ color: var(--color-brand-txt-hover);
64
64
  }
65
65
 
66
66
  &:active {
67
- color: var(--color-info-txt-active);
67
+ color: var(--color-brand-txt-active);
68
68
  }
69
69
 
70
70
  &:focus-visible {
@@ -74,7 +74,7 @@ defineSlots<{
74
74
  content: '';
75
75
  position: absolute;
76
76
  inset: -0.6rem;
77
- border: 0.2rem solid var(--color-info-txt-base);
77
+ border: 0.2rem solid var(--color-brand-txt-base);
78
78
  border-radius: 0.4rem;
79
79
  }
80
80
  }
@@ -23,10 +23,12 @@ const slots = defineSlots<{
23
23
 
24
24
  <style scoped lang="postcss">
25
25
  .ui-panel {
26
- height: 100%;
26
+ max-height: calc(100dvh - 5.5rem);
27
+ position: sticky;
28
+ top: 0;
27
29
  display: flex;
28
30
  flex-direction: column;
29
- border: 0.1rem solid var(--color-neutral-border);
31
+ border-inline-start: 0.1rem solid var(--color-neutral-border);
30
32
  background-color: var(--color-neutral-background-secondary);
31
33
 
32
34
  .header {
@@ -1,7 +1,7 @@
1
1
  <!-- v3 -->
2
2
  <template>
3
3
  <form class="ui-query-search-bar" @submit.prevent="emit('search', value)">
4
- <label v-if="uiStore.isDesktop" :for="id" class="typo p2-regular label">
4
+ <label v-if="uiStore.isDesktop" :for="id" class="typo-body-regular-small label">
5
5
  {{ $t('core.query-search-bar.label') }}
6
6
  </label>
7
7
  <UiInput
@@ -5,7 +5,7 @@
5
5
  <UiButtonIcon accent="brand" :icon="isExpanded ? faAngleDown : faAngleRight" size="small" />
6
6
  </div>
7
7
  <div class="content">
8
- <div class="typo p1-medium">
8
+ <div class="typo-body-bold">
9
9
  {{ task.name }}
10
10
  </div>
11
11
  <div class="informations">
@@ -13,10 +13,10 @@
13
13
  <UiTag v-if="task.tag" accent="neutral" variant="primary">{{ task.tag }}</UiTag>
14
14
  <div v-if="hasSubTasks" class="subtasks">
15
15
  <VtsIcon :icon="faCircleNotch" accent="current" />
16
- <span class="typo p4-medium">{{ $t('tasks.n-subtasks', { n: subTasksCount }) }}</span>
16
+ <span class="typo-body-regular-small">{{ $t('tasks.n-subtasks', { n: subTasksCount }) }}</span>
17
17
  </div>
18
18
  </div>
19
- <div v-if="task.start" class="line-2 typo p4-regular">
19
+ <div v-if="task.start" class="line-2 typo-body-regular-small">
20
20
  {{ $d(task.start, 'datetime_short') }}
21
21
  <template v-if="task.end">
22
22
  <VtsIcon :icon="faArrowRight" accent="current" />
@@ -1,6 +1,6 @@
1
1
  <!-- v4 -->
2
2
  <template>
3
- <label :class="variant" class="ui-radio-button typo p1-regular">
3
+ <label :class="variant" class="ui-radio-button typo-body-regular">
4
4
  <span class="radio-container">
5
5
  <input v-model="model" :disabled="isDisabled" :value class="input" type="radio" />
6
6
  <VtsIcon :icon="faCircle" accent="current" class="radio-icon" />
@@ -60,7 +60,7 @@ const isDisabled = useDisabled(() => disabled)
60
60
  position: absolute;
61
61
  content: '';
62
62
  inset: -0.5rem;
63
- border: 0.2rem solid var(--color-info-txt-base);
63
+ border: 0.2rem solid var(--color-brand-txt-base);
64
64
  border-radius: 0.4rem;
65
65
  }
66
66
  }
@@ -4,7 +4,7 @@
4
4
  v-tooltip="{ selector: '.text-ellipsis' }"
5
5
  :class="`accent--${accent}`"
6
6
  :style="{ width: percentage + '%' }"
7
- class="stacked-bar-segment typo c4-semi-bold"
7
+ class="stacked-bar-segment typo-caption-small"
8
8
  >
9
9
  <div ref="ellipsisElement" :class="{ hidden }" class="text-ellipsis">
10
10
  {{ $n(percentage / 100, 'percent') }}
@@ -7,13 +7,13 @@
7
7
  <PaginationButton :disabled="isLastPage || disabled" :icon="faAngleRight" @click="goToNextPage()" />
8
8
  <PaginationButton :disabled="isLastPage || disabled" :icon="faAngleDoubleRight" @click="goToLastPage()" />
9
9
  </div>
10
- <span class="typo p3-regular label">
10
+ <span class="typo-body-regular-small label">
11
11
  {{ $t('core.select.n-object-of', { from: startIndex, to: endIndex, total: totalItems }) }}
12
12
  </span>
13
- <span class="typo p3-regular label show">{{ $t('core.show-by') }}</span>
13
+ <span class="typo-body-regular-small label show">{{ $t('core.show-by') }}</span>
14
14
  <div class="dropdown-wrapper">
15
- <select v-model="pageSize" :disabled class="dropdown typo c3-regular" @change="goToFirstPage">
16
- <option v-for="option in pageSizeOptions" :key="option" :value="option" class="typo p2-medium">
15
+ <select v-model="pageSize" :disabled class="dropdown typo-body-regular-small" @change="goToFirstPage">
16
+ <option v-for="option in pageSizeOptions" :key="option" :value="option" class="typo-body-bold-small">
17
17
  {{ option }}
18
18
  </option>
19
19
  </select>
@@ -1,7 +1,7 @@
1
1
  <!-- v3 -->
2
2
  <!-- TODO: implement tertiary variant to bump to v4 -->
3
3
  <template>
4
- <span :class="toVariants({ accent, variant })" class="ui-tag typo p3-regular">
4
+ <span :class="toVariants({ accent, variant })" class="ui-tag typo-body-regular-small">
5
5
  <slot name="icon">
6
6
  <VtsIcon :icon accent="current" fixed-width />
7
7
  </slot>
@@ -1,7 +1,7 @@
1
1
  <!-- v2 -->
2
2
  <template>
3
3
  <div class="ui-title">
4
- <div class="typo h4-medium label">
4
+ <div class="typo-h4 label">
5
5
  <slot />
6
6
  </div>
7
7
  <div v-if="slots.actions" class="actions">
@@ -23,10 +23,10 @@ const slots = defineSlots<{
23
23
  align-items: center;
24
24
  gap: 2.4rem;
25
25
  padding-block-end: 0.4rem;
26
- border-bottom: 0.1rem solid var(--color-info-txt-base);
26
+ border-bottom: 0.1rem solid var(--color-brand-txt-base);
27
27
 
28
28
  .label {
29
- color: var(--color-info-txt-base);
29
+ color: var(--color-brand-txt-base);
30
30
  }
31
31
 
32
32
  .actions {
@@ -4,10 +4,10 @@
4
4
  <div class="content">
5
5
  <VtsIcon class="information-icon" :accent :icon="faCircle" :overlay-icon="icon" />
6
6
  <div>
7
- <div class="typo h5-semi-bold">
7
+ <div class="typo-h5">
8
8
  <slot />
9
9
  </div>
10
- <div v-if="slots.description" class="typo p2-regular">
10
+ <div v-if="slots.description" class="typo-body-regular-small">
11
11
  <slot name="description" />
12
12
  </div>
13
13
  </div>
@@ -1,6 +1,6 @@
1
1
  <!-- v2 -->
2
2
  <template>
3
- <label class="ui-toggle typo c2-semi-bold">
3
+ <label class="ui-toggle typo-caption">
4
4
  <slot />
5
5
  <span class="toggle-container">
6
6
  <input v-model="checked" :disabled="isDisabled || busy" class="input" type="checkbox" />
@@ -68,7 +68,7 @@ const isDisabled = useDisabled(() => disabled)
68
68
  position: absolute;
69
69
  content: '';
70
70
  inset: -0.5rem;
71
- border: 0.2rem solid var(--color-info-txt-base);
71
+ border: 0.2rem solid var(--color-brand-txt-base);
72
72
  border-radius: 0.4rem;
73
73
  }
74
74
  }
@@ -88,7 +88,7 @@ const isDisabled = useDisabled(() => disabled)
88
88
  width: 2rem;
89
89
  height: 2rem;
90
90
  margin: -0.1rem 0 0 -0.1rem;
91
- color: var(--color-info-txt-base);
91
+ color: var(--color-brand-txt-base);
92
92
  background-color: var(--color-neutral-background-primary);
93
93
  border: 0.1rem solid var(--border-color);
94
94
  border-radius: 1rem;
@@ -1,6 +1,6 @@
1
1
  <!-- v2 -->
2
2
  <template>
3
- <div v-if="!isDisabled" ref="tooltipElement" class="ui-tooltip typo p3-regular">
3
+ <div v-if="!isDisabled" ref="tooltipElement" class="ui-tooltip typo-body-regular-small">
4
4
  {{ content }}
5
5
  </div>
6
6
  </template>
@@ -2,7 +2,7 @@
2
2
  <template>
3
3
  <div class="ui-top-bottom-table">
4
4
  <div class="content">
5
- <span class="typo p3-regular label">
5
+ <span class="typo-body-regular-small label">
6
6
  {{ $t('core.select.n-selected-of', { count: selectedItems, total: totalItems }) }}
7
7
  </span>
8
8
 
@@ -25,7 +25,7 @@
25
25
  @click="emit('toggle')"
26
26
  />
27
27
  <div v-else class="h-line" />
28
- <a v-tooltip="{ selector: '.text' }" :href class="link typo p2-medium" @click="navigate">
28
+ <a v-tooltip="{ selector: '.text' }" :href class="link typo-body-bold-small" @click="navigate">
29
29
  <slot name="icon">
30
30
  <VtsIcon :icon accent="current" class="icon" />
31
31
  </slot>
@@ -1,10 +1,10 @@
1
1
  <!-- v3 -->
2
2
  <template>
3
- <RouterLink v-if="route && !disabled" :to="route" class="ui-user-link is-link typo p3-regular-underline">
3
+ <RouterLink v-if="route && !disabled" :to="route" class="ui-user-link is-link typo-action-link-small">
4
4
  <UiUserLogo size="extra-small" class="logo" />
5
5
  {{ username }}
6
6
  </RouterLink>
7
- <span v-else :class="toVariants({ disabled })" class="ui-user-link typo p3-regular-underline">
7
+ <span v-else :class="toVariants({ disabled })" class="ui-user-link typo-action-link-small">
8
8
  <UiUserLogo size="extra-small" class="logo" />
9
9
  {{ username }}
10
10
  </span>
@@ -26,7 +26,7 @@ defineProps<{
26
26
  .ui-user-link {
27
27
  display: inline-flex;
28
28
  align-items: center;
29
- color: var(--color-info-txt-base);
29
+ color: var(--color-brand-txt-base);
30
30
  gap: 0.8rem;
31
31
 
32
32
  &.disabled {
@@ -37,18 +37,18 @@ defineProps<{
37
37
 
38
38
  &.is-link {
39
39
  &:hover {
40
- color: var(--color-info-txt-hover);
40
+ color: var(--color-brand-txt-hover);
41
41
 
42
42
  .logo {
43
- border-color: var(--color-info-txt-hover);
43
+ border-color: var(--color-brand-txt-hover);
44
44
  }
45
45
  }
46
46
 
47
47
  &:active {
48
- color: var(--color-info-txt-active);
48
+ color: var(--color-brand-txt-active);
49
49
 
50
50
  .logo {
51
- border-color: var(--color-info-txt-active);
51
+ border-color: var(--color-brand-txt-active);
52
52
  }
53
53
  }
54
54
 
@@ -59,7 +59,7 @@ defineProps<{
59
59
  content: '';
60
60
  position: absolute;
61
61
  inset: -0.6rem;
62
- border: 0.2rem solid var(--color-info-txt-base);
62
+ border: 0.2rem solid var(--color-brand-txt-base);
63
63
  border-radius: 0.4rem;
64
64
  }
65
65
  }
package/lib/i18n.ts CHANGED
@@ -33,6 +33,10 @@ export const locales: Locales = {
33
33
  code: 'cs',
34
34
  name: 'čeština',
35
35
  },
36
+ sv: {
37
+ code: 'sv',
38
+ name: 'Svenska',
39
+ },
36
40
  }
37
41
 
38
42
  export default createI18n({