@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.
Files changed (72) hide show
  1. package/alert/index.js +5 -1
  2. package/autocomplete/index.js +5 -1
  3. package/avatar/index.js +5 -1
  4. package/avatar/user.js +5 -1
  5. package/base-input/index.d.ts +2 -2
  6. package/base-input/index.js +7 -4
  7. package/bottom-bar/index.js +6 -1
  8. package/box/index.js +5 -1
  9. package/button/index.js +5 -1
  10. package/card/slots.js +5 -1
  11. package/carousel/draggable.js +5 -1
  12. package/carousel/index.js +5 -1
  13. package/checkbox/index.js +5 -1
  14. package/checkbox-field/index.js +5 -1
  15. package/chips/index.js +5 -1
  16. package/clean-buttons/clean-buttons.module.scss +26 -15
  17. package/clean-buttons/index.d.ts +7 -2
  18. package/clean-buttons/index.js +16 -10
  19. package/clean-buttons/types.d.ts +4 -0
  20. package/clean-buttons/types.js +2 -0
  21. package/clean-buttons/utils.d.ts +3 -0
  22. package/clean-buttons/utils.js +5 -0
  23. package/dot-nav/index.js +5 -1
  24. package/dropdown/index.js +5 -1
  25. package/field-grid/index.js +5 -1
  26. package/helpers/styles.d.ts +0 -1
  27. package/helpers/styles.js +0 -1
  28. package/hint/index.js +5 -1
  29. package/hooks/breakpoint/index.js +5 -1
  30. package/hooks/identity.d.ts +1 -1
  31. package/hooks/identity.js +1 -1
  32. package/hooks/index.js +2 -2
  33. package/hooks/intersection/index.d.ts +8 -0
  34. package/hooks/intersection/index.js +26 -0
  35. package/hooks/intersection/readme.md +55 -0
  36. package/hooks/intersection/test-utils.d.ts +64 -0
  37. package/hooks/intersection/test-utils.js +136 -0
  38. package/hooks/keydown.d.ts +1 -1
  39. package/hooks/keydown.js +7 -7
  40. package/layout/index.js +5 -1
  41. package/link/index.js +5 -1
  42. package/masked-field/index.js +5 -1
  43. package/modal/index.js +5 -1
  44. package/modal/slots.js +5 -1
  45. package/package.json +44 -45
  46. package/phone-input/index.js +5 -1
  47. package/plate/index.js +5 -1
  48. package/range/index.js +5 -1
  49. package/screen/slots.js +5 -1
  50. package/select/index.js +5 -1
  51. package/side-page/index.d.ts +3 -1
  52. package/side-page/index.js +5 -1
  53. package/side-page/side-page.module.scss +3 -1
  54. package/side-page/slots.d.ts +3 -1
  55. package/side-page/slots.js +6 -1
  56. package/stepper/index.js +5 -1
  57. package/stroked-svg/index.js +5 -1
  58. package/tabs/index.js +5 -1
  59. package/text/index.js +5 -1
  60. package/text-field/index.js +5 -1
  61. package/timer/index.js +5 -1
  62. package/toggle/index.js +5 -1
  63. package/tooltip/index.js +5 -1
  64. package/unknown-content/index.js +5 -1
  65. package/with-hint/index.js +5 -1
  66. package/with-hint/positioning-hint.js +5 -1
  67. package/with-tooltip/index.js +5 -1
  68. package/with-tooltip/positioning-tooltip.js +5 -1
  69. package/helpers/intersection-observer.d.ts +0 -40
  70. package/helpers/intersection-observer.js +0 -60
  71. package/with-in-viewport-observer/index.d.ts +0 -9
  72. 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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -3,7 +3,7 @@ interface RestPlaceholder {
3
3
  value: string;
4
4
  shiftValue?: string;
5
5
  }
6
- interface Styles extends React.CSSProperties {
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?: Styles;
14
+ style?: BaseInputStyle;
15
15
  }
16
16
  export declare type BaseInputProps = CustomProps & React.TextareaHTMLAttributes<HTMLTextAreaElement> & React.InputHTMLAttributes<HTMLInputElement>;
17
17
  /**
@@ -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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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 = (0, lodash_1.isString)(restPlaceholderProp)
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) },
@@ -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 (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));
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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
- .clean-button {
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
- .clean-group {
19
- display: flex;
20
- flex-wrap: nowrap;
21
- overflow: hidden;
22
- width: 100%;
23
- .clean-button {
24
- flex-grow: 1;
25
- flex-shrink: 1;
26
- flex-basis: 0;
27
- + .clean-button {
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
  }
@@ -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.ReactElement<CleanButtonProps> | React.ReactElement<CleanButtonProps>[];
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
  };
@@ -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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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 = ({ children }) => (react_1.default.createElement("div", { className: cx('clean-group') }, react_1.Children.toArray(children).map(item => (0, react_1.isValidElement)(item) && item.type === CleanButton ? item : null)));
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 Свойства. Поддерживаются свойства элементов button/a (зависит от того, передан ли asLink).
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('clean-button'), href: href }, restProps)));
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,
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Размер прозрачных кнопок (высота) по дизайн-гайдам.
3
+ */
4
+ export declare type CleanButtonSize = 's' | 'm' | 'l';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { CleanButtonSize } from './types';
3
+ export declare const CleanGroupSizeContext: import("react").Context<CleanButtonSize | undefined>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CleanGroupSizeContext = void 0;
4
+ const react_1 = require("react");
5
+ exports.CleanGroupSizeContext = (0, react_1.createContext)(undefined);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -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: handleClick } = callbackRef;
56
+ const { current: handler } = callbackRef;
57
57
  element &&
58
58
  element !== event.target &&
59
59
  !element.contains(event.target) &&
60
- (handleClick === null || handleClick === void 0 ? void 0 : handleClick(event));
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
+ ```