urfu-ui-kit-react 1.9.0 → 1.10.1

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
@@ -1,275 +1,139 @@
1
1
  # UrFU UI-Kit React
2
2
 
3
- Библиотека React-компонентов для создания пользовательских интерфейсов в экосистеме Уральского федерального университета.
3
+ Публичная библиотека React-компонентов (v1.9.0) для экосистемы UrFU.
4
4
 
5
- ## 📦 Установка
5
+ **Стек:** React 18, TypeScript, Vite, LESS, Storybook, VitePress.
6
+
7
+ ---
8
+
9
+ ## 🚀 Для пользователей библиотеки
10
+
11
+ ### Установка
6
12
 
7
13
  ```bash
8
14
  npm install urfu-ui-kit-react
9
15
  ```
10
16
 
11
- ## 🚀 Быстрый старт
12
-
13
17
  ### Базовая настройка
14
18
 
15
- В библиотеку встроена библиотека стилей `urfu-ui-kit-vanilla`, поэтому нужно в корне проекта импортировать стили:
19
+ Импортируйте стили в корень приложения:
16
20
 
17
21
  ```javascript
18
22
  import "urfu-ui-kit-react/dist/style.css"
19
23
  ```
20
24
 
21
- Или подключиться по ссылке конкретной версии как указано здесь: [https://uikit.my1.urfu.ru/#/ui/main](https://uikit.my1.urfu.ru/#/ui/main)
22
-
23
- **Важно:** Библиотека по умолчанию имеет шрифт Montserrat и полосу прокрутки, адаптивную под разные разрешения экрана. Они объявлены глобально и применяются в проекте посредством импорта библиотеки. А также стили глобально применены для тегов `h1-h6`.
25
+ ### Использование компонента
24
26
 
25
- ### Импорт компонентов
26
-
27
- Импорт компонентов осуществляется по имени:
27
+ ```jsx
28
+ import { Button, InputText, Select } from "urfu-ui-kit-react";
28
29
 
29
- ```javascript
30
- import {
31
- Button,
32
- InputText,
33
- Select,
34
- Checkbox,
35
- Preloader,
36
- Message,
37
- Tooltip
38
- } from "urfu-ui-kit-react";
30
+ export function App() {
31
+ return (
32
+ <>
33
+ <Button>Кнопка</Button>
34
+ <InputText title="Имя" />
35
+ <Select
36
+ title="Выбор"
37
+ options={[
38
+ { value: '1', label: 'Опция 1' },
39
+ { value: '2', label: 'Опция 2' }
40
+ ]}
41
+ />
42
+ </>
43
+ );
44
+ }
39
45
  ```
40
46
 
41
- ## 📚 Компоненты
47
+ Полная документация всех компонентов: [https://uikit.my1.urfu.ru](https://uikit.my1.urfu.ru)
42
48
 
43
- ### Формы и ввод данных
44
-
45
- - **InputText** — текстовое поле ввода
46
- - **InputNumber** — поле ввода чисел
47
- - **InputFile** — загрузка файлов
48
- - **InputExpandTextarea** — расширяемое текстовое поле
49
- - **Textarea** — многострочное текстовое поле
50
- - **Select** — выпадающий список
51
- - **SearchSelect** — поисковый выпадающий список; опционально **`isClearable`** (сброс выбора, крестик в стиле Multiselect) и controlled-строка поиска (`inputValue` / `onInputValueChange`) — см. [документацию](docs/components/search-select.md)
52
- - **Multiselect** — множественный выбор
53
- - **Checkbox** — чекбокс
54
- - **Radio** — радиокнопка
55
- - **Search** — поле поиска
56
- - **Calendar** — календарь для выбора даты
57
-
58
- ### Навигация и структура
59
-
60
- - **Menu** — боковое меню навигации
61
- - **Tabs** — вкладки
62
- - **Accordion** — аккордеон
63
- - **TreeView** — древовидное представление данных
64
-
65
- ### Отображение данных
66
-
67
- - **Table** — таблица с поддержкой сортировки, фильтрации и виртуализации
68
- - **Filter** — таблица с расширенными возможностями фильтрации
69
- - **Status** — индикатор статуса
70
- - **Icon** — иконки
71
- - **Message** — сообщения (информация, предупреждение, ошибка, успех)
72
- - **Preloader** — индикатор загрузки
49
+ ---
73
50
 
74
- ### Взаимодействие
51
+ ## 👨‍💻 Для разработчиков библиотеки
75
52
 
76
- - **Button** — кнопка
77
- - **Modal** — модальное окно
78
- - **Tooltip** — всплывающая подсказка
79
- - **NotificationProvider** и **useNotification** — система уведомлений
53
+ ### Первичная настройка
80
54
 
81
- ## 💡 Примеры использования
55
+ ```bash
56
+ # Установить зависимости
57
+ npm install
82
58
 
83
- ### Система уведомлений
59
+ # Запустить Storybook (примеры компонентов)
60
+ npm run sb
84
61
 
85
- Для использования системы уведомлений, добавьте `NotificationProvider`:
62
+ # Запустить VitePress (документация)
63
+ npm run vp
86
64
 
87
- ```jsx
88
- import { NotificationProvider, useNotification } from 'urfu-ui-kit-react';
89
-
90
- function App() {
91
- return (
92
- <NotificationProvider>
93
- {/* Ваше приложение */}
94
- </NotificationProvider>
95
- );
96
- }
65
+ # Запустить оба одновременно
66
+ npm run docs
67
+ ```
97
68
 
98
- // Использование в компонентах
99
- function MyComponent() {
100
- const { showNotification } = useNotification();
101
-
102
- const handleClick = () => {
103
- showNotification('success', 'Операция выполнена успешно!');
104
- };
69
+ ### Разработка
105
70
 
106
- return <button onClick={handleClick}>Показать уведомление</button>;
107
- }
108
- ```
71
+ ```bash
72
+ # Собрать библиотеку
73
+ npm run build
109
74
 
110
- ### Работа с формами
75
+ # Запустить линтер
76
+ npm run lint
111
77
 
112
- ```jsx
113
- import {
114
- InputText,
115
- Select,
116
- Checkbox,
117
- Radio,
118
- Button
119
- } from 'urfu-ui-kit-react';
120
-
121
- function MyForm() {
122
- return (
123
- <form>
124
- <InputText
125
- title="Имя"
126
- required
127
- />
128
- <Select
129
- title="Выберите опцию"
130
- options={[
131
- { value: '1', label: 'Опция 1' },
132
- { value: '2', label: 'Опция 2' }
133
- ]}
134
- />
135
- <Checkbox
136
- title="Согласие"
137
- required
138
- />
139
- <Radio
140
- title="Выберите вариант"
141
- options={[
142
- { value: '1', label: 'Вариант 1' },
143
- { value: '2', label: 'Вариант 2' }
144
- ]}
145
- />
146
- <Button type="submit">Отправить</Button>
147
- </form>
148
- );
149
- }
78
+ # Собрать VitePress документацию
79
+ npm run vpb
150
80
  ```
151
81
 
152
- ### Навигация
82
+ ### Версионирование и публикация
153
83
 
154
- ```jsx
155
- import { Menu, Tabs } from 'urfu-ui-kit-react';
84
+ 1. Обновить версию в `package.json`
85
+ 2. Добавить запись в `docs/versioning.md`
86
+ 3. Обновить документацию затронутых компонентов
87
+ 4. Запустить линтер и сборку
88
+ 5. Опубликовать:
156
89
 
157
- function Navigation() {
158
- return (
159
- <>
160
- <Menu
161
- menuData={[
162
- { title: 'Главная', id: 'home' },
163
- { title: 'Раздел', id: 'section' }
164
- ]}
165
- />
166
- <Tabs
167
- tabs={[
168
- { title: 'Вкладка 1', id: 'tab1' },
169
- { title: 'Вкладка 2', id: 'tab2' }
170
- ]}
171
- />
172
- </>
173
- );
174
- }
90
+ ```bash
91
+ npm run pub
175
92
  ```
176
93
 
177
- ### Модальные окна
178
-
179
- ```jsx
180
- import { Modal, Button } from 'urfu-ui-kit-react';
181
- import { useState } from 'react';
182
-
183
- function MyModal() {
184
- const [isOpen, setIsOpen] = useState(false);
94
+ **Важно:** это публичная библиотека; все изменения API ломают потребителей (meetings, youth-science, kpis-npr). Избегайте breaking changes без координации.
185
95
 
186
- return (
187
- <>
188
- <Button onClick={() => setIsOpen(true)}>
189
- Открыть модальное окно
190
- </Button>
191
- <Modal
192
- isOpen={isOpen}
193
- onClose={() => setIsOpen(false)}
194
- title="Заголовок"
195
- >
196
- Содержимое модального окна
197
- </Modal>
198
- </>
199
- );
200
- }
201
- ```
96
+ ---
202
97
 
203
- ### Работа с таблицами
98
+ ## 📚 Компоненты
204
99
 
205
- ```jsx
206
- import { Table } from 'urfu-ui-kit-react';
100
+ ### Форма и ввод
207
101
 
208
- function DataTable() {
209
- const columns = [
210
- { key: 'name', title: 'Имя' },
211
- { key: 'age', title: 'Возраст' },
212
- { key: 'city', title: 'Город' }
213
- ];
102
+ InputText, InputNumber, InputFile, InputExpandTextarea, Textarea, Select, SearchSelect, Multiselect, Checkbox, Radio, Search, Calendar, InputTime
214
103
 
215
- const data = [
216
- { name: 'Иван', age: 25, city: 'Екатеринбург' },
217
- { name: 'Мария', age: 30, city: 'Москва' }
218
- ];
104
+ ### Навигация
219
105
 
220
- return (
221
- <Table
222
- columns={columns}
223
- data={data}
224
- sortable
225
- />
226
- );
227
- }
228
- ```
106
+ Menu, Tabs, Accordion, BreadCrumbs, TreeView
229
107
 
230
- ## 📖 Документация
108
+ ### Отображение
231
109
 
232
- Полная документация с примерами использования всех компонентов доступна в Storybook. Для запуска локальной версии:
110
+ Table, Status, Icon, Message, Preloader, Card, StickyActionBar
233
111
 
234
- ```bash
235
- npm run sb
236
- ```
112
+ ### Взаимодействие
237
113
 
238
- Документация также доступна онлайн: [https://uikit.my1.urfu.ru](https://uikit.my1.urfu.ru)
114
+ Button, Modal, Tooltip, Notification, Switch
239
115
 
240
- ## 🎨 Особенности
116
+ ---
241
117
 
242
- - **TypeScript** — полная поддержка типов
243
- - **Адаптивность** — все компоненты адаптированы под разные разрешения экрана
244
- - **Виртуализация** — поддержка виртуализации для больших списков и таблиц
245
- - **Доступность** — компоненты разработаны с учетом принципов доступности
246
- - **Кастомизация** — гибкая настройка компонентов через пропсы
118
+ ## 📋 Требования
247
119
 
248
- ## 🔧 Требования
120
+ - React ^18.0.0
121
+ - React DOM ^18.0.0
122
+ - TypeScript ^5.2
249
123
 
250
- - React ^18.3.1
251
- - React DOM ^18.3.1
124
+ ---
252
125
 
253
126
  ## 📝 История версий
254
127
 
255
- Библиотека активно развивается. Основные изменения:
128
+ **v1.9.0** (2026-05-25)
129
+
130
+ - Pagination: исправлено выравнивание на десктопе и мобильных устройствах
256
131
 
257
- - **v1.8.7** — текущая версия
258
- - Table: добавлен проп `fixedLayout` — устанавливает `table-layout: fixed`, предотвращает скачки колонок при пагинации
259
- - **v1.8.6** — Calendar: проп `disabled` теперь визуально отображает неактивное состояние (серый текст, светло-серый фон, скрытый бордер)
260
- - **v1.8.5** — добавлен компонент Switch
261
- - **v1.8.1** — добавлена поддержка Tooltip с различными позициями (слева, снизу, сверху)
262
- - Улучшена работа с календарем и фильтрацией таблиц
263
- - Добавлена виртуализация для таблиц и селектов
264
- - Расширены возможности Filter
265
- - Добавлен компонент TreeView с поиском
266
- - Улучшена система уведомлений
267
- - Множество исправлений и оптимизаций
132
+ **v1.8.7** и ранее — см. [docs/versioning.md](./docs/versioning.md)
268
133
 
269
- ## 🤝 Поддержка
134
+ ---
270
135
 
271
- При возникновении проблем или вопросов:
136
+ ## 🤝 Вопросы и обратная связь
272
137
 
273
- 1. Проверьте документацию компонентов в Storybook
274
- 2. Изучите примеры использования
275
- 3. Поделитесь своими вопросами, замечаниями и рекомендациями: [Форма обратной связи](https://lk-form.my1.urfu.ru/uikit-feedback/submit)
138
+ - Документация: [https://uikit.my1.urfu.ru](https://uikit.my1.urfu.ru)
139
+ - Форма обратной связи: [https://lk-form.my1.urfu.ru/uikit-feedback/submit](https://lk-form.my1.urfu.ru/uikit-feedback/submit)
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAIpE,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,iBAAiB,CAAC;AAazB,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,SAAI;;EAQvD;AAiBD,eAAO,MAAM,KAAK,UAEjB,CAAC;AA2GF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwOjD,CAAC"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAGpE,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAStD,OAAO,iBAAiB,CAAC;AAazB,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,SAAI;;EAQvD;AAiBD,eAAO,MAAM,KAAK,UAEjB,CAAC;AA2GF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4QjD,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CSSProperties } from 'react';
1
+ import type { CSSProperties, ReactNode } from 'react';
2
2
  export type CalendarProperties = Partial<{
3
3
  title: string;
4
4
  selected: any;
@@ -25,5 +25,14 @@ export type CalendarProperties = Partial<{
25
25
  columnGap: string | number;
26
26
  styleInputContainer: CSSProperties;
27
27
  styleTitle: CSSProperties;
28
+ /** Включает редактирование даты колесом мыши, стрелками ↑↓ и переход по Enter.
29
+ * По умолчанию выключено — поле работает как обычный masked-input (только ввод). */
30
+ wheelEdit: boolean;
31
+ /** Показывать подсказку-тултип при фокусе. По умолчанию выключено. */
32
+ showHint: boolean;
33
+ /** Текст подсказки. По умолчанию — про колесо мыши и стрелки ↑↓. */
34
+ hintText: ReactNode;
35
+ /** Максимальная ширина тултипа подсказки. */
36
+ tooltipMaxWidth: string | number;
28
37
  }>;
29
38
  //# sourceMappingURL=Calendar.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,mBAAmB,EAAE,aAAa,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"Calendar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,mBAAmB,EAAE,aAAa,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B;yFACqF;IACrF,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,QAAQ,EAAE,SAAS,CAAC;IACpB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type InputHTMLAttributes } from "react";
2
+ type ExtraDateProps = {
3
+ /** Вызывается при изменении значения колесом/стрелками с распарсенной датой (байпас react-datepicker roundtrip). */
4
+ onWheelDate?: (date: Date) => void;
5
+ /** Вызывается при изменении значения колесом/стрелками чтобы открыть попап календаря. */
6
+ onOpenCalendar?: () => void;
7
+ /** Уведомляет родителя об изменении фокуса инпута (для тултипа). */
8
+ onFocusChange?: (focused: boolean) => void;
9
+ /** Разрешает оставить поле пустым. Если false — на blur неполное/пустое значение
10
+ * восстанавливается к последней полной введённой дате. */
11
+ isClearable?: boolean;
12
+ /** Включает редактирование сегментов колесом мыши, стрелками ↑↓ и переход по Enter.
13
+ * По умолчанию выключено — поле работает как обычный masked-input (только ввод). */
14
+ wheelEdit?: boolean;
15
+ };
16
+ export declare const MaskedDateInput: import("react").ForwardRefExoticComponent<InputHTMLAttributes<HTMLInputElement> & ExtraDateProps & import("react").RefAttributes<HTMLInputElement>>;
17
+ export {};
18
+ //# sourceMappingURL=MaskedDateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaskedDateInput.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/MaskedDateInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EACzB,MAAM,OAAO,CAAC;AAUf,KAAK,cAAc,GAAG;IACpB,oHAAoH;IACpH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,oEAAoE;IACpE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C;+DAC2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;yFACqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe,qJAgR1B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const parseDateString: (value: string) => Date | null;
2
+ export type DateSegment = "day" | "month" | "year";
3
+ export declare const getSegmentRange: (segment: DateSegment) => [number, number];
4
+ export declare const getSegmentAtCaret: (caret: number) => DateSegment;
5
+ export declare const incrementDateSegment: (value: string, segment: DateSegment, delta: number) => string;
6
+ export declare const normalizeSegment: (segment: string, max: number) => string;
7
+ export declare const maskDateValue: (raw: string) => string;
8
+ //# sourceMappingURL=dateMask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateMask.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/dateMask.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,IAAI,GAAG,IAMtD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAGnD,eAAO,MAAM,eAAe,GAAI,SAAS,WAAW,KAAG,CAAC,MAAM,EAAE,MAAM,CAIrE,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,WAIjD,CAAC;AAwBF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,SAAS,WAAW,EACpB,OAAO,MAAM,KACZ,MAkBF,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,EAAE,KAAK,MAAM,KAAG,MAU/D,CAAC;AAGF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,MAU3C,CAAC"}
@@ -3,11 +3,12 @@ import 'urfu-ui-kit-vanilla/src/main.css';
3
3
  import './InputTime.less';
4
4
  import type { InputTimeProperties } from './InputTime.types';
5
5
  export declare const InputTime: {
6
- ({ title, placeholder, defaultValue, value, id, name, onChange, required, disabled, lineUp, rowGap, columnGap, styleInputContainer, styleTitle, styleInput, tooltipMaxWidth, className, validationText, validationOn, validationOnWithoutText, absoluteValidationText, }: InputTimeProperties): import("react/jsx-runtime").JSX.Element;
6
+ ({ title, placeholder, defaultValue, value, id, name, onChange, required, disabled, isClearable, lineUp, rowGap, columnGap, styleInputContainer, styleTitle, styleInput, tooltipMaxWidth, wheelEdit, showHint, hintText, className, validationText, validationOn, validationOnWithoutText, absoluteValidationText, }: InputTimeProperties): import("react/jsx-runtime").JSX.Element;
7
7
  propTypes: {
8
8
  title: PropTypes.Requireable<string>;
9
9
  required: PropTypes.Requireable<boolean>;
10
10
  disabled: PropTypes.Requireable<boolean>;
11
+ isClearable: PropTypes.Requireable<boolean>;
11
12
  lineUp: PropTypes.Requireable<boolean>;
12
13
  rowGap: PropTypes.Requireable<NonNullable<string | number>>;
13
14
  columnGap: PropTypes.Requireable<NonNullable<string | number>>;
@@ -15,6 +16,9 @@ export declare const InputTime: {
15
16
  styleTitle: PropTypes.Requireable<object>;
16
17
  styleInput: PropTypes.Requireable<object>;
17
18
  tooltipMaxWidth: PropTypes.Requireable<NonNullable<string | number>>;
19
+ wheelEdit: PropTypes.Requireable<boolean>;
20
+ showHint: PropTypes.Requireable<boolean>;
21
+ hintText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
18
22
  className: PropTypes.Requireable<string>;
19
23
  id: PropTypes.Requireable<string>;
20
24
  name: PropTypes.Requireable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"InputTime.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/InputTime.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,SAAS;8QAsBnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;CA0gBrB,CAAC"}
1
+ {"version":3,"file":"InputTime.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/InputTime.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,SAAS;0TA0BnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CAulBrB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CSSProperties } from 'react';
1
+ import type { CSSProperties, ReactNode } from 'react';
2
2
  export type InputTimeProperties = Partial<{
3
3
  title: string;
4
4
  placeholder: string;
@@ -9,6 +9,9 @@ export type InputTimeProperties = Partial<{
9
9
  onChange: React.ChangeEventHandler<HTMLInputElement>;
10
10
  required: boolean;
11
11
  disabled: boolean;
12
+ /** Разрешает оставить поле пустым. Если false — на blur неполное/пустое значение
13
+ * восстанавливается к последнему полному введённому времени. */
14
+ isClearable: boolean;
12
15
  lineUp: boolean;
13
16
  rowGap: string | number;
14
17
  columnGap: string | number;
@@ -16,6 +19,12 @@ export type InputTimeProperties = Partial<{
16
19
  styleTitle: CSSProperties;
17
20
  styleInput: CSSProperties;
18
21
  tooltipMaxWidth: string | number;
22
+ /** Включает изменение времени колесом мыши и стрелками ↑↓. По умолчанию выключено. */
23
+ wheelEdit: boolean;
24
+ /** Показывать подсказку-тултип при фокусе. По умолчанию выключено. */
25
+ showHint: boolean;
26
+ /** Текст подсказки. По умолчанию — про колесо мыши, стрелки ↑↓ и Enter. */
27
+ hintText: ReactNode;
19
28
  className: string;
20
29
  validationText: string;
21
30
  validationOn: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"InputTime.types.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/InputTime.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,mBAAmB,EAAE,aAAa,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"InputTime.types.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/InputTime.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB;qEACiE;IACjE,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,mBAAmB,EAAE,aAAa,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,sFAAsF;IACtF,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AA4D5B,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAc,EACd,UAAc,EACd,eAAe,EACf,eAAe,EACf,WAAmB,EACnB,SAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,eAAe,2CAuGjB"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AA4D5B,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAc,EACd,UAAc,EACd,eAAe,EACf,eAAe,EACf,WAAmB,EACnB,SAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,eAAe,2CA+GjB"}
@@ -4,7 +4,7 @@ import { StatusProperties } from './Status.types';
4
4
  export declare const Status: {
5
5
  ({ size, variant, children, className, id, props }: StatusProperties): import("react/jsx-runtime").JSX.Element;
6
6
  propTypes: {
7
- children: PropTypes.Requireable<string>;
7
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
8
8
  variant: PropTypes.Requireable<string>;
9
9
  size: PropTypes.Requireable<string>;
10
10
  className: PropTypes.Requireable<string>;