@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const 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;
|
|
@@ -14,6 +14,7 @@ var classname_1 = require("../../utils/classname");
|
|
|
14
14
|
var FieldHint_1 = require("../FieldHint");
|
|
15
15
|
var FieldIcon_1 = require("../FieldIcon");
|
|
16
16
|
var FieldLabel_1 = require("../FieldLabel");
|
|
17
|
+
var Fieldset_1 = require("../Fieldset");
|
|
17
18
|
var IconButton_1 = require("../IconButton");
|
|
18
19
|
var constants_1 = require("./constants");
|
|
19
20
|
var utils_1 = require("./utils");
|
|
@@ -145,7 +146,7 @@ exports.InputNumber = (0, react_1.forwardRef)(function (inProps, ref) {
|
|
|
145
146
|
react_1["default"].createElement("span", { className: (0, exports.cnInputNumber)('Controls') },
|
|
146
147
|
react_1["default"].createElement(IconButton_1.IconButton, { tabIndex: -1, size: size, className: (0, exports.cnInputNumber)('Increment'), icon: icons_1.SortUpIcon, onMouseDown: handleMouseDown('increment'), disabled: disabled, "aria-label": "increment", variant: "ghost" }),
|
|
147
148
|
react_1["default"].createElement(IconButton_1.IconButton, { tabIndex: -1, size: size, icon: icons_1.SortDownIcon, className: (0, exports.cnInputNumber)('Decrement'), onMouseDown: handleMouseDown('decrement'), disabled: disabled, "aria-label": "decrement", variant: "ghost" })),
|
|
148
|
-
react_1["default"].createElement(
|
|
149
|
+
react_1["default"].createElement(Fieldset_1.Fieldset, { className: (0, exports.cnInputNumber)('Fieldset') })),
|
|
149
150
|
react_1["default"].createElement(FieldHint_1.FieldHint, { size: size, error: error, disabled: disabled }, hint)));
|
|
150
151
|
});
|
|
151
152
|
exports.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>>;
|
|
@@ -12,25 +12,27 @@ var useMultiRef_1 = require("../../hooks/useMultiRef");
|
|
|
12
12
|
var classname_1 = require("../../utils/classname");
|
|
13
13
|
var isKey_1 = require("../../utils/isKey");
|
|
14
14
|
var Backdrop_1 = require("../Backdrop");
|
|
15
|
-
var Paper_1 = require("../Paper");
|
|
16
15
|
var Portal_1 = require("../Portal");
|
|
16
|
+
var components_1 = require("./components");
|
|
17
17
|
var index_1 = require("./index");
|
|
18
18
|
exports.cnModal = (0, classname_1.cn)('Modal');
|
|
19
19
|
exports.Modal = (0, react_1.forwardRef)(function (_a, ref) {
|
|
20
|
-
var _b = _a.open, open = _b === void 0 ? false : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? false : _c, _d = _a.hideBackdrop, hideBackdrop = _d === void 0 ? false : _d, children = _a.children, onEnter = _a.onEnter, onEntered = _a.onEntered, onExit = _a.onExit, onExitedProp = _a.onExited, onClose = _a.onClose, backdropProps = _a.backdropProps, windowProps = _a.windowProps, transitionProps = _a.transitionProps, className = _a.className, other = tslib_1.__rest(_a, ["open", "keepMounted", "hideBackdrop", "children", "onEnter", "onEntered", "onExit", "onExited", "onClose", "backdropProps", "windowProps", "transitionProps", "className"]);
|
|
20
|
+
var _b = _a.open, open = _b === void 0 ? false : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? false : _c, _d = _a.hideBackdrop, hideBackdrop = _d === void 0 ? false : _d, _e = _a.disableScrollLock, disableScrollLock = _e === void 0 ? false : _e, _f = _a.disableClickOutside, disableClickOutside = _f === void 0 ? false : _f, _g = _a.disableEscapeKeyDown, disableEscapeKeyDown = _g === void 0 ? false : _g, children = _a.children, onEnter = _a.onEnter, onEntered = _a.onEntered, onExit = _a.onExit, onExitedProp = _a.onExited, onClose = _a.onClose, backdropProps = _a.backdropProps, windowProps = _a.windowProps, transitionProps = _a.transitionProps, className = _a.className, ignoreClickOutsideRefs = _a.ignoreClickOutsideRefs, other = tslib_1.__rest(_a, ["open", "keepMounted", "hideBackdrop", "disableScrollLock", "disableClickOutside", "disableEscapeKeyDown", "children", "onEnter", "onEntered", "onExit", "onExited", "onClose", "backdropProps", "windowProps", "transitionProps", "className", "ignoreClickOutsideRefs"]);
|
|
21
21
|
var hasBackdrop = !hideBackdrop;
|
|
22
|
-
var hasScrollOnBody = (0, react_1.useRef)(null);
|
|
23
22
|
var modalInnerRef = (0, react_1.useRef)(null);
|
|
24
23
|
var focusedElement = (0, react_1.useRef)(null);
|
|
25
24
|
var isClickOutSide = (0, react_1.useRef)(null);
|
|
26
|
-
var
|
|
27
|
-
var
|
|
25
|
+
var _h = tslib_1.__read((0, react_1.useState)(false), 2), openState = _h[0], setOpenState = _h[1];
|
|
26
|
+
var _j = (0, index_1.useModalManager)(modalInnerRef, 1000, openState), isTop = _j.isTop, refsClickOutside = _j.refsClickOutside;
|
|
28
27
|
(0, useClickOutside_1.useClickOutside)({
|
|
29
|
-
refs: tslib_1.__spreadArray(
|
|
28
|
+
refs: tslib_1.__spreadArray(tslib_1.__spreadArray([
|
|
29
|
+
modalInnerRef
|
|
30
|
+
], tslib_1.__read(refsClickOutside), false), tslib_1.__read((ignoreClickOutsideRefs || [])), false),
|
|
30
31
|
handler: function () {
|
|
31
32
|
isClickOutSide.current = true;
|
|
32
33
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
33
|
-
}
|
|
34
|
+
},
|
|
35
|
+
active: !disableClickOutside
|
|
34
36
|
});
|
|
35
37
|
(0, react_1.useEffect)(function () {
|
|
36
38
|
var _a;
|
|
@@ -66,21 +68,11 @@ exports.Modal = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
66
68
|
}
|
|
67
69
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
68
70
|
},
|
|
69
|
-
active: isTop
|
|
71
|
+
active: isTop && !disableEscapeKeyDown
|
|
70
72
|
});
|
|
71
|
-
// Блокирует прокрутку основного окна приложения
|
|
72
|
-
(0, react_1.useEffect)(function () {
|
|
73
|
-
if (openState) {
|
|
74
|
-
hasScrollOnBody.current = document.body.classList.contains('no-scroll');
|
|
75
|
-
document.body.classList.add('no-scroll');
|
|
76
|
-
}
|
|
77
|
-
else if (!hasScrollOnBody.current) {
|
|
78
|
-
document.body.classList.remove('no-scroll');
|
|
79
|
-
}
|
|
80
|
-
}, [openState]);
|
|
81
73
|
return (react_1["default"].createElement(react_transition_group_1.CSSTransition, tslib_1.__assign({ classNames: (0, exports.cnModal)({ animation: true }), timeout: 300 }, transitionProps, { "in": openState, onEnter: onEnter, onEntered: onEntered, onExit: onExit, onExited: onExited, unmountOnExit: !keepMounted, appear: true }),
|
|
82
|
-
react_1["default"].createElement(Portal_1.Portal, tslib_1.__assign({}, other, { className: (0, exports.cnModal)({ hidden: keepMounted && !openState, hasBackdrop: hasBackdrop }, [className]), ref:
|
|
83
|
-
!hideBackdrop && (react_1["default"].createElement(Backdrop_1.Backdrop, tslib_1.__assign({ zIndex: -1 }, backdropProps, {
|
|
84
|
-
react_1["default"].createElement(
|
|
74
|
+
react_1["default"].createElement(Portal_1.Portal, tslib_1.__assign({}, other, { className: (0, exports.cnModal)({ hidden: keepMounted && !openState, hasBackdrop: hasBackdrop }, [className]), ref: ref }),
|
|
75
|
+
!hideBackdrop && (react_1["default"].createElement(Backdrop_1.Backdrop, tslib_1.__assign({ zIndex: -1 }, backdropProps, { open: openState, className: backdropProps === null || backdropProps === void 0 ? void 0 : backdropProps.className }))),
|
|
76
|
+
react_1["default"].createElement(components_1.ModalConsumer, tslib_1.__assign({}, windowProps, { open: openState && !disableScrollLock, ref: (0, useMultiRef_1.useMultiRef)([modalInnerRef, trapRef, windowProps === null || windowProps === void 0 ? void 0 : windowProps.ref]) }), children))));
|
|
85
77
|
});
|
|
86
78
|
exports.Modal.displayName = 'Modal';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.ModalConsumer = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var useLockBodyScroll_1 = require("../../../hooks/useLockBodyScroll");
|
|
7
|
+
var Paper_1 = require("../../Paper");
|
|
8
|
+
var index_1 = require("../index");
|
|
9
|
+
exports.ModalConsumer = (0, react_1.forwardRef)(function (_a, ref) {
|
|
10
|
+
var children = _a.children, className = _a.className, open = _a.open, other = tslib_1.__rest(_a, ["children", "className", "open"]);
|
|
11
|
+
// Блокирует прокрутку основного окна приложения
|
|
12
|
+
(0, useLockBodyScroll_1.useLockBodyScroll)(open);
|
|
13
|
+
return (react_1["default"].createElement(Paper_1.Paper, tslib_1.__assign({ radius: "s", background: "main" }, other, { className: (0, index_1.cnModal)('Window', [className]), tabIndex: -1, ref: ref }), children));
|
|
14
|
+
});
|
|
15
|
+
exports.ModalConsumer.displayName = 'ModalConsumer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ModalConsumer';
|
package/__inner__/cjs/components/Pagination/helpers/createPaginationRange/createPaginationRange.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PaginationBaseProps } from '../../index';
|
|
2
|
-
import { EllipsisType } from '../../types';
|
|
2
|
+
import type { EllipsisType } from '../../types';
|
|
3
3
|
type Params = Required<Pick<PaginationBaseProps, 'page' | 'pageSize' | 'totalCount' | 'siblingCount'>>;
|
|
4
4
|
export declare const createPaginationRange: ({ page, pageSize, totalCount, siblingCount, }: Params) => (number | EllipsisType)[];
|
|
5
5
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PaginationItemProps } from './components';
|
|
3
|
-
import { ELLIPSIS, NEXT, PREVIOUS } from './constants';
|
|
4
|
-
import { GetItemAriaLabel } from './helpers/getItemAriaLabel';
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import type { PaginationItemProps } from './components';
|
|
3
|
+
import type { ELLIPSIS, NEXT, PREVIOUS } from './constants';
|
|
4
|
+
import type { GetItemAriaLabel } from './helpers/getItemAriaLabel';
|
|
5
5
|
export type EllipsisType = typeof ELLIPSIS;
|
|
6
6
|
export type PreviousType = typeof PREVIOUS;
|
|
7
7
|
export type NextType = typeof NEXT;
|
|
@@ -33,6 +33,6 @@ export type PaginationBaseProps = {
|
|
|
33
33
|
/** Функция форматирования атрибута aria-label. */
|
|
34
34
|
getItemAriaLabel?: GetItemAriaLabel;
|
|
35
35
|
/** Рендер функция, для отображения кнопок пагинации. */
|
|
36
|
-
renderComponent?: (PagItemProps: PaginationItemProps) =>
|
|
36
|
+
renderComponent?: (PagItemProps: PaginationItemProps) => ReactNode;
|
|
37
37
|
};
|
|
38
38
|
export type PaginationProps = PaginationBaseProps & HTMLAttributes<HTMLElement>;
|