@megafon/ui-shared 4.21.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/es/components/Card/Card.css +226 -83
  3. package/dist/es/components/Card/Card.d.ts +30 -62
  4. package/dist/es/components/Card/Card.js +237 -157
  5. package/dist/es/components/Card/types.d.ts +71 -0
  6. package/dist/es/components/Card/types.js +0 -0
  7. package/dist/es/components/CardsBox/CardsBox.d.ts +4 -7
  8. package/dist/es/components/CardsBox/CardsBox.js +21 -67
  9. package/dist/es/components/CardsBox/helpers.d.ts +10 -0
  10. package/dist/es/components/CardsBox/helpers.js +25 -0
  11. package/dist/es/components/CarouselBox/CarouselBox.d.ts +6 -1
  12. package/dist/es/components/CarouselBox/CarouselBox.js +30 -3
  13. package/dist/es/components/Property/Property.js +2 -2
  14. package/dist/es/components/Property/types.d.ts +1 -1
  15. package/dist/es/index.d.ts +1 -0
  16. package/dist/es/index.js +1 -0
  17. package/dist/lib/components/Card/Card.css +226 -83
  18. package/dist/lib/components/Card/Card.d.ts +30 -62
  19. package/dist/lib/components/Card/Card.js +233 -160
  20. package/dist/lib/components/Card/types.d.ts +71 -0
  21. package/dist/lib/components/Card/types.js +1 -0
  22. package/dist/lib/components/CardsBox/CardsBox.d.ts +4 -7
  23. package/dist/lib/components/CardsBox/CardsBox.js +19 -67
  24. package/dist/lib/components/CardsBox/helpers.d.ts +10 -0
  25. package/dist/lib/components/CardsBox/helpers.js +35 -0
  26. package/dist/lib/components/CarouselBox/CarouselBox.d.ts +6 -1
  27. package/dist/lib/components/CarouselBox/CarouselBox.js +32 -2
  28. package/dist/lib/components/Property/Property.js +2 -2
  29. package/dist/lib/components/Property/types.d.ts +1 -1
  30. package/dist/lib/index.d.ts +1 -0
  31. package/dist/lib/index.js +8 -0
  32. package/package.json +2 -2
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.ObjectFit = exports.Target = void 0;
6
+ exports["default"] = void 0;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
10
  require("core-js/modules/es.string.link.js");
11
11
 
12
- require("core-js/modules/es.object.values.js");
12
+ require("core-js/modules/es.array.map.js");
13
13
 
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
 
@@ -21,201 +21,274 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
23
 
24
- var Target = {
25
- SELF: '_self',
26
- BLANK: '_blank'
27
- };
28
- exports.Target = Target;
29
- var ObjectFit = {
30
- FILL: 'fill',
31
- CONTAIN: 'contain'
24
+ var textsConvertConfig = {
25
+ b: {
26
+ component: function component(_ref) {
27
+ var children = _ref.children;
28
+ return /*#__PURE__*/_react["default"].createElement("b", null, children);
29
+ }
30
+ },
31
+ ul: {
32
+ component: function component(_ref2) {
33
+ var children = _ref2.children;
34
+ return /*#__PURE__*/_react["default"].createElement("ul", null, children);
35
+ }
36
+ },
37
+ ol: {
38
+ component: function component(_ref3) {
39
+ var children = _ref3.children;
40
+ return /*#__PURE__*/_react["default"].createElement("ol", null, children);
41
+ }
42
+ },
43
+ li: {
44
+ component: function component(_ref4) {
45
+ var children = _ref4.children;
46
+ return /*#__PURE__*/_react["default"].createElement("li", null, children);
47
+ }
48
+ }
32
49
  };
33
- exports.ObjectFit = ObjectFit;
34
- var cn = (0, _uiHelpers.cnCreate)('mfui-card-old');
35
-
36
- var Card = function Card(_ref) {
37
- var dataAttrs = _ref.dataAttrs,
38
- className = _ref.className,
39
- _ref$classes = _ref.classes,
40
- classes = _ref$classes === void 0 ? {} : _ref$classes,
41
- rootRef = _ref.rootRef,
42
- imageSrc = _ref.imageSrc,
43
- imageAlt = _ref.imageAlt,
44
- svgSrc = _ref.svgSrc,
45
- title = _ref.title,
46
- text = _ref.text,
47
- button = _ref.button,
48
- link = _ref.link,
49
- _ref$isCenteredText = _ref.isCenteredText,
50
- isCenteredText = _ref$isCenteredText === void 0 ? false : _ref$isCenteredText,
51
- _ref$isLeftHAlign = _ref.isLeftHAlign,
52
- isLeftHAlign = _ref$isLeftHAlign === void 0 ? false : _ref$isLeftHAlign,
53
- _ref$isFullHeight = _ref.isFullHeight,
54
- isFullHeight = _ref$isFullHeight === void 0 ? false : _ref$isFullHeight,
55
- href = _ref.href,
56
- target = _ref.target,
57
- _ref$objectFit = _ref.objectFit,
58
- objectFit = _ref$objectFit === void 0 ? 'fill' : _ref$objectFit;
59
- var isAlignAvailable = !button || !link;
60
- var isCardLink = !!href;
61
- var Element = href ? _uiCore.Link : 'div';
62
-
63
- var renderImage = _react["default"].useCallback(function () {
64
- switch (true) {
65
- case !!imageSrc:
66
- {
67
- return /*#__PURE__*/_react["default"].createElement("div", {
68
- className: cn('pic-wrapper', {
69
- 'object-fit': objectFit
70
- })
71
- }, /*#__PURE__*/_react["default"].createElement("img", {
72
- className: cn('img'),
73
- src: imageSrc,
74
- alt: imageAlt
75
- }));
76
- }
77
-
78
- case !!svgSrc:
79
- {
80
- return /*#__PURE__*/_react["default"].createElement("div", {
81
- className: cn('svg-wrapper')
82
- }, svgSrc);
83
- }
84
-
85
- default:
86
- return null;
50
+ var cn = (0, _uiHelpers.cnCreate)('mfui-card');
51
+
52
+ var Card = function Card(_ref5) {
53
+ var dataAttrs = _ref5.dataAttrs,
54
+ className = _ref5.className,
55
+ _ref5$isFullHeight = _ref5.isFullHeight,
56
+ isFullHeight = _ref5$isFullHeight === void 0 ? false : _ref5$isFullHeight,
57
+ link = _ref5.link,
58
+ _ref5$view = _ref5.view,
59
+ view = _ref5$view === void 0 ? 'shadow' : _ref5$view,
60
+ image = _ref5.image,
61
+ icon = _ref5.icon,
62
+ title = _ref5.title,
63
+ textsList = _ref5.textsList,
64
+ featuresList = _ref5.featuresList,
65
+ iconsList = _ref5.iconsList,
66
+ price = _ref5.price,
67
+ button = _ref5.button,
68
+ extraButton = _ref5.extraButton,
69
+ onClick = _ref5.onClick;
70
+ var isOnlyTitle = !image && !icon && !textsList && !featuresList && !iconsList && !price && !button && !extraButton;
71
+ var isLink = (link === null || link === void 0 ? void 0 : link.href) && !button && !extraButton;
72
+ var isBottomImage = (image === null || image === void 0 ? void 0 : image.position) === 'bottom';
73
+ var ElementType = isLink ? 'a' : 'div';
74
+
75
+ var renderImage = function renderImage() {
76
+ if (!image) {
77
+ return null;
87
78
  }
88
- }, [imageSrc, svgSrc, objectFit, imageAlt]);
89
79
 
90
- var renderLink = _react["default"].useCallback(function () {
91
- if (!link) {
80
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.imgBox), {
81
+ className: cn('img-box', {
82
+ position: image.position
83
+ })
84
+ }), /*#__PURE__*/_react["default"].createElement("img", {
85
+ className: cn('img'),
86
+ src: image.src,
87
+ alt: image.alt
88
+ }));
89
+ };
90
+
91
+ var renderIcon = function renderIcon() {
92
+ if (!icon) {
92
93
  return null;
93
94
  }
94
95
 
95
- var linkHref = link.href,
96
- linkTitle = link.title,
97
- linkTarget = link.target,
98
- download = link.download,
99
- linkRel = link.rel;
96
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon), {
97
+ className: cn('icon')
98
+ }), icon);
99
+ };
100
100
 
101
- if (!linkHref || isCardLink) {
102
- return /*#__PURE__*/_react["default"].createElement("span", {
103
- className: cn('fake-link')
104
- }, linkTitle);
101
+ var renderContent = function renderContent() {
102
+ if (textsList) {
103
+ return /*#__PURE__*/_react["default"].createElement("div", {
104
+ className: cn('texts')
105
+ }, textsList.map(function (item, i) {
106
+ return /*#__PURE__*/_react["default"].createElement("div", {
107
+ className: cn('texts-item'),
108
+ key: i
109
+ }, !!item.title && /*#__PURE__*/_react["default"].createElement("div", {
110
+ className: cn('texts-title')
111
+ }, (0, _uiHelpers.convert)(item.title, textsConvertConfig)), /*#__PURE__*/_react["default"].createElement("div", {
112
+ className: cn('texts-desc')
113
+ }, (0, _uiHelpers.convert)(item.desc, textsConvertConfig)));
114
+ }));
105
115
  }
106
116
 
107
- return /*#__PURE__*/_react["default"].createElement(_uiCore.TextLink, {
108
- href: linkHref,
109
- download: download,
110
- target: linkTarget,
111
- rel: linkRel,
112
- dataAttrs: {
113
- root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
114
- },
115
- className: cn('link', [classes.link])
116
- }, linkTitle);
117
- }, [link, isCardLink, classes, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link]);
117
+ if (featuresList) {
118
+ return /*#__PURE__*/_react["default"].createElement("div", {
119
+ className: cn('features')
120
+ }, /*#__PURE__*/_react["default"].createElement("div", {
121
+ className: cn('features-list')
122
+ }, featuresList.items.map(function (item, i) {
123
+ return /*#__PURE__*/_react["default"].createElement("div", {
124
+ className: cn('features-item'),
125
+ key: i
126
+ }, /*#__PURE__*/_react["default"].createElement("div", {
127
+ className: cn('features-item-title')
128
+ }, item.title), /*#__PURE__*/_react["default"].createElement("div", {
129
+ className: cn('features-item-separator')
130
+ }), /*#__PURE__*/_react["default"].createElement("div", {
131
+ className: cn('features-item-value')
132
+ }, item.value));
133
+ })), featuresList.desc);
134
+ }
135
+
136
+ if (iconsList) {
137
+ return /*#__PURE__*/_react["default"].createElement("div", {
138
+ className: cn('icons')
139
+ }, !!iconsList.desc && /*#__PURE__*/_react["default"].createElement("div", {
140
+ className: cn('icons-desc')
141
+ }, iconsList.desc), /*#__PURE__*/_react["default"].createElement("div", {
142
+ className: cn('icons-list')
143
+ }, iconsList.items.map(function (item, i) {
144
+ return /*#__PURE__*/_react["default"].createElement("div", {
145
+ className: cn('icons-item'),
146
+ key: i
147
+ }, /*#__PURE__*/_react["default"].createElement("div", {
148
+ className: cn('icons-item-icon')
149
+ }, item.icon), /*#__PURE__*/_react["default"].createElement("div", {
150
+ className: cn('icons-item-text')
151
+ }, item.text));
152
+ })));
153
+ }
154
+
155
+ return null;
156
+ };
157
+
158
+ var renderPrice = function renderPrice() {
159
+ if (!price) {
160
+ return null;
161
+ }
162
+
163
+ return /*#__PURE__*/_react["default"].createElement("div", {
164
+ className: cn('price')
165
+ }, !!price.oldValue && /*#__PURE__*/_react["default"].createElement("div", {
166
+ className: cn('price-old-value')
167
+ }, price.oldValue), /*#__PURE__*/_react["default"].createElement("div", {
168
+ className: cn('price-value')
169
+ }, price.value), !!price.period && /*#__PURE__*/_react["default"].createElement("div", {
170
+ className: cn('price-period')
171
+ }, price.period));
172
+ };
118
173
 
119
- var renderBtn = _react["default"].useCallback(function () {
120
- if (!button || isCardLink) {
174
+ var renderButtons = function renderButtons() {
175
+ if (!button && !extraButton) {
121
176
  return null;
122
177
  }
123
178
 
124
- var btnHref = button.href,
125
- btnTitle = button.title,
126
- btnTarget = button.target,
127
- btnDownload = button.download,
128
- btnRel = button.rel,
129
- btnOnClick = button.onClick;
130
- return /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
179
+ return /*#__PURE__*/_react["default"].createElement("div", {
180
+ className: cn('buttons', {
181
+ centered: (button === null || button === void 0 ? void 0 : button.isCentered) || (extraButton === null || extraButton === void 0 ? void 0 : extraButton.isCentered)
182
+ })
183
+ }, !!button && /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
131
184
  dataAttrs: {
132
185
  root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
133
186
  },
134
- className: cn('button', [classes.button]),
135
- href: btnHref,
136
- target: btnTarget,
137
- download: btnDownload,
138
- rel: btnRel,
139
- onClick: btnOnClick
140
- }, btnTitle);
141
- }, [button, isCardLink, classes, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button]);
142
-
143
- var renderBtnsWrapper = _react["default"].useCallback(function () {
144
- var btnElem = renderBtn();
145
- var linkElem = renderLink();
146
-
147
- if (!btnElem && !linkElem) {
187
+ className: cn('button'),
188
+ href: button.href,
189
+ target: button.target,
190
+ onClick: button === null || button === void 0 ? void 0 : button.onClick
191
+ }, button.title), !!extraButton && /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
192
+ dataAttrs: {
193
+ root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.extraButton
194
+ },
195
+ className: cn('button'),
196
+ href: extraButton.href,
197
+ target: extraButton.target,
198
+ type: "outline",
199
+ onClick: extraButton === null || extraButton === void 0 ? void 0 : extraButton.onClick
200
+ }, extraButton.title));
201
+ };
202
+
203
+ var renderFooter = function renderFooter() {
204
+ if (!price && !button && !extraButton && !image) {
148
205
  return null;
149
206
  }
150
207
 
151
208
  return /*#__PURE__*/_react["default"].createElement("div", {
152
- className: cn('btns-wrapper', {
153
- 'left-align': isAlignAvailable && isLeftHAlign
154
- })
155
- }, btnElem, linkElem);
156
- }, [renderBtn, renderLink, isAlignAvailable, isLeftHAlign]);
157
-
158
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
159
- className: cn('', {
160
- href: !!href,
161
- 'full-height': isFullHeight,
162
- 'centered-text': isCenteredText
163
- }, [className, classes.root]),
164
- ref: rootRef
165
- }), /*#__PURE__*/_react["default"].createElement(Element, {
166
- href: href,
167
- target: target,
168
- className: cn('inner', [classes.inner])
169
- }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, renderImage(), /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
209
+ className: cn('footer')
210
+ }, isBottomImage && renderImage(), renderPrice(), renderButtons());
211
+ };
212
+
213
+ return /*#__PURE__*/_react["default"].createElement(ElementType, (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
214
+ className: cn({
215
+ 'only-title': isOnlyTitle,
216
+ view: view,
217
+ link: isLink,
218
+ 'full-height': isFullHeight
219
+ }, [className]),
220
+ href: isLink ? link === null || link === void 0 ? void 0 : link.href : undefined,
221
+ target: isLink ? link === null || link === void 0 ? void 0 : link.target : undefined,
222
+ onClick: isLink ? onClick : undefined
223
+ }), renderIcon(), !isBottomImage && renderImage(), /*#__PURE__*/_react["default"].createElement(_uiCore.Header, {
224
+ className: cn('title'),
170
225
  as: "h3",
171
- className: cn('title')
172
- }, typeof title === 'string' ? (0, _uiHelpers.convert)(title, _uiHelpers.titleConvertConfig) : title), !!text && /*#__PURE__*/_react["default"].createElement("div", {
173
- className: cn('text')
174
- }, typeof text === 'string' ? (0, _uiHelpers.convert)(text, _uiHelpers.textConvertConfig) : text), renderBtnsWrapper())));
226
+ align: title.align
227
+ }, title.text), renderContent(), renderFooter());
175
228
  };
176
229
 
177
230
  Card.propTypes = {
178
231
  dataAttrs: _propTypes["default"].shape({
179
232
  root: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
180
- link: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
181
- button: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
233
+ icon: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
234
+ imgBox: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
235
+ button: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
236
+ extraButton: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
182
237
  }),
183
238
  className: _propTypes["default"].string,
184
- classes: _propTypes["default"].shape({
185
- root: _propTypes["default"].string,
186
- button: _propTypes["default"].string,
187
- link: _propTypes["default"].string,
188
- inner: _propTypes["default"].string
239
+ view: _propTypes["default"].oneOf(['shadow', 'background']),
240
+ link: _propTypes["default"].shape({
241
+ href: _propTypes["default"].string,
242
+ target: _propTypes["default"].oneOf(['_self', '_blank', '_parent', '_top'])
243
+ }),
244
+ image: _propTypes["default"].shape({
245
+ src: _propTypes["default"].string.isRequired,
246
+ alt: _propTypes["default"].string,
247
+ position: _propTypes["default"].oneOf(['top', 'bottom'])
248
+ }),
249
+ icon: _propTypes["default"].node,
250
+ title: _propTypes["default"].shape({
251
+ text: _propTypes["default"].string.isRequired,
252
+ align: _propTypes["default"].oneOf(['left', 'center'])
253
+ }).isRequired,
254
+ textsList: _propTypes["default"].arrayOf(_propTypes["default"].shape({
255
+ title: _propTypes["default"].string,
256
+ desc: _propTypes["default"].string.isRequired
257
+ }).isRequired),
258
+ featuresList: _propTypes["default"].shape({
259
+ desc: _propTypes["default"].string,
260
+ items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
261
+ title: _propTypes["default"].string.isRequired,
262
+ value: _propTypes["default"].string.isRequired
263
+ }).isRequired).isRequired
264
+ }),
265
+ iconsList: _propTypes["default"].shape({
266
+ desc: _propTypes["default"].string,
267
+ items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
268
+ icon: _propTypes["default"].node.isRequired,
269
+ text: _propTypes["default"].string.isRequired
270
+ }).isRequired).isRequired
271
+ }),
272
+ price: _propTypes["default"].shape({
273
+ oldValue: _propTypes["default"].string,
274
+ value: _propTypes["default"].string.isRequired,
275
+ period: _propTypes["default"].string
189
276
  }),
190
- rootRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].oneOfType([_propTypes["default"].shape({
191
- current: _propTypes["default"].elementType
192
- }), _propTypes["default"].any])]),
193
- imageSrc: _propTypes["default"].string,
194
- imageAlt: _propTypes["default"].string,
195
- svgSrc: _propTypes["default"].node,
196
- title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]).isRequired,
197
- text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node, _propTypes["default"].arrayOf(_propTypes["default"].node)]),
198
277
  button: _propTypes["default"].shape({
199
278
  title: _propTypes["default"].string.isRequired,
200
279
  href: _propTypes["default"].string,
201
- target: _propTypes["default"].oneOf(Object.values(Target)),
202
- download: _propTypes["default"].bool,
203
- rel: _propTypes["default"].string,
280
+ target: _propTypes["default"].oneOf(['_self', '_blank', '_parent', '_top']),
281
+ isCentered: _propTypes["default"].bool,
204
282
  onClick: _propTypes["default"].func
205
283
  }),
206
- link: _propTypes["default"].shape({
284
+ extraButton: _propTypes["default"].shape({
207
285
  title: _propTypes["default"].string.isRequired,
208
286
  href: _propTypes["default"].string,
209
- target: _propTypes["default"].oneOf(Object.values(Target)),
210
- download: _propTypes["default"].bool,
211
- rel: _propTypes["default"].string
287
+ target: _propTypes["default"].oneOf(['_self', '_blank', '_parent', '_top']),
288
+ isCentered: _propTypes["default"].bool,
289
+ onClick: _propTypes["default"].func
212
290
  }),
213
- isCenteredText: _propTypes["default"].bool,
214
- isLeftHAlign: _propTypes["default"].bool,
215
- isFullHeight: _propTypes["default"].bool,
216
- href: _propTypes["default"].string,
217
- target: _propTypes["default"].oneOf(Object.values(Target)),
218
- objectFit: _propTypes["default"].oneOf(Object.values(ObjectFit))
291
+ onClick: _propTypes["default"].func
219
292
  };
220
293
  var _default = Card;
221
294
  exports["default"] = _default;
@@ -0,0 +1,71 @@
1
+ /// <reference types="react" />
2
+ declare type Target = '_self' | '_blank' | '_parent' | '_top';
3
+ export declare type Link = {
4
+ /** Ссылка */
5
+ href?: string;
6
+ /** Target свойство ссылки */
7
+ target?: Target;
8
+ };
9
+ export declare type Image = {
10
+ /** Ссылка на изображение */
11
+ src: string;
12
+ /** Значение тега alt для изображения */
13
+ alt?: string;
14
+ /** Позиция изображения */
15
+ position?: 'top' | 'bottom';
16
+ };
17
+ export declare type Title = {
18
+ /** Текст */
19
+ text: string;
20
+ /** Выравнивание */
21
+ align?: 'left' | 'center';
22
+ };
23
+ export declare type TextsList = {
24
+ /** Заголовок */
25
+ title?: string;
26
+ /** Описание */
27
+ desc: string;
28
+ }[];
29
+ export declare type FeaturesList = {
30
+ /** Список */
31
+ items: {
32
+ /** Заголовок */
33
+ title: string;
34
+ /** Значение */
35
+ value: string;
36
+ }[];
37
+ /** Описание */
38
+ desc?: string;
39
+ };
40
+ export declare type IconsList = {
41
+ /** Список */
42
+ items: {
43
+ /** Иконка */
44
+ icon: React.ReactNode;
45
+ /** Текст */
46
+ text: string;
47
+ }[];
48
+ /** Описание */
49
+ desc?: string;
50
+ };
51
+ export declare type Price = {
52
+ /** Старая цена */
53
+ oldValue?: string;
54
+ /** Текущая цена */
55
+ value: string;
56
+ /** Период */
57
+ period?: string;
58
+ };
59
+ export declare type ButtonType = {
60
+ /** Название */
61
+ title: string;
62
+ /** Ссылка */
63
+ href?: string;
64
+ /** Target свойство кнопки */
65
+ target?: Target;
66
+ /** Центрировать кнопку */
67
+ isCentered?: boolean;
68
+ /** Обработчик клика по кнопке */
69
+ onClick?: () => void;
70
+ };
71
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1,16 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { ICard } from '../Card/Card';
3
3
  interface ICardsBoxProps {
4
- /** Выравнивание всех колонок компонента Grid по горизонтали */
5
- gridHAlign?: 'left' | 'right' | 'center' | 'between' | 'around';
6
- /** Ссылка на корневой элемент */
7
- rootRef?: React.Ref<HTMLDivElement>;
4
+ /** Выводить по две колонки в ряду для 2 или 4 карточек */
5
+ renderTwoColumnsInRow?: boolean;
8
6
  /** Дата атрибуты для корневого элемента */
9
7
  dataAttrs?: {
10
- [key: string]: string;
8
+ root?: Record<string, string>;
9
+ column?: Record<string, string>;
11
10
  };
12
- /** Обработчик смены слайда (должен быть обернут в useCallback) */
13
- onChange?: (currentIndex: number, previousIndex: number, slidesPerView?: number | 'auto') => void;
14
11
  children: Array<React.ReactElement<ICard>> | React.ReactElement<ICard>;
15
12
  }
16
13
  declare const CardsBox: React.FC<ICardsBoxProps>;