@megafon/ui-shared 5.14.0 → 5.16.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.
@@ -1,11 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  import "core-js/modules/es.symbol.js";
3
4
  import "core-js/modules/es.symbol.description.js";
4
- import "core-js/modules/es.array.map.js";
5
5
  import "core-js/modules/es.array.concat.js";
6
6
  import "core-js/modules/es.object.values.js";
7
7
  import React from 'react';
8
- import { Header, PriceBadge } from '@megafon/ui-core';
8
+ import { Header } from '@megafon/ui-core';
9
9
  import { breakpoints, cnCreate, filterDataAttrs, convert, titleConvertConfig } from '@megafon/ui-helpers';
10
10
  import * as PropTypes from 'prop-types';
11
11
  import "./ImageBanner.css";
@@ -77,32 +77,45 @@ var ImageBanner = function ImageBanner(_ref2) {
77
77
  title = _ref2.title,
78
78
  description = _ref2.description,
79
79
  cost = _ref2.cost,
80
+ _ref2$headerLevelMobi = _ref2.headerLevelMobile,
81
+ headerLevelMobile = _ref2$headerLevelMobi === void 0 ? 'h1' : _ref2$headerLevelMobi,
82
+ _ref2$headerLevel = _ref2.headerLevel,
83
+ headerLevel = _ref2$headerLevel === void 0 ? 'h1' : _ref2$headerLevel,
80
84
  _ref2$backgroundColor = _ref2.backgroundColor,
81
85
  backgroundColor = _ref2$backgroundColor === void 0 ? BackgroundColor.TRANSPARENT : _ref2$backgroundColor,
82
86
  _ref2$radius = _ref2.radius,
83
87
  radius = _ref2$radius === void 0 ? Radius.CORNERS : _ref2$radius,
84
88
  autoHeight = _ref2.autoHeight,
85
89
  isImageFullWidth = _ref2.isImageFullWidth,
86
- _ref2$badges = _ref2.badges,
87
- badges = _ref2$badges === void 0 ? [] : _ref2$badges,
88
- hasBottomOffset = _ref2.hasBottomOffset,
90
+ badges = _ref2.badges,
89
91
  adBlock = _ref2.adBlock,
90
92
  _ref2$children = _ref2.children,
91
93
  children = _ref2$children === void 0 ? [] : _ref2$children;
94
+
95
+ var _React$useState = React.useState(false),
96
+ _React$useState2 = _slicedToArray(_React$useState, 2),
97
+ isMobile = _React$useState2[0],
98
+ setIsMobile = _React$useState2[1];
99
+
100
+ React.useEffect(function () {
101
+ var mediaQuery = window.matchMedia("(max-width: ".concat(breakpoints.MOBILE_MIDDLE_END, "px)"));
102
+
103
+ var handleMediaChange = function handleMediaChange(_ref3) {
104
+ var matches = _ref3.matches;
105
+ setIsMobile(matches);
106
+ };
107
+
108
+ setIsMobile(mediaQuery.matches);
109
+ mediaQuery.addEventListener('change', handleMediaChange);
110
+ return function () {
111
+ mediaQuery.removeEventListener('change', handleMediaChange);
112
+ };
113
+ }, []);
92
114
  var navTheme = getTheme(backgroundColor);
93
115
  var hasImage = !!(imageMobile || imageMobile2x || imageDesktop || imageDesktop2x);
94
- var renderBadges = !!badges.length && /*#__PURE__*/React.createElement("div", {
116
+ var renderBadges = !!badges && /*#__PURE__*/React.createElement("div", {
95
117
  className: cn('badges', [classes.badges])
96
- }, badges.map(function (_ref3) {
97
- var text = _ref3.text,
98
- iconType = _ref3.iconType;
99
- return /*#__PURE__*/React.createElement(PriceBadge, {
100
- className: classes.badge,
101
- theme: navTheme,
102
- iconType: iconType,
103
- key: text
104
- }, text);
105
- }));
118
+ }, badges);
106
119
  var renderAdBlock = !!adBlock && /*#__PURE__*/React.createElement("div", {
107
120
  className: cn('ad-block', [classes.adBlock])
108
121
  }, adBlock);
@@ -112,7 +125,8 @@ var ImageBanner = function ImageBanner(_ref2) {
112
125
  className: cn('badges-container', [classes.badgesContainer])
113
126
  }, renderBadges, renderAdBlock), !!title && /*#__PURE__*/React.createElement(Header, {
114
127
  className: cn('title', [classes.title]),
115
- color: "inherit"
128
+ color: "inherit",
129
+ as: isMobile ? headerLevelMobile : headerLevel
116
130
  }, typeof title === 'string' ? convert(title, titleConvertConfig) : title), !!description && /*#__PURE__*/React.createElement(Header, {
117
131
  className: cn('description', [classes.description]),
118
132
  as: "h5",
@@ -127,10 +141,11 @@ var ImageBanner = function ImageBanner(_ref2) {
127
141
  'v-align': imageVerticalAlign
128
142
  })
129
143
  }, /*#__PURE__*/React.createElement("source", {
144
+ className: classes.imageSource,
130
145
  media: "(min-width: ".concat(breakpoints.DESKTOP_SMALL_START, "px)"),
131
146
  srcSet: "".concat(imageDesktop, ", ").concat(imageDesktop2x, " 2x")
132
147
  }), /*#__PURE__*/React.createElement("img", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.image), {
133
- className: cn('background-image', [classes.image]),
148
+ className: cn('image', [classes.image]),
134
149
  src: imageMobile || imageMobile2x,
135
150
  srcSet: imageMobile2x ? "".concat(imageMobile2x, " 2x") : undefined,
136
151
  alt: imageAlt
@@ -142,13 +157,10 @@ var ImageBanner = function ImageBanner(_ref2) {
142
157
  'has-image': hasImage,
143
158
  'auto-height': autoHeight,
144
159
  'full-width': isImageFullWidth,
145
- 'bottom-offset': hasBottomOffset && !hasImage,
146
160
  radius: radius
147
161
  }, [className, classes.root]),
148
162
  ref: rootRef
149
- }), /*#__PURE__*/React.createElement("div", {
150
- className: cn('wrapper')
151
- }, renderContent, hasImage && renderImage));
163
+ }), renderContent, hasImage && renderImage);
152
164
  };
153
165
 
154
166
  ImageBanner.propTypes = {
@@ -160,6 +172,7 @@ ImageBanner.propTypes = {
160
172
  classes: PropTypes.shape({
161
173
  root: PropTypes.string,
162
174
  image: PropTypes.string,
175
+ imageSource: PropTypes.string,
163
176
  title: PropTypes.string,
164
177
  description: PropTypes.string,
165
178
  cost: PropTypes.string,
@@ -171,9 +184,11 @@ ImageBanner.propTypes = {
171
184
  rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
172
185
  current: PropTypes.elementType
173
186
  }), PropTypes.any])]),
174
- title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]).isRequired,
187
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
175
188
  description: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
176
189
  cost: PropTypes.string,
190
+ headerLevelMobile: PropTypes.oneOf(['h1', 'h2']),
191
+ headerLevel: PropTypes.oneOf(['h1', 'h2']),
177
192
  backgroundColor: PropTypes.oneOf(Object.values(BackgroundColor)),
178
193
  radius: PropTypes.oneOf(Object.values(Radius)),
179
194
  imageMobile: PropTypes.string,
@@ -184,11 +199,7 @@ ImageBanner.propTypes = {
184
199
  imageVerticalAlign: PropTypes.oneOf(Object.values(ImageVerticalAlign)),
185
200
  autoHeight: PropTypes.bool,
186
201
  isImageFullWidth: PropTypes.bool,
187
- badges: PropTypes.arrayOf(PropTypes.shape({
188
- iconType: PropTypes.oneOf(['timer', 'price', 'check', 'attention', 'info', 'profile']).isRequired,
189
- text: PropTypes.string.isRequired
190
- }).isRequired),
191
- hasBottomOffset: PropTypes.bool,
202
+ badges: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element.isRequired), PropTypes.element]),
192
203
  adBlock: PropTypes.element
193
204
  };
194
205
  export default ImageBanner;
@@ -14,18 +14,16 @@ h5 {
14
14
  align-items: center;
15
15
  }
16
16
  .mfui-text-with-icon-item:not(:first-of-type) {
17
- margin-top: 16px;
18
- }
19
- @media screen and (max-width: 767px) {
20
- .mfui-text-with-icon-item:not(:first-of-type) {
21
- margin-top: 24px;
22
- }
17
+ margin-top: 12px;
23
18
  }
24
19
  .mfui-text-with-icon-item__svg-icon {
25
- width: 40px;
26
- min-width: 40px;
27
- height: 40px;
28
- min-height: 40px;
20
+ width: 44px;
21
+ min-width: 44px;
22
+ height: 44px;
23
+ min-height: 44px;
29
24
  margin-right: 16px;
25
+ padding: 6px;
26
+ border: 1px solid var(--spbSky2);
27
+ border-radius: 50%;
30
28
  overflow: hidden;
31
29
  }
@@ -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">;
@@ -42,6 +42,7 @@ h5 {
42
42
  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
43
43
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
44
44
  }
45
+ .mfui-card_link.mfui-card_view_hover-shadow:hover,
45
46
  .mfui-card_link.mfui-card_view_shadow:hover {
46
47
  -webkit-box-shadow: 0 8px 28px 0 rgba(0, 0, 0, 0.1);
47
48
  box-shadow: 0 8px 28px 0 rgba(0, 0, 0, 0.1);
@@ -60,6 +61,18 @@ h5 {
60
61
  padding: 32px;
61
62
  }
62
63
  }
64
+ .mfui-card__header {
65
+ display: -webkit-box;
66
+ display: -ms-flexbox;
67
+ display: flex;
68
+ gap: 12px;
69
+ -webkit-box-align: start;
70
+ -ms-flex-align: start;
71
+ align-items: start;
72
+ -webkit-box-pack: justify;
73
+ -ms-flex-pack: justify;
74
+ justify-content: space-between;
75
+ }
63
76
  .mfui-card__icon {
64
77
  width: 40px;
65
78
  height: 40px;
@@ -67,23 +80,24 @@ h5 {
67
80
  }
68
81
  .mfui-card__img-box {
69
82
  position: relative;
70
- margin-bottom: 24px;
71
83
  padding-bottom: 56.25%;
72
84
  border-radius: 12px;
73
85
  overflow: hidden;
74
86
  }
87
+ .mfui-card__img-box_position_top {
88
+ margin: -6px -6px 24px -6px;
89
+ }
75
90
  @media screen and (min-width: 1280px) {
76
- .mfui-card__img-box {
77
- margin-bottom: 32px;
91
+ .mfui-card__img-box_position_top {
92
+ margin: -12px -12px 32px -12px;
78
93
  }
79
94
  }
80
95
  .mfui-card__img-box_position_bottom {
81
- margin-top: 24px;
82
- margin-bottom: 0;
96
+ margin: 24px -6px 0 -6px;
83
97
  }
84
98
  @media screen and (min-width: 1280px) {
85
99
  .mfui-card__img-box_position_bottom {
86
- margin-top: 32px;
100
+ margin: 32px -12px 0 -12px;
87
101
  }
88
102
  }
89
103
  .mfui-card__img {
@@ -101,6 +115,35 @@ h5 {
101
115
  -webkit-transform: scale(1.2);
102
116
  transform: scale(1.2);
103
117
  }
118
+ .mfui-card__marker-list {
119
+ margin: 16px 0 0 0;
120
+ padding: 0;
121
+ list-style-type: none;
122
+ }
123
+ .mfui-card__marker-item {
124
+ position: relative;
125
+ padding-left: 20px;
126
+ }
127
+ .mfui-card__marker-item:not(:last-child) {
128
+ margin-bottom: 12px;
129
+ }
130
+ .mfui-card__marker-item:before {
131
+ content: '';
132
+ position: absolute;
133
+ top: 7px;
134
+ left: 0;
135
+ width: 6px;
136
+ height: 6px;
137
+ border-radius: 50%;
138
+ background-color: var(--stcBlack20);
139
+ opacity: 0.8;
140
+ }
141
+ .mfui-card__marker-note {
142
+ display: block;
143
+ margin: 4px 0 0 0;
144
+ padding: 0;
145
+ font-weight: 500;
146
+ }
104
147
  .mfui-card__texts {
105
148
  display: -webkit-box;
106
149
  display: -ms-flexbox;
@@ -117,6 +160,9 @@ h5 {
117
160
  margin: 0;
118
161
  padding-left: 24px;
119
162
  }
163
+ .mfui-card__texts ul {
164
+ list-style-type: disc;
165
+ }
120
166
  .mfui-card__texts-title {
121
167
  font-weight: 500;
122
168
  }
@@ -1,6 +1,6 @@
1
- import React, { Ref } from 'react';
1
+ import React, { ReactElement, Ref } from 'react';
2
2
  import './Card.less';
3
- import { ButtonType, FeaturesList, IconsList, Image, Link, Price, TextsList, Title } from './types';
3
+ import { ButtonType, FeaturesList, IconsList, Image, Link, MarkerList, Price, TextsList, Title } from './types';
4
4
  export interface ICard {
5
5
  /** Дополнительные data атрибуты к внутренним элементам */
6
6
  dataAttrs?: {
@@ -22,7 +22,7 @@ export interface ICard {
22
22
  rootRef?: Ref<HTMLDivElement | HTMLAnchorElement>;
23
23
  isFullHeight?: boolean;
24
24
  /** Вид */
25
- view?: 'shadow' | 'background';
25
+ view?: 'shadow' | 'hover-shadow' | 'background';
26
26
  /** Ссылка для карточки */
27
27
  link?: Link;
28
28
  /** Изображение */
@@ -31,6 +31,8 @@ export interface ICard {
31
31
  icon?: React.ReactNode;
32
32
  /** Заголовок */
33
33
  title: Title;
34
+ /** Маркированный список */
35
+ markerList?: MarkerList;
34
36
  /** Список текстов */
35
37
  textsList?: TextsList;
36
38
  /** Список характеристик */
@@ -43,6 +45,8 @@ export interface ICard {
43
45
  button?: ButtonType;
44
46
  /** Дополнительная кнопка */
45
47
  extraButton?: ButtonType;
48
+ /** Бейдж */
49
+ badge?: ReactElement;
46
50
  /** Обработчик клика по карточке */
47
51
  onClick?: () => void;
48
52
  }
@@ -62,14 +62,16 @@ var Card = function Card(_ref5) {
62
62
  image = _ref5.image,
63
63
  icon = _ref5.icon,
64
64
  title = _ref5.title,
65
+ markerList = _ref5.markerList,
65
66
  textsList = _ref5.textsList,
66
67
  featuresList = _ref5.featuresList,
67
68
  iconsList = _ref5.iconsList,
68
69
  price = _ref5.price,
69
70
  button = _ref5.button,
70
71
  extraButton = _ref5.extraButton,
72
+ badge = _ref5.badge,
71
73
  onClick = _ref5.onClick;
72
- var isOnlyTitle = !image && !icon && !textsList && !featuresList && !iconsList && !price && !button && !extraButton;
74
+ var isOnlyTitle = !image && !icon && !markerList && !textsList && !featuresList && !iconsList && !price && !button && !extraButton;
73
75
  var isLink = (link === null || link === void 0 ? void 0 : link.href) && !button && !extraButton;
74
76
  var isBottomImage = (image === null || image === void 0 ? void 0 : image.position) === 'bottom';
75
77
  var ElementType = isLink ? 'a' : 'div';
@@ -79,14 +81,18 @@ var Card = function Card(_ref5) {
79
81
  return null;
80
82
  }
81
83
 
84
+ var _image$position = image.position,
85
+ position = _image$position === void 0 ? 'top' : _image$position,
86
+ src = image.src,
87
+ alt = image.alt;
82
88
  return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.imgBox), {
83
89
  className: cn('img-box', {
84
- position: image.position
90
+ position: position
85
91
  })
86
92
  }), /*#__PURE__*/_react["default"].createElement("img", {
87
93
  className: cn('img'),
88
- src: image.src,
89
- alt: image.alt
94
+ src: src,
95
+ alt: alt
90
96
  }));
91
97
  };
92
98
 
@@ -101,6 +107,19 @@ var Card = function Card(_ref5) {
101
107
  };
102
108
 
103
109
  var renderContent = function renderContent() {
110
+ if (markerList) {
111
+ return /*#__PURE__*/_react["default"].createElement("ul", {
112
+ className: cn('marker-list')
113
+ }, markerList.map(function (item, i) {
114
+ return /*#__PURE__*/_react["default"].createElement("li", {
115
+ className: cn('marker-item'),
116
+ key: i
117
+ }, (0, _uiHelpers.convert)(item.title, {}), !!item.note && /*#__PURE__*/_react["default"].createElement("span", {
118
+ className: cn('marker-note')
119
+ }, (0, _uiHelpers.convert)(item.note, {})));
120
+ }));
121
+ }
122
+
104
123
  if (textsList) {
105
124
  return /*#__PURE__*/_react["default"].createElement("div", {
106
125
  className: cn('texts')
@@ -225,11 +244,13 @@ var Card = function Card(_ref5) {
225
244
  target: isLink ? link === null || link === void 0 ? void 0 : link.target : undefined,
226
245
  onClick: isLink ? onClick : undefined,
227
246
  ref: rootRef
228
- }), renderIcon(), !isBottomImage && renderImage(), /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
247
+ }), renderIcon(), !isBottomImage && renderImage(), /*#__PURE__*/_react["default"].createElement("div", {
248
+ className: cn('header')
249
+ }, /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
229
250
  className: cn('title'),
230
251
  as: "h3",
231
252
  align: title.align
232
- }, title.text), renderContent(), renderFooter());
253
+ }, title.text), badge), renderContent(), renderFooter());
233
254
  };
234
255
 
235
256
  Card.propTypes = {
@@ -20,6 +20,12 @@ export declare type Title = {
20
20
  /** Выравнивание */
21
21
  align?: 'left' | 'center';
22
22
  };
23
+ export declare type MarkerList = {
24
+ /** Заголовок */
25
+ title: string;
26
+ /** Примечание */
27
+ note?: string;
28
+ }[];
23
29
  export declare type TextsList = {
24
30
  /** Заголовок */
25
31
  title?: string;
@@ -8,9 +8,10 @@ h5 {
8
8
  .mfui-container {
9
9
  position: relative;
10
10
  padding-bottom: 96px;
11
+ border-radius: 24px;
11
12
  }
12
13
  .mfui-container_bg-color_default {
13
- background-color: var(--base);
14
+ background-color: var(--background);
14
15
  }
15
16
  .mfui-container_bg-color_light-gray {
16
17
  background-color: var(--spbSky0);
@@ -105,6 +106,14 @@ h5 {
105
106
  padding-top: 48px;
106
107
  }
107
108
  }
109
+ .mfui-container_bg-color_light-gray:has( + .mfui-container_bg-color_light-gray) {
110
+ border-bottom-right-radius: 0;
111
+ border-bottom-left-radius: 0;
112
+ }
113
+ .mfui-container_bg-color_light-gray + .mfui-container_bg-color_light-gray {
114
+ border-top-left-radius: 0;
115
+ border-top-right-radius: 0;
116
+ }
108
117
  .mfui-container_bg-color_light-gray + .mfui-container_bg-color_gray {
109
118
  padding-top: 96px;
110
119
  }
@@ -118,6 +127,14 @@ h5 {
118
127
  padding-top: 48px;
119
128
  }
120
129
  }
130
+ .mfui-container_bg-color_light-gray:has( + .mfui-container_bg-color_gray) {
131
+ border-bottom-right-radius: 0;
132
+ border-bottom-left-radius: 0;
133
+ }
134
+ .mfui-container_bg-color_light-gray + .mfui-container_bg-color_gray {
135
+ border-top-left-radius: 0;
136
+ border-top-right-radius: 0;
137
+ }
121
138
  .mfui-container_bg-color_light-gray + .mfui-container_bg-color_green {
122
139
  padding-top: 96px;
123
140
  }
@@ -131,6 +148,14 @@ h5 {
131
148
  padding-top: 48px;
132
149
  }
133
150
  }
151
+ .mfui-container_bg-color_light-gray:has( + .mfui-container_bg-color_green) {
152
+ border-bottom-right-radius: 0;
153
+ border-bottom-left-radius: 0;
154
+ }
155
+ .mfui-container_bg-color_light-gray + .mfui-container_bg-color_green {
156
+ border-top-left-radius: 0;
157
+ border-top-right-radius: 0;
158
+ }
134
159
  .mfui-container_bg-color_light-gray + .mfui-container_bg-color_purple {
135
160
  padding-top: 96px;
136
161
  }
@@ -144,6 +169,14 @@ h5 {
144
169
  padding-top: 48px;
145
170
  }
146
171
  }
172
+ .mfui-container_bg-color_light-gray:has( + .mfui-container_bg-color_purple) {
173
+ border-bottom-right-radius: 0;
174
+ border-bottom-left-radius: 0;
175
+ }
176
+ .mfui-container_bg-color_light-gray + .mfui-container_bg-color_purple {
177
+ border-top-left-radius: 0;
178
+ border-top-right-radius: 0;
179
+ }
147
180
  .mfui-container_bg-color_gray + .mfui-container_bg-color_default {
148
181
  padding-top: 96px;
149
182
  }
@@ -170,6 +203,22 @@ h5 {
170
203
  padding-top: 48px;
171
204
  }
172
205
  }
206
+ .mfui-container_bg-color_gray:has( + .mfui-container_bg-color_light-gray) {
207
+ border-bottom-right-radius: 0;
208
+ border-bottom-left-radius: 0;
209
+ }
210
+ .mfui-container_bg-color_gray + .mfui-container_bg-color_light-gray {
211
+ border-top-left-radius: 0;
212
+ border-top-right-radius: 0;
213
+ }
214
+ .mfui-container_bg-color_gray:has( + .mfui-container_bg-color_gray) {
215
+ border-bottom-right-radius: 0;
216
+ border-bottom-left-radius: 0;
217
+ }
218
+ .mfui-container_bg-color_gray + .mfui-container_bg-color_gray {
219
+ border-top-left-radius: 0;
220
+ border-top-right-radius: 0;
221
+ }
173
222
  .mfui-container_bg-color_gray + .mfui-container_bg-color_green {
174
223
  padding-top: 96px;
175
224
  }
@@ -183,6 +232,14 @@ h5 {
183
232
  padding-top: 48px;
184
233
  }
185
234
  }
235
+ .mfui-container_bg-color_gray:has( + .mfui-container_bg-color_green) {
236
+ border-bottom-right-radius: 0;
237
+ border-bottom-left-radius: 0;
238
+ }
239
+ .mfui-container_bg-color_gray + .mfui-container_bg-color_green {
240
+ border-top-left-radius: 0;
241
+ border-top-right-radius: 0;
242
+ }
186
243
  .mfui-container_bg-color_gray + .mfui-container_bg-color_purple {
187
244
  padding-top: 96px;
188
245
  }
@@ -196,6 +253,14 @@ h5 {
196
253
  padding-top: 48px;
197
254
  }
198
255
  }
256
+ .mfui-container_bg-color_gray:has( + .mfui-container_bg-color_purple) {
257
+ border-bottom-right-radius: 0;
258
+ border-bottom-left-radius: 0;
259
+ }
260
+ .mfui-container_bg-color_gray + .mfui-container_bg-color_purple {
261
+ border-top-left-radius: 0;
262
+ border-top-right-radius: 0;
263
+ }
199
264
  .mfui-container_bg-color_green + .mfui-container_bg-color_default {
200
265
  padding-top: 96px;
201
266
  }
@@ -222,6 +287,14 @@ h5 {
222
287
  padding-top: 48px;
223
288
  }
224
289
  }
290
+ .mfui-container_bg-color_green:has( + .mfui-container_bg-color_light-gray) {
291
+ border-bottom-right-radius: 0;
292
+ border-bottom-left-radius: 0;
293
+ }
294
+ .mfui-container_bg-color_green + .mfui-container_bg-color_light-gray {
295
+ border-top-left-radius: 0;
296
+ border-top-right-radius: 0;
297
+ }
225
298
  .mfui-container_bg-color_green + .mfui-container_bg-color_gray {
226
299
  padding-top: 96px;
227
300
  }
@@ -235,6 +308,22 @@ h5 {
235
308
  padding-top: 48px;
236
309
  }
237
310
  }
311
+ .mfui-container_bg-color_green:has( + .mfui-container_bg-color_gray) {
312
+ border-bottom-right-radius: 0;
313
+ border-bottom-left-radius: 0;
314
+ }
315
+ .mfui-container_bg-color_green + .mfui-container_bg-color_gray {
316
+ border-top-left-radius: 0;
317
+ border-top-right-radius: 0;
318
+ }
319
+ .mfui-container_bg-color_green:has( + .mfui-container_bg-color_green) {
320
+ border-bottom-right-radius: 0;
321
+ border-bottom-left-radius: 0;
322
+ }
323
+ .mfui-container_bg-color_green + .mfui-container_bg-color_green {
324
+ border-top-left-radius: 0;
325
+ border-top-right-radius: 0;
326
+ }
238
327
  .mfui-container_bg-color_green + .mfui-container_bg-color_purple {
239
328
  padding-top: 96px;
240
329
  }
@@ -248,6 +337,14 @@ h5 {
248
337
  padding-top: 48px;
249
338
  }
250
339
  }
340
+ .mfui-container_bg-color_green:has( + .mfui-container_bg-color_purple) {
341
+ border-bottom-right-radius: 0;
342
+ border-bottom-left-radius: 0;
343
+ }
344
+ .mfui-container_bg-color_green + .mfui-container_bg-color_purple {
345
+ border-top-left-radius: 0;
346
+ border-top-right-radius: 0;
347
+ }
251
348
  .mfui-container_bg-color_purple + .mfui-container_bg-color_default {
252
349
  padding-top: 96px;
253
350
  }
@@ -274,6 +371,14 @@ h5 {
274
371
  padding-top: 48px;
275
372
  }
276
373
  }
374
+ .mfui-container_bg-color_purple:has( + .mfui-container_bg-color_light-gray) {
375
+ border-bottom-right-radius: 0;
376
+ border-bottom-left-radius: 0;
377
+ }
378
+ .mfui-container_bg-color_purple + .mfui-container_bg-color_light-gray {
379
+ border-top-left-radius: 0;
380
+ border-top-right-radius: 0;
381
+ }
277
382
  .mfui-container_bg-color_purple + .mfui-container_bg-color_gray {
278
383
  padding-top: 96px;
279
384
  }
@@ -287,6 +392,14 @@ h5 {
287
392
  padding-top: 48px;
288
393
  }
289
394
  }
395
+ .mfui-container_bg-color_purple:has( + .mfui-container_bg-color_gray) {
396
+ border-bottom-right-radius: 0;
397
+ border-bottom-left-radius: 0;
398
+ }
399
+ .mfui-container_bg-color_purple + .mfui-container_bg-color_gray {
400
+ border-top-left-radius: 0;
401
+ border-top-right-radius: 0;
402
+ }
290
403
  .mfui-container_bg-color_purple + .mfui-container_bg-color_green {
291
404
  padding-top: 96px;
292
405
  }
@@ -300,6 +413,22 @@ h5 {
300
413
  padding-top: 48px;
301
414
  }
302
415
  }
416
+ .mfui-container_bg-color_purple:has( + .mfui-container_bg-color_green) {
417
+ border-bottom-right-radius: 0;
418
+ border-bottom-left-radius: 0;
419
+ }
420
+ .mfui-container_bg-color_purple + .mfui-container_bg-color_green {
421
+ border-top-left-radius: 0;
422
+ border-top-right-radius: 0;
423
+ }
424
+ .mfui-container_bg-color_purple:has( + .mfui-container_bg-color_purple) {
425
+ border-bottom-right-radius: 0;
426
+ border-bottom-left-radius: 0;
427
+ }
428
+ .mfui-container_bg-color_purple + .mfui-container_bg-color_purple {
429
+ border-top-left-radius: 0;
430
+ border-top-right-radius: 0;
431
+ }
303
432
  .mfui-container .mfui-title-description-box + .mfui-benefits-icons {
304
433
  margin-top: 56px;
305
434
  }