@megafon/ui-shared 2.1.4 → 2.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 (34) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/es/components/AccordionBox/AccordionBox.d.ts +1 -0
  3. package/dist/es/components/AccordionBox/AccordionBox.js +3 -1
  4. package/dist/es/components/BenefitsIcons/BenefitsIcons.js +4 -2
  5. package/dist/es/components/BenefitsIcons/style/BenefitsIcons.css +19 -0
  6. package/dist/es/components/BenefitsIcons/style/BenefitsIconsTile.css +0 -3
  7. package/dist/es/components/Container/Container.css +163 -0
  8. package/dist/es/components/StoreBanner/StoreBanner.css +21 -22
  9. package/dist/es/components/StoreBanner/doc/img/qr-code.png +0 -0
  10. package/dist/es/components/TextBox/TextBox.css +9 -0
  11. package/dist/es/components/TextWithIcon/TextWithIcon.css +57 -0
  12. package/dist/es/components/TextWithIcon/TextWithIcon.d.ts +21 -0
  13. package/dist/es/components/TextWithIcon/TextWithIcon.js +53 -0
  14. package/dist/es/components/VideoBlock/VideoBlock.d.ts +1 -1
  15. package/dist/es/components/VideoBlock/VideoBlock.js +3 -3
  16. package/dist/es/index.d.ts +1 -0
  17. package/dist/es/index.js +1 -0
  18. package/dist/lib/components/AccordionBox/AccordionBox.d.ts +1 -0
  19. package/dist/lib/components/AccordionBox/AccordionBox.js +3 -1
  20. package/dist/lib/components/BenefitsIcons/BenefitsIcons.js +4 -2
  21. package/dist/lib/components/BenefitsIcons/style/BenefitsIcons.css +19 -0
  22. package/dist/lib/components/BenefitsIcons/style/BenefitsIconsTile.css +0 -3
  23. package/dist/lib/components/Container/Container.css +163 -0
  24. package/dist/lib/components/StoreBanner/StoreBanner.css +21 -22
  25. package/dist/lib/components/StoreBanner/doc/img/qr-code.png +0 -0
  26. package/dist/lib/components/TextBox/TextBox.css +9 -0
  27. package/dist/lib/components/TextWithIcon/TextWithIcon.css +57 -0
  28. package/dist/lib/components/TextWithIcon/TextWithIcon.d.ts +21 -0
  29. package/dist/lib/components/TextWithIcon/TextWithIcon.js +74 -0
  30. package/dist/lib/components/VideoBlock/VideoBlock.d.ts +1 -1
  31. package/dist/lib/components/VideoBlock/VideoBlock.js +3 -3
  32. package/dist/lib/index.d.ts +1 -0
  33. package/dist/lib/index.js +8 -0
  34. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,54 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.3.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@2.2.1...@megafon/ui-shared@2.3.0) (2022-02-07)
7
+
8
+
9
+ ### Features
10
+
11
+ * **container:** fix margin rules for component TextWithIcon ([3c2de9d](https://github.com/MegafonWebLab/megafon-ui/commit/3c2de9db5a01bdd246daee22dd5545e21dce55ba))
12
+ * **textbox:** add styles for use TextWithIcon inside component ([c993657](https://github.com/MegafonWebLab/megafon-ui/commit/c993657a2f143f87607a7d1474d44c4596d73558))
13
+
14
+
15
+
16
+
17
+
18
+ ## [2.2.1](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@2.2.0...@megafon/ui-shared@2.2.1) (2022-01-31)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **storebanner:** update qr code image for storebanner examples and fix qr code container styles ([1845222](https://github.com/MegafonWebLab/megafon-ui/commit/1845222e5211e70a8f5aa36ab4a710ecd46e8a14))
24
+
25
+
26
+
27
+
28
+
29
+ # [2.2.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@2.1.5...@megafon/ui-shared@2.2.0) (2022-01-24)
30
+
31
+
32
+ ### Features
33
+
34
+ * **accordionbox:** props hasVerticalPaddings marked as deprecated ([7dbb43b](https://github.com/MegafonWebLab/megafon-ui/commit/7dbb43b1178f4055ecd0f4eed5614024da638091))
35
+ * **container:** add rules for TextWithIcon component ([4c692ab](https://github.com/MegafonWebLab/megafon-ui/commit/4c692ab43db115dc7c5aeba39713d6f2ae2daaff))
36
+ * **textwithicon:** add component TextWithIcon ([b772728](https://github.com/MegafonWebLab/megafon-ui/commit/b772728b8739dbbfa550eef1c8eedb56cda620c9))
37
+ * **videoblock:** made button optional ([eef7c17](https://github.com/MegafonWebLab/megafon-ui/commit/eef7c174415b28fe3512d8c28fcd9bb73774dd2e))
38
+
39
+
40
+
41
+
42
+
43
+ ## [2.1.5](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@2.1.4...@megafon/ui-shared@2.1.5) (2022-01-18)
44
+
45
+
46
+ ### Bug Fixes
47
+
48
+ * **benefitsicons:** fix indents of items for inOneColumn mode ([e207c1c](https://github.com/MegafonWebLab/megafon-ui/commit/e207c1c99b42a48454e716094132d9573b3ec3c6))
49
+
50
+
51
+
52
+
53
+
6
54
  ## [2.1.4](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@2.1.3...@megafon/ui-shared@2.1.4) (2021-12-29)
7
55
 
8
56
  **Note:** Version bump only for package @megafon/ui-shared
@@ -16,6 +16,7 @@ export interface IAccordionBox {
16
16
  /** Центрирование по горизонтали для расширения 1280+ */
17
17
  hCenterAlignWide?: boolean;
18
18
  /** Вертикальные отступы */
19
+ /** @deprecated */
19
20
  hasVerticalPaddings?: boolean;
20
21
  /** Дополнительный класс для корнеовго элемента */
21
22
  className?: string;
@@ -49,7 +49,9 @@ AccordionBox.propTypes = {
49
49
  isFullWidth: PropTypes.bool,
50
50
  isOpened: PropTypes.bool,
51
51
  hCenterAlignWide: PropTypes.bool,
52
- hasVerticalPaddings: PropTypes.bool,
52
+ hasVerticalPaddings: function hasVerticalPaddings(props, propName) {
53
+ return props[propName] && new Error('Failed prop type: Prop "hasVerticalPaddings" is deprecated');
54
+ },
53
55
  className: PropTypes.string,
54
56
  classes: PropTypes.shape({
55
57
  openedClass: PropTypes.string,
@@ -168,7 +168,9 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
168
168
  };
169
169
  }, [iconPosition, inOneColumn, resizeHandler]);
170
170
  return /*#__PURE__*/React.createElement("div", {
171
- className: cn([className, classes.root]),
171
+ className: cn({
172
+ 'one-column': inOneColumn
173
+ }, [className, classes.root]),
172
174
  ref: rootRef
173
175
  }, /*#__PURE__*/React.createElement("div", {
174
176
  className: cn('inner')
@@ -185,7 +187,7 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
185
187
  className: classes.gridColumn,
186
188
  key: i
187
189
  }, columnConfig), /*#__PURE__*/React.createElement(BenefitsIconsTile, {
188
- className: classes.item,
190
+ className: cn('tile', [classes.item]),
189
191
  title: title,
190
192
  text: text,
191
193
  icon: icon,
@@ -12,3 +12,22 @@ h5 {
12
12
  .mfui-benefits-icons__inner {
13
13
  margin-bottom: -48px;
14
14
  }
15
+ .mfui-benefits-icons__tile {
16
+ margin-bottom: 48px;
17
+ }
18
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__inner {
19
+ margin-bottom: -24px;
20
+ }
21
+ @media screen and (max-width: 767px) {
22
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__inner {
23
+ margin-bottom: -32px;
24
+ }
25
+ }
26
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__tile {
27
+ margin-bottom: 24px;
28
+ }
29
+ @media screen and (max-width: 767px) {
30
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__tile {
31
+ margin-bottom: 32px;
32
+ }
33
+ }
@@ -5,9 +5,6 @@ h4,
5
5
  h5 {
6
6
  margin: 0;
7
7
  }
8
- .mfui-benefits-icons-tile {
9
- margin-bottom: 48px;
10
- }
11
8
  .mfui-benefits-icons-tile .mfui-benefits-icons-tile__svg-icon {
12
9
  margin-bottom: 10px;
13
10
  }
@@ -344,6 +344,9 @@ h5 {
344
344
  .mfui-container .mfui-title-description-box + .mfui-download-links {
345
345
  margin-top: 32px;
346
346
  }
347
+ .mfui-container .mfui-title-description-box + .mfui-text-with-icon {
348
+ margin-top: 24px;
349
+ }
347
350
  @media screen and (min-width: 768px) and (max-width: 1023px) {
348
351
  .mfui-container .mfui-title-description-box + .mfui-benefits-icons {
349
352
  margin-top: 48px;
@@ -2230,6 +2233,9 @@ h5 {
2230
2233
  .mfui-container .mfui-text-box + .mfui-download-links {
2231
2234
  margin-top: 32px;
2232
2235
  }
2236
+ .mfui-container .mfui-text-box + .mfui-text-with-icon {
2237
+ margin-top: 32px;
2238
+ }
2233
2239
  @media screen and (min-width: 768px) and (max-width: 1023px) {
2234
2240
  .mfui-container .mfui-text-box + .mfui-benefits-icons {
2235
2241
  margin-top: 48px;
@@ -2869,6 +2875,163 @@ h5 {
2869
2875
  .mfui-container .mfui-page-title + .mfui-button-link-box {
2870
2876
  margin-top: 0 !important;
2871
2877
  }
2878
+ .mfui-container .mfui-text-with-icon + .mfui-benefits-pictures {
2879
+ margin-top: 40px;
2880
+ }
2881
+ .mfui-container .mfui-text-with-icon + .mfui-cards-box {
2882
+ margin-top: 40px;
2883
+ }
2884
+ .mfui-container .mfui-text-with-icon + .mfui-carousel-box {
2885
+ margin-top: 40px;
2886
+ }
2887
+ .mfui-container .mfui-text-with-icon + .mfui-video-block {
2888
+ margin-top: 40px;
2889
+ }
2890
+ .mfui-container .mfui-text-with-icon + .mfui-tabs-box {
2891
+ margin-top: 40px;
2892
+ }
2893
+ .mfui-container .mfui-text-with-icon + .mfui-partners {
2894
+ margin-top: 40px;
2895
+ }
2896
+ .mfui-container .mfui-text-with-icon + .mfui-instructions {
2897
+ margin-top: 40px;
2898
+ }
2899
+ .mfui-container .mfui-text-with-icon + .mfui-property {
2900
+ margin-top: 40px;
2901
+ }
2902
+ .mfui-container .mfui-text-with-icon + .mfui-table {
2903
+ margin-top: 40px;
2904
+ }
2905
+ .mfui-container .mfui-text-with-icon + .mfui-accordion-box {
2906
+ margin-top: 40px;
2907
+ }
2908
+ .mfui-container .mfui-text-with-icon + .mfui-button-link-box {
2909
+ margin-top: 40px;
2910
+ }
2911
+ .mfui-container .mfui-text-with-icon + .mfui-download-links {
2912
+ margin-top: 40px;
2913
+ }
2914
+ .mfui-container .mfui-text-with-icon + .mfui-text-box {
2915
+ margin-top: 32px;
2916
+ }
2917
+ .mfui-container .mfui-text-with-icon + .mfui-picture-with-description {
2918
+ margin-top: 40px;
2919
+ }
2920
+ .mfui-container .mfui-text-with-icon + .mfui-store-banner {
2921
+ margin-top: 40px;
2922
+ }
2923
+ .mfui-container .mfui-text-with-icon + .mfui-button-banner {
2924
+ margin-top: 40px;
2925
+ }
2926
+ .mfui-container .mfui-text-with-icon + .mfui-steps {
2927
+ margin-top: 40px;
2928
+ }
2929
+ @media screen and (min-width: 768px) and (max-width: 1023px) {
2930
+ .mfui-container .mfui-text-with-icon + .mfui-benefits-pictures {
2931
+ margin-top: 48px;
2932
+ }
2933
+ .mfui-container .mfui-text-with-icon + .mfui-cards-box {
2934
+ margin-top: 48px;
2935
+ }
2936
+ .mfui-container .mfui-text-with-icon + .mfui-carousel-box {
2937
+ margin-top: 48px;
2938
+ }
2939
+ .mfui-container .mfui-text-with-icon + .mfui-video-block {
2940
+ margin-top: 48px;
2941
+ }
2942
+ .mfui-container .mfui-text-with-icon + .mfui-tabs-box {
2943
+ margin-top: 48px;
2944
+ }
2945
+ .mfui-container .mfui-text-with-icon + .mfui-partners {
2946
+ margin-top: 48px;
2947
+ }
2948
+ .mfui-container .mfui-text-with-icon + .mfui-instructions {
2949
+ margin-top: 48px;
2950
+ }
2951
+ .mfui-container .mfui-text-with-icon + .mfui-property {
2952
+ margin-top: 48px;
2953
+ }
2954
+ .mfui-container .mfui-text-with-icon + .mfui-table {
2955
+ margin-top: 48px;
2956
+ }
2957
+ .mfui-container .mfui-text-with-icon + .mfui-accordion-box {
2958
+ margin-top: 48px;
2959
+ }
2960
+ .mfui-container .mfui-text-with-icon + .mfui-button-link-box {
2961
+ margin-top: 48px;
2962
+ }
2963
+ .mfui-container .mfui-text-with-icon + .mfui-download-links {
2964
+ margin-top: 48px;
2965
+ }
2966
+ .mfui-container .mfui-text-with-icon + .mfui-text-box {
2967
+ margin-top: 32px;
2968
+ }
2969
+ .mfui-container .mfui-text-with-icon + .mfui-picture-with-description {
2970
+ margin-top: 48px;
2971
+ }
2972
+ .mfui-container .mfui-text-with-icon + .mfui-store-banner {
2973
+ margin-top: 48px;
2974
+ }
2975
+ .mfui-container .mfui-text-with-icon + .mfui-button-banner {
2976
+ margin-top: 48px;
2977
+ }
2978
+ .mfui-container .mfui-text-with-icon + .mfui-steps {
2979
+ margin-top: 48px;
2980
+ }
2981
+ }
2982
+ @media screen and (min-width: 1024px) {
2983
+ .mfui-container .mfui-text-with-icon + .mfui-benefits-pictures {
2984
+ margin-top: 56px;
2985
+ }
2986
+ .mfui-container .mfui-text-with-icon + .mfui-cards-box {
2987
+ margin-top: 56px;
2988
+ }
2989
+ .mfui-container .mfui-text-with-icon + .mfui-carousel-box {
2990
+ margin-top: 56px;
2991
+ }
2992
+ .mfui-container .mfui-text-with-icon + .mfui-video-block {
2993
+ margin-top: 56px;
2994
+ }
2995
+ .mfui-container .mfui-text-with-icon + .mfui-tabs-box {
2996
+ margin-top: 56px;
2997
+ }
2998
+ .mfui-container .mfui-text-with-icon + .mfui-partners {
2999
+ margin-top: 56px;
3000
+ }
3001
+ .mfui-container .mfui-text-with-icon + .mfui-instructions {
3002
+ margin-top: 56px;
3003
+ }
3004
+ .mfui-container .mfui-text-with-icon + .mfui-property {
3005
+ margin-top: 56px;
3006
+ }
3007
+ .mfui-container .mfui-text-with-icon + .mfui-table {
3008
+ margin-top: 56px;
3009
+ }
3010
+ .mfui-container .mfui-text-with-icon + .mfui-accordion-box {
3011
+ margin-top: 56px;
3012
+ }
3013
+ .mfui-container .mfui-text-with-icon + .mfui-button-link-box {
3014
+ margin-top: 48px;
3015
+ }
3016
+ .mfui-container .mfui-text-with-icon + .mfui-download-links {
3017
+ margin-top: 48px;
3018
+ }
3019
+ .mfui-container .mfui-text-with-icon + .mfui-text-box {
3020
+ margin-top: 32px;
3021
+ }
3022
+ .mfui-container .mfui-text-with-icon + .mfui-picture-with-description {
3023
+ margin-top: 56px;
3024
+ }
3025
+ .mfui-container .mfui-text-with-icon + .mfui-store-banner {
3026
+ margin-top: 56px;
3027
+ }
3028
+ .mfui-container .mfui-text-with-icon + .mfui-button-banner {
3029
+ margin-top: 56px;
3030
+ }
3031
+ .mfui-container .mfui-text-with-icon + .mfui-steps {
3032
+ margin-top: 56px;
3033
+ }
3034
+ }
2872
3035
  .mfui-container_disable-padding-top {
2873
3036
  padding-top: 0 !important;
2874
3037
  }
@@ -161,7 +161,16 @@ h5 {
161
161
  display: flex;
162
162
  }
163
163
  .mfui-store-banner__qr-code {
164
+ -ms-flex-item-align: center;
165
+ align-self: center;
166
+ -webkit-box-sizing: border-box;
167
+ box-sizing: border-box;
168
+ width: 90px;
169
+ height: 90px;
164
170
  margin-right: 16px;
171
+ border: 1px solid #EDEDED;
172
+ border-radius: 8px;
173
+ background-color: #FFFFFF;
165
174
  }
166
175
  @media screen and (max-width: 767px) {
167
176
  .mfui-store-banner__qr-code {
@@ -182,6 +191,9 @@ h5 {
182
191
  .mfui-store-banner__store-link {
183
192
  width: 136px;
184
193
  height: 40px;
194
+ margin-right: 8px;
195
+ margin-bottom: 10px;
196
+ margin-left: 8px;
185
197
  }
186
198
  @media screen and (max-width: 767px) {
187
199
  .mfui-store-banner__store-link {
@@ -189,9 +201,8 @@ h5 {
189
201
  height: 35px;
190
202
  }
191
203
  }
192
- .mfui-store-banner__store-link:not(:last-child) {
193
- margin-right: 16px;
194
- margin-bottom: 10px;
204
+ .mfui-store-banner__store-link:last-child {
205
+ margin-bottom: 0;
195
206
  }
196
207
  .mfui-store-banner__stores {
197
208
  display: -webkit-box;
@@ -210,6 +221,11 @@ h5 {
210
221
  justify-content: center;
211
222
  }
212
223
  }
224
+ @media screen and (min-width: 768px) {
225
+ .mfui-store-banner__stores {
226
+ margin-left: -8px;
227
+ }
228
+ }
213
229
  .mfui-store-banner__text {
214
230
  margin-bottom: 32px;
215
231
  }
@@ -231,16 +247,10 @@ h5 {
231
247
  -o-object-fit: contain;
232
248
  object-fit: contain;
233
249
  }
234
- @media screen and (min-width: 768px) and (max-width: 1023px) {
235
- .mfui-store-banner__links_three .mfui-store-banner__qr-code {
236
- width: 120px;
237
- height: 120px;
238
- }
239
- }
240
250
  @media screen and (min-width: 1280px) {
241
251
  .mfui-store-banner__links_three .mfui-store-banner__qr-code {
242
- max-width: 88px;
243
- max-height: 88px;
252
+ max-width: 90px;
253
+ max-height: 90px;
244
254
  }
245
255
  }
246
256
  .mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores {
@@ -262,12 +272,6 @@ h5 {
262
272
  margin: 0 auto;
263
273
  }
264
274
  }
265
- .mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores .mfui-store-banner__store-link {
266
- margin-right: 16px;
267
- }
268
- .mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores .mfui-store-banner__store-link:not(:first-child) {
269
- margin-right: 0;
270
- }
271
275
  .mfui-store-banner__links_three .mfui-store-banner__store-link {
272
276
  width: 136px;
273
277
  height: 40px;
@@ -286,8 +290,3 @@ h5 {
286
290
  margin-bottom: 16px;
287
291
  }
288
292
  }
289
- @media screen and (max-width: 1023px) {
290
- .mfui-store-banner__links_three .mfui-store-banner__store-link:not(:first-child) {
291
- margin-right: 0;
292
- }
293
- }
@@ -14,3 +14,12 @@ h5 {
14
14
  .mfui-text-box_text-center {
15
15
  text-align: center;
16
16
  }
17
+ .mfui-text-box .mfui-text-with-icon {
18
+ margin: 24px 0;
19
+ }
20
+ .mfui-text-box .mfui-text-with-icon + .mfui-header {
21
+ margin-top: 32px;
22
+ }
23
+ .mfui-text-box .mfui-text-box-picture + .mfui-text-with-icon {
24
+ margin: 32px 0 24px;
25
+ }
@@ -0,0 +1,57 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5 {
6
+ margin: 0;
7
+ }
8
+ .mfui-text-with-icon__item {
9
+ display: -webkit-box;
10
+ display: -ms-flexbox;
11
+ display: flex;
12
+ -webkit-box-align: center;
13
+ -ms-flex-align: center;
14
+ align-items: center;
15
+ }
16
+ @media screen and (max-width: 767px) {
17
+ .mfui-text-with-icon__item {
18
+ -webkit-box-orient: vertical;
19
+ -webkit-box-direction: normal;
20
+ -ms-flex-direction: column;
21
+ flex-direction: column;
22
+ }
23
+ }
24
+ .mfui-text-with-icon__item:not(:first-of-type) {
25
+ margin-top: 16px;
26
+ }
27
+ @media screen and (max-width: 767px) {
28
+ .mfui-text-with-icon__item:not(:first-of-type) {
29
+ margin-top: 24px;
30
+ }
31
+ }
32
+ .mfui-text-with-icon__header {
33
+ margin-bottom: 24px;
34
+ }
35
+ @media screen and (max-width: 767px) {
36
+ .mfui-text-with-icon__header {
37
+ text-align: center;
38
+ }
39
+ }
40
+ .mfui-text-with-icon__svg-icon {
41
+ width: 40px;
42
+ min-width: 40px;
43
+ height: 40px;
44
+ min-height: 40px;
45
+ overflow: hidden;
46
+ }
47
+ @media screen and (min-width: 768px) {
48
+ .mfui-text-with-icon__svg-icon {
49
+ margin-right: 16px;
50
+ }
51
+ }
52
+ @media screen and (max-width: 767px) {
53
+ .mfui-text-with-icon__text {
54
+ margin-top: 12px;
55
+ text-align: center;
56
+ }
57
+ }
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { IFilterDataAttrs } from '@megafon/ui-helpers';
3
+ import './TextWithIcon.less';
4
+ export interface IItem {
5
+ /** Текст */
6
+ text: string;
7
+ /** Иконка */
8
+ icon: React.ReactNode;
9
+ }
10
+ export interface ITextWithIconProps extends IFilterDataAttrs {
11
+ /** Список строк с иконками */
12
+ items: IItem[];
13
+ /** Заголовок */
14
+ title?: string;
15
+ /** Ссылка на корневой элемент */
16
+ rootRef?: React.Ref<HTMLDivElement>;
17
+ /** Дополнительный класс для корневого элемента */
18
+ className?: string;
19
+ }
20
+ declare const TextWithIcon: React.FC<ITextWithIconProps>;
21
+ export default TextWithIcon;
@@ -0,0 +1,53 @@
1
+ import "core-js/modules/es.array.map";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import * as React from 'react';
4
+ import { Header, Grid, GridColumn } from '@megafon/ui-core';
5
+ import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
6
+ import * as PropTypes from 'prop-types';
7
+ import "./TextWithIcon.css";
8
+ var cn = cnCreate('mfui-text-with-icon');
9
+
10
+ var TextWithIcon = function TextWithIcon(_ref) {
11
+ var items = _ref.items,
12
+ title = _ref.title,
13
+ rootRef = _ref.rootRef,
14
+ dataAttrs = _ref.dataAttrs,
15
+ className = _ref.className;
16
+ return /*#__PURE__*/React.createElement("div", _extends({
17
+ className: cn([className]),
18
+ ref: rootRef
19
+ }, filterDataAttrs(dataAttrs)), /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(GridColumn, {
20
+ mobile: '12',
21
+ tablet: '7',
22
+ desktop: '6',
23
+ wide: '6'
24
+ }, title && /*#__PURE__*/React.createElement(Header, {
25
+ className: cn('header'),
26
+ as: "h5"
27
+ }, title), items.map(function (_ref2, i) {
28
+ var text = _ref2.text,
29
+ icon = _ref2.icon;
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: cn('item'),
32
+ key: i
33
+ }, /*#__PURE__*/React.createElement("div", {
34
+ className: cn('svg-icon')
35
+ }, icon), /*#__PURE__*/React.createElement("div", {
36
+ className: cn('text')
37
+ }, text));
38
+ }))));
39
+ };
40
+
41
+ TextWithIcon.propTypes = {
42
+ items: PropTypes.arrayOf(PropTypes.shape({
43
+ text: PropTypes.string.isRequired,
44
+ icon: PropTypes.node.isRequired
45
+ }).isRequired).isRequired,
46
+ title: PropTypes.string,
47
+ rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
48
+ current: PropTypes.elementType
49
+ }), PropTypes.any])]),
50
+ dataAttrs: PropTypes.objectOf(PropTypes.string.isRequired),
51
+ className: PropTypes.string
52
+ };
53
+ export default TextWithIcon;
@@ -6,7 +6,7 @@ export interface IContent {
6
6
  /** Текст-описание */
7
7
  description: string | React.ReactNode[] | React.ReactNode;
8
8
  /** Текст кнопки */
9
- buttonTitle: string;
9
+ buttonTitle?: string;
10
10
  /** Добавляет атрибут download для тега <a> компонента Button */
11
11
  buttonDownload?: boolean;
12
12
  /** Ссылка на кнопке */
@@ -81,7 +81,7 @@ var VideoBlock = function VideoBlock(_ref) {
81
81
  className: cn('header')
82
82
  }, title), /*#__PURE__*/React.createElement("div", {
83
83
  className: cn('description', [classes.description])
84
- }, description), /*#__PURE__*/React.createElement(Button, {
84
+ }, description), buttonTitle && /*#__PURE__*/React.createElement(Button, {
85
85
  className: cn('button', [classes.button]),
86
86
  href: href,
87
87
  onClick: onButtonClick,
@@ -100,7 +100,7 @@ var VideoBlock = function VideoBlock(_ref) {
100
100
  orderTablet: "2",
101
101
  orderMobile: "2",
102
102
  key: "column-content"
103
- }, renderContent && renderContent(content)));
103
+ }, renderContent(content)));
104
104
  }
105
105
 
106
106
  columns.push( /*#__PURE__*/React.createElement(GridColumn, {
@@ -139,7 +139,7 @@ VideoBlock.propTypes = {
139
139
  title: PropTypes.string.isRequired,
140
140
  description: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
141
141
  href: PropTypes.string,
142
- buttonTitle: PropTypes.string.isRequired,
142
+ buttonTitle: PropTypes.string,
143
143
  buttonDownload: PropTypes.bool,
144
144
  onButtonClick: PropTypes.func
145
145
  }),
@@ -29,6 +29,7 @@ export { default as TableRow } from './components/Table/TableRow';
29
29
  export { default as TabsBox } from './components/TabsBox/TabsBox';
30
30
  export { default as TextBox } from './components/TextBox/TextBox';
31
31
  export { default as TextBoxPicture } from './components/TextBox/TextBoxPicture';
32
+ export { default as TextWithIcon } from './components/TextWithIcon/TextWithIcon';
32
33
  export { default as TitleDescriptionBox } from './components/TitleDescriptionBox/TitleDescriptionBox';
33
34
  export { default as VideoBanner } from './components/VideoBanner/VideoBanner';
34
35
  export { default as VideoBlock } from './components/VideoBlock/VideoBlock';
package/dist/es/index.js CHANGED
@@ -29,6 +29,7 @@ export { default as TableRow } from "./components/Table/TableRow";
29
29
  export { default as TabsBox } from "./components/TabsBox/TabsBox";
30
30
  export { default as TextBox } from "./components/TextBox/TextBox";
31
31
  export { default as TextBoxPicture } from "./components/TextBox/TextBoxPicture";
32
+ export { default as TextWithIcon } from "./components/TextWithIcon/TextWithIcon";
32
33
  export { default as TitleDescriptionBox } from "./components/TitleDescriptionBox/TitleDescriptionBox";
33
34
  export { default as VideoBanner } from "./components/VideoBanner/VideoBanner";
34
35
  export { default as VideoBlock } from "./components/VideoBlock/VideoBlock";
@@ -16,6 +16,7 @@ export interface IAccordionBox {
16
16
  /** Центрирование по горизонтали для расширения 1280+ */
17
17
  hCenterAlignWide?: boolean;
18
18
  /** Вертикальные отступы */
19
+ /** @deprecated */
19
20
  hasVerticalPaddings?: boolean;
20
21
  /** Дополнительный класс для корнеовго элемента */
21
22
  className?: string;
@@ -66,7 +66,9 @@ AccordionBox.propTypes = {
66
66
  isFullWidth: PropTypes.bool,
67
67
  isOpened: PropTypes.bool,
68
68
  hCenterAlignWide: PropTypes.bool,
69
- hasVerticalPaddings: PropTypes.bool,
69
+ hasVerticalPaddings: function hasVerticalPaddings(props, propName) {
70
+ return props[propName] && new Error('Failed prop type: Prop "hasVerticalPaddings" is deprecated');
71
+ },
70
72
  className: PropTypes.string,
71
73
  classes: PropTypes.shape({
72
74
  openedClass: PropTypes.string,
@@ -193,7 +193,9 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
193
193
  };
194
194
  }, [iconPosition, inOneColumn, resizeHandler]);
195
195
  return /*#__PURE__*/React.createElement("div", {
196
- className: cn([className, classes.root]),
196
+ className: cn({
197
+ 'one-column': inOneColumn
198
+ }, [className, classes.root]),
197
199
  ref: rootRef
198
200
  }, /*#__PURE__*/React.createElement("div", {
199
201
  className: cn('inner')
@@ -210,7 +212,7 @@ var BenefitsIcons = function BenefitsIcons(_ref) {
210
212
  className: classes.gridColumn,
211
213
  key: i
212
214
  }, columnConfig), /*#__PURE__*/React.createElement(_BenefitsIconsTile["default"], {
213
- className: classes.item,
215
+ className: cn('tile', [classes.item]),
214
216
  title: title,
215
217
  text: text,
216
218
  icon: icon,
@@ -12,3 +12,22 @@ h5 {
12
12
  .mfui-benefits-icons__inner {
13
13
  margin-bottom: -48px;
14
14
  }
15
+ .mfui-benefits-icons__tile {
16
+ margin-bottom: 48px;
17
+ }
18
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__inner {
19
+ margin-bottom: -24px;
20
+ }
21
+ @media screen and (max-width: 767px) {
22
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__inner {
23
+ margin-bottom: -32px;
24
+ }
25
+ }
26
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__tile {
27
+ margin-bottom: 24px;
28
+ }
29
+ @media screen and (max-width: 767px) {
30
+ .mfui-benefits-icons_one-column .mfui-benefits-icons__tile {
31
+ margin-bottom: 32px;
32
+ }
33
+ }
@@ -5,9 +5,6 @@ h4,
5
5
  h5 {
6
6
  margin: 0;
7
7
  }
8
- .mfui-benefits-icons-tile {
9
- margin-bottom: 48px;
10
- }
11
8
  .mfui-benefits-icons-tile .mfui-benefits-icons-tile__svg-icon {
12
9
  margin-bottom: 10px;
13
10
  }
@@ -344,6 +344,9 @@ h5 {
344
344
  .mfui-container .mfui-title-description-box + .mfui-download-links {
345
345
  margin-top: 32px;
346
346
  }
347
+ .mfui-container .mfui-title-description-box + .mfui-text-with-icon {
348
+ margin-top: 24px;
349
+ }
347
350
  @media screen and (min-width: 768px) and (max-width: 1023px) {
348
351
  .mfui-container .mfui-title-description-box + .mfui-benefits-icons {
349
352
  margin-top: 48px;
@@ -2230,6 +2233,9 @@ h5 {
2230
2233
  .mfui-container .mfui-text-box + .mfui-download-links {
2231
2234
  margin-top: 32px;
2232
2235
  }
2236
+ .mfui-container .mfui-text-box + .mfui-text-with-icon {
2237
+ margin-top: 32px;
2238
+ }
2233
2239
  @media screen and (min-width: 768px) and (max-width: 1023px) {
2234
2240
  .mfui-container .mfui-text-box + .mfui-benefits-icons {
2235
2241
  margin-top: 48px;
@@ -2869,6 +2875,163 @@ h5 {
2869
2875
  .mfui-container .mfui-page-title + .mfui-button-link-box {
2870
2876
  margin-top: 0 !important;
2871
2877
  }
2878
+ .mfui-container .mfui-text-with-icon + .mfui-benefits-pictures {
2879
+ margin-top: 40px;
2880
+ }
2881
+ .mfui-container .mfui-text-with-icon + .mfui-cards-box {
2882
+ margin-top: 40px;
2883
+ }
2884
+ .mfui-container .mfui-text-with-icon + .mfui-carousel-box {
2885
+ margin-top: 40px;
2886
+ }
2887
+ .mfui-container .mfui-text-with-icon + .mfui-video-block {
2888
+ margin-top: 40px;
2889
+ }
2890
+ .mfui-container .mfui-text-with-icon + .mfui-tabs-box {
2891
+ margin-top: 40px;
2892
+ }
2893
+ .mfui-container .mfui-text-with-icon + .mfui-partners {
2894
+ margin-top: 40px;
2895
+ }
2896
+ .mfui-container .mfui-text-with-icon + .mfui-instructions {
2897
+ margin-top: 40px;
2898
+ }
2899
+ .mfui-container .mfui-text-with-icon + .mfui-property {
2900
+ margin-top: 40px;
2901
+ }
2902
+ .mfui-container .mfui-text-with-icon + .mfui-table {
2903
+ margin-top: 40px;
2904
+ }
2905
+ .mfui-container .mfui-text-with-icon + .mfui-accordion-box {
2906
+ margin-top: 40px;
2907
+ }
2908
+ .mfui-container .mfui-text-with-icon + .mfui-button-link-box {
2909
+ margin-top: 40px;
2910
+ }
2911
+ .mfui-container .mfui-text-with-icon + .mfui-download-links {
2912
+ margin-top: 40px;
2913
+ }
2914
+ .mfui-container .mfui-text-with-icon + .mfui-text-box {
2915
+ margin-top: 32px;
2916
+ }
2917
+ .mfui-container .mfui-text-with-icon + .mfui-picture-with-description {
2918
+ margin-top: 40px;
2919
+ }
2920
+ .mfui-container .mfui-text-with-icon + .mfui-store-banner {
2921
+ margin-top: 40px;
2922
+ }
2923
+ .mfui-container .mfui-text-with-icon + .mfui-button-banner {
2924
+ margin-top: 40px;
2925
+ }
2926
+ .mfui-container .mfui-text-with-icon + .mfui-steps {
2927
+ margin-top: 40px;
2928
+ }
2929
+ @media screen and (min-width: 768px) and (max-width: 1023px) {
2930
+ .mfui-container .mfui-text-with-icon + .mfui-benefits-pictures {
2931
+ margin-top: 48px;
2932
+ }
2933
+ .mfui-container .mfui-text-with-icon + .mfui-cards-box {
2934
+ margin-top: 48px;
2935
+ }
2936
+ .mfui-container .mfui-text-with-icon + .mfui-carousel-box {
2937
+ margin-top: 48px;
2938
+ }
2939
+ .mfui-container .mfui-text-with-icon + .mfui-video-block {
2940
+ margin-top: 48px;
2941
+ }
2942
+ .mfui-container .mfui-text-with-icon + .mfui-tabs-box {
2943
+ margin-top: 48px;
2944
+ }
2945
+ .mfui-container .mfui-text-with-icon + .mfui-partners {
2946
+ margin-top: 48px;
2947
+ }
2948
+ .mfui-container .mfui-text-with-icon + .mfui-instructions {
2949
+ margin-top: 48px;
2950
+ }
2951
+ .mfui-container .mfui-text-with-icon + .mfui-property {
2952
+ margin-top: 48px;
2953
+ }
2954
+ .mfui-container .mfui-text-with-icon + .mfui-table {
2955
+ margin-top: 48px;
2956
+ }
2957
+ .mfui-container .mfui-text-with-icon + .mfui-accordion-box {
2958
+ margin-top: 48px;
2959
+ }
2960
+ .mfui-container .mfui-text-with-icon + .mfui-button-link-box {
2961
+ margin-top: 48px;
2962
+ }
2963
+ .mfui-container .mfui-text-with-icon + .mfui-download-links {
2964
+ margin-top: 48px;
2965
+ }
2966
+ .mfui-container .mfui-text-with-icon + .mfui-text-box {
2967
+ margin-top: 32px;
2968
+ }
2969
+ .mfui-container .mfui-text-with-icon + .mfui-picture-with-description {
2970
+ margin-top: 48px;
2971
+ }
2972
+ .mfui-container .mfui-text-with-icon + .mfui-store-banner {
2973
+ margin-top: 48px;
2974
+ }
2975
+ .mfui-container .mfui-text-with-icon + .mfui-button-banner {
2976
+ margin-top: 48px;
2977
+ }
2978
+ .mfui-container .mfui-text-with-icon + .mfui-steps {
2979
+ margin-top: 48px;
2980
+ }
2981
+ }
2982
+ @media screen and (min-width: 1024px) {
2983
+ .mfui-container .mfui-text-with-icon + .mfui-benefits-pictures {
2984
+ margin-top: 56px;
2985
+ }
2986
+ .mfui-container .mfui-text-with-icon + .mfui-cards-box {
2987
+ margin-top: 56px;
2988
+ }
2989
+ .mfui-container .mfui-text-with-icon + .mfui-carousel-box {
2990
+ margin-top: 56px;
2991
+ }
2992
+ .mfui-container .mfui-text-with-icon + .mfui-video-block {
2993
+ margin-top: 56px;
2994
+ }
2995
+ .mfui-container .mfui-text-with-icon + .mfui-tabs-box {
2996
+ margin-top: 56px;
2997
+ }
2998
+ .mfui-container .mfui-text-with-icon + .mfui-partners {
2999
+ margin-top: 56px;
3000
+ }
3001
+ .mfui-container .mfui-text-with-icon + .mfui-instructions {
3002
+ margin-top: 56px;
3003
+ }
3004
+ .mfui-container .mfui-text-with-icon + .mfui-property {
3005
+ margin-top: 56px;
3006
+ }
3007
+ .mfui-container .mfui-text-with-icon + .mfui-table {
3008
+ margin-top: 56px;
3009
+ }
3010
+ .mfui-container .mfui-text-with-icon + .mfui-accordion-box {
3011
+ margin-top: 56px;
3012
+ }
3013
+ .mfui-container .mfui-text-with-icon + .mfui-button-link-box {
3014
+ margin-top: 48px;
3015
+ }
3016
+ .mfui-container .mfui-text-with-icon + .mfui-download-links {
3017
+ margin-top: 48px;
3018
+ }
3019
+ .mfui-container .mfui-text-with-icon + .mfui-text-box {
3020
+ margin-top: 32px;
3021
+ }
3022
+ .mfui-container .mfui-text-with-icon + .mfui-picture-with-description {
3023
+ margin-top: 56px;
3024
+ }
3025
+ .mfui-container .mfui-text-with-icon + .mfui-store-banner {
3026
+ margin-top: 56px;
3027
+ }
3028
+ .mfui-container .mfui-text-with-icon + .mfui-button-banner {
3029
+ margin-top: 56px;
3030
+ }
3031
+ .mfui-container .mfui-text-with-icon + .mfui-steps {
3032
+ margin-top: 56px;
3033
+ }
3034
+ }
2872
3035
  .mfui-container_disable-padding-top {
2873
3036
  padding-top: 0 !important;
2874
3037
  }
@@ -161,7 +161,16 @@ h5 {
161
161
  display: flex;
162
162
  }
163
163
  .mfui-store-banner__qr-code {
164
+ -ms-flex-item-align: center;
165
+ align-self: center;
166
+ -webkit-box-sizing: border-box;
167
+ box-sizing: border-box;
168
+ width: 90px;
169
+ height: 90px;
164
170
  margin-right: 16px;
171
+ border: 1px solid #EDEDED;
172
+ border-radius: 8px;
173
+ background-color: #FFFFFF;
165
174
  }
166
175
  @media screen and (max-width: 767px) {
167
176
  .mfui-store-banner__qr-code {
@@ -182,6 +191,9 @@ h5 {
182
191
  .mfui-store-banner__store-link {
183
192
  width: 136px;
184
193
  height: 40px;
194
+ margin-right: 8px;
195
+ margin-bottom: 10px;
196
+ margin-left: 8px;
185
197
  }
186
198
  @media screen and (max-width: 767px) {
187
199
  .mfui-store-banner__store-link {
@@ -189,9 +201,8 @@ h5 {
189
201
  height: 35px;
190
202
  }
191
203
  }
192
- .mfui-store-banner__store-link:not(:last-child) {
193
- margin-right: 16px;
194
- margin-bottom: 10px;
204
+ .mfui-store-banner__store-link:last-child {
205
+ margin-bottom: 0;
195
206
  }
196
207
  .mfui-store-banner__stores {
197
208
  display: -webkit-box;
@@ -210,6 +221,11 @@ h5 {
210
221
  justify-content: center;
211
222
  }
212
223
  }
224
+ @media screen and (min-width: 768px) {
225
+ .mfui-store-banner__stores {
226
+ margin-left: -8px;
227
+ }
228
+ }
213
229
  .mfui-store-banner__text {
214
230
  margin-bottom: 32px;
215
231
  }
@@ -231,16 +247,10 @@ h5 {
231
247
  -o-object-fit: contain;
232
248
  object-fit: contain;
233
249
  }
234
- @media screen and (min-width: 768px) and (max-width: 1023px) {
235
- .mfui-store-banner__links_three .mfui-store-banner__qr-code {
236
- width: 120px;
237
- height: 120px;
238
- }
239
- }
240
250
  @media screen and (min-width: 1280px) {
241
251
  .mfui-store-banner__links_three .mfui-store-banner__qr-code {
242
- max-width: 88px;
243
- max-height: 88px;
252
+ max-width: 90px;
253
+ max-height: 90px;
244
254
  }
245
255
  }
246
256
  .mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores {
@@ -262,12 +272,6 @@ h5 {
262
272
  margin: 0 auto;
263
273
  }
264
274
  }
265
- .mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores .mfui-store-banner__store-link {
266
- margin-right: 16px;
267
- }
268
- .mfui-store-banner__links_three .mfui-store-banner__qr-code + .mfui-store-banner__stores .mfui-store-banner__store-link:not(:first-child) {
269
- margin-right: 0;
270
- }
271
275
  .mfui-store-banner__links_three .mfui-store-banner__store-link {
272
276
  width: 136px;
273
277
  height: 40px;
@@ -286,8 +290,3 @@ h5 {
286
290
  margin-bottom: 16px;
287
291
  }
288
292
  }
289
- @media screen and (max-width: 1023px) {
290
- .mfui-store-banner__links_three .mfui-store-banner__store-link:not(:first-child) {
291
- margin-right: 0;
292
- }
293
- }
@@ -14,3 +14,12 @@ h5 {
14
14
  .mfui-text-box_text-center {
15
15
  text-align: center;
16
16
  }
17
+ .mfui-text-box .mfui-text-with-icon {
18
+ margin: 24px 0;
19
+ }
20
+ .mfui-text-box .mfui-text-with-icon + .mfui-header {
21
+ margin-top: 32px;
22
+ }
23
+ .mfui-text-box .mfui-text-box-picture + .mfui-text-with-icon {
24
+ margin: 32px 0 24px;
25
+ }
@@ -0,0 +1,57 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5 {
6
+ margin: 0;
7
+ }
8
+ .mfui-text-with-icon__item {
9
+ display: -webkit-box;
10
+ display: -ms-flexbox;
11
+ display: flex;
12
+ -webkit-box-align: center;
13
+ -ms-flex-align: center;
14
+ align-items: center;
15
+ }
16
+ @media screen and (max-width: 767px) {
17
+ .mfui-text-with-icon__item {
18
+ -webkit-box-orient: vertical;
19
+ -webkit-box-direction: normal;
20
+ -ms-flex-direction: column;
21
+ flex-direction: column;
22
+ }
23
+ }
24
+ .mfui-text-with-icon__item:not(:first-of-type) {
25
+ margin-top: 16px;
26
+ }
27
+ @media screen and (max-width: 767px) {
28
+ .mfui-text-with-icon__item:not(:first-of-type) {
29
+ margin-top: 24px;
30
+ }
31
+ }
32
+ .mfui-text-with-icon__header {
33
+ margin-bottom: 24px;
34
+ }
35
+ @media screen and (max-width: 767px) {
36
+ .mfui-text-with-icon__header {
37
+ text-align: center;
38
+ }
39
+ }
40
+ .mfui-text-with-icon__svg-icon {
41
+ width: 40px;
42
+ min-width: 40px;
43
+ height: 40px;
44
+ min-height: 40px;
45
+ overflow: hidden;
46
+ }
47
+ @media screen and (min-width: 768px) {
48
+ .mfui-text-with-icon__svg-icon {
49
+ margin-right: 16px;
50
+ }
51
+ }
52
+ @media screen and (max-width: 767px) {
53
+ .mfui-text-with-icon__text {
54
+ margin-top: 12px;
55
+ text-align: center;
56
+ }
57
+ }
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { IFilterDataAttrs } from '@megafon/ui-helpers';
3
+ import './TextWithIcon.less';
4
+ export interface IItem {
5
+ /** Текст */
6
+ text: string;
7
+ /** Иконка */
8
+ icon: React.ReactNode;
9
+ }
10
+ export interface ITextWithIconProps extends IFilterDataAttrs {
11
+ /** Список строк с иконками */
12
+ items: IItem[];
13
+ /** Заголовок */
14
+ title?: string;
15
+ /** Ссылка на корневой элемент */
16
+ rootRef?: React.Ref<HTMLDivElement>;
17
+ /** Дополнительный класс для корневого элемента */
18
+ className?: string;
19
+ }
20
+ declare const TextWithIcon: React.FC<ITextWithIconProps>;
21
+ export default TextWithIcon;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ require("core-js/modules/es.array.map");
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var React = _interopRequireWildcard(require("react"));
15
+
16
+ var _uiCore = require("@megafon/ui-core");
17
+
18
+ var _uiHelpers = require("@megafon/ui-helpers");
19
+
20
+ var PropTypes = _interopRequireWildcard(require("prop-types"));
21
+
22
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
23
+
24
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
+
28
+ var cn = (0, _uiHelpers.cnCreate)('mfui-text-with-icon');
29
+
30
+ var TextWithIcon = function TextWithIcon(_ref) {
31
+ var items = _ref.items,
32
+ title = _ref.title,
33
+ rootRef = _ref.rootRef,
34
+ dataAttrs = _ref.dataAttrs,
35
+ className = _ref.className;
36
+ return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
37
+ className: cn([className]),
38
+ ref: rootRef
39
+ }, (0, _uiHelpers.filterDataAttrs)(dataAttrs)), /*#__PURE__*/React.createElement(_uiCore.Grid, null, /*#__PURE__*/React.createElement(_uiCore.GridColumn, {
40
+ mobile: '12',
41
+ tablet: '7',
42
+ desktop: '6',
43
+ wide: '6'
44
+ }, title && /*#__PURE__*/React.createElement(_uiCore.Header, {
45
+ className: cn('header'),
46
+ as: "h5"
47
+ }, title), items.map(function (_ref2, i) {
48
+ var text = _ref2.text,
49
+ icon = _ref2.icon;
50
+ return /*#__PURE__*/React.createElement("div", {
51
+ className: cn('item'),
52
+ key: i
53
+ }, /*#__PURE__*/React.createElement("div", {
54
+ className: cn('svg-icon')
55
+ }, icon), /*#__PURE__*/React.createElement("div", {
56
+ className: cn('text')
57
+ }, text));
58
+ }))));
59
+ };
60
+
61
+ TextWithIcon.propTypes = {
62
+ items: PropTypes.arrayOf(PropTypes.shape({
63
+ text: PropTypes.string.isRequired,
64
+ icon: PropTypes.node.isRequired
65
+ }).isRequired).isRequired,
66
+ title: PropTypes.string,
67
+ rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
68
+ current: PropTypes.elementType
69
+ }), PropTypes.any])]),
70
+ dataAttrs: PropTypes.objectOf(PropTypes.string.isRequired),
71
+ className: PropTypes.string
72
+ };
73
+ var _default = TextWithIcon;
74
+ exports["default"] = _default;
@@ -6,7 +6,7 @@ export interface IContent {
6
6
  /** Текст-описание */
7
7
  description: string | React.ReactNode[] | React.ReactNode;
8
8
  /** Текст кнопки */
9
- buttonTitle: string;
9
+ buttonTitle?: string;
10
10
  /** Добавляет атрибут download для тега <a> компонента Button */
11
11
  buttonDownload?: boolean;
12
12
  /** Ссылка на кнопке */
@@ -101,7 +101,7 @@ var VideoBlock = function VideoBlock(_ref) {
101
101
  className: cn('header')
102
102
  }, title), /*#__PURE__*/_react["default"].createElement("div", {
103
103
  className: cn('description', [classes.description])
104
- }, description), /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
104
+ }, description), buttonTitle && /*#__PURE__*/_react["default"].createElement(_uiCore.Button, {
105
105
  className: cn('button', [classes.button]),
106
106
  href: href,
107
107
  onClick: onButtonClick,
@@ -121,7 +121,7 @@ var VideoBlock = function VideoBlock(_ref) {
121
121
  orderTablet: "2",
122
122
  orderMobile: "2",
123
123
  key: "column-content"
124
- }, renderContent && renderContent(content)));
124
+ }, renderContent(content)));
125
125
  }
126
126
 
127
127
  columns.push( /*#__PURE__*/_react["default"].createElement(_uiCore.GridColumn, {
@@ -161,7 +161,7 @@ VideoBlock.propTypes = {
161
161
  title: _propTypes["default"].string.isRequired,
162
162
  description: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
163
163
  href: _propTypes["default"].string,
164
- buttonTitle: _propTypes["default"].string.isRequired,
164
+ buttonTitle: _propTypes["default"].string,
165
165
  buttonDownload: _propTypes["default"].bool,
166
166
  onButtonClick: _propTypes["default"].func
167
167
  }),
@@ -29,6 +29,7 @@ export { default as TableRow } from './components/Table/TableRow';
29
29
  export { default as TabsBox } from './components/TabsBox/TabsBox';
30
30
  export { default as TextBox } from './components/TextBox/TextBox';
31
31
  export { default as TextBoxPicture } from './components/TextBox/TextBoxPicture';
32
+ export { default as TextWithIcon } from './components/TextWithIcon/TextWithIcon';
32
33
  export { default as TitleDescriptionBox } from './components/TitleDescriptionBox/TitleDescriptionBox';
33
34
  export { default as VideoBanner } from './components/VideoBanner/VideoBanner';
34
35
  export { default as VideoBlock } from './components/VideoBlock/VideoBlock';
package/dist/lib/index.js CHANGED
@@ -189,6 +189,12 @@ Object.defineProperty(exports, "TextBoxPicture", {
189
189
  return _TextBoxPicture["default"];
190
190
  }
191
191
  });
192
+ Object.defineProperty(exports, "TextWithIcon", {
193
+ enumerable: true,
194
+ get: function get() {
195
+ return _TextWithIcon["default"];
196
+ }
197
+ });
192
198
  Object.defineProperty(exports, "TitleDescriptionBox", {
193
199
  enumerable: true,
194
200
  get: function get() {
@@ -270,6 +276,8 @@ var _TextBox = _interopRequireDefault(require("./components/TextBox/TextBox"));
270
276
 
271
277
  var _TextBoxPicture = _interopRequireDefault(require("./components/TextBox/TextBoxPicture"));
272
278
 
279
+ var _TextWithIcon = _interopRequireDefault(require("./components/TextWithIcon/TextWithIcon"));
280
+
273
281
  var _TitleDescriptionBox = _interopRequireDefault(require("./components/TitleDescriptionBox/TitleDescriptionBox"));
274
282
 
275
283
  var _VideoBanner = _interopRequireDefault(require("./components/VideoBanner/VideoBanner"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-shared",
3
- "version": "2.1.4",
3
+ "version": "2.3.0",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -51,7 +51,7 @@
51
51
  "@babel/preset-env": "^7.8.6",
52
52
  "@babel/preset-react": "^7.8.3",
53
53
  "@babel/preset-typescript": "^7.8.3",
54
- "@megafon/ui-icons": "^0.1.1",
54
+ "@megafon/ui-icons": "^0.2.0",
55
55
  "@svgr/core": "^2.4.1",
56
56
  "@types/enzyme": "^3.10.5",
57
57
  "@types/enzyme-adapter-react-16": "^1.0.6",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  "dependencies": {
83
83
  "@babel/runtime": "^7.8.4",
84
- "@megafon/ui-core": "^2.2.0",
84
+ "@megafon/ui-core": "^2.5.0",
85
85
  "@megafon/ui-helpers": "^1.0.0",
86
86
  "core-js": "^3.6.4",
87
87
  "htmr": "^0.9.2",
@@ -89,5 +89,5 @@
89
89
  "prop-types": "^15.7.2",
90
90
  "swiper": "^6.5.6"
91
91
  },
92
- "gitHead": "26b2f120bd0f51992981718c28cb8cd8138e1870"
92
+ "gitHead": "28c22a646a8c5c18ef4a4060c1b1232aa45db14c"
93
93
  }