fui-material 2.5.10 → 2.5.12
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/f-ui-kit.es.js +629 -370
- package/dist/f-ui-kit.es.js.map +1 -1
- package/dist/types/material/FFullDateField/FFullDateField.d.ts +3 -3
- package/dist/types/material/FSearchBox/FSearchBox.d.ts +4 -4
- package/dist/types/material/FSearchableSelect/FSearchableSelect.d.ts +1 -106
- package/dist/types/material/FSelectSearchDb/FSelectSearchDb.d.ts +3 -4
- package/dist/types/material/FTextArea/FTextArea.d.ts +2 -2
- package/dist/types/material/FTextField/FTextField.d.ts +2 -2
- package/dist/types/material/SelectComponents/FSelect/FSelect.d.ts +2 -3
- package/package.json +77 -80
|
@@ -31,10 +31,10 @@ export interface IFFullDateField extends React.InputHTMLAttributes<HTMLInputElem
|
|
|
31
31
|
*/
|
|
32
32
|
load?: boolean;
|
|
33
33
|
/**
|
|
34
|
-
* Массив текстов ошибок, связанных с полем
|
|
35
|
-
* @type {string[] |
|
|
34
|
+
* Массив текстов ошибок, связанных с полем даты.
|
|
35
|
+
* @type {string[] | undefined}
|
|
36
36
|
*/
|
|
37
|
-
errText?: string[]
|
|
37
|
+
errText?: string[];
|
|
38
38
|
/**
|
|
39
39
|
* Вспомогательный текст под полем даты.
|
|
40
40
|
* @type {string | undefined}
|
|
@@ -43,10 +43,10 @@ export interface IFSearchBox extends React.InputHTMLAttributes<HTMLInputElement>
|
|
|
43
43
|
*/
|
|
44
44
|
readOnly?: boolean;
|
|
45
45
|
/**
|
|
46
|
-
* Массив
|
|
47
|
-
* @type {string[] |
|
|
46
|
+
* Массив текстовых ошибок, связанных с полем ввода.
|
|
47
|
+
* @type {string[] | undefined}
|
|
48
48
|
*/
|
|
49
|
-
errText?: string[]
|
|
49
|
+
errText?: string[];
|
|
50
50
|
/**
|
|
51
51
|
* Вспомогательный текст под полем ввода.
|
|
52
52
|
* @type {string | undefined}
|
|
@@ -119,7 +119,7 @@ export interface IFSearchBox extends React.InputHTMLAttributes<HTMLInputElement>
|
|
|
119
119
|
* @param {boolean} [fullWidth] - Если true, поле будет растянуто на 100% ширины.
|
|
120
120
|
* @param {boolean} [disabled] - Блокировка ввода и кнопок.
|
|
121
121
|
* @param {boolean} [readOnly] - Только для чтения.
|
|
122
|
-
* @param {string[]
|
|
122
|
+
* @param {string[]} [errText] - Сообщения об ошибках.
|
|
123
123
|
* @param {string} [helpText] - Вспомогательный текст.
|
|
124
124
|
* @param {boolean} [load=false] - Показывает спиннер загрузки.
|
|
125
125
|
* @param {React.ReactNode} [children] - Контент внутри кнопки справа.
|
|
@@ -1,73 +1,16 @@
|
|
|
1
1
|
import React, { type ChangeEvent, type ReactNode, type CSSProperties } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Интерфейс пропсов для компонента `FSearchableSelect`.
|
|
4
|
-
*
|
|
5
|
-
* @interface IFSearchableSelect
|
|
6
|
-
* @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>}
|
|
7
|
-
*/
|
|
8
2
|
export interface IFSearchableSelect extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
|
|
9
|
-
/**
|
|
10
|
-
* Метка (label), отображаемая над полем ввода.
|
|
11
|
-
* @type {string | undefined}
|
|
12
|
-
*/
|
|
13
3
|
label?: string;
|
|
14
|
-
/**
|
|
15
|
-
* Инлайновые стили для внешнего контейнера компонента.
|
|
16
|
-
* @type {CSSProperties | undefined}
|
|
17
|
-
*/
|
|
18
4
|
st?: CSSProperties;
|
|
19
|
-
/**
|
|
20
|
-
* Дочерние элементы (обычно `<option>`), из которых формируется список выбора.
|
|
21
|
-
* Значения извлекаются из пропсов `value` и `children` переданных элементов.
|
|
22
|
-
* @type {ReactNode | undefined}
|
|
23
|
-
*/
|
|
24
5
|
children?: ReactNode;
|
|
25
|
-
/**
|
|
26
|
-
* Флаг, указывающий, должен ли компонент занимать 100% ширины родителя.
|
|
27
|
-
* @type {boolean | undefined}
|
|
28
|
-
*/
|
|
29
6
|
fullWidth?: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Флаг состояния загрузки. Если true, отображается спиннер, а взаимодействие блокируется.
|
|
32
|
-
* @type {boolean | undefined}
|
|
33
|
-
*/
|
|
34
7
|
load?: boolean;
|
|
35
|
-
|
|
36
|
-
* Массив текстов ошибок, связанных с полем ввода.
|
|
37
|
-
* @type {string[] | string | undefined}
|
|
38
|
-
*/
|
|
39
|
-
errText?: string[] | string | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* Вспомогательный текст, отображаемый под полем ввода.
|
|
42
|
-
* @type {string | undefined}
|
|
43
|
-
*/
|
|
8
|
+
errText?: string[];
|
|
44
9
|
helpText?: string;
|
|
45
|
-
/**
|
|
46
|
-
* Явное указание ширины компонента.
|
|
47
|
-
* @type {string | number | undefined}
|
|
48
|
-
*/
|
|
49
10
|
width?: string | number;
|
|
50
|
-
/**
|
|
51
|
-
* Явное указание высоты компонента.
|
|
52
|
-
* @type {string | number | undefined}
|
|
53
|
-
*/
|
|
54
11
|
height?: string | number;
|
|
55
|
-
/**
|
|
56
|
-
* Разрешить создание новых элементов, отсутствующих в списке.
|
|
57
|
-
* При вводе уникального текста появится опция "Создать".
|
|
58
|
-
* @type {boolean | undefined}
|
|
59
|
-
*/
|
|
60
12
|
allowCreate?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Текущее значение поля (контролируемый компонент).
|
|
63
|
-
* @type {string | number | readonly string[] | undefined}
|
|
64
|
-
*/
|
|
65
13
|
value?: string | number | readonly string[];
|
|
66
|
-
/**
|
|
67
|
-
* Callback, вызываемый при изменении значения.
|
|
68
|
-
* Возвращает синтетическое событие с объектом target, содержащим name и value.
|
|
69
|
-
* @type {((event: { target: { name: string; value: string } } | ChangeEvent<HTMLInputElement>) => void) | undefined}
|
|
70
|
-
*/
|
|
71
14
|
onChange?: (event: {
|
|
72
15
|
target: {
|
|
73
16
|
name: string;
|
|
@@ -75,53 +18,5 @@ export interface IFSearchableSelect extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
75
18
|
};
|
|
76
19
|
} | ChangeEvent<HTMLInputElement>) => void;
|
|
77
20
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Компонент `FSearchableSelect` — выпадающий список с возможностью поиска и фильтрации опций.
|
|
80
|
-
*
|
|
81
|
-
* Особенности:
|
|
82
|
-
* - Поддерживает фильтрацию списка при вводе текста.
|
|
83
|
-
* - Может работать как обычный Select или как Combobox (с `allowCreate`).
|
|
84
|
-
* - Парсит опции из переданных `children` (например, `<option value="1">One</option>`).
|
|
85
|
-
* - Поддерживает навигацию с клавиатуры (стрелки, Enter, Escape).
|
|
86
|
-
* - Имеет состояния: ошибка, загрузка, disabled.
|
|
87
|
-
*
|
|
88
|
-
* @component
|
|
89
|
-
* @example
|
|
90
|
-
* // Простой пример использования с опциями
|
|
91
|
-
* <FSearchableSelect
|
|
92
|
-
* label="Выберите город"
|
|
93
|
-
* value={city}
|
|
94
|
-
* onChange={(e) => setCity(e.target.value)}
|
|
95
|
-
* fullWidth
|
|
96
|
-
* >
|
|
97
|
-
* <option value="moscow">Москва</option>
|
|
98
|
-
* <option value="spb">Санкт-Петербург</option>
|
|
99
|
-
* </FSearchableSelect>
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* // Пример с созданием новых значений (allowCreate) и ошибкой
|
|
103
|
-
* <FSearchableSelect
|
|
104
|
-
* label="Теги"
|
|
105
|
-
* allowCreate
|
|
106
|
-
* value={tag}
|
|
107
|
-
* onChange={(e) => setTag(e.target.value)}
|
|
108
|
-
* errText={hasError ? ['Некорректный тег'] : undefined}
|
|
109
|
-
* >
|
|
110
|
-
* {tagsList.map(t => <option key={t.id} value={t.name}>{t.name}</option>)}
|
|
111
|
-
* </FSearchableSelect>
|
|
112
|
-
*
|
|
113
|
-
* @param {string} [label] - Метка поля.
|
|
114
|
-
* @param {CSSProperties} [st] - Стили контейнера.
|
|
115
|
-
* @param {ReactNode} [children] - Опции списка.
|
|
116
|
-
* @param {boolean} [fullWidth=false] - Растянуть на 100%.
|
|
117
|
-
* @param {boolean} [load=false] - Показать лоадер.
|
|
118
|
-
* @param {string[] | string} [errText] - Текст ошибки.
|
|
119
|
-
* @param {string} [helpText] - Подсказка.
|
|
120
|
-
* @param {boolean} [allowCreate=false] - Разрешить ввод своих значений.
|
|
121
|
-
* @param {string|number} [value] - Значение.
|
|
122
|
-
* @param {Function} [onChange] - Обработчик изменений.
|
|
123
|
-
*
|
|
124
|
-
* @returns {JSX.Element} Рендерит кастомный Select с поиском.
|
|
125
|
-
*/
|
|
126
21
|
declare const FSearchableSelect: React.ForwardRefExoticComponent<IFSearchableSelect & React.RefAttributes<HTMLInputElement>>;
|
|
127
22
|
export default FSearchableSelect;
|
|
@@ -53,10 +53,9 @@ export interface IFSelectSearchDb<T> {
|
|
|
53
53
|
*/
|
|
54
54
|
required?: boolean;
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
57
|
-
* @type {string[] | string | undefined}
|
|
56
|
+
* Сообщение об ошибках валидации.
|
|
58
57
|
*/
|
|
59
|
-
errText?: string[]
|
|
58
|
+
errText?: string[];
|
|
60
59
|
/**
|
|
61
60
|
* Вспомогательный текст под инпутом.
|
|
62
61
|
*/
|
|
@@ -132,7 +131,7 @@ export interface IFSelectSearchDb<T> {
|
|
|
132
131
|
* @param {boolean} [fullWidth=false] - Если true — поле занимает всю ширину родителя.
|
|
133
132
|
* @param {React.FocusEventHandler<HTMLInputElement>} [onFocus] - Обработчик события focus.
|
|
134
133
|
* @param {React.FocusEventHandler<HTMLInputElement>} [onBlur] - Обработчик события blur.
|
|
135
|
-
* @param {string[]
|
|
134
|
+
* @param {string[]} [errText] - Массив текстовых ошибок для отображения под полем.
|
|
136
135
|
* @param {string} [helpText] - Вспомогательный текст под инпутом.
|
|
137
136
|
* @param {boolean} [required=false] - Определяет, является ли поле обязательным.
|
|
138
137
|
* @param {string} [defaultValue] - Начальное значение поля ввода.
|
|
@@ -43,9 +43,9 @@ export interface IFTextArea extends React.TextareaHTMLAttributes<HTMLTextAreaEle
|
|
|
43
43
|
fullWidth?: boolean;
|
|
44
44
|
/**
|
|
45
45
|
* Массив сообщений об ошибках, связанных с этим полем.
|
|
46
|
-
* @type {string[] |
|
|
46
|
+
* @type {string[] | undefined}
|
|
47
47
|
*/
|
|
48
|
-
errText?: string[]
|
|
48
|
+
errText?: string[];
|
|
49
49
|
/**
|
|
50
50
|
* Вспомогательный текст, отображается под текстовым полем.
|
|
51
51
|
* @type {string | undefined}
|
|
@@ -22,9 +22,9 @@ export interface IFTextField extends React.InputHTMLAttributes<HTMLInputElement>
|
|
|
22
22
|
fullWidth?: boolean;
|
|
23
23
|
/**
|
|
24
24
|
* Массив текстов ошибок, связанных с полем ввода.
|
|
25
|
-
* @type {string[] |
|
|
25
|
+
* @type {string[] | undefined}
|
|
26
26
|
*/
|
|
27
|
-
errText?: string[]
|
|
27
|
+
errText?: string[];
|
|
28
28
|
/**
|
|
29
29
|
* Вспомогательный текст под полем ввода.
|
|
30
30
|
* @type {string | undefined}
|
|
@@ -27,10 +27,9 @@ export interface IFSelect extends React.InputHTMLAttributes<HTMLSelectElement> {
|
|
|
27
27
|
*/
|
|
28
28
|
load?: boolean;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
* @type {string[] | string | undefined}
|
|
30
|
+
* Сообщения об ошибках, отображаются под полем.
|
|
32
31
|
*/
|
|
33
|
-
errText?: string[]
|
|
32
|
+
errText?: string[];
|
|
34
33
|
/**
|
|
35
34
|
* Вспомогательный текст, отображается под инпутом.
|
|
36
35
|
*/
|
package/package.json
CHANGED
|
@@ -1,81 +1,78 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "fui-material",
|
|
3
|
-
"version": "2.5.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"publishConfig": {
|
|
6
|
-
"access": "public",
|
|
7
|
-
"registry": "https://registry.npmjs.org/"
|
|
8
|
-
},
|
|
9
|
-
"author": "Allori",
|
|
10
|
-
"license": "ISC",
|
|
11
|
-
"private": false,
|
|
12
|
-
"scripts": {
|
|
13
|
-
"dev": "vite",
|
|
14
|
-
"build:types": "tsc --project tsconfig.build.json",
|
|
15
|
-
"build": "vite build && npm run build:types",
|
|
16
|
-
"build-publish": "vite build && npm run build:types && npm publish",
|
|
17
|
-
"lint": "eslint .",
|
|
18
|
-
"preview": "vite preview",
|
|
19
|
-
"storybook": "storybook dev -p 6006",
|
|
20
|
-
"deploy-storybook": "storybook build && gh-pages -d storybook-static --repo https://github.com/Allorion/fui-storybook.git",
|
|
21
|
-
"build-storybook": "storybook build"
|
|
22
|
-
},
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"allorion-exporting-html-to-docx": "1.4.1",
|
|
25
|
-
"allorion-exporting-html-to-xlsx": "1.8.6",
|
|
26
|
-
"axios": "^1.7.4",
|
|
27
|
-
"jszip": "^3.10.1"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@storybook/addon-
|
|
38
|
-
"@storybook/addon-
|
|
39
|
-
"@storybook/addon-
|
|
40
|
-
"@storybook/
|
|
41
|
-
"@storybook/
|
|
42
|
-
"@storybook/
|
|
43
|
-
"@storybook/
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"@types/
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"eslint": "^
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"plugin:storybook/recommended"
|
|
79
|
-
]
|
|
80
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "fui-material",
|
|
3
|
+
"version": "2.5.12",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public",
|
|
7
|
+
"registry": "https://registry.npmjs.org/"
|
|
8
|
+
},
|
|
9
|
+
"author": "Allori",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"private": false,
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "vite",
|
|
14
|
+
"build:types": "tsc --project tsconfig.build.json",
|
|
15
|
+
"build": "vite build && npm run build:types",
|
|
16
|
+
"build-publish": "vite build && npm run build:types && npm publish",
|
|
17
|
+
"lint": "eslint .",
|
|
18
|
+
"preview": "vite preview",
|
|
19
|
+
"storybook": "storybook dev -p 6006",
|
|
20
|
+
"deploy-storybook": "storybook build && gh-pages -d storybook-static --repo https://github.com/Allorion/fui-storybook.git",
|
|
21
|
+
"build-storybook": "storybook build"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"allorion-exporting-html-to-docx": "1.4.1",
|
|
25
|
+
"allorion-exporting-html-to-xlsx": "1.8.6",
|
|
26
|
+
"axios": "^1.7.4",
|
|
27
|
+
"jszip": "^3.10.1",
|
|
28
|
+
"react": "18.3.1",
|
|
29
|
+
"react-dom": "18.3.1"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@chromatic-com/storybook": "^3.2.6",
|
|
33
|
+
"@eslint/js": "^9.25.0",
|
|
34
|
+
"@rollup/plugin-image": "^3.0.3",
|
|
35
|
+
"@storybook/addon-docs": "8.6.12",
|
|
36
|
+
"@storybook/addon-essentials": "^8.6.12",
|
|
37
|
+
"@storybook/addon-interactions": "^8.6.12",
|
|
38
|
+
"@storybook/addon-onboarding": "^8.6.12",
|
|
39
|
+
"@storybook/addon-styling-webpack": "^1.0.1",
|
|
40
|
+
"@storybook/blocks": "^8.6.12",
|
|
41
|
+
"@storybook/react": "^8.6.12",
|
|
42
|
+
"@storybook/react-vite": "^8.6.12",
|
|
43
|
+
"@storybook/test": "^8.6.12",
|
|
44
|
+
"@types/node": "^22.4.1",
|
|
45
|
+
"@types/react": "^18.3.3",
|
|
46
|
+
"@types/react-dom": "^18.3.0",
|
|
47
|
+
"@vitejs/plugin-react": "^4.4.1",
|
|
48
|
+
"@vitest/browser": "^3.1.3",
|
|
49
|
+
"@vitest/coverage-v8": "^3.1.3",
|
|
50
|
+
"eslint": "^9.25.0",
|
|
51
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
52
|
+
"eslint-plugin-react-refresh": "^0.4.19",
|
|
53
|
+
"eslint-plugin-storybook": "^0.12.0",
|
|
54
|
+
"globals": "^16.0.0",
|
|
55
|
+
"gh-pages": "6.3.0",
|
|
56
|
+
"playwright": "^1.52.0",
|
|
57
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
58
|
+
"sass": "1.88.0",
|
|
59
|
+
"storybook": "^8.6.12",
|
|
60
|
+
"typescript": "~5.8.3",
|
|
61
|
+
"typescript-eslint": "^8.30.1",
|
|
62
|
+
"vite": "^6.3.5",
|
|
63
|
+
"vite-plugin-lib-inject-css": "^2.1.1",
|
|
64
|
+
"vitest": "^3.1.3"
|
|
65
|
+
},
|
|
66
|
+
"main": "dist/f-ui-kit.umd.js",
|
|
67
|
+
"module": "dist/f-ui-kit.es.js",
|
|
68
|
+
"types": "dist/types/index.d.ts",
|
|
69
|
+
"files": [
|
|
70
|
+
"dist",
|
|
71
|
+
"dist/types"
|
|
72
|
+
],
|
|
73
|
+
"eslintConfig": {
|
|
74
|
+
"extends": [
|
|
75
|
+
"plugin:storybook/recommended"
|
|
76
|
+
]
|
|
77
|
+
}
|
|
81
78
|
}
|