@megafon/ui-core 8.6.1 → 8.8.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.
@@ -53,14 +53,6 @@ export var PaginationPositionType = {
53
53
  BOTTOM_OUT: 'bottom-out',
54
54
  TOP_IN: 'top-in'
55
55
  };
56
- var getAutoPlayConfig = function getAutoPlayConfig(delay) {
57
- return {
58
- delay: delay,
59
- waitForTransition: false,
60
- disableOnInteraction: false,
61
- stopOnLastSlide: true
62
- };
63
- };
64
56
  var cn = cnCreate('mfui-banner');
65
57
  var Banner = function Banner(_ref) {
66
58
  var className = _ref.className,
@@ -294,7 +286,12 @@ var Banner = function Banner(_ref) {
294
286
  }, /*#__PURE__*/React.createElement(Swiper, _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.swiper), {
295
287
  className: cn('swiper', [classes.swiper]),
296
288
  loop: loop,
297
- autoplay: canAutoPlay ? getAutoPlayConfig(autoPlayDelay) : false,
289
+ autoplay: {
290
+ delay: delay,
291
+ waitForTransition: false,
292
+ disableOnInteraction: false,
293
+ stopOnLastSlide: true
294
+ },
298
295
  watchSlidesProgress: true,
299
296
  noSwipingClass: classes.noSwiping,
300
297
  breakpoints: showNextSlide ? SLIDES_SETTINGS : undefined,
@@ -23,7 +23,8 @@ export declare const ButtonSizes: {
23
23
  readonly LARGE: "large";
24
24
  };
25
25
  type ButtonSizesType = (typeof ButtonSizes)[keyof typeof ButtonSizes];
26
- export interface IButtonProps {
26
+ type ButtonLinkCommonAttributes = Pick<React.ButtonHTMLAttributes<HTMLButtonElement> & React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof (React.ButtonHTMLAttributes<HTMLButtonElement> | React.AnchorHTMLAttributes<HTMLAnchorElement>)>;
27
+ export interface IButtonProps extends Omit<ButtonLinkCommonAttributes, 'className' | 'type'> {
27
28
  /** Дополнительный класс корневого элемента */
28
29
  className?: string | string[];
29
30
  /** Дополнительные классы для внутренних элементов */
@@ -1,8 +1,18 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _extends from "@babel/runtime/helpers/extends";
4
+ import "core-js/modules/es.symbol.js";
4
5
  import "core-js/modules/es.array.concat.js";
6
+ import "core-js/modules/es.array.index-of.js";
5
7
  import "core-js/modules/es.array.is-array.js";
8
+ var __rest = this && this.__rest || function (s, e) {
9
+ var t = {};
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
6
16
  import * as React from 'react';
7
17
  import { cnCreate, detectTouch, filterDataAttrs } from '@megafon/ui-helpers';
8
18
  import Preloader, { PreloaderColors } from "../Preloader/Preloader";
@@ -44,46 +54,47 @@ var getLoaderSize = function getLoaderSize(size) {
44
54
  return size === ButtonSizes.SMALL || size === ButtonSizes.EXTRA_SMALL ? ButtonSizes.SMALL : ButtonSizes.MEDIUM;
45
55
  };
46
56
  var cn = cnCreate('mfui-button');
47
- var Button = function Button(_ref) {
48
- var _ref$classes = _ref.classes,
49
- _ref$classes2 = _ref$classes === void 0 ? {} : _ref$classes,
50
- rootClassName = _ref$classes2.root,
51
- contentClassName = _ref$classes2.content,
52
- innerClassName = _ref$classes2.inner,
53
- _ref$className = _ref.className,
54
- className = _ref$className === void 0 ? '' : _ref$className,
55
- _ref$theme = _ref.theme,
56
- theme = _ref$theme === void 0 ? 'green' : _ref$theme,
57
- _ref$type = _ref.type,
58
- type = _ref$type === void 0 ? 'primary' : _ref$type,
59
- href = _ref.href,
60
- download = _ref.download,
61
- target = _ref.target,
62
- rel = _ref.rel,
63
- _ref$actionType = _ref.actionType,
64
- actionType = _ref$actionType === void 0 ? 'button' : _ref$actionType,
65
- _ref$sizeAll = _ref.sizeAll,
66
- sizeAll = _ref$sizeAll === void 0 ? 'medium' : _ref$sizeAll,
67
- sizeWide = _ref.sizeWide,
68
- sizeDesktop = _ref.sizeDesktop,
69
- sizeTablet = _ref.sizeTablet,
70
- sizeMobile = _ref.sizeMobile,
71
- _ref$fullWidth = _ref.fullWidth,
72
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
73
- _ref$fullWidthMobile = _ref.fullWidthMobile,
74
- fullWidthMobile = _ref$fullWidthMobile === void 0 ? false : _ref$fullWidthMobile,
75
- _ref$showLoader = _ref.showLoader,
76
- showLoader = _ref$showLoader === void 0 ? false : _ref$showLoader,
77
- _ref$showArrow = _ref.showArrow,
78
- showArrow = _ref$showArrow === void 0 ? false : _ref$showArrow,
79
- icon = _ref.icon,
80
- disabled = _ref.disabled,
81
- children = _ref.children,
82
- _ref$ellipsis = _ref.ellipsis,
83
- ellipsis = _ref$ellipsis === void 0 ? false : _ref$ellipsis,
84
- onClick = _ref.onClick,
85
- dataAttrs = _ref.dataAttrs,
86
- buttonRef = _ref.buttonRef;
57
+ var Button = function Button(_a) {
58
+ var _a$classes = _a.classes;
59
+ _a$classes = _a$classes === void 0 ? {} : _a$classes;
60
+ var rootClassName = _a$classes.root,
61
+ contentClassName = _a$classes.content,
62
+ innerClassName = _a$classes.inner,
63
+ _a$className = _a.className,
64
+ className = _a$className === void 0 ? '' : _a$className,
65
+ _a$theme = _a.theme,
66
+ theme = _a$theme === void 0 ? 'green' : _a$theme,
67
+ _a$type = _a.type,
68
+ type = _a$type === void 0 ? 'primary' : _a$type,
69
+ href = _a.href,
70
+ download = _a.download,
71
+ target = _a.target,
72
+ rel = _a.rel,
73
+ _a$actionType = _a.actionType,
74
+ actionType = _a$actionType === void 0 ? 'button' : _a$actionType,
75
+ _a$sizeAll = _a.sizeAll,
76
+ sizeAll = _a$sizeAll === void 0 ? 'medium' : _a$sizeAll,
77
+ sizeWide = _a.sizeWide,
78
+ sizeDesktop = _a.sizeDesktop,
79
+ sizeTablet = _a.sizeTablet,
80
+ sizeMobile = _a.sizeMobile,
81
+ _a$fullWidth = _a.fullWidth,
82
+ fullWidth = _a$fullWidth === void 0 ? false : _a$fullWidth,
83
+ _a$fullWidthMobile = _a.fullWidthMobile,
84
+ fullWidthMobile = _a$fullWidthMobile === void 0 ? false : _a$fullWidthMobile,
85
+ _a$showLoader = _a.showLoader,
86
+ showLoader = _a$showLoader === void 0 ? false : _a$showLoader,
87
+ _a$showArrow = _a.showArrow,
88
+ showArrow = _a$showArrow === void 0 ? false : _a$showArrow,
89
+ icon = _a.icon,
90
+ disabled = _a.disabled,
91
+ children = _a.children,
92
+ _a$ellipsis = _a.ellipsis,
93
+ ellipsis = _a$ellipsis === void 0 ? false : _a$ellipsis,
94
+ onClick = _a.onClick,
95
+ dataAttrs = _a.dataAttrs,
96
+ buttonRef = _a.buttonRef,
97
+ rest = __rest(_a, ["classes", "className", "theme", "type", "href", "download", "target", "rel", "actionType", "sizeAll", "sizeWide", "sizeDesktop", "sizeTablet", "sizeMobile", "fullWidth", "fullWidthMobile", "showLoader", "showArrow", "icon", "disabled", "children", "ellipsis", "onClick", "dataAttrs", "buttonRef"]);
87
98
  var _React$useState = React.useState(false),
88
99
  _React$useState2 = _slicedToArray(_React$useState, 2),
89
100
  isTouch = _React$useState2[0],
@@ -173,7 +184,7 @@ var Button = function Button(_ref) {
173
184
  React.useEffect(function () {
174
185
  setTouch(detectTouch());
175
186
  }, []);
176
- return /*#__PURE__*/React.createElement(ElementType, _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
187
+ return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
177
188
  className: cn({
178
189
  type: type,
179
190
  theme: currentTheme,
@@ -1,8 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import './Header.scss';
3
3
  export interface IHeaderProps {
4
- /** Тег */
4
+ /** Тег (определяет базовый тег и стили) */
5
5
  as?: 'h1' | 'h2' | 'h3' | 'h5';
6
+ /** Тег для семантической разметки (переопределение тега без изменения стилей) */
7
+ tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
6
8
  /** Поведение текста при встраивании в широкий или узкий контейнер (только для h5) */
7
9
  space?: 'wide' | 'tight';
8
10
  /** Цвет */
@@ -7,6 +7,7 @@ var Header = function Header(_ref) {
7
7
  var addition = _ref.addition,
8
8
  _ref$as = _ref.as,
9
9
  level = _ref$as === void 0 ? 'h1' : _ref$as,
10
+ tag = _ref.tag,
10
11
  _ref$space = _ref.space,
11
12
  space = _ref$space === void 0 ? 'wide' : _ref$space,
12
13
  children = _ref.children,
@@ -18,7 +19,7 @@ var Header = function Header(_ref) {
18
19
  align = _ref$align === void 0 ? 'inherit' : _ref$align,
19
20
  margin = _ref.margin,
20
21
  onClick = _ref.onClick;
21
- var ElementType = level;
22
+ var ElementType = tag || level;
22
23
  var hasVariousSpaces = level === 'h5';
23
24
  var spaceLevel = hasVariousSpaces && space;
24
25
  return /*#__PURE__*/React.createElement(ElementType, _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
@@ -24,6 +24,8 @@ export interface ISnackbarProps {
24
24
  hasTextButton?: boolean;
25
25
  /** Отключение анимации закрытия */
26
26
  disableCloseAnimation?: boolean;
27
+ /** Отключение автоматического закрытия */
28
+ disableAutoClose?: boolean;
27
29
  /** Дополнительный класс корневого элемента */
28
30
  className?: string;
29
31
  /** Дополнительные классы для корневого и внутренних элементов */
@@ -102,6 +102,8 @@ var Snackbar = function Snackbar(_ref) {
102
102
  hasTextButton = _ref$hasTextButton === void 0 ? false : _ref$hasTextButton,
103
103
  _ref$disableCloseAnim = _ref.disableCloseAnimation,
104
104
  disableCloseAnimation = _ref$disableCloseAnim === void 0 ? false : _ref$disableCloseAnim,
105
+ _ref$disableAutoClose = _ref.disableAutoClose,
106
+ disableAutoClose = _ref$disableAutoClose === void 0 ? false : _ref$disableAutoClose,
105
107
  className = _ref.className,
106
108
  _ref$classes = _ref.classes,
107
109
  classes = _ref$classes === void 0 ? {} : _ref$classes,
@@ -125,8 +127,9 @@ var Snackbar = function Snackbar(_ref) {
125
127
  var isTimerType = type === TIMER;
126
128
  var isInfoType = type === INFO;
127
129
  var isHiddenIcon = isTimerType || !hasIcon && isInfoType;
128
- var isCustomIcon = isInfoType && icon;
130
+ var isCustomIcon = isInfoType && !!icon;
129
131
  var currentButtonText = buttonText && !isTimerType ? buttonText : defaultSnackbar.buttonText;
132
+ var hideTimer = disableAutoClose && !isTimerType;
130
133
  var setRef = function setRef(instance) {
131
134
  return setContainerRef(instance);
132
135
  };
@@ -187,7 +190,7 @@ var Snackbar = function Snackbar(_ref) {
187
190
  closed: !isOpened
188
191
  }, [classes.container]),
189
192
  radius: "rounded"
190
- }, !isHiddenIcon && renderedIcons, renderedTimer, /*#__PURE__*/React.createElement("div", {
193
+ }, !isHiddenIcon && renderedIcons, !hideTimer && renderedTimer, /*#__PURE__*/React.createElement("div", {
191
194
  className: cn('text-wrapper')
192
195
  }, /*#__PURE__*/React.createElement(Caption, {
193
196
  className: cn('text', {
@@ -63,14 +63,6 @@ var PaginationPositionType = exports.PaginationPositionType = {
63
63
  BOTTOM_OUT: 'bottom-out',
64
64
  TOP_IN: 'top-in'
65
65
  };
66
- var getAutoPlayConfig = function getAutoPlayConfig(delay) {
67
- return {
68
- delay: delay,
69
- waitForTransition: false,
70
- disableOnInteraction: false,
71
- stopOnLastSlide: true
72
- };
73
- };
74
66
  var cn = (0, _uiHelpers.cnCreate)('mfui-banner');
75
67
  var Banner = function Banner(_ref) {
76
68
  var className = _ref.className,
@@ -304,7 +296,12 @@ var Banner = function Banner(_ref) {
304
296
  }, /*#__PURE__*/React.createElement(Swiper, (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.swiper), {
305
297
  className: cn('swiper', [classes.swiper]),
306
298
  loop: loop,
307
- autoplay: canAutoPlay ? getAutoPlayConfig(autoPlayDelay) : false,
299
+ autoplay: {
300
+ delay: delay,
301
+ waitForTransition: false,
302
+ disableOnInteraction: false,
303
+ stopOnLastSlide: true
304
+ },
308
305
  watchSlidesProgress: true,
309
306
  noSwipingClass: classes.noSwiping,
310
307
  breakpoints: showNextSlide ? _slidesSettings["default"] : undefined,
@@ -23,7 +23,8 @@ export declare const ButtonSizes: {
23
23
  readonly LARGE: "large";
24
24
  };
25
25
  type ButtonSizesType = (typeof ButtonSizes)[keyof typeof ButtonSizes];
26
- export interface IButtonProps {
26
+ type ButtonLinkCommonAttributes = Pick<React.ButtonHTMLAttributes<HTMLButtonElement> & React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof (React.ButtonHTMLAttributes<HTMLButtonElement> | React.AnchorHTMLAttributes<HTMLAnchorElement>)>;
27
+ export interface IButtonProps extends Omit<ButtonLinkCommonAttributes, 'className' | 'type'> {
27
28
  /** Дополнительный класс корневого элемента */
28
29
  className?: string | string[];
29
30
  /** Дополнительные классы для внутренних элементов */
@@ -8,7 +8,9 @@ exports["default"] = exports.ButtonTypes = exports.ButtonThemes = exports.Button
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ require("core-js/modules/es.symbol.js");
11
12
  require("core-js/modules/es.array.concat.js");
13
+ require("core-js/modules/es.array.index-of.js");
12
14
  require("core-js/modules/es.array.is-array.js");
13
15
  var React = _interopRequireWildcard(require("react"));
14
16
  var _uiHelpers = require("@megafon/ui-helpers");
@@ -16,6 +18,14 @@ var _Preloader = _interopRequireWildcard(require("../Preloader/Preloader"));
16
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
21
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
22
+ var t = {};
23
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
24
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
25
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
26
+ }
27
+ return t;
28
+ };
19
29
  var Arrow = function Arrow(props) {
20
30
  return /*#__PURE__*/React.createElement("svg", (0, _extends2["default"])({
21
31
  viewBox: "0 0 40 40"
@@ -53,46 +63,47 @@ var getLoaderSize = function getLoaderSize(size) {
53
63
  return size === ButtonSizes.SMALL || size === ButtonSizes.EXTRA_SMALL ? ButtonSizes.SMALL : ButtonSizes.MEDIUM;
54
64
  };
55
65
  var cn = (0, _uiHelpers.cnCreate)('mfui-button');
56
- var Button = function Button(_ref) {
57
- var _ref$classes = _ref.classes,
58
- _ref$classes2 = _ref$classes === void 0 ? {} : _ref$classes,
59
- rootClassName = _ref$classes2.root,
60
- contentClassName = _ref$classes2.content,
61
- innerClassName = _ref$classes2.inner,
62
- _ref$className = _ref.className,
63
- className = _ref$className === void 0 ? '' : _ref$className,
64
- _ref$theme = _ref.theme,
65
- theme = _ref$theme === void 0 ? 'green' : _ref$theme,
66
- _ref$type = _ref.type,
67
- type = _ref$type === void 0 ? 'primary' : _ref$type,
68
- href = _ref.href,
69
- download = _ref.download,
70
- target = _ref.target,
71
- rel = _ref.rel,
72
- _ref$actionType = _ref.actionType,
73
- actionType = _ref$actionType === void 0 ? 'button' : _ref$actionType,
74
- _ref$sizeAll = _ref.sizeAll,
75
- sizeAll = _ref$sizeAll === void 0 ? 'medium' : _ref$sizeAll,
76
- sizeWide = _ref.sizeWide,
77
- sizeDesktop = _ref.sizeDesktop,
78
- sizeTablet = _ref.sizeTablet,
79
- sizeMobile = _ref.sizeMobile,
80
- _ref$fullWidth = _ref.fullWidth,
81
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
82
- _ref$fullWidthMobile = _ref.fullWidthMobile,
83
- fullWidthMobile = _ref$fullWidthMobile === void 0 ? false : _ref$fullWidthMobile,
84
- _ref$showLoader = _ref.showLoader,
85
- showLoader = _ref$showLoader === void 0 ? false : _ref$showLoader,
86
- _ref$showArrow = _ref.showArrow,
87
- showArrow = _ref$showArrow === void 0 ? false : _ref$showArrow,
88
- icon = _ref.icon,
89
- disabled = _ref.disabled,
90
- children = _ref.children,
91
- _ref$ellipsis = _ref.ellipsis,
92
- ellipsis = _ref$ellipsis === void 0 ? false : _ref$ellipsis,
93
- onClick = _ref.onClick,
94
- dataAttrs = _ref.dataAttrs,
95
- buttonRef = _ref.buttonRef;
66
+ var Button = function Button(_a) {
67
+ var _a$classes = _a.classes;
68
+ _a$classes = _a$classes === void 0 ? {} : _a$classes;
69
+ var rootClassName = _a$classes.root,
70
+ contentClassName = _a$classes.content,
71
+ innerClassName = _a$classes.inner,
72
+ _a$className = _a.className,
73
+ className = _a$className === void 0 ? '' : _a$className,
74
+ _a$theme = _a.theme,
75
+ theme = _a$theme === void 0 ? 'green' : _a$theme,
76
+ _a$type = _a.type,
77
+ type = _a$type === void 0 ? 'primary' : _a$type,
78
+ href = _a.href,
79
+ download = _a.download,
80
+ target = _a.target,
81
+ rel = _a.rel,
82
+ _a$actionType = _a.actionType,
83
+ actionType = _a$actionType === void 0 ? 'button' : _a$actionType,
84
+ _a$sizeAll = _a.sizeAll,
85
+ sizeAll = _a$sizeAll === void 0 ? 'medium' : _a$sizeAll,
86
+ sizeWide = _a.sizeWide,
87
+ sizeDesktop = _a.sizeDesktop,
88
+ sizeTablet = _a.sizeTablet,
89
+ sizeMobile = _a.sizeMobile,
90
+ _a$fullWidth = _a.fullWidth,
91
+ fullWidth = _a$fullWidth === void 0 ? false : _a$fullWidth,
92
+ _a$fullWidthMobile = _a.fullWidthMobile,
93
+ fullWidthMobile = _a$fullWidthMobile === void 0 ? false : _a$fullWidthMobile,
94
+ _a$showLoader = _a.showLoader,
95
+ showLoader = _a$showLoader === void 0 ? false : _a$showLoader,
96
+ _a$showArrow = _a.showArrow,
97
+ showArrow = _a$showArrow === void 0 ? false : _a$showArrow,
98
+ icon = _a.icon,
99
+ disabled = _a.disabled,
100
+ children = _a.children,
101
+ _a$ellipsis = _a.ellipsis,
102
+ ellipsis = _a$ellipsis === void 0 ? false : _a$ellipsis,
103
+ onClick = _a.onClick,
104
+ dataAttrs = _a.dataAttrs,
105
+ buttonRef = _a.buttonRef,
106
+ rest = __rest(_a, ["classes", "className", "theme", "type", "href", "download", "target", "rel", "actionType", "sizeAll", "sizeWide", "sizeDesktop", "sizeTablet", "sizeMobile", "fullWidth", "fullWidthMobile", "showLoader", "showArrow", "icon", "disabled", "children", "ellipsis", "onClick", "dataAttrs", "buttonRef"]);
96
107
  var _React$useState = React.useState(false),
97
108
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
98
109
  isTouch = _React$useState2[0],
@@ -182,7 +193,7 @@ var Button = function Button(_ref) {
182
193
  React.useEffect(function () {
183
194
  setTouch((0, _uiHelpers.detectTouch)());
184
195
  }, []);
185
- return /*#__PURE__*/React.createElement(ElementType, (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
196
+ return /*#__PURE__*/React.createElement(ElementType, (0, _extends2["default"])({}, rest, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
186
197
  className: cn({
187
198
  type: type,
188
199
  theme: currentTheme,
@@ -1,8 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import './Header.scss';
3
3
  export interface IHeaderProps {
4
- /** Тег */
4
+ /** Тег (определяет базовый тег и стили) */
5
5
  as?: 'h1' | 'h2' | 'h3' | 'h5';
6
+ /** Тег для семантической разметки (переопределение тега без изменения стилей) */
7
+ tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
6
8
  /** Поведение текста при встраивании в широкий или узкий контейнер (только для h5) */
7
9
  space?: 'wide' | 'tight';
8
10
  /** Цвет */
@@ -16,6 +16,7 @@ var Header = function Header(_ref) {
16
16
  var addition = _ref.addition,
17
17
  _ref$as = _ref.as,
18
18
  level = _ref$as === void 0 ? 'h1' : _ref$as,
19
+ tag = _ref.tag,
19
20
  _ref$space = _ref.space,
20
21
  space = _ref$space === void 0 ? 'wide' : _ref$space,
21
22
  children = _ref.children,
@@ -27,7 +28,7 @@ var Header = function Header(_ref) {
27
28
  align = _ref$align === void 0 ? 'inherit' : _ref$align,
28
29
  margin = _ref.margin,
29
30
  onClick = _ref.onClick;
30
- var ElementType = level;
31
+ var ElementType = tag || level;
31
32
  var hasVariousSpaces = level === 'h5';
32
33
  var spaceLevel = hasVariousSpaces && space;
33
34
  return /*#__PURE__*/React.createElement(ElementType, (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
@@ -24,6 +24,8 @@ export interface ISnackbarProps {
24
24
  hasTextButton?: boolean;
25
25
  /** Отключение анимации закрытия */
26
26
  disableCloseAnimation?: boolean;
27
+ /** Отключение автоматического закрытия */
28
+ disableAutoClose?: boolean;
27
29
  /** Дополнительный класс корневого элемента */
28
30
  className?: string;
29
31
  /** Дополнительные классы для корневого и внутренних элементов */
@@ -111,6 +111,8 @@ var Snackbar = function Snackbar(_ref) {
111
111
  hasTextButton = _ref$hasTextButton === void 0 ? false : _ref$hasTextButton,
112
112
  _ref$disableCloseAnim = _ref.disableCloseAnimation,
113
113
  disableCloseAnimation = _ref$disableCloseAnim === void 0 ? false : _ref$disableCloseAnim,
114
+ _ref$disableAutoClose = _ref.disableAutoClose,
115
+ disableAutoClose = _ref$disableAutoClose === void 0 ? false : _ref$disableAutoClose,
114
116
  className = _ref.className,
115
117
  _ref$classes = _ref.classes,
116
118
  classes = _ref$classes === void 0 ? {} : _ref$classes,
@@ -134,8 +136,9 @@ var Snackbar = function Snackbar(_ref) {
134
136
  var isTimerType = type === TIMER;
135
137
  var isInfoType = type === INFO;
136
138
  var isHiddenIcon = isTimerType || !hasIcon && isInfoType;
137
- var isCustomIcon = isInfoType && icon;
139
+ var isCustomIcon = isInfoType && !!icon;
138
140
  var currentButtonText = buttonText && !isTimerType ? buttonText : defaultSnackbar.buttonText;
141
+ var hideTimer = disableAutoClose && !isTimerType;
139
142
  var setRef = function setRef(instance) {
140
143
  return setContainerRef(instance);
141
144
  };
@@ -196,7 +199,7 @@ var Snackbar = function Snackbar(_ref) {
196
199
  closed: !isOpened
197
200
  }, [classes.container]),
198
201
  radius: "rounded"
199
- }, !isHiddenIcon && renderedIcons, renderedTimer, /*#__PURE__*/React.createElement("div", {
202
+ }, !isHiddenIcon && renderedIcons, !hideTimer && renderedTimer, /*#__PURE__*/React.createElement("div", {
200
203
  className: cn('text-wrapper')
201
204
  }, /*#__PURE__*/React.createElement(_Caption["default"], {
202
205
  className: cn('text', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-core",
3
- "version": "8.6.1",
3
+ "version": "8.8.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "styles"
@@ -50,7 +50,7 @@
50
50
  "@babel/preset-env": "^7.8.6",
51
51
  "@babel/preset-react": "^7.8.3",
52
52
  "@babel/preset-typescript": "^7.8.3",
53
- "@megafon/ui-icons": "^3.10.1",
53
+ "@megafon/ui-icons": "^3.11.0",
54
54
  "@svgr/core": "^2.4.1",
55
55
  "@testing-library/jest-dom": "^6.5.0",
56
56
  "@testing-library/react": "^16.0.1",
@@ -104,5 +104,5 @@
104
104
  "simplebar-react": "^3.2.5",
105
105
  "swiper": "^11.1.1"
106
106
  },
107
- "gitHead": "032abe223ae76eba0774e4907133843aead19c72"
107
+ "gitHead": "999ff51c6364eb3ad881247c77438ea74ba053fe"
108
108
  }
package/styles/colors.css CHANGED
@@ -30,19 +30,19 @@
30
30
  --overlay: #000000CC;
31
31
 
32
32
  /* Gradients Basic*/
33
- --gradientGreen1: linear-gradient(270deg, #AAFF00 0%, #00B956 50%);
34
- --gradientGreen2: linear-gradient(90deg, #00B956 50%, #1EFA64 100%);
35
- --gradientGreen3: linear-gradient(90deg, #00B956 50%, #00D1FF 100%);
36
- --gradientPurple1: linear-gradient(95.39deg, #731982 55%, #AA5AFF 90%);
37
- --gradientPurple2: linear-gradient(90deg, #731982 50%, #E64DE6 100%);
38
- --gradientPurple3: linear-gradient(90deg, #731982 50%, #00D2FF 100%);
39
- --gradientPurple4: linear-gradient(90deg, #731982 50%, #1B61AC 100%);
33
+ --gradientGreen1: linear-gradient(45deg, #00B956 50%, #AAFF00 100%);
34
+ --gradientGreen2: linear-gradient(45deg, #00B956 50%, #1EFA64 100%);
35
+ --gradientGreen3: linear-gradient(45deg, #00B956 50%, #00D1FF 100%);
36
+ --gradientPurple1: linear-gradient(45deg, #731982 50%, #AA5AFF 100%);
37
+ --gradientPurple2: linear-gradient(45deg, #731982 50%, #E64DE6 100%);
38
+ --gradientPurple3: linear-gradient(45deg, #731982 50%, #00D2FF 100%);
39
+ --gradientPurple4: linear-gradient(45deg, #731982 50%, #1B61AC 100%);
40
40
 
41
41
  /* Gradients Secondary*/
42
- --gradientLime: linear-gradient(90deg, #AAFF00 50%, #00D1FF 100%);
43
- --gradientGrass: linear-gradient(90deg, #1EFA64 50%, #00D1FF 100%);
44
- --gradientBerry1: linear-gradient(90deg, #AA5AFF 50%, #00D1FF 100%);
45
- --gradientBerry2: linear-gradient(90deg, #AA5AFF 50%, #E64DE6 100%);
42
+ --gradientLime: linear-gradient(45deg, #AAFF00 50%, #00D1FF 100%);
43
+ --gradientGrass: linear-gradient(45deg, #1EFA64 50%, #00D1FF 100%);
44
+ --gradientBerry1: linear-gradient(45deg, #AA5AFF 50%, #00D1FF 100%);
45
+ --gradientBerry2: linear-gradient(45deg, #AA5AFF 50%, #E64DE6 100%);
46
46
 
47
47
  /* Gradients System*/
48
48
  --gradientScrim: linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, #FFFFFF 20%);
@@ -107,17 +107,17 @@
107
107
  --buttonHoverPurpleSoft: #492B50;
108
108
  --buttonDown: #404D46;
109
109
  --overlay: #000000CC;
110
- --gradientGreen1: linear-gradient(270deg, #AAFF00 0%, #00B956 50%);
111
- --gradientGreen2: linear-gradient(90deg, #00B956 50%, #1EFA64 100%);
112
- --gradientGreen3: linear-gradient(90deg, #00B956 50%, #00D1FF 100%);
113
- --gradientPurple1: linear-gradient(95.39deg, #731982 55%, #AA5AFF 90%);
114
- --gradientPurple2: linear-gradient(90deg, #731982 50%, #E64DE6 100%);
115
- --gradientPurple3: linear-gradient(90deg, #731982 50%, #00D2FF 100%);
116
- --gradientPurple4: linear-gradient(90deg, #731982 50%, #1B61AC 100%);
117
- --gradientLime: linear-gradient(90deg, #AAFF00 50%, #00D1FF 100%);
118
- --gradientGrass: linear-gradient(90deg, #1EFA64 50%, #00D1FF 100%);
119
- --gradientBerry1: linear-gradient(90deg, #AA5AFF 50%, #00D1FF 100%);
120
- --gradientBerry2: linear-gradient(90deg, #AA5AFF 50%, #E64DE6 100%);
110
+ --gradientGreen1: linear-gradient(45deg, #00B956 50%, #AAFF00 100%);
111
+ --gradientGreen2: linear-gradient(45deg, #00B956 50%, #1EFA64 100%);
112
+ --gradientGreen3: linear-gradient(45deg, #00B956 50%, #00D1FF 100%);
113
+ --gradientPurple1: linear-gradient(45deg, #731982 50%, #AA5AFF 100%);
114
+ --gradientPurple2: linear-gradient(45deg, #731982 50%, #E64DE6 100%);
115
+ --gradientPurple3: linear-gradient(45deg, #731982 50%, #00D2FF 100%);
116
+ --gradientPurple4: linear-gradient(45deg, #731982 50%, #1B61AC 100%);
117
+ --gradientLime: linear-gradient(45deg, #AAFF00 50%, #00D1FF 100%);
118
+ --gradientGrass: linear-gradient(45deg, #1EFA64 50%, #00D1FF 100%);
119
+ --gradientBerry1: linear-gradient(45deg, #AA5AFF 50%, #00D1FF 100%);
120
+ --gradientBerry2: linear-gradient(45deg, #AA5AFF 50%, #E64DE6 100%);
121
121
  --gradientScrim: linear-gradient(270deg, rgba(31, 31, 31, 0) 0%, #1F1F1F 20%);
122
122
  --stcWhite: #FFFFFF;
123
123
  --stcBlack: #333333;