plugin-ui-for-kzt 0.0.16 → 0.0.18
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/dist/components/BaseBadge/BaseBadge.vue.d.ts +49 -0
- package/dist/components/BaseBadge/BaseBadgeGroup.vue.d.ts +30 -0
- package/dist/components/BaseButton/BaseButton.vue.d.ts +3 -3
- package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +4 -4
- package/dist/components/BaseChips/BaseChips.vue.d.ts +27 -0
- package/dist/components/BaseDropdown/BaseDropdown.vue.d.ts +3 -3
- package/dist/components/BaseInput/BaseInput.vue.d.ts +5 -5
- package/dist/components/BaseInputCalendar/BaseInputCalendar.vue.d.ts +5 -5
- package/dist/components/BaseInputCurrency/BaseInputCurrency.vue.d.ts +5 -5
- package/dist/components/BaseInputEmail/BaseInputEmail.vue.d.ts +5 -5
- package/dist/components/BaseInputPhone/BaseInputPhone.vue.d.ts +5 -5
- package/dist/components/BaseModal/BaseModal.vue.d.ts +4 -0
- package/dist/components/BaseOpenedListItem/BaseOpenedListItem.vue.d.ts +3 -3
- package/dist/components/BasePagination/BasePagination.vue.d.ts +1 -1
- package/dist/components/BaseRadio/BaseRadio.vue.d.ts +4 -4
- package/dist/components/BaseSegmentedButtons/BaseSegmentedButtons.vue.d.ts +3 -3
- package/dist/components/BaseSelect/BaseSelect.vue.d.ts +4 -4
- package/dist/components/BaseSiteInput/BaseSiteInput.vue.d.ts +1 -1
- package/dist/components/BaseSwiper/BaseSwiper.vue.d.ts +57 -0
- package/dist/components/BaseTag/BaseTag.vue.d.ts +61 -0
- package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +5 -5
- package/dist/components/BaseToggle/BaseToggle.vue.d.ts +4 -4
- package/dist/components/BaseUpload/BaseUpload.vue.d.ts +31 -0
- package/dist/components/{Modal/Modal.vue.d.ts → BaseUpload/ImageModal.vue.d.ts} +2 -10
- package/dist/components/Toaster/Toaster.vue.d.ts +4 -4
- package/dist/composables/useModal.d.ts +7 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.js +1 -1
- package/dist/plugins/modalPlugin.d.ts +0 -13
- package/dist/sprite.svg +1 -1
- package/dist/store/modal.d.ts +154 -9
- package/example/App.vue +129 -295
- package/example/MyCustomModal.vue +37 -0
- package/package.json +1 -1
- package/src/assets/icons/add.svg +4 -0
- package/src/assets/icons/arrow-left-circle.svg +3 -0
- package/src/assets/icons/arrow-right-circle.svg +3 -0
- package/src/assets/icons/arrow-up.svg +4 -0
- package/src/assets/icons/close-circle.svg +5 -0
- package/src/assets/icons/close.svg +4 -0
- package/src/assets/icons/document-text.svg +4 -0
- package/src/assets/icons/export.svg +5 -0
- package/src/assets/icons/gallery.svg +5 -0
- package/src/assets/icons/notification-icon.svg +7 -0
- package/src/assets/icons/search-zoom-in.svg +6 -0
- package/src/assets/icons/star.svg +3 -0
- package/src/assets/icons/trash.svg +7 -0
- package/src/assets/icons/upload.svg +5 -0
- package/src/components/BaseBadge/BaseBadge.vue +188 -0
- package/src/components/BaseBadge/BaseBadgeGroup.vue +120 -0
- package/src/components/BaseBadge/README.md +127 -0
- package/src/components/BaseBreadCrumbs/BaseBreadCrumbs.vue +3 -3
- package/src/components/BaseButton/BaseButton.vue +29 -122
- package/src/components/BaseChips/BaseChips.vue +182 -0
- package/src/components/BaseChips/README.md +64 -0
- package/src/components/BaseInput/BaseInput.vue +5 -3
- package/src/components/BaseModal/BaseModal.vue +189 -0
- package/src/components/BaseOpenedListItem/BaseOpenedListItem.vue +4 -4
- package/src/components/BasePagination/BasePagination.vue +146 -123
- package/src/components/BaseSiteInput/BaseSiteInput.vue +26 -9
- package/src/components/BaseSwiper/BaseSwiper.vue +229 -0
- package/src/components/BaseTag/BaseTag.vue +245 -0
- package/src/components/BaseTag/README.md +125 -0
- package/src/components/BaseTextarea/BaseTextarea.vue +8 -14
- package/src/components/BaseUpload/BaseUpload.vue +392 -0
- package/src/components/BaseUpload/ImageModal.vue +25 -0
- package/src/composables/useModal.ts +14 -0
- package/src/index.ts +38 -19
- package/src/plugins/modalPlugin.ts +92 -76
- package/src/store/modal.ts +39 -16
- package/src/styles/root.scss +3 -0
- package/src/types/badge.d.ts +19 -0
- package/src/types/chips.d.ts +10 -0
- package/src/types/modal.d.ts +8 -0
- package/src/types/pagination.d.ts +2 -2
- package/src/types/swiper.d.ts +17 -0
- package/src/types/tag.d.ts +14 -0
- package/src/types/uploadedFile.d.ts +13 -0
- package/src/types/utils.d.ts +1 -1
- package/dist/types/index.d.ts +0 -5
- package/src/components/Modal/Modal.vue +0 -149
- package/src/components/Modal/README.md +0 -47
- package/src/types/index.ts +0 -7
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="base-badge" :class="classList">
|
|
3
|
+
<div class="base-badge__wrapper">
|
|
4
|
+
<div class="base-badge__start">
|
|
5
|
+
<div v-if="hasDot" class="base-badge__dot"></div>
|
|
6
|
+
<base-icon
|
|
7
|
+
v-if="arrowUpIcon"
|
|
8
|
+
class="base-badge__icon"
|
|
9
|
+
size="custom"
|
|
10
|
+
name="arrow-up"
|
|
11
|
+
/>
|
|
12
|
+
<slot name="badge-group"></slot>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="base-badge__text">
|
|
15
|
+
<slot name="text"></slot>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="base-badge__close">
|
|
18
|
+
<base-icon
|
|
19
|
+
v-if="closable"
|
|
20
|
+
class="base-badge__icon"
|
|
21
|
+
size="custom"
|
|
22
|
+
name="close"
|
|
23
|
+
@click="$emit('close')"
|
|
24
|
+
/>
|
|
25
|
+
<base-icon
|
|
26
|
+
v-if="arrowRightIcon"
|
|
27
|
+
class="base-badge__icon"
|
|
28
|
+
size="custom"
|
|
29
|
+
name="arrow-right"
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</template>
|
|
35
|
+
|
|
36
|
+
<script setup lang="ts">
|
|
37
|
+
import BaseIcon from '../BaseIcon/BaseIcon.vue';
|
|
38
|
+
import { useKitSize } from '../../composables/kit/size'
|
|
39
|
+
import { useKitColor } from '../../composables/kit/color'
|
|
40
|
+
import { computed } from 'vue';
|
|
41
|
+
import type { ICoreBadgeProps } from '../../types/badge';
|
|
42
|
+
|
|
43
|
+
const props = withDefaults(defineProps<ICoreBadgeProps>(), {
|
|
44
|
+
size: 'medium',
|
|
45
|
+
color: 'primary',
|
|
46
|
+
});
|
|
47
|
+
const emit: (event: 'close') => void = defineEmits();
|
|
48
|
+
|
|
49
|
+
const { sizeClassList } = useKitSize(props);
|
|
50
|
+
const { colorClassList } = useKitColor(props);
|
|
51
|
+
|
|
52
|
+
const classList = computed(() => [
|
|
53
|
+
colorClassList.value,
|
|
54
|
+
sizeClassList.value,
|
|
55
|
+
]);
|
|
56
|
+
</script>
|
|
57
|
+
|
|
58
|
+
<style scoped lang="scss">
|
|
59
|
+
@import '@/styles/variables';
|
|
60
|
+
@import '@/styles/root';
|
|
61
|
+
|
|
62
|
+
.base-badge {
|
|
63
|
+
cursor: pointer;
|
|
64
|
+
|
|
65
|
+
&__wrapper {
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
width: fit-content;
|
|
69
|
+
flex-wrap: nowrap;
|
|
70
|
+
justify-content: space-between;
|
|
71
|
+
border-radius: var(--corner-radius-l);
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&__start {
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&__text {
|
|
81
|
+
flex-grow: 1;
|
|
82
|
+
text-align: center;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&__close {
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&__dot {
|
|
91
|
+
width: 8px;
|
|
92
|
+
height: 8px;
|
|
93
|
+
border-radius: 50%;
|
|
94
|
+
background-color: currentColor;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&.--primary-color {
|
|
98
|
+
color: var(--primary-blue);
|
|
99
|
+
.base-badge__wrapper {
|
|
100
|
+
background: var(--primary-blue-50);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&.--gray-color {
|
|
105
|
+
color: var(--primary-black-700);
|
|
106
|
+
.base-badge__wrapper {
|
|
107
|
+
background: var(--primary-black-100);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&.--error-color {
|
|
112
|
+
color: var(--error-red);
|
|
113
|
+
.base-badge__wrapper {
|
|
114
|
+
background: var(--error-red-light-05);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&.--warning-color {
|
|
119
|
+
color: var(--warning-orange);
|
|
120
|
+
.base-badge__wrapper {
|
|
121
|
+
background: var(--warning-orange-light-05);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
&.--success-color {
|
|
126
|
+
color: var(--success-green);
|
|
127
|
+
.base-badge__wrapper {
|
|
128
|
+
background: var(--success-green-light-05);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
&.--extra-small-size {
|
|
133
|
+
font: var(--typography-text-xs-medium);
|
|
134
|
+
|
|
135
|
+
.base-badge__wrapper {
|
|
136
|
+
padding: var(--spacing-2xs) var(--spacing-s);
|
|
137
|
+
gap: var(--spacing-xs);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.base-badge__icon {
|
|
141
|
+
width: 12px;
|
|
142
|
+
height: 12px;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&.--small-size {
|
|
147
|
+
font: var(--typography-text-s-medium);
|
|
148
|
+
|
|
149
|
+
.base-badge__wrapper {
|
|
150
|
+
padding: var(--spacing-2xs) var(--spacing-2m);
|
|
151
|
+
gap: var(--spacing-xs);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.base-badge__icon {
|
|
155
|
+
width: 14px;
|
|
156
|
+
height: 14px;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
&.--medium-size {
|
|
161
|
+
font: var(--typography-text-s-medium);
|
|
162
|
+
|
|
163
|
+
.base-badge__wrapper {
|
|
164
|
+
padding: var(--spacing-xs) var(--spacing-m);
|
|
165
|
+
gap: var(--spacing-2s);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.base-badge__icon {
|
|
169
|
+
width: 16px;
|
|
170
|
+
height: 16px;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
&.--large-size {
|
|
175
|
+
font: var(--typography-text-m-medium);
|
|
176
|
+
|
|
177
|
+
.base-badge__wrapper {
|
|
178
|
+
padding: var(--spacing-xs) var(--spacing-m);
|
|
179
|
+
gap: var(--spacing-2s);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.base-badge__icon {
|
|
183
|
+
width: 20px;
|
|
184
|
+
height: 20px;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
</style>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="base-badge-group" :class="classList">
|
|
3
|
+
<div class="base-badge-group__wrapper">
|
|
4
|
+
<base-badge size="custom" :color="color" :arrow-right-icon="arrowRightIcon">
|
|
5
|
+
<template #badge-group>
|
|
6
|
+
<div class="base-badge-group__text-container">
|
|
7
|
+
<slot name="badge-text-container"></slot>
|
|
8
|
+
</div>
|
|
9
|
+
</template>
|
|
10
|
+
<template #text>
|
|
11
|
+
<div class="base-badge-group__text">
|
|
12
|
+
<slot name="badge-text"></slot>
|
|
13
|
+
</div>
|
|
14
|
+
</template>
|
|
15
|
+
</base-badge>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script setup lang="ts">
|
|
21
|
+
import { computed } from 'vue'
|
|
22
|
+
import BaseBadge from './BaseBadge.vue';
|
|
23
|
+
import type { ICoreBadgeGroupProps } from '../../types/badge';
|
|
24
|
+
import { useKitSize } from '../../composables/kit/size'
|
|
25
|
+
import { useKitColor } from '../../composables/kit/color'
|
|
26
|
+
|
|
27
|
+
const props = withDefaults(defineProps<ICoreBadgeGroupProps>(),{
|
|
28
|
+
size: 'medium',
|
|
29
|
+
badgePosition: 'left'
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const { sizeClassList } = useKitSize(props);
|
|
33
|
+
const { colorClassList } = useKitColor(props);
|
|
34
|
+
|
|
35
|
+
const classList = computed(()=>[
|
|
36
|
+
sizeClassList.value,
|
|
37
|
+
colorClassList.value,
|
|
38
|
+
`--is-${props.badgePosition}`,
|
|
39
|
+
])
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<style scoped lang="scss">
|
|
43
|
+
@import '@/styles/variables';
|
|
44
|
+
@import '@/styles/root';
|
|
45
|
+
|
|
46
|
+
.base-badge-group {
|
|
47
|
+
&.--is-right {
|
|
48
|
+
:deep(.base-badge__wrapper) {
|
|
49
|
+
flex-direction: row-reverse;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
.base-badge-group__text-container {
|
|
53
|
+
border-radius: var(--corner-radius-l);
|
|
54
|
+
overflow: hidden;
|
|
55
|
+
border: 1px solid;
|
|
56
|
+
background: var(--primary-black-white);
|
|
57
|
+
}
|
|
58
|
+
&.--medium-size {
|
|
59
|
+
:deep(.base-badge__wrapper) {
|
|
60
|
+
padding: var(--spacing-xs);
|
|
61
|
+
gap: var(--spacing-s);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:deep(.base-badge__icon) {
|
|
65
|
+
width: 16px;
|
|
66
|
+
height: 16px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.base-badge-group__text-container {
|
|
70
|
+
padding: var(--spacing-2xs) var(--spacing-s);
|
|
71
|
+
font: var(--typography-text-xs-medium);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.base-badge-group__text {
|
|
75
|
+
font: var(--typography-text-xs-medium);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&.--large-size {
|
|
80
|
+
:deep(.base-badge__wrapper) {
|
|
81
|
+
padding: var(--spacing-xs);
|
|
82
|
+
gap: var(--spacing-s);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:deep(.base-badge__icon) {
|
|
86
|
+
width: 16px;
|
|
87
|
+
height: 16px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.base-badge-group__text-container {
|
|
91
|
+
padding: var(--spacing-2xs) var(--spacing-2m);
|
|
92
|
+
font: var(--typography-text-s-medium);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.base-badge-group__text {
|
|
96
|
+
font: var(--typography-text-s-medium);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&.--primary-color {
|
|
101
|
+
border-color: var(--primary-blue-200);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&.--gray-color {
|
|
105
|
+
border-color: var(--primary-black-200);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&.--error-color {
|
|
109
|
+
border-color: var(--error-red-light-03);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&.--warning-color {
|
|
113
|
+
border-color: var(--warning-orange-light-03);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&.--success-color {
|
|
117
|
+
border-color: var(--success-green-light-03);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
</style>
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
```markdown
|
|
2
|
+
# Компоненты BaseBadge и BaseBadgeGroup
|
|
3
|
+
|
|
4
|
+
Этот документ предоставляет документацию для компонентов `BaseBadge` и `BaseBadgeGroup`, разработанных для использования в интерфейсах на основе Vue.js. Оба компонента предназначены для отображения информационных меток (бейджей) с различными стилями, цветами и размерами, а также поддерживают дополнительные элементы, такие как иконки и слоты для кастомизации.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Компонент `BaseBadge`
|
|
9
|
+
|
|
10
|
+
### Описание
|
|
11
|
+
Компонент `BaseBadge` представляет собой универсальную метку, которая может содержать текст, иконки, точку-индикатор или кнопку закрытия. Он поддерживает кастомизацию размера, цвета и расположения элементов внутри метки.
|
|
12
|
+
|
|
13
|
+
```vue
|
|
14
|
+
<script setup lang="ts">
|
|
15
|
+
import BaseBadge from './BaseBadge.vue';
|
|
16
|
+
</script>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Свойства (Props)
|
|
20
|
+
|
|
21
|
+
| Параметр | Тип | По умолчанию | Описание |
|
|
22
|
+
|-------------------|----------------------|----------------|--------------------------------------------|
|
|
23
|
+
| `size` | `'extra-small' | 'small' | 'medium' | 'large'` | `'medium'` | Размер бейджа (влияет на шрифт и отступы). |
|
|
24
|
+
| `color` | `'primary' | 'gray' | 'error' | 'warning' | 'success'` | Цветовая схема бейджа. |
|
|
25
|
+
| `hasDot` | `boolean` | `false` | Отображение точки-индикатора слева. |
|
|
26
|
+
| `closable` | `boolean` | `false` | Отображение иконки закрытия справа. |
|
|
27
|
+
| `arrowUpIcon` | `boolean` | `false` | Отображение иконки стрелки вверх слева. |
|
|
28
|
+
| `arrowRightIcon` | `boolean` | `false` | Отображение иконки стрелки вправо справа. |
|
|
29
|
+
|
|
30
|
+
### Слоты (Slots)
|
|
31
|
+
|
|
32
|
+
| Имя | Описание |
|
|
33
|
+
|-------------------|---------------------------------------|
|
|
34
|
+
| `badge-group` | Контейнер для вложенного контента слева от текста. |
|
|
35
|
+
| `text` | Основной текст бейджа. |
|
|
36
|
+
|
|
37
|
+
### Пример использования
|
|
38
|
+
|
|
39
|
+
```vue
|
|
40
|
+
<template>
|
|
41
|
+
<base-badge color="primary" hasDot closable>
|
|
42
|
+
<template #badge-group>
|
|
43
|
+
<base-icon name="alert" />
|
|
44
|
+
</template>
|
|
45
|
+
<template #text>
|
|
46
|
+
Новое уведомление
|
|
47
|
+
</template>
|
|
48
|
+
</base-badge>
|
|
49
|
+
|
|
50
|
+
<base-badge size="large" color="error" arrowRightIcon>
|
|
51
|
+
<template #text>
|
|
52
|
+
Ошибка
|
|
53
|
+
</template>
|
|
54
|
+
</base-badge>
|
|
55
|
+
</template>
|
|
56
|
+
|
|
57
|
+
<script setup lang="ts">
|
|
58
|
+
import BaseBadge from './BaseBadge.vue';
|
|
59
|
+
import BaseIcon from './BaseIcon.vue';
|
|
60
|
+
</script>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Компонент `BaseBadgeGroup`
|
|
64
|
+
|
|
65
|
+
### Описание
|
|
66
|
+
Компонент `BaseBadgeGroup` представляет собой контейнер, который оборачивает `BaseBadge` и добавляет дополнительный текстовый контейнер для группировки контента. Он поддерживает настройку положения бейджа (слева или справа) и наследует свойства цвета и размера от `BaseBadge`.
|
|
67
|
+
|
|
68
|
+
### Установка
|
|
69
|
+
Импортируйте компонент в ваш проект:
|
|
70
|
+
|
|
71
|
+
```vue
|
|
72
|
+
<script setup lang="ts">
|
|
73
|
+
import BaseBadgeGroup from './BaseBadgeGroup.vue';
|
|
74
|
+
</script>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Свойства (Props)
|
|
78
|
+
|
|
79
|
+
| Параметр | Тип | По умолчанию | Описание |
|
|
80
|
+
|-------------------|----------------------|----------------|--------------------------------------------|
|
|
81
|
+
| `size` | `'medium' | 'large'` | `'medium'` | Размер группы бейджа. |
|
|
82
|
+
| `color` | `'primary' | 'gray' | 'error' | 'warning' | 'success'` | Цветовая схема группы. |
|
|
83
|
+
| `arrowRightIcon` | `boolean` | `false` | Отображение иконки стрелки вправо. |
|
|
84
|
+
| `badgePosition` | `'left' | 'right'` | `'left'` | Положение бейджа относительно текста. |
|
|
85
|
+
|
|
86
|
+
### Слоты (Slots)
|
|
87
|
+
|
|
88
|
+
| Имя | Описание |
|
|
89
|
+
|-----------------------|---------------------------------------|
|
|
90
|
+
| `badge-text-container`| Контейнер для текста слева от бейджа. |
|
|
91
|
+
| `badge-text` | Текст внутри бейджа. |
|
|
92
|
+
|
|
93
|
+
### Пример использования
|
|
94
|
+
|
|
95
|
+
```vue
|
|
96
|
+
<template>
|
|
97
|
+
<base-badge-group color="success" badgePosition="right">
|
|
98
|
+
<template #badge-text-container>
|
|
99
|
+
<span>Категория:</span>
|
|
100
|
+
</template>
|
|
101
|
+
<template #badge-text>
|
|
102
|
+
Успешно
|
|
103
|
+
</template>
|
|
104
|
+
</base-badge-group>
|
|
105
|
+
|
|
106
|
+
<base-badge-group size="large" color="warning" arrowRightIcon>
|
|
107
|
+
<template #badge-text-container>
|
|
108
|
+
<span>Статус:</span>
|
|
109
|
+
</template>
|
|
110
|
+
<template #badge-text>
|
|
111
|
+
Предупреждение
|
|
112
|
+
</template>
|
|
113
|
+
</base-badge-group>
|
|
114
|
+
</template>
|
|
115
|
+
|
|
116
|
+
<script setup lang="ts">
|
|
117
|
+
import BaseBadgeGroup from './BaseBadgeGroup.vue';
|
|
118
|
+
</script>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Стили
|
|
122
|
+
- Поддерживаются динамические классы для размеров (`--medium-size`, `--large-size`) и цветов (`--primary-color`, `--gray-color`, и т.д.).
|
|
123
|
+
- Позиция бейджа управляется через класс `--is-left` или `--is-right`.
|
|
124
|
+
- Граница текстового контейнера адаптируется к цветовой схеме.
|
|
125
|
+
|
|
126
|
+
## Примечания
|
|
127
|
+
- Компоненты поддерживают кастомизацию через слоты, что позволяет гибко изменять содержимое.
|
|
@@ -26,9 +26,8 @@
|
|
|
26
26
|
|
|
27
27
|
<span
|
|
28
28
|
v-if="index < displayedCrumbs.length - 1"
|
|
29
|
-
class="base-breadcrumbs__separator"
|
|
30
|
-
|
|
31
|
-
/
|
|
29
|
+
class="base-breadcrumbs__separator" >
|
|
30
|
+
{{ separator }}
|
|
32
31
|
</span>
|
|
33
32
|
</li>
|
|
34
33
|
</ul>
|
|
@@ -44,6 +43,7 @@ const props = withDefaults(defineProps<IBaseBreadCrumbProps>(), {
|
|
|
44
43
|
size: 'medium',
|
|
45
44
|
});
|
|
46
45
|
|
|
46
|
+
const separator = '/'
|
|
47
47
|
const { sizeClassList } = useKitSize(props);
|
|
48
48
|
|
|
49
49
|
const classList = computed(() => [sizeClassList.value]);
|