@megafon/ui-shared 5.10.2 → 5.12.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.
- package/CHANGELOG.md +30 -0
- package/dist/es/components/BenefitsIcons/BenefitsIcons.d.ts +4 -0
- package/dist/es/components/BenefitsIcons/BenefitsIcons.js +25 -6
- package/dist/es/components/BenefitsIcons/BenefitsIconsTile.js +24 -10
- package/dist/es/components/BenefitsIcons/types.d.ts +12 -0
- package/dist/es/components/ImageBanner/ImageBanner.css +3 -0
- package/dist/es/components/ImageBanner/ImageBanner.d.ts +7 -0
- package/dist/es/components/ImageBanner/ImageBanner.js +15 -7
- package/dist/es/components/Instructions/Instructions.css +176 -39
- package/dist/es/components/Instructions/Instructions.d.ts +9 -0
- package/dist/es/components/Instructions/Instructions.js +35 -21
- package/dist/es/components/Instructions/img/iphone15.png +0 -0
- package/dist/es/components/Instructions/img/laptop-new.png +0 -0
- package/dist/es/components/StoreBanner/StoreBanner.css +13 -9
- package/dist/es/components/StoreBanner/StoreBanner.d.ts +6 -5
- package/dist/es/components/StoreBanner/StoreBanner.js +5 -3
- package/dist/es/components/StoreBanner/doc/img/android-screen.png +0 -0
- package/dist/es/components/StoreBanner/doc/img/screen.png +0 -0
- package/dist/es/components/StoreBanner/img/android.png +0 -0
- package/dist/es/components/StoreBanner/img/new-iphone.png +0 -0
- package/dist/es/helpers/getColumnConfig.d.ts +1 -1
- package/dist/lib/components/BenefitsIcons/BenefitsIcons.d.ts +4 -0
- package/dist/lib/components/BenefitsIcons/BenefitsIcons.js +24 -5
- package/dist/lib/components/BenefitsIcons/BenefitsIconsTile.js +26 -11
- package/dist/lib/components/BenefitsIcons/types.d.ts +12 -0
- package/dist/lib/components/ImageBanner/ImageBanner.css +3 -0
- package/dist/lib/components/ImageBanner/ImageBanner.d.ts +7 -0
- package/dist/lib/components/ImageBanner/ImageBanner.js +15 -7
- package/dist/lib/components/Instructions/Instructions.css +176 -39
- package/dist/lib/components/Instructions/Instructions.d.ts +9 -0
- package/dist/lib/components/Instructions/Instructions.js +39 -22
- package/dist/lib/components/Instructions/img/iphone15.png +0 -0
- package/dist/lib/components/Instructions/img/laptop-new.png +0 -0
- package/dist/lib/components/StoreBanner/StoreBanner.css +13 -9
- package/dist/lib/components/StoreBanner/StoreBanner.d.ts +6 -5
- package/dist/lib/components/StoreBanner/StoreBanner.js +5 -3
- package/dist/lib/components/StoreBanner/doc/img/android-screen.png +0 -0
- package/dist/lib/components/StoreBanner/doc/img/screen.png +0 -0
- package/dist/lib/components/StoreBanner/img/android.png +0 -0
- package/dist/lib/components/StoreBanner/img/new-iphone.png +0 -0
- package/dist/lib/helpers/getColumnConfig.d.ts +1 -1
- package/package.json +3 -3
- package/dist/es/components/StoreBanner/doc/img/iphone-12-screen.png +0 -0
- package/dist/es/components/StoreBanner/doc/img/new-iphone-screen.png +0 -0
- package/dist/lib/components/StoreBanner/doc/img/iphone-12-screen.png +0 -0
- package/dist/lib/components/StoreBanner/doc/img/new-iphone-screen.png +0 -0
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,36 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
# [5.12.0](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/compare/@megafon/ui-shared@5.11.0...@megafon/ui-shared@5.12.0) (2024-06-10)
|
7
|
+
|
8
|
+
|
9
|
+
### Bug Fixes
|
10
|
+
|
11
|
+
* **imagebanner:** fix ad block position ([6f958b4](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/commit/6f958b477cc936bf969e244a07dc0ed63279484b))
|
12
|
+
|
13
|
+
|
14
|
+
### Features
|
15
|
+
|
16
|
+
* **benefitsicons:** add dataAttrs and classes ([815db75](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/commit/815db75aece85803a0055a531bd92db49d514652))
|
17
|
+
* **benefitsicons:** review fixes ([229c5f7](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/commit/229c5f73fa9609495a146cfa562db2478752c3b4))
|
18
|
+
* **imagebanner:** add classes props for ImageBanner ([42d2738](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/commit/42d2738a6c77bf780b9a47fd27353083d0f7d7a0))
|
19
|
+
* **insctructions:** add new views ([4470aec](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/commit/4470aec0acaf59ae2d3b0979c59ec7760237221c))
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
# [5.11.0](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/compare/@megafon/ui-shared@5.10.2...@megafon/ui-shared@5.11.0) (2024-06-03)
|
26
|
+
|
27
|
+
|
28
|
+
### Features
|
29
|
+
|
30
|
+
* **storebanner:** change device mask ([4d52954](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/commit/4d52954459b944d100c6cd657808dd23ab7bb674))
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
6
36
|
## [5.10.2](https://hq-gitlab.megafon.ru/site-portal/services/megafon-ui/compare/@megafon/ui-shared@5.10.1...@megafon/ui-shared@5.10.2) (2024-05-27)
|
7
37
|
|
8
38
|
**Note:** Version bump only for package @megafon/ui-shared
|
@@ -2,6 +2,10 @@ import * as React from 'react';
|
|
2
2
|
import { IconPosition, IBenefit, BackgroundType } from './types';
|
3
3
|
import './style/BenefitsIcons.less';
|
4
4
|
export interface IBenefitsIcons {
|
5
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
6
|
+
dataAttrs?: {
|
7
|
+
root?: Record<string, string>;
|
8
|
+
};
|
5
9
|
/** Ссылка на корневой элемент */
|
6
10
|
rootRef?: React.Ref<HTMLDivElement>;
|
7
11
|
/** Позиция иконки */
|
@@ -4,7 +4,7 @@ import "core-js/modules/es.array.map.js";
|
|
4
4
|
import "core-js/modules/es.object.values.js";
|
5
5
|
import * as React from 'react';
|
6
6
|
import { Grid, GridColumn } from '@megafon/ui-core';
|
7
|
-
import { cnCreate, breakpoints } from '@megafon/ui-helpers';
|
7
|
+
import { cnCreate, breakpoints, filterDataAttrs } from '@megafon/ui-helpers';
|
8
8
|
import throttle from 'lodash.throttle';
|
9
9
|
import PropTypes from 'prop-types';
|
10
10
|
import throttleTime from "../../constants/throttleTime";
|
@@ -16,7 +16,8 @@ var testIdPrefix = 'BenefitsIcons';
|
|
16
16
|
var cn = cnCreate('mfui-benefits-icons');
|
17
17
|
|
18
18
|
var BenefitsIcons = function BenefitsIcons(_ref) {
|
19
|
-
var
|
19
|
+
var dataAttrs = _ref.dataAttrs,
|
20
|
+
rootRef = _ref.rootRef,
|
20
21
|
_ref$iconPosition = _ref.iconPosition,
|
21
22
|
iconPosition = _ref$iconPosition === void 0 ? 'left-top' : _ref$iconPosition,
|
22
23
|
_ref$background = _ref.background,
|
@@ -59,13 +60,13 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
59
60
|
window.removeEventListener('resize', resizeHandlerThrottled);
|
60
61
|
};
|
61
62
|
}, [iconPosition, inOneColumn, resizeHandler]);
|
62
|
-
return /*#__PURE__*/React.createElement("div", {
|
63
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
63
64
|
className: cn({
|
64
65
|
'one-column': inOneColumn,
|
65
66
|
background: background
|
66
67
|
}, [className, classes.root]),
|
67
68
|
ref: rootRef
|
68
|
-
}, /*#__PURE__*/React.createElement("div", {
|
69
|
+
}), /*#__PURE__*/React.createElement("div", {
|
69
70
|
className: cn('inner')
|
70
71
|
}, /*#__PURE__*/React.createElement(Grid, {
|
71
72
|
className: classes.grid,
|
@@ -83,7 +84,9 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
83
84
|
var title = _ref2.title,
|
84
85
|
text = _ref2.text,
|
85
86
|
icon = _ref2.icon,
|
86
|
-
alt = _ref2.alt
|
87
|
+
alt = _ref2.alt,
|
88
|
+
itemClasses = _ref2.classes,
|
89
|
+
itemDataAttrs = _ref2.dataAttrs;
|
87
90
|
var columnConfig = inOneColumn ? getOneColumnConfig(iconPosition) : getMultiColumnConfig(iconPosition, items.length, i);
|
88
91
|
return /*#__PURE__*/React.createElement(GridColumn, _extends({
|
89
92
|
className: cn('column', [classes.gridColumn]),
|
@@ -95,6 +98,8 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
95
98
|
}
|
96
99
|
}, columnConfig), /*#__PURE__*/React.createElement(BenefitsIconsTile, {
|
97
100
|
className: cn('tile', [classes.item]),
|
101
|
+
classes: itemClasses,
|
102
|
+
dataAttrs: itemDataAttrs,
|
98
103
|
title: title,
|
99
104
|
text: text,
|
100
105
|
icon: icon,
|
@@ -106,6 +111,9 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
|
|
106
111
|
};
|
107
112
|
|
108
113
|
BenefitsIcons.propTypes = {
|
114
|
+
dataAttrs: PropTypes.shape({
|
115
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired)
|
116
|
+
}),
|
109
117
|
rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
|
110
118
|
current: PropTypes.elementType
|
111
119
|
}), PropTypes.any])]),
|
@@ -113,9 +121,20 @@ BenefitsIcons.propTypes = {
|
|
113
121
|
background: PropTypes.oneOf(Object.values(BackgroundEnum)),
|
114
122
|
inOneColumn: PropTypes.bool,
|
115
123
|
items: PropTypes.arrayOf(PropTypes.shape({
|
124
|
+
dataAttrs: PropTypes.shape({
|
125
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired)
|
126
|
+
}),
|
127
|
+
classes: PropTypes.shape({
|
128
|
+
root: PropTypes.string,
|
129
|
+
icon: PropTypes.string,
|
130
|
+
title: PropTypes.string,
|
131
|
+
text: PropTypes.string,
|
132
|
+
contentWrapper: PropTypes.string
|
133
|
+
}),
|
116
134
|
title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
117
135
|
text: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
118
|
-
icon: PropTypes.node.isRequired
|
136
|
+
icon: PropTypes.node.isRequired,
|
137
|
+
alt: PropTypes.string
|
119
138
|
}).isRequired).isRequired,
|
120
139
|
className: PropTypes.string,
|
121
140
|
classes: PropTypes.shape({
|
@@ -1,7 +1,8 @@
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
1
2
|
import "core-js/modules/es.object.values.js";
|
2
3
|
import * as React from 'react';
|
3
4
|
import { Header } from '@megafon/ui-core';
|
4
|
-
import { cnCreate } from '@megafon/ui-helpers';
|
5
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
5
6
|
import PropTypes from 'prop-types';
|
6
7
|
import { IconPositionEnum, BackgroundEnum } from "./types";
|
7
8
|
import "./style/BenefitsIconsTile.css";
|
@@ -9,7 +10,10 @@ var testIdPrefix = 'BenefitsIconsTile';
|
|
9
10
|
var cn = cnCreate('mfui-benefits-icons-tile');
|
10
11
|
|
11
12
|
var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
|
12
|
-
var
|
13
|
+
var dataAttrs = _ref.dataAttrs,
|
14
|
+
_ref$classes = _ref.classes,
|
15
|
+
classes = _ref$classes === void 0 ? {} : _ref$classes,
|
16
|
+
title = _ref.title,
|
13
17
|
text = _ref.text,
|
14
18
|
icon = _ref.icon,
|
15
19
|
iconPosition = _ref.iconPosition,
|
@@ -20,7 +24,7 @@ var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
|
|
20
24
|
var renderIcon = function renderIcon() {
|
21
25
|
if (typeof icon === 'string') {
|
22
26
|
return /*#__PURE__*/React.createElement("img", {
|
23
|
-
className: cn('img-icon'),
|
27
|
+
className: cn('img-icon', [classes.icon]),
|
24
28
|
src: icon,
|
25
29
|
alt: alt,
|
26
30
|
"data-testid": "".concat(testIdPrefix, "-img")
|
@@ -28,32 +32,42 @@ var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
|
|
28
32
|
}
|
29
33
|
|
30
34
|
return /*#__PURE__*/React.createElement("div", {
|
31
|
-
className: cn('svg-icon'),
|
35
|
+
className: cn('svg-icon', [classes.icon]),
|
32
36
|
"data-testid": "".concat(testIdPrefix, "-svg")
|
33
37
|
}, icon);
|
34
38
|
};
|
35
39
|
|
36
|
-
return /*#__PURE__*/React.createElement("div", {
|
40
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
37
41
|
className: cn({
|
38
42
|
'icon-position': iconPosition,
|
39
43
|
background: background,
|
40
44
|
image: typeof icon === 'string'
|
41
|
-
}, [className]),
|
45
|
+
}, [className, classes.root]),
|
42
46
|
"data-testid": "".concat(testIdPrefix, "-root")
|
43
|
-
}, /*#__PURE__*/React.createElement("div", {
|
47
|
+
}), /*#__PURE__*/React.createElement("div", {
|
44
48
|
className: cn('inner')
|
45
49
|
}, renderIcon(), /*#__PURE__*/React.createElement("div", {
|
46
|
-
className: cn('content-wrapper')
|
50
|
+
className: cn('content-wrapper', [classes.contentWrapper])
|
47
51
|
}, title && /*#__PURE__*/React.createElement(Header, {
|
48
|
-
className: cn('title'),
|
52
|
+
className: cn('title', [classes.title]),
|
49
53
|
as: "h5"
|
50
54
|
}, title), text && /*#__PURE__*/React.createElement("div", {
|
51
|
-
className: cn('content')
|
55
|
+
className: cn('content', [classes.text])
|
52
56
|
}, text))));
|
53
57
|
};
|
54
58
|
|
55
59
|
BenefitsIconsTile.propTypes = {
|
60
|
+
dataAttrs: PropTypes.shape({
|
61
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired)
|
62
|
+
}),
|
56
63
|
className: PropTypes.string,
|
64
|
+
classes: PropTypes.shape({
|
65
|
+
root: PropTypes.string,
|
66
|
+
icon: PropTypes.string,
|
67
|
+
title: PropTypes.string,
|
68
|
+
text: PropTypes.string,
|
69
|
+
contentWrapper: PropTypes.string
|
70
|
+
}),
|
57
71
|
title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
58
72
|
text: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
59
73
|
iconPosition: PropTypes.oneOf(Object.values(IconPositionEnum)),
|
@@ -1,6 +1,18 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
declare type TGridSizeValues = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
|
3
3
|
export interface IBenefit {
|
4
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
5
|
+
dataAttrs?: {
|
6
|
+
root?: Record<string, string>;
|
7
|
+
};
|
8
|
+
/** Дополнительные классы для корневого и внутренних элементов */
|
9
|
+
classes?: {
|
10
|
+
root?: string;
|
11
|
+
icon?: string;
|
12
|
+
title?: string;
|
13
|
+
text?: string;
|
14
|
+
contentWrapper?: string;
|
15
|
+
};
|
4
16
|
/** Заголовок бенефита */
|
5
17
|
title?: string | React.ReactNode | React.ReactNode[];
|
6
18
|
/** Основной текст в бенефите */
|
@@ -43,6 +43,13 @@ export interface IImageBannerProps {
|
|
43
43
|
classes?: {
|
44
44
|
root?: string;
|
45
45
|
image?: string;
|
46
|
+
title?: string;
|
47
|
+
description?: string;
|
48
|
+
cost?: string;
|
49
|
+
badgesContainer?: string;
|
50
|
+
badges?: string;
|
51
|
+
badge?: string;
|
52
|
+
adBlock?: string;
|
46
53
|
};
|
47
54
|
/** Ссылка на корневой элемент */
|
48
55
|
rootRef?: Ref<HTMLDivElement>;
|
@@ -92,32 +92,33 @@ var ImageBanner = function ImageBanner(_ref2) {
|
|
92
92
|
var navTheme = getTheme(backgroundColor);
|
93
93
|
var hasImage = !!(imageMobile || imageMobile2x || imageDesktop || imageDesktop2x);
|
94
94
|
var renderBadges = !!badges.length && /*#__PURE__*/React.createElement("div", {
|
95
|
-
className: cn('badges')
|
95
|
+
className: cn('badges', [classes.badges])
|
96
96
|
}, badges.map(function (_ref3) {
|
97
97
|
var text = _ref3.text,
|
98
98
|
iconType = _ref3.iconType;
|
99
99
|
return /*#__PURE__*/React.createElement(PriceBadge, {
|
100
|
+
className: classes.badge,
|
100
101
|
theme: navTheme,
|
101
102
|
iconType: iconType,
|
102
103
|
key: text
|
103
104
|
}, text);
|
104
105
|
}));
|
105
106
|
var renderAdBlock = !!adBlock && /*#__PURE__*/React.createElement("div", {
|
106
|
-
className: cn('ad-block')
|
107
|
+
className: cn('ad-block', [classes.adBlock])
|
107
108
|
}, adBlock);
|
108
109
|
var renderContent = /*#__PURE__*/React.createElement("div", {
|
109
110
|
className: cn('content')
|
110
111
|
}, /*#__PURE__*/React.createElement("div", {
|
111
|
-
className: cn('badges-container')
|
112
|
+
className: cn('badges-container', [classes.badgesContainer])
|
112
113
|
}, renderBadges, renderAdBlock), !!title && /*#__PURE__*/React.createElement(Header, {
|
113
|
-
className: cn('title'),
|
114
|
+
className: cn('title', [classes.title]),
|
114
115
|
color: "inherit"
|
115
116
|
}, typeof title === 'string' ? convert(title, titleConvertConfig) : title), !!description && /*#__PURE__*/React.createElement(Header, {
|
116
|
-
className: cn('description'),
|
117
|
+
className: cn('description', [classes.description]),
|
117
118
|
as: "h5",
|
118
119
|
color: "inherit"
|
119
120
|
}, typeof description === 'string' ? convert(description, titleConvertConfig) : description), !!cost && /*#__PURE__*/React.createElement("div", {
|
120
|
-
className: cn('cost')
|
121
|
+
className: cn('cost', [classes.cost])
|
121
122
|
}, convert(cost, typographyConfig)), !!children && !!React.Children.count(children) && /*#__PURE__*/React.createElement("div", {
|
122
123
|
className: cn('children')
|
123
124
|
}, children));
|
@@ -158,7 +159,14 @@ ImageBanner.propTypes = {
|
|
158
159
|
className: PropTypes.string,
|
159
160
|
classes: PropTypes.shape({
|
160
161
|
root: PropTypes.string,
|
161
|
-
image: PropTypes.string
|
162
|
+
image: PropTypes.string,
|
163
|
+
title: PropTypes.string,
|
164
|
+
description: PropTypes.string,
|
165
|
+
cost: PropTypes.string,
|
166
|
+
badgesContainer: PropTypes.string,
|
167
|
+
badges: PropTypes.string,
|
168
|
+
badge: PropTypes.string,
|
169
|
+
adBlock: PropTypes.string
|
162
170
|
}),
|
163
171
|
rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
|
164
172
|
current: PropTypes.elementType
|
@@ -11,7 +11,7 @@ h5 {
|
|
11
11
|
}
|
12
12
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
13
13
|
.mfui-instructions__title_resolution_mobile {
|
14
|
-
margin-bottom:
|
14
|
+
margin-bottom: 40px;
|
15
15
|
}
|
16
16
|
}
|
17
17
|
@media screen and (min-width: 1024px) {
|
@@ -59,6 +59,9 @@ h5 {
|
|
59
59
|
align-items: unset;
|
60
60
|
}
|
61
61
|
}
|
62
|
+
.mfui-instructions__text {
|
63
|
+
margin-top: 48px;
|
64
|
+
}
|
62
65
|
@media screen and (max-width: 1023px) {
|
63
66
|
.mfui-instructions__text {
|
64
67
|
text-align: center;
|
@@ -72,12 +75,7 @@ h5 {
|
|
72
75
|
}
|
73
76
|
@media screen and (max-width: 1023px) {
|
74
77
|
.mfui-instructions__picture {
|
75
|
-
margin: 0 auto
|
76
|
-
}
|
77
|
-
}
|
78
|
-
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
79
|
-
.mfui-instructions__picture {
|
80
|
-
margin: 0 auto 48px;
|
78
|
+
margin: 0 auto;
|
81
79
|
}
|
82
80
|
}
|
83
81
|
@media screen and (min-width: 1024px) {
|
@@ -235,6 +233,35 @@ h5 {
|
|
235
233
|
border-radius: 20px;
|
236
234
|
overflow: hidden;
|
237
235
|
}
|
236
|
+
.mfui-instructions_mask_iphone-15 .mfui-instructions__img-wrapper {
|
237
|
+
height: 487px;
|
238
|
+
}
|
239
|
+
@media screen and (max-width: 1023px) {
|
240
|
+
.mfui-instructions_mask_iphone-15 .mfui-instructions__img-wrapper:before {
|
241
|
+
display: none;
|
242
|
+
}
|
243
|
+
}
|
244
|
+
.mfui-instructions_mask_iphone-15 .mfui-instructions__device-screen {
|
245
|
+
position: relative;
|
246
|
+
z-index: 2;
|
247
|
+
width: 100%;
|
248
|
+
height: 486px;
|
249
|
+
margin: auto;
|
250
|
+
background: url('./img/iphone15.png') 50% no-repeat;
|
251
|
+
background-size: contain;
|
252
|
+
}
|
253
|
+
.mfui-instructions_mask_iphone-15 .mfui-instructions__swiper {
|
254
|
+
position: absolute;
|
255
|
+
top: 10px;
|
256
|
+
right: 0;
|
257
|
+
left: 0;
|
258
|
+
z-index: 1;
|
259
|
+
width: 217px;
|
260
|
+
height: 468px;
|
261
|
+
margin: auto;
|
262
|
+
border-radius: 20px;
|
263
|
+
overflow: hidden;
|
264
|
+
}
|
238
265
|
.mfui-instructions_mask_android-cropped .mfui-instructions__img-wrapper {
|
239
266
|
height: 420px;
|
240
267
|
min-height: 420px;
|
@@ -324,7 +351,10 @@ h5 {
|
|
324
351
|
}
|
325
352
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
326
353
|
.mfui-instructions_mask_laptop .mfui-instructions__img-wrapper {
|
327
|
-
height:
|
354
|
+
height: 0;
|
355
|
+
padding-bottom: 53.4%;
|
356
|
+
background: url('./img/laptop.png') 50% 0% no-repeat;
|
357
|
+
background-size: 100%;
|
328
358
|
}
|
329
359
|
}
|
330
360
|
@media screen and (min-width: 480px) and (max-width: 767px) {
|
@@ -410,11 +440,95 @@ h5 {
|
|
410
440
|
transform: translate(-50%, -53%);
|
411
441
|
}
|
412
442
|
}
|
443
|
+
@media screen and (max-width: 1023px) {
|
444
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__img-wrapper {
|
445
|
+
height: 0;
|
446
|
+
padding-bottom: 58.9%;
|
447
|
+
background: url('./img/laptop-new.png') 50% 0% no-repeat;
|
448
|
+
background-size: 100%;
|
449
|
+
}
|
450
|
+
}
|
451
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__img-wrapper:before {
|
452
|
+
display: none;
|
453
|
+
}
|
454
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__device-screen {
|
455
|
+
position: relative;
|
456
|
+
width: 100%;
|
457
|
+
height: 100%;
|
458
|
+
margin: auto;
|
459
|
+
background: url('./img/laptop-new.png') 50% 0% no-repeat;
|
460
|
+
background-size: 100%;
|
461
|
+
}
|
462
|
+
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
463
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__device-screen {
|
464
|
+
width: 530px;
|
465
|
+
}
|
466
|
+
}
|
467
|
+
@media screen and (min-width: 480px) and (max-width: 767px) {
|
468
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__device-screen {
|
469
|
+
width: 450px;
|
470
|
+
}
|
471
|
+
}
|
472
|
+
@media screen and (max-width: 479px) {
|
473
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__device-screen {
|
474
|
+
width: 270px;
|
475
|
+
}
|
476
|
+
}
|
477
|
+
@media screen and (min-width: 1024px) {
|
478
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__device-screen {
|
479
|
+
background: url('./img/laptop-new.png') 50% no-repeat;
|
480
|
+
background-size: contain;
|
481
|
+
}
|
482
|
+
}
|
483
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__swiper {
|
484
|
+
position: absolute;
|
485
|
+
top: 4px;
|
486
|
+
right: 0;
|
487
|
+
left: 50%;
|
488
|
+
width: 78%;
|
489
|
+
margin: auto;
|
490
|
+
overflow: hidden;
|
491
|
+
-webkit-transform: translate(-49.5%, 0);
|
492
|
+
transform: translate(-49.5%, 0);
|
493
|
+
}
|
494
|
+
@media screen and (min-width: 480px) and (max-width: 767px) {
|
495
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__swiper {
|
496
|
+
top: 7px;
|
497
|
+
max-width: 415px;
|
498
|
+
}
|
499
|
+
}
|
500
|
+
@media screen and (max-width: 479px) {
|
501
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__swiper {
|
502
|
+
max-width: 302px;
|
503
|
+
}
|
504
|
+
}
|
505
|
+
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
506
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__swiper {
|
507
|
+
top: 12px;
|
508
|
+
}
|
509
|
+
}
|
510
|
+
@media screen and (min-width: 1024px) {
|
511
|
+
.mfui-instructions_mask_laptop-new .mfui-instructions__swiper {
|
512
|
+
top: 50%;
|
513
|
+
-webkit-transform: translate(-49.5%, -55%);
|
514
|
+
transform: translate(-49.5%, -55%);
|
515
|
+
}
|
516
|
+
}
|
413
517
|
.mfui-instructions__slide {
|
414
518
|
-ms-flex-negative: 0;
|
415
519
|
flex-shrink: 0;
|
416
520
|
height: 100%;
|
417
521
|
}
|
522
|
+
@media screen and (max-width: 767px) {
|
523
|
+
.mfui-instructions__articles {
|
524
|
+
margin-top: 24px;
|
525
|
+
}
|
526
|
+
}
|
527
|
+
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
528
|
+
.mfui-instructions__articles {
|
529
|
+
margin-top: 32px;
|
530
|
+
}
|
531
|
+
}
|
418
532
|
@media screen and (min-width: 1024px) {
|
419
533
|
.mfui-instructions__articles {
|
420
534
|
-webkit-box-ordinal-group: 2;
|
@@ -433,9 +547,6 @@ h5 {
|
|
433
547
|
padding: 0;
|
434
548
|
list-style-type: none;
|
435
549
|
}
|
436
|
-
.mfui-instructions__articles-list_text-after {
|
437
|
-
margin-bottom: 48px;
|
438
|
-
}
|
439
550
|
@media screen and (min-width: 1024px) {
|
440
551
|
.mfui-instructions__articles-list_mobile {
|
441
552
|
display: none;
|
@@ -476,8 +587,7 @@ h5 {
|
|
476
587
|
margin-bottom: 0;
|
477
588
|
}
|
478
589
|
}
|
479
|
-
.mfui-instructions__articles-item-dot
|
480
|
-
.mfui-instructions__articles-dot {
|
590
|
+
.mfui-instructions__articles-item-dot {
|
481
591
|
position: absolute;
|
482
592
|
display: inline-block;
|
483
593
|
width: 40px;
|
@@ -492,13 +602,11 @@ h5 {
|
|
492
602
|
cursor: pointer;
|
493
603
|
}
|
494
604
|
@media screen and (max-width: 479px) {
|
495
|
-
.mfui-instructions__articles-item-dot
|
496
|
-
.mfui-instructions__articles-dot {
|
605
|
+
.mfui-instructions__articles-item-dot {
|
497
606
|
min-width: 40px;
|
498
607
|
}
|
499
608
|
}
|
500
|
-
.mfui-instructions__articles-item-dot:before
|
501
|
-
.mfui-instructions__articles-dot:before {
|
609
|
+
.mfui-instructions__articles-item-dot:before {
|
502
610
|
content: '';
|
503
611
|
position: absolute;
|
504
612
|
top: 50%;
|
@@ -509,8 +617,7 @@ h5 {
|
|
509
617
|
-webkit-transition: all 0.3s ease;
|
510
618
|
transition: all 0.3s ease;
|
511
619
|
}
|
512
|
-
.mfui-instructions__articles-item-dot-number
|
513
|
-
.mfui-instructions__articles-dot-number {
|
620
|
+
.mfui-instructions__articles-item-dot-number {
|
514
621
|
position: relative;
|
515
622
|
}
|
516
623
|
.mfui-instructions__articles-item-title {
|
@@ -537,44 +644,51 @@ h5 {
|
|
537
644
|
padding: 0;
|
538
645
|
list-style-type: none;
|
539
646
|
}
|
540
|
-
.mfui-instructions__articles-dots_text-after {
|
541
|
-
margin-bottom: 48px;
|
542
|
-
}
|
543
|
-
.mfui-instructions__articles-dot {
|
544
|
-
position: relative;
|
545
|
-
}
|
546
647
|
@media screen and (max-width: 767px) {
|
547
|
-
.mfui-instructions__articles-
|
548
|
-
margin-
|
648
|
+
.mfui-instructions__articles-dots {
|
649
|
+
margin-top: 16px;
|
549
650
|
}
|
550
651
|
}
|
551
652
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
552
|
-
.mfui-instructions__articles-
|
553
|
-
margin-
|
653
|
+
.mfui-instructions__articles-dots {
|
654
|
+
margin-top: 24px;
|
655
|
+
}
|
656
|
+
}
|
657
|
+
@media screen and (min-width: 1024px) {
|
658
|
+
.mfui-instructions__articles-dots {
|
659
|
+
display: none;
|
554
660
|
}
|
555
661
|
}
|
662
|
+
.mfui-instructions__articles-dots_text-after {
|
663
|
+
margin-bottom: 48px;
|
664
|
+
}
|
665
|
+
.mfui-instructions__articles-dot {
|
666
|
+
position: relative;
|
667
|
+
display: inline-block;
|
668
|
+
width: 8px;
|
669
|
+
height: 8px;
|
670
|
+
margin-right: 12px;
|
671
|
+
border-radius: 4px;
|
672
|
+
background: var(--spbSky2);
|
673
|
+
cursor: pointer;
|
674
|
+
}
|
556
675
|
.mfui-instructions__articles-dot:hover,
|
557
676
|
.mfui-instructions__articles-dot_active {
|
558
|
-
color: var(--stcWhite);
|
559
|
-
}
|
560
|
-
.mfui-instructions__articles-dot:hover:before,
|
561
|
-
.mfui-instructions__articles-dot_active:before {
|
562
|
-
top: 0;
|
563
|
-
right: 0;
|
564
|
-
bottom: 0;
|
565
|
-
left: 0;
|
566
677
|
background: var(--brandGreen);
|
567
678
|
}
|
679
|
+
.mfui-instructions__articles-dot_active {
|
680
|
+
width: 20px;
|
681
|
+
}
|
568
682
|
.mfui-instructions__articles-dot:last-child {
|
569
683
|
margin-right: 0;
|
570
684
|
}
|
571
685
|
.mfui-instructions__articles-title-block {
|
686
|
+
margin: 0 auto;
|
572
687
|
text-align: center;
|
573
688
|
}
|
574
689
|
@media screen and (max-width: 767px) {
|
575
690
|
.mfui-instructions__articles-title-block {
|
576
691
|
width: 55%;
|
577
|
-
margin: 0 auto 24px;
|
578
692
|
}
|
579
693
|
}
|
580
694
|
@media screen and (max-width: 479px) {
|
@@ -585,7 +699,6 @@ h5 {
|
|
585
699
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
586
700
|
.mfui-instructions__articles-title-block {
|
587
701
|
width: 55%;
|
588
|
-
margin: 0 auto 32px;
|
589
702
|
}
|
590
703
|
}
|
591
704
|
.mfui-instructions__articles-title {
|
@@ -651,3 +764,27 @@ h5 {
|
|
651
764
|
line-height: 12px;
|
652
765
|
text-align: center;
|
653
766
|
}
|
767
|
+
.mfui-instructions_reversed .mfui-instructions__title_resolution_mobile {
|
768
|
+
margin-bottom: 16px;
|
769
|
+
}
|
770
|
+
@media screen and (max-width: 1023px) {
|
771
|
+
.mfui-instructions_reversed .mfui-instructions__picture {
|
772
|
+
max-height: 100%;
|
773
|
+
margin-bottom: 0;
|
774
|
+
}
|
775
|
+
}
|
776
|
+
@media screen and (max-width: 1023px) {
|
777
|
+
.mfui-instructions_reversed .mfui-instructions__articles {
|
778
|
+
display: none;
|
779
|
+
}
|
780
|
+
}
|
781
|
+
@media screen and (max-width: 767px) {
|
782
|
+
.mfui-instructions_reversed .mfui-instructions__articles-title-block {
|
783
|
+
margin-bottom: 32px;
|
784
|
+
}
|
785
|
+
}
|
786
|
+
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
787
|
+
.mfui-instructions_reversed .mfui-instructions__articles-title-block {
|
788
|
+
margin-bottom: 40px;
|
789
|
+
}
|
790
|
+
}
|
@@ -17,7 +17,9 @@ export declare const pictureMaskTypes: {
|
|
17
17
|
readonly BLACK_IPHONE: "black-iphone";
|
18
18
|
readonly WHITE_IPHONE: "white-iphone";
|
19
19
|
readonly LAPTOP: "laptop";
|
20
|
+
readonly LAPTOP_NEW: "laptop-new";
|
20
21
|
readonly IPHONE_12: "iphone-12";
|
22
|
+
readonly IPHONE_15: "iphone-15";
|
21
23
|
readonly IPHONE_CROPPED: "iphone-cropped";
|
22
24
|
readonly NONE: "none";
|
23
25
|
};
|
@@ -28,11 +30,16 @@ export declare const arrowTheme: {
|
|
28
30
|
readonly PURPLE: "purple";
|
29
31
|
readonly DARK: "dark";
|
30
32
|
};
|
33
|
+
export declare const elementOrderTypes: {
|
34
|
+
readonly DEFAULT: "default";
|
35
|
+
readonly REVERSED: "reversed";
|
36
|
+
};
|
31
37
|
declare type PictureAlignTypesType = typeof pictureAlignTypes[keyof typeof pictureAlignTypes];
|
32
38
|
declare type PictureVerticalAlignTypesType = typeof pictureVerticalAlignTypes[keyof typeof pictureVerticalAlignTypes];
|
33
39
|
declare type PictureMaskTypesType = typeof pictureMaskTypes[keyof typeof pictureMaskTypes];
|
34
40
|
declare type PictureBackgroundColorsType = typeof pictureBackgroundColorTypes[keyof typeof pictureBackgroundColorTypes];
|
35
41
|
declare type ArrowThemeType = typeof arrowTheme[keyof typeof arrowTheme];
|
42
|
+
declare type ElementOrderType = typeof elementOrderTypes[keyof typeof elementOrderTypes];
|
36
43
|
export declare type InstructionItemType = {
|
37
44
|
title: string | React.ReactNode | React.ReactNode[];
|
38
45
|
mediaUrl: string;
|
@@ -87,6 +94,8 @@ export interface IInstructionsProps {
|
|
87
94
|
showArrows?: boolean;
|
88
95
|
/** Цветовая тема стрелок навигации */
|
89
96
|
arrowsTheme?: ArrowThemeType;
|
97
|
+
/** Вертикальный порядок элементов на мобильных устройствах и планшетах */
|
98
|
+
elementOrder?: ElementOrderType;
|
90
99
|
/** Ref на swiper */
|
91
100
|
getSwiper?: (instance: SwiperCore) => void;
|
92
101
|
}
|