@huntflow/ui 0.2.33 → 0.2.34-test.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.
package/README.md CHANGED
@@ -21,27 +21,121 @@
21
21
 
22
22
  Для добавления UiKit в ваш проект выполните:
23
23
 
24
- ```javascript
24
+ ```bash
25
25
  npm install @huntflow/ui
26
26
  ```
27
27
 
28
- ## 📚 Storybook
28
+ ### Подключение в проекте
29
29
 
30
- ```javascript
30
+ Подключите глобальные стили и один раз внедрите SVG-спрайт для иконок:
31
+
32
+ ```ts
33
+ import '@huntflow/ui/dist/global.css';
34
+ import { injectSvgSprite } from '@huntflow/ui';
35
+
36
+ await injectSvgSprite();
37
+ ```
38
+
39
+ ## 📚 Документация и разработка
40
+
41
+ - **Storybook** — каталог компонентов и примеры использования. Локальный запуск:
42
+
43
+ ```bash
31
44
  npm run storybook
32
45
  ```
33
46
 
34
47
  ## 🎨 Иконки
35
- Для того, чтобы актуализировать иконки, необходимо создать `.env` (пример в `.env.develop`):
36
- - указать свой токен Figma (Help and account → Account settings → Security → Personal access tokens)
37
- - необходимый `FIGMA_FILE_ID` (Например: `https://www.figma.com/design/DV8Zm9gdvUocVlrqD8egvV/Igor-(New-UI-Kit)?node-id=1581-180&p=f&t=YzO5zlBlx3wPY5HW-0` это `DV8Zm9gdvUocVlrqD8egvV`)
38
- - необходимый `NODE_ID` (Например: `https://www.figma.com/design/DV8Zm9gdvUocVlrqD8egvV/Igor-(New-UI-Kit)?node-id=1581-180&p=f&t=YzO5zlBlx3wPY5HW-0` это `1581-180`, указываем через двоеточие)
39
- - скачать новый иконки `npm run icons:download`
40
- - обновить типы и список иконок `npm run icons:update-list`
41
-
42
-
43
- ## Пример использования
44
- ```javascript
45
- import { UiButton } from '@huntflow/ui';
46
- import { UiIcon } from '@huntflow/ui/icons';
48
+ # Актуализация иконок
49
+
50
+ Чтобы актуализировать иконки, выполните следующие шаги:
51
+
52
+ 1. Создайте файл `.env` (можно использовать пример из `.env.develop`).
53
+
54
+ 2. Укажите необходимые переменные:
55
+
56
+ - **`FIGMA_TOKEN`** — персональный токен Figma
57
+ *(Иконка профиля -> Settings -> Security -> Personal access tokens -> Generate new token)*
58
+
59
+ - **`FIGMA_FILE_ID`** ID файла Figma
60
+ Пример:
61
+ ```
62
+ Ссылка: https://www.figma.com/design/DV8Zm9gdvUocVlrqD8egvV/Igor-(New-UI-Kit)?node-id=1581-180&p=f&t=YzO5zlBlx3wPY5HW-0
63
+ FIGMA_FILE_ID = DV8Zm9gdvUocVlrqD8egvV
64
+ ```
65
+
66
+ - **`NODE_ID`** — ID узла Figma
67
+ Пример из той же ссылки:
68
+ ```
69
+ NODE_ID = 1581-180, указываем через двоеточие (1581:180)
70
+ ```
71
+
72
+ 3. Скачайте новые иконки:
73
+ ```bash
74
+ npm run icons:download
75
+ ```
76
+
77
+ 4. Обновите типы и список иконок:
78
+ ```bash
79
+ npm run icons:update-list
80
+ ```
81
+
82
+ 5. Соберите SVG-спрайт из иконок:
83
+ ```bash
84
+ npm run sprite
85
+ ```
86
+
87
+ Для отображения иконок нужно один раз внедрить SVG-спрайт:
88
+
89
+ ```ts
90
+ import { injectSvgSprite } from '@huntflow/ui';
91
+
92
+ await injectSvgSprite();
93
+ ```
94
+
95
+ # Добавление новых токенов из Figma
96
+
97
+ 1. В Figma откройте **Plugins → Sync Variables**.
98
+
99
+ 2. В правой панели в плагине:
100
+ - В правой панели где открылся плагин ставим галочки
101
+ - Жмем **Generate → Copy to clipboard**.
102
+
103
+ 3. Вставьте скопированные токены в файл:
104
+ ```
105
+ src/assets/css/token.css
106
+ ```
107
+ 4. В терминале выполните команду для конвертации токенов:
108
+ ```bash
109
+ npm run tokens:convert
110
+ ```
111
+
112
+ ## Компоненты
113
+
114
+ | Компонент | Описание |
115
+ |-----------|----------|
116
+ | `UiButton` | Стандартная кнопка |
117
+ | `UiButtonIcon` | Кнопка только с иконкой, без текста |
118
+ | `UiButtonLink` | Кнопка в виде ссылки, с опциональной иконкой и замочком |
119
+ | `UiIcon` | Иконка из SVG-спрайта |
120
+ | `UiInput` | Инпут |
121
+ | `UiTextarea` | Многострочное поле ввода |
122
+ | `UiLabel` | Лейбл для полей форм |
123
+ | `UiLoader` | Индикатор загрузки (спиннер) |
124
+ | `UiPlank` | Плашка |
125
+ | `UiText` | Текстовый блок |
126
+ | `UiTitle` | Заголовок (h1–h4) |
127
+ | `UiError` | Отображение сообщения об ошибке в формах |
128
+ | `UiAvatar` | Аватар пользователя |
129
+ | `UiStack` | Flex-контейнер для компоновки элементов с настройкой gap и выравнивания |
130
+ | `UiRadioGroup` | Группа радиокнопок |
131
+ | `UiCheckboxGroup` | Группа чекбоксов |
132
+ | `UiDropzone` | Область перетаскивания и выбора файлов для загрузки |
133
+
134
+ ## Пример использования
135
+
136
+ ```ts
137
+ import { UiButton, UiIcon } from '@huntflow/ui';
138
+
139
+ <ui-button>Кнопка</ui-button>
140
+ <ui-icon name="icon-name" />
47
141
  ```
@@ -2,7 +2,7 @@ import { UiRadioButtonProps } from './types';
2
2
  declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
4
  slots: {
5
- title?(_: {}): any;
5
+ label?(_: {}): any;
6
6
  subtitle?(_: {}): any;
7
7
  };
8
8
  refs: {};
@@ -1,9 +1,13 @@
1
1
  export type UiRadioButtonProps = {
2
2
  value: string;
3
3
  disabled?: boolean;
4
- title?: string;
4
+ label?: string;
5
5
  subtitle?: string;
6
6
  partial?: boolean;
7
7
  required?: boolean;
8
8
  name?: string;
9
+ /** Вертикальное расположение: индикатор сверху, лейбл снизу */
10
+ vertical?: boolean;
11
+ /** Выравнивание индикатора и лейбла внутри радиокнопки */
12
+ itemsAlign?: 'start' | 'center';
9
13
  };
@@ -7,7 +7,7 @@ type __VLS_PublicProps = {
7
7
  declare function __VLS_template(): {
8
8
  attrs: Partial<{}>;
9
9
  slots: {
10
- optionTitle?(_: {
10
+ optionLabel?(_: {
11
11
  option: import('../ui-radio-button').UiRadioButtonProps;
12
12
  }): any;
13
13
  optionSubtitle?(_: {
@@ -7,7 +7,12 @@ export type UiRadioGroupProps = {
7
7
  disabled?: boolean;
8
8
  error?: string;
9
9
  required?: boolean;
10
+ /** Направление расположения радиокнопок в группе */
10
11
  direction?: 'column' | 'row';
12
+ /** Вертикальное расположение внутри каждой радиокнопки: индикатор сверху, лейбл снизу */
13
+ vertical?: boolean;
14
+ /** Выравнивание индикатора и лейбла внутри каждой радиокнопки */
15
+ itemsAlign?: 'start' | 'center';
11
16
  loop?: boolean;
12
17
  dir?: 'ltr' | 'rtl';
13
18
  stackGap?: 's' | 'l';