ecomlab-components-next 0.1.288 → 0.1.290
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/dist/components/ConstructorComponents/MainContainer/MainContainerV2.stories.js +2 -1
- package/dist/components/ConstructorComponents/TariffPlanV2/TariffPlanV2.js +327 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/TariffPlanV2.scss +301 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/bar-chat.svg +5 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/bolt.svg +5 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/check.svg +5 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/checkIcon.svg +9 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/crown.svg +7 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/diamond.svg +7 -0
- package/dist/components/ConstructorComponents/TariffPlanV2/img/rocket.svg +8 -0
- package/dist/index.js +7 -0
- package/package.json +1 -1
|
@@ -18,6 +18,7 @@ var _StatisticCardV = _interopRequireDefault(require("../StatisticCardV2/Statist
|
|
|
18
18
|
var _PhoneBlockV = _interopRequireDefault(require("../PhoneBlockV2/PhoneBlockV2"));
|
|
19
19
|
var _ClientsAboutUsV = _interopRequireDefault(require("../ClientsAboutUsV2/ClientsAboutUsV2"));
|
|
20
20
|
var _TariffPlan = _interopRequireDefault(require("../Tariff/TariffPlan"));
|
|
21
|
+
var _TariffPlanV = _interopRequireDefault(require("../TariffPlanV2/TariffPlanV2"));
|
|
21
22
|
var _image = _interopRequireDefault(require("next/image"));
|
|
22
23
|
var _ArticlesBlockV = _interopRequireDefault(require("../ArticlesBlockV2/ArticlesBlockV2"));
|
|
23
24
|
var _MainContainer = _interopRequireDefault(require("./MainContainer"));
|
|
@@ -191,7 +192,7 @@ var MainContainerTest = exports.MainContainerTest = function MainContainerTest()
|
|
|
191
192
|
}, "\u0435\u0434\u0438\u043D\u043E\u0439 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B")),
|
|
192
193
|
description: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "\u041E\u0434\u043D\u0430 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0430 \u0434\u043B\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430\u043C\u0438 \u043D\u0430 Wildberries, Ozon \u0438 \u042F\u043D\u0434\u0435\u043A\u0441 \u041C\u0430\u0440\u043A\u0435\u0442", /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("br", null), "\u0411\u043E\u043B\u0435\u0435 20 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0434\u043B\u044F \u0430\u043D\u0430\u043B\u0438\u0442\u0438\u043A\u0438 \u0438 \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0437\u043D\u0435\u0441\u0430", /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("br", null), "\u041C\u043E\u043D\u0438\u0442\u043E\u0440\u0438\u043D\u0433 \u043A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043E\u0432, \u0440\u0430\u0431\u043E\u0442\u0430 \u0441 \u0442\u043E\u0432\u0430\u0440\u0430\u043C\u0438, \u0430\u0432\u0442\u043E\u043E\u0442\u0432\u0435\u0442\u044B \u043D\u0430 \u043E\u0442\u0437\u044B\u0432\u044B, CRM, \u0446\u0435\u043D\u043E\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435, \u043C\u0430\u0440\u043A\u0435\u0442\u0438\u043D\u0433 \u0438 \u043C\u043D\u043E\u0433\u043E\u0435 \u0434\u0440\u0443\u0433\u043E\u0435 \u043D\u0430 \u043E\u0434\u043D\u043E\u0439 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435"),
|
|
193
194
|
color: "#00B45E"
|
|
194
|
-
}), /*#__PURE__*/_react["default"].createElement(_MarqueImgsV["default"], null), /*#__PURE__*/_react["default"].createElement(_BlocksInfoV["default"], {
|
|
195
|
+
}), /*#__PURE__*/_react["default"].createElement(_TariffPlanV["default"], null), /*#__PURE__*/_react["default"].createElement(_MarqueImgsV["default"], null), /*#__PURE__*/_react["default"].createElement(_BlocksInfoV["default"], {
|
|
195
196
|
title: "\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430",
|
|
196
197
|
list: possibilities_list
|
|
197
198
|
}), /*#__PURE__*/_react["default"].createElement(_CardsServicesV["default"], null), /*#__PURE__*/_react["default"].createElement(_CardsV["default"], null), /*#__PURE__*/_react["default"].createElement(_FeaturesGridV["default"], {
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _ButtonBasicV = _interopRequireDefault(require("../../Buttons/ButtonBasicV2/ButtonBasicV2"));
|
|
10
|
+
var _useReveal = _interopRequireDefault(require("@/common/hooks/useReveal"));
|
|
11
|
+
require("./TariffPlanV2.scss");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
+
// ─── SVG Icons ────────────────────────────────────────────────────────────────
|
|
14
|
+
var IconRocket = function IconRocket() {
|
|
15
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
16
|
+
viewBox: "0 0 48 48",
|
|
17
|
+
fill: "#fff",
|
|
18
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
19
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
20
|
+
d: "M24 6C24 6 14 14 14 26C14 30.418 17.582 34 22 34H26C30.418 34 34 30.418 34 26C34 14 24 6 24 6Z",
|
|
21
|
+
fill: "#fff",
|
|
22
|
+
fillOpacity: "0.15",
|
|
23
|
+
stroke: "currentColor",
|
|
24
|
+
strokeWidth: "2",
|
|
25
|
+
strokeLinejoin: "round"
|
|
26
|
+
}), /*#__PURE__*/_react["default"].createElement("circle", {
|
|
27
|
+
cx: "24",
|
|
28
|
+
cy: "23",
|
|
29
|
+
r: "3.5",
|
|
30
|
+
stroke: "currentColor",
|
|
31
|
+
strokeWidth: "2"
|
|
32
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
33
|
+
d: "M14 28L10 36L17 33",
|
|
34
|
+
stroke: "currentColor",
|
|
35
|
+
strokeWidth: "2",
|
|
36
|
+
strokeLinecap: "round",
|
|
37
|
+
strokeLinejoin: "round"
|
|
38
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
39
|
+
d: "M34 28L38 36L31 33",
|
|
40
|
+
stroke: "currentColor",
|
|
41
|
+
strokeWidth: "2",
|
|
42
|
+
strokeLinecap: "round",
|
|
43
|
+
strokeLinejoin: "round"
|
|
44
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
45
|
+
d: "M20 34C20 36 21.5 38 24 38C26.5 38 28 36 28 34",
|
|
46
|
+
stroke: "currentColor",
|
|
47
|
+
strokeWidth: "1.5",
|
|
48
|
+
strokeLinecap: "round"
|
|
49
|
+
}));
|
|
50
|
+
};
|
|
51
|
+
var IconBarChart = function IconBarChart() {
|
|
52
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
53
|
+
viewBox: "0 0 36 36",
|
|
54
|
+
fill: "none",
|
|
55
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
56
|
+
}, /*#__PURE__*/_react["default"].createElement("rect", {
|
|
57
|
+
x: "6",
|
|
58
|
+
y: "20",
|
|
59
|
+
width: "6",
|
|
60
|
+
height: "10",
|
|
61
|
+
rx: "2",
|
|
62
|
+
fill: "currentColor",
|
|
63
|
+
opacity: "0.25"
|
|
64
|
+
}), /*#__PURE__*/_react["default"].createElement("rect", {
|
|
65
|
+
x: "15",
|
|
66
|
+
y: "13",
|
|
67
|
+
width: "6",
|
|
68
|
+
height: "17",
|
|
69
|
+
rx: "2",
|
|
70
|
+
fill: "currentColor",
|
|
71
|
+
opacity: "0.45"
|
|
72
|
+
}), /*#__PURE__*/_react["default"].createElement("rect", {
|
|
73
|
+
x: "24",
|
|
74
|
+
y: "6",
|
|
75
|
+
width: "6",
|
|
76
|
+
height: "24",
|
|
77
|
+
rx: "2",
|
|
78
|
+
fill: "currentColor"
|
|
79
|
+
}));
|
|
80
|
+
};
|
|
81
|
+
var IconCrown = function IconCrown() {
|
|
82
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
83
|
+
viewBox: "0 0 36 36",
|
|
84
|
+
fill: "none",
|
|
85
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
87
|
+
d: "M6 26h24M6 26L9 14l7 6 2-8 2 8 7-6 3 12",
|
|
88
|
+
stroke: "currentColor",
|
|
89
|
+
strokeWidth: "1.8",
|
|
90
|
+
strokeLinejoin: "round",
|
|
91
|
+
strokeLinecap: "round"
|
|
92
|
+
}), /*#__PURE__*/_react["default"].createElement("circle", {
|
|
93
|
+
cx: "9",
|
|
94
|
+
cy: "13",
|
|
95
|
+
r: "2",
|
|
96
|
+
fill: "currentColor"
|
|
97
|
+
}), /*#__PURE__*/_react["default"].createElement("circle", {
|
|
98
|
+
cx: "27",
|
|
99
|
+
cy: "13",
|
|
100
|
+
r: "2",
|
|
101
|
+
fill: "currentColor"
|
|
102
|
+
}), /*#__PURE__*/_react["default"].createElement("circle", {
|
|
103
|
+
cx: "18",
|
|
104
|
+
cy: "6",
|
|
105
|
+
r: "2",
|
|
106
|
+
fill: "currentColor"
|
|
107
|
+
}));
|
|
108
|
+
};
|
|
109
|
+
var IconBolt = function IconBolt() {
|
|
110
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
111
|
+
viewBox: "0 0 48 48",
|
|
112
|
+
fill: "#fff",
|
|
113
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
114
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
115
|
+
d: "M28 4L12 26H24L20 44L40 22H28L28 4Z",
|
|
116
|
+
fill: "#fff",
|
|
117
|
+
fillOpacity: "0.18",
|
|
118
|
+
stroke: "currentColor",
|
|
119
|
+
strokeWidth: "2",
|
|
120
|
+
strokeLinejoin: "round",
|
|
121
|
+
strokeLinecap: "round"
|
|
122
|
+
}));
|
|
123
|
+
};
|
|
124
|
+
var IconDiamond = function IconDiamond() {
|
|
125
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
126
|
+
viewBox: "0 0 48 48",
|
|
127
|
+
fill: "#fff",
|
|
128
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
129
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
130
|
+
d: "M24 4L6 18L24 44L42 18L24 4Z",
|
|
131
|
+
fill: "#fff",
|
|
132
|
+
fillOpacity: "0.12",
|
|
133
|
+
stroke: "currentColor",
|
|
134
|
+
strokeWidth: "2",
|
|
135
|
+
strokeLinejoin: "round"
|
|
136
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
137
|
+
d: "M6 18L15 18L24 4",
|
|
138
|
+
stroke: "currentColor",
|
|
139
|
+
strokeWidth: "1.5",
|
|
140
|
+
strokeLinejoin: "round"
|
|
141
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
142
|
+
d: "M42 18L33 18L24 4",
|
|
143
|
+
stroke: "currentColor",
|
|
144
|
+
strokeWidth: "1.5",
|
|
145
|
+
strokeLinejoin: "round"
|
|
146
|
+
}), /*#__PURE__*/_react["default"].createElement("line", {
|
|
147
|
+
x1: "6",
|
|
148
|
+
y1: "18",
|
|
149
|
+
x2: "42",
|
|
150
|
+
y2: "18",
|
|
151
|
+
stroke: "currentColor",
|
|
152
|
+
strokeWidth: "2"
|
|
153
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
154
|
+
d: "M15 18L24 44",
|
|
155
|
+
stroke: "currentColor",
|
|
156
|
+
strokeWidth: "1.5",
|
|
157
|
+
strokeOpacity: "0.5"
|
|
158
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
159
|
+
d: "M33 18L24 44",
|
|
160
|
+
stroke: "currentColor",
|
|
161
|
+
strokeWidth: "1.5",
|
|
162
|
+
strokeOpacity: "0.5"
|
|
163
|
+
}));
|
|
164
|
+
};
|
|
165
|
+
var CheckIcon = function CheckIcon() {
|
|
166
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
167
|
+
className: "tariff-card__feature-icon",
|
|
168
|
+
viewBox: "0 0 15 15",
|
|
169
|
+
fill: "none"
|
|
170
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
171
|
+
d: "M3 7.5l3 3 6-6",
|
|
172
|
+
stroke: "currentColor",
|
|
173
|
+
strokeWidth: "1.8",
|
|
174
|
+
strokeLinecap: "round",
|
|
175
|
+
strokeLinejoin: "round"
|
|
176
|
+
}));
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
// ─── Plan data ────────────────────────────────────────────────────────────────
|
|
180
|
+
var PLANS = [{
|
|
181
|
+
id: 'free',
|
|
182
|
+
icon: /*#__PURE__*/_react["default"].createElement(IconRocket, null),
|
|
183
|
+
gmv: 'До 1 млн ₽',
|
|
184
|
+
gmvLabel: 'GMV за предыдущий месяц',
|
|
185
|
+
price: '0 ₽',
|
|
186
|
+
priceVariant: 'free',
|
|
187
|
+
periodLabel: 'Бесплатно',
|
|
188
|
+
periodAccent: true,
|
|
189
|
+
features: ['Все основные сервисы', 'Аналитика', 'Управление товарами', 'Репрайсер', 'Работа с отзывами', 'Поддержка'],
|
|
190
|
+
cta: 'Начать бесплатно',
|
|
191
|
+
ctaFilled: false,
|
|
192
|
+
popular: false
|
|
193
|
+
}, {
|
|
194
|
+
id: 'starter',
|
|
195
|
+
icon: /*#__PURE__*/_react["default"].createElement(IconBarChart, null),
|
|
196
|
+
gmv: '1 – 5 млн ₽',
|
|
197
|
+
gmvLabel: 'GMV за предыдущий месяц',
|
|
198
|
+
price: '2 990 ₽',
|
|
199
|
+
priceVariant: 'default',
|
|
200
|
+
periodLabel: 'в месяц',
|
|
201
|
+
periodAccent: false,
|
|
202
|
+
features: ['Все из тарифа бесплатно', 'Расширенная аналитика', 'Репрайсер', 'Работа с отзывами', 'Управление рекламой', 'Приоритетная поддержка'],
|
|
203
|
+
cta: 'Выбрать тариф',
|
|
204
|
+
ctaFilled: false,
|
|
205
|
+
popular: false
|
|
206
|
+
}, {
|
|
207
|
+
id: 'growth',
|
|
208
|
+
icon: /*#__PURE__*/_react["default"].createElement(IconCrown, null),
|
|
209
|
+
gmv: '5 – 20 млн ₽',
|
|
210
|
+
gmvLabel: 'GMV за предыдущий месяц',
|
|
211
|
+
price: '6 990 ₽',
|
|
212
|
+
priceVariant: 'default',
|
|
213
|
+
periodLabel: 'в месяц',
|
|
214
|
+
periodAccent: false,
|
|
215
|
+
features: ['Все из тарифа 1–5 млн ₽', 'AI-инструменты', 'PIM и автоматизация', 'CRM и задачи', 'Массовые операции', 'Расширенные отчёты'],
|
|
216
|
+
cta: 'Выбрать тариф',
|
|
217
|
+
ctaFilled: true,
|
|
218
|
+
popular: true
|
|
219
|
+
}, {
|
|
220
|
+
id: 'scale',
|
|
221
|
+
icon: /*#__PURE__*/_react["default"].createElement(IconBolt, null),
|
|
222
|
+
gmv: '20+ млн ₽',
|
|
223
|
+
gmvLabel: 'GMV за предыдущий месяц',
|
|
224
|
+
price: '14 990 ₽',
|
|
225
|
+
priceVariant: 'default',
|
|
226
|
+
periodLabel: 'в месяц',
|
|
227
|
+
periodAccent: false,
|
|
228
|
+
features: ['Все из тарифа 5–20 млн ₽', 'Несколько пользователей', 'Роли и права доступа', 'API и интеграции', 'Персональный менеджер', 'Приоритетная поддержка'],
|
|
229
|
+
cta: 'Выбрать тариф',
|
|
230
|
+
ctaFilled: false,
|
|
231
|
+
popular: false
|
|
232
|
+
}, {
|
|
233
|
+
id: 'enterprise',
|
|
234
|
+
icon: /*#__PURE__*/_react["default"].createElement(IconDiamond, null),
|
|
235
|
+
gmv: '50+ млн ₽',
|
|
236
|
+
gmvLabel: 'GMV за предыдущий месяц',
|
|
237
|
+
price: 'Индивидуально',
|
|
238
|
+
priceVariant: 'custom',
|
|
239
|
+
periodLabel: 'в месяц',
|
|
240
|
+
periodAccent: false,
|
|
241
|
+
features: ['Индивидуальные условия', 'Персональный менеджер', 'Внедрение и обучение', 'Интеграции и API', 'SLA и приоритетная поддержка'],
|
|
242
|
+
cta: 'Связаться с нами',
|
|
243
|
+
ctaFilled: false,
|
|
244
|
+
popular: false
|
|
245
|
+
}];
|
|
246
|
+
|
|
247
|
+
// ─── TariffCard ───────────────────────────────────────────────────────────────
|
|
248
|
+
var TariffCard = function TariffCard(_ref) {
|
|
249
|
+
var plan = _ref.plan,
|
|
250
|
+
onCtaClick = _ref.onCtaClick;
|
|
251
|
+
(0, _useReveal["default"])();
|
|
252
|
+
var cardCls = ['tariff-card', plan.popular ? 'tariff-card_popular' : ''].filter(Boolean).join(' ');
|
|
253
|
+
var priceCls = ['tariff-card__price', plan.priceVariant === 'free' ? 'tariff-card__price_free' : '', plan.priceVariant === 'custom' ? 'tariff-card__price_custom' : ''].filter(Boolean).join(' ');
|
|
254
|
+
var periodCls = ['tariff-card__price-period', plan.periodAccent ? 'tariff-card__price-period_accent' : ''].filter(Boolean).join(' ');
|
|
255
|
+
var ctaCls = ['tariff-card__cta', plan.ctaFilled ? 'tariff-card__cta_filled' : ''].filter(Boolean).join(' ');
|
|
256
|
+
return /*#__PURE__*/_react["default"].createElement("article", {
|
|
257
|
+
className: "".concat(cardCls, " reveal")
|
|
258
|
+
}, plan.popular && /*#__PURE__*/_react["default"].createElement("div", {
|
|
259
|
+
className: "tariff-card__badge"
|
|
260
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
261
|
+
className: "tariff-card__badge-star"
|
|
262
|
+
}, "\u2605"), "\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u0439"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
263
|
+
className: "tariff-card__icon"
|
|
264
|
+
}, plan.icon), /*#__PURE__*/_react["default"].createElement("p", {
|
|
265
|
+
className: "tariff-card__gmv"
|
|
266
|
+
}, plan.gmv), /*#__PURE__*/_react["default"].createElement("p", {
|
|
267
|
+
className: "tariff-card__gmv-label"
|
|
268
|
+
}, plan.gmvLabel), /*#__PURE__*/_react["default"].createElement("p", {
|
|
269
|
+
className: priceCls
|
|
270
|
+
}, plan.price), /*#__PURE__*/_react["default"].createElement("p", {
|
|
271
|
+
className: periodCls
|
|
272
|
+
}, plan.periodLabel), /*#__PURE__*/_react["default"].createElement("ul", {
|
|
273
|
+
className: "tariff-card__features"
|
|
274
|
+
}, plan.features.map(function (feat) {
|
|
275
|
+
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
276
|
+
key: feat,
|
|
277
|
+
className: "tariff-card__feature"
|
|
278
|
+
}, /*#__PURE__*/_react["default"].createElement(CheckIcon, null), feat);
|
|
279
|
+
})), /*#__PURE__*/_react["default"].createElement(_ButtonBasicV["default"], {
|
|
280
|
+
green: true,
|
|
281
|
+
width: "100%",
|
|
282
|
+
onClick: function onClick() {
|
|
283
|
+
return onCtaClick === null || onCtaClick === void 0 ? void 0 : onCtaClick(plan);
|
|
284
|
+
},
|
|
285
|
+
text: plan.cta
|
|
286
|
+
}));
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
// ─── TariffPlanV2 ─────────────────────────────────────────────────────────────
|
|
290
|
+
/**
|
|
291
|
+
* @param {{
|
|
292
|
+
* title?: string,
|
|
293
|
+
* description?: string,
|
|
294
|
+
* onCtaClick?: (plan: object) => void
|
|
295
|
+
* }} props
|
|
296
|
+
*/
|
|
297
|
+
var TariffPlanV2 = function TariffPlanV2(_ref2) {
|
|
298
|
+
var _ref2$title = _ref2.title,
|
|
299
|
+
title = _ref2$title === void 0 ? 'Тарифы по обороту' : _ref2$title,
|
|
300
|
+
_ref2$description = _ref2.description,
|
|
301
|
+
description = _ref2$description === void 0 ? 'Платите только за результат. Выбирайте тариф в зависимости от оборота вашего магазина за предыдущий месяц.' : _ref2$description,
|
|
302
|
+
_ref2$onCtaClick = _ref2.onCtaClick,
|
|
303
|
+
onCtaClick = _ref2$onCtaClick === void 0 ? function () {
|
|
304
|
+
var _window;
|
|
305
|
+
(_window = window) === null || _window === void 0 || _window.open("https://lk.ecomru.ru/settings/tariff", '_blunk');
|
|
306
|
+
} : _ref2$onCtaClick;
|
|
307
|
+
return /*#__PURE__*/_react["default"].createElement("section", {
|
|
308
|
+
className: "tariff-plan"
|
|
309
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
310
|
+
className: "tariff-plan__inner"
|
|
311
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
312
|
+
className: "tariff-plan__header"
|
|
313
|
+
}, title && /*#__PURE__*/_react["default"].createElement("h2", {
|
|
314
|
+
className: "tariff-plan__title reveal"
|
|
315
|
+
}, title), description && /*#__PURE__*/_react["default"].createElement("p", {
|
|
316
|
+
className: "tariff-plan__subtitle reveal"
|
|
317
|
+
}, description)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
318
|
+
className: "tariff-plan__grid"
|
|
319
|
+
}, PLANS.map(function (plan) {
|
|
320
|
+
return /*#__PURE__*/_react["default"].createElement(TariffCard, {
|
|
321
|
+
key: plan.id,
|
|
322
|
+
plan: plan,
|
|
323
|
+
onCtaClick: onCtaClick
|
|
324
|
+
});
|
|
325
|
+
}))));
|
|
326
|
+
};
|
|
327
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(TariffPlanV2);
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
|
|
2
|
+
@import '../variables.scss';
|
|
3
|
+
|
|
4
|
+
// ─── tariff-plan ─────────────────────────────────────────────────────────────
|
|
5
|
+
.tariff-plan {
|
|
6
|
+
font-family: 'Manrope', sans-serif;
|
|
7
|
+
background: $white;
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding: 96px 40px;
|
|
10
|
+
|
|
11
|
+
* {
|
|
12
|
+
font-family: 'Manrope', sans-serif !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&__inner {
|
|
16
|
+
max-width: 1280px;
|
|
17
|
+
margin: 0 auto;
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: 56px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&__header {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
align-items: center;
|
|
27
|
+
width: 100%;
|
|
28
|
+
gap: 12px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&__title {
|
|
32
|
+
font-size: 30px;
|
|
33
|
+
font-weight: 800;
|
|
34
|
+
letter-spacing: -0.5px;
|
|
35
|
+
color: $text;
|
|
36
|
+
margin: 0;
|
|
37
|
+
line-height: 1.15;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&__subtitle {
|
|
41
|
+
font-size: 15px;
|
|
42
|
+
color: $muted;
|
|
43
|
+
line-height: 1.65;
|
|
44
|
+
max-width: 440px;
|
|
45
|
+
text-align: center;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&__grid {
|
|
49
|
+
display: grid;
|
|
50
|
+
grid-template-columns: repeat(5, 1fr);
|
|
51
|
+
gap: 24px;
|
|
52
|
+
align-items: stretch;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// ─── tariff-card ─────────────────────────────────────────────────────────────
|
|
57
|
+
.tariff-card {
|
|
58
|
+
position: relative;
|
|
59
|
+
background: $white;
|
|
60
|
+
border: 1px solid $border;
|
|
61
|
+
border-radius: 20px;
|
|
62
|
+
padding: 28px 20px 24px;
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-direction: column;
|
|
65
|
+
height: 100%;
|
|
66
|
+
transition: transform 0.2s, box-shadow 0.2s;
|
|
67
|
+
|
|
68
|
+
&:hover {
|
|
69
|
+
transform: translateY(-4px);
|
|
70
|
+
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&_popular {
|
|
74
|
+
border-color: $green;
|
|
75
|
+
box-shadow: 0 4px 24px rgba(5, 150, 105, 0.15);
|
|
76
|
+
|
|
77
|
+
&:hover {
|
|
78
|
+
box-shadow: 0 12px 40px rgba(5, 150, 105, 0.22);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&__badge {
|
|
83
|
+
position: absolute;
|
|
84
|
+
top: -1px;
|
|
85
|
+
left: 50%;
|
|
86
|
+
transform: translateX(-50%);
|
|
87
|
+
background: $green;
|
|
88
|
+
color: $white;
|
|
89
|
+
font-size: 11px;
|
|
90
|
+
font-weight: 700;
|
|
91
|
+
letter-spacing: 0.3px;
|
|
92
|
+
padding: 4px 14px;
|
|
93
|
+
border-radius: 0 0 10px 10px;
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
gap: 4px;
|
|
97
|
+
white-space: nowrap;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&__badge-star {
|
|
101
|
+
font-size: 10px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&__icon {
|
|
105
|
+
width: 36px;
|
|
106
|
+
height: 36px;
|
|
107
|
+
margin-bottom: 12px;
|
|
108
|
+
color: $green;
|
|
109
|
+
flex-shrink: 0;
|
|
110
|
+
|
|
111
|
+
svg {
|
|
112
|
+
width: 100%;
|
|
113
|
+
height: 100%;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
&__gmv {
|
|
118
|
+
font-size: 13px;
|
|
119
|
+
font-weight: 700;
|
|
120
|
+
color: $text;
|
|
121
|
+
margin-bottom: 2px;
|
|
122
|
+
line-height: 1.2;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
&__gmv-label {
|
|
126
|
+
font-size: 11px;
|
|
127
|
+
color: $muted;
|
|
128
|
+
margin-bottom: 16px;
|
|
129
|
+
line-height: 1.3;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
&__price {
|
|
133
|
+
font-size: 28px;
|
|
134
|
+
font-weight: 800;
|
|
135
|
+
color: $text;
|
|
136
|
+
line-height: 1;
|
|
137
|
+
margin-bottom: 2px;
|
|
138
|
+
letter-spacing: -0.5px;
|
|
139
|
+
|
|
140
|
+
&_free {
|
|
141
|
+
color: $green;
|
|
142
|
+
font-size: 22px;
|
|
143
|
+
font-weight: 700;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&_custom {
|
|
147
|
+
color: $green;
|
|
148
|
+
font-size: 20px;
|
|
149
|
+
font-weight: 700;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
&__price-period {
|
|
154
|
+
font-size: 12px;
|
|
155
|
+
color: $muted;
|
|
156
|
+
margin-bottom: 20px;
|
|
157
|
+
|
|
158
|
+
&_accent {
|
|
159
|
+
color: $green;
|
|
160
|
+
font-weight: 600;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
&__features {
|
|
165
|
+
list-style: none;
|
|
166
|
+
padding: 0;
|
|
167
|
+
margin: 0 0 22px;
|
|
168
|
+
display: flex;
|
|
169
|
+
flex-direction: column;
|
|
170
|
+
gap: 9px;
|
|
171
|
+
flex: 1;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
&__feature {
|
|
175
|
+
display: flex;
|
|
176
|
+
align-items: flex-start;
|
|
177
|
+
gap: 7px;
|
|
178
|
+
font-size: 13px;
|
|
179
|
+
color: $text;
|
|
180
|
+
line-height: 1.5;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
&__feature-icon {
|
|
184
|
+
flex-shrink: 0;
|
|
185
|
+
width: 15px;
|
|
186
|
+
height: 15px;
|
|
187
|
+
margin-top: 2px;
|
|
188
|
+
color: $green;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
&__cta {
|
|
192
|
+
display: block;
|
|
193
|
+
width: 100%;
|
|
194
|
+
padding: 11px 16px;
|
|
195
|
+
border-radius: 10px;
|
|
196
|
+
font-size: 13px;
|
|
197
|
+
font-weight: 700;
|
|
198
|
+
text-align: center;
|
|
199
|
+
cursor: pointer;
|
|
200
|
+
border: 1.5px solid $green;
|
|
201
|
+
background: transparent;
|
|
202
|
+
color: $green;
|
|
203
|
+
line-height: 1;
|
|
204
|
+
transition: background 0.2s, color 0.2s, border-color 0.2s;
|
|
205
|
+
|
|
206
|
+
&:hover {
|
|
207
|
+
background: $green-light-bg;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
&_filled {
|
|
211
|
+
background: $green;
|
|
212
|
+
color: $white;
|
|
213
|
+
border-color: $green;
|
|
214
|
+
|
|
215
|
+
&:hover {
|
|
216
|
+
background: $green-dark;
|
|
217
|
+
border-color: $green-dark;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// ─── Планшет (до 1100px) ─────────────────────────────────────────────────────
|
|
224
|
+
@media (max-width: $tablet) {
|
|
225
|
+
.tariff-plan {
|
|
226
|
+
padding: 72px 24px;
|
|
227
|
+
|
|
228
|
+
&__grid {
|
|
229
|
+
grid-template-columns: repeat(3, 1fr);
|
|
230
|
+
gap: 20px;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
&__title {
|
|
234
|
+
font-size: 26px;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ─── Мобильная (до 768px) ────────────────────────────────────────────────────
|
|
240
|
+
@media (max-width: 768px) {
|
|
241
|
+
.tariff-plan {
|
|
242
|
+
&__grid {
|
|
243
|
+
grid-template-columns: 1fr 1fr;
|
|
244
|
+
gap: 16px;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
&__subtitle {
|
|
248
|
+
font-size: 14px;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.tariff-card {
|
|
253
|
+
&__price {
|
|
254
|
+
font-size: 22px;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// ─── Мобильная (до 550px) ────────────────────────────────────────────────────
|
|
260
|
+
@media (max-width: 550px) {
|
|
261
|
+
.tariff-plan {
|
|
262
|
+
&__grid {
|
|
263
|
+
grid-template-columns: 1fr;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// ─── Мобильная (до 430px) ────────────────────────────────────────────────────
|
|
269
|
+
@media (max-width: $mobile) {
|
|
270
|
+
.tariff-plan {
|
|
271
|
+
padding: 40px 20px;
|
|
272
|
+
|
|
273
|
+
&__inner {
|
|
274
|
+
gap: 36px;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
&__title {
|
|
278
|
+
font-size: 22px;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
&__subtitle {
|
|
282
|
+
font-size: 13px;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
&__grid {
|
|
286
|
+
gap: 12px;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.tariff-card {
|
|
291
|
+
padding: 20px 16px 20px;
|
|
292
|
+
|
|
293
|
+
&__price {
|
|
294
|
+
font-size: 20px;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
&__feature {
|
|
298
|
+
font-size: 12px;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="6" y="20" width="6" height="10" rx="2" fill="currentColor" opacity="0.25" />
|
|
3
|
+
<rect x="15" y="13" width="6" height="17" rx="2" fill="currentColor" opacity="0.45" />
|
|
4
|
+
<rect x="24" y="6" width="6" height="24" rx="2" fill="currentColor" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M6 26h24M6 26L9 14l7 6 2-8 2 8 7-6 3 12"
|
|
3
|
+
stroke="currentColor" strokeWidth="1.8" strokeLinejoin="round" strokeLinecap="round" />
|
|
4
|
+
<circle cx="9" cy="13" r="2" fill="currentColor" />
|
|
5
|
+
<circle cx="27" cy="13" r="2" fill="currentColor" />
|
|
6
|
+
<circle cx="18" cy="6" r="2" fill="currentColor" />
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M18 4l10 10-10 18L8 14 18 4z"
|
|
3
|
+
fill="currentColor" opacity="0.18"
|
|
4
|
+
stroke="currentColor" strokeWidth="1.8" strokeLinejoin="round" />
|
|
5
|
+
<path d="M8 14h20" stroke="currentColor" strokeWidth="1.8" />
|
|
6
|
+
<path d="M12 14L18 4M24 14L18 4" stroke="currentColor" strokeWidth="1.2" opacity="0.5" />
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M18 4C18 4 11 10 11 19c0 3.87 3.13 7 7 7s7-3.13 7-7C25 10 18 4 18 4z"
|
|
3
|
+
fill="currentColor" opacity="0.18" />
|
|
4
|
+
<path d="M18 4s-7 6-7 15c0 3.87 3.13 7 7 7s7-3.13 7-7C25 10 18 4 18 4z"
|
|
5
|
+
stroke="currentColor" strokeWidth="1.6" strokeLinejoin="round" />
|
|
6
|
+
<circle cx="18" cy="19" r="2.5" fill="currentColor" />
|
|
7
|
+
<path d="M13 26l-3 4M23 26l3 4" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" />
|
|
8
|
+
</svg>
|
package/dist/index.js
CHANGED
|
@@ -381,6 +381,12 @@ Object.defineProperty(exports, "TariffPlan", {
|
|
|
381
381
|
return _TariffPlan["default"];
|
|
382
382
|
}
|
|
383
383
|
});
|
|
384
|
+
Object.defineProperty(exports, "TariffPlanV2", {
|
|
385
|
+
enumerable: true,
|
|
386
|
+
get: function get() {
|
|
387
|
+
return _TariffPlanV["default"];
|
|
388
|
+
}
|
|
389
|
+
});
|
|
384
390
|
Object.defineProperty(exports, "TextareaDynamicPlaceholder", {
|
|
385
391
|
enumerable: true,
|
|
386
392
|
get: function get() {
|
|
@@ -425,6 +431,7 @@ var _PhoneBlockV = _interopRequireDefault(require("./components/ConstructorCompo
|
|
|
425
431
|
var _Questions = _interopRequireDefault(require("./components/ConstructorComponents/Questions/Questions"));
|
|
426
432
|
var _QuestionsV = _interopRequireDefault(require("./components/ConstructorComponents/QuestionsV2/QuestionsV2"));
|
|
427
433
|
var _TariffPlan = _interopRequireDefault(require("./components/ConstructorComponents/Tariff/TariffPlan"));
|
|
434
|
+
var _TariffPlanV = _interopRequireDefault(require("./components/ConstructorComponents/TariffPlanV2/TariffPlanV2"));
|
|
428
435
|
var _VideoBlock = _interopRequireDefault(require("./components/ConstructorComponents/VideoBlock/VideoBlock"));
|
|
429
436
|
var _VideoBlockV = _interopRequireDefault(require("./components/ConstructorComponents/VideoBlockV2/VideoBlockV2"));
|
|
430
437
|
var _ArticlesBlock = _interopRequireDefault(require("./components/ConstructorComponents/ArticlesBlock/ArticlesBlock"));
|