plugin-ui-for-kzt 0.0.23 → 0.0.25

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 (75) hide show
  1. package/dist/assets/0e28e37419c99ac65b12.png +0 -0
  2. package/dist/assets/264165b2b0e8a6840eb0.png +0 -0
  3. package/dist/components/{DataTable/DataTable.vue.d.ts → BaseDefaultPages/BaseDefaultPages.vue.d.ts} +8 -6
  4. package/dist/components/BaseInput/BaseInput.vue.d.ts +1 -1
  5. package/dist/components/{Tooltip/Tooltip.vue.d.ts → BasePageLoader/BasePageLoader.vue.d.ts} +24 -11
  6. package/dist/components/BaseTable/BaseTable.vue.d.ts +44 -0
  7. package/dist/components/BaseToast/BaseToast.vue.d.ts +69 -0
  8. package/dist/composables/useToast.d.ts +2 -0
  9. package/dist/index.d.ts +6 -5
  10. package/dist/index.js +1 -1
  11. package/dist/plugins/toastPlugin.d.ts +4 -0
  12. package/dist/sprite.svg +1 -1
  13. package/dist/store/toast.d.ts +8 -0
  14. package/example/App.vue +196 -29
  15. package/package.json +1 -1
  16. package/src/assets/404.png +0 -0
  17. package/src/assets/icons/arrow-down-stick.svg +4 -0
  18. package/src/assets/icons/edit-table.svg +5 -0
  19. package/src/assets/icons/ellipsis.svg +5 -0
  20. package/src/assets/icons/loading-page-default.svg +4 -0
  21. package/src/assets/icons/loading-page-error.svg +6 -0
  22. package/src/assets/icons/loading-page-success.svg +5 -0
  23. package/src/assets/icons/loading-page-warning.svg +6 -0
  24. package/src/assets/icons/more-dots.svg +5 -0
  25. package/src/assets/icons/time-table.svg +7 -0
  26. package/src/assets/icons/toast-error.svg +3 -0
  27. package/src/assets/icons/toast-info.svg +3 -0
  28. package/src/assets/icons/toast-success.svg +3 -0
  29. package/src/assets/icons/toast-warning.svg +3 -0
  30. package/src/assets/icons/trash-table.svg +7 -0
  31. package/src/assets/tech-work.png +0 -0
  32. package/src/components/BaseChips/BaseChips.vue +3 -1
  33. package/src/components/BaseDefaultPages/BaseDefaultPages.vue +140 -0
  34. package/src/components/BaseDefaultPages/README.md +128 -0
  35. package/src/components/BaseOpenedListItem/BaseOpenedListItem.vue +3 -3
  36. package/src/components/BasePageLoader/BasePageLoader.vue +211 -0
  37. package/src/components/BasePageLoader/README.md +80 -0
  38. package/src/components/BaseSelect/BaseSelect.vue +7 -3
  39. package/src/components/BaseTable/BaseTable.vue +411 -0
  40. package/src/components/BaseTable/README.md +294 -0
  41. package/src/components/BaseToast/BaseToast.vue +200 -0
  42. package/src/components/BaseToast/README.md +103 -0
  43. package/src/components/BaseTooltip/BaseTooltip.vue +1 -0
  44. package/src/components/BaseUpload/BaseUpload.vue +1 -1
  45. package/src/composables/useToast.ts +10 -0
  46. package/src/index.ts +17 -13
  47. package/src/plugins/toastPlugin.ts +100 -0
  48. package/src/store/toast.ts +59 -0
  49. package/src/styles/root.scss +2 -0
  50. package/src/styles/toast.scss +36 -0
  51. package/src/types/default-pages.d.ts +6 -0
  52. package/src/types/loading-page.d.ts +12 -0
  53. package/src/types/pagination.d.ts +1 -0
  54. package/src/types/table.d.ts +33 -0
  55. package/src/types/toast.d.ts +25 -0
  56. package/webpack.config.js +12 -0
  57. package/dist/components/Spinner/Spinner.vue.d.ts +0 -20
  58. package/dist/components/Toaster/Toaster.vue.d.ts +0 -80
  59. package/dist/components/Toaster/timer.d.ts +0 -12
  60. package/dist/plugins/toasterPlugin.d.ts +0 -26
  61. package/src/components/DataTable/DataTable.vue +0 -169
  62. package/src/components/DataTable/README.md +0 -57
  63. package/src/components/Spinner/README.md +0 -35
  64. package/src/components/Spinner/Spinner.vue +0 -60
  65. package/src/components/Toaster/README.md +0 -70
  66. package/src/components/Toaster/Toaster.vue +0 -235
  67. package/src/components/Toaster/timer.ts +0 -45
  68. package/src/components/Tooltip/README.md +0 -37
  69. package/src/components/Tooltip/Tooltip.vue +0 -96
  70. package/src/components/icons/CloseIcon.vue +0 -5
  71. package/src/components/icons/ErrorIcon.vue +0 -7
  72. package/src/components/icons/InfoIcon.vue +0 -7
  73. package/src/components/icons/SuccessIcon.vue +0 -6
  74. package/src/components/icons/WarningIcon.vue +0 -7
  75. package/src/plugins/toasterPlugin.ts +0 -179
@@ -1,57 +0,0 @@
1
- # Документация компонента DataTable
2
-
3
- ## Обзор
4
- Компонент `DataTable` предназначен для отображения табличных данных с поддержкой поиска и постраничной навигации. Он позволяет передавать список колонок и строк, а также управлять размером страницы.
5
-
6
- ## Свойства (Props)
7
-
8
- - `columns` (массив объектов) – список колонок, каждая из которых содержит ключ `key` (для доступа к данным) и `label` (отображаемое название).
9
- - `rows` (массив объектов) – массив данных, где каждый объект представляет строку таблицы.
10
- - `pageSize` (число, необязательно) – количество строк, отображаемых на одной странице. По умолчанию `5`.
11
-
12
- ## Вычисляемые свойства (Computed)
13
-
14
- - `filteredRows` – список строк, отфильтрованный по поисковому запросу.
15
- - `searchExists` – определяет, есть ли в таблице совпадающие результаты поиска.
16
- - `totalPages` – вычисляет общее количество страниц на основе размера страницы и количества строк.
17
- - `startIndex` – индекс начала текущей страницы.
18
- - `endIndex` – индекс конца текущей страницы.
19
- - `paginatedRows` – список строк, отображаемых на текущей странице.
20
-
21
- ## Методы
22
-
23
- ### `goToPreviousPage()`
24
- Переходит на предыдущую страницу, если это возможно.
25
-
26
- ### `goToNextPage()`
27
- Переходит на следующую страницу, если это возможно.
28
-
29
- ### `handleSearchInput(event: Event)`
30
- Обновляет поисковый запрос при вводе текста в поле поиска и сбрасывает текущую страницу на первую.
31
-
32
- ## Использование
33
-
34
- ```vue
35
- <DataTable
36
- :columns="[
37
- { key: 'name', label: 'Имя' },
38
- { key: 'age', label: 'Возраст' },
39
- { key: 'email', label: 'Email' }
40
- ]"
41
- :rows="[
42
- { name: 'Иван', age: 25, email: 'ivan@example.com' },
43
- { name: 'Мария', age: 30, email: 'maria@example.com' },
44
- { name: 'Алексей', age: 28, email: 'alex@example.com' }
45
- ]"
46
- :pageSize="2"
47
- />
48
- ```
49
-
50
- ## Функциональность
51
-
52
- - Поддержка поиска по всем значениям строк.
53
- - Автоматическая фильтрация результатов.
54
- - Пагинация с кнопками "Предыдущая" и "Следующая".
55
- - Отображение сообщения, если совпадений не найдено.
56
-
57
-
@@ -1,35 +0,0 @@
1
- # Документация компонента Spinner
2
-
3
- ## Обзор
4
- Компонент `Spinner` используется для отображения индикатора загрузки. Он поддерживает кастомизацию размеров, цвета и толщины границ.
5
-
6
- ## Свойства (Props)
7
-
8
- - `show` (булево) – определяет, отображать ли спиннер. Обязательное свойство.
9
- - `size` (строка, необязательно) – задаёт размер спиннера (ширину и высоту). Например, `'40px'`.
10
- - `color` (строка, необязательно) – определяет основной цвет границы спиннера.
11
- - `thickness` (строка, необязательно) – задаёт толщину границы спиннера.
12
-
13
- ## Вычисляемые свойства (Computed)
14
-
15
- ### `spinnerStyle`
16
- Возвращает объект со стилями для спиннера:
17
-
18
- - `width` и `height` – задают размер спиннера.
19
- - `borderWidth` – регулирует толщину границы.
20
- - `borderStyle` – устанавливает стиль границы (всегда `solid`).
21
- - `borderColor` – определяет цвет границы, оставляя прозрачные части.
22
- - `borderRadius` – устанавливает форму круга.
23
-
24
- ## Использование
25
-
26
- ```vue
27
- <Spinner :show="true" size="50px" color="#3498db" thickness="5px" />
28
- ```
29
-
30
- ## Функциональность
31
-
32
- - Отображает или скрывает индикатор загрузки в зависимости от `show`.
33
- - Позволяет изменять размер, цвет и толщину границы.
34
- - Использует `computed` для динамического применения стилей.
35
-
@@ -1,60 +0,0 @@
1
- <template>
2
- <div v-if="show" class="spinner-overlay">
3
- <div class="spinner" :style="spinnerStyle"></div>
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
-
9
- import {computed} from "vue";
10
-
11
- interface SpinnerProps {
12
- show: boolean
13
- size?: string
14
- color?: string
15
- thickness?: string
16
- }
17
-
18
- const props = defineProps<SpinnerProps>()
19
-
20
- // computed properties
21
- const spinnerStyle = computed(() => ({
22
- width: props.size,
23
- height: props.size,
24
- borderWidth: props.thickness,
25
- borderStyle: 'solid',
26
- borderColor: `${props.color} transparent transparent transparent`,
27
- borderRadius: '50%'
28
- }))
29
- </script>
30
-
31
- <style scoped lang="scss">
32
- .spinner-overlay {
33
- position: fixed;
34
- top: 0;
35
- left: 0;
36
- width: 100%;
37
- height: 100%;
38
- background-color: rgba(255, 255, 255, 0.7);
39
- display: flex;
40
- align-items: center;
41
- justify-content: center;
42
- z-index: 9999;
43
- }
44
-
45
- .spinner {
46
- border: var(--spinner-thickness, 4px) solid transparent;
47
- border-top: var(--spinner-thickness, 4px) solid var(--spinner-color, #4285f4);
48
- border-radius: 50%;
49
- animation: spin 1s linear infinite;
50
- }
51
-
52
- @keyframes spin {
53
- 0% {
54
- transform: rotate(0deg);
55
- }
56
- 100% {
57
- transform: rotate(360deg);
58
- }
59
- }
60
- </style>
@@ -1,70 +0,0 @@
1
- # Документация компонента Toaster
2
-
3
- ## Обзор
4
- Компонент `Toaster` предназначен для отображения уведомлений на экране. Он поддерживает разные типы сообщений, настраиваемые позиции и функцию автоматического скрытия.
5
-
6
- ## Свойства (Props)
7
-
8
- - `message` (строка) – текст сообщения, отображаемый в уведомлении.
9
- - `type` (success, error, info, warning) – определяет тип сообщения, который влияет на его внешний вид. По умолчанию `success`.
10
- - `position` (top-left, top-right, bottom-left, bottom-right) – задаёт расположение уведомления на экране. По умолчанию `top-right`.
11
- - `dismissible` (булево) – определяет, можно ли закрыть уведомление вручную. По умолчанию `true`.
12
- - `onDismiss` (функция) – вызывается при закрытии уведомления.
13
- - `onClick` (функция, необязательная) – вызывается при клике на уведомление.
14
- - `pauseOnHover` (булево) – при наведении мыши приостанавливает таймер скрытия. По умолчанию `true`.
15
- - `duration` (число) – продолжительность показа в миллисекундах. Если `0`, то уведомление не исчезает автоматически. По умолчанию `5000`.
16
- - `onHeightUpdate` (функция) – вызывается при изменении высоты уведомления.
17
-
18
- ## События
19
-
20
- - `onDismiss` – срабатывает при закрытии уведомления.
21
- - `onClick` – срабатывает при клике на уведомление.
22
- - `onHeightUpdate` – вызывается при изменении высоты уведомления.
23
-
24
- ## Использование
25
-
26
- ```vue
27
-
28
- <script setup>
29
- import {useToast} from "../../plugins/toasterPlugin";
30
-
31
- const toast = useToast();
32
-
33
- const showSuccessToast = () => {
34
- toast?.success("Toast on top", {
35
- position: "top-left",
36
- duration: 4000,
37
- pauseOnHover: false,
38
- });
39
- };
40
- </script>
41
- ```
42
-
43
- ## Стилизация
44
- Компонент применяет разные стили в зависимости от переданных свойств `type` и `position`.
45
-
46
- - `.toast__item--success` – зелёный фон для успешных сообщений.
47
- - `.toast__item--error` – красный фон для ошибок.
48
- - `.toast__item--info` – синий фон для информационных сообщений.
49
- - `.toast__item--warning` – оранжевый фон для предупреждений.
50
- - `.toast__item--top-left`, `.toast__item--top-right`, `.toast__item--bottom-left`, `.toast__item--bottom-right` – стили позиционирования.
51
-
52
- ### Анимации
53
- - `.toast--fade-in-down` – анимация появления для уведомлений сверху.
54
- - `.toast--fade-in-up` – анимация появления для уведомлений снизу.
55
- - `.toast--fade-out` – анимация исчезновения.
56
-
57
- ## Жизненный цикл
58
- - **onMounted** – запускает таймер автоудаления и регистрирует наблюдателя за изменением размера.
59
- - **onUnmounted** – очищает таймер и отключает наблюдателя за изменением размера.
60
-
61
- ## Методы
62
-
63
- ### `startTimer()`
64
- Запускает таймер автоматического скрытия, если `duration` больше 0.
65
-
66
- ### `toggleTimer(state: boolean)`
67
- Приостанавливает или возобновляет таймер при наведении курсора.
68
-
69
- ### `dismissToast()`
70
- Закрывает уведомление вручную и вызывает `onDismiss`.
@@ -1,235 +0,0 @@
1
- <template>
2
- <Transition
3
- :enter-active-class="transition.enter"
4
- :leave-active-class="transition.leave"
5
- >
6
- <div
7
- v-if="isActive"
8
- ref="toastRef"
9
- class="toast__item"
10
- :class="[`toast__item--${type}`, `toast__item--${position}`]"
11
- @mouseover="toggleTimer(true)"
12
- @mouseleave="toggleTimer(false)"
13
- >
14
- <div class="v-toast__icon"></div>
15
- <p class="v-toast__text" v-html="message"></p>
16
- <button v-if="dismissible" class="toast__close" @click="dismissToast">
17
- ×
18
- </button>
19
- </div>
20
- </Transition>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- import { ref, computed, onMounted, onUnmounted, nextTick } from "vue";
25
- import Timer from "./timer";
26
-
27
- interface IProps {
28
- message: string;
29
- type: "success" | "error" | "info" | "warning";
30
- position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
31
- dismissible: boolean;
32
- onDismiss: () => void;
33
- onClick?: () => void;
34
- pauseOnHover: boolean;
35
- duration: number;
36
- onHeightUpdate?: (height: number) => void;
37
- }
38
-
39
- const props = withDefaults(defineProps<IProps>(), {
40
- message: "",
41
- type: "success",
42
- position: "top-right",
43
- dismissible: true,
44
- pauseOnHover: true,
45
- duration: 5000,
46
- onDismiss: () => {},
47
- onClick: () => {},
48
- onHeightUpdate: () => {},
49
- });
50
-
51
- const isActive = ref<boolean>(true);
52
- const toastRef = ref<HTMLElement | null>(null);
53
- let timer: Timer | null = null;
54
- let resizeObserver: ResizeObserver | null = null;
55
-
56
- const transition = computed(() => {
57
- return ["top-left", "top-right"].includes(props.position)
58
- ? { enter: "toast--fade-in-down", leave: "toast--fade-out" }
59
- : { enter: "toast--fade-in-up", leave: "toast--fade-out" };
60
- });
61
-
62
- const updateHeight = async () => {
63
- await nextTick();
64
- if (toastRef.value) {
65
- const height = toastRef.value.offsetHeight;
66
- props.onHeightUpdate(height);
67
- }
68
- };
69
-
70
- onMounted(async () => {
71
- startTimer();
72
- await updateHeight();
73
-
74
- if (toastRef.value) {
75
- resizeObserver = new ResizeObserver(async () => {
76
- await updateHeight();
77
- });
78
- resizeObserver.observe(toastRef.value);
79
- }
80
- });
81
-
82
- onUnmounted(() => {
83
- if (timer) {
84
- timer.clear();
85
- }
86
- if (resizeObserver) {
87
- resizeObserver.disconnect();
88
- }
89
- });
90
-
91
- const startTimer = () => {
92
- if (props.duration > 0) {
93
- timer = new Timer(() => {
94
- dismissToast();
95
- }, props.duration);
96
- timer.resume();
97
- }
98
- };
99
-
100
- const toggleTimer = (state: boolean) => {
101
- if (props.pauseOnHover && timer) {
102
- state ? timer.pause() : timer.resume();
103
- }
104
- };
105
-
106
- const dismissToast = () => {
107
- if (isActive.value) {
108
- isActive.value = false;
109
- if (timer) {
110
- timer.clear();
111
- }
112
- props.onDismiss();
113
- }
114
- };
115
-
116
- // const whenClicked = () => {
117
- // props.onClick();
118
- // };
119
- </script>
120
-
121
- <style scoped lang="scss">
122
- .toast__item--top-left {
123
- top: 10px;
124
- left: 10px;
125
- align-items: flex-start;
126
- }
127
-
128
- .toast__item--top-right {
129
- top: 10px;
130
- right: 10px;
131
- align-items: flex-end;
132
- }
133
-
134
- .toast__item--bottom-left {
135
- bottom: 10px;
136
- left: 10px;
137
- align-items: flex-start;
138
- }
139
-
140
- .toast__item--bottom-right {
141
- bottom: 10px;
142
- right: 10px;
143
- align-items: flex-end;
144
- }
145
-
146
- .toast__item {
147
- width: 300px;
148
- padding: 15px;
149
- position: fixed;
150
- z-index: 9999;
151
- border-radius: 8px;
152
- display: flex;
153
- align-items: center;
154
- box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
155
- background-color: white;
156
- font-weight: 500;
157
- color: #333;
158
- pointer-events: auto;
159
- transition: all 0.3s ease-in-out;
160
- }
161
-
162
- .toast__item--success {
163
- background-color: #4caf50;
164
- color: #fff;
165
- }
166
-
167
- .toast__item--error {
168
- background-color: #f44336;
169
- color: #fff;
170
- }
171
-
172
- .toast__item--info {
173
- background-color: #2196f3;
174
- color: #fff;
175
- }
176
-
177
- .toast__item--warning {
178
- background-color: #ff9800;
179
- color: #fff;
180
- }
181
-
182
- .toast__close {
183
- position: absolute;
184
- top: 10px;
185
- right: 10px;
186
- background: none;
187
- border: none;
188
- font-size: 18px;
189
- cursor: pointer;
190
- color: #fff;
191
- }
192
-
193
- .toast--fade-in-down {
194
- animation: fadeInDown 0.3s ease-out;
195
- }
196
-
197
- .toast--fade-in-up {
198
- animation: fadeInUp 0.3s ease-out;
199
- }
200
-
201
- .toast--fade-out {
202
- animation: fadeOut 0.3s ease-in forwards;
203
- }
204
-
205
- @keyframes fadeInDown {
206
- from {
207
- opacity: 0;
208
- transform: translateY(-10px);
209
- }
210
- to {
211
- opacity: 1;
212
- transform: translateY(0);
213
- }
214
- }
215
-
216
- @keyframes fadeInUp {
217
- from {
218
- opacity: 0;
219
- transform: translateY(10px);
220
- }
221
- to {
222
- opacity: 1;
223
- transform: translateY(0);
224
- }
225
- }
226
-
227
- @keyframes fadeOut {
228
- from {
229
- opacity: 1;
230
- }
231
- to {
232
- opacity: 0;
233
- }
234
- }
235
- </style>
@@ -1,45 +0,0 @@
1
- class Timer {
2
- private timerId: number | null = null;
3
- private start: number = 0;
4
- private remaining: number;
5
- private callback: () => void;
6
-
7
- constructor(callback: () => void, delay: number) {
8
- this.callback = callback;
9
- this.remaining = delay;
10
- this.resume();
11
- }
12
-
13
- pause(): void {
14
- if (this.timerId !== null) {
15
- window.clearTimeout(this.timerId);
16
- this.remaining -= Date.now() - this.start;
17
- this.timerId = null;
18
- }
19
- }
20
-
21
- resume(): void {
22
- if (this.timerId === null && this.remaining > 0) {
23
- this.start = Date.now();
24
- this.timerId = window.setTimeout(() => {
25
- this.callback();
26
- this.timerId = null;
27
- }, this.remaining);
28
- }
29
- }
30
-
31
- clear(): void {
32
- if (this.timerId !== null) {
33
- window.clearTimeout(this.timerId);
34
- this.timerId = null;
35
- }
36
- }
37
-
38
- reset(delay: number): void {
39
- this.clear();
40
- this.remaining = delay;
41
- this.resume();
42
- }
43
- }
44
-
45
- export default Timer;
@@ -1,37 +0,0 @@
1
- # Документация компонента Tooltip
2
-
3
- ## Обзор
4
- Компонент `Tooltip` используется для отображения всплывающих подсказок при наведении курсора на элемент. Позволяет настраивать положение и ширину подсказки.
5
-
6
- ## Свойства (Props)
7
-
8
- - `content` (строка) – текст всплывающей подсказки. По умолчанию пустая строка.
9
- - `position` (строка, необязательно) – определяет расположение подсказки. Возможные значения: `top`, `bottom`, `left`, `right`. По умолчанию `top`.
10
- - `width` (строка, необязательно) – задаёт ширину подсказки. По умолчанию `200px`.
11
-
12
- ## Состояния (States)
13
-
14
- - `isVisible` (булево) – управляет отображением подсказки.
15
-
16
- ## Методы
17
-
18
- ### `showTooltip()`
19
- Активирует отображение подсказки при наведении курсора.
20
-
21
- ### `hideTooltip()`
22
- Скрывает подсказку при уходе курсора.
23
-
24
- ## Использование
25
-
26
- ```vue
27
- <Tooltip content="Подсказка" position="right" width="150px">
28
- <button>Наведи курсор</button>
29
- </Tooltip>
30
- ```
31
-
32
- ## Функциональность
33
-
34
- - Отображает подсказку при наведении и скрывает при уходе курсора.
35
- - Позволяет изменять положение подсказки.
36
- - Настраивает ширину содержимого всплывающего окна.
37
-
@@ -1,96 +0,0 @@
1
- <template>
2
- <div
3
- class="tooltip-container"
4
- @mouseenter="showTooltip"
5
- @mouseleave="hideTooltip"
6
- >
7
- <slot />
8
-
9
- <div v-if="isVisible" class="tooltip" :class="props.position">
10
- {{ props.content }}
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- import { ref } from "vue";
17
-
18
- interface TooltipProps {
19
- content: string;
20
- position?: "top" | "bottom" | "left" | "right";
21
- width?: string;
22
- }
23
-
24
- const props = withDefaults(defineProps<TooltipProps>(), {
25
- content: "",
26
- position: "top",
27
- width: "200px",
28
- });
29
-
30
- // states
31
- const isVisible = ref<boolean>(false);
32
-
33
- // functions
34
- const showTooltip = (): void => {
35
- isVisible.value = true;
36
- }
37
- const hideTooltip = (): void => {
38
- isVisible.value = false;
39
- }
40
- </script>
41
-
42
- <style scoped lang="scss">
43
- .tooltip-container {
44
- display: inline-block;
45
- position: relative;
46
- }
47
-
48
- .tooltip {
49
- position: absolute;
50
- padding: 8px 12px;
51
- background-color: #333;
52
- color: #fff;
53
- border-radius: 4px;
54
- font-size: 14px;
55
- line-height: 1.2;
56
- white-space: normal;
57
- z-index: 999;
58
- width: v-bind(width);
59
- opacity: 0;
60
- animation: fadeIn 0.2s forwards ease;
61
- }
62
-
63
- @keyframes fadeIn {
64
- to {
65
- opacity: 1;
66
- }
67
- }
68
-
69
- .tooltip.top {
70
- bottom: 100%;
71
- left: 50%;
72
- transform: translateX(-50%);
73
- margin-bottom: 8px;
74
- }
75
-
76
- .tooltip.bottom {
77
- top: 100%;
78
- left: 50%;
79
- transform: translateX(-50%);
80
- margin-top: 8px;
81
- }
82
-
83
- .tooltip.left {
84
- top: 50%;
85
- right: 100%;
86
- transform: translateY(-50%);
87
- margin-right: 8px;
88
- }
89
-
90
- .tooltip.right {
91
- top: 50%;
92
- left: 100%;
93
- transform: translateY(-50%);
94
- margin-left: 8px;
95
- }
96
- </style>
@@ -1,5 +0,0 @@
1
- <template>
2
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M15.7592 1.51746C16.0803 1.17049 16.0803 0.607198 15.7592 0.260228C15.3311 -0.0867426 14.796 -0.0867426 14.4749 0.260228L7.94649 6.74237L1.52508 0.260228C1.09699 -0.0867426 0.561873 -0.0867426 0.240803 0.260228C-0.0802676 0.607198 -0.0802676 1.17049 0.240803 1.51746L6.76923 7.9996L0.240803 14.4828C-0.0802676 14.8298 -0.0802676 15.392 0.240803 15.739C0.561873 16.087 1.09699 16.087 1.52508 15.739L7.94649 9.25683L14.4749 15.739C14.796 16.087 15.3311 16.087 15.7592 15.739C16.0803 15.392 16.0803 14.8298 15.7592 14.4828L9.23077 7.9996L15.7592 1.51746Z" fill="white"/>
4
- </svg>
5
- </template>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg width="45" height="40" viewBox="0 0 45 40" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M42.8186 36.4103L23.3834 2.5641C22.9908 1.88034 22.0092 1.88034 21.6166 2.5641L2.1814 36.4103C1.78877 37.094 2.27955 37.9487 3.06481 37.9487H41.9352C42.7205 37.9487 43.2112 37.094 42.8186 36.4103ZM25.1503 1.53846C23.9724 -0.512819 21.0276 -0.512822 19.8498 1.53846L0.414562 35.3846C-0.763329 37.4359 0.709031 40 3.06481 40H41.9352C44.291 40 45.7633 37.4359 44.5854 35.3846L25.1503 1.53846Z" fill="white"/>
4
- <rect x="21.6213" y="10.2565" width="2.04017" height="17.4359" rx="1.02008" fill="white"/>
5
- <ellipse cx="22.712" cy="32.3076" rx="1.53012" ry="1.53846" fill="white"/>
6
- </svg>
7
- </template>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <circle cx="24" cy="24" r="22.5" stroke="white" stroke-width="3"/>
4
- <rect x="22" y="18" width="4" height="20" rx="2" fill="white"/>
5
- <circle cx="24" cy="12" r="2" fill="white"/>
6
- </svg>
7
- </template>
@@ -1,6 +0,0 @@
1
- <template>
2
- <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <circle cx="24" cy="24" r="22.5" stroke="white" stroke-width="3"/>
4
- <path d="M35.04 14.4L19.86 33.6L12.96 24.8728" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
5
- </svg>
6
- </template>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <circle cx="24" cy="24" r="22.5" stroke="white" stroke-width="3"/>
4
- <path d="M20.6759 13.9425C20.3227 11.8821 21.9096 10 24 10C26.0904 10 27.6773 11.8821 27.3241 13.9425L24.668 29.4368C24.6122 29.7622 24.3301 30 24 30C23.6699 30 23.3878 29.7622 23.332 29.4368L20.6759 13.9425Z" fill="white"/>
5
- <circle cx="24" cy="36" r="2" fill="white"/>
6
- </svg>
7
- </template>