@megafon/ui-core 3.0.1 → 3.2.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 (60) hide show
  1. package/CHANGELOG.md +51 -1
  2. package/dist/es/components/Banner/Banner.css +16 -0
  3. package/dist/es/components/Banner/Banner.js +10 -3
  4. package/dist/es/components/Button/Button.css +8 -8
  5. package/dist/es/components/Calendar/Calendar.d.ts +8 -0
  6. package/dist/es/components/Calendar/Calendar.js +20 -4
  7. package/dist/es/components/Calendar/components/Day/Day.d.ts +3 -0
  8. package/dist/es/components/Calendar/components/Day/Day.js +9 -5
  9. package/dist/es/components/Calendar/components/Month/Month.d.ts +5 -0
  10. package/dist/es/components/Calendar/components/Month/Month.js +14 -8
  11. package/dist/es/components/Carousel/Carousel.js +31 -6
  12. package/dist/es/components/Checkbox/Checkbox.css +3 -0
  13. package/dist/es/components/Collapse/Collapse.js +55 -28
  14. package/dist/es/components/ContentArea/ContentArea.css +32 -22
  15. package/dist/es/components/ContentArea/ContentArea.d.ts +3 -2
  16. package/dist/es/components/ContentArea/ContentArea.js +11 -11
  17. package/dist/es/components/Counter/Counter.d.ts +7 -0
  18. package/dist/es/components/Counter/Counter.js +15 -8
  19. package/dist/es/components/Logo/Logo.js +8 -10
  20. package/dist/es/components/NavArrow/NavArrow.d.ts +3 -0
  21. package/dist/es/components/NavArrow/NavArrow.js +8 -4
  22. package/dist/es/components/Paragraph/Paragraph.js +1 -1
  23. package/dist/es/components/Search/Search.d.ts +7 -0
  24. package/dist/es/components/Search/Search.js +16 -9
  25. package/dist/es/components/Switcher/Switcher.d.ts +4 -0
  26. package/dist/es/components/Switcher/Switcher.js +22 -10
  27. package/dist/es/components/Tabs/Tabs.css +1 -1
  28. package/dist/es/components/TextLink/TextLink.js +6 -8
  29. package/dist/es/components/Tile/Tile.d.ts +2 -0
  30. package/dist/es/components/Tile/Tile.js +9 -3
  31. package/dist/lib/components/Banner/Banner.css +16 -0
  32. package/dist/lib/components/Banner/Banner.js +10 -3
  33. package/dist/lib/components/Button/Button.css +8 -8
  34. package/dist/lib/components/Calendar/Calendar.d.ts +8 -0
  35. package/dist/lib/components/Calendar/Calendar.js +19 -3
  36. package/dist/lib/components/Calendar/components/Day/Day.d.ts +3 -0
  37. package/dist/lib/components/Calendar/components/Day/Day.js +8 -4
  38. package/dist/lib/components/Calendar/components/Month/Month.d.ts +5 -0
  39. package/dist/lib/components/Calendar/components/Month/Month.js +13 -7
  40. package/dist/lib/components/Carousel/Carousel.js +31 -6
  41. package/dist/lib/components/Checkbox/Checkbox.css +3 -0
  42. package/dist/lib/components/Collapse/Collapse.js +54 -30
  43. package/dist/lib/components/ContentArea/ContentArea.css +32 -22
  44. package/dist/lib/components/ContentArea/ContentArea.d.ts +3 -2
  45. package/dist/lib/components/ContentArea/ContentArea.js +11 -11
  46. package/dist/lib/components/Counter/Counter.d.ts +7 -0
  47. package/dist/lib/components/Counter/Counter.js +14 -7
  48. package/dist/lib/components/Logo/Logo.js +8 -10
  49. package/dist/lib/components/NavArrow/NavArrow.d.ts +3 -0
  50. package/dist/lib/components/NavArrow/NavArrow.js +7 -3
  51. package/dist/lib/components/Paragraph/Paragraph.js +1 -1
  52. package/dist/lib/components/Search/Search.d.ts +7 -0
  53. package/dist/lib/components/Search/Search.js +15 -8
  54. package/dist/lib/components/Switcher/Switcher.d.ts +4 -0
  55. package/dist/lib/components/Switcher/Switcher.js +25 -9
  56. package/dist/lib/components/Tabs/Tabs.css +1 -1
  57. package/dist/lib/components/TextLink/TextLink.js +6 -8
  58. package/dist/lib/components/Tile/Tile.d.ts +2 -0
  59. package/dist/lib/components/Tile/Tile.js +9 -3
  60. package/package.json +3 -3
@@ -5,30 +5,37 @@ h4,
5
5
  h5 {
6
6
  margin: 0;
7
7
  }
8
- .mfui-content-area_color_default {
9
- background-color: var(--content);
10
- }
11
- .mfui-content-area_color_white {
12
- background-color: var(--stcWhite);
8
+ .mfui-content-area {
9
+ /* deprecated */
10
+ /* deprecated */
13
11
  }
14
- .mfui-content-area_color_transparent {
12
+ .mfui-content-area_background-color_transparent {
15
13
  background-color: transparent;
16
14
  }
17
- .mfui-content-area_color_green {
15
+ .mfui-content-area_background-color_black {
16
+ background-color: var(--stcBlack);
17
+ }
18
+ .mfui-content-area_background-color_white {
19
+ background-color: var(--stcWhite);
20
+ }
21
+ .mfui-content-area_background-color_green {
18
22
  background-color: var(--brandGreen);
19
23
  }
20
- .mfui-content-area_color_purple {
24
+ .mfui-content-area_background-color_purple {
21
25
  background-color: var(--brandPurple);
22
26
  }
23
- .mfui-content-area_color_spbSky0 {
27
+ .mfui-content-area_background-color_spbSky0 {
24
28
  background-color: var(--spbSky0);
25
29
  }
26
- .mfui-content-area_color_spbSky1 {
30
+ .mfui-content-area_background-color_spbSky1 {
27
31
  background-color: var(--spbSky1);
28
32
  }
29
- .mfui-content-area_color_spbSky2 {
33
+ .mfui-content-area_background-color_spbSky2 {
30
34
  background-color: var(--spbSky2);
31
35
  }
36
+ .mfui-content-area_background-color_default {
37
+ background-color: var(--content);
38
+ }
32
39
  .mfui-content-area__inner {
33
40
  -webkit-box-sizing: content-box;
34
41
  box-sizing: content-box;
@@ -77,27 +84,30 @@ h5 {
77
84
  padding-right: 0;
78
85
  padding-left: 0;
79
86
  }
80
- .mfui-content-area__inner_color_default {
81
- background-color: var(--content);
87
+ .mfui-content-area__inner_background-color_transparent {
88
+ background-color: transparent;
82
89
  }
83
- .mfui-content-area__inner_color_white {
84
- background-color: var(--stcWhite);
90
+ .mfui-content-area__inner_background-color_black {
91
+ background-color: var(--stcBlack);
85
92
  }
86
- .mfui-content-area__inner_color_transparent {
87
- background-color: transparent;
93
+ .mfui-content-area__inner_background-color_white {
94
+ background-color: var(--stcWhite);
88
95
  }
89
- .mfui-content-area__inner_color_green {
96
+ .mfui-content-area__inner_background-color_green {
90
97
  background-color: var(--brandGreen);
91
98
  }
92
- .mfui-content-area__inner_color_purple {
99
+ .mfui-content-area__inner_background-color_purple {
93
100
  background-color: var(--brandPurple);
94
101
  }
95
- .mfui-content-area__inner_color_spbSky0 {
102
+ .mfui-content-area__inner_background-color_spbSky0 {
96
103
  background-color: var(--spbSky0);
97
104
  }
98
- .mfui-content-area__inner_color_spbSky1 {
105
+ .mfui-content-area__inner_background-color_spbSky1 {
99
106
  background-color: var(--spbSky1);
100
107
  }
101
- .mfui-content-area__inner_color_spbSky2 {
108
+ .mfui-content-area__inner_background-color_spbSky2 {
102
109
  background-color: var(--spbSky2);
103
110
  }
111
+ .mfui-content-area__inner_background-color_default {
112
+ background-color: var(--content);
113
+ }
@@ -1,14 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import './ContentArea.less';
3
3
  declare const BACKGROUND_COLORS: {
4
- readonly DEFAULT: "default";
5
- readonly WHITE: "white";
6
4
  readonly TRANSPARENT: "transparent";
5
+ readonly BLACK: "black";
6
+ readonly WHITE: "white";
7
7
  readonly GREEN: "green";
8
8
  readonly PURPLE: "purple";
9
9
  readonly SPB_SKY_0: "spbSky0";
10
10
  readonly SPB_SKY_1: "spbSky1";
11
11
  readonly SPB_SKY_2: "spbSky2";
12
+ readonly DEFAULT: "default";
12
13
  };
13
14
  export declare type BackgroundColorType = typeof BACKGROUND_COLORS[keyof typeof BACKGROUND_COLORS];
14
15
  declare const DisableIndents: {
@@ -4,14 +4,16 @@ import { cnCreate } from '@megafon/ui-helpers';
4
4
  import * as PropTypes from 'prop-types';
5
5
  import "./ContentArea.css";
6
6
  var BACKGROUND_COLORS = {
7
- DEFAULT: 'default',
8
- WHITE: 'white',
9
7
  TRANSPARENT: 'transparent',
8
+ BLACK: 'black',
9
+ WHITE: 'white',
10
10
  GREEN: 'green',
11
11
  PURPLE: 'purple',
12
12
  SPB_SKY_0: 'spbSky0',
13
13
  SPB_SKY_1: 'spbSky1',
14
- SPB_SKY_2: 'spbSky2'
14
+ SPB_SKY_2: 'spbSky2',
15
+ // @deprecated
16
+ DEFAULT: 'default'
15
17
  };
16
18
  var DisableIndents = {
17
19
  MOBILE: 'mobile',
@@ -22,20 +24,22 @@ var DisableIndents = {
22
24
  var cn = cnCreate('mfui-content-area');
23
25
 
24
26
  var ContentArea = function ContentArea(_ref) {
25
- var outerBackgroundColor = _ref.outerBackgroundColor,
26
- innerBackgroundColor = _ref.innerBackgroundColor,
27
+ var _ref$outerBackgroundC = _ref.outerBackgroundColor,
28
+ outerBackgroundColor = _ref$outerBackgroundC === void 0 ? 'transparent' : _ref$outerBackgroundC,
29
+ _ref$innerBackgroundC = _ref.innerBackgroundColor,
30
+ innerBackgroundColor = _ref$innerBackgroundC === void 0 ? 'transparent' : _ref$innerBackgroundC,
27
31
  disableIndents = _ref.disableIndents,
28
32
  children = _ref.children,
29
33
  className = _ref.className,
30
34
  classes = _ref.classes;
31
35
  return /*#__PURE__*/React.createElement("div", {
32
36
  className: cn({
33
- color: outerBackgroundColor
37
+ 'background-color': outerBackgroundColor
34
38
  }, [className, classes === null || classes === void 0 ? void 0 : classes.root])
35
39
  }, /*#__PURE__*/React.createElement("div", {
36
40
  className: cn('inner', {
37
41
  'disable-indents': disableIndents,
38
- color: innerBackgroundColor
42
+ 'background-color': innerBackgroundColor
39
43
  }, classes === null || classes === void 0 ? void 0 : classes.inner)
40
44
  }, children));
41
45
  };
@@ -50,8 +54,4 @@ ContentArea.propTypes = {
50
54
  outerBackgroundColor: PropTypes.oneOf(Object.values(BACKGROUND_COLORS)),
51
55
  innerBackgroundColor: PropTypes.oneOf(Object.values(BACKGROUND_COLORS))
52
56
  };
53
- ContentArea.defaultProps = {
54
- outerBackgroundColor: 'transparent',
55
- innerBackgroundColor: 'transparent'
56
- };
57
57
  export default ContentArea;
@@ -1,6 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import './Counter.less';
3
3
  export interface ICounterProps {
4
+ /** Дополнительные data атрибуты к внутренним элементам */
5
+ dataAttrs?: {
6
+ root?: Record<string, string>;
7
+ minus?: Record<string, string>;
8
+ plus?: Record<string, string>;
9
+ input?: Record<string, string>;
10
+ };
4
11
  /** Переводит компонент в контролируемое состояние */
5
12
  isControlled?: boolean;
6
13
  /** Внешнее значение для контролируемого компонента */
@@ -2,7 +2,7 @@ import "core-js/modules/es.number.constructor";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _extends from "@babel/runtime/helpers/extends";
4
4
  import * as React from 'react';
5
- import { cnCreate } from '@megafon/ui-helpers';
5
+ import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
6
6
  import * as PropTypes from 'prop-types';
7
7
  import "./Counter.css";
8
8
 
@@ -25,7 +25,8 @@ var IconPlus = function IconPlus(props) {
25
25
  var cn = cnCreate('mfui-counter');
26
26
 
27
27
  var Counter = function Counter(_ref) {
28
- var _ref$isControlled = _ref.isControlled,
28
+ var dataAttrs = _ref.dataAttrs,
29
+ _ref$isControlled = _ref.isControlled,
29
30
  isControlled = _ref$isControlled === void 0 ? false : _ref$isControlled,
30
31
  _ref$value = _ref.value,
31
32
  value = _ref$value === void 0 ? 0 : _ref$value,
@@ -96,40 +97,46 @@ var Counter = function Counter(_ref) {
96
97
  handleValueChange(max);
97
98
  }
98
99
  }, [handleValueChange, min, max]);
99
- return /*#__PURE__*/React.createElement("div", {
100
+ return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
100
101
  className: cn({
101
102
  disabled: disabled
102
103
  }, [className, classes.root])
103
- }, /*#__PURE__*/React.createElement("button", {
104
+ }), /*#__PURE__*/React.createElement("button", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.minus), {
104
105
  className: cn('btn', {
105
106
  left: true
106
107
  }, classes.buttonMinus),
107
108
  type: "button",
108
109
  disabled: disabled || (isControlled ? value : counter) <= min,
109
110
  onClick: handleMinusClick
110
- }, /*#__PURE__*/React.createElement(IconMinus, {
111
+ }), /*#__PURE__*/React.createElement(IconMinus, {
111
112
  className: cn('icon')
112
113
  })), /*#__PURE__*/React.createElement("div", {
113
114
  className: cn('input-box')
114
- }, /*#__PURE__*/React.createElement("input", {
115
+ }, /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input), {
115
116
  className: cn('input', classes.input),
116
117
  value: isControlled ? value : counter,
117
118
  onChange: handleInputChange,
118
119
  onBlur: handleInputBlur,
119
120
  disabled: disabled
120
- })), /*#__PURE__*/React.createElement("button", {
121
+ }))), /*#__PURE__*/React.createElement("button", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.plus), {
121
122
  className: cn('btn', {
122
123
  right: true
123
124
  }, classes.buttonPlus),
124
125
  type: "button",
125
126
  disabled: disabled || counter >= max || value >= max,
126
127
  onClick: handlePlusClick
127
- }, /*#__PURE__*/React.createElement(IconPlus, {
128
+ }), /*#__PURE__*/React.createElement(IconPlus, {
128
129
  className: cn('icon')
129
130
  })));
130
131
  };
131
132
 
132
133
  Counter.propTypes = {
134
+ dataAttrs: PropTypes.shape({
135
+ root: PropTypes.objectOf(PropTypes.string.isRequired),
136
+ minus: PropTypes.objectOf(PropTypes.string.isRequired),
137
+ plus: PropTypes.objectOf(PropTypes.string.isRequired),
138
+ input: PropTypes.objectOf(PropTypes.string.isRequired)
139
+ }),
133
140
  isControlled: PropTypes.bool,
134
141
  value: PropTypes.number,
135
142
  initialValue: PropTypes.number,
@@ -37,10 +37,14 @@ var cn = cnCreate('mfui-logo');
37
37
 
38
38
  var Logo = function Logo(_ref) {
39
39
  var className = _ref.className,
40
- color = _ref.color,
41
- view = _ref.view,
42
- target = _ref.target,
43
- href = _ref.href;
40
+ _ref$color = _ref.color,
41
+ color = _ref$color === void 0 ? 'green' : _ref$color,
42
+ _ref$view = _ref.view,
43
+ view = _ref$view === void 0 ? 'horizontal' : _ref$view,
44
+ _ref$target = _ref.target,
45
+ target = _ref$target === void 0 ? '_blank' : _ref$target,
46
+ _ref$href = _ref.href,
47
+ href = _ref$href === void 0 ? '/' : _ref$href;
44
48
  var images = {
45
49
  'green-horizontal': greenHorizontalImg,
46
50
  'green-vertical': greenVerticalImg
@@ -66,10 +70,4 @@ Logo.propTypes = {
66
70
  href: PropTypes.string,
67
71
  className: PropTypes.string
68
72
  };
69
- Logo.defaultProps = {
70
- color: 'green',
71
- view: 'horizontal',
72
- target: '_blank',
73
- href: '/'
74
- };
75
73
  export default Logo;
@@ -11,6 +11,9 @@ export declare const View: {
11
11
  declare type ThemeType = typeof Theme[keyof typeof Theme];
12
12
  declare type ViewType = typeof View[keyof typeof View];
13
13
  export interface INavArrowProps {
14
+ dataAttrs?: {
15
+ root?: Record<string, string>;
16
+ };
14
17
  className?: string;
15
18
  theme?: ThemeType;
16
19
  view?: ViewType;
@@ -2,7 +2,7 @@ import "core-js/modules/es.object.values";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import * as React from 'react';
4
4
  import "./NavArrow.css";
5
- import { cnCreate } from '@megafon/ui-helpers';
5
+ import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
6
6
  import * as PropTypes from 'prop-types';
7
7
 
8
8
  var ArrowLeft = function ArrowLeft(props) {
@@ -32,7 +32,8 @@ export var View = {
32
32
  var cn = cnCreate('mfui-nav-arrow');
33
33
 
34
34
  var NavArrow = function NavArrow(_ref) {
35
- var className = _ref.className,
35
+ var dataAttrs = _ref.dataAttrs,
36
+ className = _ref.className,
36
37
  _ref$view = _ref.view,
37
38
  view = _ref$view === void 0 ? View.PREV : _ref$view,
38
39
  _ref$theme = _ref.theme,
@@ -53,17 +54,20 @@ var NavArrow = function NavArrow(_ref) {
53
54
  });
54
55
  }
55
56
  }, [view]);
56
- return /*#__PURE__*/React.createElement("button", {
57
+ return /*#__PURE__*/React.createElement("button", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
57
58
  type: "button",
58
59
  className: cn({
59
60
  theme: theme
60
61
  }, className),
61
62
  onClick: onClick,
62
63
  disabled: disabled
63
- }, renderIcon());
64
+ }), renderIcon());
64
65
  };
65
66
 
66
67
  NavArrow.propTypes = {
68
+ dataAttrs: PropTypes.shape({
69
+ root: PropTypes.objectOf(PropTypes.string.isRequired)
70
+ }),
67
71
  className: PropTypes.string,
68
72
  theme: PropTypes.oneOf(Object.values(Theme)),
69
73
  view: PropTypes.oneOf(Object.values(View)),
@@ -18,7 +18,7 @@ var Paragraph = function Paragraph(_ref) {
18
18
  size = _ref$size === void 0 ? 'regular' : _ref$size,
19
19
  align = _ref.align,
20
20
  _ref$color = _ref.color,
21
- color = _ref$color === void 0 ? COLORS.DEFAULT : _ref$color,
21
+ color = _ref$color === void 0 ? 'default' : _ref$color,
22
22
  className = _ref.className,
23
23
  _ref$hasMargin = _ref.hasMargin,
24
24
  hasMargin = _ref$hasMargin === void 0 ? true : _ref$hasMargin,
@@ -13,6 +13,13 @@ export declare type SearchItem = {
13
13
  searchView?: ElementOrString;
14
14
  };
15
15
  export interface ISearchProps {
16
+ /** Дополнительные data атрибуты к внутренним элементам */
17
+ dataAttrs?: {
18
+ root?: Record<string, string>;
19
+ searchField?: Record<string, string>;
20
+ submit?: Record<string, string>;
21
+ item?: Record<string, string>;
22
+ };
16
23
  /** Значение */
17
24
  value?: string;
18
25
  /** Заголовок поля */
@@ -7,7 +7,7 @@ import "core-js/modules/es.string.split";
7
7
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
8
8
  import _extends from "@babel/runtime/helpers/extends";
9
9
  import React from 'react';
10
- import { cnCreate } from '@megafon/ui-helpers';
10
+ import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
11
11
  import debounce from 'lodash.debounce';
12
12
  import * as PropTypes from 'prop-types';
13
13
  import InputLabel from "../InputLabel/InputLabel";
@@ -28,7 +28,8 @@ export var Verification = {
28
28
  var cn = cnCreate('mfui-search');
29
29
 
30
30
  var Search = function Search(_ref) {
31
- var _ref$value = _ref.value,
31
+ var dataAttrs = _ref.dataAttrs,
32
+ _ref$value = _ref.value,
32
33
  value = _ref$value === void 0 ? '' : _ref$value,
33
34
  label = _ref.label,
34
35
  placeholder = _ref.placeholder,
@@ -160,18 +161,18 @@ var Search = function Search(_ref) {
160
161
  }));
161
162
  };
162
163
 
163
- return /*#__PURE__*/React.createElement("div", {
164
+ return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
164
165
  className: cn({
165
166
  open: isFocused,
166
167
  disabled: disabled
167
168
  }, [className])
168
- }, label && /*#__PURE__*/React.createElement(InputLabel, null, label, required && /*#__PURE__*/React.createElement("span", {
169
+ }), label && /*#__PURE__*/React.createElement(InputLabel, null, label, required && /*#__PURE__*/React.createElement("span", {
169
170
  className: cn('require-mark')
170
171
  }, "*")), /*#__PURE__*/React.createElement("div", {
171
172
  className: cn('control', {
172
173
  error: verification === Verification.ERROR
173
174
  }, [classes === null || classes === void 0 ? void 0 : classes.control])
174
- }, /*#__PURE__*/React.createElement("input", {
175
+ }, /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.searchField), {
175
176
  className: cn('search-field'),
176
177
  placeholder: placeholder,
177
178
  value: searchQuery,
@@ -183,10 +184,10 @@ var Search = function Search(_ref) {
183
184
  disabled: disabled,
184
185
  type: "text",
185
186
  autoComplete: "off"
186
- }), !hideIcon && /*#__PURE__*/React.createElement("div", {
187
+ })), !hideIcon && /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.submit), {
187
188
  className: cn('icon-box'),
188
189
  onClick: handleSearchSubmit
189
- }, /*#__PURE__*/React.createElement(SearchIcon, {
190
+ }), /*#__PURE__*/React.createElement(SearchIcon, {
190
191
  className: cn('icon', [classes === null || classes === void 0 ? void 0 : classes.icon])
191
192
  })), !!items.length && /*#__PURE__*/React.createElement("div", {
192
193
  className: cn('list')
@@ -195,14 +196,14 @@ var Search = function Search(_ref) {
195
196
  }, items.map(function (_ref2, i) {
196
197
  var itemValue = _ref2.value,
197
198
  searchView = _ref2.searchView;
198
- return /*#__PURE__*/React.createElement("div", {
199
+ return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
199
200
  className: cn('list-item', {
200
201
  active: activeIndex === i
201
202
  }),
202
203
  onMouseDown: handleSelectSubmit(i),
203
204
  onMouseEnter: handleHoverItem(i),
204
205
  key: i
205
- }, /*#__PURE__*/React.createElement("div", {
206
+ }), /*#__PURE__*/React.createElement("div", {
206
207
  className: cn('item-title', [classes === null || classes === void 0 ? void 0 : classes.listItemTitle])
207
208
  }, searchView || highlightString(itemValue)));
208
209
  })))), noticeText && /*#__PURE__*/React.createElement("div", {
@@ -214,6 +215,12 @@ var Search = function Search(_ref) {
214
215
  };
215
216
 
216
217
  Search.propTypes = {
218
+ dataAttrs: PropTypes.shape({
219
+ root: PropTypes.objectOf(PropTypes.string.isRequired),
220
+ searchField: PropTypes.objectOf(PropTypes.string.isRequired),
221
+ submit: PropTypes.objectOf(PropTypes.string.isRequired),
222
+ item: PropTypes.objectOf(PropTypes.string.isRequired)
223
+ }),
217
224
  value: PropTypes.string,
218
225
  label: PropTypes.string,
219
226
  placeholder: PropTypes.string,
@@ -1,6 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import './Switcher.less';
3
3
  export interface ISwitcherProps {
4
+ /** Дополнительные data атрибуты к внутренним элементам */
5
+ dataAttrs?: {
6
+ root?: Record<string, string>;
7
+ };
4
8
  /** Дополнительный класс корневого элемента */
5
9
  className?: string;
6
10
  /** Управление состоянием вкл/выкл компонента */
@@ -1,15 +1,18 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import * as React from 'react';
2
- import { cnCreate, detectTouch } from '@megafon/ui-helpers';
3
+ import { cnCreate, detectTouch, filterDataAttrs } from '@megafon/ui-helpers';
4
+ import * as PropTypes from 'prop-types';
3
5
  import "./Switcher.css";
4
6
  var cn = cnCreate('mfui-switcher');
5
7
 
6
- var Switcher = function Switcher(props) {
7
- var className = props.className,
8
- _props$checked = props.checked,
9
- checked = _props$checked === void 0 ? false : _props$checked,
10
- _props$disabled = props.disabled,
11
- disabled = _props$disabled === void 0 ? false : _props$disabled,
12
- onChange = props.onChange;
8
+ var Switcher = function Switcher(_ref) {
9
+ var dataAttrs = _ref.dataAttrs,
10
+ className = _ref.className,
11
+ _ref$checked = _ref.checked,
12
+ checked = _ref$checked === void 0 ? false : _ref$checked,
13
+ _ref$disabled = _ref.disabled,
14
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
15
+ onChange = _ref.onChange;
13
16
  var isTouch = detectTouch();
14
17
 
15
18
  var handleChange = function handleChange(e) {
@@ -20,16 +23,25 @@ var Switcher = function Switcher(props) {
20
23
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
21
24
  };
22
25
 
23
- return /*#__PURE__*/React.createElement("div", {
26
+ return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
24
27
  className: cn({
25
28
  checked: checked,
26
29
  disabled: disabled,
27
30
  'no-touch': !isTouch
28
31
  }, className),
29
32
  onClick: handleChange
30
- }, /*#__PURE__*/React.createElement("div", {
33
+ }), /*#__PURE__*/React.createElement("div", {
31
34
  className: cn('pointer')
32
35
  }));
33
36
  };
34
37
 
38
+ Switcher.propTypes = {
39
+ dataAttrs: PropTypes.shape({
40
+ root: PropTypes.objectOf(PropTypes.string.isRequired)
41
+ }),
42
+ className: PropTypes.string,
43
+ checked: PropTypes.bool,
44
+ disabled: PropTypes.bool,
45
+ onChange: PropTypes.func
46
+ };
35
47
  export default Switcher;
@@ -121,7 +121,7 @@
121
121
  width: 16px;
122
122
  height: 16px;
123
123
  border-radius: 50%;
124
- background-color: var(--content);
124
+ background-color: var(--stcBlack);
125
125
  -webkit-transform: translateY(-50%);
126
126
  transform: translateY(-50%);
127
127
  cursor: pointer;
@@ -6,9 +6,12 @@ import Link from "../Link/Link";
6
6
  var cn = cnCreate('mfui-text-link');
7
7
 
8
8
  var TextLink = function TextLink(_ref) {
9
- var underlineVisibility = _ref.underlineVisibility,
10
- underlineStyle = _ref.underlineStyle,
11
- color = _ref.color,
9
+ var _ref$underlineVisibil = _ref.underlineVisibility,
10
+ underlineVisibility = _ref$underlineVisibil === void 0 ? 'hover' : _ref$underlineVisibil,
11
+ _ref$underlineStyle = _ref.underlineStyle,
12
+ underlineStyle = _ref$underlineStyle === void 0 ? 'solid' : _ref$underlineStyle,
13
+ _ref$color = _ref.color,
14
+ color = _ref$color === void 0 ? 'blue' : _ref$color,
12
15
  className = _ref.className,
13
16
  target = _ref.target,
14
17
  href = _ref.href,
@@ -41,9 +44,4 @@ TextLink.propTypes = {
41
44
  }),
42
45
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element, PropTypes.string, PropTypes.node])
43
46
  };
44
- TextLink.defaultProps = {
45
- underlineVisibility: 'hover',
46
- underlineStyle: 'solid',
47
- color: 'blue'
48
- };
49
47
  export default TextLink;
@@ -20,6 +20,8 @@ declare type ShadowType = typeof Shadow[keyof typeof Shadow];
20
20
  export interface ITileProps {
21
21
  /** Ссылка */
22
22
  href?: string;
23
+ /** Атрибут для открытия ссылки */
24
+ target?: '_self' | '_blank';
23
25
  /** Тема */
24
26
  theme?: ThemeType;
25
27
  /** Радиус границы */
@@ -33,7 +33,9 @@ var Tile = function Tile(_ref) {
33
33
  _ref$isInteractive = _ref.isInteractive,
34
34
  isInteractive = _ref$isInteractive === void 0 ? false : _ref$isInteractive,
35
35
  onClick = _ref.onClick,
36
- dataAttrs = _ref.dataAttrs;
36
+ dataAttrs = _ref.dataAttrs,
37
+ _ref$target = _ref.target,
38
+ target = _ref$target === void 0 ? '_self' : _ref$target;
37
39
 
38
40
  var handleClick = function handleClick(e) {
39
41
  onClick === null || onClick === void 0 ? void 0 : onClick(e);
@@ -51,7 +53,8 @@ var Tile = function Tile(_ref) {
51
53
  onClick: handleClick
52
54
  }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), href && /*#__PURE__*/React.createElement("a", {
53
55
  href: href,
54
- className: cn('link')
56
+ className: cn('link'),
57
+ target: target
55
58
  }, children), !href && children);
56
59
  };
57
60
 
@@ -63,6 +66,9 @@ Tile.propTypes = {
63
66
  className: PropTypes.string,
64
67
  isInteractive: PropTypes.bool,
65
68
  onClick: PropTypes.func,
66
- dataAttrs: PropTypes.objectOf(PropTypes.string.isRequired)
69
+ dataAttrs: PropTypes.shape({
70
+ root: PropTypes.objectOf(PropTypes.string.isRequired)
71
+ }),
72
+ target: PropTypes.oneOf(['_self', '_blank'])
67
73
  };
68
74
  export default Tile;
@@ -17,6 +17,15 @@
17
17
  height: 540px;
18
18
  }
19
19
  }
20
+ @media screen and (min-width: 1024px) {
21
+ .mfui-banner__slide {
22
+ -webkit-backface-visibility: hidden;
23
+ backface-visibility: hidden;
24
+ opacity: 0;
25
+ -webkit-transition: opacity 0.2s;
26
+ transition: opacity 0.2s;
27
+ }
28
+ }
20
29
  @media screen and (min-width: 1024px) and (max-width: 1279px) {
21
30
  .mfui-banner__slide {
22
31
  height: 420px;
@@ -27,6 +36,13 @@
27
36
  height: 400px;
28
37
  }
29
38
  }
39
+ @media screen and (min-width: 1024px) {
40
+ .mfui-banner .swiper-slide-visible {
41
+ opacity: 1;
42
+ -webkit-transition: opacity 0.4s;
43
+ transition: opacity 0.4s;
44
+ }
45
+ }
30
46
  .mfui-banner__arrow {
31
47
  position: absolute;
32
48
  top: 50%;
@@ -187,6 +187,7 @@ var Banner = function Banner(_ref) {
187
187
  className: cn('swiper'),
188
188
  loop: loop,
189
189
  autoplay: autoPlay ? getAutoPlayConfig(autoPlayDelay) : false,
190
+ watchSlidesVisibility: true,
190
191
  onSwiper: handleSwiper,
191
192
  onReachBeginning: handleReachBeginning,
192
193
  onReachEnd: handleReachEnd,
@@ -199,14 +200,20 @@ var Banner = function Banner(_ref) {
199
200
  key: i,
200
201
  className: cn('slide', classes === null || classes === void 0 ? void 0 : classes.slide)
201
202
  }), child);
202
- })), /*#__PURE__*/React.createElement(_NavArrow["default"], (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrowPrev), {
203
+ })), /*#__PURE__*/React.createElement(_NavArrow["default"], {
204
+ dataAttrs: {
205
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrowPrev
206
+ },
203
207
  className: cn('arrow', {
204
208
  prev: true
205
209
  }, [classes.arrow]),
206
210
  onClick: handlePrevClick,
207
211
  disabled: !loop && isBeginning,
208
212
  theme: navArrowTheme
209
- })), /*#__PURE__*/React.createElement(_NavArrow["default"], (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrowNext), {
213
+ }), /*#__PURE__*/React.createElement(_NavArrow["default"], {
214
+ dataAttrs: {
215
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrowNext
216
+ },
210
217
  className: cn('arrow', {
211
218
  next: true
212
219
  }, [classes.arrow]),
@@ -214,7 +221,7 @@ var Banner = function Banner(_ref) {
214
221
  onClick: handleNextClick,
215
222
  disabled: !loop && isEnd,
216
223
  theme: navArrowTheme
217
- })), /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.pagination), {
224
+ }), /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.pagination), {
218
225
  className: cn('pagination', {
219
226
  theme: navTheme,
220
227
  'bottom-offset': withPaginationBottomOffset