@megafon/ui-shared 6.4.0 → 6.5.1

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 (34) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/es/components/Container/Container.css +36 -0
  3. package/dist/es/components/DarkGradientCards/DarkGradientCards.css +18 -0
  4. package/dist/es/components/DarkGradientCards/DarkGradientCards.d.ts +28 -0
  5. package/dist/es/components/DarkGradientCards/DarkGradientCards.js +88 -0
  6. package/dist/es/components/DarkGradientCards/components/DarkGradientCard.css +175 -0
  7. package/dist/es/components/DarkGradientCards/components/DarkGradientCard.d.ts +15 -0
  8. package/dist/es/components/DarkGradientCards/components/DarkGradientCard.js +52 -0
  9. package/dist/es/components/DarkGradientCards/types.d.ts +21 -0
  10. package/dist/es/components/DarkGradientCards/types.js +0 -0
  11. package/dist/es/components/ImageBanner/ImageBanner.d.ts +2 -0
  12. package/dist/es/components/ImageBanner/ImageBanner.js +5 -1
  13. package/dist/es/helpers/getColumnConfig.d.ts +1 -1
  14. package/dist/es/hooks/useResolutions.d.ts +1 -0
  15. package/dist/es/hooks/useResolutions.js +12 -1
  16. package/dist/es/index.d.ts +2 -0
  17. package/dist/es/index.js +2 -0
  18. package/dist/lib/components/Container/Container.css +36 -0
  19. package/dist/lib/components/DarkGradientCards/DarkGradientCards.css +18 -0
  20. package/dist/lib/components/DarkGradientCards/DarkGradientCards.d.ts +28 -0
  21. package/dist/lib/components/DarkGradientCards/DarkGradientCards.js +104 -0
  22. package/dist/lib/components/DarkGradientCards/components/DarkGradientCard.css +175 -0
  23. package/dist/lib/components/DarkGradientCards/components/DarkGradientCard.d.ts +15 -0
  24. package/dist/lib/components/DarkGradientCards/components/DarkGradientCard.js +65 -0
  25. package/dist/lib/components/DarkGradientCards/types.d.ts +21 -0
  26. package/dist/lib/components/DarkGradientCards/types.js +1 -0
  27. package/dist/lib/components/ImageBanner/ImageBanner.d.ts +2 -0
  28. package/dist/lib/components/ImageBanner/ImageBanner.js +5 -1
  29. package/dist/lib/helpers/getColumnConfig.d.ts +1 -1
  30. package/dist/lib/hooks/useResolutions.d.ts +1 -0
  31. package/dist/lib/hooks/useResolutions.js +12 -1
  32. package/dist/lib/index.d.ts +2 -0
  33. package/dist/lib/index.js +16 -0
  34. package/package.json +3 -3
@@ -3723,6 +3723,9 @@ h5 {
3723
3723
  .mfui-container .mfui-dark-gradient-cards + .mfui-side-picture-cards {
3724
3724
  margin-top: 56px;
3725
3725
  }
3726
+ .mfui-container .mfui-dark-gradient-cards + .mfui-info-cards {
3727
+ margin-top: 56px;
3728
+ }
3726
3729
  @media screen and (min-width: 768px) and (max-width: 1023px) {
3727
3730
  .mfui-container .mfui-dark-gradient-cards + .mfui-benefits-icons {
3728
3731
  margin-top: 48px;
@@ -3784,6 +3787,9 @@ h5 {
3784
3787
  .mfui-container .mfui-dark-gradient-cards + .mfui-side-picture-cards {
3785
3788
  margin-top: 48px;
3786
3789
  }
3790
+ .mfui-container .mfui-dark-gradient-cards + .mfui-info-cards {
3791
+ margin-top: 48px;
3792
+ }
3787
3793
  }
3788
3794
  @media screen and (max-width: 767px) {
3789
3795
  .mfui-container .mfui-dark-gradient-cards + .mfui-benefits-icons {
@@ -3840,6 +3846,9 @@ h5 {
3840
3846
  .mfui-container .mfui-dark-gradient-cards + .mfui-side-picture-cards {
3841
3847
  margin-top: 40px;
3842
3848
  }
3849
+ .mfui-container .mfui-dark-gradient-cards + .mfui-info-cards {
3850
+ margin-top: 40px;
3851
+ }
3843
3852
  }
3844
3853
  .mfui-container .mfui-side-picture-cards + .mfui-benefits-icons {
3845
3854
  margin-top: 56px;
@@ -3901,6 +3910,9 @@ h5 {
3901
3910
  .mfui-container .mfui-side-picture-cards + .mfui-dark-gradient-cards {
3902
3911
  margin-top: 56px;
3903
3912
  }
3913
+ .mfui-container .mfui-side-picture-cards + .mfui-info-cards {
3914
+ margin-top: 56px;
3915
+ }
3904
3916
  @media screen and (min-width: 768px) and (max-width: 1023px) {
3905
3917
  .mfui-container .mfui-side-picture-cards + .mfui-benefits-icons {
3906
3918
  margin-top: 48px;
@@ -3962,6 +3974,9 @@ h5 {
3962
3974
  .mfui-container .mfui-side-picture-cards + .mfui-dark-gradient-cards {
3963
3975
  margin-top: 48px;
3964
3976
  }
3977
+ .mfui-container .mfui-side-picture-cards + .mfui-info-cards {
3978
+ margin-top: 48px;
3979
+ }
3965
3980
  }
3966
3981
  @media screen and (max-width: 767px) {
3967
3982
  .mfui-container .mfui-side-picture-cards + .mfui-benefits-icons {
@@ -4018,6 +4033,9 @@ h5 {
4018
4033
  .mfui-container .mfui-side-picture-cards + .mfui-dark-gradient-cards {
4019
4034
  margin-top: 40px;
4020
4035
  }
4036
+ .mfui-container .mfui-side-picture-cards + .mfui-info-cards {
4037
+ margin-top: 40px;
4038
+ }
4021
4039
  }
4022
4040
  .mfui-container .mfui-info-cards + .mfui-benefits-icons {
4023
4041
  margin-top: 56px;
@@ -4070,6 +4088,12 @@ h5 {
4070
4088
  .mfui-container .mfui-info-cards + .mfui-steps {
4071
4089
  margin-top: 56px;
4072
4090
  }
4091
+ .mfui-container .mfui-info-cards + .mfui-dark-gradient-cards {
4092
+ margin-top: 56px;
4093
+ }
4094
+ .mfui-container .mfui-info-cards + .mfui-side-picture-cards {
4095
+ margin-top: 56px;
4096
+ }
4073
4097
  @media screen and (min-width: 768px) and (max-width: 1023px) {
4074
4098
  .mfui-container .mfui-info-cards + .mfui-benefits-icons {
4075
4099
  margin-top: 48px;
@@ -4122,6 +4146,12 @@ h5 {
4122
4146
  .mfui-container .mfui-info-cards + .mfui-steps {
4123
4147
  margin-top: 48px;
4124
4148
  }
4149
+ .mfui-container .mfui-info-cards + .mfui-dark-gradient-cards {
4150
+ margin-top: 48px;
4151
+ }
4152
+ .mfui-container .mfui-info-cards + .mfui-side-picture-cards {
4153
+ margin-top: 48px;
4154
+ }
4125
4155
  }
4126
4156
  @media screen and (max-width: 767px) {
4127
4157
  .mfui-container .mfui-info-cards + .mfui-benefits-icons {
@@ -4175,4 +4205,10 @@ h5 {
4175
4205
  .mfui-container .mfui-info-cards + .mfui-steps {
4176
4206
  margin-top: 40px;
4177
4207
  }
4208
+ .mfui-container .mfui-info-cards + .mfui-dark-gradient-cards {
4209
+ margin-top: 40px;
4210
+ }
4211
+ .mfui-container .mfui-info-cards + .mfui-side-picture-cards {
4212
+ margin-top: 40px;
4213
+ }
4178
4214
  }
@@ -0,0 +1,18 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5 {
6
+ margin: 0;
7
+ }
8
+ .mfui-dark-gradient-cards__cards {
9
+ display: -webkit-box;
10
+ display: -ms-flexbox;
11
+ display: flex;
12
+ gap: 20px;
13
+ }
14
+ .mfui-dark-gradient-cards__cards .mfui-dark-gradient-cards__card {
15
+ -webkit-box-flex: 1;
16
+ -ms-flex-positive: 1;
17
+ flex-grow: 1;
18
+ }
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { Carousel } from '@megafon/ui-core';
3
+ import { ItemType } from './types';
4
+ import './DarkGradientCards.less';
5
+ declare type CarouselProps = React.ComponentProps<typeof Carousel>;
6
+ export interface IDarkGradientCards {
7
+ /** Карточки. Минимальное количество 3 карточки */
8
+ items: ItemType[];
9
+ /** Тема навигации для карусели */
10
+ carouselNavTheme?: CarouselProps['navTheme'];
11
+ /** Цвет градиента для карусели */
12
+ carouselGradientColor?: CarouselProps['gradientColor'];
13
+ /** Дополнительный класс для компонента */
14
+ className?: string;
15
+ /** Дополнительные классы для внутренних элементов */
16
+ classes?: {
17
+ root?: string;
18
+ item?: string;
19
+ };
20
+ /** Дополнительные data атрибуты к внутренним элементам */
21
+ dataAttrs?: {
22
+ root?: Record<string, string>;
23
+ carousel?: Record<string, string>;
24
+ item?: Record<string, string>;
25
+ };
26
+ }
27
+ declare const DarkGradientCards: React.FC<IDarkGradientCards>;
28
+ export default DarkGradientCards;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ require("core-js/modules/es.array.map.js");
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _uiCore = require("@megafon/ui-core");
17
+
18
+ var _uiHelpers = require("@megafon/ui-helpers");
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _useResolutions2 = _interopRequireDefault(require("../../hooks/useResolutions"));
23
+
24
+ var _DarkGradientCard = _interopRequireDefault(require("./components/DarkGradientCard"));
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
+
28
+ var carouselParams = (0, _defineProperty2["default"])({}, _uiHelpers.breakpoints.MOBILE_SMALL_START, {
29
+ slidesPerView: 'auto',
30
+ spaceBetween: 20
31
+ });
32
+ var CAROUSEL_THRESHOLD = 5;
33
+ var MIN_ITEMS_COUNT = 3;
34
+ var cn = (0, _uiHelpers.cnCreate)('mfui-dark-gradient-cards');
35
+
36
+ var DarkGradientCards = function DarkGradientCards(_ref) {
37
+ var items = _ref.items,
38
+ _ref$carouselGradient = _ref.carouselGradientColor,
39
+ carouselGradientColor = _ref$carouselGradient === void 0 ? 'default' : _ref$carouselGradient,
40
+ _ref$carouselNavTheme = _ref.carouselNavTheme,
41
+ carouselNavTheme = _ref$carouselNavTheme === void 0 ? 'light' : _ref$carouselNavTheme,
42
+ className = _ref.className,
43
+ _ref$classes = _ref.classes,
44
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
45
+ dataAttrs = _ref.dataAttrs;
46
+
47
+ var _useResolutions = (0, _useResolutions2["default"])(),
48
+ isDesktopWide = _useResolutions.isDesktopWide;
49
+
50
+ var isCarouselActive = items.length > MIN_ITEMS_COUNT || items.length === MIN_ITEMS_COUNT && !isDesktopWide;
51
+ var cards = items.map(function (item, i) {
52
+ return /*#__PURE__*/_react["default"].createElement(_DarkGradientCard["default"], (0, _extends2["default"])({
53
+ className: cn('card')
54
+ }, item, {
55
+ key: item.title + i,
56
+ size: i === 0 ? 'big' : 'small',
57
+ classes: {
58
+ root: classes.item
59
+ },
60
+ dataAttrs: {
61
+ root: (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1))
62
+ }
63
+ }));
64
+ });
65
+
66
+ if (items.length < MIN_ITEMS_COUNT) {
67
+ return null;
68
+ }
69
+
70
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
71
+ className: cn([className, classes.root])
72
+ }), isCarouselActive ? /*#__PURE__*/_react["default"].createElement(_uiCore.Carousel, {
73
+ dataAttrs: {
74
+ root: (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.carousel))
75
+ },
76
+ slidesSettings: carouselParams,
77
+ navTheme: carouselNavTheme,
78
+ threshold: CAROUSEL_THRESHOLD,
79
+ gradient: true,
80
+ gradientColor: carouselGradientColor
81
+ }, cards) : /*#__PURE__*/_react["default"].createElement("div", {
82
+ className: cn('cards')
83
+ }, cards));
84
+ };
85
+
86
+ DarkGradientCards.propTypes = {
87
+ items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
88
+ imageSrc: _propTypes["default"].string.isRequired,
89
+ title: _propTypes["default"].string.isRequired,
90
+ subtitle: _propTypes["default"].string,
91
+ moreIcon: _propTypes["default"].element,
92
+ moreText: _propTypes["default"].string,
93
+ href: _propTypes["default"].string,
94
+ target: _propTypes["default"].oneOf(['_self', '_blank', '_parent', '_top']),
95
+ rel: _propTypes["default"].string
96
+ }).isRequired).isRequired,
97
+ className: _propTypes["default"].string,
98
+ classes: _propTypes["default"].objectOf(_propTypes["default"].string),
99
+ dataAttrs: _propTypes["default"].objectOf(_propTypes["default"].object),
100
+ carouselNavTheme: _propTypes["default"].oneOf(['light', 'green']),
101
+ carouselGradientColor: _propTypes["default"].oneOf(['green', 'default', 'black', 'spbSky0', 'spbSky1', 'spbSky2'])
102
+ };
103
+ var _default = DarkGradientCards;
104
+ exports["default"] = _default;
@@ -0,0 +1,175 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5 {
6
+ margin: 0;
7
+ }
8
+ .mfui-dark-gradient-card {
9
+ position: relative;
10
+ display: -webkit-box;
11
+ display: -ms-flexbox;
12
+ display: flex;
13
+ width: 298px;
14
+ min-height: 420px;
15
+ padding: 24px;
16
+ border-radius: 24px;
17
+ color: var(--stcWhite);
18
+ text-decoration: none;
19
+ background-position: center;
20
+ background-size: cover;
21
+ }
22
+ @media screen and (max-width: 359px) {
23
+ .mfui-dark-gradient-card {
24
+ width: 265px;
25
+ }
26
+ }
27
+ @media screen and (min-width: 768px) and (max-width: 1023px) {
28
+ .mfui-dark-gradient-card {
29
+ width: 211px;
30
+ }
31
+ }
32
+ @media screen and (min-width: 1024px) {
33
+ .mfui-dark-gradient-card {
34
+ min-height: 520px;
35
+ }
36
+ }
37
+ @media screen and (min-width: 1024px) and (max-width: 1279px) {
38
+ .mfui-dark-gradient-card {
39
+ width: 285px;
40
+ }
41
+ }
42
+ @media screen and (min-width: 1280px) and (max-width: 1439px) {
43
+ .mfui-dark-gradient-card {
44
+ width: 265px;
45
+ }
46
+ }
47
+ @media screen and (min-width: 1280px) {
48
+ .mfui-dark-gradient-card {
49
+ padding: 32px;
50
+ }
51
+ }
52
+ @media screen and (min-width: 1440px) {
53
+ .mfui-dark-gradient-card {
54
+ width: 345px;
55
+ }
56
+ }
57
+ .mfui-dark-gradient-card:hover {
58
+ text-decoration: none;
59
+ }
60
+ .mfui-dark-gradient-card:before {
61
+ content: '';
62
+ position: absolute;
63
+ top: 0;
64
+ right: 0;
65
+ bottom: 0;
66
+ left: 0;
67
+ z-index: 0;
68
+ border-radius: inherit;
69
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#000000));
70
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), #000000);
71
+ }
72
+ .mfui-dark-gradient-card_active:hover.mfui-dark-gradient-card:before {
73
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.9)));
74
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9));
75
+ }
76
+ @media screen and (min-width: 768px) and (max-width: 1023px) {
77
+ .mfui-dark-gradient-card_size_big {
78
+ width: 441px;
79
+ }
80
+ }
81
+ @media screen and (min-width: 1024px) and (max-width: 1279px) {
82
+ .mfui-dark-gradient-card_size_big {
83
+ width: 591px;
84
+ }
85
+ }
86
+ @media screen and (min-width: 1280px) and (max-width: 1439px) {
87
+ .mfui-dark-gradient-card_size_big {
88
+ width: 550px;
89
+ }
90
+ }
91
+ @media screen and (min-width: 1440px) {
92
+ .mfui-dark-gradient-card_size_big {
93
+ width: 710px;
94
+ }
95
+ }
96
+ .mfui-dark-gradient-card__inner {
97
+ position: relative;
98
+ z-index: 1;
99
+ display: -webkit-box;
100
+ display: -ms-flexbox;
101
+ display: flex;
102
+ -webkit-box-orient: vertical;
103
+ -webkit-box-direction: normal;
104
+ -ms-flex-direction: column;
105
+ flex-direction: column;
106
+ gap: 12px;
107
+ width: 100%;
108
+ }
109
+ .mfui-dark-gradient-card__title {
110
+ margin-top: auto;
111
+ }
112
+ .mfui-dark-gradient-card_size_small .mfui-dark-gradient-card__title {
113
+ font-weight: 500;
114
+ font-size: 18px;
115
+ line-height: 24px;
116
+ letter-spacing: 0.5px;
117
+ }
118
+ @media screen and (min-width: 1280px) {
119
+ .mfui-dark-gradient-card_size_small .mfui-dark-gradient-card__title {
120
+ font-size: 20px;
121
+ line-height: 28px;
122
+ }
123
+ }
124
+ .mfui-dark-gradient-card_size_big .mfui-dark-gradient-card__title {
125
+ font-weight: 600;
126
+ font-size: 22px;
127
+ line-height: 28px;
128
+ letter-spacing: 0.5px;
129
+ }
130
+ @media screen and (min-width: 768px) and (max-width: 1023px) {
131
+ .mfui-dark-gradient-card_size_big .mfui-dark-gradient-card__title {
132
+ font-size: 26px;
133
+ line-height: 32px;
134
+ }
135
+ }
136
+ @media screen and (min-width: 1024px) {
137
+ .mfui-dark-gradient-card_size_big .mfui-dark-gradient-card__title {
138
+ font-size: 28px;
139
+ line-height: 36px;
140
+ }
141
+ }
142
+ @media screen and (min-width: 1280px) {
143
+ .mfui-dark-gradient-card_size_big .mfui-dark-gradient-card__title {
144
+ font-size: 32px;
145
+ line-height: 40px;
146
+ }
147
+ }
148
+ .mfui-dark-gradient-card__subtitle {
149
+ font-size: 15px;
150
+ line-height: 24px;
151
+ }
152
+ .mfui-dark-gradient-card__more {
153
+ font-size: 15px;
154
+ line-height: 24px;
155
+ font-weight: 500;
156
+ display: -webkit-box;
157
+ display: -ms-flexbox;
158
+ display: flex;
159
+ gap: 8px;
160
+ -webkit-box-align: start;
161
+ -ms-flex-align: start;
162
+ align-items: flex-start;
163
+ }
164
+ .mfui-dark-gradient-card__more-icon {
165
+ display: block;
166
+ width: 24px;
167
+ min-width: 24px;
168
+ max-height: 24px;
169
+ }
170
+ .mfui-dark-gradient-card__more-icon svg {
171
+ display: block;
172
+ width: 100%;
173
+ height: 100%;
174
+ fill: var(--stcWhite);
175
+ }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ItemType } from '../types';
3
+ import './DarkGradientCard.less';
4
+ export declare type DarkGradientCardType = ItemType & {
5
+ size?: 'small' | 'big';
6
+ className?: string;
7
+ classes?: {
8
+ root?: string;
9
+ };
10
+ dataAttrs?: {
11
+ root?: Record<string, string>;
12
+ };
13
+ };
14
+ declare const DarkGradientCard: React.FC<DarkGradientCardType>;
15
+ export default DarkGradientCard;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _uiHelpers = require("@megafon/ui-helpers");
13
+
14
+ var _setRelAttribute = require("../../../helpers/setRelAttribute");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
+
18
+ var cn = (0, _uiHelpers.cnCreate)('mfui-dark-gradient-card');
19
+
20
+ var DarkGradientCard = function DarkGradientCard(_ref) {
21
+ var imageSrc = _ref.imageSrc,
22
+ title = _ref.title,
23
+ subtitle = _ref.subtitle,
24
+ moreIcon = _ref.moreIcon,
25
+ moreText = _ref.moreText,
26
+ href = _ref.href,
27
+ _ref$target = _ref.target,
28
+ target = _ref$target === void 0 ? '_self' : _ref$target,
29
+ rel = _ref.rel,
30
+ _ref$size = _ref.size,
31
+ size = _ref$size === void 0 ? 'small' : _ref$size,
32
+ className = _ref.className,
33
+ _ref$classes = _ref.classes,
34
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
35
+ dataAttrs = _ref.dataAttrs;
36
+ var isLink = !!href;
37
+ var ElementType = isLink ? 'a' : 'div';
38
+ var currentRel = (0, _setRelAttribute.setRelAttribute)(rel, target);
39
+ return /*#__PURE__*/_react["default"].createElement(ElementType, (0, _extends2["default"])({
40
+ className: cn({
41
+ size: size,
42
+ active: isLink
43
+ }, [className, classes.root])
44
+ }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root, {
45
+ href: href,
46
+ target: isLink ? target : undefined,
47
+ rel: isLink ? currentRel : undefined,
48
+ style: {
49
+ backgroundImage: "url(".concat(imageSrc, ")")
50
+ }
51
+ }), /*#__PURE__*/_react["default"].createElement("div", {
52
+ className: cn('inner')
53
+ }, /*#__PURE__*/_react["default"].createElement("div", {
54
+ className: cn('title')
55
+ }, (0, _uiHelpers.convert)(title, {})), subtitle && /*#__PURE__*/_react["default"].createElement("div", {
56
+ className: cn('subtitle')
57
+ }, (0, _uiHelpers.convert)(subtitle, {})), !!moreText && /*#__PURE__*/_react["default"].createElement("div", {
58
+ className: cn('more')
59
+ }, !!moreIcon && /*#__PURE__*/_react["default"].createElement("div", {
60
+ className: cn('more-icon')
61
+ }, moreIcon), (0, _uiHelpers.convert)(moreText, {}))));
62
+ };
63
+
64
+ var _default = DarkGradientCard;
65
+ exports["default"] = _default;
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ declare type TargetType = '_self' | '_blank' | '_parent' | '_top';
3
+ export declare type ItemType = {
4
+ /** Изображение */
5
+ imageSrc: string;
6
+ /** Заголовок */
7
+ title: string;
8
+ /** Подзаголовок */
9
+ subtitle?: string;
10
+ /** Иконка */
11
+ moreIcon?: JSX.Element;
12
+ /** Текст */
13
+ moreText?: string;
14
+ /** Ссылка */
15
+ href?: string;
16
+ /** Атрибут ссылки target */
17
+ target?: TargetType;
18
+ /** Атрибут ссылки rel */
19
+ rel?: string;
20
+ };
21
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";
@@ -72,6 +72,8 @@ export interface IImageBannerProps {
72
72
  imageDesktop2x?: string;
73
73
  /** Значение тега alt для изображения */
74
74
  imageAlt?: string;
75
+ /** Приоритет загрузки изображения */
76
+ fetchPriority?: 'auto' | 'high' | 'low';
75
77
  /** Выравнивание изображения по вертикали (по умолчанию center) */
76
78
  imageVerticalAlign?: ImageVerticalAlignType;
77
79
  /** Высота баннера зависит от высоты контента (по умолчанию фиксированная) */
@@ -100,6 +100,8 @@ var ImageBanner = function ImageBanner(_ref2) {
100
100
  imageDesktop2x = _ref2$imageDesktop2x === void 0 ? '' : _ref2$imageDesktop2x,
101
101
  _ref2$imageAlt = _ref2.imageAlt,
102
102
  imageAlt = _ref2$imageAlt === void 0 ? '' : _ref2$imageAlt,
103
+ _ref2$fetchPriority = _ref2.fetchPriority,
104
+ fetchPriority = _ref2$fetchPriority === void 0 ? 'auto' : _ref2$fetchPriority,
103
105
  _ref2$imageVerticalAl = _ref2.imageVerticalAlign,
104
106
  imageVerticalAlign = _ref2$imageVerticalAl === void 0 ? ImageVerticalAlign.CENTER : _ref2$imageVerticalAl,
105
107
  title = _ref2.title,
@@ -181,7 +183,8 @@ var ImageBanner = function ImageBanner(_ref2) {
181
183
  className: cn('image', [classes.image]),
182
184
  src: imageMobile || imageMobile2x,
183
185
  srcSet: imageMobile2x ? "".concat(imageMobile2x, " 2x") : undefined,
184
- alt: imageAlt
186
+ alt: imageAlt,
187
+ fetchPriority: fetchPriority
185
188
  })));
186
189
 
187
190
  return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
@@ -231,6 +234,7 @@ ImageBanner.propTypes = {
231
234
  imageDesktop: PropTypes.string,
232
235
  imageDesktop2x: PropTypes.string,
233
236
  imageAlt: PropTypes.string,
237
+ fetchPriority: PropTypes.oneOf(['auto', 'high', 'low']),
234
238
  imageVerticalAlign: PropTypes.oneOf(Object.values(ImageVerticalAlign)),
235
239
  autoHeight: PropTypes.bool,
236
240
  isImageFullWidth: PropTypes.bool,
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const getColumnConfig: (isFullWidth: boolean) => Pick<React.PropsWithChildren<import("../../../ui-core/dist/lib/components/Grid/GridColumn").IGridColumn>, "all" | "wide" | "mobile" | "desktop" | "tablet">;
2
+ export declare const getColumnConfig: (isFullWidth: boolean) => Pick<React.PropsWithChildren<import("@megafon/ui-core/dist/lib/components/Grid/GridColumn").IGridColumn>, "all" | "wide" | "mobile" | "desktop" | "tablet">;
@@ -1,4 +1,5 @@
1
1
  export declare type useResolutionsReturnType = {
2
+ isDesktopWide: boolean;
2
3
  isDesktop: boolean;
3
4
  isMobile: boolean;
4
5
  isTablet: boolean;
@@ -18,7 +18,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
18
18
  var MOBILE_MIDDLE_END = _uiHelpers.breakpoints.MOBILE_MIDDLE_END,
19
19
  MOBILE_BIG_START = _uiHelpers.breakpoints.MOBILE_BIG_START,
20
20
  MOBILE_BIG_END = _uiHelpers.breakpoints.MOBILE_BIG_END,
21
- DESKTOP_SMALL_START = _uiHelpers.breakpoints.DESKTOP_SMALL_START;
21
+ DESKTOP_SMALL_START = _uiHelpers.breakpoints.DESKTOP_SMALL_START,
22
+ DESKTOP_MIDDLE_START = _uiHelpers.breakpoints.DESKTOP_MIDDLE_START;
22
23
 
23
24
  var useResolutions = function useResolutions() {
24
25
  var _React$useState = _react["default"].useState(false),
@@ -36,6 +37,11 @@ var useResolutions = function useResolutions() {
36
37
  isDesktop = _React$useState6[0],
37
38
  setIsDesktop = _React$useState6[1];
38
39
 
40
+ var _React$useState7 = _react["default"].useState(false),
41
+ _React$useState8 = (0, _slicedToArray2["default"])(_React$useState7, 2),
42
+ isDesktopWide = _React$useState8[0],
43
+ setIsDesktopWide = _React$useState8[1];
44
+
39
45
  _react["default"].useEffect(function () {
40
46
  if (typeof window === 'undefined') {
41
47
  return undefined;
@@ -46,25 +52,30 @@ var useResolutions = function useResolutions() {
46
52
  var mobileQuery = matchMedia("(max-width: ".concat(MOBILE_MIDDLE_END, "px)"));
47
53
  var tabletQuery = matchMedia("(min-width: ".concat(MOBILE_BIG_START, "px) and (max-width: ").concat(MOBILE_BIG_END, "px)"));
48
54
  var desktopQuery = matchMedia("(min-width: ".concat(DESKTOP_SMALL_START, "px)"));
55
+ var desktopWideQuery = matchMedia("(min-width: ".concat(DESKTOP_MIDDLE_START, "px)"));
49
56
 
50
57
  var handleResize = function handleResize() {
51
58
  setIsMobile(mobileQuery.matches);
52
59
  setIsTablet(tabletQuery.matches);
53
60
  setIsDesktop(desktopQuery.matches);
61
+ setIsDesktopWide(desktopWideQuery.matches);
54
62
  };
55
63
 
56
64
  handleResize();
57
65
  mobileQuery.addEventListener('change', handleResize);
58
66
  tabletQuery.addEventListener('change', handleResize);
59
67
  desktopQuery.addEventListener('change', handleResize);
68
+ desktopWideQuery.addEventListener('change', handleResize);
60
69
  return function () {
61
70
  mobileQuery.removeEventListener('change', handleResize);
62
71
  tabletQuery.removeEventListener('change', handleResize);
63
72
  desktopQuery.removeEventListener('change', handleResize);
73
+ desktopWideQuery.addEventListener('change', handleResize);
64
74
  };
65
75
  }, []);
66
76
 
67
77
  return {
78
+ isDesktopWide: isDesktopWide,
68
79
  isDesktop: isDesktop,
69
80
  isMobile: isMobile,
70
81
  isTablet: isTablet
@@ -17,6 +17,8 @@ export { default as Card } from './components/Card/Card';
17
17
  export { default as CardsBox } from './components/CardsBox/CardsBox';
18
18
  export { default as CarouselBox } from './components/CarouselBox/CarouselBox';
19
19
  export { default as Container } from './components/Container/Container';
20
+ export { default as DarkGradientCard } from './components/DarkGradientCards/components/DarkGradientCard';
21
+ export { default as DarkGradientCards } from './components/DarkGradientCards/DarkGradientCards';
20
22
  export { default as DownloadLink } from './components/DownloadLinks/DownloadLink';
21
23
  export { default as DownloadLinks } from './components/DownloadLinks/DownloadLinks';
22
24
  export { default as FaqWrapper } from './components/FaqWrapper/FaqWrapper';
package/dist/lib/index.js CHANGED
@@ -117,6 +117,18 @@ Object.defineProperty(exports, "Container", {
117
117
  return _Container["default"];
118
118
  }
119
119
  });
120
+ Object.defineProperty(exports, "DarkGradientCard", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _DarkGradientCard["default"];
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "DarkGradientCards", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _DarkGradientCards["default"];
130
+ }
131
+ });
120
132
  Object.defineProperty(exports, "DownloadLink", {
121
133
  enumerable: true,
122
134
  get: function get() {
@@ -354,6 +366,10 @@ var _CarouselBox = _interopRequireDefault(require("./components/CarouselBox/Caro
354
366
 
355
367
  var _Container = _interopRequireDefault(require("./components/Container/Container"));
356
368
 
369
+ var _DarkGradientCard = _interopRequireDefault(require("./components/DarkGradientCards/components/DarkGradientCard"));
370
+
371
+ var _DarkGradientCards = _interopRequireDefault(require("./components/DarkGradientCards/DarkGradientCards"));
372
+
357
373
  var _DownloadLink = _interopRequireDefault(require("./components/DownloadLinks/DownloadLink"));
358
374
 
359
375
  var _DownloadLinks = _interopRequireDefault(require("./components/DownloadLinks/DownloadLinks"));