@megafon/ui-shared 7.7.0 → 7.8.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.
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { ServiceCardDataType, BackgroundType } from './types';
3
+ import './ServiceCards.scss';
4
+ export interface IServiceCardsProps {
5
+ /** Цвет фона плиток */
6
+ background?: BackgroundType;
7
+ /** Список плиток */
8
+ items: [ServiceCardDataType, ServiceCardDataType, ServiceCardDataType, ServiceCardDataType, ServiceCardDataType];
9
+ /** Дополнительный класс для компонента */
10
+ className?: string;
11
+ /** Дополнительные классы для внутренних элементов */
12
+ classes?: {
13
+ root?: string;
14
+ card?: string;
15
+ cardTitle?: string;
16
+ };
17
+ /** Дополнительные data атрибуты к внутренним элементам */
18
+ dataAttrs?: {
19
+ root?: Record<string, string>;
20
+ item?: Record<string, string>;
21
+ card?: Record<string, string>;
22
+ cardTitle?: Record<string, string>;
23
+ };
24
+ /** Ссылка на корневой элемент */
25
+ rootRef?: React.Ref<HTMLDivElement>;
26
+ }
27
+ declare const ServiceCards: React.FC<IServiceCardsProps>;
28
+ export default ServiceCards;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ require("core-js/modules/es.array.concat.js");
10
+ require("core-js/modules/es.array.map.js");
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _uiHelpers = require("@megafon/ui-helpers");
13
+ var _ServiceCard = _interopRequireDefault(require("./components/ServiceCard/ServiceCard"));
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 _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
17
+ var cn = (0, _uiHelpers.cnCreate)('mfui-service-cards');
18
+ var ServiceCards = function ServiceCards(_ref) {
19
+ var className = _ref.className,
20
+ classes = _ref.classes,
21
+ items = _ref.items,
22
+ background = _ref.background,
23
+ dataAttrs = _ref.dataAttrs,
24
+ rootRef = _ref.rootRef;
25
+ return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
26
+ className: cn([className, classes === null || classes === void 0 ? void 0 : classes.root]),
27
+ ref: rootRef
28
+ }), /*#__PURE__*/React.createElement("div", {
29
+ className: cn('items')
30
+ }, items.map(function (item, i) {
31
+ var size = i === 0 ? 'big' : 'small';
32
+ return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item, i + 1), {
33
+ className: cn('item', {
34
+ size: size
35
+ }),
36
+ key: "".concat(item.title, "_").concat(i)
37
+ }), /*#__PURE__*/React.createElement(_ServiceCard["default"], (0, _extends2["default"])({}, item, {
38
+ background: background,
39
+ size: size,
40
+ classes: {
41
+ root: classes === null || classes === void 0 ? void 0 : classes.card,
42
+ title: classes === null || classes === void 0 ? void 0 : classes.cardTitle
43
+ },
44
+ dataAttrs: {
45
+ root: (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.card, i + 1),
46
+ title: (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.cardTitle, i + 1)
47
+ }
48
+ })));
49
+ })));
50
+ };
51
+ var _default = exports["default"] = ServiceCards;
@@ -0,0 +1 @@
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-service-card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background-color:var(--base);border-radius:24px;color:var(--content);height:100%;justify-content:space-between;overflow:hidden;padding:24px 24px 22px;-webkit-transition:background-color,-webkit-box-shadow;transition:background-color,-webkit-box-shadow;transition:background-color,box-shadow;transition:background-color,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.3s;transition-duration:.3s;width:100%}@media screen and (min-width:768px){.mfui-service-card{padding-bottom:32px}}.mfui-service-card:hover{text-decoration:none}.mfui-service-card__title{font-size:22px;font-weight:600;letter-spacing:.5px;line-height:28px}@media screen and (min-width:768px) and (max-width:1023px){.mfui-service-card__title{font-size:26px;line-height:32px}}@media screen and (min-width:1024px){.mfui-service-card__title{font-size:28px;line-height:36px}}@media screen and (min-width:1280px){.mfui-service-card__title{font-size:32px;line-height:40px}}.mfui-service-card__subtitle{font-size:15px;font-weight:400;line-height:24px;margin-top:12px}.mfui-service-card__image-wrapper{overflow:hidden}.mfui-service-card__image{display:block;height:240px;width:240px}.mfui-service-card__circle,.mfui-service-card__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-service-card__circle{-webkit-box-pack:center;-ms-flex-pack:center;border:1px solid var(--brandGreen);border-radius:50%;height:48px;justify-content:center;width:48px}.mfui-service-card:hover .mfui-service-card__circle{-webkit-animation:scale-circle 1s ease-out forwards;animation:scale-circle 1s ease-out forwards;-webkit-transform-origin:center;transform-origin:center}.mfui-service-card__arrow{height:32px;min-width:32px;width:32px;fill:var(--brandGreen)}.mfui-service-card__value{font-size:15px;font-weight:500;line-height:24px;margin-left:8px}.mfui-service-card_size_big .mfui-service-card__image-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border-radius:24px;justify-content:center;margin:32px auto}@media screen and (min-width:768px){.mfui-service-card_size_big .mfui-service-card__image{height:auto;max-height:100%;max-width:100%;width:auto}}.mfui-service-card_size_small .mfui-service-card__title{font-size:18px;font-weight:500;letter-spacing:.5px;line-height:24px}@media screen and (min-width:1280px){.mfui-service-card_size_small .mfui-service-card__title{font-size:20px;line-height:28px}}.mfui-service-card_size_small .mfui-service-card__subtitle{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:3}.mfui-service-card_size_small .mfui-service-card__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media screen and (max-width:767px){.mfui-service-card_size_small .mfui-service-card__footer{margin-top:20px}}.mfui-service-card_size_small .mfui-service-card__image-wrapper{margin-bottom:-22px;margin-right:-24px}@media screen and (min-width:768px){.mfui-service-card_size_small .mfui-service-card__image-wrapper{margin-bottom:-32px}}.mfui-service-card_size_small .mfui-service-card__image{height:110px;width:110px}@media screen and (min-width:768px) and (max-width:1023px){.mfui-service-card_size_small .mfui-service-card__image{height:125px;width:125px}}@media screen and (min-width:1024px){.mfui-service-card_size_small .mfui-service-card__image{height:150px;width:150px}}@media screen and (max-width:767px){.mfui-service-card_size_small .mfui-service-card__circle{height:32px;width:32px}.mfui-service-card_size_small .mfui-service-card__arrow{height:20px;min-width:20px;width:20px}}.mfui-service-card:hover:not(.mfui-service-card_background_gray){-webkit-box-shadow:0 8px 28px rgba(0,0,0,.1);box-shadow:0 8px 28px rgba(0,0,0,.1)}.mfui-service-card_background_shadow{-webkit-box-shadow:0 2px 12px rgba(0,0,0,.1);box-shadow:0 2px 12px rgba(0,0,0,.1)}.mfui-service-card_background_gray{background-color:var(--spbSky0)}.mfui-service-card_background_gray:hover{background-color:var(--spbSky1)}@-webkit-keyframes scale-circle{0%{scale:1}50%{scale:.6875}to{scale:1}}@keyframes scale-circle{0%{scale:1}50%{scale:.6875}to{scale:1}}
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { SizeType, ServiceCardDataType, BackgroundType } from '../../types';
3
+ import './ServiceCard.scss';
4
+ export interface IServiceCardProps extends ServiceCardDataType {
5
+ size: SizeType;
6
+ background?: BackgroundType;
7
+ classes?: {
8
+ root?: string;
9
+ title?: string;
10
+ };
11
+ dataAttrs?: {
12
+ root?: Record<string, string>;
13
+ title?: Record<string, string>;
14
+ subtitle?: Record<string, string>;
15
+ footer?: Record<string, string>;
16
+ };
17
+ }
18
+ declare const ServiceCard: React.FC<IServiceCardProps>;
19
+ export default ServiceCard;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ require("core-js/modules/es.array.concat.js");
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _uiHelpers = require("@megafon/ui-helpers");
12
+ var _setRelAttribute = require("../../../../helpers/setRelAttribute");
13
+ 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); }
14
+ 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; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
16
+ var ArrowRight = function ArrowRight(props) {
17
+ return /*#__PURE__*/React.createElement("svg", (0, _extends2["default"])({
18
+ viewBox: "0 0 32 32"
19
+ }, props), /*#__PURE__*/React.createElement("path", {
20
+ d: "M12.5 20.8l4.8-4.8-4.8-4.8 1.6-1.7 6.4 6.5-6.4 6.5z"
21
+ }));
22
+ };
23
+ var cn = (0, _uiHelpers.cnCreate)('mfui-service-card');
24
+ var ServiceCard = function ServiceCard(_ref) {
25
+ var title = _ref.title,
26
+ subtitle = _ref.subtitle,
27
+ value = _ref.value,
28
+ _ref$background = _ref.background,
29
+ background = _ref$background === void 0 ? 'shadow' : _ref$background,
30
+ _ref$size = _ref.size,
31
+ size = _ref$size === void 0 ? 'big' : _ref$size,
32
+ imageSrc = _ref.imageSrc,
33
+ imageSrc2x = _ref.imageSrc2x,
34
+ _ref$imageAlt = _ref.imageAlt,
35
+ imageAlt = _ref$imageAlt === void 0 ? 'image' : _ref$imageAlt,
36
+ href = _ref.href,
37
+ _ref$target = _ref.target,
38
+ target = _ref$target === void 0 ? '_self' : _ref$target,
39
+ rel = _ref.rel,
40
+ classes = _ref.classes,
41
+ dataAttrs = _ref.dataAttrs,
42
+ onClick = _ref.onClick;
43
+ var isSizeSmall = size === 'small';
44
+ var currentRel = (0, _setRelAttribute.setRelAttribute)(rel, target);
45
+ var imageSrcSet = imageSrc2x ? "".concat(imageSrc, ", ").concat(imageSrc2x, " 2x") : undefined;
46
+ var footerElement = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
47
+ className: cn('image-wrapper')
48
+ }, /*#__PURE__*/React.createElement("img", {
49
+ className: cn('image'),
50
+ src: imageSrc,
51
+ srcSet: imageSrcSet,
52
+ alt: imageAlt
53
+ })), /*#__PURE__*/React.createElement("div", {
54
+ className: cn('price')
55
+ }, /*#__PURE__*/React.createElement("div", {
56
+ className: cn('circle')
57
+ }, /*#__PURE__*/React.createElement(ArrowRight, {
58
+ className: cn('arrow')
59
+ })), /*#__PURE__*/React.createElement("div", {
60
+ className: cn('value')
61
+ }, value)));
62
+ var renderFooter = function renderFooter() {
63
+ if (isSizeSmall) {
64
+ return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
65
+ className: cn('footer')
66
+ }, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.footer)), footerElement);
67
+ }
68
+ return footerElement;
69
+ };
70
+ return /*#__PURE__*/React.createElement("a", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
71
+ className: cn({
72
+ background: background,
73
+ size: size
74
+ }, [classes === null || classes === void 0 ? void 0 : classes.root]),
75
+ href: href,
76
+ target: target,
77
+ rel: currentRel,
78
+ onClick: onClick
79
+ }), /*#__PURE__*/React.createElement("div", {
80
+ className: cn('header')
81
+ }, /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title), {
82
+ className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title])
83
+ }), typeof title === 'string' ? (0, _uiHelpers.convert)(title, _uiHelpers.titleConvertConfig) : title), subtitle && /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.subtitle), {
84
+ className: cn('subtitle'),
85
+ style: {
86
+ WebkitBoxOrient: 'vertical'
87
+ }
88
+ }), typeof subtitle === 'string' ? (0, _uiHelpers.convert)(subtitle, _uiHelpers.textConvertConfig) : subtitle)), renderFooter());
89
+ };
90
+ var _default = exports["default"] = ServiceCard;
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+ export type TargetType = '_self' | '_blank' | '_parent' | '_top';
3
+ export type ServiceCardDataType = {
4
+ /** Заголовок */
5
+ title: string | React.ReactNode | ReactNode[];
6
+ /** Подзаголовок */
7
+ subtitle?: string | React.ReactNode | ReactNode[];
8
+ /** Значение */
9
+ value: string;
10
+ /** Изображение */
11
+ imageSrc: string;
12
+ /** Изображение 2x */
13
+ imageSrc2x?: string;
14
+ /** Значение тега alt для изображения */
15
+ imageAlt?: string;
16
+ /** Ссылка */
17
+ href: string;
18
+ /** Атрибут ссылки target */
19
+ target?: TargetType;
20
+ /** Атрибут ссылки rel */
21
+ rel?: string;
22
+ /** Обработчик клика по кнопке */
23
+ onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
24
+ };
25
+ export type SizeType = 'big' | 'small';
26
+ export type BackgroundType = 'white' | 'gray' | 'shadow';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -35,6 +35,8 @@ export { default as PromoCard } from './components/PromoCards/components/PromoCa
35
35
  export { default as PromoCards } from './components/PromoCards/PromoCards';
36
36
  export { default as Property } from './components/Property/Property';
37
37
  export { default as PropertyDescription } from './components/Property/PropertyDescription';
38
+ export { default as ServiceCard } from './components/ServiceCards/components/ServiceCard/ServiceCard';
39
+ export { default as ServiceCards } from './components/ServiceCards/ServiceCards';
38
40
  export { default as SidePictureCard } from './components/SidePictureCards/components/SidePictureCard';
39
41
  export { default as SidePictureCards } from './components/SidePictureCards/SidePictureCards';
40
42
  export { default as Steps } from './components/Steps/Steps';
package/dist/lib/index.js CHANGED
@@ -225,6 +225,18 @@ Object.defineProperty(exports, "PropertyDescription", {
225
225
  return _PropertyDescription["default"];
226
226
  }
227
227
  });
228
+ Object.defineProperty(exports, "ServiceCard", {
229
+ enumerable: true,
230
+ get: function get() {
231
+ return _ServiceCard["default"];
232
+ }
233
+ });
234
+ Object.defineProperty(exports, "ServiceCards", {
235
+ enumerable: true,
236
+ get: function get() {
237
+ return _ServiceCards["default"];
238
+ }
239
+ });
228
240
  Object.defineProperty(exports, "SidePictureCard", {
229
241
  enumerable: true,
230
242
  get: function get() {
@@ -382,6 +394,8 @@ var _PromoCard = _interopRequireDefault(require("./components/PromoCards/compone
382
394
  var _PromoCards = _interopRequireDefault(require("./components/PromoCards/PromoCards"));
383
395
  var _Property = _interopRequireDefault(require("./components/Property/Property"));
384
396
  var _PropertyDescription = _interopRequireDefault(require("./components/Property/PropertyDescription"));
397
+ var _ServiceCard = _interopRequireDefault(require("./components/ServiceCards/components/ServiceCard/ServiceCard"));
398
+ var _ServiceCards = _interopRequireDefault(require("./components/ServiceCards/ServiceCards"));
385
399
  var _SidePictureCard = _interopRequireDefault(require("./components/SidePictureCards/components/SidePictureCard"));
386
400
  var _SidePictureCards = _interopRequireDefault(require("./components/SidePictureCards/SidePictureCards"));
387
401
  var _Steps = _interopRequireDefault(require("./components/Steps/Steps"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-shared",
3
- "version": "7.7.0",
3
+ "version": "7.8.0",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -77,13 +77,13 @@
77
77
  },
78
78
  "dependencies": {
79
79
  "@babel/runtime": "^7.8.4",
80
- "@megafon/ui-core": "^7.6.0",
80
+ "@megafon/ui-core": "^7.7.0",
81
81
  "@megafon/ui-helpers": "^3.1.1",
82
- "@megafon/ui-icons": "^3.4.0",
82
+ "@megafon/ui-icons": "^3.5.0",
83
83
  "core-js": "^3.6.4",
84
84
  "htmr": "^1.0.2",
85
85
  "lodash.throttle": "^4.1.1",
86
86
  "swiper": "^11.1.1"
87
87
  },
88
- "gitHead": "327dfbd92bc2d6dfd02455d92527ae27d9944207"
88
+ "gitHead": "a573f87db1256b45a663aa9acc352edc61a58004"
89
89
  }