@sima-land/ui-nucleons 43.1.1 → 44.1.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/alert/index.js +5 -1
- package/autocomplete/index.js +5 -1
- package/avatar/index.js +5 -1
- package/avatar/user.js +5 -1
- package/base-input/index.d.ts +2 -2
- package/base-input/index.js +7 -4
- package/bottom-bar/index.js +6 -1
- package/box/index.js +5 -1
- package/button/index.js +5 -1
- package/card/slots.js +5 -1
- package/carousel/draggable.js +5 -1
- package/carousel/index.js +5 -1
- package/checkbox/index.js +5 -1
- package/checkbox-field/index.js +5 -1
- package/chips/chips.module.scss +9 -8
- package/chips/index.js +5 -1
- package/clean-buttons/clean-buttons.module.scss +26 -15
- package/clean-buttons/index.d.ts +7 -2
- package/clean-buttons/index.js +16 -10
- package/clean-buttons/types.d.ts +4 -0
- package/clean-buttons/types.js +2 -0
- package/clean-buttons/utils.d.ts +3 -0
- package/clean-buttons/utils.js +5 -0
- package/dot-nav/index.js +5 -1
- package/dropdown/index.js +5 -1
- package/expandable/expandable-group.module.scss +18 -0
- package/expandable/index.d.ts +30 -0
- package/expandable/index.js +78 -0
- package/expandable/utils.d.ts +20 -0
- package/expandable/utils.js +73 -0
- package/field-grid/index.js +5 -1
- package/helpers/styles.d.ts +0 -1
- package/helpers/styles.js +0 -1
- package/hint/index.js +5 -1
- package/hooks/breakpoint/index.js +5 -1
- package/hooks/identity.d.ts +1 -1
- package/hooks/identity.js +1 -1
- package/hooks/index.js +2 -2
- package/hooks/intersection/index.d.ts +8 -0
- package/hooks/intersection/index.js +26 -0
- package/hooks/intersection/readme.md +55 -0
- package/hooks/intersection/test-utils.d.ts +64 -0
- package/hooks/intersection/test-utils.js +136 -0
- package/hooks/keydown.d.ts +1 -1
- package/hooks/keydown.js +7 -7
- package/layout/index.js +5 -1
- package/link/index.js +5 -1
- package/masked-field/index.js +5 -1
- package/modal/index.js +5 -1
- package/modal/slots.js +5 -1
- package/package.json +44 -45
- package/phone-input/index.js +5 -1
- package/plate/index.js +5 -1
- package/range/index.js +5 -1
- package/screen/slots.js +5 -1
- package/select/index.js +5 -1
- package/side-page/index.d.ts +3 -1
- package/side-page/index.js +5 -1
- package/side-page/side-page.module.scss +3 -1
- package/side-page/slots.d.ts +3 -1
- package/side-page/slots.js +6 -1
- package/stepper/index.js +5 -1
- package/stroked-svg/index.js +5 -1
- package/tabs/index.js +5 -1
- package/text/index.js +5 -1
- package/text-field/index.js +5 -1
- package/timer/index.js +5 -1
- package/toggle/index.js +5 -1
- package/tooltip/index.js +5 -1
- package/unknown-content/index.js +5 -1
- package/with-hint/index.js +5 -1
- package/with-hint/positioning-hint.js +5 -1
- package/with-tooltip/index.js +5 -1
- package/with-tooltip/positioning-tooltip.js +5 -1
- package/helpers/intersection-observer.d.ts +0 -40
- package/helpers/intersection-observer.js +0 -60
- package/with-in-viewport-observer/index.d.ts +0 -9
- package/with-in-viewport-observer/index.js +0 -43
package/alert/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/autocomplete/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/avatar/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/avatar/user.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/base-input/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ interface RestPlaceholder {
|
|
|
3
3
|
value: string;
|
|
4
4
|
shiftValue?: string;
|
|
5
5
|
}
|
|
6
|
-
interface
|
|
6
|
+
interface BaseInputStyle extends React.CSSProperties {
|
|
7
7
|
'--placeholder-color'?: string;
|
|
8
8
|
}
|
|
9
9
|
export interface CustomProps {
|
|
@@ -11,7 +11,7 @@ export interface CustomProps {
|
|
|
11
11
|
/** Остаточный placeholder (выводится после введенного значения). */
|
|
12
12
|
restPlaceholder?: string | RestPlaceholder;
|
|
13
13
|
/** Стили. */
|
|
14
|
-
style?:
|
|
14
|
+
style?: BaseInputStyle;
|
|
15
15
|
}
|
|
16
16
|
export declare type BaseInputProps = CustomProps & React.TextareaHTMLAttributes<HTMLTextAreaElement> & React.InputHTMLAttributes<HTMLInputElement>;
|
|
17
17
|
/**
|
package/base-input/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -35,10 +39,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
40
|
exports.BaseInput = void 0;
|
|
37
41
|
const react_1 = __importStar(require("react"));
|
|
42
|
+
const fit_element_height_1 = require("../helpers/fit-element-height");
|
|
38
43
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
39
44
|
const base_input_module_scss_1 = __importDefault(require("./base-input.module.scss"));
|
|
40
|
-
const fit_element_height_1 = require("../helpers/fit-element-height");
|
|
41
|
-
const lodash_1 = require("lodash");
|
|
42
45
|
const cx = bind_1.default.bind(base_input_module_scss_1.default);
|
|
43
46
|
/**
|
|
44
47
|
* Компонент поля ввода.
|
|
@@ -60,7 +63,7 @@ exports.BaseInput = (0, react_1.forwardRef)(function BaseInput(_a, ref) {
|
|
|
60
63
|
target: inputRef.current,
|
|
61
64
|
});
|
|
62
65
|
});
|
|
63
|
-
const restPlaceholder =
|
|
66
|
+
const restPlaceholder = typeof restPlaceholderProp === 'string'
|
|
64
67
|
? { shiftValue: value, value: restPlaceholderProp }
|
|
65
68
|
: Object.assign({ shiftValue: value }, restPlaceholderProp);
|
|
66
69
|
return (react_1.default.createElement("div", { style: style, className: cx('reset', 'root', disabled && 'disabled', className) },
|
package/bottom-bar/index.js
CHANGED
|
@@ -19,6 +19,7 @@ const react_1 = __importDefault(require("react"));
|
|
|
19
19
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
20
20
|
const bottom_bar_module_scss_1 = __importDefault(require("./bottom-bar.module.scss"));
|
|
21
21
|
const shapes_1 = require("../styling/shapes");
|
|
22
|
+
const utils_1 = require("../clean-buttons/utils");
|
|
22
23
|
const cx = bind_1.default.bind(bottom_bar_module_scss_1.default);
|
|
23
24
|
// некоторым компонентам нужно знать конкретную высоту, делаем единый источник
|
|
24
25
|
exports.BOTTOM_BAR_HEIGHT = {
|
|
@@ -26,6 +27,7 @@ exports.BOTTOM_BAR_HEIGHT = {
|
|
|
26
27
|
m: 72,
|
|
27
28
|
l: 80,
|
|
28
29
|
};
|
|
30
|
+
// некоторым компонентам нужно знать значения по умолчанию, делаем единый источник
|
|
29
31
|
exports.BOTTOM_BAR_DEFAULTS = {
|
|
30
32
|
size: 'm',
|
|
31
33
|
};
|
|
@@ -36,6 +38,9 @@ exports.BOTTOM_BAR_DEFAULTS = {
|
|
|
36
38
|
*/
|
|
37
39
|
const BottomBar = (_a) => {
|
|
38
40
|
var { size = exports.BOTTOM_BAR_DEFAULTS.size, divided, children, className, style, 'data-testid': testId = 'bottom-bar' } = _a, rest = __rest(_a, ["size", "divided", "children", "className", "style", 'data-testid']);
|
|
39
|
-
return (
|
|
41
|
+
return (
|
|
42
|
+
// чтобы Clean.Button автоматически брали размер, соответствующий размер BottomBar
|
|
43
|
+
react_1.default.createElement(utils_1.CleanGroupSizeContext.Provider, { value: size },
|
|
44
|
+
react_1.default.createElement("div", Object.assign({ className: cx('root', { divided }, shapes_1.MediumRounds.bottom, className), style: Object.assign(Object.assign({}, style), { height: `${exports.BOTTOM_BAR_HEIGHT[size]}px` }) }, rest, { "data-testid": testId }), children)));
|
|
40
45
|
};
|
|
41
46
|
exports.BottomBar = BottomBar;
|
package/box/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/button/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/card/slots.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/carousel/draggable.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/carousel/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/checkbox/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/checkbox-field/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/chips/chips.module.scss
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
@use '../colors';
|
|
2
2
|
|
|
3
|
-
$gutter: 8px;
|
|
4
|
-
|
|
5
3
|
.list {
|
|
6
4
|
display: flex;
|
|
7
5
|
flex-wrap: wrap;
|
|
8
|
-
|
|
6
|
+
--chips-gutter: 8px;
|
|
7
|
+
margin-right: calc(-1 * var(--chips-gutter));
|
|
8
|
+
margin-bottom: calc(-1 * var(--chips-gutter));
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.item {
|
|
@@ -15,7 +15,10 @@ $gutter: 8px;
|
|
|
15
15
|
display: flex;
|
|
16
16
|
align-items: center;
|
|
17
17
|
height: 32px;
|
|
18
|
-
|
|
18
|
+
|
|
19
|
+
// по умолчанию 0 чтобы вне Chips отступов не было
|
|
20
|
+
margin-right: var(--chips-gutter, 0);
|
|
21
|
+
margin-bottom: var(--chips-gutter, 0);
|
|
19
22
|
overflow: hidden;
|
|
20
23
|
outline: 0;
|
|
21
24
|
border: 0;
|
|
@@ -29,10 +32,6 @@ $gutter: 8px;
|
|
|
29
32
|
font-weight: 600;
|
|
30
33
|
line-height: 16px;
|
|
31
34
|
text-decoration: none;
|
|
32
|
-
&.checked {
|
|
33
|
-
background: colors.$basic-gray76;
|
|
34
|
-
color: colors.$basic-white;
|
|
35
|
-
}
|
|
36
35
|
|
|
37
36
|
// переопределяем стили монолита
|
|
38
37
|
&,
|
|
@@ -52,6 +51,8 @@ $gutter: 8px;
|
|
|
52
51
|
color: colors.$basic-gray87;
|
|
53
52
|
}
|
|
54
53
|
&.checked {
|
|
54
|
+
background: colors.$basic-gray76;
|
|
55
|
+
color: colors.$basic-white;
|
|
55
56
|
&:hover,
|
|
56
57
|
&:active {
|
|
57
58
|
background: colors.$basic-gray66;
|
package/chips/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
@use '../colors';
|
|
2
2
|
|
|
3
|
-
.
|
|
3
|
+
.group {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-wrap: nowrap;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
width: 100%;
|
|
8
|
+
.button {
|
|
9
|
+
flex-grow: 1;
|
|
10
|
+
flex-shrink: 1;
|
|
11
|
+
flex-basis: 0;
|
|
12
|
+
+ .button {
|
|
13
|
+
border-left: 1px solid colors.$basic-gray12;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.button {
|
|
4
19
|
display: flex;
|
|
5
20
|
align-items: center;
|
|
6
21
|
justify-content: center;
|
|
@@ -11,21 +26,17 @@
|
|
|
11
26
|
|
|
12
27
|
font-size: 16px;
|
|
13
28
|
line-height: 24px;
|
|
14
|
-
height: 64px;
|
|
15
29
|
overflow: hidden;
|
|
16
30
|
}
|
|
17
31
|
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
border-left: 1px solid colors.$basic-gray12;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
32
|
+
.size-s {
|
|
33
|
+
height: 64px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.size-m {
|
|
37
|
+
height: 72px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.size-l {
|
|
41
|
+
height: 80px;
|
|
31
42
|
}
|
package/clean-buttons/index.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { LinkProps } from '../link';
|
|
3
|
+
import { CleanButtonSize } from './types';
|
|
3
4
|
export interface CleanButtonProps extends LinkProps {
|
|
4
5
|
asLink?: boolean;
|
|
6
|
+
/** Размер (высота). */
|
|
7
|
+
size?: CleanButtonSize;
|
|
5
8
|
}
|
|
6
9
|
export interface CleanGroupProps {
|
|
10
|
+
/** Размер (высота). */
|
|
11
|
+
size?: CleanButtonSize;
|
|
7
12
|
/** Содержимое. */
|
|
8
|
-
children?: React.
|
|
13
|
+
children?: React.ReactNode;
|
|
9
14
|
}
|
|
10
15
|
export declare const Clean: {
|
|
11
16
|
Group: React.FC<CleanGroupProps>;
|
|
12
|
-
Button: ({ href, asLink, ...restProps }: CleanButtonProps) => JSX.Element;
|
|
17
|
+
Button: ({ size, href, asLink, ...restProps }: CleanButtonProps) => JSX.Element;
|
|
13
18
|
};
|
package/clean-buttons/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -36,27 +40,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
40
|
exports.Clean = void 0;
|
|
37
41
|
const react_1 = __importStar(require("react"));
|
|
38
42
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
39
|
-
const clean_buttons_module_scss_1 = __importDefault(require("./clean-buttons.module.scss"));
|
|
40
43
|
const link_1 = require("../link");
|
|
44
|
+
const clean_buttons_module_scss_1 = __importDefault(require("./clean-buttons.module.scss"));
|
|
45
|
+
const utils_1 = require("./utils");
|
|
41
46
|
const cx = bind_1.default.bind(clean_buttons_module_scss_1.default);
|
|
42
47
|
/**
|
|
43
48
|
* Компонент группы прозрачных кнопок.
|
|
44
49
|
* @param props Свойства.
|
|
45
50
|
* @return Элемент.
|
|
46
51
|
*/
|
|
47
|
-
const CleanGroup = ({
|
|
52
|
+
const CleanGroup = ({ size: sizeFromProps, children }) => {
|
|
53
|
+
const sizeFromContext = (0, react_1.useContext)(utils_1.CleanGroupSizeContext);
|
|
54
|
+
// значение из пропсов имеет приоритет
|
|
55
|
+
const size = sizeFromProps || sizeFromContext;
|
|
56
|
+
return (react_1.default.createElement("div", { className: cx('group') }, react_1.Children.toArray(children).map(item => (0, react_1.isValidElement)(item) && item.type === CleanButton ? (0, react_1.cloneElement)(item, { size }) : null)));
|
|
57
|
+
};
|
|
48
58
|
/**
|
|
49
59
|
* Компонент прозрачной кнопки.
|
|
50
|
-
* @param props Свойства.
|
|
51
|
-
* @param props.children Содержимое.
|
|
52
|
-
* @param props.size Размер.
|
|
53
|
-
* @param props.href Адрес ссылки.
|
|
54
|
-
* @param props.asLink Нужно ли выводить кнопку как ссылку.
|
|
60
|
+
* @param props Свойства.
|
|
55
61
|
* @return Элемент.
|
|
56
62
|
*/
|
|
57
63
|
const CleanButton = (_a) => {
|
|
58
|
-
var { href, asLink = Boolean(href) } = _a, restProps = __rest(_a, ["href", "asLink"]);
|
|
59
|
-
return (react_1.default.createElement(link_1.Link, Object.assign({ pseudo: asLink, className: cx('
|
|
64
|
+
var { size = 's', href, asLink = Boolean(href) } = _a, restProps = __rest(_a, ["size", "href", "asLink"]);
|
|
65
|
+
return (react_1.default.createElement(link_1.Link, Object.assign({ pseudo: !asLink, className: cx('button', `size-${size}`), href: href }, restProps)));
|
|
60
66
|
};
|
|
61
67
|
exports.Clean = {
|
|
62
68
|
Group: CleanGroup,
|
package/dot-nav/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dropdown/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { ReactNode, MouseEventHandler, CSSProperties } from 'react';
|
|
2
|
+
export interface ExpandableGroupProps {
|
|
3
|
+
gap?: number;
|
|
4
|
+
itemHeight?: number;
|
|
5
|
+
defaultExpanded?: boolean;
|
|
6
|
+
lineLimit?: number;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
opener?: (data: {
|
|
9
|
+
hiddenCount: number;
|
|
10
|
+
}) => ReactNode;
|
|
11
|
+
onExpand?: () => void;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
export interface GroupItemProps {
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
onClick?: MouseEventHandler;
|
|
18
|
+
'data-testid'?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Группа элементов с ограничением на число выводимых строк и возможностью показать все.
|
|
22
|
+
* @param props Свойства.
|
|
23
|
+
* @return Элемент.
|
|
24
|
+
*/
|
|
25
|
+
declare function ExpandableGroup({ gap, itemHeight, lineLimit, defaultExpanded, children, onExpand, opener, className, style, }: ExpandableGroupProps): JSX.Element;
|
|
26
|
+
export declare const Expandable: {
|
|
27
|
+
readonly Group: typeof ExpandableGroup;
|
|
28
|
+
readonly Item: React.ForwardRefExoticComponent<GroupItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Expandable = void 0;
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const utils_1 = require("./utils");
|
|
32
|
+
const bind_1 = __importDefault(require("classnames/bind"));
|
|
33
|
+
const expandable_group_module_scss_1 = __importDefault(require("./expandable-group.module.scss"));
|
|
34
|
+
const cx = bind_1.default.bind(expandable_group_module_scss_1.default);
|
|
35
|
+
const GroupContext = (0, react_1.createContext)({ gap: 8, itemHeight: 32 });
|
|
36
|
+
const ItemContext = (0, react_1.createContext)({});
|
|
37
|
+
/**
|
|
38
|
+
* Группа элементов с ограничением на число выводимых строк и возможностью показать все.
|
|
39
|
+
* @param props Свойства.
|
|
40
|
+
* @return Элемент.
|
|
41
|
+
*/
|
|
42
|
+
function ExpandableGroup({ gap = 8, itemHeight = 32, lineLimit = 2, defaultExpanded = false, children, onExpand, opener = data => react_1.default.createElement(react_1.default.Fragment, null,
|
|
43
|
+
"\u0415\u0449\u0451 ",
|
|
44
|
+
data.hiddenCount), className, style, }) {
|
|
45
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
46
|
+
const openerRef = (0, react_1.useRef)(null);
|
|
47
|
+
const [expanded, setExpanded] = (0, react_1.useState)(defaultExpanded);
|
|
48
|
+
const viewState = (0, utils_1.useViewState)(containerRef, openerRef);
|
|
49
|
+
const items = react_1.Children.toArray(children).reduce((result, child, index) => {
|
|
50
|
+
const needHideItems = viewState.lastVisibleIndex !== -1 && !expanded;
|
|
51
|
+
const isDisplayed = !needHideItems || index < viewState.lastVisibleIndex;
|
|
52
|
+
(0, react_1.isValidElement)(child) &&
|
|
53
|
+
child.type === ExpandableItem &&
|
|
54
|
+
result.push(react_1.default.createElement(ItemContext.Provider, { key: index, value: { hidden: !isDisplayed } }, (0, react_1.cloneElement)(child, { hidden: !isDisplayed })));
|
|
55
|
+
return result;
|
|
56
|
+
}, []);
|
|
57
|
+
return (react_1.default.createElement(GroupContext.Provider, { value: { gap, itemHeight } },
|
|
58
|
+
react_1.default.createElement("div", { ref: containerRef, className: cx('root', className), style: Object.assign(Object.assign({}, style), { maxHeight: expanded ? undefined : `${itemHeight * lineLimit + gap * (lineLimit - 1)}px` }) },
|
|
59
|
+
react_1.default.createElement("div", { className: expandable_group_module_scss_1.default.inner, style: { marginRight: `${-gap}px` } },
|
|
60
|
+
items,
|
|
61
|
+
!expanded && (react_1.default.createElement(ItemContext.Provider, { value: { invisible: viewState.lastVisibleIndex === -1 } },
|
|
62
|
+
react_1.default.createElement(ExpandableItem, { ref: openerRef, onClick: () => {
|
|
63
|
+
setExpanded(true);
|
|
64
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand();
|
|
65
|
+
}, "data-testid": 'expandable:opener' }, opener({ hiddenCount: items.length - viewState.lastVisibleIndex }))))))));
|
|
66
|
+
}
|
|
67
|
+
const ExpandableItem = (0, react_1.forwardRef)(({ children, onClick, 'data-testid': testId = 'expandable:item' }, ref) => {
|
|
68
|
+
const { gap, itemHeight } = (0, react_1.useContext)(GroupContext);
|
|
69
|
+
const { invisible, hidden } = (0, react_1.useContext)(ItemContext);
|
|
70
|
+
return (react_1.default.createElement("div", { ref: ref, className: cx('item', { hidden, invisible }), "data-testid": testId, onClick: onClick, style: {
|
|
71
|
+
height: `${itemHeight}px`,
|
|
72
|
+
margin: `0 ${gap}px ${gap}px 0`,
|
|
73
|
+
} }, children));
|
|
74
|
+
});
|
|
75
|
+
exports.Expandable = {
|
|
76
|
+
Group: ExpandableGroup,
|
|
77
|
+
Item: ExpandableItem,
|
|
78
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
export interface ViewState {
|
|
3
|
+
phase: 'default' | 'ready';
|
|
4
|
+
lastVisibleIndex: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const initialViewState: ViewState;
|
|
7
|
+
/**
|
|
8
|
+
* Хук состояния группы элементов ограниченных несколькими строками с возможностью показать все.
|
|
9
|
+
* @param containerRef Ref элемента-контейнера.
|
|
10
|
+
* @param openerRef Ref элемента кнопки, показывающей всю группу.
|
|
11
|
+
* @return Состояние.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useViewState(containerRef: RefObject<HTMLElement>, openerRef: RefObject<HTMLElement>): ViewState;
|
|
14
|
+
/**
|
|
15
|
+
* Определяет индекс последнего видимого элемента для свернутого списка.
|
|
16
|
+
* @param containerRef Ref элемента-контейнера.
|
|
17
|
+
* @param openerRef Ref элемента кнопки, показывающей весь список.
|
|
18
|
+
* @return Состояние.
|
|
19
|
+
*/
|
|
20
|
+
export declare function defineViewState(containerRef: RefObject<HTMLElement>, openerRef: RefObject<HTMLElement>): ViewState;
|