plugin-ui-for-kzt 0.0.17 → 0.0.19

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 (77) hide show
  1. package/dist/components/BaseBadge/BaseBadge.vue.d.ts +49 -0
  2. package/dist/components/BaseBadge/BaseBadgeGroup.vue.d.ts +30 -0
  3. package/dist/components/BaseButton/BaseButton.vue.d.ts +3 -1
  4. package/dist/components/BaseCalendar/BaseCalendar.vue.d.ts +1 -1
  5. package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +3 -1
  6. package/dist/components/BaseChips/BaseChips.vue.d.ts +1 -1
  7. package/dist/components/BaseDropdown/BaseDropdown.vue.d.ts +3 -1
  8. package/dist/components/BaseInput/BaseInput.vue.d.ts +3 -3
  9. package/dist/components/BaseInputCalendar/BaseInputCalendar.vue.d.ts +4 -4
  10. package/dist/components/BaseInputCurrency/BaseInputCurrency.vue.d.ts +3 -3
  11. package/dist/components/BaseInputEmail/BaseInputEmail.vue.d.ts +3 -3
  12. package/dist/components/BaseInputPhone/BaseInputPhone.vue.d.ts +3 -3
  13. package/dist/components/BaseModal/BaseModal.vue.d.ts +4 -0
  14. package/dist/components/BaseOpenedListItem/BaseOpenedListItem.vue.d.ts +3 -1
  15. package/dist/components/BasePagination/BasePagination.vue.d.ts +1 -1
  16. package/dist/components/BaseRadio/BaseRadio.vue.d.ts +3 -1
  17. package/dist/components/BaseSegmentedButtons/BaseSegmentedButtons.vue.d.ts +4 -2
  18. package/dist/components/BaseSelect/BaseSelect.vue.d.ts +2 -2
  19. package/dist/components/BaseTag/BaseTag.vue.d.ts +61 -0
  20. package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +8 -8
  21. package/dist/components/BaseToggle/BaseToggle.vue.d.ts +3 -1
  22. package/dist/components/BaseTooltip/BaseTooltip.vue.d.ts +1 -1
  23. package/dist/components/BaseUpload/BaseUpload.vue.d.ts +31 -0
  24. package/dist/components/{Modal/Modal.vue.d.ts → BaseUpload/ImageModal.vue.d.ts} +2 -10
  25. package/dist/components/Toaster/Toaster.vue.d.ts +1 -1
  26. package/dist/composables/kit/state.d.ts +1 -0
  27. package/dist/composables/useModal.d.ts +7 -0
  28. package/dist/index.d.ts +7 -3
  29. package/dist/index.js +1 -1
  30. package/dist/plugins/modalPlugin.d.ts +0 -13
  31. package/dist/sprite.svg +1 -1
  32. package/dist/store/modal.d.ts +154 -9
  33. package/example/App.vue +118 -309
  34. package/example/MyCustomModal.vue +37 -0
  35. package/package.json +1 -1
  36. package/src/assets/icons/add.svg +4 -0
  37. package/src/assets/icons/arrow-up.svg +4 -0
  38. package/src/assets/icons/close-circle.svg +5 -0
  39. package/src/assets/icons/close.svg +4 -0
  40. package/src/assets/icons/document-text.svg +4 -0
  41. package/src/assets/icons/export.svg +5 -0
  42. package/src/assets/icons/gallery.svg +5 -0
  43. package/src/assets/icons/notification-icon.svg +7 -0
  44. package/src/assets/icons/search-zoom-in.svg +6 -0
  45. package/src/assets/icons/trash.svg +7 -0
  46. package/src/assets/icons/upload.svg +5 -0
  47. package/src/components/BaseBadge/BaseBadge.vue +188 -0
  48. package/src/components/BaseBadge/BaseBadgeGroup.vue +120 -0
  49. package/src/components/BaseBadge/README.md +127 -0
  50. package/src/components/BaseBreadCrumbs/BaseBreadCrumbs.vue +2 -1
  51. package/src/components/BaseButton/BaseButton.vue +0 -112
  52. package/src/components/BaseInput/BaseInput.vue +24 -6
  53. package/src/components/BaseInputCurrency/BaseInputCurrency.vue +94 -53
  54. package/src/components/BaseInputPhone/BaseInputPhone.vue +41 -0
  55. package/src/components/BaseModal/BaseModal.vue +189 -0
  56. package/src/components/BaseSiteInput/BaseSiteInput.vue +43 -1
  57. package/src/components/BaseTag/BaseTag.vue +245 -0
  58. package/src/components/BaseTag/README.md +125 -0
  59. package/src/components/BaseTextarea/BaseTextarea.vue +7 -14
  60. package/src/components/BaseUpload/BaseUpload.vue +392 -0
  61. package/src/components/BaseUpload/ImageModal.vue +25 -0
  62. package/src/composables/kit/state.ts +1 -0
  63. package/src/composables/useModal.ts +14 -0
  64. package/src/index.ts +32 -19
  65. package/src/plugins/modalPlugin.ts +92 -76
  66. package/src/store/modal.ts +39 -16
  67. package/src/styles/root.scss +1 -0
  68. package/src/types/badge.d.ts +19 -0
  69. package/src/types/modal.d.ts +8 -0
  70. package/src/types/tag.d.ts +14 -0
  71. package/src/types/uploadedFile.d.ts +13 -0
  72. package/src/types/utils.d.ts +2 -1
  73. package/webpack.config.js +1 -1
  74. package/dist/types/index.d.ts +0 -5
  75. package/src/components/Modal/Modal.vue +0 -149
  76. package/src/components/Modal/README.md +0 -47
  77. 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
+ - Компоненты поддерживают кастомизацию через слоты, что позволяет гибко изменять содержимое.
@@ -27,7 +27,7 @@
27
27
  <span
28
28
  v-if="index < displayedCrumbs.length - 1"
29
29
  class="base-breadcrumbs__separator" >
30
- /
30
+ {{ separator }}
31
31
  </span>
32
32
  </li>
33
33
  </ul>
@@ -43,6 +43,7 @@ const props = withDefaults(defineProps<IBaseBreadCrumbProps>(), {
43
43
  size: 'medium',
44
44
  });
45
45
 
46
+ const separator = '/'
46
47
  const { sizeClassList } = useKitSize(props);
47
48
 
48
49
  const classList = computed(() => [sizeClassList.value]);