@megafon/ui-core 9.2.2 → 9.3.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.
Files changed (59) hide show
  1. package/dist/es/components/Badges/PromoBadge/PromoBadge.css +1 -1
  2. package/dist/es/components/Badges/PromoBadge/PromoBadge.d.ts +7 -0
  3. package/dist/es/components/Badges/PromoBadge/PromoBadge.js +44 -4
  4. package/dist/es/components/Chips/Chips/Chip.css +1 -1
  5. package/dist/es/components/Chips/Chips/Chip.d.ts +14 -3
  6. package/dist/es/components/Chips/Chips/Chip.js +31 -5
  7. package/dist/es/components/Chips/Chips/ChipBadge.css +1 -0
  8. package/dist/es/components/Chips/Chips/ChipBadge.d.ts +8 -0
  9. package/dist/es/components/Chips/Chips/ChipBadge.js +29 -0
  10. package/dist/es/components/Chips/Chips/Chips.css +1 -1
  11. package/dist/es/components/Chips/Chips/Chips.d.ts +6 -6
  12. package/dist/es/components/Chips/Chips/Chips.js +2 -2
  13. package/dist/es/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.css +1 -1
  14. package/dist/es/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.d.ts +6 -6
  15. package/dist/es/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.js +5 -9
  16. package/dist/es/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.css +1 -1
  17. package/dist/es/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.d.ts +6 -6
  18. package/dist/es/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.js +2 -2
  19. package/dist/es/components/Modal/Modal.css +1 -1
  20. package/dist/es/components/Modal/Modal.js +15 -7
  21. package/dist/es/components/Modal/utils/utils.d.ts +1 -1
  22. package/dist/es/components/Modal/utils/utils.js +5 -1
  23. package/dist/es/components/MultipleSelect/MultipleSelect.css +1 -0
  24. package/dist/es/components/MultipleSelect/MultipleSelect.d.ts +63 -0
  25. package/dist/es/components/MultipleSelect/MultipleSelect.js +235 -0
  26. package/dist/es/components/Tooltip/Tooltip.d.ts +6 -0
  27. package/dist/es/components/Tooltip/Tooltip.js +19 -6
  28. package/dist/es/index.d.ts +2 -0
  29. package/dist/es/index.js +2 -0
  30. package/dist/lib/components/Badges/PromoBadge/PromoBadge.css +1 -1
  31. package/dist/lib/components/Badges/PromoBadge/PromoBadge.d.ts +7 -0
  32. package/dist/lib/components/Badges/PromoBadge/PromoBadge.js +45 -5
  33. package/dist/lib/components/Chips/Chips/Chip.css +1 -1
  34. package/dist/lib/components/Chips/Chips/Chip.d.ts +14 -3
  35. package/dist/lib/components/Chips/Chips/Chip.js +32 -6
  36. package/dist/lib/components/Chips/Chips/ChipBadge.css +1 -0
  37. package/dist/lib/components/Chips/Chips/ChipBadge.d.ts +8 -0
  38. package/dist/lib/components/Chips/Chips/ChipBadge.js +38 -0
  39. package/dist/lib/components/Chips/Chips/Chips.css +1 -1
  40. package/dist/lib/components/Chips/Chips/Chips.d.ts +6 -6
  41. package/dist/lib/components/Chips/Chips/Chips.js +2 -2
  42. package/dist/lib/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.css +1 -1
  43. package/dist/lib/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.d.ts +6 -6
  44. package/dist/lib/components/Chips/Chips/components/ChipsDropdown/ChipsDropdown.js +5 -9
  45. package/dist/lib/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.css +1 -1
  46. package/dist/lib/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.d.ts +6 -6
  47. package/dist/lib/components/Chips/Chips/components/ChipsScrollPanel/ChipsScrollPanel.js +2 -2
  48. package/dist/lib/components/Modal/Modal.css +1 -1
  49. package/dist/lib/components/Modal/Modal.js +14 -6
  50. package/dist/lib/components/Modal/utils/utils.d.ts +1 -1
  51. package/dist/lib/components/Modal/utils/utils.js +6 -2
  52. package/dist/lib/components/MultipleSelect/MultipleSelect.css +1 -0
  53. package/dist/lib/components/MultipleSelect/MultipleSelect.d.ts +63 -0
  54. package/dist/lib/components/MultipleSelect/MultipleSelect.js +244 -0
  55. package/dist/lib/components/Tooltip/Tooltip.d.ts +6 -0
  56. package/dist/lib/components/Tooltip/Tooltip.js +19 -6
  57. package/dist/lib/index.d.ts +2 -0
  58. package/dist/lib/index.js +14 -0
  59. package/package.json +2 -2
@@ -1 +1 @@
1
- h1,h2,h3,h4,h5{margin:0}.mfui-9-promo-badge{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:8px;color:var(--stcWhite);padding:4px 12px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.mfui-9-promo-badge_color_berry{background-color:var(--berry)}.mfui-9-promo-badge_color_brand-purple-20{background-color:var(--brandPurple20);color:var(--brandPurple)}.mfui-9-promo-badge_color_brand-purple{background-color:var(--brandPurple)}.mfui-9-promo-badge_color_night{background-color:var(--night)}.mfui-9-promo-badge_color_sky{background-color:var(--sky)}.mfui-9-promo-badge_color_flamingo{background-color:var(--flamingo)}.mfui-9-promo-badge_color_gradient-purple{background:var(--gradientPurple1);color:var(--stcWhite)}.mfui-9-promo-badge_color_gray{background:var(--spbSky1);color:var(--content)}.mfui-9-promo-badge_size_small{border-radius:8px;height:18px;padding:0 8px}.mfui-9-promo-badge__text{font-family:inherit;font-size:12px;font-weight:500;line-height:18px}
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-promo-badge{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:8px;color:var(--stcWhite);padding:3px 10px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.mfui-9-promo-badge_color_berry{background-color:var(--berry)}.mfui-9-promo-badge_color_brand-purple-20{background-color:var(--brandPurple20);color:var(--brandPurple)}.mfui-9-promo-badge_color_brand-purple{background-color:var(--brandPurple)}.mfui-9-promo-badge_color_night{background-color:var(--night)}.mfui-9-promo-badge_color_sky{background-color:var(--sky)}.mfui-9-promo-badge_color_flamingo{background-color:var(--flamingo)}.mfui-9-promo-badge_color_gradient-purple{background:var(--gradientPurple1);color:var(--stcWhite)}.mfui-9-promo-badge_color_gray{background:var(--spbSky0);color:var(--content)}.mfui-9-promo-badge_color_white{background:var(--base);color:var(--content)}.mfui-9-promo-badge_icon{padding:3px 8px}.mfui-9-promo-badge_size_small{border-radius:8px;height:20px;padding:0 8px}.mfui-9-promo-badge__text{font-family:inherit;font-size:12px;font-weight:500;line-height:18px}.mfui-9-promo-badge__text_size_small{font-size:10px;line-height:12px}.mfui-9-promo-badge__icon{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:4px}.mfui-9-promo-badge__icon_size_small{margin-left:-4px;margin-right:2px}
@@ -9,6 +9,7 @@ export declare const PromoBadgeColors: {
9
9
  readonly FLAMINGO: "flamingo";
10
10
  readonly GRADIENT_PURPLE: "gradient-purple";
11
11
  readonly GRAY: "gray";
12
+ readonly WHITE: "white";
12
13
  };
13
14
  type PromoBadgeColorsType = (typeof PromoBadgeColors)[keyof typeof PromoBadgeColors];
14
15
  export declare const PromoBadgeSize: {
@@ -16,11 +17,17 @@ export declare const PromoBadgeSize: {
16
17
  readonly MEDIUM: "medium";
17
18
  };
18
19
  type PromoBadgeSizeType = (typeof PromoBadgeSize)[keyof typeof PromoBadgeSize];
20
+ export declare const PromoBadgeIcon: {
21
+ readonly PERSONAL: "personal";
22
+ };
23
+ type PromoBadgeIconType = (typeof PromoBadgeIcon)[keyof typeof PromoBadgeIcon];
19
24
  export interface IPromoBadgeProps {
20
25
  /** Цвет промо-бэйджа */
21
26
  color?: PromoBadgeColorsType;
22
27
  /** Размер промо-бэйджа */
23
28
  size?: PromoBadgeSizeType;
29
+ /** Иконка промо-бэйджа */
30
+ icon?: PromoBadgeIconType;
24
31
  /** Дополнительный класс корневого элемента */
25
32
  className?: string;
26
33
  /** Дополнительные data-атрибуты к внутренним элементам */
@@ -1,7 +1,33 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
3
  import * as React from 'react';
3
4
  import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
4
5
  import "./PromoBadge.css";
6
+ var PersonalIcon = function PersonalIcon(props) {
7
+ return /*#__PURE__*/React.createElement("svg", _extends({
8
+ width: 14,
9
+ height: 14,
10
+ viewBox: "0 0 14 14",
11
+ fill: "none"
12
+ }, props), /*#__PURE__*/React.createElement("path", {
13
+ fillRule: "evenodd",
14
+ clipRule: "evenodd",
15
+ d: "M4.287 7.7a.2.2 0 01.193.15l.26 1.036c.053.215.071.278.102.326a.4.4 0 00.12.121c.05.03.112.049.327.103l1.035.258a.2.2 0 010 .387l-1.035.259c-.215.054-.278.072-.326.102a.4.4 0 00-.121.121c-.03.049-.049.112-.103.327l-.259 1.035a.2.2 0 01-.385 0l-.26-1.035c-.053-.216-.072-.278-.103-.327a.397.397 0 00-.12-.12c-.048-.031-.11-.05-.326-.103l-1.035-.259a.2.2 0 01-.151-.193.2.2 0 01.151-.194l1.035-.258c.215-.054.278-.072.326-.103a.398.398 0 00.12-.121c.031-.048.05-.11.104-.326l.259-1.035a.199.199 0 01.192-.15zM8.75 2.45c.146 0 .273.1.309.241l.414 1.657c.086.345.115.445.165.522.05.077.115.143.192.192.077.05.178.08.522.166l1.657.414a.318.318 0 010 .617l-1.657.414c-.344.086-.445.115-.522.165a.636.636 0 00-.192.192c-.05.078-.08.178-.165.523l-.414 1.656a.318.318 0 01-.618 0l-.414-1.656c-.086-.345-.115-.445-.165-.523a.636.636 0 00-.192-.192c-.077-.05-.178-.079-.523-.165l-1.656-.414a.318.318 0 010-.617l1.656-.414c.345-.087.446-.116.523-.165a.636.636 0 00.192-.193c.05-.077.08-.177.165-.522l.414-1.657a.318.318 0 01.309-.24zM4.2 1.4c.058 0 .109.04.123.096l.166.663c.035.138.046.178.066.21.02.03.046.057.077.076.03.02.071.031.209.066l.663.166a.128.128 0 010 .247l-.663.165c-.138.034-.178.047-.21.066a.256.256 0 00-.076.077c-.02.031-.031.071-.066.208l-.166.664a.127.127 0 01-.247 0l-.165-.664c-.034-.137-.047-.177-.066-.208a.254.254 0 00-.077-.077c-.031-.02-.071-.032-.21-.066l-.662-.165a.127.127 0 010-.247l.663-.166c.137-.035.178-.046.209-.066a.257.257 0 00.077-.077c.02-.03.032-.071.066-.209l.165-.663A.128.128 0 014.2 1.4z",
16
+ fill: "url(#PersonalIcon__paint0_linear_30332_1078)"
17
+ }), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
18
+ id: "PersonalIcon__paint0_linear_30332_1078",
19
+ x1: 11.873,
20
+ y1: 2.079,
21
+ x2: 6.33,
22
+ y2: 3.363,
23
+ gradientUnits: "userSpaceOnUse"
24
+ }, /*#__PURE__*/React.createElement("stop", {
25
+ stopColor: "#3CB9FF"
26
+ }), /*#__PURE__*/React.createElement("stop", {
27
+ offset: 1,
28
+ stopColor: "#AA5AFF"
29
+ }))));
30
+ };
5
31
  export var PromoBadgeColors = {
6
32
  BERRY: 'berry',
7
33
  BRAND_PURPLE_20: 'brand-purple-20',
@@ -10,28 +36,42 @@ export var PromoBadgeColors = {
10
36
  SKY: 'sky',
11
37
  FLAMINGO: 'flamingo',
12
38
  GRADIENT_PURPLE: 'gradient-purple',
13
- GRAY: 'gray'
39
+ GRAY: 'gray',
40
+ WHITE: 'white'
14
41
  };
15
42
  export var PromoBadgeSize = {
16
43
  SMALL: 'small',
17
44
  MEDIUM: 'medium'
18
45
  };
46
+ export var PromoBadgeIcon = {
47
+ PERSONAL: 'personal'
48
+ };
49
+ var iconMap = _defineProperty({}, PromoBadgeIcon.PERSONAL, PersonalIcon);
19
50
  var cn = cnCreate('mfui-9-promo-badge');
20
51
  var PromoBadge = function PromoBadge(_ref) {
21
52
  var _ref$color = _ref.color,
22
53
  color = _ref$color === void 0 ? PromoBadgeColors.SKY : _ref$color,
23
54
  _ref$size = _ref.size,
24
55
  size = _ref$size === void 0 ? PromoBadgeSize.MEDIUM : _ref$size,
56
+ icon = _ref.icon,
25
57
  className = _ref.className,
26
58
  children = _ref.children,
27
59
  dataAttrs = _ref.dataAttrs;
60
+ var IconComponent = icon ? iconMap[icon] : null;
28
61
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
29
62
  className: cn({
30
63
  color: color,
31
- size: size
64
+ size: size,
65
+ icon: !!IconComponent
32
66
  }, className)
33
- }), /*#__PURE__*/React.createElement("span", {
34
- className: cn('text')
67
+ }), IconComponent && /*#__PURE__*/React.createElement("div", {
68
+ className: cn('icon', {
69
+ size: size
70
+ })
71
+ }, /*#__PURE__*/React.createElement(IconComponent, null)), /*#__PURE__*/React.createElement("span", {
72
+ className: cn('text', {
73
+ size: size
74
+ })
35
75
  }, children));
36
76
  };
37
77
  export default PromoBadge;
@@ -1 +1 @@
1
- h1,h2,h3,h4,h5{margin:0}.mfui-9-chip{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;font-size:15px;font-weight:500;line-height:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--spbSky0);border:none;border-radius:20px;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);overflow:hidden;padding:8px 20px;text-align:center;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;-webkit-transition:background-color .3s,color .3s;transition:background-color .3s,color .3s}.mfui-9-chip:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:-4px}@-webkit-keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}@keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-chip:focus{outline:none}.mfui-9-chip svg{-webkit-transition:fill .3s;transition:fill .3s;fill:var(--content)}@media screen and (max-width:767px){.mfui-9-chip{padding:4px 12px}}.mfui-9-chip:hover{background-color:var(--spbSky1)}.mfui-9-chip__inner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfui-9-chip__counter{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--spbSky3);margin-left:6px}@media screen and (max-width:767px){.mfui-9-chip__counter{margin-left:4px}}.mfui-9-chip__icon,.mfui-9-chip__icon-arrow{display:block;max-height:20px;min-width:20px;width:20px}.mfui-9-chip__icon svg,.mfui-9-chip__icon-arrow svg{display:block;height:100%;width:100%}.mfui-9-chip__icon{margin-right:6px}@media screen and (max-width:767px){.mfui-9-chip__icon{margin-right:4px}}.mfui-9-chip_theme_gray{background-color:var(--spbSky1)}.mfui-9-chip_theme_gray:hover{background-color:var(--spbSky2)}.mfui-9-chip_disabled,.mfui-9-chip_disabled:hover{background-color:var(--spbSky0);color:var(--spbSky3);cursor:default;pointer-events:none}.mfui-9-chip_disabled svg,.mfui-9-chip_disabled:hover svg{fill:var(--spbSky3)}.mfui-9-chip_disabled .mfui-9-chip__counter,.mfui-9-chip_disabled:hover .mfui-9-chip__counter{color:var(--spbSky2)}.mfui-9-chip_disabled.mfui-9-chip_theme_gray,.mfui-9-chip_disabled.mfui-9-chip_theme_gray:hover{background-color:var(--spbSky1)}.mfui-9-chip_checked,.mfui-9-chip_checked:hover{background-color:var(--night);color:var(--stcWhite)}.mfui-9-chip_checked svg,.mfui-9-chip_checked:hover svg{fill:var(--stcWhite)}.mfui-9-chip_checked .mfui-9-chip__counter,.mfui-9-chip_checked:hover .mfui-9-chip__counter{color:var(--stcWhite)}.mfui-9-chip_checked.mfui-9-chip_color_black,.mfui-9-chip_checked.mfui-9-chip_color_black:hover{background-color:var(--content);color:var(--base)}.mfui-9-chip_checked.mfui-9-chip_color_black svg,.mfui-9-chip_checked.mfui-9-chip_color_black:hover svg{fill:var(--base)}.mfui-9-chip_checked.mfui-9-chip_color_black .mfui-9-chip__counter,.mfui-9-chip_checked.mfui-9-chip_color_black:hover .mfui-9-chip__counter{color:var(--base)}.mfui-9-chip_with-icon{padding-left:16px}@media screen and (max-width:767px){.mfui-9-chip_with-icon{padding-left:8px}}
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-chip{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;font-size:15px;font-weight:500;line-height:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border:none;border-radius:20px;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);justify-content:center;overflow:hidden;padding:8px 20px;text-align:center;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;-webkit-transition:background-color .3s,color .3s;transition:background-color .3s,color .3s}.mfui-9-chip:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:-4px}@-webkit-keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}@keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-chip:focus{outline:none}@media screen and (max-width:767px){.mfui-9-chip{padding:4px 12px}}.mfui-9-chip__inner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfui-9-chip__counter{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--spbSky3);margin-left:6px}@media screen and (max-width:767px){.mfui-9-chip__counter{margin-left:4px}}.mfui-9-chip__icon,.mfui-9-chip__icon-arrow{display:block;margin:2px 0;max-height:20px;min-width:20px;width:20px}.mfui-9-chip__icon svg,.mfui-9-chip__icon-arrow svg{display:block;height:100%;-webkit-transition:fill .3s;transition:fill .3s;width:100%;fill:var(--content)}.mfui-9-chip__icon-arrow{-webkit-transition:-webkit-transform .6s;transition:-webkit-transform .6s;transition:transform .6s;transition:transform .6s,-webkit-transform .6s}.mfui-9-chip_with-icon .mfui-9-chip__inner{margin-left:6px}@media screen and (max-width:767px){.mfui-9-chip_with-icon .mfui-9-chip__inner{margin-left:4px}}.mfui-9-chip_with-arrow{padding-right:14px}@media screen and (max-width:767px){.mfui-9-chip_with-arrow{padding-right:6px}}.mfui-9-chip_type_filter .mfui-9-chip__counter{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:32px;font-size:12px;height:24px;justify-content:center;line-height:14px;min-width:24px;padding:0 4px 2px}@media screen and (min-width:768px){.mfui-9-chip_type_filter .mfui-9-chip__counter{height:32px;min-width:32px;padding-left:6px;padding-right:6px}}.mfui-9-chip_type_default .mfui-9-chip__icon svg{fill:var(--spbSky3)}.mfui-9-chip_theme_white{background-color:var(--spbSky0)}.mfui-9-chip_theme_gray,.mfui-9-chip_theme_white.mfui-9-chip_opened,.mfui-9-chip_theme_white:hover{background-color:var(--spbSky1)}.mfui-9-chip_theme_gray.mfui-9-chip_opened,.mfui-9-chip_theme_gray:hover{background-color:var(--spbSky2)}.mfui-9-chip_opened .mfui-9-chip__icon-arrow{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.mfui-9-chip_disabled,.mfui-9-chip_disabled:hover{background-color:var(--spbSky0);color:var(--spbSky3);cursor:default;pointer-events:none}.mfui-9-chip_disabled .mfui-9-chip__icon svg,.mfui-9-chip_disabled:hover .mfui-9-chip__icon svg{fill:var(--spbSky3)}.mfui-9-chip_disabled .mfui-9-chip__icon-arrow svg,.mfui-9-chip_disabled:hover .mfui-9-chip__icon-arrow svg{fill:var(--spbSky2)}.mfui-9-chip_disabled .mfui-9-chip__counter,.mfui-9-chip_disabled:hover .mfui-9-chip__counter{color:var(--spbSky2)}.mfui-9-chip_disabled.mfui-9-chip_theme_gray,.mfui-9-chip_disabled.mfui-9-chip_theme_gray:hover{background-color:var(--spbSky1)}.mfui-9-chip_checked:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter){background-color:var(--night);color:var(--stcWhite)}.mfui-9-chip_checked:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) svg{fill:var(--stcWhite)}.mfui-9-chip_checked:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) .mfui-9-chip__counter{color:var(--stcWhite)}.mfui-9-chip_checked.mfui-9-chip_color_black:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter){background-color:var(--content);color:var(--base)}.mfui-9-chip_checked.mfui-9-chip_color_black:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) svg{fill:var(--base)}.mfui-9-chip_checked.mfui-9-chip_color_black:not(.mfui-9-chip_type_filter.mfui-9-chip_with-counter) .mfui-9-chip__counter{color:var(--base)}.mfui-9-chip_checked.mfui-9-chip_type_filter.mfui-9-chip_with-counter{padding-bottom:4px;padding-right:4px;padding-top:4px}.mfui-9-chip_checked.mfui-9-chip_type_filter .mfui-9-chip__counter{background-color:var(--night);color:var(--stcWhite)}.mfui-9-chip_checked.mfui-9-chip_type_filter.mfui-9-chip_color_black .mfui-9-chip__counter{background-color:var(--content);color:var(--base)}
@@ -11,6 +11,11 @@ export declare const ChipThemes: {
11
11
  readonly GRAY: "gray";
12
12
  };
13
13
  export type ChipsThemeType = (typeof ChipThemes)[keyof typeof ChipThemes];
14
+ export declare const ChipType: {
15
+ readonly DEFAULT: "default";
16
+ readonly FILTER: "filter";
17
+ };
18
+ export type ChipTypeType = (typeof ChipType)[keyof typeof ChipType];
14
19
  export declare const ChipArrow: {
15
20
  readonly UP: "up";
16
21
  readonly DOWN: "down";
@@ -21,20 +26,26 @@ export interface IChipProps {
21
26
  id: ChipIdType;
22
27
  /** Заголовок */
23
28
  title?: string;
29
+ /** Тип */
30
+ type?: ChipTypeType;
24
31
  /** Цвет активного элемента компонента */
25
32
  color?: ChipColorsType;
26
- /** Цвета неактивных элементов компонента */
33
+ /** Цветовая тема */
27
34
  theme?: ChipsThemeType;
28
- /** Отображение в отмеченном (зажатом) состоянии */
35
+ /** Активное состояние */
29
36
  checked?: boolean;
37
+ /** Открытое состояние */
38
+ opened?: boolean;
30
39
  /** Отключенное состояние */
31
40
  disabled?: boolean;
32
41
  /** Иконка */
33
42
  icon?: JSX.Element;
34
43
  /** Значение счетчика */
35
44
  counterValue?: number;
36
- /** Стрелка вверх или вниз */
45
+ /** DEPRECATED Стрелка вверх или вниз (Используйте opened и showArrow) */
37
46
  arrow?: ChipArrowType;
47
+ /** Показать стрелку */
48
+ showArrow?: boolean;
38
49
  /** Обработчик нажатия */
39
50
  onClick?: (e: React.SyntheticEvent<EventTarget>, id?: ChipIdType) => void;
40
51
  /** Дочерние элементы */
@@ -2,6 +2,13 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import * as React from 'react';
3
3
  import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
4
4
  import "./Chip.css";
5
+ var TurnOn = function TurnOn(props) {
6
+ return /*#__PURE__*/React.createElement("svg", _extends({
7
+ viewBox: "0 0 20 20"
8
+ }, props), /*#__PURE__*/React.createElement("path", {
9
+ d: "M12.352 12a2 2 0 110 4 2 2 0 010-4zm-2.828 1.25c-.06.24-.094.49-.094.75s.034.51.094.75H2.73A.74.74 0 012 14a.74.74 0 01.729-.75h6.795zm7.747 0A.74.74 0 0118 14a.74.74 0 01-.729.75h-2.108c.06-.24.096-.49.096-.75s-.036-.51-.096-.75h2.108zM7.46 4a2 2 0 110 4 2 2 0 010-4zM4.667 5.25c-.06.24-.095.49-.095.75s.035.51.095.75H2.729A.74.74 0 012 6a.74.74 0 01.729-.75h1.938zm12.604 0A.74.74 0 0118 6a.74.74 0 01-.729.75h-6.965c.06-.24.094-.49.094-.75s-.034-.51-.094-.75h6.966z"
10
+ }));
11
+ };
5
12
  var ArrowDown = function ArrowDown(props) {
6
13
  return /*#__PURE__*/React.createElement("svg", _extends({
7
14
  viewBox: "0 0 20 20"
@@ -24,6 +31,11 @@ export var ChipThemes = {
24
31
  WHITE: 'white',
25
32
  GRAY: 'gray'
26
33
  };
34
+ export var ChipType = {
35
+ DEFAULT: 'default',
36
+ FILTER: 'filter'
37
+ };
38
+ // DEPRECATED -------------------------------------------------------
27
39
  export var ChipArrow = {
28
40
  UP: 'up',
29
41
  DOWN: 'down'
@@ -32,17 +44,22 @@ var cn = cnCreate('mfui-9-chip');
32
44
  var Chip = function Chip(_ref) {
33
45
  var id = _ref.id,
34
46
  title = _ref.title,
47
+ _ref$type = _ref.type,
48
+ type = _ref$type === void 0 ? 'default' : _ref$type,
35
49
  _ref$color = _ref.color,
36
50
  color = _ref$color === void 0 ? 'default' : _ref$color,
37
51
  _ref$theme = _ref.theme,
38
52
  theme = _ref$theme === void 0 ? 'white' : _ref$theme,
39
53
  _ref$checked = _ref.checked,
40
54
  checked = _ref$checked === void 0 ? false : _ref$checked,
55
+ _ref$opened = _ref.opened,
56
+ opened = _ref$opened === void 0 ? false : _ref$opened,
41
57
  _ref$disabled = _ref.disabled,
42
58
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
43
59
  icon = _ref.icon,
44
60
  counterValue = _ref.counterValue,
45
61
  arrow = _ref.arrow,
62
+ showArrow = _ref.showArrow,
46
63
  onClick = _ref.onClick,
47
64
  children = _ref.children,
48
65
  className = _ref.className,
@@ -51,6 +68,9 @@ var Chip = function Chip(_ref) {
51
68
  dataAttrs = _ref.dataAttrs,
52
69
  rootRef = _ref.rootRef;
53
70
  var checkedClass = checked ? classes.checked : undefined;
71
+ var filterIcon = type === 'filter' ? /*#__PURE__*/React.createElement(TurnOn, null) : undefined;
72
+ var finalIcon = icon || filterIcon;
73
+ var content = children || title;
54
74
  var handleClick = React.useCallback(function (e) {
55
75
  onClick === null || onClick === void 0 ? void 0 : onClick(e, id);
56
76
  }, [onClick, id]);
@@ -58,10 +78,14 @@ var Chip = function Chip(_ref) {
58
78
  type: "button",
59
79
  className: cn({
60
80
  color: color,
81
+ type: type,
61
82
  theme: theme,
62
83
  checked: checked,
84
+ opened: opened,
63
85
  disabled: disabled,
64
- 'with-icon': !!icon
86
+ 'with-arrow': !!arrow || showArrow,
87
+ 'with-counter': !!counterValue,
88
+ 'with-icon': !!finalIcon
65
89
  }, [className, classes.root, checkedClass])
66
90
  }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
67
91
  disabled: disabled,
@@ -69,14 +93,16 @@ var Chip = function Chip(_ref) {
69
93
  ref: rootRef
70
94
  }, checked && {
71
95
  tabIndex: -1
72
- }), !!icon && /*#__PURE__*/React.createElement("span", _extends({
96
+ }), !!finalIcon && /*#__PURE__*/React.createElement("span", _extends({
73
97
  className: cn('icon', [classes.icon])
74
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon)), icon), /*#__PURE__*/React.createElement("span", _extends({
98
+ }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.icon)), finalIcon), !!content && /*#__PURE__*/React.createElement("span", _extends({
75
99
  className: cn('inner', [classes.inner])
76
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner)), children || title), !!counterValue && /*#__PURE__*/React.createElement("span", _extends({
100
+ }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner)), content), !!counterValue && /*#__PURE__*/React.createElement("span", _extends({
77
101
  className: cn('counter', [classes.counter])
78
102
  }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.counter)), counterValue), !!arrow && /*#__PURE__*/React.createElement("div", _extends({
79
103
  className: cn('icon-arrow', [classes.arrow])
80
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), arrow === 'up' ? /*#__PURE__*/React.createElement(ArrowUp, null) : /*#__PURE__*/React.createElement(ArrowDown, null)));
104
+ }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), arrow === 'up' ? /*#__PURE__*/React.createElement(ArrowUp, null) : /*#__PURE__*/React.createElement(ArrowDown, null)), showArrow && /*#__PURE__*/React.createElement("div", _extends({
105
+ className: cn('icon-arrow', [classes.arrow])
106
+ }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.arrow)), /*#__PURE__*/React.createElement(ArrowDown, null)));
81
107
  };
82
108
  export default Chip;
@@ -0,0 +1 @@
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-chip-badge__badge{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;z-index:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:end;margin-bottom:-4px;margin-left:auto}.mfui-9-chip-badge__chip{width:100%}
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { IChipProps } from './Chip';
3
+ import './ChipBadge.scss';
4
+ export interface IChipBadgeProps extends IChipProps {
5
+ badge?: React.ReactNode;
6
+ }
7
+ declare const ChipBadge: React.FC<IChipBadgeProps>;
8
+ export default ChipBadge;
@@ -0,0 +1,29 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import "core-js/modules/es.symbol.js";
3
+ import "core-js/modules/es.array.index-of.js";
4
+ var __rest = this && this.__rest || function (s, e) {
5
+ var t = {};
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
7
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as React from 'react';
13
+ import { cnCreate } from '@megafon/ui-helpers';
14
+ import Chip from "./Chip";
15
+ import "./ChipBadge.css";
16
+ var cn = cnCreate('mfui-9-chip-badge');
17
+ var ChipBadge = function ChipBadge(_a) {
18
+ var badge = _a.badge,
19
+ className = _a.className,
20
+ chipProps = __rest(_a, ["badge", "className"]);
21
+ return /*#__PURE__*/React.createElement("div", {
22
+ className: cn()
23
+ }, !!badge && /*#__PURE__*/React.createElement("div", {
24
+ className: cn('badge')
25
+ }, badge), /*#__PURE__*/React.createElement(Chip, _extends({
26
+ className: cn('chip', [className])
27
+ }, chipProps)));
28
+ };
29
+ export default ChipBadge;
@@ -1 +1 @@
1
- h1,h2,h3,h4,h5{margin:0}.mfui-9-chips{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px;width:100%}@media screen and (max-width:767px){.mfui-9-chips{gap:8px}}.mfui-9-chips_hidden{display:grid;grid-template-columns:repeat(auto-fit,minMax(0,-webkit-min-content));grid-template-columns:repeat(auto-fit,minMax(0,min-content))}.mfui-9-chips_align_center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-chips{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px;-webkit-box-align:end;-ms-flex-align:end;align-items:end;width:100%}@media screen and (max-width:767px){.mfui-9-chips{gap:8px}}.mfui-9-chips_hidden{display:grid;grid-template-columns:repeat(auto-fit,minMax(0,-webkit-min-content));grid-template-columns:repeat(auto-fit,minMax(0,min-content))}.mfui-9-chips_align_center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
@@ -1,16 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { DropdownItemsPaddingType } from '../../Dropdown/Dropdown';
3
- import { ChipColorsType, ChipIdType, IChipProps, ChipsThemeType } from './Chip';
3
+ import { IChipBadgeProps } from './ChipBadge';
4
4
  import './Chips.scss';
5
5
  export interface IChipsProps {
6
6
  /** Массив элементов */
7
- items: IChipProps[];
7
+ items: IChipBadgeProps[];
8
8
  /** Значение (идентификатор активного элемента). Начальное значение в неконтролируемом состоянии */
9
- value?: ChipIdType;
9
+ value?: IChipBadgeProps['id'];
10
10
  /** Цвет активного элемента */
11
- color?: ChipColorsType;
11
+ color?: IChipBadgeProps['color'];
12
12
  /** Цвет неактивных элементов */
13
- theme?: ChipsThemeType;
13
+ theme?: IChipBadgeProps['theme'];
14
14
  /** Горизонтальное выравнивание */
15
15
  align?: 'left' | 'center';
16
16
  /** Переводит компонент в контролируемое состояние */
@@ -32,7 +32,7 @@ export interface IChipsProps {
32
32
  /** Отступы элементов списка выпадающего списка */
33
33
  dropdownPaddings?: DropdownItemsPaddingType;
34
34
  /** Обработчик изменения значения */
35
- onChange?: (id: ChipIdType, e?: React.SyntheticEvent<EventTarget>) => void;
35
+ onChange?: (id: IChipBadgeProps['id'], e?: React.SyntheticEvent<EventTarget>) => void;
36
36
  /** Дополнительный класс корневого элемента */
37
37
  className?: string;
38
38
  /** Дополнительные классы для внутренних элементов */
@@ -16,7 +16,7 @@ import * as React from 'react';
16
16
  import { breakpoints, cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
17
17
  import throttle from 'lodash.throttle';
18
18
  import throttleTime from "../../../constants/throttleTime";
19
- import Chip from "./Chip";
19
+ import ChipBadge from "./ChipBadge";
20
20
  import ChipsDropdown from "./components/ChipsDropdown/ChipsDropdown";
21
21
  import ChipsScrollPanel from "./components/ChipsScrollPanel/ChipsScrollPanel";
22
22
  import "./Chips.css";
@@ -100,7 +100,7 @@ var Chips = function Chips(_ref) {
100
100
  var id = _a.id,
101
101
  children = _a.children,
102
102
  rest = __rest(_a, ["id", "children"]);
103
- return /*#__PURE__*/React.createElement(Chip, _extends({
103
+ return /*#__PURE__*/React.createElement(ChipBadge, _extends({
104
104
  key: id,
105
105
  id: id,
106
106
  checked: id === selectedId,
@@ -1 +1 @@
1
- h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-dropdown{position:relative}.mfui-9-chips-dropdown__button{width:100%}.mfui-9-chips-dropdown__arrow{-webkit-transition:-webkit-transform .6s;transition:-webkit-transform .6s;transition:transform .6s;transition:transform .6s,-webkit-transform .6s}.mfui-9-chips-dropdown__arrow_open{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.mfui-9-chips-dropdown__dropdown{max-width:256px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.mfui-9-chips-dropdown__list-item{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-9-chips-dropdown__icon{display:block;margin-right:16px;max-height:24px;min-width:24px;width:24px}.mfui-9-chips-dropdown__icon svg{display:block;height:100%;width:100%;fill:var(--content)}
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-dropdown{position:relative}.mfui-9-chips-dropdown__button{width:100%}.mfui-9-chips-dropdown__dropdown{max-width:256px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.mfui-9-chips-dropdown__list-item{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-9-chips-dropdown__icon{display:block;margin-right:16px;max-height:24px;min-width:24px;width:24px}.mfui-9-chips-dropdown__icon svg{display:block;height:100%;width:100%;fill:var(--content)}
@@ -1,14 +1,14 @@
1
1
  import * as React from 'react';
2
2
  import { DropdownItemsPaddingType } from '../../../../Dropdown/Dropdown';
3
- import { ChipColorsType, ChipIdType, ChipsThemeType, IChipProps } from '../../Chip';
3
+ import { IChipBadgeProps } from '../../ChipBadge';
4
4
  import './ChipsDropdown.scss';
5
5
  export interface IChipsDropdownProps {
6
- items: IChipProps[];
7
- color: ChipColorsType;
8
- theme: ChipsThemeType;
6
+ items: IChipBadgeProps[];
7
+ color: IChipBadgeProps['color'];
8
+ theme: IChipBadgeProps['theme'];
9
9
  moreTitle: string;
10
10
  short: boolean;
11
- value?: ChipIdType;
11
+ value?: IChipBadgeProps['id'];
12
12
  paddings?: DropdownItemsPaddingType;
13
13
  classes?: {
14
14
  root?: string;
@@ -22,7 +22,7 @@ export interface IChipsDropdownProps {
22
22
  list?: Record<string, string>;
23
23
  item?: Record<string, string>;
24
24
  };
25
- onClick: (e: React.SyntheticEvent<EventTarget>, id: ChipIdType) => void;
25
+ onClick: (e: React.SyntheticEvent<EventTarget>, id: IChipBadgeProps['id']) => void;
26
26
  }
27
27
  declare const ChipsDropdown: React.FC<IChipsDropdownProps>;
28
28
  export default ChipsDropdown;
@@ -6,7 +6,7 @@ import "core-js/modules/es.object.to-string.js";
6
6
  import * as React from 'react';
7
7
  import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
8
8
  import Dropdown from "../../../../Dropdown/Dropdown";
9
- import Chip from "../../Chip";
9
+ import ChipBadge from "../../ChipBadge";
10
10
  import "./ChipsDropdown.css";
11
11
  var cn = cnCreate('mfui-9-chips-dropdown');
12
12
  var ChipsDropdown = function ChipsDropdown(_ref) {
@@ -22,7 +22,6 @@ var ChipsDropdown = function ChipsDropdown(_ref) {
22
22
  classes = _ref$classes === void 0 ? {} : _ref$classes,
23
23
  dataAttrs = _ref.dataAttrs,
24
24
  onClick = _ref.onClick;
25
- var _a;
26
25
  var _React$useState = React.useState(false),
27
26
  _React$useState2 = _slicedToArray(_React$useState, 2),
28
27
  isDropdownOpen = _React$useState2[0],
@@ -65,17 +64,14 @@ var ChipsDropdown = function ChipsDropdown(_ref) {
65
64
  return /*#__PURE__*/React.createElement("div", _extends({
66
65
  className: cn([classes.root]),
67
66
  ref: dropdownRef
68
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(Chip, _extends({}, currentItem, {
67
+ }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(ChipBadge, _extends({}, currentItem, {
69
68
  className: cn('button', [currentItem.className]),
70
- classes: _extends(_extends({}, currentItem.classes), {
71
- arrow: cn('arrow', {
72
- open: isDropdownOpen
73
- }, [(_a = currentItem.classes) === null || _a === void 0 ? void 0 : _a.arrow])
74
- }),
69
+ classes: currentItem.classes,
75
70
  color: color,
76
71
  theme: theme,
72
+ opened: isDropdownOpen,
77
73
  checked: !!currentItem.id,
78
- arrow: "down",
74
+ showArrow: true,
79
75
  onClick: handleOpenItemList
80
76
  })), /*#__PURE__*/React.createElement(Dropdown, {
81
77
  items: dropdownItems,
@@ -1 +1 @@
1
- h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-scroll-panel{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow-x:auto;overflow-y:hidden;position:relative;-ms-overflow-style:none;scrollbar-width:none}.mfui-9-chips-scroll-panel::-webkit-scrollbar{display:none}.mfui-9-chips-scroll-panel__inner{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px;height:100%}@media screen and (max-width:767px){.mfui-9-chips-scroll-panel__inner{gap:8px}}
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-chips-scroll-panel{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow-x:auto;overflow-y:hidden;position:relative;-ms-overflow-style:none;scrollbar-width:none}.mfui-9-chips-scroll-panel::-webkit-scrollbar{display:none}.mfui-9-chips-scroll-panel__inner{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px;-webkit-box-align:end;-ms-flex-align:end;align-items:end;height:100%}@media screen and (max-width:767px){.mfui-9-chips-scroll-panel__inner{gap:8px}}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { ChipColorsType, ChipIdType, ChipsThemeType, IChipProps } from '../../Chip';
2
+ import { IChipBadgeProps } from '../../ChipBadge';
3
3
  import './ChipsScrollPanel.scss';
4
4
  export interface IChipsScrollPanelProps {
5
5
  classes?: {
@@ -10,11 +10,11 @@ export interface IChipsScrollPanelProps {
10
10
  root?: Record<string, string>;
11
11
  inner?: Record<string, string>;
12
12
  };
13
- value?: ChipIdType;
14
- items: IChipProps[];
15
- color: ChipColorsType;
16
- theme: ChipsThemeType;
17
- onClick: (e: React.SyntheticEvent<EventTarget>, id?: ChipIdType) => void;
13
+ value?: IChipBadgeProps['id'];
14
+ items: IChipBadgeProps[];
15
+ color: IChipBadgeProps['color'];
16
+ theme: IChipBadgeProps['theme'];
17
+ onClick: (e: React.SyntheticEvent<EventTarget>, id?: IChipBadgeProps['id']) => void;
18
18
  }
19
19
  declare const ChipsScrollPanel: React.FC<IChipsScrollPanelProps>;
20
20
  export default ChipsScrollPanel;
@@ -13,7 +13,7 @@ var __rest = this && this.__rest || function (s, e) {
13
13
  };
14
14
  import * as React from 'react';
15
15
  import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
16
- import Chip from "../../Chip";
16
+ import ChipBadge from "../../ChipBadge";
17
17
  import "./ChipsScrollPanel.css";
18
18
  var HALF_DIVIDER = 2;
19
19
  var cn = cnCreate('mfui-9-chips-scroll-panel');
@@ -75,7 +75,7 @@ var ChipsScrollPanel = function ChipsScrollPanel(_ref) {
75
75
  return /*#__PURE__*/React.createElement("div", {
76
76
  key: id,
77
77
  className: cn('slide')
78
- }, /*#__PURE__*/React.createElement(Chip, _extends({}, rest, {
78
+ }, /*#__PURE__*/React.createElement(ChipBadge, _extends({}, rest, {
79
79
  id: id,
80
80
  checked: checked,
81
81
  color: color,
@@ -1 +1 @@
1
- h1,h2,h3,h4,h5{margin:0}.mfui-9-modal-open-body{height:100%;overflow:hidden}.mfui-9-modal__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;left:0;position:fixed;top:0;z-index:1000;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-animation:show-popup-overlay .3s ease-out forwards;animation:show-popup-overlay .3s ease-out forwards;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;justify-content:flex-start;opacity:0;padding:72px 0;width:100%}.mfui-9-modal__modal-content{margin:auto;position:relative}.mfui-9-modal__modal-content:focus-visible{outline:none}.mfui-9-modal_full-view .mfui-9-modal__overlay{display:block;padding:32px 0 0;top:32px}.mfui-9-modal_full-view .mfui-9-modal__modal-content{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100%;width:100%}.mfui-9-modal_bottom-view .mfui-9-modal__overlay{bottom:0;display:block;height:auto;overflow:hidden;padding-bottom:0}.mfui-9-modal_bottom-view .mfui-9-modal__modal-content{height:100%;margin:0;outline:none;overflow:hidden}.mfui-9-modal_native-scroll .mfui-9-modal__overlay{overflow-x:hidden;overflow-y:scroll}@media screen and (hover:hover){.mfui-9-modal_native-scroll .mfui-9-modal__overlay{width:calc(100% + 15px)}}.mfui-9-modal_transition-end .mfui-9-modal__overlay{-webkit-animation:hide-popup-overlay .2s ease-in;animation:hide-popup-overlay .2s ease-in}@-webkit-keyframes show-popup-overlay{0%{opacity:0}to{opacity:1}}@keyframes show-popup-overlay{0%{opacity:0}to{opacity:1}}@-webkit-keyframes hide-popup-overlay{0%{opacity:1}to{opacity:0}}@keyframes hide-popup-overlay{0%{opacity:1}to{opacity:0}}
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-modal__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;left:0;position:fixed;top:0;z-index:1000;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-animation:show-popup-overlay .3s ease-out forwards;animation:show-popup-overlay .3s ease-out forwards;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;justify-content:flex-start;opacity:0;padding:72px 0;width:100%}.mfui-9-modal__modal-content{margin:auto;position:relative}.mfui-9-modal__modal-content:focus-visible{outline:none}.mfui-9-modal_full-view .mfui-9-modal__overlay{display:block;padding:32px 0 0;top:32px}.mfui-9-modal_full-view .mfui-9-modal__modal-content{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100%;width:100%}.mfui-9-modal_bottom-view .mfui-9-modal__overlay{bottom:0;display:block;height:auto;overflow:hidden;padding-bottom:0}.mfui-9-modal_bottom-view .mfui-9-modal__modal-content{height:100%;margin:0;outline:none;overflow:hidden}.mfui-9-modal_native-scroll .mfui-9-modal__overlay{overflow-x:hidden;overflow-y:scroll}@media screen and (hover:hover){.mfui-9-modal_native-scroll .mfui-9-modal__overlay{width:calc(100% + 15px)}}.mfui-9-modal_transition-end .mfui-9-modal__overlay{-webkit-animation:hide-popup-overlay .2s ease-in;animation:hide-popup-overlay .2s ease-in}@-webkit-keyframes show-popup-overlay{0%{opacity:0}to{opacity:1}}@keyframes show-popup-overlay{0%{opacity:0}to{opacity:1}}@-webkit-keyframes hide-popup-overlay{0%{opacity:1}to{opacity:0}}@keyframes hide-popup-overlay{0%{opacity:1}to{opacity:0}}
@@ -9,7 +9,7 @@ import usePrevious from "../../hooks/usePrevious";
9
9
  import useResolution from "../../hooks/useResolution";
10
10
  import ModalDesktop from "./_ModalDesktop/ModalDesktop";
11
11
  import ModalMobile from "./_ModalMobile/ModalMobile";
12
- import { changeBodyPadding, getCorrectMaxHeight } from "./utils/utils";
12
+ import { changeBodyStyles, getCorrectMaxHeight } from "./utils/utils";
13
13
  import "./Modal.css";
14
14
  var MOBILE_BIG_START = breakpoints.MOBILE_BIG_START;
15
15
  var HEIGHT_TRANSITION_PROPERTY = 'height';
@@ -29,7 +29,6 @@ export var MODAL_TRANSITIONS_STEPS_ENUM;
29
29
  MODAL_TRANSITIONS_STEPS_ENUM["MOVE_END_STEP"] = "move-end-step";
30
30
  MODAL_TRANSITIONS_STEPS_ENUM["END_STEP"] = "end-step";
31
31
  })(MODAL_TRANSITIONS_STEPS_ENUM || (MODAL_TRANSITIONS_STEPS_ENUM = {}));
32
- var bodyCn = cnCreate('mfui-9-modal-open-body');
33
32
  var cn = cnCreate('mfui-9-modal');
34
33
  var Modal = function Modal(_ref) {
35
34
  var className = _ref.className,
@@ -164,9 +163,13 @@ var Modal = function Modal(_ref) {
164
163
  handleSetScrollContentMaxHeight();
165
164
  }, [isEnabledNativeScroll, handleSetScrollContentMaxHeight]);
166
165
  var handleAfterOpen = function handleAfterOpen() {
166
+ changeBodyStyles(true);
167
167
  handleSetStyles();
168
168
  onAfterModalOpen === null || onAfterModalOpen === void 0 ? void 0 : onAfterModalOpen();
169
169
  };
170
+ var handleAfterClose = function handleAfterClose() {
171
+ changeBodyStyles(false);
172
+ };
170
173
  var handlePopupClose = function handlePopupClose() {
171
174
  setTransitionStep(MODAL_TRANSITIONS_STEPS_ENUM.END_STEP);
172
175
  };
@@ -183,7 +186,6 @@ var Modal = function Modal(_ref) {
183
186
  };
184
187
  React.useEffect(function () {
185
188
  setIsPopupOpened(isOpened);
186
- changeBodyPadding(isOpened);
187
189
  if (!isOpened) {
188
190
  setContainerWrapHeight(undefined);
189
191
  }
@@ -243,14 +245,19 @@ var Modal = function Modal(_ref) {
243
245
  }, [isEnabledNativeScroll, isFooterPropsDiff, isRecalculateHeight, isHeaderPropsDiff, handleSetScrollContentMaxHeight]);
244
246
  React.useEffect(function () {
245
247
  return function () {
246
- setIsPopupOpened(false);
247
- document.body.style.paddingRight = '';
248
248
  if (!containerInnerRef.current || !resizeObserver.current) {
249
249
  return;
250
250
  }
251
251
  resizeObserver.current.unobserve(containerInnerRef.current);
252
252
  };
253
253
  }, []);
254
+ React.useEffect(function () {
255
+ return function () {
256
+ if (isOpened) {
257
+ changeBodyStyles(false);
258
+ }
259
+ };
260
+ }, [isOpened]);
254
261
  var contextProps = {
255
262
  classes: classes,
256
263
  dataAttrs: dataAttrs,
@@ -305,7 +312,7 @@ var Modal = function Modal(_ref) {
305
312
  'native-scroll': isEnabledNativeScroll
306
313
  }, [className]),
307
314
  overlayClassName: cn('overlay', classes === null || classes === void 0 ? void 0 : classes.overlay),
308
- bodyOpenClassName: bodyCn('', classes === null || classes === void 0 ? void 0 : classes.bodyOpen),
315
+ bodyOpenClassName: classes === null || classes === void 0 ? void 0 : classes.bodyOpen,
309
316
  isOpen: isPopupOpened,
310
317
  ariaHideApp: hideAriaApp,
311
318
  contentLabel: contentLabel,
@@ -313,7 +320,8 @@ var Modal = function Modal(_ref) {
313
320
  contentRef: getModalContentRef,
314
321
  overlayRef: handleGetModalOverlayRef,
315
322
  onRequestClose: handlePopupClose,
316
- onAfterOpen: handleAfterOpen
323
+ onAfterOpen: handleAfterOpen,
324
+ onAfterClose: handleAfterClose
317
325
  }, renderContent());
318
326
  };
319
327
  export default Modal;
@@ -13,6 +13,6 @@ type CorrectMaxHeightArgsType = {
13
13
  };
14
14
  };
15
15
  export declare const getCorrectMaxHeight: ({ refs, props }: CorrectMaxHeightArgsType) => number;
16
- export declare const changeBodyPadding: (isOpened: boolean) => void;
16
+ export declare const changeBodyStyles: (isOpened: boolean) => void;
17
17
  declare const _default: null;
18
18
  export default _default;
@@ -48,15 +48,19 @@ export var getCorrectMaxHeight = function getCorrectMaxHeight(_ref) {
48
48
  var correctMaxHeight = isStickyFooter ? maxHeightResize - popupFooterHeight : maxHeightResize;
49
49
  return correctMaxHeight;
50
50
  };
51
- export var changeBodyPadding = function changeBodyPadding(isOpened) {
51
+ export var changeBodyStyles = function changeBodyStyles(isOpened) {
52
52
  var windowWidth = window.innerWidth;
53
53
  var documentClientWidth = document.documentElement.clientWidth;
54
54
  var scrollBarWidth = windowWidth - documentClientWidth;
55
55
  var bodyEl = document.body;
56
56
  if (!isOpened) {
57
57
  bodyEl.style.paddingRight = '';
58
+ bodyEl.style.height = '';
59
+ bodyEl.style.overflow = '';
58
60
  return;
59
61
  }
62
+ bodyEl.style.height = '100%';
63
+ bodyEl.style.overflow = 'hidden';
60
64
  if (scrollBarWidth === 0) {
61
65
  return;
62
66
  }
@@ -0,0 +1 @@
1
+ h1,h2,h3,h4,h5{margin:0}.mfui-9-multiple-select{-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);font-family:inherit;font-size:15px;line-height:24px;position:relative;width:100%}.mfui-9-multiple-select__control{background-color:var(--base);border:1px solid var(--spbSky2);border-radius:16px;display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;height:auto;min-height:60px;outline:none;padding:13px 15px;position:relative;-webkit-transition:border-color .3s;transition:border-color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.mfui-9-multiple-select__control:hover{border-color:var(--content)}.mfui-9-multiple-select__input-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px;overflow:hidden;width:100%}.mfui-9-multiple-select__arrow-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;outline:none;padding:0;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border-radius:8px;justify-content:center;width:32px}.mfui-9-multiple-select__arrow-button:disabled{color:inherit;cursor:auto}.mfui-9-multiple-select__arrow-button:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:2px}@-webkit-keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-multiple-select__arrow-button:focus{outline:none}.mfui-9-multiple-select__arrow-icon{height:auto;width:100%;fill:var(--spbSky2)}.mfui-9-multiple-select__control_active .mfui-9-multiple-select__arrow-icon{-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:color,-webkit-transform;transition-property:color,-webkit-transform;transition-property:transform,color;transition-property:transform,color,-webkit-transform;fill:var(--content)}.mfui-9-multiple-select__input{display:block;position:relative;z-index:1;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;caret-color:var(--brandGreen);color:var(--content);flex-shrink:1;font-family:inherit;font-size:100%;line-height:24px;opacity:1;outline:none;overflow:auto;padding:0;resize:none;width:100px}.mfui-9-multiple-select__input::-webkit-input-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input::-moz-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input:-ms-input-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input::-ms-input-placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__input::placeholder{color:var(--spbSky3)}.mfui-9-multiple-select__tag{display:-webkit-box;display:-ms-flexbox;display:flex;gap:2px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--spbSky0);border:none;border-radius:8px;height:32px;max-width:100%;padding:4px 6px 4px 12px}.mfui-9-multiple-select__tag-title{display:block;font-size:15px;font-weight:400;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfui-9-multiple-select__tag-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;outline:none;padding:0;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:8px;height:20px;min-width:20px;width:20px}.mfui-9-multiple-select__tag-button:disabled{color:inherit;cursor:auto}.mfui-9-multiple-select__tag-button:focus-visible{-webkit-animation:focus-outline-shrink .3s linear forwards;animation:focus-outline-shrink .3s linear forwards;outline-offset:2px}@keyframes focus-outline-shrink{0%{outline:0 solid var(--137C)}to{outline:4px solid var(--137C)}}.mfui-9-multiple-select__tag-button:focus{outline:none}.mfui-9-multiple-select__tag-button-icon{-webkit-transition:fill .3s;transition:fill .3s;fill:var(--spbSky3)}.mfui-9-multiple-select__tag-button:hover .mfui-9-multiple-select__tag-button-icon{fill:var(--content)}.mfui-9-multiple-select__notice-text{color:var(--spbSky3);font-size:12px;font-weight:400;line-height:18px;margin-top:8px}.mfui-9-multiple-select_open .mfui-9-multiple-select__control{border-color:var(--content)}.mfui-9-multiple-select_open .mfui-9-multiple-select__arrow-icon{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.mfui-9-multiple-select_disabled{pointer-events:none}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__control{background-color:var(--spbSky0)}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__input:not([placeholder]){width:0}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__tag{background-color:var(--spbSky1)}.mfui-9-multiple-select_disabled .mfui-9-multiple-select__arrow-icon,.mfui-9-multiple-select_disabled .mfui-9-multiple-select__tag-button-icon{fill:var(--spbSky2)}