@megafon/ui-shared 2.0.0-beta.24 → 2.0.0-beta.240

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 (347) hide show
  1. package/CHANGELOG.md +2292 -0
  2. package/README.md +0 -5
  3. package/dist/es/components/AccordionBox/AccordionBox.css +13 -0
  4. package/dist/es/components/AccordionBox/AccordionBox.d.ts +33 -0
  5. package/dist/es/components/AccordionBox/AccordionBox.js +62 -0
  6. package/dist/es/components/BannerBox/BannerBox.d.ts +5 -0
  7. package/dist/es/components/BannerBox/BannerBox.js +31 -0
  8. package/dist/es/components/BenefitsIcons/BenefitsIcons.d.ts +16 -5
  9. package/dist/es/components/BenefitsIcons/BenefitsIcons.js +79 -14
  10. package/dist/es/components/BenefitsIcons/BenefitsIconsTile.d.ts +3 -2
  11. package/dist/es/components/BenefitsIcons/BenefitsIconsTile.js +13 -12
  12. package/dist/es/components/BenefitsIcons/style/BenefitsIcons.css +1 -1
  13. package/dist/es/components/BenefitsIcons/style/BenefitsIconsTile.css +11 -4
  14. package/dist/es/components/BenefitsIcons/types.d.ts +16 -7
  15. package/dist/es/components/BenefitsIcons/types.js +9 -7
  16. package/dist/es/components/BenefitsPictures/BenefitsPictures.d.ts +12 -3
  17. package/dist/es/components/BenefitsPictures/BenefitsPictures.js +25 -11
  18. package/dist/es/components/BenefitsPictures/BenfitsPictures.css +1 -1
  19. package/dist/es/components/BenefitsPictures/types.d.ts +3 -0
  20. package/dist/es/components/Breadcrumbs/Breadcrumbs.css +46 -0
  21. package/dist/es/components/Breadcrumbs/Breadcrumbs.d.ts +21 -0
  22. package/dist/es/components/Breadcrumbs/Breadcrumbs.js +49 -0
  23. package/dist/es/components/ButtonBanner/ButtonBanner.css +122 -0
  24. package/dist/es/components/ButtonBanner/ButtonBanner.d.ts +54 -0
  25. package/dist/es/components/ButtonBanner/ButtonBanner.js +107 -0
  26. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.d.ts +32 -8
  27. package/dist/es/components/ButtonLinkBox/ButtonLinkBox.js +45 -10
  28. package/dist/es/components/Card/Card.css +130 -0
  29. package/dist/es/components/Card/Card.d.ts +67 -0
  30. package/dist/es/components/Card/Card.js +176 -0
  31. package/dist/es/components/CardsBox/CardsBox.d.ts +15 -0
  32. package/dist/es/components/CardsBox/CardsBox.js +80 -0
  33. package/dist/es/components/CarouselBox/CarouselBox.d.ts +5 -0
  34. package/dist/es/components/CarouselBox/CarouselBox.js +31 -0
  35. package/dist/es/components/Container/Container.css +2830 -0
  36. package/dist/es/components/Container/Container.d.ts +26 -0
  37. package/dist/es/components/Container/Container.js +46 -0
  38. package/dist/es/components/DownloadLinks/DownloadLink.css +36 -0
  39. package/dist/es/components/DownloadLinks/DownloadLink.d.ts +25 -0
  40. package/dist/es/components/DownloadLinks/DownloadLink.js +62 -0
  41. package/dist/es/components/DownloadLinks/DownloadLinks.css +36 -0
  42. package/dist/es/components/DownloadLinks/DownloadLinks.d.ts +10 -0
  43. package/dist/es/components/DownloadLinks/DownloadLinks.js +75 -0
  44. package/dist/es/components/Instructions/Instructions.css +489 -0
  45. package/dist/es/components/Instructions/Instructions.d.ts +52 -0
  46. package/dist/es/components/Instructions/Instructions.js +229 -0
  47. package/dist/es/components/Instructions/img/android.png +0 -0
  48. package/dist/es/components/Instructions/img/blackIphone.png +0 -0
  49. package/dist/es/components/Instructions/img/iphone12.png +0 -0
  50. package/dist/es/components/Instructions/img/laptop.png +0 -0
  51. package/dist/es/components/Instructions/img/newIphone.png +0 -0
  52. package/dist/es/components/Instructions/img/whiteIphone.png +0 -0
  53. package/dist/es/components/PageTitle/PageTitle.css +80 -0
  54. package/dist/es/components/PageTitle/PageTitle.d.ts +23 -0
  55. package/dist/es/components/PageTitle/PageTitle.js +65 -0
  56. package/dist/es/components/Partners/Partners.css +53 -0
  57. package/dist/es/components/Partners/Partners.d.ts +32 -0
  58. package/dist/es/components/Partners/Partners.js +114 -0
  59. package/dist/es/components/PictureWithDescription/PictureWithDescription.css +80 -0
  60. package/dist/es/components/PictureWithDescription/PictureWithDescription.d.ts +28 -0
  61. package/dist/es/components/PictureWithDescription/PictureWithDescription.js +61 -0
  62. package/dist/es/components/Property/Property.css +125 -0
  63. package/dist/es/components/Property/Property.d.ts +33 -0
  64. package/dist/es/components/Property/Property.js +130 -0
  65. package/dist/es/components/Property/PropertyDescription.css +17 -0
  66. package/dist/es/components/Property/PropertyDescription.d.ts +5 -0
  67. package/dist/es/components/Property/PropertyDescription.js +51 -0
  68. package/dist/es/components/Property/types.d.ts +14 -0
  69. package/dist/es/components/Property/types.js +0 -0
  70. package/dist/es/components/Steps/Steps.css +41 -0
  71. package/dist/es/components/Steps/Steps.d.ts +10 -0
  72. package/dist/es/components/Steps/Steps.js +35 -0
  73. package/dist/es/components/Steps/StepsItem.css +37 -0
  74. package/dist/es/components/Steps/StepsItem.d.ts +10 -0
  75. package/dist/es/components/Steps/StepsItem.js +26 -0
  76. package/dist/es/components/StoreBanner/StoreBanner.css +289 -0
  77. package/dist/es/components/StoreBanner/StoreBanner.d.ts +65 -0
  78. package/dist/es/components/StoreBanner/StoreBanner.js +145 -0
  79. package/dist/es/components/StoreBanner/doc/img/new-iphone-screen.png +0 -0
  80. package/dist/es/components/StoreBanner/doc/img/qr-code.png +0 -0
  81. package/dist/es/components/StoreBanner/doc/img/screen.png +0 -0
  82. package/dist/es/components/StoreBanner/img/android.png +0 -0
  83. package/dist/es/components/StoreBanner/img/black-iphone.png +0 -0
  84. package/dist/es/components/StoreBanner/img/new-iphone.png +0 -0
  85. package/dist/es/components/StoreBanner/img/white-iphone.png +0 -0
  86. package/dist/es/components/StoreButton/StoreButton.css +15 -0
  87. package/dist/es/components/StoreButton/StoreButton.d.ts +17 -0
  88. package/dist/es/components/StoreButton/StoreButton.js +37 -0
  89. package/dist/es/components/StoreButton/img/app-store.png +0 -0
  90. package/dist/es/components/StoreButton/img/google-play.png +0 -0
  91. package/dist/es/components/StoreButton/img/huawei-store.png +0 -0
  92. package/dist/es/components/Table/Table.css +153 -0
  93. package/dist/es/components/Table/Table.d.ts +14 -0
  94. package/dist/es/components/Table/Table.js +124 -0
  95. package/dist/es/components/Table/TableCell.d.ts +6 -0
  96. package/dist/es/components/Table/TableCell.js +12 -0
  97. package/dist/es/components/Table/TableRow.d.ts +9 -0
  98. package/dist/es/components/Table/TableRow.js +13 -0
  99. package/dist/es/components/TabsBox/TabBox.d.ts +2 -0
  100. package/dist/es/components/TabsBox/TabBox.js +2 -0
  101. package/dist/es/components/TabsBox/TabsBox.d.ts +8 -0
  102. package/dist/es/components/TabsBox/TabsBox.js +32 -0
  103. package/dist/es/components/TextBox/TextBox.css +16 -0
  104. package/dist/es/components/TextBox/TextBox.d.ts +16 -0
  105. package/dist/es/components/TextBox/TextBox.js +53 -0
  106. package/dist/es/components/TextBox/TextBoxPicture.css +24 -0
  107. package/dist/es/components/TextBox/TextBoxPicture.d.ts +17 -0
  108. package/dist/es/components/TextBox/TextBoxPicture.js +31 -0
  109. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.css +11 -0
  110. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.d.ts +13 -7
  111. package/dist/es/components/TitleDescriptionBox/TitleDescriptionBox.js +33 -13
  112. package/dist/es/components/VideoBanner/VideoBanner.css +216 -0
  113. package/dist/es/components/VideoBanner/VideoBanner.d.ts +90 -0
  114. package/dist/es/components/VideoBanner/VideoBanner.js +272 -0
  115. package/dist/es/components/VideoBlock/VideoBlock.css +127 -0
  116. package/dist/es/components/VideoBlock/VideoBlock.d.ts +49 -0
  117. package/dist/es/components/VideoBlock/VideoBlock.js +147 -0
  118. package/dist/es/constants/throttleTime.d.ts +4 -0
  119. package/dist/es/constants/throttleTime.js +3 -0
  120. package/dist/es/index.d.ts +29 -17
  121. package/dist/es/index.js +30 -18
  122. package/dist/lib/components/AccordionBox/AccordionBox.css +13 -0
  123. package/dist/lib/components/AccordionBox/AccordionBox.d.ts +33 -0
  124. package/dist/lib/components/AccordionBox/AccordionBox.js +80 -0
  125. package/dist/lib/components/BannerBox/BannerBox.d.ts +5 -0
  126. package/dist/lib/components/BannerBox/BannerBox.js +49 -0
  127. package/dist/lib/components/BenefitsIcons/BenefitsIcons.d.ts +16 -5
  128. package/dist/lib/components/BenefitsIcons/BenefitsIcons.js +82 -17
  129. package/dist/lib/components/BenefitsIcons/BenefitsIconsTile.d.ts +3 -2
  130. package/dist/lib/components/BenefitsIcons/BenefitsIconsTile.js +14 -15
  131. package/dist/lib/components/BenefitsIcons/style/BenefitsIcons.css +1 -1
  132. package/dist/lib/components/BenefitsIcons/style/BenefitsIconsTile.css +11 -4
  133. package/dist/lib/components/BenefitsIcons/types.d.ts +16 -7
  134. package/dist/lib/components/BenefitsIcons/types.js +11 -8
  135. package/dist/lib/components/BenefitsPictures/BenefitsPictures.d.ts +12 -3
  136. package/dist/lib/components/BenefitsPictures/BenefitsPictures.js +27 -13
  137. package/dist/lib/components/BenefitsPictures/BenfitsPictures.css +1 -1
  138. package/dist/lib/components/BenefitsPictures/types.d.ts +3 -0
  139. package/dist/lib/components/Breadcrumbs/Breadcrumbs.css +46 -0
  140. package/dist/lib/components/Breadcrumbs/Breadcrumbs.d.ts +21 -0
  141. package/dist/lib/components/Breadcrumbs/Breadcrumbs.js +65 -0
  142. package/dist/lib/components/ButtonBanner/ButtonBanner.css +122 -0
  143. package/dist/lib/components/ButtonBanner/ButtonBanner.d.ts +54 -0
  144. package/dist/lib/components/ButtonBanner/ButtonBanner.js +133 -0
  145. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.d.ts +32 -8
  146. package/dist/lib/components/ButtonLinkBox/ButtonLinkBox.js +53 -13
  147. package/dist/lib/components/Card/Card.css +130 -0
  148. package/dist/lib/components/Card/Card.d.ts +67 -0
  149. package/dist/lib/components/Card/Card.js +199 -0
  150. package/dist/lib/components/CardsBox/CardsBox.d.ts +15 -0
  151. package/dist/lib/components/CardsBox/CardsBox.js +105 -0
  152. package/dist/lib/components/CarouselBox/CarouselBox.d.ts +5 -0
  153. package/dist/lib/components/CarouselBox/CarouselBox.js +49 -0
  154. package/dist/lib/components/Container/Container.css +2830 -0
  155. package/dist/lib/components/Container/Container.d.ts +26 -0
  156. package/dist/lib/components/Container/Container.js +61 -0
  157. package/dist/lib/components/DownloadLinks/DownloadLink.css +36 -0
  158. package/dist/lib/components/DownloadLinks/DownloadLink.d.ts +25 -0
  159. package/dist/lib/components/DownloadLinks/DownloadLink.js +83 -0
  160. package/dist/lib/components/DownloadLinks/DownloadLinks.css +36 -0
  161. package/dist/lib/components/DownloadLinks/DownloadLinks.d.ts +10 -0
  162. package/dist/lib/components/DownloadLinks/DownloadLinks.js +95 -0
  163. package/dist/lib/components/Instructions/Instructions.css +489 -0
  164. package/dist/lib/components/Instructions/Instructions.d.ts +52 -0
  165. package/dist/lib/components/Instructions/Instructions.js +258 -0
  166. package/dist/lib/components/Instructions/img/android.png +0 -0
  167. package/dist/lib/components/Instructions/img/blackIphone.png +0 -0
  168. package/dist/lib/components/Instructions/img/iphone12.png +0 -0
  169. package/dist/lib/components/Instructions/img/laptop.png +0 -0
  170. package/dist/lib/components/Instructions/img/newIphone.png +0 -0
  171. package/dist/lib/components/Instructions/img/whiteIphone.png +0 -0
  172. package/dist/lib/components/PageTitle/PageTitle.css +80 -0
  173. package/dist/lib/components/PageTitle/PageTitle.d.ts +23 -0
  174. package/dist/lib/components/PageTitle/PageTitle.js +85 -0
  175. package/dist/lib/components/Partners/Partners.css +53 -0
  176. package/dist/lib/components/Partners/Partners.d.ts +32 -0
  177. package/dist/lib/components/Partners/Partners.js +136 -0
  178. package/dist/lib/components/PictureWithDescription/PictureWithDescription.css +80 -0
  179. package/dist/lib/components/PictureWithDescription/PictureWithDescription.d.ts +28 -0
  180. package/dist/lib/components/PictureWithDescription/PictureWithDescription.js +81 -0
  181. package/dist/lib/components/Property/Property.css +125 -0
  182. package/dist/lib/components/Property/Property.d.ts +33 -0
  183. package/dist/lib/components/Property/Property.js +152 -0
  184. package/dist/lib/components/Property/PropertyDescription.css +17 -0
  185. package/dist/lib/components/Property/PropertyDescription.d.ts +5 -0
  186. package/dist/lib/components/Property/PropertyDescription.js +71 -0
  187. package/dist/lib/components/Property/types.d.ts +14 -0
  188. package/dist/lib/components/Property/types.js +1 -0
  189. package/dist/lib/components/Steps/Steps.css +41 -0
  190. package/dist/lib/components/Steps/Steps.d.ts +10 -0
  191. package/dist/lib/components/Steps/Steps.js +55 -0
  192. package/dist/lib/components/Steps/StepsItem.css +37 -0
  193. package/dist/lib/components/Steps/StepsItem.d.ts +10 -0
  194. package/dist/lib/components/Steps/StepsItem.js +39 -0
  195. package/dist/lib/components/StoreBanner/StoreBanner.css +289 -0
  196. package/dist/lib/components/StoreBanner/StoreBanner.d.ts +65 -0
  197. package/dist/lib/components/StoreBanner/StoreBanner.js +169 -0
  198. package/dist/lib/components/StoreBanner/doc/img/new-iphone-screen.png +0 -0
  199. package/dist/lib/components/StoreBanner/doc/img/qr-code.png +0 -0
  200. package/dist/lib/components/StoreBanner/doc/img/screen.png +0 -0
  201. package/dist/lib/components/StoreBanner/img/android.png +0 -0
  202. package/dist/lib/components/StoreBanner/img/black-iphone.png +0 -0
  203. package/dist/lib/components/StoreBanner/img/new-iphone.png +0 -0
  204. package/dist/lib/components/StoreBanner/img/white-iphone.png +0 -0
  205. package/dist/lib/components/StoreButton/StoreButton.css +15 -0
  206. package/dist/lib/components/StoreButton/StoreButton.d.ts +17 -0
  207. package/dist/lib/components/StoreButton/StoreButton.js +58 -0
  208. package/dist/lib/components/StoreButton/img/app-store.png +0 -0
  209. package/dist/lib/components/StoreButton/img/google-play.png +0 -0
  210. package/dist/lib/components/StoreButton/img/huawei-store.png +0 -0
  211. package/dist/lib/components/Table/Table.css +153 -0
  212. package/dist/lib/components/Table/Table.d.ts +14 -0
  213. package/dist/lib/components/Table/Table.js +146 -0
  214. package/dist/lib/components/Table/TableCell.d.ts +6 -0
  215. package/dist/lib/components/Table/TableCell.js +27 -0
  216. package/dist/lib/components/Table/TableRow.d.ts +9 -0
  217. package/dist/lib/components/Table/TableRow.js +28 -0
  218. package/dist/lib/components/TabsBox/TabBox.d.ts +2 -0
  219. package/dist/lib/components/TabsBox/TabBox.js +11 -0
  220. package/dist/lib/components/TabsBox/TabsBox.d.ts +8 -0
  221. package/dist/lib/components/TabsBox/TabsBox.js +50 -0
  222. package/dist/lib/components/TextBox/TextBox.css +16 -0
  223. package/dist/lib/components/TextBox/TextBox.d.ts +16 -0
  224. package/dist/lib/components/TextBox/TextBox.js +70 -0
  225. package/dist/lib/components/TextBox/TextBoxPicture.css +24 -0
  226. package/dist/lib/components/TextBox/TextBoxPicture.d.ts +17 -0
  227. package/dist/lib/components/TextBox/TextBoxPicture.js +48 -0
  228. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.css +11 -0
  229. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.d.ts +13 -7
  230. package/dist/lib/components/TitleDescriptionBox/TitleDescriptionBox.js +37 -17
  231. package/dist/lib/components/VideoBanner/VideoBanner.css +216 -0
  232. package/dist/lib/components/VideoBanner/VideoBanner.d.ts +90 -0
  233. package/dist/lib/components/VideoBanner/VideoBanner.js +309 -0
  234. package/dist/lib/components/VideoBlock/VideoBlock.css +127 -0
  235. package/dist/lib/components/VideoBlock/VideoBlock.d.ts +49 -0
  236. package/dist/lib/components/VideoBlock/VideoBlock.js +170 -0
  237. package/dist/lib/constants/throttleTime.d.ts +4 -0
  238. package/dist/lib/constants/throttleTime.js +10 -0
  239. package/dist/lib/index.d.ts +29 -17
  240. package/dist/lib/index.js +147 -51
  241. package/package.json +22 -77
  242. package/dist/es/components/ProductCard/ProductCardFeatures.css +0 -35
  243. package/dist/es/components/ProductCard/ProductCardFeatures.d.ts +0 -61
  244. package/dist/es/components/ProductCard/ProductCardFeatures.js +0 -82
  245. package/dist/es/components/ProductCard/ProductCardFeaturesBottom.css +0 -41
  246. package/dist/es/components/ProductCard/ProductCardFeaturesBottom.d.ts +0 -22
  247. package/dist/es/components/ProductCard/ProductCardFeaturesBottom.js +0 -80
  248. package/dist/es/components/ProductCard/ProductCardFeaturesTop.css +0 -16
  249. package/dist/es/components/ProductCard/ProductCardFeaturesTop.d.ts +0 -25
  250. package/dist/es/components/ProductCard/ProductCardFeaturesTop.js +0 -67
  251. package/dist/es/components/ProductCard/ProductCardInfo.css +0 -236
  252. package/dist/es/components/ProductCard/ProductCardInfo.d.ts +0 -75
  253. package/dist/es/components/ProductCard/ProductCardInfo.js +0 -169
  254. package/dist/es/components/ProductCard/ProductCardTotal.css +0 -113
  255. package/dist/es/components/ProductCard/ProductCardTotal.d.ts +0 -86
  256. package/dist/es/components/ProductCard/ProductCardTotal.js +0 -161
  257. package/dist/es/components/ProductCard/ProductCardWrapper.css +0 -162
  258. package/dist/es/components/ProductCard/ProductCardWrapper.d.ts +0 -53
  259. package/dist/es/components/ProductCard/ProductCardWrapper.js +0 -109
  260. package/dist/es/components/ProductSwitcher/ProductSwitcher.css +0 -372
  261. package/dist/es/components/ProductSwitcher/ProductSwitcher.d.ts +0 -86
  262. package/dist/es/components/ProductSwitcher/ProductSwitcher.js +0 -612
  263. package/dist/es/components/ProductTile/ProductTile.d.ts +0 -287
  264. package/dist/es/components/ProductTile/ProductTile.js +0 -497
  265. package/dist/es/components/ProductTile/ProductTileBuy.d.ts +0 -53
  266. package/dist/es/components/ProductTile/ProductTileBuy.js +0 -99
  267. package/dist/es/components/ProductTile/ProductTileCashback.d.ts +0 -20
  268. package/dist/es/components/ProductTile/ProductTileCashback.js +0 -60
  269. package/dist/es/components/ProductTile/ProductTileDynamic.d.ts +0 -42
  270. package/dist/es/components/ProductTile/ProductTileDynamic.js +0 -109
  271. package/dist/es/components/ProductTile/ProductTileHint.d.ts +0 -24
  272. package/dist/es/components/ProductTile/ProductTileHint.js +0 -67
  273. package/dist/es/components/ProductTile/ProductTileOptions.d.ts +0 -31
  274. package/dist/es/components/ProductTile/ProductTileOptions.js +0 -130
  275. package/dist/es/components/ProductTile/ProductTilePrice.d.ts +0 -26
  276. package/dist/es/components/ProductTile/ProductTilePrice.js +0 -75
  277. package/dist/es/components/ProductTile/ProductTileStatic.d.ts +0 -20
  278. package/dist/es/components/ProductTile/ProductTileStatic.js +0 -60
  279. package/dist/es/components/ProductTile/ProductTileValue.d.ts +0 -31
  280. package/dist/es/components/ProductTile/ProductTileValue.js +0 -111
  281. package/dist/es/components/ProductTile/style/ProductTile.css +0 -146
  282. package/dist/es/components/ProductTile/style/ProductTileBuy.css +0 -76
  283. package/dist/es/components/ProductTile/style/ProductTileCashback.css +0 -23
  284. package/dist/es/components/ProductTile/style/ProductTileDynamic.css +0 -38
  285. package/dist/es/components/ProductTile/style/ProductTileHint.css +0 -93
  286. package/dist/es/components/ProductTile/style/ProductTileOptions.css +0 -84
  287. package/dist/es/components/ProductTile/style/ProductTilePrice.css +0 -105
  288. package/dist/es/components/ProductTile/style/ProductTileStatic.css +0 -23
  289. package/dist/es/components/ProductTile/style/ProductTileValue.css +0 -58
  290. package/dist/es/components/ProductTileRest/ProductTileRest.css +0 -226
  291. package/dist/es/components/ProductTileRest/ProductTileRest.d.ts +0 -109
  292. package/dist/es/components/ProductTileRest/ProductTileRest.js +0 -291
  293. package/dist/es/constants/breakpoints.d.ts +0 -1
  294. package/dist/es/constants/breakpoints.js +0 -1
  295. package/dist/lib/components/ProductCard/ProductCardFeatures.css +0 -35
  296. package/dist/lib/components/ProductCard/ProductCardFeatures.d.ts +0 -61
  297. package/dist/lib/components/ProductCard/ProductCardFeatures.js +0 -141
  298. package/dist/lib/components/ProductCard/ProductCardFeaturesBottom.css +0 -41
  299. package/dist/lib/components/ProductCard/ProductCardFeaturesBottom.d.ts +0 -22
  300. package/dist/lib/components/ProductCard/ProductCardFeaturesBottom.js +0 -140
  301. package/dist/lib/components/ProductCard/ProductCardFeaturesTop.css +0 -16
  302. package/dist/lib/components/ProductCard/ProductCardFeaturesTop.d.ts +0 -25
  303. package/dist/lib/components/ProductCard/ProductCardFeaturesTop.js +0 -124
  304. package/dist/lib/components/ProductCard/ProductCardInfo.css +0 -236
  305. package/dist/lib/components/ProductCard/ProductCardInfo.d.ts +0 -75
  306. package/dist/lib/components/ProductCard/ProductCardInfo.js +0 -241
  307. package/dist/lib/components/ProductCard/ProductCardTotal.css +0 -113
  308. package/dist/lib/components/ProductCard/ProductCardTotal.d.ts +0 -86
  309. package/dist/lib/components/ProductCard/ProductCardTotal.js +0 -218
  310. package/dist/lib/components/ProductCard/ProductCardWrapper.css +0 -162
  311. package/dist/lib/components/ProductCard/ProductCardWrapper.d.ts +0 -53
  312. package/dist/lib/components/ProductCard/ProductCardWrapper.js +0 -170
  313. package/dist/lib/components/ProductSwitcher/ProductSwitcher.css +0 -372
  314. package/dist/lib/components/ProductSwitcher/ProductSwitcher.d.ts +0 -86
  315. package/dist/lib/components/ProductSwitcher/ProductSwitcher.js +0 -686
  316. package/dist/lib/components/ProductTile/ProductTile.d.ts +0 -287
  317. package/dist/lib/components/ProductTile/ProductTile.js +0 -590
  318. package/dist/lib/components/ProductTile/ProductTileBuy.d.ts +0 -53
  319. package/dist/lib/components/ProductTile/ProductTileBuy.js +0 -156
  320. package/dist/lib/components/ProductTile/ProductTileCashback.d.ts +0 -20
  321. package/dist/lib/components/ProductTile/ProductTileCashback.js +0 -117
  322. package/dist/lib/components/ProductTile/ProductTileDynamic.d.ts +0 -42
  323. package/dist/lib/components/ProductTile/ProductTileDynamic.js +0 -174
  324. package/dist/lib/components/ProductTile/ProductTileHint.d.ts +0 -24
  325. package/dist/lib/components/ProductTile/ProductTileHint.js +0 -124
  326. package/dist/lib/components/ProductTile/ProductTileOptions.d.ts +0 -31
  327. package/dist/lib/components/ProductTile/ProductTileOptions.js +0 -193
  328. package/dist/lib/components/ProductTile/ProductTilePrice.d.ts +0 -26
  329. package/dist/lib/components/ProductTile/ProductTilePrice.js +0 -136
  330. package/dist/lib/components/ProductTile/ProductTileStatic.d.ts +0 -20
  331. package/dist/lib/components/ProductTile/ProductTileStatic.js +0 -123
  332. package/dist/lib/components/ProductTile/ProductTileValue.d.ts +0 -31
  333. package/dist/lib/components/ProductTile/ProductTileValue.js +0 -171
  334. package/dist/lib/components/ProductTile/style/ProductTile.css +0 -146
  335. package/dist/lib/components/ProductTile/style/ProductTileBuy.css +0 -76
  336. package/dist/lib/components/ProductTile/style/ProductTileCashback.css +0 -23
  337. package/dist/lib/components/ProductTile/style/ProductTileDynamic.css +0 -38
  338. package/dist/lib/components/ProductTile/style/ProductTileHint.css +0 -93
  339. package/dist/lib/components/ProductTile/style/ProductTileOptions.css +0 -84
  340. package/dist/lib/components/ProductTile/style/ProductTilePrice.css +0 -105
  341. package/dist/lib/components/ProductTile/style/ProductTileStatic.css +0 -23
  342. package/dist/lib/components/ProductTile/style/ProductTileValue.css +0 -58
  343. package/dist/lib/components/ProductTileRest/ProductTileRest.css +0 -226
  344. package/dist/lib/components/ProductTileRest/ProductTileRest.d.ts +0 -109
  345. package/dist/lib/components/ProductTileRest/ProductTileRest.js +0 -364
  346. package/dist/lib/constants/breakpoints.d.ts +0 -1
  347. package/dist/lib/constants/breakpoints.js +0 -8
package/README.md CHANGED
@@ -14,8 +14,3 @@ $ yarn add @megafon/ui-shared@beta
14
14
  ## Development notes
15
15
 
16
16
  ### Build
17
-
18
- ```bash
19
- $ yarn run build
20
- ```
21
-
@@ -0,0 +1,13 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5 {
6
+ margin: 0;
7
+ }
8
+ .mfui-beta-accordion-box + .mfui-beta-accordion-box .mfui-beta-accordion {
9
+ border-top: none;
10
+ }
11
+ .mfui-beta-accordion-box .mfui-beta-property:first-child {
12
+ border-top: none;
13
+ }
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import './AccordionBox.less';
3
+ export interface IAccordionBox {
4
+ /** Дата атрибуты для корневого элемента */
5
+ dataAttrs?: {
6
+ [key: string]: string;
7
+ };
8
+ /** Ссылка на корневой элемент */
9
+ rootRef?: React.Ref<HTMLDivElement>;
10
+ /** Заголовок аккордеона */
11
+ title: string;
12
+ /** Состояние аккордеона, заданное извне */
13
+ isOpened?: boolean;
14
+ /** Отключить ограничение ширины */
15
+ isFullWidth?: boolean;
16
+ /** Центрирование по горизонтали для расширения 1280+ */
17
+ hCenterAlignWide?: boolean;
18
+ /** Вертикальные отступы */
19
+ hasVerticalPaddings?: boolean;
20
+ /** Дополнительный класс для корнеовго элемента */
21
+ className?: string;
22
+ /** Дополнительные классы для корневого и внутренних элементов */
23
+ classes?: {
24
+ openedClass?: string;
25
+ root?: string;
26
+ collapse?: string;
27
+ titleWrap?: string;
28
+ };
29
+ /** Обработчик клика */
30
+ onClickAccordion?: (isOpened: boolean, title: string) => void;
31
+ }
32
+ declare const AccordionBox: React.FC<IAccordionBox>;
33
+ export default AccordionBox;
@@ -0,0 +1,62 @@
1
+ import "core-js/modules/es.symbol";
2
+ import "core-js/modules/es.array.index-of";
3
+
4
+ var __rest = this && this.__rest || function (s, e) {
5
+ var t = {};
6
+
7
+ for (var p in s) {
8
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
9
+ }
10
+
11
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+
17
+ import * as React from 'react';
18
+ import * as PropTypes from 'prop-types';
19
+ import { Grid, GridColumn, Accordion } from '@megafon/ui-core';
20
+ import { cnCreate } from '@megafon/ui-helpers';
21
+ import "./AccordionBox.css";
22
+ var cn = cnCreate('mfui-beta-accordion-box');
23
+
24
+ var AccordionBox = function AccordionBox(_a) {
25
+ var _a$hCenterAlignWide = _a.hCenterAlignWide,
26
+ hCenterAlignWide = _a$hCenterAlignWide === void 0 ? false : _a$hCenterAlignWide,
27
+ _a$isFullWidth = _a.isFullWidth,
28
+ isFullWidth = _a$isFullWidth === void 0 ? false : _a$isFullWidth,
29
+ restProps = __rest(_a, ["hCenterAlignWide", "isFullWidth"]);
30
+
31
+ var renderAccordionWithGrid = React.useCallback(function () {
32
+ return /*#__PURE__*/React.createElement("div", {
33
+ className: cn()
34
+ }, /*#__PURE__*/React.createElement(Grid, {
35
+ hAlign: hCenterAlignWide ? 'center' : 'left'
36
+ }, /*#__PURE__*/React.createElement(GridColumn, {
37
+ wide: "8"
38
+ }, /*#__PURE__*/React.createElement(Accordion, restProps))));
39
+ }, [restProps, hCenterAlignWide]);
40
+ return isFullWidth ? /*#__PURE__*/React.createElement(Accordion, restProps) : renderAccordionWithGrid();
41
+ };
42
+
43
+ AccordionBox.propTypes = {
44
+ dataAttrs: PropTypes.objectOf(PropTypes.string.isRequired),
45
+ rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
46
+ current: PropTypes.elementType
47
+ }), PropTypes.any])]),
48
+ title: PropTypes.string.isRequired,
49
+ isFullWidth: PropTypes.bool,
50
+ isOpened: PropTypes.bool,
51
+ hCenterAlignWide: PropTypes.bool,
52
+ hasVerticalPaddings: PropTypes.bool,
53
+ className: PropTypes.string,
54
+ classes: PropTypes.shape({
55
+ openedClass: PropTypes.string,
56
+ root: PropTypes.string,
57
+ collapse: PropTypes.string,
58
+ titleWrap: PropTypes.string
59
+ }),
60
+ onClickAccordion: PropTypes.func
61
+ };
62
+ export default AccordionBox;
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { Banner } from '@megafon/ui-core';
3
+ declare type BannerBoxProps = React.ComponentProps<typeof Banner>;
4
+ declare const BannerBox: React.FC<BannerBoxProps>;
5
+ export default BannerBox;
@@ -0,0 +1,31 @@
1
+ import "core-js/modules/es.symbol";
2
+ import "core-js/modules/es.array.index-of";
3
+
4
+ var __rest = this && this.__rest || function (s, e) {
5
+ var t = {};
6
+
7
+ for (var p in s) {
8
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
9
+ }
10
+
11
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+
17
+ import * as React from 'react';
18
+ import { Banner } from '@megafon/ui-core';
19
+ import { cnCreate } from '@megafon/ui-helpers';
20
+ var cn = cnCreate('mfui-beta-banner-box');
21
+
22
+ var BannerBox = function BannerBox(_a) {
23
+ var children = _a.children,
24
+ props = __rest(_a, ["children"]);
25
+
26
+ return /*#__PURE__*/React.createElement("div", {
27
+ className: cn()
28
+ }, /*#__PURE__*/React.createElement(Banner, props, children));
29
+ };
30
+
31
+ export default BannerBox;
@@ -1,13 +1,24 @@
1
1
  import * as React from 'react';
2
2
  import './style/BenefitsIcons.less';
3
- import { IconPositionEnum, IBenefit } from './types';
3
+ import { IconPosition, IBenefit } from './types';
4
4
  export interface IBenefitsIcons {
5
- /** Icon position */
6
- iconPosition?: IconPositionEnum;
7
- /** Benefits list */
5
+ /** Ссылка на корневой элемент */
6
+ rootRef?: React.Ref<HTMLDivElement>;
7
+ /** Позиция иконки */
8
+ iconPosition?: IconPosition;
9
+ /** Выстраивать бенефиты в одну колонку вне зависимости от количества */
10
+ inOneColumn?: boolean;
11
+ /** Список бенефитов */
8
12
  items: IBenefit[];
9
- /** Custom className */
13
+ /** Дополнительный css класс для корневого элемента */
10
14
  className?: string;
15
+ /** Дополнительные css классы для корневого и внутренних элементов */
16
+ classes?: {
17
+ root?: string;
18
+ item?: string;
19
+ grid?: string;
20
+ gridColumn?: string;
21
+ };
11
22
  }
12
23
  declare const BenefitsIcons: React.FC<IBenefitsIcons>;
13
24
  export default BenefitsIcons;
@@ -1,12 +1,16 @@
1
1
  import "core-js/modules/es.array.map";
2
2
  import "core-js/modules/es.object.values";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
4
  import _extends from "@babel/runtime/helpers/extends";
4
5
  import * as React from 'react';
5
6
  import PropTypes from 'prop-types';
6
7
  import "./style/BenefitsIcons.css";
7
- import { cnCreate, Grid, GridColumn } from '@megafon/ui-core';
8
+ import { Grid, GridColumn } from '@megafon/ui-core';
9
+ import { cnCreate, breakpoints } from '@megafon/ui-helpers';
8
10
  import BenefitsIconsTile from "./BenefitsIconsTile";
9
- import { IconPositionEnum } from "./types"; // left-aligned column with left side icon,
11
+ import { IconPositionEnum, ItemsAlignEnum } from "./types";
12
+ import throttle from 'lodash.throttle';
13
+ import throttleTime from "../../constants/throttleTime"; // left-aligned column with left side icon,
10
14
 
11
15
  var getLeftSideConfig = function getLeftSideConfig(count, index) {
12
16
  var everySecondWithoutOffset = index % 2 ? '1' : undefined;
@@ -94,7 +98,19 @@ var getCenterTopConfig = function getCenterTopConfig(count, index) {
94
98
  }
95
99
  };
96
100
 
97
- var getColumnConfig = function getColumnConfig(iconPosition, count, index) {
101
+ var getOneColumnConfig = function getOneColumnConfig(iconPosition) {
102
+ return iconPosition !== IconPositionEnum.CENTER_TOP ? {
103
+ wide: '10',
104
+ desktop: '10',
105
+ tablet: '10'
106
+ } : {
107
+ wide: '12',
108
+ desktop: '12',
109
+ tablet: '12'
110
+ };
111
+ };
112
+
113
+ var getMultiColumnConfig = function getMultiColumnConfig(iconPosition, count, index) {
98
114
  switch (iconPosition) {
99
115
  case IconPositionEnum.LEFT_TOP:
100
116
  return getLeftTopConfig(count, index);
@@ -110,40 +126,89 @@ var getColumnConfig = function getColumnConfig(iconPosition, count, index) {
110
126
  var cn = cnCreate('mfui-beta-benefits-icons');
111
127
 
112
128
  var BenefitsIcons = function BenefitsIcons(_ref) {
113
- var _ref$iconPosition = _ref.iconPosition,
129
+ var rootRef = _ref.rootRef,
130
+ _ref$iconPosition = _ref.iconPosition,
114
131
  iconPosition = _ref$iconPosition === void 0 ? IconPositionEnum.LEFT_TOP : _ref$iconPosition,
132
+ _ref$inOneColumn = _ref.inOneColumn,
133
+ inOneColumn = _ref$inOneColumn === void 0 ? false : _ref$inOneColumn,
115
134
  items = _ref.items,
116
- className = _ref.className;
117
- var hAlign = iconPosition === IconPositionEnum.CENTER_TOP ? 'center' : 'left';
135
+ className = _ref.className,
136
+ _ref$classes = _ref.classes,
137
+ classes = _ref$classes === void 0 ? {} : _ref$classes;
138
+
139
+ var _React$useState = React.useState(iconPosition === IconPositionEnum.CENTER_TOP ? 'center' : 'left'),
140
+ _React$useState2 = _slicedToArray(_React$useState, 2),
141
+ itemsAlign = _React$useState2[0],
142
+ setItemsAlign = _React$useState2[1];
143
+
144
+ var _React$useState3 = React.useState(iconPosition),
145
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
146
+ localIconPosition = _React$useState4[0],
147
+ setLocalIconPosition = _React$useState4[1];
148
+
149
+ var resizeHandler = React.useCallback(function () {
150
+ if (window.innerWidth <= breakpoints.MOBILE_MIDDLE_END) {
151
+ setItemsAlign(ItemsAlignEnum.CENTER);
152
+ setLocalIconPosition(IconPositionEnum.CENTER_TOP);
153
+ } else {
154
+ setItemsAlign(ItemsAlignEnum.LEFT);
155
+ setLocalIconPosition(iconPosition);
156
+ }
157
+ }, [iconPosition]);
158
+ React.useEffect(function () {
159
+ var resizeHandlerThrottled = throttle(resizeHandler, throttleTime.resize);
160
+
161
+ if (inOneColumn) {
162
+ resizeHandler();
163
+ window.addEventListener('resize', resizeHandlerThrottled);
164
+ }
165
+
166
+ return function () {
167
+ window.removeEventListener('resize', resizeHandlerThrottled);
168
+ };
169
+ }, [iconPosition, inOneColumn, resizeHandler]);
118
170
  return /*#__PURE__*/React.createElement("div", {
119
- className: cn(className)
171
+ className: cn([className, classes.root]),
172
+ ref: rootRef
120
173
  }, /*#__PURE__*/React.createElement("div", {
121
174
  className: cn('inner')
122
175
  }, /*#__PURE__*/React.createElement(Grid, {
176
+ className: classes.grid,
123
177
  guttersLeft: "medium",
124
- hAlign: hAlign
178
+ hAlign: itemsAlign
125
179
  }, items.map(function (_ref2, i) {
126
180
  var title = _ref2.title,
127
181
  text = _ref2.text,
128
182
  icon = _ref2.icon;
129
- return /*#__PURE__*/React.createElement(GridColumn, _extends({}, getColumnConfig(iconPosition, items.length, i), {
183
+ var columnConfig = inOneColumn ? getOneColumnConfig(iconPosition) : getMultiColumnConfig(iconPosition, items.length, i);
184
+ return /*#__PURE__*/React.createElement(GridColumn, _extends({
185
+ className: classes.gridColumn,
130
186
  key: i
131
- }), /*#__PURE__*/React.createElement(BenefitsIconsTile, {
187
+ }, columnConfig), /*#__PURE__*/React.createElement(BenefitsIconsTile, {
188
+ className: classes.item,
132
189
  title: title,
133
190
  text: text,
134
191
  icon: icon,
135
- iconPosition: iconPosition
192
+ iconPosition: localIconPosition
136
193
  }));
137
194
  }))));
138
195
  };
139
196
 
140
197
  BenefitsIcons.propTypes = {
198
+ rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
199
+ current: PropTypes.elementType
200
+ }), PropTypes.any])]),
141
201
  iconPosition: PropTypes.oneOf(Object.values(IconPositionEnum)),
202
+ inOneColumn: PropTypes.bool,
142
203
  items: PropTypes.arrayOf(PropTypes.shape({
143
- title: PropTypes.string,
144
- text: PropTypes.string,
204
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
205
+ text: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
145
206
  icon: PropTypes.node.isRequired
146
207
  }).isRequired).isRequired,
147
- className: PropTypes.string
208
+ className: PropTypes.string,
209
+ classes: PropTypes.shape({
210
+ root: PropTypes.string,
211
+ item: PropTypes.string
212
+ })
148
213
  };
149
214
  export default BenefitsIcons;
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import './style/BenefitsIconsTile.less';
3
- import { IBenefit, IconPositionEnum } from './types';
3
+ import { IBenefit, IconPosition } from './types';
4
4
  export interface IBenefitsIconsTile extends IBenefit {
5
- iconPosition?: IconPositionEnum;
5
+ iconPosition?: IconPosition;
6
+ className?: string;
6
7
  }
7
8
  declare const BenefitsIconsTile: React.FC<IBenefitsIconsTile>;
8
9
  export default BenefitsIconsTile;
@@ -1,9 +1,9 @@
1
1
  import "core-js/modules/es.object.values";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import convert from 'htmr';
5
4
  import "./style/BenefitsIconsTile.css";
6
- import { Header, Paragraph, cnCreate } from '@megafon/ui-core';
5
+ import { Header } from '@megafon/ui-core';
6
+ import { cnCreate } from '@megafon/ui-helpers';
7
7
  import { IconPositionEnum } from "./types";
8
8
  var cn = cnCreate('mfui-beta-benefits-icons-tile');
9
9
 
@@ -12,11 +12,12 @@ var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
12
12
  text = _ref.text,
13
13
  icon = _ref.icon,
14
14
  _ref$iconPosition = _ref.iconPosition,
15
- iconPosition = _ref$iconPosition === void 0 ? IconPositionEnum.LEFT_TOP : _ref$iconPosition;
15
+ iconPosition = _ref$iconPosition === void 0 ? IconPositionEnum.LEFT_TOP : _ref$iconPosition,
16
+ className = _ref.className;
16
17
  return /*#__PURE__*/React.createElement("div", {
17
- className: cn('', {
18
+ className: cn({
18
19
  'icon-position': iconPosition
19
- })
20
+ }, [className])
20
21
  }, /*#__PURE__*/React.createElement("div", {
21
22
  className: cn('svg-icon')
22
23
  }, icon), /*#__PURE__*/React.createElement("div", {
@@ -24,16 +25,16 @@ var BenefitsIconsTile = function BenefitsIconsTile(_ref) {
24
25
  }, title && /*#__PURE__*/React.createElement(Header, {
25
26
  className: cn('title'),
26
27
  as: "h5"
27
- }, convert(title)), text && /*#__PURE__*/React.createElement(Paragraph, {
28
- className: cn('text'),
29
- hasMargin: false
30
- }, convert(text))));
28
+ }, title), text && /*#__PURE__*/React.createElement("div", {
29
+ className: cn('content')
30
+ }, text)));
31
31
  };
32
32
 
33
33
  BenefitsIconsTile.propTypes = {
34
- title: PropTypes.string,
35
- text: PropTypes.string,
34
+ className: PropTypes.string,
35
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
36
+ text: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
36
37
  iconPosition: PropTypes.oneOf(Object.values(IconPositionEnum)),
37
- icon: PropTypes.node
38
+ icon: PropTypes.node.isRequired
38
39
  };
39
40
  export default BenefitsIconsTile;
@@ -6,8 +6,8 @@ h5 {
6
6
  margin: 0;
7
7
  }
8
8
  .mfui-beta-benefits-icons {
9
- font-size: 10px;
10
9
  overflow: hidden;
10
+ font-size: 10px;
11
11
  }
12
12
  .mfui-beta-benefits-icons__inner {
13
13
  margin-bottom: -48px;
@@ -7,17 +7,24 @@ h5 {
7
7
  }
8
8
  .mfui-beta-benefits-icons-tile {
9
9
  margin-bottom: 48px;
10
- padding: 0 16px;
11
10
  }
12
11
  .mfui-beta-benefits-icons-tile .mfui-beta-benefits-icons-tile__svg-icon {
13
12
  margin-bottom: 10px;
14
13
  }
15
- .mfui-beta-benefits-icons-tile__title + .mfui-beta-benefits-icons-tile__text {
14
+ .mfui-beta-benefits-icons-tile__content {
15
+ font-size: 15px;
16
+ line-height: 24px;
17
+ font-weight: 400;
18
+ }
19
+ .mfui-beta-benefits-icons-tile__title + .mfui-beta-benefits-icons-tile__content {
16
20
  margin-top: 4px;
17
21
  }
22
+ .mfui-beta-benefits-icons-tile__text {
23
+ margin-bottom: 0;
24
+ }
18
25
  .mfui-beta-benefits-icons-tile__svg-icon {
19
- width: 44px;
20
- height: 44px;
26
+ width: 40px;
27
+ height: 40px;
21
28
  overflow: hidden;
22
29
  }
23
30
  .mfui-beta-benefits-icons-tile_icon-position_left-side {
@@ -1,15 +1,24 @@
1
1
  /// <reference types="react" />
2
2
  declare type TGridSizeValues = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
3
3
  export interface IBenefit {
4
- title?: string;
5
- text?: string;
4
+ /** Заголовок бенефита */
5
+ title?: string | React.ReactNode | React.ReactNode[];
6
+ /** Основной текст в бенефите */
7
+ text?: string | React.ReactNode | React.ReactNode[];
8
+ /** Иконка */
6
9
  icon: React.ReactNode;
7
10
  }
8
- export declare enum IconPositionEnum {
9
- LEFT_TOP = "left-top",
10
- CENTER_TOP = "center-top",
11
- LEFT_SIDE = "left-side"
12
- }
11
+ export declare const IconPositionEnum: {
12
+ readonly LEFT_TOP: "left-top";
13
+ readonly CENTER_TOP: "center-top";
14
+ readonly LEFT_SIDE: "left-side";
15
+ };
16
+ export declare type IconPosition = typeof IconPositionEnum[keyof typeof IconPositionEnum];
17
+ export declare const ItemsAlignEnum: {
18
+ readonly LEFT: "left";
19
+ readonly CENTER: "center";
20
+ };
21
+ export declare type ItemsAlignType = typeof ItemsAlignEnum[keyof typeof ItemsAlignEnum];
13
22
  export declare type GridConfig = {
14
23
  wide?: TGridSizeValues;
15
24
  desktop?: TGridSizeValues;
@@ -1,7 +1,9 @@
1
- export var IconPositionEnum;
2
-
3
- (function (IconPositionEnum) {
4
- IconPositionEnum["LEFT_TOP"] = "left-top";
5
- IconPositionEnum["CENTER_TOP"] = "center-top";
6
- IconPositionEnum["LEFT_SIDE"] = "left-side";
7
- })(IconPositionEnum || (IconPositionEnum = {}));
1
+ export var IconPositionEnum = {
2
+ LEFT_TOP: 'left-top',
3
+ CENTER_TOP: 'center-top',
4
+ LEFT_SIDE: 'left-side'
5
+ };
6
+ export var ItemsAlignEnum = {
7
+ LEFT: 'left',
8
+ CENTER: 'center'
9
+ };
@@ -2,12 +2,21 @@ import * as React from 'react';
2
2
  import './BenfitsPictures.less';
3
3
  import { IBenefit, GridGutterSize } from './types';
4
4
  export interface IBenefitsPicturesProps {
5
- /** Benefits list */
5
+ /** Ссылка на корневой элемент */
6
+ rootRef?: React.Ref<HTMLDivElement>;
7
+ /** Данные для бенефитов */
6
8
  items: IBenefit[];
7
- /** Benefits horizontal align */
9
+ /** Горизонтальное выравнивание */
8
10
  hAlign?: 'left' | 'center';
9
- /** Grid gap size */
11
+ /** Расстояние между бенефитами */
10
12
  gridGap?: GridGutterSize;
13
+ /** Дополнительный css класс для корневого элемента */
14
+ className?: string;
15
+ /** Дополнительные css классы для корневого и внутренних элементов */
16
+ classes?: {
17
+ root?: string;
18
+ item?: string;
19
+ };
11
20
  }
12
21
  declare const BenefitsPictures: React.FC<IBenefitsPicturesProps>;
13
22
  export default BenefitsPictures;
@@ -6,9 +6,10 @@ import { useCallback } from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import throttle from 'lodash.throttle';
8
8
  import "./BenfitsPictures.css";
9
- import { cnCreate, Grid, GridColumn, Header, Paragraph } from '@megafon/ui-core';
10
- import { DESKTOP_MIDDLE_START } from "../../constants/breakpoints";
11
- var THROTTLE_TIME = 500;
9
+ import { Grid, GridColumn, Header, Paragraph } from '@megafon/ui-core';
10
+ import { breakpoints, cnCreate } from '@megafon/ui-helpers';
11
+ import convert from 'htmr';
12
+ import throttleTime from "../../constants/throttleTime";
12
13
  var ONLY_LEFT_ALIGN_ITEMS_COUNT = 3;
13
14
  var columnSize = {
14
15
  wide: '4',
@@ -115,7 +116,11 @@ var BenefitsPictures = function BenefitsPictures(_ref) {
115
116
  _ref$hAlign = _ref.hAlign,
116
117
  hAlign = _ref$hAlign === void 0 ? 'left' : _ref$hAlign,
117
118
  _ref$gridGap = _ref.gridGap,
118
- gridGap = _ref$gridGap === void 0 ? 'large' : _ref$gridGap;
119
+ gridGap = _ref$gridGap === void 0 ? 'large' : _ref$gridGap,
120
+ rootRef = _ref.rootRef,
121
+ className = _ref.className,
122
+ _ref$classes = _ref.classes,
123
+ classes = _ref$classes === void 0 ? {} : _ref$classes;
119
124
  var isLargeGutter = gridGap === 'large';
120
125
  var isGridCenterAlign = hAlign === 'center' && items.length !== ONLY_LEFT_ALIGN_ITEMS_COUNT;
121
126
 
@@ -129,14 +134,14 @@ var BenefitsPictures = function BenefitsPictures(_ref) {
129
134
  return;
130
135
  }
131
136
 
132
- if (window.innerWidth < DESKTOP_MIDDLE_START) {
137
+ if (window.innerWidth < breakpoints.DESKTOP_MIDDLE_START) {
133
138
  setCurrentGutter('medium');
134
139
  } else {
135
140
  setCurrentGutter('large');
136
141
  }
137
142
  }, []);
138
143
  React.useEffect(function () {
139
- var throttledResizeHandler = throttle(resizeHandler, THROTTLE_TIME);
144
+ var throttledResizeHandler = throttle(resizeHandler, throttleTime.resize);
140
145
  resizeHandler();
141
146
  window.addEventListener('resize', throttledResizeHandler);
142
147
  return function () {
@@ -144,7 +149,8 @@ var BenefitsPictures = function BenefitsPictures(_ref) {
144
149
  };
145
150
  }, []);
146
151
  return /*#__PURE__*/React.createElement("div", {
147
- className: cn()
152
+ className: cn([className, classes.root]),
153
+ ref: rootRef
148
154
  }, /*#__PURE__*/React.createElement(Grid, {
149
155
  guttersLeft: currentGutter,
150
156
  hAlign: isGridCenterAlign ? 'center' : 'left'
@@ -155,7 +161,7 @@ var BenefitsPictures = function BenefitsPictures(_ref) {
155
161
  return /*#__PURE__*/React.createElement(GridColumn, _extends({}, hAlign === 'left' ? getLeftConfig(items.length, index) : getCenterConfig(items.length, index, gridGap), {
156
162
  key: index
157
163
  }), /*#__PURE__*/React.createElement("div", {
158
- className: cn('item')
164
+ className: cn('item', [classes.item])
159
165
  }, /*#__PURE__*/React.createElement("img", {
160
166
  className: cn('img', {
161
167
  'h-align': hAlign
@@ -166,19 +172,27 @@ var BenefitsPictures = function BenefitsPictures(_ref) {
166
172
  className: cn('title'),
167
173
  hAlign: hAlign,
168
174
  as: "h3"
169
- }, title), /*#__PURE__*/React.createElement(Paragraph, {
175
+ }, convert(title)), /*#__PURE__*/React.createElement(Paragraph, {
170
176
  align: hAlign
171
- }, text)));
177
+ }, convert(text))));
172
178
  })));
173
179
  };
174
180
 
175
181
  BenefitsPictures.propTypes = {
182
+ rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
183
+ current: PropTypes.elementType
184
+ }), PropTypes.any])]),
176
185
  items: PropTypes.arrayOf(PropTypes.shape({
177
186
  title: PropTypes.string.isRequired,
178
187
  text: PropTypes.string.isRequired,
179
188
  img: PropTypes.string.isRequired
180
189
  }).isRequired).isRequired,
181
190
  hAlign: PropTypes.oneOf(['left', 'center']),
182
- gridGap: PropTypes.oneOf(['medium', 'large'])
191
+ gridGap: PropTypes.oneOf(['medium', 'large']),
192
+ className: PropTypes.string,
193
+ classes: PropTypes.shape({
194
+ root: PropTypes.string,
195
+ item: PropTypes.string
196
+ })
183
197
  };
184
198
  export default BenefitsPictures;
@@ -11,8 +11,8 @@ h5 {
11
11
  }
12
12
  .mfui-beta-benefits-pictures__img_h-align_center {
13
13
  display: block;
14
- margin-left: auto;
15
14
  margin-right: auto;
15
+ margin-left: auto;
16
16
  }
17
17
  .mfui-beta-benefits-pictures__title {
18
18
  margin-bottom: 12px;
@@ -1,6 +1,9 @@
1
1
  export interface IBenefit {
2
+ /** Заголовок бенефита */
2
3
  title: string;
4
+ /** Основной текст в бенефите */
3
5
  text: string;
6
+ /** Изображение */
4
7
  img: string;
5
8
  }
6
9
  declare type TGridSizeValues = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';