@sima-land/ui-nucleons 43.0.2 → 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 (81) hide show
  1. package/alert/index.js +5 -1
  2. package/arrow-button/index.d.ts +4 -5
  3. package/autocomplete/autocomplete.module.scss +6 -0
  4. package/autocomplete/index.d.ts +1 -9
  5. package/autocomplete/index.js +35 -37
  6. package/avatar/index.js +5 -1
  7. package/avatar/user.js +5 -1
  8. package/base-input/base-input.module.scss +3 -8
  9. package/base-input/index.d.ts +2 -2
  10. package/base-input/index.js +7 -4
  11. package/bottom-bar/index.js +6 -1
  12. package/box/index.js +5 -1
  13. package/button/index.js +5 -1
  14. package/card/slots.js +5 -1
  15. package/carousel/draggable.js +5 -1
  16. package/carousel/index.js +5 -1
  17. package/checkbox/index.js +5 -1
  18. package/checkbox-field/index.js +5 -1
  19. package/chips/index.js +5 -1
  20. package/clean-buttons/clean-buttons.module.scss +26 -15
  21. package/clean-buttons/index.d.ts +7 -2
  22. package/clean-buttons/index.js +16 -10
  23. package/clean-buttons/types.d.ts +4 -0
  24. package/clean-buttons/types.js +2 -0
  25. package/clean-buttons/utils.d.ts +3 -0
  26. package/clean-buttons/utils.js +5 -0
  27. package/dot-nav/index.js +5 -1
  28. package/dropdown/index.js +5 -1
  29. package/field-grid/index.js +5 -1
  30. package/helpers/styles.d.ts +0 -1
  31. package/helpers/styles.js +0 -1
  32. package/hint/index.js +5 -1
  33. package/hooks/breakpoint/index.js +5 -1
  34. package/hooks/identity.d.ts +1 -1
  35. package/hooks/identity.js +1 -1
  36. package/hooks/index.js +2 -2
  37. package/hooks/intersection/index.d.ts +8 -0
  38. package/hooks/intersection/index.js +26 -0
  39. package/hooks/intersection/readme.md +55 -0
  40. package/hooks/intersection/test-utils.d.ts +64 -0
  41. package/hooks/intersection/test-utils.js +136 -0
  42. package/hooks/keydown.d.ts +1 -1
  43. package/hooks/keydown.js +7 -7
  44. package/layout/index.js +5 -1
  45. package/link/index.js +5 -1
  46. package/masked-field/index.js +5 -1
  47. package/modal/index.js +5 -1
  48. package/modal/slots.js +5 -1
  49. package/package.json +44 -45
  50. package/phone-input/index.js +5 -1
  51. package/plate/index.js +5 -1
  52. package/range/index.d.ts +1 -1
  53. package/range/index.js +6 -1
  54. package/screen/slots.js +5 -1
  55. package/select/index.js +5 -1
  56. package/side-page/index.d.ts +3 -1
  57. package/side-page/index.js +5 -1
  58. package/side-page/side-page.module.scss +3 -1
  59. package/side-page/slots.d.ts +3 -1
  60. package/side-page/slots.js +6 -1
  61. package/stepper/index.js +5 -1
  62. package/stroked-svg/index.js +5 -1
  63. package/tabs/index.js +5 -1
  64. package/text/index.js +5 -1
  65. package/text-field/index.js +5 -1
  66. package/timer/index.js +5 -1
  67. package/toggle/index.js +5 -1
  68. package/tooltip/index.js +5 -1
  69. package/touch-slider/index.d.ts +1 -0
  70. package/touch-slider/index.js +3 -4
  71. package/touch-slider/touch-slider.module.scss +11 -9
  72. package/unknown-content/index.js +5 -1
  73. package/utils.scss +9 -0
  74. package/with-hint/index.js +5 -1
  75. package/with-hint/positioning-hint.js +5 -1
  76. package/with-tooltip/index.js +5 -1
  77. package/with-tooltip/positioning-tooltip.js +5 -1
  78. package/helpers/intersection-observer.d.ts +0 -40
  79. package/helpers/intersection-observer.js +0 -60
  80. package/with-in-viewport-observer/index.d.ts +0 -9
  81. 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,11 +1,11 @@
1
1
  /// <reference types="react" />
2
- declare type Size = 's' | 'l';
3
- declare type Direction = 'up' | 'right' | 'down' | 'left';
2
+ export declare type ArrowButtonSize = 's' | 'l';
3
+ export declare type ArrowDirection = 'up' | 'right' | 'down' | 'left';
4
4
  export interface ArrowButtonProps extends Omit<JSX.IntrinsicElements['button'], 'size' | 'children'> {
5
5
  /** Размер. */
6
- size?: Size;
6
+ size?: ArrowButtonSize;
7
7
  /** Направление (отвечает за иконку). */
8
- direction?: Direction;
8
+ direction?: ArrowDirection;
9
9
  /** Идентификатор для систем автоматизированного тестирования. */
10
10
  'data-testid'?: string;
11
11
  }
@@ -15,4 +15,3 @@ export interface ArrowButtonProps extends Omit<JSX.IntrinsicElements['button'],
15
15
  * @return Элемент.
16
16
  */
17
17
  export declare const ArrowButton: ({ size, direction, className, "data-testid": testId, ...buttonProps }: ArrowButtonProps) => JSX.Element;
18
- export {};
@@ -1,8 +1,14 @@
1
+ @use '../colors';
2
+
1
3
  .root {
2
4
  position: relative;
3
5
  width: var(--width, 320px);
4
6
  }
5
7
 
8
+ .arrow {
9
+ fill: colors.$basic-gray38;
10
+ }
11
+
6
12
  .field {
7
13
  width: 100%;
8
14
  }
@@ -22,14 +22,6 @@ export interface AutocompleteProps extends Omit<TextFieldProps, 'ref' | 'value'
22
22
  /**
23
23
  * Поле ввода с подсказками.
24
24
  * @param props Свойства.
25
- * @param props.defaultValue Значение по умолчанию.
26
- * @param props.items Элементы меню.
27
- * @param props.itemSize Размер элемента меню.
28
- * @param props.loading Нужно ли выводить состояние загрузки списка.
29
- * @param props.onSelect Сработает при выборе.
30
- * @param props.preset Пресет (со стрелкой или без).
31
- * @param props.renderItem Выведет содержимое элемента.
32
- * @param props.value Значение.
33
25
  * @return Элемент.
34
26
  */
35
- export declare const Autocomplete: ({ items, itemSize, onSelect, onChange, onClick, onKeyDown, style, className, value, defaultValue, loading, renderItem, preset, "data-testid": dataTestId, ...restProps }: AutocompleteProps) => JSX.Element;
27
+ export declare const Autocomplete: ({ items, itemSize, onSelect, onChange, onKeyDown, style, className, value, defaultValue, loading, renderItem, preset, "data-testid": dataTestId, ...restProps }: AutocompleteProps) => JSX.Element;
@@ -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];
@@ -39,41 +43,28 @@ const dropdown_1 = require("../dropdown");
39
43
  const dropdown_item_1 = require("../dropdown-item");
40
44
  const text_field_1 = require("../text-field");
41
45
  const dropdown_2 = require("../_internal/utils/dropdown");
42
- const bind_1 = __importDefault(require("classnames/bind"));
43
46
  const down_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Stroked/Arrows/down"));
44
- const colors_1 = require("../colors");
45
- const hooks_1 = require("../hooks");
47
+ const up_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Stroked/Arrows/up"));
46
48
  const dropdown_loading_1 = require("../_internal/dropdown-loading");
47
- const lodash_1 = require("lodash");
49
+ const bind_1 = __importDefault(require("classnames/bind"));
48
50
  const autocomplete_module_scss_1 = __importDefault(require("./autocomplete.module.scss"));
49
51
  const cx = bind_1.default.bind(autocomplete_module_scss_1.default);
50
52
  /**
51
53
  * Поле ввода с подсказками.
52
54
  * @param props Свойства.
53
- * @param props.defaultValue Значение по умолчанию.
54
- * @param props.items Элементы меню.
55
- * @param props.itemSize Размер элемента меню.
56
- * @param props.loading Нужно ли выводить состояние загрузки списка.
57
- * @param props.onSelect Сработает при выборе.
58
- * @param props.preset Пресет (со стрелкой или без).
59
- * @param props.renderItem Выведет содержимое элемента.
60
- * @param props.value Значение.
61
55
  * @return Элемент.
62
56
  */
63
57
  const Autocomplete = (_a) => {
64
- var { items, itemSize, onSelect, onChange, onClick, onKeyDown, style, className, value, defaultValue, loading, renderItem = String, preset = 'default', 'data-testid': dataTestId } = _a, restProps = __rest(_a, ["items", "itemSize", "onSelect", "onChange", "onClick", "onKeyDown", "style", "className", "value", "defaultValue", "loading", "renderItem", "preset", 'data-testid']);
58
+ var { items, itemSize, onSelect, onChange, onKeyDown, style, className, value, defaultValue, loading, renderItem = String, preset = 'default', 'data-testid': dataTestId } = _a, restProps = __rest(_a, ["items", "itemSize", "onSelect", "onChange", "onKeyDown", "style", "className", "value", "defaultValue", "loading", "renderItem", "preset", 'data-testid']);
65
59
  const osComponentRef = (0, react_1.useRef)(null);
66
- const rootRef = (0, react_1.useRef)(null);
67
- const fieldRef = (0, react_1.useRef)();
68
- const menuRef = (0, react_1.useRef)();
60
+ const fieldRef = (0, react_1.useRef)(null);
61
+ const menuRef = (0, react_1.useRef)(null);
69
62
  const [withMenu, toggleMenu] = (0, react_1.useState)(false);
70
63
  const [realValue, setRealValue] = (0, react_1.useState)(value || defaultValue);
71
64
  const [activeIndex, setActiveIndex] = (0, react_1.useState)(null);
72
- const canShowDropdown = preset === 'filled-only-list' ? withMenu && realValue && realValue.length > 0 : withMenu;
73
- const endAdornment = preset === 'default' ? react_1.default.createElement(down_1.default, { fill: colors_1.COLORS.get('basic-gray38') }) : undefined;
74
- (0, hooks_1.useOutsideClick)(rootRef, () => {
75
- toggleMenu(false);
76
- });
65
+ const needMenu = preset === 'filled-only-list' ? withMenu && realValue && realValue.length > 0 : withMenu;
66
+ const arrowIcon = needMenu ? (react_1.default.createElement(up_1.default, { className: cx('arrow'), "data-testid": 'autocomplete:arrow-up' })) : (react_1.default.createElement(down_1.default, { className: cx('arrow'), "data-testid": 'autocomplete:arrow-down' }));
67
+ const endAdornment = preset === 'default' ? arrowIcon : undefined;
77
68
  (0, react_1.useEffect)(() => {
78
69
  setRealValue(value);
79
70
  }, [value]);
@@ -93,40 +84,47 @@ const Autocomplete = (_a) => {
93
84
  });
94
85
  }
95
86
  }, [activeIndex]);
96
- return (react_1.default.createElement("div", { ref: rootRef, style: style, className: cx('root', className), "data-testid": dataTestId },
97
- react_1.default.createElement(text_field_1.TextField, Object.assign({}, restProps, { ref: fieldRef, focused: withMenu, endAdornment: endAdornment, "data-testid": 'autocomplete:field', variant: 'desktop', value: value, multiline: false, onClick: e => {
87
+ return (react_1.default.createElement("div", { style: style, className: cx('root', className), "data-testid": dataTestId },
88
+ react_1.default.createElement(text_field_1.TextField, Object.assign({}, restProps, { ref: fieldRef, focused: withMenu, endAdornment: endAdornment, "data-testid": 'autocomplete:field', variant: 'desktop', value: realValue, multiline: false, className: cx('field'), onFocus: () => {
98
89
  toggleMenu(true);
99
- onClick && onClick(e);
100
- }, onChange: (e) => {
90
+ setActiveIndex(null);
91
+ }, onBlur: () => {
92
+ toggleMenu(false);
93
+ }, onChange: (event) => {
101
94
  toggleMenu(true);
102
- setRealValue(e.target.value);
95
+ setRealValue(event.target.value);
103
96
  setActiveIndex(0);
104
- onChange && onChange(e);
105
- }, className: cx('field'), onKeyDown: (e) => {
97
+ onChange === null || onChange === void 0 ? void 0 : onChange(event);
98
+ }, onKeyDown: (event) => {
106
99
  const size = (items === null || items === void 0 ? void 0 : items.length) || 0;
107
100
  let nextIndex;
108
- switch (e.key) {
101
+ switch (event.key) {
109
102
  case 'ArrowDown':
110
- nextIndex = (!(0, lodash_1.isNull)(activeIndex) ? size + activeIndex + 1 : 0) % size;
103
+ nextIndex = (activeIndex !== null ? size + activeIndex + 1 : 0) % size;
111
104
  break;
112
105
  case 'ArrowUp':
113
106
  nextIndex = (size + Number(activeIndex) - 1) % size;
114
107
  break;
115
108
  case 'Enter':
116
- if (items && !(0, lodash_1.isNull)(activeIndex) && items.length > activeIndex) {
109
+ if (items && activeIndex !== null && items.length > activeIndex) {
117
110
  onSelect && onSelect(items[activeIndex]);
118
111
  toggleMenu(false);
119
112
  }
120
113
  break;
121
114
  }
122
- Number.isFinite(nextIndex) && setActiveIndex(nextIndex);
123
- onKeyDown && onKeyDown(e);
115
+ if (typeof nextIndex === 'number') {
116
+ event.preventDefault(); // не даём каретке в поле перемещаться
117
+ setActiveIndex(nextIndex);
118
+ }
119
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
124
120
  } })),
125
- canShowDropdown && (react_1.default.createElement(dropdown_1.Dropdown, Object.assign({}, (0, dropdown_2.placeDropdown)(restProps.size), { ref: menuRef, "data-testid": 'autocomplete:menu', className: cx('menu'), role: 'menu', customScrollbarProps: { osComponentRef } }), loading ? (react_1.default.createElement(dropdown_loading_1.DropdownLoading, { "data-testid": 'autocomplete:loading-area' })) : (react_1.default.createElement(react_1.default.Fragment, null, items && items.length > 0 ? (items.map((item, index) => (react_1.default.createElement(dropdown_item_1.DropdownItem, { size: itemSize, key: index, role: 'menuitem', checked: index === activeIndex, onClick: () => {
126
- onSelect && onSelect(item);
121
+ needMenu && (react_1.default.createElement(dropdown_1.Dropdown, Object.assign({}, (0, dropdown_2.placeDropdown)(restProps.size), { ref: menuRef, "data-testid": 'autocomplete:menu', className: cx('menu'), role: 'menu', customScrollbarProps: { osComponentRef } }), loading ? (react_1.default.createElement(dropdown_loading_1.DropdownLoading, { "data-testid": 'autocomplete:loading-area' })) : (react_1.default.createElement(react_1.default.Fragment, null, items && items.length > 0 ? (items.map((item, index) => (react_1.default.createElement(dropdown_item_1.DropdownItem, { size: itemSize, key: index, role: 'menuitem', checked: index === activeIndex, onMouseDown: event => {
122
+ // чтобы при нажатии на опцию предотвратить blur на поле
123
+ event.preventDefault();
124
+ }, onClick: () => {
125
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(item);
127
126
  setActiveIndex(null);
128
127
  toggleMenu(false);
129
- fieldRef.current && fieldRef.current.focus();
130
128
  } }, renderItem(item))))) : (react_1.default.createElement(dropdown_item_1.DropdownItem, { size: 'm', noHover: true }, "\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E"))))))));
131
129
  };
132
130
  exports.Autocomplete = Autocomplete;
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];
@@ -1,3 +1,5 @@
1
+ @use '../utils';
2
+
1
3
  .reset {
2
4
  border: 0;
3
5
  box-sizing: border-box;
@@ -38,14 +40,7 @@
38
40
  }
39
41
  &.multiline {
40
42
  resize: none;
41
-
42
- // скрытие полосы прокрутки
43
- scrollbar-width: none; // Firefox
44
- overflow: -moz-scrollbars-none; // old Firefox
45
- -ms-overflow-style: none; // IE, old Edge
46
- &::-webkit-scrollbar {
47
- display: none; // Chrome, Safari, Opera
48
- }
43
+ @include utils.hidden-scrollbars;
49
44
  }
50
45
  }
51
46
 
@@ -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];