@sima-land/ui-nucleons 43.1.1 → 44.0.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/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/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/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];
|
package/field-grid/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/helpers/styles.d.ts
CHANGED
|
@@ -11,7 +11,6 @@ export declare const getTransitionStyle: (duration?: number, property?: string,
|
|
|
11
11
|
*
|
|
12
12
|
* Использовать только "translate3d" для смещения.
|
|
13
13
|
* @see https://stackoverflow.com/a/22312917
|
|
14
|
-
*
|
|
15
14
|
* @param x Смещение по оси x в пикселях.
|
|
16
15
|
* @param y Смещение по оси y в пикселях.
|
|
17
16
|
* @param z Смещение по оси z в пикселях.
|
package/helpers/styles.js
CHANGED
|
@@ -16,7 +16,6 @@ exports.getTransitionStyle = getTransitionStyle;
|
|
|
16
16
|
*
|
|
17
17
|
* Использовать только "translate3d" для смещения.
|
|
18
18
|
* @see https://stackoverflow.com/a/22312917
|
|
19
|
-
*
|
|
20
19
|
* @param x Смещение по оси x в пикселях.
|
|
21
20
|
* @param y Смещение по оси y в пикселях.
|
|
22
21
|
* @param z Смещение по оси z в пикселях.
|
package/hint/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,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/hooks/identity.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
/**
|
|
3
3
|
* Реф с актуальным переданным значением.
|
|
4
|
-
* Нужен, когда в ref
|
|
4
|
+
* Нужен, когда в ref нужно обновлять значение при каждом рендере.
|
|
5
5
|
* @param value Значение.
|
|
6
6
|
* @return Реф.
|
|
7
7
|
*/
|
package/hooks/identity.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.useIdentityRef = void 0;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
/**
|
|
6
6
|
* Реф с актуальным переданным значением.
|
|
7
|
-
* Нужен, когда в ref
|
|
7
|
+
* Нужен, когда в ref нужно обновлять значение при каждом рендере.
|
|
8
8
|
* @param value Значение.
|
|
9
9
|
* @return Реф.
|
|
10
10
|
*/
|
package/hooks/index.js
CHANGED
|
@@ -53,11 +53,11 @@ const useOutsideClick = (elementRef, callback) => {
|
|
|
53
53
|
const callbackRef = (0, identity_1.useIdentityRef)(callback);
|
|
54
54
|
(0, react_1.useEffect)(() => (0, on_1.default)(document.documentElement, 'click', event => {
|
|
55
55
|
const { current: element } = elementRef;
|
|
56
|
-
const { current:
|
|
56
|
+
const { current: handler } = callbackRef;
|
|
57
57
|
element &&
|
|
58
58
|
element !== event.target &&
|
|
59
59
|
!element.contains(event.target) &&
|
|
60
|
-
(
|
|
60
|
+
(handler === null || handler === void 0 ? void 0 : handler(event));
|
|
61
61
|
}), []);
|
|
62
62
|
};
|
|
63
63
|
exports.useOutsideClick = useOutsideClick;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Хук, вызывающий callback при пересечении целевого элемента с областью видимости.
|
|
4
|
+
* @param ref Ref с целевым элементом.
|
|
5
|
+
* @param callback Функция, которая будет вызвана при пересечении целевого элемента с областью видимости.
|
|
6
|
+
* @param options Опции создания IntersectionObserver.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useIntersection(ref: MutableRefObject<HTMLElement | null>, callback: (entry: IntersectionObserverEntry) => void, options?: IntersectionObserverInit): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useIntersection = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const identity_1 = require("../identity");
|
|
6
|
+
/**
|
|
7
|
+
* Хук, вызывающий callback при пересечении целевого элемента с областью видимости.
|
|
8
|
+
* @param ref Ref с целевым элементом.
|
|
9
|
+
* @param callback Функция, которая будет вызвана при пересечении целевого элемента с областью видимости.
|
|
10
|
+
* @param options Опции создания IntersectionObserver.
|
|
11
|
+
*/
|
|
12
|
+
function useIntersection(ref, callback, options) {
|
|
13
|
+
const callbackRef = (0, identity_1.useIdentityRef)(callback);
|
|
14
|
+
(0, react_1.useEffect)(() => {
|
|
15
|
+
const element = ref.current;
|
|
16
|
+
if (element) {
|
|
17
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
18
|
+
var _a;
|
|
19
|
+
(_a = callbackRef.current) === null || _a === void 0 ? void 0 : _a.call(callbackRef, entry);
|
|
20
|
+
}, options);
|
|
21
|
+
observer.observe(element);
|
|
22
|
+
return () => observer.disconnect();
|
|
23
|
+
}
|
|
24
|
+
}, [ref, callbackRef, options]);
|
|
25
|
+
}
|
|
26
|
+
exports.useIntersection = useIntersection;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Утилиты для unit-тестирования
|
|
2
|
+
|
|
3
|
+
Утилиты для unit-тестирования (Jest) компонентов, использующих хук `useIntersection`
|
|
4
|
+
|
|
5
|
+
#### Пример компонента
|
|
6
|
+
|
|
7
|
+
```jsx
|
|
8
|
+
import { useIntersection } from '@sima-land/ui-nucleons/hooks/intersection';
|
|
9
|
+
|
|
10
|
+
const TestComponent = () => {
|
|
11
|
+
const ref = useRef(null);
|
|
12
|
+
const [viewing, setViewing] = useState(false);
|
|
13
|
+
|
|
14
|
+
useIntersection(ref, entry => {
|
|
15
|
+
setViewing(entry.isIntersecting);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div ref={ref} data-testid='test-target'>
|
|
20
|
+
{viewing ? 'On screen' : 'Off screen'}
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
};
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
#### Пример тестов
|
|
27
|
+
|
|
28
|
+
```jsx
|
|
29
|
+
import { IntersectionMock } from '@sima-land/ui-nucleons/hooks/intersection/test-utils';
|
|
30
|
+
|
|
31
|
+
const intersectionMock = new IntersectionMock();
|
|
32
|
+
|
|
33
|
+
beforeAll(() => {
|
|
34
|
+
intersectionMock.apply();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
afterAll(() => {
|
|
38
|
+
intersectionMock.restore();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('test component', () => {
|
|
42
|
+
const { asFragment, getByTestId } = render(<TestComponent />);
|
|
43
|
+
const target = getByTestId('test-target');
|
|
44
|
+
|
|
45
|
+
expect(asFragment().textContent).toContain('Off screen');
|
|
46
|
+
|
|
47
|
+
intersectionMock.changeElementState({
|
|
48
|
+
target,
|
|
49
|
+
isIntersecting: true,
|
|
50
|
+
intersectionRatio: 0,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
expect(asFragment().textContent).toContain('On screen');
|
|
54
|
+
});
|
|
55
|
+
```
|