@ozen-ui/kit 0.7.0 → 0.9.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/FieldControl/package.json +5 -0
- package/FieldInput/package.json +5 -0
- package/Fieldset/package.json +5 -0
- package/__inner__/cjs/components/Backdrop/Backdrop.d.ts +2 -2
- package/__inner__/cjs/components/Breadcrumbs/types.d.ts +2 -2
- package/__inner__/cjs/components/DataList/DataList.d.ts +1 -1
- package/__inner__/cjs/components/DataList/DataListProvider.d.ts +5 -5
- package/__inner__/cjs/components/FieldControl/FieldControl.css +135 -0
- package/__inner__/cjs/components/FieldControl/FieldControl.d.ts +13 -0
- package/__inner__/cjs/components/FieldControl/FieldControl.js +82 -0
- package/__inner__/cjs/components/FieldControl/FieldControlContext.d.ts +15 -0
- package/__inner__/cjs/components/FieldControl/FieldControlContext.js +6 -0
- package/__inner__/cjs/components/FieldControl/index.d.ts +2 -0
- package/__inner__/cjs/components/FieldControl/index.js +5 -0
- package/__inner__/cjs/components/FieldHint/FieldHint.d.ts +6 -9
- package/__inner__/cjs/components/FieldHint/FieldHint.js +24 -4
- package/__inner__/cjs/components/FieldIcon/FieldIcon.css +1 -21
- package/__inner__/cjs/components/FieldIcon/FieldIcon.d.ts +8 -12
- package/__inner__/cjs/components/FieldIcon/FieldIcon.js +15 -4
- package/__inner__/cjs/components/FieldInput/FieldInput.d.ts +11 -0
- package/__inner__/cjs/components/FieldInput/FieldInput.js +54 -0
- package/__inner__/cjs/components/FieldInput/index.d.ts +1 -0
- package/__inner__/cjs/components/FieldInput/index.js +4 -0
- package/__inner__/cjs/components/FieldLabel/FieldLabel.d.ts +7 -5
- package/__inner__/cjs/components/FieldLabel/FieldLabel.js +39 -10
- package/__inner__/cjs/components/Fieldset/Fieldset.css +13 -0
- package/__inner__/cjs/components/Fieldset/Fieldset.d.ts +10 -0
- package/__inner__/cjs/components/Fieldset/Fieldset.js +15 -0
- package/__inner__/cjs/components/Fieldset/index.d.ts +1 -0
- package/__inner__/cjs/components/Fieldset/index.js +4 -0
- package/__inner__/cjs/components/FilePicker/FilePicker.css +48 -59
- package/__inner__/cjs/components/FilePicker/FilePicker.js +2 -1
- package/__inner__/cjs/components/Input/Input.css +9 -121
- package/__inner__/cjs/components/Input/Input.d.ts +1 -62
- package/__inner__/cjs/components/Input/Input.js +32 -53
- package/__inner__/cjs/components/Input/constants.d.ts +1 -0
- package/__inner__/cjs/components/Input/constants.js +4 -0
- package/__inner__/cjs/components/Input/index.d.ts +1 -0
- package/__inner__/cjs/components/Input/index.js +1 -0
- package/__inner__/cjs/components/Input/types.d.ts +71 -0
- package/__inner__/cjs/components/Input/types.js +13 -0
- package/__inner__/cjs/components/InputNumber/InputNumber.css +60 -74
- package/__inner__/cjs/components/InputNumber/InputNumber.js +2 -1
- package/__inner__/cjs/components/InputNumber/utils.d.ts +2 -2
- package/__inner__/cjs/components/Link/Link.d.ts +1 -1
- package/__inner__/cjs/components/List/components/ListItem/ListItem.d.ts +1 -2
- package/__inner__/cjs/components/List/components/ListItemButton/ListItemButton.d.ts +1 -2
- package/__inner__/cjs/components/List/types.d.ts +3 -3
- package/__inner__/cjs/components/Menu/components/MenuItem/MenuItem.d.ts +1 -1
- package/__inner__/cjs/components/Menu/components/MenuList/MenuList.d.ts +1 -1
- package/__inner__/cjs/components/Modal/Modal.css +4 -8
- package/__inner__/cjs/components/Modal/Modal.d.ts +18 -2
- package/__inner__/cjs/components/Modal/Modal.js +13 -21
- package/__inner__/cjs/components/Modal/components/ModalConsumer.d.ts +5 -0
- package/__inner__/cjs/components/Modal/components/ModalConsumer.js +15 -0
- package/__inner__/cjs/components/Modal/components/index.d.ts +1 -0
- package/__inner__/cjs/components/Modal/components/index.js +4 -0
- package/__inner__/cjs/components/Pagination/helpers/createPaginationRange/createPaginationRange.d.ts +1 -1
- package/__inner__/cjs/components/Pagination/types.d.ts +5 -5
- package/__inner__/cjs/components/Popover/types.d.ts +4 -5
- package/__inner__/cjs/components/ProgressBar/ProgressBar.d.ts +2 -2
- package/__inner__/cjs/components/Select/Select.css +5 -16
- package/__inner__/cjs/components/Select/components/SelectInput/SelectInput.js +2 -1
- package/__inner__/cjs/components/Select/types.d.ts +3 -4
- package/__inner__/cjs/components/Slider/types.d.ts +1 -1
- package/__inner__/cjs/components/Snackbar/types.d.ts +1 -1
- package/__inner__/cjs/components/Tag/components/RemoveButton/RemoveButton.d.ts +1 -1
- package/__inner__/cjs/components/Textarea/Textarea.css +3 -107
- package/__inner__/cjs/components/Textarea/Textarea.d.ts +1 -59
- package/__inner__/cjs/components/Textarea/Textarea.js +8 -62
- package/__inner__/cjs/components/Textarea/components/TextareaConsumer.d.ts +3 -0
- package/__inner__/cjs/components/Textarea/components/TextareaConsumer.js +36 -0
- package/__inner__/cjs/components/Textarea/components/TextareaCounter.d.ts +7 -0
- package/__inner__/cjs/components/Textarea/components/TextareaCounter.js +25 -0
- package/__inner__/cjs/components/Textarea/components/index.d.ts +2 -0
- package/__inner__/cjs/components/Textarea/components/index.js +5 -0
- package/__inner__/cjs/components/Textarea/constants.d.ts +1 -0
- package/__inner__/cjs/components/Textarea/constants.js +4 -0
- package/__inner__/cjs/components/Textarea/index.d.ts +1 -0
- package/__inner__/cjs/components/Textarea/index.js +1 -0
- package/__inner__/cjs/components/Textarea/types.d.ts +69 -0
- package/__inner__/cjs/components/Textarea/types.js +4 -0
- package/__inner__/cjs/components/ThemeProvider/ThemeProvider.d.ts +2 -1
- package/__inner__/cjs/components/ThemeProvider/types.d.ts +2 -0
- package/__inner__/cjs/components/Tooltip/types.d.ts +1 -1
- package/__inner__/cjs/hooks/useLockBodyScroll/index.d.ts +1 -0
- package/__inner__/cjs/hooks/useLockBodyScroll/index.js +4 -0
- package/__inner__/cjs/hooks/useLockBodyScroll/useLockBodyScroll.d.ts +1 -0
- package/__inner__/cjs/hooks/useLockBodyScroll/useLockBodyScroll.js +18 -0
- package/__inner__/cjs/hooks/useMultiRef/useMultiRef.d.ts +2 -3
- package/__inner__/cjs/types/ResponsiveValue.d.ts +1 -1
- package/__inner__/cjs/utils/isKey.d.ts +2 -2
- package/__inner__/cjs/utils/polymorphicComponentWithRef.d.ts +0 -1
- package/__inner__/esm/components/Backdrop/Backdrop.d.ts +2 -2
- package/__inner__/esm/components/Backdrop/Backdrop.js +1 -1
- package/__inner__/esm/components/Breadcrumbs/types.d.ts +2 -2
- package/__inner__/esm/components/DataList/DataList.d.ts +1 -1
- package/__inner__/esm/components/DataList/DataListProvider.d.ts +5 -5
- package/__inner__/esm/components/FieldControl/FieldControl.css +135 -0
- package/__inner__/esm/components/FieldControl/FieldControl.d.ts +13 -0
- package/__inner__/esm/components/FieldControl/FieldControl.js +79 -0
- package/__inner__/esm/components/FieldControl/FieldControlContext.d.ts +15 -0
- package/__inner__/esm/components/FieldControl/FieldControlContext.js +2 -0
- package/__inner__/esm/components/FieldControl/index.d.ts +2 -0
- package/__inner__/esm/components/FieldControl/index.js +2 -0
- package/__inner__/esm/components/FieldHint/FieldHint.d.ts +6 -9
- package/__inner__/esm/components/FieldHint/FieldHint.js +25 -5
- package/__inner__/esm/components/FieldIcon/FieldIcon.css +1 -21
- package/__inner__/esm/components/FieldIcon/FieldIcon.d.ts +8 -12
- package/__inner__/esm/components/FieldIcon/FieldIcon.js +16 -5
- package/__inner__/esm/components/FieldInput/FieldInput.d.ts +11 -0
- package/__inner__/esm/components/FieldInput/FieldInput.js +51 -0
- package/__inner__/esm/components/FieldInput/index.d.ts +1 -0
- package/__inner__/esm/components/FieldInput/index.js +1 -0
- package/__inner__/esm/components/FieldLabel/FieldLabel.d.ts +7 -5
- package/__inner__/esm/components/FieldLabel/FieldLabel.js +38 -8
- package/__inner__/esm/components/Fieldset/Fieldset.css +13 -0
- package/__inner__/esm/components/Fieldset/Fieldset.d.ts +10 -0
- package/__inner__/esm/components/Fieldset/Fieldset.js +12 -0
- package/__inner__/esm/components/Fieldset/index.d.ts +1 -0
- package/__inner__/esm/components/Fieldset/index.js +1 -0
- package/__inner__/esm/components/FilePicker/FilePicker.css +48 -59
- package/__inner__/esm/components/FilePicker/FilePicker.js +2 -1
- package/__inner__/esm/components/Input/Input.css +9 -121
- package/__inner__/esm/components/Input/Input.d.ts +1 -62
- package/__inner__/esm/components/Input/Input.js +33 -54
- package/__inner__/esm/components/Input/constants.d.ts +1 -0
- package/__inner__/esm/components/Input/constants.js +1 -0
- package/__inner__/esm/components/Input/index.d.ts +1 -0
- package/__inner__/esm/components/Input/index.js +1 -0
- package/__inner__/esm/components/Input/types.d.ts +71 -0
- package/__inner__/esm/components/Input/types.js +10 -0
- package/__inner__/esm/components/InputNumber/InputNumber.css +60 -74
- package/__inner__/esm/components/InputNumber/InputNumber.js +2 -1
- package/__inner__/esm/components/InputNumber/utils.d.ts +2 -2
- package/__inner__/esm/components/Link/Link.d.ts +1 -1
- package/__inner__/esm/components/List/components/ListItem/ListItem.d.ts +1 -2
- package/__inner__/esm/components/List/components/ListItemButton/ListItemButton.d.ts +1 -2
- package/__inner__/esm/components/List/types.d.ts +3 -3
- package/__inner__/esm/components/Menu/components/MenuItem/MenuItem.d.ts +1 -1
- package/__inner__/esm/components/Menu/components/MenuList/MenuList.d.ts +1 -1
- package/__inner__/esm/components/Modal/Modal.css +4 -8
- package/__inner__/esm/components/Modal/Modal.d.ts +18 -2
- package/__inner__/esm/components/Modal/Modal.js +13 -21
- package/__inner__/esm/components/Modal/components/ModalConsumer.d.ts +5 -0
- package/__inner__/esm/components/Modal/components/ModalConsumer.js +12 -0
- package/__inner__/esm/components/Modal/components/index.d.ts +1 -0
- package/__inner__/esm/components/Modal/components/index.js +1 -0
- package/__inner__/esm/components/Pagination/helpers/createPaginationRange/createPaginationRange.d.ts +1 -1
- package/__inner__/esm/components/Pagination/types.d.ts +5 -5
- package/__inner__/esm/components/Popover/types.d.ts +4 -5
- package/__inner__/esm/components/ProgressBar/ProgressBar.d.ts +2 -2
- package/__inner__/esm/components/ProgressBar/ProgressBar.js +1 -1
- package/__inner__/esm/components/Select/Select.css +5 -16
- package/__inner__/esm/components/Select/components/SelectInput/SelectInput.js +2 -1
- package/__inner__/esm/components/Select/types.d.ts +3 -4
- package/__inner__/esm/components/Slider/types.d.ts +1 -1
- package/__inner__/esm/components/Snackbar/types.d.ts +1 -1
- package/__inner__/esm/components/Tag/components/RemoveButton/RemoveButton.d.ts +1 -1
- package/__inner__/esm/components/Textarea/Textarea.css +3 -107
- package/__inner__/esm/components/Textarea/Textarea.d.ts +1 -59
- package/__inner__/esm/components/Textarea/Textarea.js +9 -63
- package/__inner__/esm/components/Textarea/components/TextareaConsumer.d.ts +3 -0
- package/__inner__/esm/components/Textarea/components/TextareaConsumer.js +32 -0
- package/__inner__/esm/components/Textarea/components/TextareaCounter.d.ts +7 -0
- package/__inner__/esm/components/Textarea/components/TextareaCounter.js +21 -0
- package/__inner__/esm/components/Textarea/components/index.d.ts +2 -0
- package/__inner__/esm/components/Textarea/components/index.js +2 -0
- package/__inner__/esm/components/Textarea/constants.d.ts +1 -0
- package/__inner__/esm/components/Textarea/constants.js +1 -0
- package/__inner__/esm/components/Textarea/index.d.ts +1 -0
- package/__inner__/esm/components/Textarea/index.js +1 -0
- package/__inner__/esm/components/Textarea/types.d.ts +69 -0
- package/__inner__/esm/components/Textarea/types.js +1 -0
- package/__inner__/esm/components/ThemeProvider/ThemeProvider.d.ts +2 -1
- package/__inner__/esm/components/ThemeProvider/types.d.ts +2 -0
- package/__inner__/esm/components/Tooltip/Tooltip.js +1 -1
- package/__inner__/esm/components/Tooltip/types.d.ts +1 -1
- package/__inner__/esm/hooks/useLockBodyScroll/index.d.ts +1 -0
- package/__inner__/esm/hooks/useLockBodyScroll/index.js +1 -0
- package/__inner__/esm/hooks/useLockBodyScroll/useLockBodyScroll.d.ts +1 -0
- package/__inner__/esm/hooks/useLockBodyScroll/useLockBodyScroll.js +14 -0
- package/__inner__/esm/hooks/useMultiRef/useMultiRef.d.ts +2 -3
- package/__inner__/esm/types/ResponsiveValue.d.ts +1 -1
- package/__inner__/esm/utils/isKey.d.ts +2 -2
- package/__inner__/esm/utils/polymorphicComponentWithRef.d.ts +0 -1
- package/package.json +1 -1
- package/useLockBodyScroll/package.json +5 -0
|
@@ -1,71 +1,50 @@
|
|
|
1
|
-
import { __assign,
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
2
|
import './Input.css';
|
|
3
|
-
import React, {
|
|
3
|
+
import React, { forwardRef, useRef } from 'react';
|
|
4
|
+
import { useEventListener } from '../../hooks/useEventListener';
|
|
4
5
|
import { useMultiRef } from '../../hooks/useMultiRef';
|
|
5
6
|
import { useThemeProps } from '../../hooks/useThemeProps';
|
|
6
7
|
import { cn } from '../../utils/classname';
|
|
8
|
+
import { FieldControl } from '../FieldControl';
|
|
7
9
|
import { FieldHint } from '../FieldHint';
|
|
8
10
|
import { FieldIcon } from '../FieldIcon';
|
|
11
|
+
import { FieldInput } from '../FieldInput';
|
|
9
12
|
import { FieldLabel } from '../FieldLabel';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
'date',
|
|
13
|
-
'datetime-local',
|
|
14
|
-
'time',
|
|
15
|
-
'text',
|
|
16
|
-
'tel',
|
|
17
|
-
'password',
|
|
18
|
-
'email',
|
|
19
|
-
];
|
|
13
|
+
import { Fieldset } from '../Fieldset';
|
|
14
|
+
import { INPUT_DEFAULT_SIZE } from './constants';
|
|
20
15
|
export var cnInput = cn('Input');
|
|
21
16
|
export var Input = forwardRef(function (inProps, ref) {
|
|
22
17
|
var props = useThemeProps({
|
|
23
18
|
props: inProps,
|
|
24
19
|
name: 'Input'
|
|
25
20
|
});
|
|
26
|
-
var _a = props.size, size = _a === void 0 ?
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
21
|
+
var _a = props.size, size = _a === void 0 ? INPUT_DEFAULT_SIZE : _a, label = props.label, error = props.error, autoFocus = props.autoFocus, placeholder = props.placeholder, id = props.id, name = props.name, type = props.type, renderLeft = props.renderLeft, renderRight = props.renderRight, inputRef = props.inputRef, fullWidth = props.fullWidth, disabled = props.disabled, hint = props.hint, required = props.required, className = props.className, inputProps = props.inputProps, value = props.value, defaultValue = props.defaultValue, onChange = props.onChange, labelProps = props.labelProps, labelRef = props.labelRef, other = __rest(props, ["size", "label", "error", "autoFocus", "placeholder", "id", "name", "type", "renderLeft", "renderRight", "inputRef", "fullWidth", "disabled", "hint", "required", "className", "inputProps", "value", "defaultValue", "onChange", "labelProps", "labelRef"]);
|
|
22
|
+
var labelInnerRef = useRef(null);
|
|
23
|
+
var fieldInnerRef = useRef(null);
|
|
24
|
+
/* Хук useEventListener необходим для того, чтобы при нажатии на кнопку мыши
|
|
25
|
+
* внутри HTML-элемента label - фокус не переходил на body или на цель нажатия кнопки мыши.
|
|
26
|
+
* Если же нажатие кнопки происходит на самом HTML-элементе input, то мы ничего не делаем,
|
|
27
|
+
* так как в противном случае мы сломаем возможность выделять текст для копирования.
|
|
28
|
+
*/
|
|
29
|
+
useEventListener({
|
|
30
|
+
element: labelInnerRef,
|
|
31
|
+
eventName: 'mousedown',
|
|
32
|
+
handler: function (e) {
|
|
33
|
+
var _a;
|
|
34
|
+
if (e.target !== fieldInnerRef.current) {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
(_a = fieldInnerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
37
|
+
}
|
|
40
38
|
}
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
setFocused(true);
|
|
46
|
-
(_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
|
|
47
|
-
}, [inputProps === null || inputProps === void 0 ? void 0 : inputProps.onFocus]);
|
|
48
|
-
var handleBlur = useCallback(function (e) {
|
|
49
|
-
var _a;
|
|
50
|
-
setFocused(false);
|
|
51
|
-
(_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
|
|
52
|
-
}, [inputProps === null || inputProps === void 0 ? void 0 : inputProps.onBlur]);
|
|
53
|
-
return (React.createElement("div", __assign({}, other, { ref: ref, className: cnInput({
|
|
54
|
-
fullWidth: fullWidth,
|
|
55
|
-
size: size,
|
|
56
|
-
error: error,
|
|
57
|
-
disabled: disabled,
|
|
58
|
-
required: required,
|
|
59
|
-
hasLabel: !!label,
|
|
60
|
-
focused: focused
|
|
61
|
-
}, [className]) }),
|
|
62
|
-
React.createElement("label", { className: cnInput('Body') },
|
|
63
|
-
React.createElement(FieldIcon, { className: cnInput('RenderLeft'), icon: renderLeft, size: size }),
|
|
39
|
+
});
|
|
40
|
+
return (React.createElement(FieldControl, __assign({ size: size, error: error, disabled: disabled, required: required, fullWidth: fullWidth }, other, { ref: ref, className: cnInput({}, [className]) }),
|
|
41
|
+
React.createElement("label", { className: cnInput('Body'), ref: labelInnerRef },
|
|
42
|
+
React.createElement(FieldIcon, { icon: renderLeft }),
|
|
64
43
|
React.createElement("div", { className: cnInput('FieldContainer') },
|
|
65
|
-
|
|
66
|
-
React.createElement(
|
|
67
|
-
React.createElement(FieldIcon, {
|
|
68
|
-
React.createElement(
|
|
69
|
-
React.createElement(FieldHint,
|
|
44
|
+
React.createElement(FieldLabel, __assign({}, labelProps, { ref: labelRef || (labelProps === null || labelProps === void 0 ? void 0 : labelProps.ref), className: labelProps === null || labelProps === void 0 ? void 0 : labelProps.className }), label),
|
|
45
|
+
React.createElement(FieldInput, __assign({ id: id, name: name, autoFocus: autoFocus, value: value, type: type, defaultValue: defaultValue, placeholder: placeholder, onChange: onChange }, inputProps, { className: cnInput('Field', [inputProps === null || inputProps === void 0 ? void 0 : inputProps.className]), ref: useMultiRef([inputRef || (inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref), fieldInnerRef]) }))),
|
|
46
|
+
React.createElement(FieldIcon, { icon: renderRight }),
|
|
47
|
+
React.createElement(Fieldset, null)),
|
|
48
|
+
React.createElement(FieldHint, null, hint)));
|
|
70
49
|
});
|
|
71
50
|
Input.displayName = 'Input';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const INPUT_DEFAULT_SIZE = "m";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export var INPUT_DEFAULT_SIZE = 'm';
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ComponentRef, Ref } from 'react';
|
|
2
|
+
import type { FormElementSizeVariant } from '../../types/FormElementSizeVariant';
|
|
3
|
+
import type { FIELD_CONTROL_DEFAULT_TAG } from '../FieldControl';
|
|
4
|
+
import type { FieldIconProps } from '../FieldIcon';
|
|
5
|
+
import type { FieldLabelProps } from '../FieldLabel';
|
|
6
|
+
export declare const inputTypeVariant: readonly ["number", "date", "datetime-local", "time", "text", "tel", "password", "email"];
|
|
7
|
+
export type InputTypeVariant = (typeof inputTypeVariant)[number];
|
|
8
|
+
export type InputSizeVariant = FormElementSizeVariant;
|
|
9
|
+
type InputPropsDeprecated = {
|
|
10
|
+
/**
|
|
11
|
+
* deprecated
|
|
12
|
+
* Ссылка на FieldLabel
|
|
13
|
+
* */
|
|
14
|
+
labelRef?: FieldLabelProps['ref'];
|
|
15
|
+
/** deprecated
|
|
16
|
+
* Ссылка на элемент input
|
|
17
|
+
* */
|
|
18
|
+
inputRef?: Ref<HTMLInputElement>;
|
|
19
|
+
};
|
|
20
|
+
type InputElement = ComponentPropsWithRef<'input'>;
|
|
21
|
+
export type InputProps = Omit<ComponentPropsWithRef<typeof FIELD_CONTROL_DEFAULT_TAG>, 'size' | 'onChange'> & {
|
|
22
|
+
/** Атрибут id для элемента input */
|
|
23
|
+
id?: string;
|
|
24
|
+
/** Атрибут name для элемента input */
|
|
25
|
+
name?: string;
|
|
26
|
+
/** Лейбл */
|
|
27
|
+
label?: string;
|
|
28
|
+
/** Размер компонента */
|
|
29
|
+
size?: InputSizeVariant;
|
|
30
|
+
/** Подсказка. Отображается, когда вариант не выбран */
|
|
31
|
+
placeholder?: string;
|
|
32
|
+
/** Если {true} устанавливает автофокус */
|
|
33
|
+
autoFocus?: boolean;
|
|
34
|
+
/** Если {true} переводит поле в состояние ошибки */
|
|
35
|
+
error?: boolean;
|
|
36
|
+
/** Если {true} растягивает поле на всю ширину */
|
|
37
|
+
fullWidth?: boolean;
|
|
38
|
+
/** Дополнительное описание к полю */
|
|
39
|
+
hint?: string | null | undefined;
|
|
40
|
+
/** Атрибут type для элемента input */
|
|
41
|
+
type?: InputTypeVariant;
|
|
42
|
+
/** Если {true} делает элемент неактивным */
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
/** Если {true} делает элемент обязательным к заполнению */
|
|
45
|
+
required?: boolean;
|
|
46
|
+
/** Минимальное количество символов разрешенных для ввода */
|
|
47
|
+
minLength?: InputElement['minLength'];
|
|
48
|
+
/** Максимальное количество символов разрешенных для ввода */
|
|
49
|
+
maxLength?: InputElement['maxLength'];
|
|
50
|
+
/** Текст или иконка слева */
|
|
51
|
+
renderLeft?: FieldIconProps['icon'];
|
|
52
|
+
/** Текст или иконка справа */
|
|
53
|
+
renderRight?: FieldIconProps['icon'];
|
|
54
|
+
/** Выбранное значение */
|
|
55
|
+
value?: InputElement['value'];
|
|
56
|
+
/** Значение по умолчанию (неконтролируемый компонент) */
|
|
57
|
+
defaultValue?: InputElement['defaultValue'];
|
|
58
|
+
/** Обработчик события на изменение значения поля */
|
|
59
|
+
onChange?: InputElement['onChange'];
|
|
60
|
+
/** Свойства элемента input */
|
|
61
|
+
inputProps?: InputElement & {
|
|
62
|
+
'data-testid'?: string;
|
|
63
|
+
};
|
|
64
|
+
/** Свойства FieldLabel */
|
|
65
|
+
labelProps?: FieldLabelProps;
|
|
66
|
+
/** Ссылка на корневой DOM-элемент компонента */
|
|
67
|
+
ref?: ComponentRef<typeof FIELD_CONTROL_DEFAULT_TAG>;
|
|
68
|
+
/** data-атрибут для тестирования */
|
|
69
|
+
'data-testid'?: string;
|
|
70
|
+
} & InputPropsDeprecated;
|
|
71
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/* stylelint-disable */
|
|
2
2
|
.InputNumber {
|
|
3
|
-
--
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
3
|
+
--textfield-color: var(--color-content-primary);
|
|
4
|
+
--textfield-background-color: var(--color-background-primary);
|
|
5
|
+
--textfield-border-width: var(--border-width-s);
|
|
6
|
+
--textfield-border-color: var(--color-border-main);
|
|
7
|
+
font: var(--textfield-input-font);
|
|
7
8
|
cursor: text;
|
|
8
9
|
display: inline-flex;
|
|
9
10
|
vertical-align: top;
|
|
@@ -12,31 +13,17 @@
|
|
|
12
13
|
.InputNumber > * {
|
|
13
14
|
cursor: text;
|
|
14
15
|
}
|
|
15
|
-
.InputNumber-Fieldset {
|
|
16
|
-
position: absolute;
|
|
17
|
-
inset-block-end: 0;
|
|
18
|
-
inset-inline-end: 0;
|
|
19
|
-
inset-block-start: 0;
|
|
20
|
-
inset-inline-start: 0;
|
|
21
|
-
margin: 0;
|
|
22
|
-
padding: 0;
|
|
23
|
-
pointer-events: none;
|
|
24
|
-
border-radius: var(--border-radius-xs);
|
|
25
|
-
border: var(--number-input-border-width) solid
|
|
26
|
-
var(--number-input-border-color);
|
|
27
|
-
transition: border var(--transition-default);
|
|
28
|
-
}
|
|
29
16
|
.InputNumber-Body {
|
|
30
17
|
position: relative;
|
|
31
18
|
display: flex;
|
|
32
|
-
-moz-column-gap: var(--
|
|
33
|
-
column-gap: var(--
|
|
19
|
+
-moz-column-gap: var(--textfield-input-gap);
|
|
20
|
+
column-gap: var(--textfield-input-gap);
|
|
34
21
|
align-items: center;
|
|
35
22
|
box-sizing: border-box;
|
|
36
|
-
padding: 0 4px 0 var(--
|
|
37
|
-
background-color: var(--
|
|
23
|
+
padding: 0 4px 0 var(--textfield-gutter-x);
|
|
24
|
+
background-color: var(--textfield-background-color);
|
|
38
25
|
transition: background-color var(--transition-slow);
|
|
39
|
-
color: var(--
|
|
26
|
+
color: var(--textfield-color);
|
|
40
27
|
border-radius: var(--border-radius-xs);
|
|
41
28
|
}
|
|
42
29
|
.InputNumber-FieldContainer {
|
|
@@ -53,10 +40,9 @@
|
|
|
53
40
|
inline-size: 100%;
|
|
54
41
|
padding: 0;
|
|
55
42
|
background: none;
|
|
56
|
-
color: var(--
|
|
43
|
+
color: var(--textfield-color);
|
|
57
44
|
box-sizing: border-box;
|
|
58
|
-
block-size: var(--
|
|
59
|
-
font: var(--number-input-input-font);
|
|
45
|
+
block-size: var(--textfield-input-height);
|
|
60
46
|
}
|
|
61
47
|
.InputNumber-Field::placeholder {
|
|
62
48
|
opacity: 1;
|
|
@@ -65,7 +51,7 @@
|
|
|
65
51
|
.InputNumber-Field:-webkit-autofill,
|
|
66
52
|
.InputNumber-Field:-webkit-autofill:hover,
|
|
67
53
|
.InputNumber-Field:-webkit-autofill:focus {
|
|
68
|
-
box-shadow: 0 0 0 1000px var(--
|
|
54
|
+
box-shadow: 0 0 0 1000px var(--textfield-background-color) inset !important;
|
|
69
55
|
background-color: transparent !important;
|
|
70
56
|
-webkit-text-fill-color: var(--color-content-info-dark);
|
|
71
57
|
}
|
|
@@ -80,59 +66,59 @@
|
|
|
80
66
|
flex-direction: column;
|
|
81
67
|
}
|
|
82
68
|
.InputNumber_size_2xs {
|
|
83
|
-
--
|
|
84
|
-
--
|
|
85
|
-
--
|
|
86
|
-
--
|
|
87
|
-
--
|
|
88
|
-
--
|
|
89
|
-
--
|
|
69
|
+
--textfield-gutter-x: 12px;
|
|
70
|
+
--textfield-input-height: 40px;
|
|
71
|
+
--textfield-input-padding: 4px 0 4px;
|
|
72
|
+
--textfield-input-font: var(--typography-text-2xs-font);
|
|
73
|
+
--textfield-input-gap: var(--space-s);
|
|
74
|
+
--textfield-button-width: 24px;
|
|
75
|
+
--textfield-button-height: 16px;
|
|
90
76
|
}
|
|
91
77
|
.InputNumber_size_2xs .FieldLabel_size_2xs {
|
|
92
78
|
--field-label-top: 12px;
|
|
93
79
|
}
|
|
94
80
|
.InputNumber_size_xs {
|
|
95
|
-
--
|
|
96
|
-
--
|
|
97
|
-
--
|
|
98
|
-
--
|
|
99
|
-
--
|
|
100
|
-
--
|
|
101
|
-
--
|
|
81
|
+
--textfield-gutter-x: 12px;
|
|
82
|
+
--textfield-input-height: 40px;
|
|
83
|
+
--textfield-input-font: var(--typography-text-xs-font);
|
|
84
|
+
--textfield-input-padding: 19px 0 4px;
|
|
85
|
+
--textfield-input-gap: var(--space-s);
|
|
86
|
+
--textfield-button-width: 28px;
|
|
87
|
+
--textfield-button-height: 16px;
|
|
102
88
|
}
|
|
103
89
|
.InputNumber_size_s {
|
|
104
|
-
--
|
|
105
|
-
--
|
|
106
|
-
--
|
|
107
|
-
--
|
|
108
|
-
--
|
|
109
|
-
--
|
|
110
|
-
--
|
|
90
|
+
--textfield-gutter-x: 16px;
|
|
91
|
+
--textfield-input-height: 48px;
|
|
92
|
+
--textfield-input-font: var(--typography-text-s-font);
|
|
93
|
+
--textfield-input-padding: 21px 0 6px;
|
|
94
|
+
--textfield-input-gap: var(--space-m);
|
|
95
|
+
--textfield-button-width: 32px;
|
|
96
|
+
--textfield-button-height: 20px;
|
|
111
97
|
}
|
|
112
98
|
.InputNumber_size_m {
|
|
113
|
-
--
|
|
114
|
-
--
|
|
115
|
-
--
|
|
116
|
-
--
|
|
117
|
-
--
|
|
118
|
-
--
|
|
119
|
-
--
|
|
99
|
+
--textfield-gutter-x: 20px;
|
|
100
|
+
--textfield-input-height: 56px;
|
|
101
|
+
--textfield-input-font: var(--typography-text-m-font);
|
|
102
|
+
--textfield-input-padding: 24px 0 6px;
|
|
103
|
+
--textfield-input-gap: var(--space-m);
|
|
104
|
+
--textfield-button-width: 40px;
|
|
105
|
+
--textfield-button-height: 24px;
|
|
120
106
|
}
|
|
121
107
|
.InputNumber_size_l {
|
|
122
|
-
--
|
|
123
|
-
--
|
|
124
|
-
--
|
|
125
|
-
--
|
|
126
|
-
--
|
|
127
|
-
--
|
|
128
|
-
--
|
|
108
|
+
--textfield-gutter-x: 24px;
|
|
109
|
+
--textfield-input-height: 64px;
|
|
110
|
+
--textfield-input-font: var(--typography-text-l-font);
|
|
111
|
+
--textfield-input-padding: 26px 0 6px;
|
|
112
|
+
--textfield-input-gap: var(--space-l);
|
|
113
|
+
--textfield-button-width: 48px;
|
|
114
|
+
--textfield-button-height: 28px;
|
|
129
115
|
}
|
|
130
116
|
.InputNumber_fullWidth {
|
|
131
117
|
inline-size: 100%;
|
|
132
118
|
}
|
|
133
119
|
.InputNumber_hasLabel .InputNumber-Field {
|
|
134
|
-
padding: var(--
|
|
135
|
-
font: var(--
|
|
120
|
+
padding: var(--textfield-input-padding);
|
|
121
|
+
font: var(--textfield-input-font);
|
|
136
122
|
}
|
|
137
123
|
.InputNumber_hasLabel .InputNumber-Field::placeholder {
|
|
138
124
|
opacity: 0;
|
|
@@ -141,31 +127,31 @@
|
|
|
141
127
|
opacity: 1;
|
|
142
128
|
}
|
|
143
129
|
.InputNumber:hover {
|
|
144
|
-
--
|
|
130
|
+
--textfield-border-color: var(--color-border-main-hover);
|
|
145
131
|
}
|
|
146
132
|
.InputNumber_focused,
|
|
147
133
|
.InputNumber_focused:hover {
|
|
148
|
-
--
|
|
149
|
-
--
|
|
150
|
-
--
|
|
134
|
+
--textfield-border-width: var(--border-width-m);
|
|
135
|
+
--textfield-background-color: var(--color-background-main);
|
|
136
|
+
--textfield-border-color: var(--color-border-action);
|
|
151
137
|
}
|
|
152
138
|
.InputNumber_error,
|
|
153
139
|
.InputNumber_error.InputNumber:hover,
|
|
154
140
|
.InputNumber_error.InputNumber_focused,
|
|
155
141
|
.InputNumber_error.InputNumber_focused:hover {
|
|
156
|
-
--
|
|
142
|
+
--textfield-border-color: var(--color-border-error);
|
|
157
143
|
}
|
|
158
144
|
.InputNumber_disabled {
|
|
159
|
-
--
|
|
160
|
-
--
|
|
161
|
-
--
|
|
145
|
+
--textfield-border-color: var(--color-border-disabled);
|
|
146
|
+
--textfield-background-color: var(--color-background-disabled);
|
|
147
|
+
--textfield-color: var(--color-content-secondary);
|
|
162
148
|
pointer-events: none;
|
|
163
149
|
cursor: default;
|
|
164
150
|
}
|
|
165
151
|
.IconButton.InputNumber-Increment,
|
|
166
152
|
.IconButton.InputNumber-Decrement {
|
|
167
|
-
inline-size: var(--
|
|
168
|
-
block-size: var(--
|
|
153
|
+
inline-size: var(--textfield-button-width);
|
|
154
|
+
block-size: var(--textfield-button-height);
|
|
169
155
|
}
|
|
170
156
|
.IconButton.InputNumber-Increment *, .IconButton.InputNumber-Decrement * {
|
|
171
157
|
pointer-events: none;
|
|
@@ -11,6 +11,7 @@ import { cn } from '../../utils/classname';
|
|
|
11
11
|
import { FieldHint } from '../FieldHint';
|
|
12
12
|
import { FieldIcon } from '../FieldIcon';
|
|
13
13
|
import { FieldLabel } from '../FieldLabel';
|
|
14
|
+
import { Fieldset } from '../Fieldset';
|
|
14
15
|
import { IconButton } from '../IconButton';
|
|
15
16
|
import { INPUT_NUMBER_DEFAULT_STEP, INPUT_NUMBER_DEFAULT_SIZE, INPUT_NUMBER_DEFAULT_AUTO_FOCUS, INPUT_NUMBER_DEFAULT_ERROR, INPUT_NUMBER_DEFAULT_REQUIRED, INPUT_NUMBER_DEFAULT_DISABLED, INPUT_NUMBER_DEFAULT_FULL_WIDTH, INPUT_NUMBER_DEFAULT_VALUE, INPUT_NUMBER_DEFAULT_MIN, INPUT_NUMBER_DEFAULT_MAX, } from './constants';
|
|
16
17
|
import { getValue, isInputInvalid, isValidValue } from './utils';
|
|
@@ -142,7 +143,7 @@ export var InputNumber = forwardRef(function (inProps, ref) {
|
|
|
142
143
|
React.createElement("span", { className: cnInputNumber('Controls') },
|
|
143
144
|
React.createElement(IconButton, { tabIndex: -1, size: size, className: cnInputNumber('Increment'), icon: SortUpIcon, onMouseDown: handleMouseDown('increment'), disabled: disabled, "aria-label": "increment", variant: "ghost" }),
|
|
144
145
|
React.createElement(IconButton, { tabIndex: -1, size: size, icon: SortDownIcon, className: cnInputNumber('Decrement'), onMouseDown: handleMouseDown('decrement'), disabled: disabled, "aria-label": "decrement", variant: "ghost" })),
|
|
145
|
-
React.createElement(
|
|
146
|
+
React.createElement(Fieldset, { className: cnInputNumber('Fieldset') })),
|
|
146
147
|
React.createElement(FieldHint, { size: size, error: error, disabled: disabled }, hint)));
|
|
147
148
|
});
|
|
148
149
|
InputNumber.displayName = 'InputNumber';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { KeyboardEvent } from 'react';
|
|
2
|
-
import { InputNumberValue, InputNumberCountDirection } from './types';
|
|
1
|
+
import type { KeyboardEvent } from 'react';
|
|
2
|
+
import type { InputNumberValue, InputNumberCountDirection } from './types';
|
|
3
3
|
export declare const isValidValue: (value?: InputNumberValue) => boolean;
|
|
4
4
|
export declare const isInputInvalid: (event: KeyboardEvent<HTMLInputElement>) => boolean;
|
|
5
5
|
export declare const getValue: ({ value, step, min, max, countDirection, }: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './Link.css';
|
|
2
|
-
import { ElementType } from 'react';
|
|
2
|
+
import type { ElementType } from 'react';
|
|
3
3
|
import { type PolymorphicComponentPropsWithoutRef } from '../../utils/polymorphicComponentWithRef';
|
|
4
4
|
import { type TypographyBaseProps } from '../Typography';
|
|
5
5
|
export type LinkBaseProps = Pick<TypographyBaseProps, 'variant' | 'display' | 'defaultMargin' | 'children' | 'noWrap' | 'align'>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import './ListItem.css';
|
|
2
|
-
import { ElementType } from 'react';
|
|
3
|
-
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ReactNode, ElementType } from 'react';
|
|
4
3
|
import { type PolymorphicComponentPropsWithoutRef } from '../../../../utils/polymorphicComponentWithRef';
|
|
5
4
|
import { LIST_ITEM_DEFAULT_TAG } from '../../constants';
|
|
6
5
|
export declare const cnListItem: import("@bem-react/classname").ClassNameFormatter;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import './ListItemButton.css';
|
|
2
|
-
import { ElementType } from 'react';
|
|
3
|
-
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ReactNode, ElementType } from 'react';
|
|
4
3
|
import { type PolymorphicComponentPropsWithoutRef } from '../../../../utils/polymorphicComponentWithRef';
|
|
5
4
|
import { LIST_ITEM_BUTTON_DEFAULT_TAG } from '../../constants';
|
|
6
5
|
export declare const cnListItemButton: import("@bem-react/classname").ClassNameFormatter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ElementType, ReactNode } from 'react';
|
|
2
|
-
import { FormElementSizeVariant } from '../../types/FormElementSizeVariant';
|
|
3
|
-
import { PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
|
|
4
|
-
import { LIST_DEFAULT_TAG } from './constants';
|
|
2
|
+
import type { FormElementSizeVariant } from '../../types/FormElementSizeVariant';
|
|
3
|
+
import type { PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
|
|
4
|
+
import type { LIST_DEFAULT_TAG } from './constants';
|
|
5
5
|
export type ListSizeVariant = FormElementSizeVariant;
|
|
6
6
|
export type ListContextValue = {
|
|
7
7
|
size: ListSizeVariant;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementType } from 'react';
|
|
1
|
+
import type { ElementType } from 'react';
|
|
2
2
|
import { type PolymorphicComponentPropsWithoutRef } from '../../../../utils/polymorphicComponentWithRef';
|
|
3
3
|
import { type ListItemButtonBaseProps } from '../../../List';
|
|
4
4
|
import { LIST_ITEM_BUTTON_DEFAULT_TAG } from '../../../List/constants';
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
.no-scroll {
|
|
2
|
-
overflow: hidden;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
1
|
.Modal {
|
|
6
2
|
position: fixed;
|
|
7
3
|
z-index: var(--z-index-modal);
|
|
8
4
|
inset: 0;
|
|
9
5
|
}
|
|
10
6
|
|
|
11
|
-
.Modal:not(.Modal_hasBackdrop) {
|
|
7
|
+
.Modal:not(.Modal_hasBackdrop) {
|
|
12
8
|
pointer-events: none;
|
|
13
9
|
}
|
|
14
10
|
|
|
15
|
-
.Modal:not(.Modal_hasBackdrop) .Modal-Window {
|
|
11
|
+
.Modal:not(.Modal_hasBackdrop) .Modal-Window {
|
|
16
12
|
pointer-events: auto;
|
|
17
13
|
}
|
|
18
14
|
|
|
19
|
-
.Modal-Window {
|
|
15
|
+
.Modal-Window {
|
|
20
16
|
position: absolute;
|
|
21
17
|
inset-block-start: 50%;
|
|
22
18
|
inset-inline-start: 50%;
|
|
@@ -27,7 +23,7 @@
|
|
|
27
23
|
padding: var(--space-2xl);
|
|
28
24
|
}
|
|
29
25
|
|
|
30
|
-
.Modal_hidden {
|
|
26
|
+
.Modal_hidden {
|
|
31
27
|
visibility: hidden;
|
|
32
28
|
}
|
|
33
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './Modal.css';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { ReactNode } from 'react';
|
|
4
|
-
import { CSSTransitionProps } from 'react-transition-group/CSSTransition';
|
|
3
|
+
import type { ReactNode, RefObject } from 'react';
|
|
4
|
+
import type { CSSTransitionProps } from 'react-transition-group/CSSTransition';
|
|
5
5
|
import { type BackdropProps } from '../Backdrop';
|
|
6
6
|
import { type PaperProps } from '../Paper';
|
|
7
7
|
import { type PortalProps, type PortalRef } from '../Portal';
|
|
@@ -30,6 +30,12 @@ export type ModalProps = {
|
|
|
30
30
|
hideBackdrop?: boolean;
|
|
31
31
|
/** Если {true} предотвращает размонтирование компонента при событии закрыть */
|
|
32
32
|
keepMounted?: boolean;
|
|
33
|
+
/** Если {true} отключает блокировку прокрутки основного экрана приложения */
|
|
34
|
+
disableScrollLock?: boolean;
|
|
35
|
+
/** Если {true} отключает закрытие окна при клике за его пределами */
|
|
36
|
+
disableClickOutside?: boolean;
|
|
37
|
+
/** Если {true} отключает закрытие окна при нажатии на клавишу ESC */
|
|
38
|
+
disableEscapeKeyDown?: boolean;
|
|
33
39
|
/** Свойства компонента Backdrop (подложка) */
|
|
34
40
|
backdropProps?: BackdropProps & {
|
|
35
41
|
'data-testid'?: string;
|
|
@@ -48,6 +54,8 @@ export type ModalProps = {
|
|
|
48
54
|
'data-testid'?: string;
|
|
49
55
|
/** Контейнер для монтирования всплывающего окна */
|
|
50
56
|
container?: PortalProps['container'];
|
|
57
|
+
/** Список ссылок на элементы при клике на которые Modal не будет закрываться (см. хук useClickOutside) */
|
|
58
|
+
ignoreClickOutsideRefs?: Array<RefObject<HTMLElement>>;
|
|
51
59
|
} & PortalProps;
|
|
52
60
|
export type ModalRef = PortalRef;
|
|
53
61
|
export declare const Modal: React.ForwardRefExoticComponent<{
|
|
@@ -74,6 +82,12 @@ export declare const Modal: React.ForwardRefExoticComponent<{
|
|
|
74
82
|
hideBackdrop?: boolean | undefined;
|
|
75
83
|
/** Если {true} предотвращает размонтирование компонента при событии закрыть */
|
|
76
84
|
keepMounted?: boolean | undefined;
|
|
85
|
+
/** Если {true} отключает блокировку прокрутки основного экрана приложения */
|
|
86
|
+
disableScrollLock?: boolean | undefined;
|
|
87
|
+
/** Если {true} отключает закрытие окна при клике за его пределами */
|
|
88
|
+
disableClickOutside?: boolean | undefined;
|
|
89
|
+
/** Если {true} отключает закрытие окна при нажатии на клавишу ESC */
|
|
90
|
+
disableEscapeKeyDown?: boolean | undefined;
|
|
77
91
|
/** Свойства компонента Backdrop (подложка) */
|
|
78
92
|
backdropProps?: (import("../Backdrop").BackdropBaseProps & {
|
|
79
93
|
as?: "div" | undefined;
|
|
@@ -100,6 +114,8 @@ export declare const Modal: React.ForwardRefExoticComponent<{
|
|
|
100
114
|
'data-testid'?: string | undefined;
|
|
101
115
|
/** Контейнер для монтирования всплывающего окна */
|
|
102
116
|
container?: PortalProps['container'];
|
|
117
|
+
/** Список ссылок на элементы при клике на которые Modal не будет закрываться (см. хук useClickOutside) */
|
|
118
|
+
ignoreClickOutsideRefs?: React.RefObject<HTMLElement>[] | undefined;
|
|
103
119
|
} & import("../Portal").PortalBaseProps & {
|
|
104
120
|
as?: "div" | undefined;
|
|
105
121
|
} & Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "container"> & React.RefAttributes<HTMLDivElement>>;
|