@megafon/ui-core 3.12.0 → 4.0.0-beta.10
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/CHANGELOG.md +106 -0
- package/dist/es/colors/Colors.css +4 -0
- package/dist/es/components/Accordion/Accordion.css +59 -22
- package/dist/es/components/Accordion/Accordion.js +12 -17
- package/dist/es/components/Badges/components/PriceBadge/PriceBadge.css +1 -1
- package/dist/es/components/Badges/components/PromoBadge/PromoBadge.css +1 -1
- package/dist/es/components/Badges/components/TimerBadge/TimerBadge.css +1 -1
- package/dist/es/components/Button/Button.css +5 -5
- package/dist/es/components/Calendar/components/Day/Day.css +1 -1
- package/dist/es/components/Calendar/components/Month/Month.css +1 -1
- package/dist/es/components/Caption/Caption.css +48 -0
- package/dist/es/components/Caption/Caption.d.ts +31 -0
- package/dist/es/components/Caption/Caption.js +51 -0
- package/dist/es/components/Header/Header.css +3 -0
- package/dist/es/components/Header/Header.d.ts +2 -0
- package/dist/es/components/Header/Header.js +7 -1
- package/dist/es/components/Notification/Notification.css +9 -5
- package/dist/es/components/Notification/Notification.js +2 -7
- package/dist/es/components/Paragraph/Paragraph.css +8 -5
- package/dist/es/components/Paragraph/Paragraph.d.ts +4 -3
- package/dist/es/components/Paragraph/Paragraph.js +6 -5
- package/dist/es/components/RadioButton/RadioButton.css +1 -1
- package/dist/es/components/Search/Search.css +129 -9
- package/dist/es/components/Search/Search.d.ts +2 -0
- package/dist/es/components/Search/Search.js +20 -7
- package/dist/es/components/Select/Select.css +165 -30
- package/dist/es/components/Select/Select.js +25 -18
- package/dist/es/components/Switcher/Switcher.css +1 -1
- package/dist/es/components/Tabs/Tabs.css +140 -143
- package/dist/es/components/Tabs/Tabs.d.ts +9 -8
- package/dist/es/components/Tabs/Tabs.js +14 -18
- package/dist/es/components/TextField/TextField.css +221 -92
- package/dist/es/components/TextField/TextField.js +161 -71
- package/dist/es/constants/throttleTime.d.ts +1 -0
- package/dist/es/constants/throttleTime.js +2 -1
- package/dist/es/index.d.ts +1 -1
- package/dist/es/index.js +1 -1
- package/dist/lib/colors/Colors.css +4 -0
- package/dist/lib/components/Accordion/Accordion.css +59 -22
- package/dist/lib/components/Accordion/Accordion.js +12 -17
- package/dist/lib/components/Badges/components/PriceBadge/PriceBadge.css +1 -1
- package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.css +1 -1
- package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.css +1 -1
- package/dist/lib/components/Button/Button.css +5 -5
- package/dist/lib/components/Calendar/components/Day/Day.css +1 -1
- package/dist/lib/components/Calendar/components/Month/Month.css +1 -1
- package/dist/lib/components/Caption/Caption.css +48 -0
- package/dist/lib/components/Caption/Caption.d.ts +31 -0
- package/dist/lib/components/{InputLabel/InputLabel.js → Caption/Caption.js} +38 -10
- package/dist/lib/components/Header/Header.css +3 -0
- package/dist/lib/components/Header/Header.d.ts +2 -0
- package/dist/lib/components/Header/Header.js +7 -1
- package/dist/lib/components/Notification/Notification.css +9 -5
- package/dist/lib/components/Notification/Notification.js +2 -8
- package/dist/lib/components/Paragraph/Paragraph.css +8 -5
- package/dist/lib/components/Paragraph/Paragraph.d.ts +4 -3
- package/dist/lib/components/Paragraph/Paragraph.js +6 -5
- package/dist/lib/components/RadioButton/RadioButton.css +1 -1
- package/dist/lib/components/Search/Search.css +129 -9
- package/dist/lib/components/Search/Search.d.ts +2 -0
- package/dist/lib/components/Search/Search.js +20 -8
- package/dist/lib/components/Select/Select.css +165 -30
- package/dist/lib/components/Select/Select.js +25 -19
- package/dist/lib/components/Switcher/Switcher.css +1 -1
- package/dist/lib/components/Tabs/Tabs.css +140 -143
- package/dist/lib/components/Tabs/Tabs.d.ts +9 -8
- package/dist/lib/components/Tabs/Tabs.js +16 -20
- package/dist/lib/components/TextField/TextField.css +221 -92
- package/dist/lib/components/TextField/TextField.js +164 -71
- package/dist/lib/constants/throttleTime.d.ts +1 -0
- package/dist/lib/constants/throttleTime.js +2 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +8 -8
- package/package.json +3 -3
- package/styles/base.less +4 -1
- package/dist/es/components/InputLabel/InputLabel.css +0 -5
- package/dist/es/components/InputLabel/InputLabel.d.ts +0 -10
- package/dist/es/components/InputLabel/InputLabel.js +0 -24
- package/dist/lib/components/InputLabel/InputLabel.css +0 -5
- package/dist/lib/components/InputLabel/InputLabel.d.ts +0 -10
|
@@ -17,7 +17,6 @@ import { Fragment, useEffect, useReducer, useCallback } from 'react';
|
|
|
17
17
|
import { cnCreate, detectTouch, filterDataAttrs } from '@megafon/ui-helpers';
|
|
18
18
|
import debounce from 'lodash.debounce';
|
|
19
19
|
import * as PropTypes from 'prop-types';
|
|
20
|
-
import InputLabel from "../InputLabel/InputLabel";
|
|
21
20
|
import "./Select.css";
|
|
22
21
|
import selectReducer, { initialState, SelectActions } from "./reducer/selectReducer";
|
|
23
22
|
var UPDATE_ITEMS_LIST = SelectActions.UPDATE_ITEMS_LIST,
|
|
@@ -325,6 +324,15 @@ var Select = function Select(_ref) {
|
|
|
325
324
|
!filterValue && node && itemsNodeList.current.push(node);
|
|
326
325
|
}, [filterValue]);
|
|
327
326
|
|
|
327
|
+
var renderLabel = function renderLabel() {
|
|
328
|
+
return /*#__PURE__*/React.createElement("label", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.label), {
|
|
329
|
+
htmlFor: labelId,
|
|
330
|
+
className: cn('label')
|
|
331
|
+
}), label, required && /*#__PURE__*/React.createElement("span", {
|
|
332
|
+
className: cn('require-mark')
|
|
333
|
+
}, "*"));
|
|
334
|
+
};
|
|
335
|
+
|
|
328
336
|
var renderTitle = function renderTitle() {
|
|
329
337
|
var item = items.find(function (elem) {
|
|
330
338
|
return elem.value === currentValue;
|
|
@@ -336,26 +344,30 @@ var Select = function Select(_ref) {
|
|
|
336
344
|
}
|
|
337
345
|
|
|
338
346
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.title), {
|
|
339
|
-
className: cn('title',
|
|
340
|
-
placeholder: !!placeholder && currentValue === undefined
|
|
341
|
-
}, [classes === null || classes === void 0 ? void 0 : classes.title]),
|
|
347
|
+
className: cn('title', [classes === null || classes === void 0 ? void 0 : classes.title]),
|
|
342
348
|
role: "button",
|
|
343
349
|
tabIndex: 0,
|
|
344
350
|
onClick: handleSelectClick
|
|
345
351
|
}), /*#__PURE__*/React.createElement("div", {
|
|
346
|
-
className: cn('title-inner',
|
|
347
|
-
|
|
352
|
+
className: cn('title-inner', {
|
|
353
|
+
placeholder: currentValue === undefined
|
|
354
|
+
}, [classes === null || classes === void 0 ? void 0 : classes.titleInner])
|
|
355
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
356
|
+
className: cn('title-value')
|
|
357
|
+
}, inputTitle), label && renderLabel()));
|
|
348
358
|
};
|
|
349
359
|
|
|
350
360
|
var renderCombobox = function renderCombobox() {
|
|
351
|
-
return /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input), {
|
|
352
|
-
className: cn('combobox'
|
|
361
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input), {
|
|
362
|
+
className: cn('combobox', {
|
|
363
|
+
placeholder: inputValue === undefined
|
|
364
|
+
}),
|
|
353
365
|
onFocus: handleComboboxFocus,
|
|
354
366
|
onChange: handleChangeCombobox,
|
|
355
367
|
type: "text",
|
|
356
368
|
value: inputValue,
|
|
357
369
|
placeholder: placeholder
|
|
358
|
-
}));
|
|
370
|
+
})), label && renderLabel());
|
|
359
371
|
};
|
|
360
372
|
|
|
361
373
|
var renderChildren = function renderChildren() {
|
|
@@ -399,15 +411,10 @@ var Select = function Select(_ref) {
|
|
|
399
411
|
ref: selectNode
|
|
400
412
|
}), /*#__PURE__*/React.createElement("div", {
|
|
401
413
|
className: cn('inner')
|
|
402
|
-
},
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
},
|
|
406
|
-
htmlFor: labelId
|
|
407
|
-
}, label, required && /*#__PURE__*/React.createElement("span", {
|
|
408
|
-
className: cn('require-mark')
|
|
409
|
-
}, "*")), /*#__PURE__*/React.createElement("div", {
|
|
410
|
-
className: cn('control', classes.control),
|
|
414
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
415
|
+
className: cn('control', {
|
|
416
|
+
labeled: !!label
|
|
417
|
+
}, classes.control),
|
|
411
418
|
onKeyDown: handleKeyDown
|
|
412
419
|
}, type === SelectTypes.COMBOBOX && renderCombobox(), type === SelectTypes.CLASSIC && renderTitle()), renderChildren()), noticeText && /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.noticeText), {
|
|
413
420
|
className: cn('text', {
|
|
@@ -1,13 +1,28 @@
|
|
|
1
|
+
.mfui-tabs .swiper-wrapper {
|
|
2
|
+
position: relative;
|
|
3
|
+
z-index: 0;
|
|
4
|
+
display: -webkit-box;
|
|
5
|
+
display: -ms-flexbox;
|
|
6
|
+
display: flex;
|
|
7
|
+
width: 100%;
|
|
8
|
+
}
|
|
9
|
+
.mfui-tabs__swiper-wrapper {
|
|
10
|
+
display: -webkit-box;
|
|
11
|
+
display: -ms-flexbox;
|
|
12
|
+
display: flex;
|
|
13
|
+
}
|
|
1
14
|
.mfui-tabs__swiper {
|
|
2
15
|
font-family: inherit;
|
|
3
16
|
font-size: 15px;
|
|
4
17
|
line-height: 24px;
|
|
5
18
|
font-weight: 500;
|
|
6
19
|
position: relative;
|
|
7
|
-
display: -
|
|
8
|
-
|
|
9
|
-
|
|
20
|
+
display: inline-block;
|
|
21
|
+
width: 100%;
|
|
22
|
+
padding: 4px;
|
|
23
|
+
border-radius: 12px;
|
|
10
24
|
overflow: hidden;
|
|
25
|
+
background-color: var(--spbSky0);
|
|
11
26
|
}
|
|
12
27
|
.mfui-tabs__swiper:before,
|
|
13
28
|
.mfui-tabs__swiper:after {
|
|
@@ -17,17 +32,17 @@
|
|
|
17
32
|
bottom: 0;
|
|
18
33
|
z-index: 1;
|
|
19
34
|
width: 64px;
|
|
35
|
+
background: -webkit-gradient(linear, right top, left top, from(var(--stcBlack5)), color-stop(64%, transparent));
|
|
36
|
+
background: linear-gradient(270deg, var(--stcBlack5) 0%, transparent 64%);
|
|
20
37
|
pointer-events: none;
|
|
21
38
|
}
|
|
22
39
|
.mfui-tabs__swiper:before {
|
|
23
40
|
left: 0;
|
|
24
|
-
|
|
25
|
-
|
|
41
|
+
-webkit-transform: matrix(-1, 0, 0, 1, 0, 0);
|
|
42
|
+
transform: matrix(-1, 0, 0, 1, 0, 0);
|
|
26
43
|
}
|
|
27
44
|
.mfui-tabs__swiper:after {
|
|
28
45
|
right: 0;
|
|
29
|
-
background: -webkit-gradient(linear, right top, left top, from(var(--base)), to(rgba(255, 255, 255, 0)));
|
|
30
|
-
background: linear-gradient(to left, var(--base), rgba(255, 255, 255, 0));
|
|
31
46
|
}
|
|
32
47
|
.mfui-tabs__swiper_beginning:before {
|
|
33
48
|
display: none;
|
|
@@ -35,68 +50,11 @@
|
|
|
35
50
|
.mfui-tabs__swiper_end:after {
|
|
36
51
|
display: none;
|
|
37
52
|
}
|
|
38
|
-
.mfui-tabs .swiper-wrapper {
|
|
39
|
-
position: relative;
|
|
40
|
-
z-index: 0;
|
|
41
|
-
display: -webkit-box;
|
|
42
|
-
display: -ms-flexbox;
|
|
43
|
-
display: flex;
|
|
44
|
-
max-width: 100%;
|
|
45
|
-
}
|
|
46
|
-
@media screen and (max-width: 767px) {
|
|
47
|
-
.mfui-tabs .swiper-wrapper {
|
|
48
|
-
width: 100%;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
53
|
.mfui-tabs__slide {
|
|
52
54
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
53
|
-
-
|
|
54
|
-
flex
|
|
55
|
-
|
|
56
|
-
@media screen and (max-width: 767px) {
|
|
57
|
-
.mfui-tabs__slide {
|
|
58
|
-
-webkit-box-flex: 1;
|
|
59
|
-
-ms-flex-positive: 1;
|
|
60
|
-
flex-grow: 1;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
.mfui-tabs__tab-inner {
|
|
64
|
-
display: -webkit-box;
|
|
65
|
-
display: -ms-flexbox;
|
|
66
|
-
display: flex;
|
|
67
|
-
-webkit-box-align: center;
|
|
68
|
-
-ms-flex-align: center;
|
|
69
|
-
align-items: center;
|
|
70
|
-
-webkit-box-pack: center;
|
|
71
|
-
-ms-flex-pack: center;
|
|
72
|
-
justify-content: center;
|
|
73
|
-
-webkit-box-sizing: content-box;
|
|
74
|
-
box-sizing: content-box;
|
|
75
|
-
height: 32px;
|
|
76
|
-
color: var(--content);
|
|
77
|
-
white-space: nowrap;
|
|
78
|
-
text-decoration: none;
|
|
79
|
-
cursor: pointer;
|
|
80
|
-
fill: var(--content);
|
|
81
|
-
}
|
|
82
|
-
.mfui-tabs__tab-inner:hover {
|
|
83
|
-
color: var(--brandGreen);
|
|
84
|
-
fill: var(--brandGreen);
|
|
85
|
-
}
|
|
86
|
-
.mfui-tabs__tab-inner_current {
|
|
87
|
-
color: var(--brandGreen);
|
|
88
|
-
fill: var(--brandGreen);
|
|
89
|
-
}
|
|
90
|
-
.mfui-tabs__tab-icon {
|
|
91
|
-
width: 32px;
|
|
92
|
-
height: 32px;
|
|
93
|
-
}
|
|
94
|
-
.mfui-tabs__tab-icon:not(:last-child) {
|
|
95
|
-
margin-right: 8px;
|
|
96
|
-
}
|
|
97
|
-
.mfui-tabs__tab-icon svg {
|
|
98
|
-
width: 100%;
|
|
99
|
-
height: 100%;
|
|
55
|
+
-webkit-box-flex: 1;
|
|
56
|
+
-ms-flex: 1;
|
|
57
|
+
flex: 1;
|
|
100
58
|
}
|
|
101
59
|
.mfui-tabs__panel {
|
|
102
60
|
display: none;
|
|
@@ -106,10 +64,14 @@
|
|
|
106
64
|
}
|
|
107
65
|
.mfui-tabs__underline {
|
|
108
66
|
position: absolute;
|
|
67
|
+
top: 0;
|
|
109
68
|
bottom: 0;
|
|
110
|
-
left:
|
|
111
|
-
|
|
112
|
-
|
|
69
|
+
left: auto;
|
|
70
|
+
z-index: 0;
|
|
71
|
+
border-radius: 8px;
|
|
72
|
+
background-color: var(--stcWhite);
|
|
73
|
+
-webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
74
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
113
75
|
-webkit-transition-duration: 0.3s;
|
|
114
76
|
transition-duration: 0.3s;
|
|
115
77
|
}
|
|
@@ -125,6 +87,11 @@
|
|
|
125
87
|
-webkit-transform: translateY(-50%);
|
|
126
88
|
transform: translateY(-50%);
|
|
127
89
|
cursor: pointer;
|
|
90
|
+
opacity: 1;
|
|
91
|
+
-webkit-transition-duration: 0.3s;
|
|
92
|
+
transition-duration: 0.3s;
|
|
93
|
+
-webkit-transition-property: background-color, opacity;
|
|
94
|
+
transition-property: background-color, opacity;
|
|
128
95
|
fill: var(--base);
|
|
129
96
|
}
|
|
130
97
|
@media screen and (max-width: 1023px) {
|
|
@@ -132,95 +99,129 @@
|
|
|
132
99
|
display: none;
|
|
133
100
|
}
|
|
134
101
|
}
|
|
102
|
+
.mfui-tabs__arrow:hover {
|
|
103
|
+
background-color: var(--spbSky3);
|
|
104
|
+
}
|
|
105
|
+
.mfui-tabs__arrow:active {
|
|
106
|
+
background-color: var(--buttonDown);
|
|
107
|
+
}
|
|
135
108
|
.mfui-tabs__arrow_prev {
|
|
136
|
-
left:
|
|
109
|
+
left: 14px;
|
|
137
110
|
}
|
|
138
111
|
.mfui-tabs__arrow_next {
|
|
139
|
-
right:
|
|
112
|
+
right: 14px;
|
|
113
|
+
-webkit-transform: translateY(-50%) rotate(180deg);
|
|
114
|
+
transform: translateY(-50%) rotate(180deg);
|
|
140
115
|
}
|
|
141
116
|
.mfui-tabs__arrow_hide {
|
|
142
|
-
|
|
117
|
+
opacity: 0;
|
|
118
|
+
pointer-events: none;
|
|
143
119
|
}
|
|
144
|
-
.mfui-
|
|
145
|
-
|
|
120
|
+
.mfui-tabs__tab-inner {
|
|
121
|
+
font-size: 15px;
|
|
122
|
+
line-height: 24px;
|
|
123
|
+
font-weight: 500;
|
|
124
|
+
position: relative;
|
|
125
|
+
display: -webkit-box;
|
|
126
|
+
display: -ms-flexbox;
|
|
127
|
+
display: flex;
|
|
128
|
+
-webkit-box-align: center;
|
|
129
|
+
-ms-flex-align: center;
|
|
130
|
+
align-items: center;
|
|
131
|
+
-webkit-box-pack: center;
|
|
132
|
+
-ms-flex-pack: center;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
height: 36px;
|
|
135
|
+
padding: 2px 12px;
|
|
136
|
+
color: var(--spbSky3);
|
|
137
|
+
white-space: nowrap;
|
|
138
|
+
text-align: center;
|
|
139
|
+
text-decoration: none;
|
|
140
|
+
cursor: pointer;
|
|
141
|
+
-webkit-transition: color 0.3s;
|
|
142
|
+
transition: color 0.3s;
|
|
143
|
+
fill: var(--spbSky3);
|
|
146
144
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
145
|
+
.mfui-tabs__tab-inner:focus {
|
|
146
|
+
color: var(--spbSky3);
|
|
147
|
+
fill: var(--spbSky3);
|
|
151
148
|
}
|
|
152
|
-
.mfui-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
justify-content: start;
|
|
156
|
-
height: 24px;
|
|
157
|
-
padding: 7px 0;
|
|
149
|
+
.mfui-tabs__tab-inner:not(.mfui-tabs__tab-inner_current):hover {
|
|
150
|
+
color: var(--content);
|
|
151
|
+
fill: var(--content);
|
|
158
152
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
153
|
+
.mfui-tabs__tab-inner:not(.mfui-tabs__tab-inner_current):active {
|
|
154
|
+
color: var(--buttonDown);
|
|
155
|
+
fill: var(--buttonDown);
|
|
163
156
|
}
|
|
164
|
-
.mfui-
|
|
165
|
-
|
|
166
|
-
height: 24px;
|
|
157
|
+
.mfui-tabs__tab-inner_with-icon {
|
|
158
|
+
padding-left: 8px;
|
|
167
159
|
}
|
|
168
|
-
.mfui-
|
|
169
|
-
|
|
160
|
+
.mfui-tabs__tab-inner_current {
|
|
161
|
+
color: var(--stcBlack);
|
|
162
|
+
cursor: auto;
|
|
163
|
+
fill: var(--stcBlack);
|
|
170
164
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
165
|
+
.mfui-tabs__tab-icon {
|
|
166
|
+
width: 32px;
|
|
167
|
+
height: 32px;
|
|
168
|
+
margin-right: 4px;
|
|
169
|
+
}
|
|
170
|
+
.mfui-tabs__tab-icon svg {
|
|
171
|
+
width: 100%;
|
|
172
|
+
height: 100%;
|
|
175
173
|
}
|
|
176
174
|
.mfui-tabs_size_large .mfui-tabs__swiper {
|
|
177
|
-
|
|
178
|
-
font-size: 18px;
|
|
179
|
-
line-height: 24px;
|
|
180
|
-
letter-spacing: 0.5px;
|
|
175
|
+
padding: 6px;
|
|
181
176
|
}
|
|
182
|
-
@media screen and (min-width:
|
|
177
|
+
@media screen and (min-width: 768px) {
|
|
183
178
|
.mfui-tabs_size_large .mfui-tabs__swiper {
|
|
184
|
-
|
|
185
|
-
line-height: 28px;
|
|
179
|
+
padding: 8px;
|
|
186
180
|
}
|
|
187
181
|
}
|
|
188
182
|
.mfui-tabs_size_large .mfui-tabs__tab-inner {
|
|
189
|
-
|
|
183
|
+
height: 48px;
|
|
184
|
+
padding: 8px 24px;
|
|
190
185
|
}
|
|
191
|
-
@media screen and (
|
|
186
|
+
@media screen and (min-width: 768px) {
|
|
192
187
|
.mfui-tabs_size_large .mfui-tabs__tab-inner {
|
|
193
|
-
|
|
188
|
+
height: 56px;
|
|
189
|
+
padding: 12px 40px;
|
|
194
190
|
}
|
|
195
191
|
}
|
|
196
|
-
.mfui-
|
|
197
|
-
-
|
|
198
|
-
-ms-flex-pack: center;
|
|
199
|
-
justify-content: center;
|
|
192
|
+
.mfui-tabs_size_large .mfui-tabs__tab-inner_with-icon {
|
|
193
|
+
padding-left: 20px;
|
|
200
194
|
}
|
|
201
|
-
|
|
202
|
-
|
|
195
|
+
@media screen and (min-width: 768px) {
|
|
196
|
+
.mfui-tabs_size_large .mfui-tabs__tab-inner_with-icon {
|
|
197
|
+
padding-left: 28px;
|
|
198
|
+
}
|
|
203
199
|
}
|
|
204
|
-
.mfui-
|
|
205
|
-
|
|
200
|
+
.mfui-tabs_size_large .mfui-tabs__tab-icon {
|
|
201
|
+
margin-right: 6px;
|
|
206
202
|
}
|
|
207
|
-
.mfui-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
203
|
+
.mfui-tabs_auto-width .mfui-tabs__swiper {
|
|
204
|
+
width: auto;
|
|
205
|
+
max-width: 100%;
|
|
206
|
+
}
|
|
207
|
+
.mfui-tabs_auto-width .mfui-tabs__slide {
|
|
208
|
+
-webkit-box-flex: 0;
|
|
209
|
+
-ms-flex: 0 0 auto;
|
|
210
|
+
flex: 0 0 auto;
|
|
211
|
+
}
|
|
212
|
+
.mfui-tabs_auto-width.mfui-tabs_h-align_center .mfui-tabs__swiper-wrapper {
|
|
213
|
+
-webkit-box-pack: center;
|
|
214
|
+
-ms-flex-pack: center;
|
|
215
|
+
justify-content: center;
|
|
215
216
|
}
|
|
216
217
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
|
217
|
-
.mfui-tabs_indents .mfui-tabs__swiper {
|
|
218
|
+
.mfui-tabs_indents .mfui-tabs__swiper-wrapper {
|
|
218
219
|
margin: 0 -48px;
|
|
219
220
|
padding: 0 48px;
|
|
220
221
|
}
|
|
221
222
|
}
|
|
222
223
|
@media screen and (max-width: 767px) {
|
|
223
|
-
.mfui-tabs_indents .mfui-tabs__swiper {
|
|
224
|
+
.mfui-tabs_indents .mfui-tabs__swiper-wrapper {
|
|
224
225
|
margin: 0 -16px;
|
|
225
226
|
padding: 0 16px;
|
|
226
227
|
}
|
|
@@ -233,35 +234,31 @@
|
|
|
233
234
|
z-index: 100;
|
|
234
235
|
background-color: var(--base);
|
|
235
236
|
}
|
|
236
|
-
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__swiper
|
|
237
|
-
|
|
238
|
-
background: -webkit-gradient(linear, left top, right top, from(var(--brandGreen)), to(transparent));
|
|
239
|
-
background: linear-gradient(to right, var(--brandGreen), transparent);
|
|
240
|
-
}
|
|
241
|
-
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__swiper:after {
|
|
242
|
-
right: 0;
|
|
243
|
-
background: -webkit-gradient(linear, right top, left top, from(var(--brandGreen)), to(transparent));
|
|
244
|
-
background: linear-gradient(to left, var(--brandGreen), transparent);
|
|
245
|
-
}
|
|
246
|
-
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab {
|
|
247
|
-
border-color: var(--stcBlack5);
|
|
237
|
+
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__swiper {
|
|
238
|
+
background-color: var(--stcBlack50);
|
|
248
239
|
}
|
|
249
|
-
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner {
|
|
240
|
+
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner:not(.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner_current) {
|
|
250
241
|
color: var(--stcWhite50);
|
|
251
242
|
fill: var(--stcWhite50);
|
|
252
243
|
}
|
|
253
|
-
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner:hover {
|
|
244
|
+
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner:not(.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner_current):hover {
|
|
254
245
|
color: var(--stcWhite);
|
|
255
246
|
fill: var(--stcWhite);
|
|
256
247
|
}
|
|
257
248
|
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner_current {
|
|
258
|
-
color: var(--
|
|
259
|
-
fill: var(--
|
|
249
|
+
color: var(--stcBlack);
|
|
250
|
+
fill: var(--stcBlack);
|
|
260
251
|
}
|
|
261
252
|
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__underline {
|
|
262
253
|
background-color: var(--stcWhite);
|
|
263
254
|
}
|
|
264
255
|
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__arrow {
|
|
265
256
|
background-color: var(--stcWhite);
|
|
266
|
-
fill: var(--
|
|
257
|
+
fill: var(--stcBlack);
|
|
258
|
+
}
|
|
259
|
+
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__arrow:hover {
|
|
260
|
+
background-color: var(--stcWhite50);
|
|
261
|
+
}
|
|
262
|
+
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__arrow:active {
|
|
263
|
+
background-color: var(--stcBlack0);
|
|
267
264
|
}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import './Tabs.less';
|
|
3
3
|
import { ITabProps } from './Tab';
|
|
4
|
-
export declare const TabSize: {
|
|
5
|
-
readonly SMALL: "small";
|
|
6
|
-
readonly MEDIUM: "medium";
|
|
7
|
-
readonly LARGE: "large";
|
|
8
|
-
};
|
|
9
4
|
export declare const TabHAlign: {
|
|
10
5
|
readonly LEFT: "left";
|
|
11
6
|
readonly CENTER: "center";
|
|
12
7
|
};
|
|
8
|
+
export declare const TabSize: {
|
|
9
|
+
readonly MEDIUM: "medium";
|
|
10
|
+
readonly LARGE: "large";
|
|
11
|
+
};
|
|
13
12
|
export declare const TabColorTheme: {
|
|
14
13
|
readonly WHITE: "white";
|
|
15
14
|
readonly GREEN: "green";
|
|
16
15
|
};
|
|
17
16
|
declare type TabSizeType = typeof TabSize[keyof typeof TabSize];
|
|
18
|
-
declare type TabHAlignType = typeof TabHAlign[keyof typeof TabHAlign];
|
|
19
17
|
declare type TabColorThemeType = typeof TabColorTheme[keyof typeof TabColorTheme];
|
|
18
|
+
declare type TabHAlignType = typeof TabHAlign[keyof typeof TabHAlign];
|
|
20
19
|
export interface ITabsProps {
|
|
21
20
|
/** Дополнительный класс для корневого элемента */
|
|
22
21
|
className?: string;
|
|
@@ -37,10 +36,12 @@ export interface ITabsProps {
|
|
|
37
36
|
};
|
|
38
37
|
/** Размер табов */
|
|
39
38
|
size?: TabSizeType;
|
|
40
|
-
/** Горизонтальное выравнивание */
|
|
41
|
-
hAlign?: TabHAlignType;
|
|
42
39
|
/** Цветовая тема табов для определенных фонов */
|
|
43
40
|
tabColorTheme?: TabColorThemeType;
|
|
41
|
+
/** Ширина табов по размеру содержимого */
|
|
42
|
+
autoWidth?: boolean;
|
|
43
|
+
/** Горизонтальное выравнивание (только для autoWidth = true) */
|
|
44
|
+
hAlign?: TabHAlignType;
|
|
44
45
|
/** Фиксация табов у верхней границы окна */
|
|
45
46
|
sticky?: boolean;
|
|
46
47
|
/** Индекс активного таба (включает режим управления табами снаружи) */
|
|
@@ -22,23 +22,14 @@ var ArrowLeft = function ArrowLeft(props) {
|
|
|
22
22
|
}));
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}, props), /*#__PURE__*/React.createElement("path", {
|
|
29
|
-
d: "M8 13l3-3-3-3 1-1 4 4-4 4z"
|
|
30
|
-
}));
|
|
25
|
+
export var TabHAlign = {
|
|
26
|
+
LEFT: 'left',
|
|
27
|
+
CENTER: 'center'
|
|
31
28
|
};
|
|
32
|
-
|
|
33
29
|
export var TabSize = {
|
|
34
|
-
SMALL: 'small',
|
|
35
30
|
MEDIUM: 'medium',
|
|
36
31
|
LARGE: 'large'
|
|
37
32
|
};
|
|
38
|
-
export var TabHAlign = {
|
|
39
|
-
LEFT: 'left',
|
|
40
|
-
CENTER: 'center'
|
|
41
|
-
};
|
|
42
33
|
export var TabColorTheme = {
|
|
43
34
|
WHITE: 'white',
|
|
44
35
|
GREEN: 'green'
|
|
@@ -55,17 +46,19 @@ var Tabs = function Tabs(_ref) {
|
|
|
55
46
|
activeTabClass = _ref$classes.activeTab,
|
|
56
47
|
_ref$size = _ref.size,
|
|
57
48
|
size = _ref$size === void 0 ? 'medium' : _ref$size,
|
|
58
|
-
_ref$hAlign = _ref.hAlign,
|
|
59
|
-
hAlign = _ref$hAlign === void 0 ? 'left' : _ref$hAlign,
|
|
60
49
|
_ref$tabColorTheme = _ref.tabColorTheme,
|
|
61
50
|
tabColorTheme = _ref$tabColorTheme === void 0 ? 'white' : _ref$tabColorTheme,
|
|
62
51
|
_ref$sticky = _ref.sticky,
|
|
63
52
|
sticky = _ref$sticky === void 0 ? false : _ref$sticky,
|
|
53
|
+
_ref$hAlign = _ref.hAlign,
|
|
54
|
+
hAlign = _ref$hAlign === void 0 ? 'left' : _ref$hAlign,
|
|
64
55
|
_ref$defaultIndex = _ref.defaultIndex,
|
|
65
56
|
defaultIndex = _ref$defaultIndex === void 0 ? 0 : _ref$defaultIndex,
|
|
66
57
|
outerIndex = _ref.currentIndex,
|
|
67
58
|
_ref$renderOnlyCurren = _ref.renderOnlyCurrentPanel,
|
|
68
59
|
renderOnlyCurrentPanel = _ref$renderOnlyCurren === void 0 ? false : _ref$renderOnlyCurren,
|
|
60
|
+
_ref$autoWidth = _ref.autoWidth,
|
|
61
|
+
autoWidth = _ref$autoWidth === void 0 ? false : _ref$autoWidth,
|
|
69
62
|
children = _ref.children,
|
|
70
63
|
dataAttrs = _ref.dataAttrs,
|
|
71
64
|
onTabClick = _ref.onTabClick,
|
|
@@ -275,7 +268,8 @@ var Tabs = function Tabs(_ref) {
|
|
|
275
268
|
return /*#__PURE__*/React.createElement(ElementType, _extends({
|
|
276
269
|
href: href,
|
|
277
270
|
className: cn('tab-inner', {
|
|
278
|
-
current: currentIndex === index
|
|
271
|
+
current: currentIndex === index,
|
|
272
|
+
'with-icon': !!icon
|
|
279
273
|
}),
|
|
280
274
|
onClick: handleTabInnerClick(index)
|
|
281
275
|
}, filterDataAttrs(attr, index + 1)), !!icon && /*#__PURE__*/React.createElement("div", {
|
|
@@ -368,10 +362,11 @@ var Tabs = function Tabs(_ref) {
|
|
|
368
362
|
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
369
363
|
className: cn({
|
|
370
364
|
size: size,
|
|
371
|
-
'h-align': hAlign,
|
|
372
365
|
'tab-color': tabColorTheme,
|
|
366
|
+
'h-align': hAlign,
|
|
373
367
|
indents: !innerIndentsClass,
|
|
374
|
-
sticky: isSticky
|
|
368
|
+
sticky: isSticky,
|
|
369
|
+
'auto-width': autoWidth
|
|
375
370
|
}, [className, rootClass]),
|
|
376
371
|
ref: rootRef
|
|
377
372
|
}), /*#__PURE__*/React.createElement("div", {
|
|
@@ -411,7 +406,7 @@ var Tabs = function Tabs(_ref) {
|
|
|
411
406
|
hide: isBeginning
|
|
412
407
|
}),
|
|
413
408
|
onClick: handlePrevArrowClick
|
|
414
|
-
})), /*#__PURE__*/React.createElement(
|
|
409
|
+
})), /*#__PURE__*/React.createElement(ArrowLeft, _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.next), {
|
|
415
410
|
className: cn('arrow', {
|
|
416
411
|
next: true,
|
|
417
412
|
hide: isEnd
|
|
@@ -437,6 +432,7 @@ Tabs.propTypes = {
|
|
|
437
432
|
}),
|
|
438
433
|
size: PropTypes.oneOf(Object.values(TabSize)),
|
|
439
434
|
hAlign: PropTypes.oneOf(Object.values(TabHAlign)),
|
|
435
|
+
autoWidth: PropTypes.bool,
|
|
440
436
|
tabColorTheme: PropTypes.oneOf(Object.values(TabColorTheme)),
|
|
441
437
|
sticky: PropTypes.bool,
|
|
442
438
|
currentIndex: PropTypes.number,
|