@megafon/ui-core 9.0.0-alpha.3 → 9.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/components/Accordion/Accordion.d.ts +3 -1
- package/dist/es/components/Accordion/Accordion.js +2 -0
- package/dist/es/components/Badges/InfoBadge/InfoBadge.css +1 -0
- package/dist/es/components/Badges/InfoBadge/InfoBadge.d.ts +52 -0
- package/dist/es/components/Badges/InfoBadge/InfoBadge.js +214 -0
- package/dist/es/components/Badges/PriceBadge/PriceBadge.d.ts +1 -0
- package/dist/es/components/Badges/PriceBadge/PriceBadge.js +29 -1
- package/dist/es/components/Badges/PromoBadge/PromoBadge.d.ts +0 -11
- package/dist/es/components/Badges/PromoBadge/PromoBadge.js +4 -15
- package/dist/es/components/Chips/ChipsSuggest/ChipSuggest.css +1 -1
- package/dist/es/components/Dropdown/Dropdown.css +1 -1
- package/dist/es/components/Dropdown/Dropdown.d.ts +3 -1
- package/dist/es/components/Dropdown/Dropdown.js +8 -21
- package/dist/es/components/Modal/Modal.css +1 -1
- package/dist/es/components/Modal/_ModalContent/ModalContent.js +1 -4
- package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +3 -18
- package/dist/es/components/Pagination/Pagination.css +1 -1
- package/dist/es/components/Pagination/Pagination.d.ts +1 -3
- package/dist/es/components/Pagination/Pagination.js +4 -13
- package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.css +1 -1
- package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.d.ts +1 -2
- package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.js +0 -2
- package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.css +1 -1
- package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +1 -3
- package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.js +5 -16
- package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +1 -2
- package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +0 -2
- package/dist/es/components/Pagination/types.d.ts +1 -11
- package/dist/es/components/Pagination/types.js +1 -4
- package/dist/es/components/Pagination/usePagination.d.ts +2 -2
- package/dist/es/components/Pagination/usePagination.js +11 -29
- package/dist/es/components/Parameter/Parameter.d.ts +0 -3
- package/dist/es/components/Parameter/Parameter.js +0 -3
- package/dist/es/components/Search/Search.css +1 -1
- package/dist/es/components/Search/Search.d.ts +0 -2
- package/dist/es/components/Search/Search.js +58 -61
- package/dist/es/components/Select/Select.css +1 -1
- package/dist/es/components/Select/Select.d.ts +3 -19
- package/dist/es/components/Select/Select.js +23 -86
- package/dist/es/components/Select/reducer/selectReducer.js +1 -1
- package/dist/es/components/Sliders/Slider/Slider.css +1 -1
- package/dist/es/components/Sliders/Slider/Slider.d.ts +12 -0
- package/dist/es/components/Sliders/Slider/Slider.js +26 -7
- package/dist/es/components/Sliders/SliderRange/SliderRange.d.ts +3 -0
- package/dist/es/components/Sliders/SliderRange/SliderRange.js +4 -1
- package/dist/es/components/Sliders/components/SliderScale/SliderScale.css +1 -1
- package/dist/es/components/Sliders/components/SliderScale/SliderScale.d.ts +6 -0
- package/dist/es/components/Sliders/components/SliderScale/SliderScale.js +8 -1
- package/dist/es/components/Sliders/helpers.d.ts +1 -0
- package/dist/es/components/Sliders/helpers.js +7 -0
- package/dist/es/components/Snackbar/Snackbar.css +1 -1
- package/dist/es/components/TextField/TextField.css +1 -1
- package/dist/es/components/UploadForm/UploadField/UploadField.d.ts +1 -1
- package/dist/es/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.css +1 -1
- package/dist/es/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.d.ts +1 -1
- package/dist/es/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.js +21 -3
- package/dist/es/components/UploadForm/UploadFileItem/UploadFileItem.css +1 -1
- package/dist/es/components/UploadForm/UploadFileItem/UploadFileItem.d.ts +3 -1
- package/dist/es/components/UploadForm/UploadFileItem/UploadFileItem.js +6 -2
- package/dist/es/index.d.ts +1 -0
- package/dist/es/index.js +1 -0
- package/dist/lib/components/Accordion/Accordion.d.ts +3 -1
- package/dist/lib/components/Accordion/Accordion.js +2 -0
- package/dist/lib/components/Badges/InfoBadge/InfoBadge.css +1 -0
- package/dist/lib/components/Badges/InfoBadge/InfoBadge.d.ts +52 -0
- package/dist/lib/components/Badges/InfoBadge/InfoBadge.js +223 -0
- package/dist/lib/components/Badges/PriceBadge/PriceBadge.d.ts +1 -0
- package/dist/lib/components/Badges/PriceBadge/PriceBadge.js +30 -1
- package/dist/lib/components/Badges/PromoBadge/PromoBadge.d.ts +0 -11
- package/dist/lib/components/Badges/PromoBadge/PromoBadge.js +5 -16
- package/dist/lib/components/Chips/ChipsSuggest/ChipSuggest.css +1 -1
- package/dist/lib/components/Dropdown/Dropdown.css +1 -1
- package/dist/lib/components/Dropdown/Dropdown.d.ts +3 -1
- package/dist/lib/components/Dropdown/Dropdown.js +8 -21
- package/dist/lib/components/Modal/Modal.css +1 -1
- package/dist/lib/components/Modal/_ModalContent/ModalContent.js +1 -4
- package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +3 -18
- package/dist/lib/components/Pagination/Pagination.css +1 -1
- package/dist/lib/components/Pagination/Pagination.d.ts +1 -3
- package/dist/lib/components/Pagination/Pagination.js +4 -13
- package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.css +1 -1
- package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.d.ts +1 -2
- package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.js +0 -2
- package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.css +1 -1
- package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +1 -3
- package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.js +5 -16
- package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +1 -2
- package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +0 -2
- package/dist/lib/components/Pagination/types.d.ts +1 -11
- package/dist/lib/components/Pagination/types.js +1 -6
- package/dist/lib/components/Pagination/usePagination.d.ts +2 -2
- package/dist/lib/components/Pagination/usePagination.js +11 -29
- package/dist/lib/components/Parameter/Parameter.d.ts +0 -3
- package/dist/lib/components/Parameter/Parameter.js +0 -3
- package/dist/lib/components/Search/Search.css +1 -1
- package/dist/lib/components/Search/Search.d.ts +0 -2
- package/dist/lib/components/Search/Search.js +58 -61
- package/dist/lib/components/Select/Select.css +1 -1
- package/dist/lib/components/Select/Select.d.ts +3 -19
- package/dist/lib/components/Select/Select.js +23 -86
- package/dist/lib/components/Select/reducer/selectReducer.js +1 -1
- package/dist/lib/components/Sliders/Slider/Slider.css +1 -1
- package/dist/lib/components/Sliders/Slider/Slider.d.ts +12 -0
- package/dist/lib/components/Sliders/Slider/Slider.js +25 -6
- package/dist/lib/components/Sliders/SliderRange/SliderRange.d.ts +3 -0
- package/dist/lib/components/Sliders/SliderRange/SliderRange.js +4 -1
- package/dist/lib/components/Sliders/components/SliderScale/SliderScale.css +1 -1
- package/dist/lib/components/Sliders/components/SliderScale/SliderScale.d.ts +6 -0
- package/dist/lib/components/Sliders/components/SliderScale/SliderScale.js +9 -2
- package/dist/lib/components/Sliders/helpers.d.ts +1 -0
- package/dist/lib/components/Sliders/helpers.js +8 -1
- package/dist/lib/components/Snackbar/Snackbar.css +1 -1
- package/dist/lib/components/TextField/TextField.css +1 -1
- package/dist/lib/components/UploadForm/UploadField/UploadField.d.ts +1 -1
- package/dist/lib/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.css +1 -1
- package/dist/lib/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.d.ts +1 -1
- package/dist/lib/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.js +21 -3
- package/dist/lib/components/UploadForm/UploadFileItem/UploadFileItem.css +1 -1
- package/dist/lib/components/UploadForm/UploadFileItem/UploadFileItem.d.ts +3 -1
- package/dist/lib/components/UploadForm/UploadFileItem/UploadFileItem.js +6 -2
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +7 -0
- package/package.json +3 -3
|
@@ -6,8 +6,10 @@ export interface IAccordionProps {
|
|
|
6
6
|
rootRef?: React.Ref<HTMLDivElement>;
|
|
7
7
|
/** Заголовок */
|
|
8
8
|
title: string | React.ReactNode | React.ReactNode[];
|
|
9
|
-
/**
|
|
9
|
+
/** Тег заголовка (определяет базовый тег и стили) */
|
|
10
10
|
titleTag?: IHeaderProps['as'];
|
|
11
|
+
/** Тег заголовка для семантической разметки (переопределение тега без изменения стилей) */
|
|
12
|
+
titleTagName?: IHeaderProps['tag'];
|
|
11
13
|
/** Состояние открытости */
|
|
12
14
|
isOpened?: boolean;
|
|
13
15
|
/** Включить микроразметку */
|
|
@@ -20,6 +20,7 @@ var Accordion = function Accordion(_ref) {
|
|
|
20
20
|
title = _ref.title,
|
|
21
21
|
_ref$titleTag = _ref.titleTag,
|
|
22
22
|
titleTag = _ref$titleTag === void 0 ? 'h5' : _ref$titleTag,
|
|
23
|
+
titleTagName = _ref.titleTagName,
|
|
23
24
|
_ref$isOpened = _ref.isOpened,
|
|
24
25
|
isOpened = _ref$isOpened === void 0 ? false : _ref$isOpened,
|
|
25
26
|
_ref$hasMicrodata = _ref.hasMicrodata,
|
|
@@ -81,6 +82,7 @@ var Accordion = function Accordion(_ref) {
|
|
|
81
82
|
itemProp: 'name'
|
|
82
83
|
}), /*#__PURE__*/React.createElement(Header, {
|
|
83
84
|
as: titleTag,
|
|
85
|
+
tag: titleTagName,
|
|
84
86
|
dataAttrs: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.header,
|
|
85
87
|
className: titlePropsClasses
|
|
86
88
|
}, title), /*#__PURE__*/React.createElement("div", {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-info-badge{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;line-height:18px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:8px;font-weight:500;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:2px 8px 2px 2px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media screen and (min-width:1024px){.mfui-9-info-badge_adaptive{border-radius:12px;font-size:15px;line-height:24px;min-height:32px;padding:4px 8px 4px 4px}}.mfui-9-info-badge_theme_grey{background-color:var(--spbSky0)}.mfui-9-info-badge_theme_grey .mfui-9-info-badge__text{color:var(--spbSky3)}.mfui-9-info-badge_theme_grey .mfui-9-info-badge__icon{fill:var(--spbSky3)}.mfui-9-info-badge_theme_orange{background-color:var(--137C20)}.mfui-9-info-badge_theme_orange .mfui-9-info-badge__text{color:var(--137C)}.mfui-9-info-badge_theme_orange .mfui-9-info-badge__icon{fill:var(--137C)}.mfui-9-info-badge_theme_green{background-color:var(--brandGreen20)}.mfui-9-info-badge_theme_green .mfui-9-info-badge__text{color:var(--brandGreen)}.mfui-9-info-badge_theme_green .mfui-9-info-badge__icon{fill:var(--brandGreen)}.mfui-9-info-badge_theme_purple{background-color:var(--brandPurple80)}.mfui-9-info-badge_theme_purple .mfui-9-info-badge__text{color:var(--stcWhite)}.mfui-9-info-badge_theme_purple .mfui-9-info-badge__icon{fill:var(--stcWhite)}.mfui-9-info-badge_theme_red{background-color:var(--fury20)}.mfui-9-info-badge_theme_red .mfui-9-info-badge__text{color:var(--fury)}.mfui-9-info-badge_theme_red .mfui-9-info-badge__icon{fill:var(--fury)}.mfui-9-info-badge_theme_light{background-color:var(--stcWhite20)}.mfui-9-info-badge_theme_dark{background-color:var(--stcBlack20)}.mfui-9-info-badge_theme_dark .mfui-9-info-badge__text,.mfui-9-info-badge_theme_light .mfui-9-info-badge__text{color:var(--stcWhite);font-weight:400}.mfui-9-info-badge_theme_dark .mfui-9-info-badge__icon,.mfui-9-info-badge_theme_light .mfui-9-info-badge__icon{fill:var(--stcWhite)}.mfui-9-info-badge_theme_white-gray,.mfui-9-info-badge_theme_white-green,.mfui-9-info-badge_theme_white-orange,.mfui-9-info-badge_theme_white-red{background-color:var(--base)}.mfui-9-info-badge_theme_white-green .mfui-9-info-badge__text{color:var(--brandGreen)}.mfui-9-info-badge_theme_white-green .mfui-9-info-badge__icon{fill:var(--brandGreen)}.mfui-9-info-badge_theme_white-orange .mfui-9-info-badge__text{color:var(--137C)}.mfui-9-info-badge_theme_white-orange .mfui-9-info-badge__icon{fill:var(--137C)}.mfui-9-info-badge_theme_white-gray .mfui-9-info-badge__text{color:var(--spbSky3)}.mfui-9-info-badge_theme_white-gray .mfui-9-info-badge__icon{fill:var(--spbSky3)}.mfui-9-info-badge_theme_white-red .mfui-9-info-badge__text{color:var(--fury)}.mfui-9-info-badge_theme_white-red .mfui-9-info-badge__icon{fill:var(--fury)}.mfui-9-info-badge_size_big{border-radius:16px;font-size:15px;line-height:18px;padding:12px 12px 12px 4px}.mfui-9-info-badge__text{font-family:inherit;margin-left:2px}.mfui-9-info-badge__icon-container{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-9-info-badge__icon{height:20px;min-width:20px;width:20px}.mfui-9-info-badge_size_big .mfui-9-info-badge__icon{height:32px;min-width:32px;width:32px}.mfui-9-info-badge_size_big .mfui-9-info-badge__sub-title{font-size:12px;line-height:18px;margin-top:2px}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './InfoBadge.scss';
|
|
3
|
+
export declare const InfoBadgeTheme: {
|
|
4
|
+
readonly RED: "red";
|
|
5
|
+
readonly GREY: "grey";
|
|
6
|
+
readonly GREEN: "green";
|
|
7
|
+
readonly ORANGE: "orange";
|
|
8
|
+
readonly LIGHT: "light";
|
|
9
|
+
readonly DARK: "dark";
|
|
10
|
+
readonly PURPLE: "purple";
|
|
11
|
+
readonly WHITE_GREEN: "white-green";
|
|
12
|
+
readonly WHITE_ORANGE: "white-orange";
|
|
13
|
+
readonly WHITE_GRAY: "white-gray";
|
|
14
|
+
readonly WHITE_RED: "white-red";
|
|
15
|
+
};
|
|
16
|
+
export declare const InfoBadgeIcon: {
|
|
17
|
+
readonly TIMER: "timer";
|
|
18
|
+
readonly PRICE: "price";
|
|
19
|
+
readonly CHECK: "check";
|
|
20
|
+
readonly ATTENTION: "attention";
|
|
21
|
+
readonly INFO: "info";
|
|
22
|
+
readonly PROFILE: "profile";
|
|
23
|
+
readonly BAN: "ban";
|
|
24
|
+
};
|
|
25
|
+
export declare const InfoBadgeSize: {
|
|
26
|
+
readonly SMALL: "small";
|
|
27
|
+
readonly BIG: "big";
|
|
28
|
+
};
|
|
29
|
+
type InfoBadgeThemeType = (typeof InfoBadgeTheme)[keyof typeof InfoBadgeTheme];
|
|
30
|
+
type InfoBadgeIconType = (typeof InfoBadgeIcon)[keyof typeof InfoBadgeIcon];
|
|
31
|
+
type InfoBadgeSizeType = (typeof InfoBadgeSize)[keyof typeof InfoBadgeSize];
|
|
32
|
+
export interface IInfoBadgeProps {
|
|
33
|
+
/** Адаптивный режим */
|
|
34
|
+
isAdaptive?: boolean;
|
|
35
|
+
/** Тип иконки */
|
|
36
|
+
iconType?: InfoBadgeIconType;
|
|
37
|
+
/** Цветовая тема */
|
|
38
|
+
theme?: InfoBadgeThemeType;
|
|
39
|
+
/** Дополнительный класс корневого элемента */
|
|
40
|
+
className?: string;
|
|
41
|
+
/** Размер бейджа */
|
|
42
|
+
size?: InfoBadgeSizeType;
|
|
43
|
+
/** Дополнительный текст (только для size="big") */
|
|
44
|
+
subTitle?: string;
|
|
45
|
+
/** Дополнительные data-атрибуты к внутренним элементам */
|
|
46
|
+
dataAttrs?: {
|
|
47
|
+
root?: Record<string, string>;
|
|
48
|
+
};
|
|
49
|
+
children: JSX.Element[] | Element[] | JSX.Element | Element | string;
|
|
50
|
+
}
|
|
51
|
+
declare const InfoBadge: React.FC<IInfoBadgeProps>;
|
|
52
|
+
export default InfoBadge;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
|
+
import "./InfoBadge.css";
|
|
5
|
+
var ProfileIcon = function ProfileIcon(props) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
7
|
+
viewBox: "0 0 20 20"
|
|
8
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
9
|
+
d: "M5.22 18h9.55L16 13.47A8.28 8.28 0 0010 11a8.302 8.302 0 00-6 2.5L5.22 18zM14 6a4 4 0 10-8 0 4 4 0 008 0z"
|
|
10
|
+
}));
|
|
11
|
+
};
|
|
12
|
+
var ProfileIconBig = function ProfileIconBig(props) {
|
|
13
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
14
|
+
viewBox: "0 0 32 32"
|
|
15
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
16
|
+
d: "M23 28l2-7.43-.32-.31A12.67 12.67 0 0016 17a12.68 12.68 0 00-8.68 3.27l-.32.3L9 28h14zM10 9a6 6 0 1012 0 6 6 0 00-12 0z"
|
|
17
|
+
}));
|
|
18
|
+
};
|
|
19
|
+
var AttentionIcon = function AttentionIcon(props) {
|
|
20
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
21
|
+
viewBox: "0 0 20 20"
|
|
22
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
23
|
+
d: "M10 2c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 13c.3 0 .5-.1.7-.3.2-.2.3-.4.3-.7s-.1-.5-.3-.7c-.2-.2-.5-.3-.7-.3s-.5.1-.7.3c-.2.2-.3.4-.3.7s.1.5.3.7.5.3.7.3zM9 5v6h2V5H9z"
|
|
24
|
+
}));
|
|
25
|
+
};
|
|
26
|
+
var BanIcon = function BanIcon(props) {
|
|
27
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
28
|
+
viewBox: "0 0 20 20"
|
|
29
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
30
|
+
d: "M12.172 13.056a3.75 3.75 0 01-5.229-5.228l5.229 5.228zM10 6.25a3.75 3.75 0 013.056 5.922L7.827 6.943A3.733 3.733 0 0110 6.25z"
|
|
31
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
32
|
+
fillRule: "evenodd",
|
|
33
|
+
clipRule: "evenodd",
|
|
34
|
+
d: "M10 2a8 8 0 110 16 8 8 0 010-16zm0 3a5 5 0 100 10 5 5 0 000-10z"
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
var CheckIcon = function CheckIcon(props) {
|
|
38
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
39
|
+
viewBox: "0 0 20 20"
|
|
40
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
41
|
+
fillRule: "evenodd",
|
|
42
|
+
clipRule: "evenodd",
|
|
43
|
+
d: "M10 18a8 8 0 100-16 8 8 0 000 16zM7.295 9.467l1.77 1.77 3.66-5.22 1.31.918-4.745 6.79-3.126-3.127 1.131-1.13z"
|
|
44
|
+
}));
|
|
45
|
+
};
|
|
46
|
+
var InfoIcon = function InfoIcon(props) {
|
|
47
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
48
|
+
viewBox: "0 0 20 20"
|
|
49
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
50
|
+
d: "M10 2c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 5c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1zm1 8V9H9v6h2z"
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
var PriceIcon = function PriceIcon(props) {
|
|
54
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
55
|
+
viewBox: "0 0 20 20"
|
|
56
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
57
|
+
fillRule: "evenodd",
|
|
58
|
+
clipRule: "evenodd",
|
|
59
|
+
d: "M10 18a8 8 0 100-16 8 8 0 000 16zM7.75 5.75H11a2.75 2.75 0 010 5.5H9.25V12h3v1.5h-3v1.75h-1.5V13.5h-1V12h1v-.75h-1v-1.5h1v-4zM11 7.25H9.25v2.5H11a1.25 1.25 0 000-2.5z"
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
62
|
+
var TimerIcon = function TimerIcon(props) {
|
|
63
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
64
|
+
viewBox: "0 0 20 20"
|
|
65
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
66
|
+
fillRule: "evenodd",
|
|
67
|
+
clipRule: "evenodd",
|
|
68
|
+
d: "M10 18a8 8 0 100-16 8 8 0 000 16zm1-8.414V5H9v5.414l3 3L13.414 12 11 9.586z"
|
|
69
|
+
}));
|
|
70
|
+
};
|
|
71
|
+
var AttentionIconBig = function AttentionIconBig(props) {
|
|
72
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
73
|
+
viewBox: "0 0 32 32"
|
|
74
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
75
|
+
d: "M16 4C9.4 4 4 9.4 4 16s5.4 12 12 12 12-5.4 12-12S22.6 4 16 4zm1 18h-2v-2h2v2zm0-4h-2v-8h2v8z"
|
|
76
|
+
}));
|
|
77
|
+
};
|
|
78
|
+
var BanIconBig = function BanIconBig(props) {
|
|
79
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
80
|
+
viewBox: "0 0 32 32"
|
|
81
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
82
|
+
d: "M19.475 20.89a6 6 0 01-8.365-8.365l8.365 8.365zM16 10a6 6 0 014.89 9.475l-8.366-8.366A5.972 5.972 0 0116 10z"
|
|
83
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
84
|
+
fillRule: "evenodd",
|
|
85
|
+
clipRule: "evenodd",
|
|
86
|
+
d: "M16 4c6.627 0 12 5.373 12 12s-5.373 12-12 12S4 22.627 4 16 9.373 4 16 4zm0 4a8 8 0 100 16 8 8 0 000-16z"
|
|
87
|
+
}));
|
|
88
|
+
};
|
|
89
|
+
var CheckIconBig = function CheckIconBig(props) {
|
|
90
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
91
|
+
viewBox: "0 0 32 32"
|
|
92
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
93
|
+
fillRule: "evenodd",
|
|
94
|
+
clipRule: "evenodd",
|
|
95
|
+
d: "M16 28c6.627 0 12-5.373 12-12S22.627 4 16 4 4 9.373 4 16s5.373 12 12 12zm-1.306-10.016l6.32-7.672 1.486 1.37s-7.538 9.186-7.7 9.193c-.136 0-4.488-4.484-4.488-4.484l1.438-1.425 2.944 3.018z"
|
|
96
|
+
}));
|
|
97
|
+
};
|
|
98
|
+
var InfoIconBig = function InfoIconBig(props) {
|
|
99
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
100
|
+
viewBox: "0 0 32 32"
|
|
101
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
102
|
+
d: "M16 4C9.4 4 4 9.4 4 16s5.4 12 12 12 12-5.4 12-12S22.6 4 16 4zm1 18h-2v-8h2v8zm0-10h-2v-2h2v2z"
|
|
103
|
+
}));
|
|
104
|
+
};
|
|
105
|
+
var PriceIconBig = function PriceIconBig(props) {
|
|
106
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
107
|
+
viewBox: "0 0 32 32"
|
|
108
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
109
|
+
fillRule: "evenodd",
|
|
110
|
+
clipRule: "evenodd",
|
|
111
|
+
d: "M16 28c6.627 0 12-5.373 12-12S22.627 4 16 4 4 9.373 4 16s5.373 12 12 12zm-5-7v-2h2v-2h-2v-2h2V9h4a4 4 0 110 8h-2v2h4v2h-4v2h-2v-2h-2zm7.414-9.414A2 2 0 0017 11h-2v4h2a2 2 0 001.414-3.414z"
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
114
|
+
var TimerIconBig = function TimerIconBig(props) {
|
|
115
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
116
|
+
viewBox: "0 0 32 32"
|
|
117
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
118
|
+
fillRule: "evenodd",
|
|
119
|
+
clipRule: "evenodd",
|
|
120
|
+
d: "M16 28c6.627 0 12-5.373 12-12S22.627 4 16 4 4 9.373 4 16s5.373 12 12 12zm1-12.414V9h-2v7.414l4 4L20.414 19 17 15.586z"
|
|
121
|
+
}));
|
|
122
|
+
};
|
|
123
|
+
export var InfoBadgeTheme = {
|
|
124
|
+
RED: 'red',
|
|
125
|
+
GREY: 'grey',
|
|
126
|
+
GREEN: 'green',
|
|
127
|
+
ORANGE: 'orange',
|
|
128
|
+
LIGHT: 'light',
|
|
129
|
+
DARK: 'dark',
|
|
130
|
+
PURPLE: 'purple',
|
|
131
|
+
WHITE_GREEN: 'white-green',
|
|
132
|
+
WHITE_ORANGE: 'white-orange',
|
|
133
|
+
WHITE_GRAY: 'white-gray',
|
|
134
|
+
WHITE_RED: 'white-red'
|
|
135
|
+
};
|
|
136
|
+
export var InfoBadgeIcon = {
|
|
137
|
+
TIMER: 'timer',
|
|
138
|
+
PRICE: 'price',
|
|
139
|
+
CHECK: 'check',
|
|
140
|
+
ATTENTION: 'attention',
|
|
141
|
+
INFO: 'info',
|
|
142
|
+
PROFILE: 'profile',
|
|
143
|
+
BAN: 'ban'
|
|
144
|
+
};
|
|
145
|
+
export var InfoBadgeSize = {
|
|
146
|
+
SMALL: 'small',
|
|
147
|
+
BIG: 'big'
|
|
148
|
+
};
|
|
149
|
+
var getInfoBadgeIcon = function getInfoBadgeIcon(iconType, size) {
|
|
150
|
+
var isBigIcon = size === InfoBadgeSize.BIG;
|
|
151
|
+
switch (true) {
|
|
152
|
+
case iconType === InfoBadgeIcon.TIMER && isBigIcon:
|
|
153
|
+
return TimerIconBig;
|
|
154
|
+
case iconType === InfoBadgeIcon.PRICE && isBigIcon:
|
|
155
|
+
return PriceIconBig;
|
|
156
|
+
case iconType === InfoBadgeIcon.CHECK && isBigIcon:
|
|
157
|
+
return CheckIconBig;
|
|
158
|
+
case iconType === InfoBadgeIcon.ATTENTION && isBigIcon:
|
|
159
|
+
return AttentionIconBig;
|
|
160
|
+
case iconType === InfoBadgeIcon.INFO && isBigIcon:
|
|
161
|
+
return InfoIconBig;
|
|
162
|
+
case iconType === InfoBadgeIcon.PROFILE && isBigIcon:
|
|
163
|
+
return ProfileIconBig;
|
|
164
|
+
case iconType === InfoBadgeIcon.BAN && isBigIcon:
|
|
165
|
+
return BanIconBig;
|
|
166
|
+
case iconType === InfoBadgeIcon.PRICE:
|
|
167
|
+
return PriceIcon;
|
|
168
|
+
case iconType === InfoBadgeIcon.CHECK:
|
|
169
|
+
return CheckIcon;
|
|
170
|
+
case iconType === InfoBadgeIcon.ATTENTION:
|
|
171
|
+
return AttentionIcon;
|
|
172
|
+
case iconType === InfoBadgeIcon.INFO:
|
|
173
|
+
return InfoIcon;
|
|
174
|
+
case iconType === InfoBadgeIcon.PROFILE:
|
|
175
|
+
return ProfileIcon;
|
|
176
|
+
case iconType === InfoBadgeIcon.BAN:
|
|
177
|
+
return BanIcon;
|
|
178
|
+
default:
|
|
179
|
+
return TimerIcon;
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
var cn = cnCreate('mfui-9-info-badge');
|
|
183
|
+
var InfoBadge = function InfoBadge(_ref) {
|
|
184
|
+
var _ref$iconType = _ref.iconType,
|
|
185
|
+
iconType = _ref$iconType === void 0 ? 'timer' : _ref$iconType,
|
|
186
|
+
_ref$isAdaptive = _ref.isAdaptive,
|
|
187
|
+
isAdaptive = _ref$isAdaptive === void 0 ? false : _ref$isAdaptive,
|
|
188
|
+
_ref$theme = _ref.theme,
|
|
189
|
+
theme = _ref$theme === void 0 ? 'grey' : _ref$theme,
|
|
190
|
+
_ref$size = _ref.size,
|
|
191
|
+
size = _ref$size === void 0 ? 'small' : _ref$size,
|
|
192
|
+
subTitle = _ref.subTitle,
|
|
193
|
+
className = _ref.className,
|
|
194
|
+
dataAttrs = _ref.dataAttrs,
|
|
195
|
+
children = _ref.children;
|
|
196
|
+
var Icon = getInfoBadgeIcon(iconType, size);
|
|
197
|
+
var showSubTitle = size === 'big' && !!subTitle;
|
|
198
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
199
|
+
className: cn({
|
|
200
|
+
theme: theme,
|
|
201
|
+
adaptive: isAdaptive,
|
|
202
|
+
size: size
|
|
203
|
+
}, className)
|
|
204
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
205
|
+
className: cn('icon-container')
|
|
206
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
207
|
+
className: cn('icon')
|
|
208
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
209
|
+
className: cn('text')
|
|
210
|
+
}, /*#__PURE__*/React.createElement("div", null, children), showSubTitle && /*#__PURE__*/React.createElement("div", {
|
|
211
|
+
className: cn('sub-title')
|
|
212
|
+
}, subTitle)));
|
|
213
|
+
};
|
|
214
|
+
export default InfoBadge;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
// TODO удалить папку с компонентом после релиза UI-219 и заменить в компоненте PromoCard PriceBadge на InfoBadge
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
5
|
import "./PriceBadge.css";
|
|
@@ -23,6 +24,17 @@ var AttentionIcon = function AttentionIcon(props) {
|
|
|
23
24
|
d: "M10 2c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 13c.3 0 .5-.1.7-.3.2-.2.3-.4.3-.7s-.1-.5-.3-.7c-.2-.2-.5-.3-.7-.3s-.5.1-.7.3c-.2.2-.3.4-.3.7s.1.5.3.7.5.3.7.3zM9 5v6h2V5H9z"
|
|
24
25
|
}));
|
|
25
26
|
};
|
|
27
|
+
var BanIcon = function BanIcon(props) {
|
|
28
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
29
|
+
viewBox: "0 0 20 20"
|
|
30
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
31
|
+
d: "M12.172 13.056a3.75 3.75 0 01-5.229-5.228l5.229 5.228zM10 6.25a3.75 3.75 0 013.056 5.922L7.827 6.943A3.733 3.733 0 0110 6.25z"
|
|
32
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
33
|
+
fillRule: "evenodd",
|
|
34
|
+
clipRule: "evenodd",
|
|
35
|
+
d: "M10 2a8 8 0 110 16 8 8 0 010-16zm0 3a5 5 0 100 10 5 5 0 000-10z"
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
26
38
|
var CheckIcon = function CheckIcon(props) {
|
|
27
39
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
28
40
|
viewBox: "0 0 20 20"
|
|
@@ -64,6 +76,17 @@ var AttentionIconBig = function AttentionIconBig(props) {
|
|
|
64
76
|
d: "M16 4C9.4 4 4 9.4 4 16s5.4 12 12 12 12-5.4 12-12S22.6 4 16 4zm1 18h-2v-2h2v2zm0-4h-2v-8h2v8z"
|
|
65
77
|
}));
|
|
66
78
|
};
|
|
79
|
+
var BanIconBig = function BanIconBig(props) {
|
|
80
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
81
|
+
viewBox: "0 0 32 32"
|
|
82
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
83
|
+
d: "M19.475 20.89a6 6 0 01-8.365-8.365l8.365 8.365zM16 10a6 6 0 014.89 9.475l-8.366-8.366A5.972 5.972 0 0116 10z"
|
|
84
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
85
|
+
fillRule: "evenodd",
|
|
86
|
+
clipRule: "evenodd",
|
|
87
|
+
d: "M16 4c6.627 0 12 5.373 12 12s-5.373 12-12 12S4 22.627 4 16 9.373 4 16 4zm0 4a8 8 0 100 16 8 8 0 000-16z"
|
|
88
|
+
}));
|
|
89
|
+
};
|
|
67
90
|
var CheckIconBig = function CheckIconBig(props) {
|
|
68
91
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
69
92
|
viewBox: "0 0 32 32"
|
|
@@ -113,7 +136,8 @@ export var PriceBadgeIcon = {
|
|
|
113
136
|
CHECK: 'check',
|
|
114
137
|
ATTENTION: 'attention',
|
|
115
138
|
INFO: 'info',
|
|
116
|
-
PROFILE: 'profile'
|
|
139
|
+
PROFILE: 'profile',
|
|
140
|
+
BAN: 'ban'
|
|
117
141
|
};
|
|
118
142
|
export var PriseBadgeSize = {
|
|
119
143
|
SMALL: 'small',
|
|
@@ -134,6 +158,8 @@ var getPriceBadgeIcon = function getPriceBadgeIcon(iconType, size) {
|
|
|
134
158
|
return InfoIconBig;
|
|
135
159
|
case iconType === PriceBadgeIcon.PROFILE && isBigIcon:
|
|
136
160
|
return ProfileIconBig;
|
|
161
|
+
case iconType === PriceBadgeIcon.BAN && isBigIcon:
|
|
162
|
+
return BanIconBig;
|
|
137
163
|
case iconType === PriceBadgeIcon.PRICE:
|
|
138
164
|
return PriceIcon;
|
|
139
165
|
case iconType === PriceBadgeIcon.CHECK:
|
|
@@ -144,6 +170,8 @@ var getPriceBadgeIcon = function getPriceBadgeIcon(iconType, size) {
|
|
|
144
170
|
return InfoIcon;
|
|
145
171
|
case iconType === PriceBadgeIcon.PROFILE:
|
|
146
172
|
return ProfileIcon;
|
|
173
|
+
case iconType === PriceBadgeIcon.BAN:
|
|
174
|
+
return BanIcon;
|
|
147
175
|
default:
|
|
148
176
|
return TimerIcon;
|
|
149
177
|
}
|
|
@@ -15,22 +15,11 @@ export declare const PromoBadgeSize: {
|
|
|
15
15
|
readonly MEDIUM: "medium";
|
|
16
16
|
};
|
|
17
17
|
type PromoBadgeSizeType = (typeof PromoBadgeSize)[keyof typeof PromoBadgeSize];
|
|
18
|
-
export declare const PromoBadgeTypes: {
|
|
19
|
-
readonly HIT: "hit";
|
|
20
|
-
readonly NEW: "new";
|
|
21
|
-
readonly VIP: "vip";
|
|
22
|
-
readonly POPULAR: "popular";
|
|
23
|
-
readonly USER_CHOICE: "user-choice";
|
|
24
|
-
readonly INTERESTS: "interests";
|
|
25
|
-
};
|
|
26
|
-
type PromoBadgeTypesType = (typeof PromoBadgeTypes)[keyof typeof PromoBadgeTypes];
|
|
27
18
|
export interface IPromoBadgeProps {
|
|
28
19
|
/** Цвет промо-бэйджа */
|
|
29
20
|
color?: PromoBadgeColorsType;
|
|
30
21
|
/** Размер промо-бэйджа */
|
|
31
22
|
size?: PromoBadgeSizeType;
|
|
32
|
-
/** DEPRECATED Тип промо-бэйджа (Используйте проп `color`) */
|
|
33
|
-
type?: PromoBadgeTypesType;
|
|
34
23
|
/** Дополнительный класс корневого элемента */
|
|
35
24
|
className?: string;
|
|
36
25
|
/** Дополнительные data-атрибуты к внутренним элементам */
|
|
@@ -15,30 +15,19 @@ export var PromoBadgeSize = {
|
|
|
15
15
|
SMALL: 'small',
|
|
16
16
|
MEDIUM: 'medium'
|
|
17
17
|
};
|
|
18
|
-
// DEPRECATED
|
|
19
|
-
export var PromoBadgeTypes = {
|
|
20
|
-
HIT: 'hit',
|
|
21
|
-
NEW: 'new',
|
|
22
|
-
VIP: 'vip',
|
|
23
|
-
POPULAR: 'popular',
|
|
24
|
-
USER_CHOICE: 'user-choice',
|
|
25
|
-
INTERESTS: 'interests'
|
|
26
|
-
};
|
|
27
18
|
var cn = cnCreate('mfui-9-promo-badge');
|
|
28
19
|
var PromoBadge = function PromoBadge(_ref) {
|
|
29
|
-
var color = _ref.color,
|
|
20
|
+
var _ref$color = _ref.color,
|
|
21
|
+
color = _ref$color === void 0 ? PromoBadgeColors.SKY : _ref$color,
|
|
30
22
|
_ref$size = _ref.size,
|
|
31
|
-
size = _ref$size === void 0 ?
|
|
32
|
-
_ref$type = _ref.type,
|
|
33
|
-
type = _ref$type === void 0 ? PromoBadgeTypes.HIT : _ref$type,
|
|
23
|
+
size = _ref$size === void 0 ? PromoBadgeSize.MEDIUM : _ref$size,
|
|
34
24
|
className = _ref.className,
|
|
35
25
|
children = _ref.children,
|
|
36
26
|
dataAttrs = _ref.dataAttrs;
|
|
37
27
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
38
28
|
className: cn({
|
|
39
29
|
color: color,
|
|
40
|
-
size: size
|
|
41
|
-
type: color ? undefined : type
|
|
30
|
+
size: size
|
|
42
31
|
}, className)
|
|
43
32
|
}), /*#__PURE__*/React.createElement("span", {
|
|
44
33
|
className: cn('text')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-chip-suggest{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;font-size:15px;font-weight:500;line-height:24px;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);cursor:pointer;outline:none;overflow:hidden;padding:11px 20px;text-align:center;text-decoration:none;-webkit-transition:background-color .3s,color .3s;transition:background-color .3s,color .3s;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mfui-9-chip-suggest svg{-webkit-transition:fill .3s;transition:fill .3s;fill:var(--content)}@media screen and (max-width:767px){.mfui-9-chip-suggest{padding:7px 12px}}.mfui-9-chip-suggest:hover{background-color:var(--spbSky1)}.mfui-9-chip-suggest:active{background-color:var(--spbSky2)}.mfui-9-chip-suggest__inner{overflow:hidden;white-space:nowrap}.mfui-9-chip-suggest__icon{display:block;margin-right:6px;max-height:20px;min-width:20px;width:20px}.mfui-9-chip-suggest__icon svg{display:block;height:100%;width:100%}@media screen and (max-width:767px){.mfui-9-chip-suggest__icon{margin-right:4px}}.mfui-9-chip-suggest_theme_white{background-color:var(--base)}.mfui-9-chip-suggest_theme_gray{background-color:var(--spbSky0)}.mfui-9-chip-suggest_with-icon{padding-left:12px}@media screen and (max-width:767px){.mfui-9-chip-suggest_with-icon{padding-left:8px}}
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-chip-suggest{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;font-size:15px;font-weight:500;line-height:24px;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--content);cursor:pointer;outline:none;overflow:hidden;padding:11px 20px;text-align:center;text-decoration:none;-webkit-transition:background-color .3s,color .3s;transition:background-color .3s,color .3s;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mfui-9-chip-suggest svg{-webkit-transition:fill .3s;transition:fill .3s;fill:var(--content)}@media screen and (max-width:767px){.mfui-9-chip-suggest{font-size:12px;line-height:18px;padding:7px 12px}}.mfui-9-chip-suggest:hover{background-color:var(--spbSky1)}.mfui-9-chip-suggest:active{background-color:var(--spbSky2)}.mfui-9-chip-suggest__inner{overflow:hidden;white-space:nowrap}.mfui-9-chip-suggest__icon{display:block;margin-right:6px;max-height:20px;min-width:20px;width:20px}.mfui-9-chip-suggest__icon svg{display:block;height:100%;width:100%}@media screen and (max-width:767px){.mfui-9-chip-suggest__icon{margin-right:4px}}.mfui-9-chip-suggest_theme_white{background-color:var(--base)}.mfui-9-chip-suggest_theme_gray{background-color:var(--spbSky0)}.mfui-9-chip-suggest_with-icon{padding-left:12px}@media screen and (max-width:767px){.mfui-9-chip-suggest_with-icon{padding-left:8px}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}@-webkit-keyframes dropdownAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes dropdownAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.mfui-9-dropdown{background-color:var(--base);border-radius:16px;-webkit-box-shadow:0 4px 16px rgba(0,0,0,.08);box-shadow:0 4px 16px rgba(0,0,0,.08);left:0;opacity:0;padding:16px;pointer-events:none;position:absolute;right:0;top:calc(100% + 8px);-webkit-transform:translateY(-25px);transform:translateY(-25px);-webkit-transition:opacity .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:opacity .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:opacity .3s ease-in-out,transform .3s ease-in-out;transition:opacity .3s ease-in-out,transform .3s ease-in-out,-webkit-transform .3s ease-in-out;z-index:1000}.mfui-9-dropdown_visible{opacity:1;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.mfui-9-dropdown_short .mfui-9-dropdown__list{max-height:200px}.mfui-9-dropdown__list{max-height:300px;overflow-y:auto;scrollbar-color:var(--spbSky2) transparent;scrollbar-width:thin}.mfui-9-dropdown__list::-webkit-scrollbar{width:8px}.mfui-9-dropdown__item{border-radius:8px;color:var(--content);cursor:pointer;padding:12px 32px;-webkit-transition:background-color .2s;transition:background-color .2s}.mfui-9-dropdown__item:hover,.mfui-9-dropdown__item_hovered{background-color:var(--spbSky0)}.mfui-9-dropdown__item_active{
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}@-webkit-keyframes dropdownAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes dropdownAppear{0%{opacity:0;-webkit-transform:translateY(-25px);transform:translateY(-25px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.mfui-9-dropdown{background-color:var(--base);border-radius:16px;-webkit-box-shadow:0 4px 16px rgba(0,0,0,.08);box-shadow:0 4px 16px rgba(0,0,0,.08);left:0;opacity:0;padding:16px;pointer-events:none;position:absolute;right:0;top:calc(100% + 8px);-webkit-transform:translateY(-25px);transform:translateY(-25px);-webkit-transition:opacity .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:opacity .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:opacity .3s ease-in-out,transform .3s ease-in-out;transition:opacity .3s ease-in-out,transform .3s ease-in-out,-webkit-transform .3s ease-in-out;z-index:1000}.mfui-9-dropdown_visible{opacity:1;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.mfui-9-dropdown_short .mfui-9-dropdown__list{max-height:200px}.mfui-9-dropdown__list{max-height:300px;overflow-y:auto;scrollbar-color:var(--spbSky2) transparent;scrollbar-width:thin}.mfui-9-dropdown__list::-webkit-scrollbar{width:8px}.mfui-9-dropdown__item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:8px;color:var(--content);cursor:pointer;padding:12px 32px;-webkit-transition:background-color .2s;transition:background-color .2s}.mfui-9-dropdown__item:hover,.mfui-9-dropdown__item_hovered{background-color:var(--spbSky0)}.mfui-9-dropdown__item_active{font-weight:500}.mfui-9-dropdown__item_paddings_small{padding:8px 12px}.mfui-9-dropdown__item_paddings_large{padding:16px 20px}.mfui-9-dropdown__empty{color:var(--spbSky3);padding:12px 16px;text-align:center}.mfui-9-dropdown_disabled{opacity:.5;pointer-events:none}
|
|
@@ -33,6 +33,8 @@ export interface IDropdownProps<T extends DropdownItemValueType> {
|
|
|
33
33
|
isOpen?: boolean;
|
|
34
34
|
/** Реф элемента, к которому привязывается дропдаун */
|
|
35
35
|
targetRef: React.RefObject<HTMLElement>;
|
|
36
|
+
/** Индекс выделенного элемента */
|
|
37
|
+
hoveredIndex?: number;
|
|
36
38
|
/** Текст при отсутствии элементов */
|
|
37
39
|
emptyText?: string;
|
|
38
40
|
/** Отключение компонента */
|
|
@@ -58,5 +60,5 @@ export interface IDropdownProps<T extends DropdownItemValueType> {
|
|
|
58
60
|
/** Обработчик закрытия списка */
|
|
59
61
|
onClose?: () => void;
|
|
60
62
|
}
|
|
61
|
-
declare const Dropdown: <T extends DropdownItemValueType>({ items, value, filterValue, isOpen, targetRef, emptyText, disabled, short, className, classes, dataAttrs, onItemClick, onClose, }: IDropdownProps<T>) => JSX.Element | null;
|
|
63
|
+
declare const Dropdown: <T extends DropdownItemValueType>({ items, value, filterValue, isOpen, hoveredIndex, targetRef, emptyText, disabled, short, className, classes, dataAttrs, onItemClick, onClose, }: IDropdownProps<T>) => JSX.Element | null;
|
|
62
64
|
export default Dropdown;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import "core-js/modules/es.array.find-index.js";
|
|
4
3
|
import "core-js/modules/es.array.map.js";
|
|
5
4
|
import * as React from 'react';
|
|
6
5
|
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
@@ -17,6 +16,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
17
16
|
filterValue = _ref.filterValue,
|
|
18
17
|
_ref$isOpen = _ref.isOpen,
|
|
19
18
|
isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
|
|
19
|
+
hoveredIndex = _ref.hoveredIndex,
|
|
20
20
|
targetRef = _ref.targetRef,
|
|
21
21
|
_ref$emptyText = _ref.emptyText,
|
|
22
22
|
emptyText = _ref$emptyText === void 0 ? 'Нет элементов' : _ref$emptyText,
|
|
@@ -30,14 +30,10 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
30
30
|
dataAttrs = _ref.dataAttrs,
|
|
31
31
|
onItemClick = _ref.onItemClick,
|
|
32
32
|
onClose = _ref.onClose;
|
|
33
|
-
var _React$useState = React.useState(
|
|
33
|
+
var _React$useState = React.useState(false),
|
|
34
34
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
var _React$useState3 = React.useState(false),
|
|
38
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
39
|
-
isVisible = _React$useState4[0],
|
|
40
|
-
setIsVisible = _React$useState4[1];
|
|
35
|
+
isVisible = _React$useState2[0],
|
|
36
|
+
setIsVisible = _React$useState2[1];
|
|
41
37
|
var dropdownRef = React.useRef(null);
|
|
42
38
|
var handleOutsideClick = React.useCallback(function (event) {
|
|
43
39
|
var target = event.target;
|
|
@@ -45,17 +41,9 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
45
41
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
46
42
|
}
|
|
47
43
|
}, [onClose, targetRef]);
|
|
48
|
-
var handleItemHover = function handleItemHover(index) {
|
|
49
|
-
return function () {
|
|
50
|
-
setHoveredIndex(index);
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
44
|
React.useEffect(function () {
|
|
54
45
|
if (isOpen) {
|
|
55
46
|
document.addEventListener('mousedown', handleOutsideClick);
|
|
56
|
-
setHoveredIndex(items.findIndex(function (item) {
|
|
57
|
-
return item.value === value;
|
|
58
|
-
}));
|
|
59
47
|
// Добавляем небольшую задержку перед показом для корректной анимации
|
|
60
48
|
requestAnimationFrame(function () {
|
|
61
49
|
setIsVisible(true);
|
|
@@ -92,7 +80,6 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
92
80
|
paddings: item.paddings
|
|
93
81
|
}, [classes.item]),
|
|
94
82
|
onClick: onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(index),
|
|
95
|
-
onMouseEnter: handleItemHover(index),
|
|
96
83
|
role: "option",
|
|
97
84
|
"aria-selected": isActive,
|
|
98
85
|
tabIndex: -1
|
|
@@ -101,16 +88,16 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
101
88
|
if (!isOpen) {
|
|
102
89
|
return null;
|
|
103
90
|
}
|
|
104
|
-
return /*#__PURE__*/React.createElement("div", _extends({
|
|
91
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
92
|
+
ref: dropdownRef,
|
|
105
93
|
className: cn({
|
|
106
94
|
visible: isVisible,
|
|
107
95
|
disabled: disabled,
|
|
108
96
|
"short": _short
|
|
109
97
|
}, [className, classes.root]),
|
|
110
98
|
role: "listbox",
|
|
111
|
-
tabIndex: 0
|
|
112
|
-
|
|
113
|
-
}), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.list), {
|
|
99
|
+
tabIndex: 0
|
|
100
|
+
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.list), {
|
|
114
101
|
className: cn('list', [classes.list])
|
|
115
102
|
}), items.length > 0 ? items.map(renderItem) : /*#__PURE__*/React.createElement("div", {
|
|
116
103
|
className: cn('empty')
|
|
@@ -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_full-view .mfui-9-modal__overlay{display:block;padding:0}.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
|
|
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_full-view .mfui-9-modal__overlay{display:block;padding:0}.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}}
|
|
@@ -161,10 +161,7 @@ var ModalContent = function ModalContent(_ref) {
|
|
|
161
161
|
className: cn('container-inner', {
|
|
162
162
|
'native-scroll': isEnabledNativeScroll
|
|
163
163
|
}, classes === null || classes === void 0 ? void 0 : classes.containerInner),
|
|
164
|
-
ref: containerInnerRef
|
|
165
|
-
onClick: function onClick(e) {
|
|
166
|
-
return e.stopPropagation();
|
|
167
|
-
}
|
|
164
|
+
ref: containerInnerRef
|
|
168
165
|
}), isStickyHeader && renderHeader, /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.containerBody), {
|
|
169
166
|
className: cn('container-body', {
|
|
170
167
|
'native-scroll': isEnabledNativeScroll
|
|
@@ -79,6 +79,7 @@ var ModalMobileBottom = function ModalMobileBottom(_a) {
|
|
|
79
79
|
});
|
|
80
80
|
}, [containerWrapRef, scrollBarScrollableRef, initialContainerWrapHeight, initialTouchPosition, onChangeContainerWrapTransform, onChangeTransitionStep]);
|
|
81
81
|
var handleWindowTouchEnd = React.useCallback(function (e) {
|
|
82
|
+
var _a;
|
|
82
83
|
var containerWrapNode = containerWrapRef.current;
|
|
83
84
|
var scrollableNode = scrollBarScrollableRef.current;
|
|
84
85
|
var isScrollTop = ((scrollableNode === null || scrollableNode === void 0 ? void 0 : scrollableNode.scrollTop) || 0) === 0;
|
|
@@ -86,28 +87,12 @@ var ModalMobileBottom = function ModalMobileBottom(_a) {
|
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
89
|
window.cancelAnimationFrame(animationFrameId.current);
|
|
89
|
-
if (!e.changedTouches.length) {
|
|
90
|
-
setInitialTouchPosition(null);
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
var touchStartY = initialTouchPosition;
|
|
94
|
-
var touchEndY = e.changedTouches[0].clientY;
|
|
95
|
-
if (touchStartY === null) {
|
|
96
|
-
setInitialTouchPosition(null);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
var deltaY = touchStartY - touchEndY;
|
|
100
|
-
var absDeltaY = Math.abs(deltaY);
|
|
101
|
-
if (absDeltaY < 5 || touchStartY > touchEndY) {
|
|
102
|
-
setInitialTouchPosition(null);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
90
|
var containerCenterPosition = containerWrapNode.offsetTop + offsetHeightCenter;
|
|
106
|
-
var isMoreHalfClosed =
|
|
91
|
+
var isMoreHalfClosed = ((_a = e.changedTouches[0]) === null || _a === void 0 ? void 0 : _a.clientY) > containerCenterPosition;
|
|
107
92
|
setInitialTouchPosition(null);
|
|
108
93
|
onChangeContainerWrapTransform(isMoreHalfClosed ? 'translateY(100%)' : 'none');
|
|
109
94
|
onChangeTransitionStep(isMoreHalfClosed ? MODAL_TRANSITIONS_STEPS_ENUM.MOVE_END_STEP : MODAL_TRANSITIONS_STEPS_ENUM.INITIAL_STEP);
|
|
110
|
-
}, [containerWrapRef, scrollBarScrollableRef, isTransitionMoveStep,
|
|
95
|
+
}, [containerWrapRef, scrollBarScrollableRef, isTransitionMoveStep, offsetHeightCenter, onChangeContainerWrapTransform, onChangeTransitionStep]);
|
|
111
96
|
React.useEffect(function () {
|
|
112
97
|
if (isSwipeDisabled) {
|
|
113
98
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
h1,h2,h3,h4,h5{margin:0}.mfui-9-pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (max-width:767px){.mfui-9-pagination{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:16px}}.mfui-9-pagination__input,.mfui-9-pagination__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-9-pagination__input{gap:8px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-9-pagination__input-caption{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content}.mfui-9-pagination__input-field{width:90px}
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-9-pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px;position:relative;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (max-width:767px){.mfui-9-pagination{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:16px}}.mfui-9-pagination__input,.mfui-9-pagination__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-9-pagination__input{gap:8px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-9-pagination__input-caption{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content}.mfui-9-pagination__input-field{width:90px}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ThemeType, ValueType } from './types';
|
|
3
3
|
import './Pagination.scss';
|
|
4
4
|
interface IPaginationProps {
|
|
5
5
|
/** Общее количество страниц */
|
|
6
6
|
totalPages: number;
|
|
7
7
|
/** Номер текущей страницы */
|
|
8
8
|
activePage: number;
|
|
9
|
-
/** Тип компонента. DEPRECATED: 'classic' */
|
|
10
|
-
type?: PaginationTypesType;
|
|
11
9
|
/** Цветовая тема компонента */
|
|
12
10
|
theme?: ThemeType;
|
|
13
11
|
/** Отобразить поле ввода номера страницы */
|