ecomlab-components-next 0.1.238 → 0.1.240

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 (77) hide show
  1. package/dist/components/Buttons/ButtonBasicV2/ButtonBasicV2.js +85 -0
  2. package/dist/components/Buttons/ButtonBasicV2/ButtonBasicV2.scss +55 -0
  3. package/dist/components/Buttons/ButtonBasicV2/ButtonBasicV2stories.js +43 -0
  4. package/dist/components/ConstructorComponents/ArticlesBlockV2/ArticlesBlockV2.js +153 -0
  5. package/dist/components/ConstructorComponents/ArticlesBlockV2/ArticlesBlockV2.module.scss +214 -0
  6. package/dist/components/ConstructorComponents/BlocksInfo/BlocksInfo.scss +0 -1
  7. package/dist/components/ConstructorComponents/BlocksInfoV2/BlocksInfoV2.js +210 -0
  8. package/dist/components/ConstructorComponents/BlocksInfoV2/BlocksInfoV2.scss +236 -0
  9. package/dist/components/ConstructorComponents/BlocksInfoV2/BlocksInfoV2.stories.js +57 -0
  10. package/dist/components/ConstructorComponents/BlocksInfoV2/img/develop.png +0 -0
  11. package/dist/components/ConstructorComponents/CardsInfo/CardsInfo.js +15 -29
  12. package/dist/components/ConstructorComponents/CardsServicesV2/CardsServicesV2.js +164 -0
  13. package/dist/components/ConstructorComponents/CardsServicesV2/CardsServicesV2.scss +333 -0
  14. package/dist/components/ConstructorComponents/CardsV2/CardsV2.js +51 -0
  15. package/dist/components/ConstructorComponents/CardsV2/CardsV2.scss +158 -0
  16. package/dist/components/ConstructorComponents/CardsV2/CardsV2.stories.js +16 -0
  17. package/dist/components/ConstructorComponents/ClientsAboutUsV2/ClientsAboutUsV2.js +83 -0
  18. package/dist/components/ConstructorComponents/ClientsAboutUsV2/ClientsAboutUsV2.scss +312 -0
  19. package/dist/components/ConstructorComponents/ClientsAboutUsV2/ClientsAboutUsV2.stories.js +25 -0
  20. package/dist/components/ConstructorComponents/FeaturesGridV2/FeaturesGridV2.js +102 -0
  21. package/dist/components/ConstructorComponents/FeaturesGridV2/FeaturesGridV2.scss +145 -0
  22. package/dist/components/ConstructorComponents/FeaturesGridV2/FeaturesGridV2.stories.js +36 -0
  23. package/dist/components/ConstructorComponents/FormV2/FormV2.js +139 -0
  24. package/dist/components/ConstructorComponents/FormV2/FormV2.scss +153 -0
  25. package/dist/components/ConstructorComponents/FormV2/FormWithBtn.stories.js +16 -0
  26. package/dist/components/ConstructorComponents/Header/Header.js +1 -1
  27. package/dist/components/ConstructorComponents/HeaderV2/HeaderV2.js +127 -0
  28. package/dist/components/ConstructorComponents/HeaderV2/HeaderV2.scss +227 -0
  29. package/dist/components/ConstructorComponents/HeaderV2/HeaderV2.stories.js +24 -0
  30. package/dist/components/ConstructorComponents/HeaderV2/img/Ozon.svg +20 -0
  31. package/dist/components/ConstructorComponents/HeaderV2/img/WB.svg +15 -0
  32. package/dist/components/ConstructorComponents/HeaderV2/img/Yandex Market.svg +14 -0
  33. package/dist/components/ConstructorComponents/MainContainer/MainContainer.js +4 -2
  34. package/dist/components/ConstructorComponents/MainContainer/MainContainer.scss +24 -0
  35. package/dist/components/ConstructorComponents/MainContainer/MainContainerV2.stories.js +199 -0
  36. package/dist/components/ConstructorComponents/MarqueImgsV2/MarqueImgsV2.js +48 -0
  37. package/dist/components/ConstructorComponents/MarqueImgsV2/MarqueImgsV2.scss +66 -0
  38. package/dist/components/ConstructorComponents/MarqueImgsV2/MarqueImgsV2.stories.js +16 -0
  39. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_1.svg +4 -0
  40. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_10.svg +9 -0
  41. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_11.svg +10 -0
  42. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_12.svg +11 -0
  43. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_13.svg +9 -0
  44. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_2.svg +10 -0
  45. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_3.svg +10 -0
  46. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_4.svg +28 -0
  47. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_5.svg +9 -0
  48. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_6.svg +26 -0
  49. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_7.png +0 -0
  50. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_7.svg +17 -0
  51. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_8.svg +9 -0
  52. package/dist/components/ConstructorComponents/MarqueImgsV2/img/brand_9.svg +9 -0
  53. package/dist/components/ConstructorComponents/PhoneBlockV2/PhoneBlockV2.js +40 -0
  54. package/dist/components/ConstructorComponents/PhoneBlockV2/PhoneBlockV2.scss +302 -0
  55. package/dist/components/ConstructorComponents/PhoneBlockV2/PhoneBlockV2.stories.js +19 -0
  56. package/dist/components/ConstructorComponents/PhoneBlockV2/img/phone.png +0 -0
  57. package/dist/components/ConstructorComponents/PointsListV2/PointsListV2.js +45 -0
  58. package/dist/components/ConstructorComponents/PointsListV2/PointsListV2.scss +151 -0
  59. package/dist/components/ConstructorComponents/PointsListV2/PointsListV2.stories.js +43 -0
  60. package/dist/components/ConstructorComponents/PointsListV2/img/bx-right-arrow-alt.svg +5 -0
  61. package/dist/components/ConstructorComponents/QuestionsV2/QuestionsV2.js +72 -0
  62. package/dist/components/ConstructorComponents/QuestionsV2/QuestionsV2.scss +179 -0
  63. package/dist/components/ConstructorComponents/QuestionsV2/QuestionsV2.stories.js +57 -0
  64. package/dist/components/ConstructorComponents/QuestionsV2/img/ar_down.svg +5 -0
  65. package/dist/components/ConstructorComponents/QuestionsV2/img/ar_up.svg +5 -0
  66. package/dist/components/ConstructorComponents/ServicesSectionV2/ServicesSectionV2.js +161 -0
  67. package/dist/components/ConstructorComponents/ServicesSectionV2/ServicesSectionV2.scss +245 -0
  68. package/dist/components/ConstructorComponents/StatisticCardV2/StatisticCardV2.js +44 -0
  69. package/dist/components/ConstructorComponents/StatisticCardV2/StatisticCardV2.module.scss +156 -0
  70. package/dist/components/ConstructorComponents/StatisticCardV2/StatisticCardV2.stories.js +32 -0
  71. package/dist/components/ConstructorComponents/StepsV2/StepsV2.js +86 -0
  72. package/dist/components/ConstructorComponents/StepsV2/StepsV2.module.scss +226 -0
  73. package/dist/components/ConstructorComponents/StepsV2/StepsV2.stories.js +30 -0
  74. package/dist/components/ConstructorComponents/variables.scss +50 -0
  75. package/dist/components/Slider/SliderCarousel/SliderCarousel.js +4 -6
  76. package/dist/index.js +84 -0
  77. package/package.json +1 -1
@@ -0,0 +1,85 @@
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
+ require("./ButtonBasicV2.scss");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ var ButtonBasicV2 = function ButtonBasicV2(_ref) {
19
+ var text = _ref.text,
20
+ _onClick = _ref.onClick,
21
+ _ref$width = _ref.width,
22
+ width = _ref$width === void 0 ? 210 : _ref$width,
23
+ minWidth = _ref.minWidth,
24
+ size = _ref.size,
25
+ _ref$disabled = _ref.disabled,
26
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
27
+ props = _ref.props,
28
+ maxWidth = _ref.maxWidth,
29
+ style = _ref.style,
30
+ _ref$blue = _ref.blue,
31
+ blue = _ref$blue === void 0 ? false : _ref$blue,
32
+ _ref$orange = _ref.orange,
33
+ orange = _ref$orange === void 0 ? false : _ref$orange,
34
+ _ref$red = _ref.red,
35
+ red = _ref$red === void 0 ? false : _ref$red,
36
+ _ref$green = _ref.green,
37
+ green = _ref$green === void 0 ? false : _ref$green,
38
+ _ref$whiteBlue = _ref.whiteBlue,
39
+ whiteBlue = _ref$whiteBlue === void 0 ? false : _ref$whiteBlue,
40
+ _ref$grey = _ref.grey,
41
+ grey = _ref$grey === void 0 ? false : _ref$grey,
42
+ _ref$violet = _ref.violet,
43
+ violet = _ref$violet === void 0 ? false : _ref$violet,
44
+ _ref$lilac = _ref.lilac,
45
+ lilac = _ref$lilac === void 0 ? false : _ref$lilac,
46
+ _ref$action = _ref.action,
47
+ action = _ref$action === void 0 ? false : _ref$action,
48
+ _ref$white = _ref.white,
49
+ white = _ref$white === void 0 ? false : _ref$white,
50
+ _ref$whiteGreen = _ref.whiteGreen,
51
+ whiteGreen = _ref$whiteGreen === void 0 ? false : _ref$whiteGreen,
52
+ _ref$darkViolet = _ref.darkViolet,
53
+ darkViolet = _ref$darkViolet === void 0 ? false : _ref$darkViolet;
54
+ // Если передан только "width" - то она становится статичной шириной, кнопка не расширяется и не сужается
55
+ // Если передана "minWidth" кнопка становится пластичной и тянется до with(наибольшей ширины), minWidt(наименьшей ширины)
56
+
57
+ var colorClassName = function colorClassName() {
58
+ if (blue) return 'blue-btn2';
59
+ if (whiteBlue) return 'white-blue-btn2';
60
+ if (green) return 'green-btn2';
61
+ if (orange) return 'orange-btn2';
62
+ if (red) return 'red-btn2';
63
+ if (grey) return 'grey-btn2';
64
+ if (violet) return 'violet-btn2';
65
+ if (lilac) return 'lilac-btn2';
66
+ if (action) return 'action-btn2';
67
+ if (white) return 'white-btn2';
68
+ if (whiteGreen) return 'white-green-btn2';
69
+ if (darkViolet) return 'dark-violet-btn2';
70
+ };
71
+ return /*#__PURE__*/_react["default"].createElement("button", _extends({
72
+ className: "btn-basic2 ".concat(colorClassName() || 'violet-btn2'),
73
+ disabled: disabled,
74
+ style: _objectSpread(_defineProperty({
75
+ minWidth: minWidth ? minWidth : '',
76
+ width: width ? width : '',
77
+ maxWidth: maxWidth ? maxWidth : '',
78
+ height: size ? size : '40px'
79
+ }, "maxWidth", maxWidth ? maxWidth : ''), style),
80
+ onClick: function onClick(e) {
81
+ return _onClick(e);
82
+ }
83
+ }, props), text);
84
+ };
85
+ var _default = exports["default"] = ButtonBasicV2;
@@ -0,0 +1,55 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
2
+ @import '../../ConstructorComponents/variables.scss';
3
+
4
+ .btn-basic2 {
5
+ width: 100%;
6
+ min-height: 32px;
7
+ font-size: 14px;
8
+ // max-width: 200px;
9
+ width: 200px;
10
+ border-radius: 8px;
11
+ border: none;
12
+ //margin-top: 32px;
13
+ color: white;
14
+ font-weight: 700;
15
+ min-width: 120px;
16
+ padding: 4px 8px;
17
+ cursor: pointer;
18
+
19
+ * {
20
+ font-family: 'Manrope', 'Golos Text', sans-serif !important;
21
+ }
22
+ }
23
+
24
+ .green-btn2 {
25
+ background-color: $green;
26
+ box-shadow: 0 8px 24px rgba(5, 150, 105, 0.3);
27
+
28
+ &:hover {
29
+ transform: translateY(-2px);
30
+ box-shadow: 0 8px 24px rgba(5, 150, 105, 0.4);
31
+ background: $green-dark;
32
+ transition: 0.5s;
33
+ }
34
+
35
+ &[disabled] {
36
+ position: relative;
37
+ cursor: not-allowed;
38
+ background-color: #BBF7D0;
39
+ color: #ffffff;
40
+ -webkit-box-shadow: none;
41
+ -moz-box-shadow: none;
42
+ box-shadow: none;
43
+
44
+ &:hover {
45
+ box-shadow: none;
46
+ background-color: #BBF7D0;
47
+ box-shadow: none;
48
+ }
49
+
50
+ &:active {
51
+ border: none;
52
+ }
53
+
54
+ }
55
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.Default = void 0;
7
+ var _ButtonBasicV = _interopRequireDefault(require("./ButtonBasicV2"));
8
+ var _addonActions = require("@storybook/addon-actions");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
11
+ var _default = exports["default"] = {
12
+ title: 'ButtonBasicV2',
13
+ component: _ButtonBasicV["default"],
14
+ args: {
15
+ text: 'Кнопка',
16
+ onClick: _addonActions.action,
17
+ width: '210px',
18
+ minWidth: '210px',
19
+ size: '40px',
20
+ disabled: false,
21
+ maxWidth: '210px',
22
+ style: false,
23
+ blue: false,
24
+ orange: false,
25
+ red: false,
26
+ green: false,
27
+ whiteBlue: false,
28
+ grey: false
29
+ }
30
+ };
31
+ var Default = exports.Default = {
32
+ render: function render(args) {
33
+ return /*#__PURE__*/React.createElement("div", {
34
+ style: {
35
+ display: 'flex',
36
+ gap: '10px',
37
+ flexDirection: 'column'
38
+ }
39
+ }, /*#__PURE__*/React.createElement(_ButtonBasicV["default"], _extends({}, args, {
40
+ green: true
41
+ })));
42
+ }
43
+ };
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getArticleBoxData = exports["default"] = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _utils = require("../../../common/utils");
11
+ var _ArticlesBlockV2Module = _interopRequireDefault(require("./ArticlesBlockV2.module.scss"));
12
+ var _ShortTileArticleBox = _interopRequireDefault(require("../../ArticleElements/ShortTileArticleBox/ShortTileArticleBox"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
17
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
20
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
21
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
23
+ var getArticleBoxData = exports.getArticleBoxData = function getArticleBoxData(articlesData) {
24
+ var _articlesData$data;
25
+ var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ru';
26
+ var articleTableHeadersRuEng = {
27
+ id: "id",
28
+ portalId: "portal_id",
29
+ photo: lang === 'ru' ? "Фото" : 'Photo',
30
+ name: lang === 'ru' ? "Название" : 'Name',
31
+ annotation: lang === 'ru' ? "Аннотация" : 'Annotation',
32
+ tags: lang === 'ru' ? "Теги" : 'Tag',
33
+ publicationDate: lang === 'ru' ? "Дата публикации" : 'Publication date',
34
+ author: lang === 'ru' ? "Автор" : 'Author',
35
+ timeToRead: lang === 'ru' ? "Время чтения" : 'Reading time',
36
+ views: lang === 'ru' ? "Количество просмотров" : 'Number of views',
37
+ status: lang === 'ru' ? "Статус" : 'Status'
38
+ };
39
+ var articleTableHeadersTr = {
40
+ id: "id",
41
+ portalId: "portal_id",
42
+ photo: 'Fotoğraf',
43
+ name: 'İsim',
44
+ annotation: "Ek açıklama",
45
+ tags: "Etiket",
46
+ publicationDate: "Yayın tarihi",
47
+ author: "Yazar",
48
+ timeToRead: "Okuma süresi",
49
+ views: "Görüntüleme sayısı",
50
+ status: 'active'
51
+ };
52
+ var articleTableHeadersObj = {
53
+ 'ru': articleTableHeadersRuEng,
54
+ 'en': articleTableHeadersRuEng,
55
+ 'tr': articleTableHeadersTr
56
+ };
57
+ var articleTableHeaders = articleTableHeadersObj === null || articleTableHeadersObj === void 0 ? void 0 : articleTableHeadersObj[lang];
58
+ return articlesData === null || articlesData === void 0 || (_articlesData$data = articlesData.data) === null || _articlesData$data === void 0 ? void 0 : _articlesData$data.map(function (el) {
59
+ var id = el[articlesData.labels.header.findIndex(function (e) {
60
+ return e === articleTableHeaders.id;
61
+ })];
62
+ var name = el[articlesData.labels.header.findIndex(function (e) {
63
+ return e === articleTableHeaders.name;
64
+ })];
65
+ var annotation = el[articlesData.labels.header.findIndex(function (e) {
66
+ return e === articleTableHeaders.annotation;
67
+ })];
68
+ var photoPreview = el[articlesData.labels.header.findIndex(function (e) {
69
+ return e === articleTableHeaders.photo;
70
+ })];
71
+ var timeToRead = el[articlesData.labels.header.findIndex(function (e) {
72
+ return e === articleTableHeaders.timeToRead;
73
+ })];
74
+ var author = el[articlesData.labels.header.findIndex(function (e) {
75
+ return e === articleTableHeaders.author;
76
+ })];
77
+ var views = el[articlesData.labels.header.findIndex(function (e) {
78
+ return e === articleTableHeaders.views;
79
+ })];
80
+ var tags = el[articlesData.labels.header.findIndex(function (e) {
81
+ return e === articleTableHeaders.tags;
82
+ })];
83
+ var date = new Date(el[articlesData.labels.header.findIndex(function (e) {
84
+ return e === articleTableHeaders.publicationDate;
85
+ })]);
86
+ var statusArray = el[articlesData.labels.header.findIndex(function (e) {
87
+ return e === articleTableHeaders.status;
88
+ })];
89
+ if (Array.isArray(name)) name = name[0];
90
+ var data = {
91
+ id: id,
92
+ name: name,
93
+ annotation: annotation,
94
+ photoPreview: photoPreview,
95
+ timeToRead: timeToRead,
96
+ author: author,
97
+ views: views,
98
+ tags: tags,
99
+ date: date,
100
+ statusArray: statusArray
101
+ };
102
+ return data;
103
+ });
104
+ };
105
+ var ArticlesBlockV2 = function ArticlesBlockV2(_ref) {
106
+ var _getArticleBoxData;
107
+ var _ref$title = _ref.title,
108
+ title = _ref$title === void 0 ? 'Полезные статьи' : _ref$title,
109
+ _ref$subtitle = _ref.subtitle,
110
+ subtitle = _ref$subtitle === void 0 ? 'Собрали для вас самые полезные материалы о маркетплейсах' : _ref$subtitle,
111
+ _ref$list = _ref.list,
112
+ list = _ref$list === void 0 ? [] : _ref$list,
113
+ description = _ref.description,
114
+ _ref$className = _ref.className,
115
+ className = _ref$className === void 0 ? '' : _ref$className,
116
+ locale = _ref.locale;
117
+ var _useState = (0, _react.useState)([]),
118
+ _useState2 = _slicedToArray(_useState, 2),
119
+ articles = _useState2[0],
120
+ setArticles = _useState2[1];
121
+ (0, _react.useEffect)(function () {
122
+ var abortController = (0, _utils.fetchArticlesByPortal)(function (json) {
123
+ if (!Object.entries(json).length) return;
124
+ setArticles(json);
125
+ }, function () {}, 'ru', 1, 3);
126
+ return function () {
127
+ if (abortController) abortController.abort();
128
+ };
129
+ }, []);
130
+ return /*#__PURE__*/_react["default"].createElement("section", {
131
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2')
132
+ }, /*#__PURE__*/_react["default"].createElement("div", {
133
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2__inner')
134
+ }, /*#__PURE__*/_react["default"].createElement("div", {
135
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2__header')
136
+ }, /*#__PURE__*/_react["default"].createElement("div", {
137
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2__header-left')
138
+ }, /*#__PURE__*/_react["default"].createElement("h2", {
139
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2__title')
140
+ }, title), /*#__PURE__*/_react["default"].createElement("p", {
141
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2__subtitle')
142
+ }, subtitle))), /*#__PURE__*/_react["default"].createElement("div", {
143
+ className: (0, _utils.classes)(_ArticlesBlockV2Module["default"], 'articles-v2__grid')
144
+ }, (_getArticleBoxData = getArticleBoxData(articles, locale)) === null || _getArticleBoxData === void 0 ? void 0 : _getArticleBoxData.map(function (articleData) {
145
+ var _articleData$annotati;
146
+ return /*#__PURE__*/_react["default"].createElement(_ShortTileArticleBox["default"], _extends({
147
+ key: articleData.id
148
+ }, articleData, {
149
+ cpu: articleData === null || articleData === void 0 || (_articleData$annotati = articleData.annotation) === null || _articleData$annotati === void 0 ? void 0 : _articleData$annotati[1]
150
+ }));
151
+ }).splice(0, 4))));
152
+ };
153
+ var _default = exports["default"] = ArticlesBlockV2;
@@ -0,0 +1,214 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
2
+ @import '../variables.scss';
3
+
4
+ .articles-v2 {
5
+ font-family: 'Manrope', sans-serif;
6
+ background: var(--bg, #F7F8FC);
7
+ width: 100%;
8
+ padding: 96px 48px;
9
+
10
+ * {
11
+ font-family: 'Manrope', 'Golos Text', sans-serif;
12
+ }
13
+ }
14
+
15
+ .articles-v2__inner {
16
+ max-width: 1280px;
17
+ margin: 0 auto;
18
+ display: flex;
19
+ flex-direction: column;
20
+ gap: 56px;
21
+ }
22
+
23
+ /* ── Header (центрированный) ── */
24
+ .articles-v2__header {
25
+ text-align: center;
26
+ width: 100%;
27
+ }
28
+
29
+ .articles-v2__header-left {
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: 12px;
33
+ align-items: center;
34
+ }
35
+
36
+ .articles-v2__title {
37
+ font-size: 30px;
38
+ font-weight: 800;
39
+ letter-spacing: -0.5px;
40
+ color: var(--text, #1A1A2E);
41
+ margin: 0;
42
+ }
43
+
44
+ .articles-v2__subtitle {
45
+ font-size: 15px;
46
+ color: var(--muted, #6B7280);
47
+ line-height: 1.5;
48
+ max-width: 440px;
49
+ margin: 0;
50
+ }
51
+
52
+ /* ── Grid (3 колонки, карточки переносятся) ── */
53
+ .articles-v2__grid {
54
+ display: flex;
55
+ flex-wrap: wrap;
56
+ gap: 32px;
57
+ justify-content: center;
58
+ }
59
+
60
+ /* Карточки — фиксированная ширина, не сужаются */
61
+ .articles-v2__grid > * {
62
+ background: #fff;
63
+ border: 1px solid #E5E7EB;
64
+ border-radius: 20px;
65
+ padding: 32px 28px 36px;
66
+ display: flex;
67
+ flex-direction: column;
68
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
69
+ border-top: 3px solid $green;
70
+ width: calc(33.333% - 22px);
71
+ min-width: 280px;
72
+ flex: 1 1 auto;
73
+
74
+ &:hover {
75
+ transform: translateY(-4px);
76
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
77
+ }
78
+ }
79
+
80
+ /* ========== МОБИЛЬНАЯ ВЕРСТКА (перенос карточек) ========== */
81
+
82
+ /* Планшеты — 2 колонки */
83
+ @media (max-width: 1024px) {
84
+ .articles-v2 {
85
+ padding: 72px 32px;
86
+ }
87
+
88
+ .articles-v2__grid > * {
89
+ width: calc(50% - 16px);
90
+ min-width: 260px;
91
+ }
92
+
93
+ .articles-v2__title {
94
+ font-size: 28px;
95
+ }
96
+
97
+ .articles-v2__subtitle {
98
+ font-size: 14px;
99
+ }
100
+
101
+ .articles-v2__grid {
102
+ gap: 24px;
103
+ }
104
+ }
105
+
106
+ /* Маленькие планшеты */
107
+ @media (max-width: 768px) {
108
+ .articles-v2 {
109
+ padding: 60px 24px;
110
+ }
111
+
112
+ .articles-v2__inner {
113
+ gap: 40px;
114
+ }
115
+
116
+ .articles-v2__title {
117
+ font-size: 26px;
118
+ }
119
+
120
+ .articles-v2__grid {
121
+ gap: 20px;
122
+ }
123
+
124
+ .articles-v2__grid > * {
125
+ width: calc(50% - 10px);
126
+ min-width: 250px;
127
+ padding: 24px 20px 28px;
128
+ }
129
+ }
130
+
131
+ /* Мобильные устройства — 1 колонка */
132
+ @media (max-width: 600px) {
133
+ .articles-v2 {
134
+ padding: 48px 20px;
135
+ }
136
+
137
+ .articles-v2__inner {
138
+ gap: 32px;
139
+ }
140
+
141
+ .articles-v2__title {
142
+ font-size: 24px;
143
+ }
144
+
145
+ .articles-v2__subtitle {
146
+ font-size: 14px;
147
+ max-width: 100%;
148
+ }
149
+
150
+ .articles-v2__grid {
151
+ gap: 16px;
152
+ }
153
+
154
+ .articles-v2__grid > * {
155
+ width: 100%;
156
+ min-width: auto;
157
+ padding: 20px 18px 24px;
158
+ }
159
+ }
160
+
161
+ /* Маленькие телефоны */
162
+ @media (max-width: 480px) {
163
+ .articles-v2 {
164
+ padding: 40px 16px;
165
+ }
166
+
167
+ .articles-v2__inner {
168
+ gap: 28px;
169
+ }
170
+
171
+ .articles-v2__title {
172
+ font-size: 22px;
173
+ }
174
+
175
+ .articles-v2__subtitle {
176
+ font-size: 13px;
177
+ }
178
+
179
+ .articles-v2__grid {
180
+ gap: 14px;
181
+ }
182
+
183
+ .articles-v2__grid > * {
184
+ padding: 18px 16px 20px;
185
+ border-radius: 16px;
186
+ }
187
+ }
188
+
189
+ /* Самые маленькие экраны */
190
+ @media (max-width: 375px) {
191
+ .articles-v2 {
192
+ padding: 32px 12px;
193
+ }
194
+
195
+ .articles-v2__inner {
196
+ gap: 24px;
197
+ }
198
+
199
+ .articles-v2__title {
200
+ font-size: 20px;
201
+ }
202
+
203
+ .articles-v2__subtitle {
204
+ font-size: 12px;
205
+ }
206
+
207
+ .articles-v2__grid {
208
+ gap: 12px;
209
+ }
210
+
211
+ .articles-v2__grid > * {
212
+ padding: 16px 14px 18px;
213
+ }
214
+ }
@@ -59,7 +59,6 @@
59
59
 
60
60
  &__description {
61
61
  color: #464853;
62
- font-family: Inter;
63
62
  font-size: 16px;
64
63
  font-style: normal;
65
64
  font-weight: 500;