@redneckz/wildless-cms-uni-blocks 0.12.4 → 0.12.6

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 (824) hide show
  1. package/bin/migration-scripts/0.12.3.js +2 -0
  2. package/bin/migration-scripts/0.9.10.js +1 -1
  3. package/bundle/blocks.schema.json +1 -1
  4. package/bundle/bundle.umd.js +99 -171
  5. package/bundle/bundle.umd.min.js +1 -1
  6. package/bundle/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  7. package/bundle/components/BenefitsBlock/benefitImageStyles.d.ts +1 -0
  8. package/bundle/components/BenefitsBlock/benefitImageStyles.mobile.d.ts +1 -0
  9. package/bundle/components/BonusBenefitsBlock/bonusBenefitAlign.d.ts +1 -0
  10. package/bundle/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.d.ts +1 -0
  11. package/bundle/components/BonusBenefitsBlock/bonusBenefitStyles.d.ts +1 -0
  12. package/bundle/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.d.ts +1 -0
  13. package/bundle/components/BonusBenefitsBlock/renderBonusBenefit.d.ts +3 -0
  14. package/bundle/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +4 -0
  15. package/bundle/components/BonusBenefitsBlock/renderBonusBenefits.mobile.d.ts +4 -0
  16. package/bundle/components/CarouselCatalogCard/CatalogCard.d.ts +9 -0
  17. package/bundle/components/CarouselProgramsCard/programCardStyles.d.ts +2 -0
  18. package/bundle/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +2 -0
  19. package/bundle/components/ProductBlock/ProductBlock.d.ts +1 -1
  20. package/bundle/components/ProductTile/ProductTileContent.d.ts +3 -26
  21. package/bundle/components/StepsBlock/StepsBlock.mobile.d.ts +2 -2
  22. package/bundle/components/Tabs/tabItemClasses.d.ts +2 -3
  23. package/bundle/icons/IconName.d.ts +4 -2
  24. package/bundle/ui-kit/BaseProductTile/BaseProductTile.d.ts +2 -2
  25. package/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +3 -2
  26. package/bundle/ui-kit/BenefitItem/BenefitItem.d.ts +4 -4
  27. package/bundle/ui-kit/BenefitItem/renderBenefitDescription.d.ts +2 -0
  28. package/bundle/ui-kit/BenefitItem/renderBenefitIcon.d.ts +4 -0
  29. package/bundle/ui-kit/BenefitItem/renderBenefitLabel.d.ts +2 -0
  30. package/bundle/ui-kit/BenefitItem/renderBenefitText.d.ts +3 -0
  31. package/bundle/ui-kit/BenefitsList/BenefitsList.d.ts +1 -5
  32. package/bundle/ui-kit/BenefitsList/BenefitsListContent.d.ts +3 -1
  33. package/bundle/ui-kit/BenefitsList/BenefitsListProps.d.ts +4 -0
  34. package/bundle/ui-kit/BenefitsList/DefaultBenefitsList.d.ts +2 -0
  35. package/bundle/ui-kit/BenefitsList/TabularBenefitsList.d.ts +2 -0
  36. package/bundle/ui-kit/CookiePopup/CookiePopup.d.ts +2 -3
  37. package/bundle/ui-kit/Dialog/useDialogProps.d.ts +3 -1
  38. package/bundle/ui-kit/Text/TextProps.d.ts +1 -1
  39. package/cosmos-static/icons/BelarusianFlag.svg +1 -0
  40. package/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  41. package/dist/components/BenefitsBlock/BenefitsBlock.js +4 -6
  42. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  43. package/dist/components/BenefitsBlock/benefitImageStyles.d.ts +1 -0
  44. package/dist/components/BenefitsBlock/benefitImageStyles.js +4 -0
  45. package/dist/components/BenefitsBlock/benefitImageStyles.js.map +1 -0
  46. package/dist/components/BenefitsBlock/benefitImageStyles.mobile.d.ts +1 -0
  47. package/dist/components/BenefitsBlock/benefitImageStyles.mobile.js +4 -0
  48. package/dist/components/BenefitsBlock/benefitImageStyles.mobile.js.map +1 -0
  49. package/dist/components/Blocks.mobile.js +6 -0
  50. package/dist/components/Blocks.mobile.js.map +1 -1
  51. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +4 -18
  52. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  53. package/dist/components/BonusBenefitsBlock/bonusBenefitAlign.d.ts +1 -0
  54. package/dist/components/BonusBenefitsBlock/bonusBenefitAlign.js +4 -0
  55. package/dist/components/BonusBenefitsBlock/bonusBenefitAlign.js.map +1 -0
  56. package/dist/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.d.ts +1 -0
  57. package/dist/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.js +4 -0
  58. package/dist/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.js.map +1 -0
  59. package/dist/components/BonusBenefitsBlock/bonusBenefitStyles.d.ts +1 -0
  60. package/dist/components/BonusBenefitsBlock/bonusBenefitStyles.js +4 -0
  61. package/dist/components/BonusBenefitsBlock/bonusBenefitStyles.js.map +1 -0
  62. package/dist/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.d.ts +1 -0
  63. package/dist/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.js +4 -0
  64. package/dist/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.js.map +1 -0
  65. package/dist/components/BonusBenefitsBlock/renderBonusBenefit.d.ts +3 -0
  66. package/dist/components/BonusBenefitsBlock/renderBonusBenefit.js +11 -0
  67. package/dist/components/BonusBenefitsBlock/renderBonusBenefit.js.map +1 -0
  68. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +4 -0
  69. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.js +20 -0
  70. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.js.map +1 -0
  71. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.mobile.d.ts +4 -0
  72. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js +8 -0
  73. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js.map +1 -0
  74. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  75. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  76. package/dist/components/CarouselCatalogCard/CatalogCard.d.ts +9 -0
  77. package/dist/components/CarouselCatalogCard/CatalogCard.js +20 -0
  78. package/dist/components/CarouselCatalogCard/CatalogCard.js.map +1 -0
  79. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  80. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  81. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +5 -2
  82. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  83. package/dist/components/CarouselProgramsCard/programCardStyles.d.ts +2 -0
  84. package/dist/components/CarouselProgramsCard/programCardStyles.js +5 -0
  85. package/dist/components/CarouselProgramsCard/programCardStyles.js.map +1 -0
  86. package/dist/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +2 -0
  87. package/dist/components/CarouselProgramsCard/programCardStyles.mobile.js +5 -0
  88. package/dist/components/CarouselProgramsCard/programCardStyles.mobile.js.map +1 -0
  89. package/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  90. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  91. package/dist/components/PictureText/PictureText.js +1 -1
  92. package/dist/components/PictureText/PictureText.js.map +1 -1
  93. package/dist/components/ProductBlock/ProductBlock.d.ts +1 -1
  94. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  95. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  96. package/dist/components/ProductGallery/ProductGallery.js +2 -2
  97. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  98. package/dist/components/ProductGallery/ProductGallery.mobile.js +1 -1
  99. package/dist/components/ProductGallery/ProductGallery.mobile.js.map +1 -1
  100. package/dist/components/ProductTile/ProductTile.js +3 -17
  101. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  102. package/dist/components/ProductTile/ProductTileContent.d.ts +3 -26
  103. package/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js +2 -2
  104. package/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js.map +1 -1
  105. package/dist/components/StepsBlock/StepsBlock.mobile.d.ts +2 -2
  106. package/dist/components/StepsBlock/StepsBlock.mobile.js +16 -16
  107. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  108. package/dist/components/Tabs/LinkTab.js +2 -1
  109. package/dist/components/Tabs/LinkTab.js.map +1 -1
  110. package/dist/components/Tabs/Tabs.js +3 -2
  111. package/dist/components/Tabs/Tabs.js.map +1 -1
  112. package/dist/components/Tabs/renderGroupTab.js +7 -13
  113. package/dist/components/Tabs/renderGroupTab.js.map +1 -1
  114. package/dist/components/Tabs/tabItemClasses.d.ts +2 -3
  115. package/dist/components/Tabs/tabItemClasses.js +10 -46
  116. package/dist/components/Tabs/tabItemClasses.js.map +1 -1
  117. package/dist/components/TariffsTable/TariffsTable.mobile.js +0 -1
  118. package/dist/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  119. package/dist/components/Tile/Tile.js +1 -1
  120. package/dist/components/Tile/Tile.js.map +1 -1
  121. package/dist/icons/IconName.d.ts +4 -2
  122. package/dist/icons/IconName.js +3 -1
  123. package/dist/icons/IconName.js.map +1 -1
  124. package/dist/ui-kit/BaseProductTile/BaseProductTile.d.ts +2 -2
  125. package/dist/ui-kit/BaseProductTile/BaseProductTile.js +3 -2
  126. package/dist/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  127. package/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +3 -2
  128. package/dist/ui-kit/BenefitItem/BenefitItem.d.ts +4 -4
  129. package/dist/ui-kit/BenefitItem/BenefitItem.js +3 -11
  130. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  131. package/dist/ui-kit/BenefitItem/renderBenefitDescription.d.ts +2 -0
  132. package/dist/ui-kit/BenefitItem/renderBenefitDescription.js +7 -0
  133. package/dist/ui-kit/BenefitItem/renderBenefitDescription.js.map +1 -0
  134. package/dist/ui-kit/BenefitItem/renderBenefitIcon.d.ts +4 -0
  135. package/dist/ui-kit/BenefitItem/renderBenefitIcon.js +10 -0
  136. package/dist/ui-kit/BenefitItem/renderBenefitIcon.js.map +1 -0
  137. package/dist/ui-kit/BenefitItem/renderBenefitLabel.d.ts +2 -0
  138. package/dist/ui-kit/BenefitItem/renderBenefitLabel.js +7 -0
  139. package/dist/ui-kit/BenefitItem/renderBenefitLabel.js.map +1 -0
  140. package/dist/ui-kit/BenefitItem/renderBenefitText.d.ts +3 -0
  141. package/dist/ui-kit/BenefitItem/renderBenefitText.js +12 -0
  142. package/dist/ui-kit/BenefitItem/renderBenefitText.js.map +1 -0
  143. package/dist/ui-kit/BenefitsList/BenefitsList.d.ts +1 -5
  144. package/dist/ui-kit/BenefitsList/BenefitsList.js +3 -9
  145. package/dist/ui-kit/BenefitsList/BenefitsList.js.map +1 -1
  146. package/dist/ui-kit/BenefitsList/BenefitsListContent.d.ts +3 -1
  147. package/dist/ui-kit/BenefitsList/BenefitsListProps.d.ts +4 -0
  148. package/dist/ui-kit/BenefitsList/BenefitsListProps.js +2 -0
  149. package/dist/ui-kit/BenefitsList/BenefitsListProps.js.map +1 -0
  150. package/dist/ui-kit/BenefitsList/DefaultBenefitsList.d.ts +2 -0
  151. package/dist/ui-kit/BenefitsList/DefaultBenefitsList.js +14 -0
  152. package/dist/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -0
  153. package/dist/ui-kit/BenefitsList/TabularBenefitsList.d.ts +2 -0
  154. package/dist/ui-kit/BenefitsList/TabularBenefitsList.js +8 -0
  155. package/dist/ui-kit/BenefitsList/TabularBenefitsList.js.map +1 -0
  156. package/dist/ui-kit/CookiePopup/CookiePopup.d.ts +2 -3
  157. package/dist/ui-kit/CookiePopup/CookiePopup.js +13 -7
  158. package/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  159. package/dist/ui-kit/Dialog/Dialog.js +1 -1
  160. package/dist/ui-kit/Dialog/Dialog.js.map +1 -1
  161. package/dist/ui-kit/Dialog/useDialogProps.d.ts +3 -1
  162. package/dist/ui-kit/Dialog/useDialogProps.js +9 -7
  163. package/dist/ui-kit/Dialog/useDialogProps.js.map +1 -1
  164. package/dist/ui-kit/Paragraph/Paragraph.js +2 -1
  165. package/dist/ui-kit/Paragraph/Paragraph.js.map +1 -1
  166. package/dist/ui-kit/PhoneInput/PhoneInput.js +1 -1
  167. package/dist/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  168. package/dist/ui-kit/Text/Text.js +2 -1
  169. package/dist/ui-kit/Text/Text.js.map +1 -1
  170. package/dist/ui-kit/Text/TextProps.d.ts +1 -1
  171. package/lib/common.css +1 -1
  172. package/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  173. package/lib/{ui-kit/Heading/Heading.fixture.mobile.d.ts → components/BenefitsBlock/BenefitsBlock.fixture.mobile.d.ts} +1 -1
  174. package/lib/components/BenefitsBlock/BenefitsBlock.js +4 -6
  175. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  176. package/lib/components/BenefitsBlock/benefitImageStyles.d.ts +1 -0
  177. package/lib/components/BenefitsBlock/benefitImageStyles.js +2 -0
  178. package/lib/components/BenefitsBlock/benefitImageStyles.js.map +1 -0
  179. package/lib/components/BenefitsBlock/benefitImageStyles.mobile.d.ts +1 -0
  180. package/lib/components/BenefitsBlock/benefitImageStyles.mobile.js +2 -0
  181. package/lib/components/BenefitsBlock/benefitImageStyles.mobile.js.map +1 -0
  182. package/lib/components/Blocks.mobile.js +6 -0
  183. package/lib/components/Blocks.mobile.js.map +1 -1
  184. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.mobile.d.ts +7 -0
  185. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +4 -18
  186. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  187. package/lib/components/BonusBenefitsBlock/bonusBenefitAlign.d.ts +1 -0
  188. package/lib/components/BonusBenefitsBlock/bonusBenefitAlign.js +2 -0
  189. package/lib/components/BonusBenefitsBlock/bonusBenefitAlign.js.map +1 -0
  190. package/lib/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.d.ts +1 -0
  191. package/lib/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.js +2 -0
  192. package/lib/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.js.map +1 -0
  193. package/lib/components/BonusBenefitsBlock/bonusBenefitStyles.d.ts +1 -0
  194. package/lib/components/BonusBenefitsBlock/bonusBenefitStyles.js +2 -0
  195. package/lib/components/BonusBenefitsBlock/bonusBenefitStyles.js.map +1 -0
  196. package/lib/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.d.ts +1 -0
  197. package/lib/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.js +2 -0
  198. package/lib/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.js.map +1 -0
  199. package/lib/components/BonusBenefitsBlock/renderBonusBenefit.d.ts +2 -0
  200. package/lib/components/BonusBenefitsBlock/renderBonusBenefit.js +8 -0
  201. package/lib/components/BonusBenefitsBlock/renderBonusBenefit.js.map +1 -0
  202. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +4 -0
  203. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.js +17 -0
  204. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.js.map +1 -0
  205. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.mobile.d.ts +3 -0
  206. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js +5 -0
  207. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js.map +1 -0
  208. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.fixture.d.ts +0 -11
  209. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.fixture.mobile.d.ts +6 -0
  210. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  211. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  212. package/lib/components/CarouselCatalogCard/CatalogCard.d.ts +9 -0
  213. package/lib/components/CarouselCatalogCard/CatalogCard.js +18 -0
  214. package/lib/components/CarouselCatalogCard/CatalogCard.js.map +1 -0
  215. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  216. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  217. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.fixture.d.ts +0 -1
  218. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.fixture.mobile.d.ts +7 -0
  219. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +5 -2
  220. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  221. package/lib/components/CarouselProgramsCard/programCardStyles.d.ts +2 -0
  222. package/lib/components/CarouselProgramsCard/programCardStyles.js +3 -0
  223. package/lib/components/CarouselProgramsCard/programCardStyles.js.map +1 -0
  224. package/lib/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +2 -0
  225. package/lib/components/CarouselProgramsCard/programCardStyles.mobile.js +3 -0
  226. package/lib/components/CarouselProgramsCard/programCardStyles.mobile.js.map +1 -0
  227. package/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  228. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  229. package/lib/components/PictureText/PictureText.js +1 -1
  230. package/lib/components/PictureText/PictureText.js.map +1 -1
  231. package/lib/components/ProductBlock/ProductBlock.d.ts +1 -1
  232. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  233. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  234. package/lib/components/ProductGallery/ProductGallery.js +2 -2
  235. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  236. package/lib/components/ProductGallery/ProductGallery.mobile.js +1 -1
  237. package/lib/components/ProductGallery/ProductGallery.mobile.js.map +1 -1
  238. package/lib/components/ProductTile/ProductTile.js +4 -18
  239. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  240. package/lib/components/ProductTile/ProductTileContent.d.ts +3 -26
  241. package/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.mobile.d.ts +6 -0
  242. package/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js +2 -2
  243. package/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js.map +1 -1
  244. package/lib/components/StepsBlock/StepsBlock.mobile.d.ts +2 -2
  245. package/lib/components/StepsBlock/StepsBlock.mobile.js +16 -16
  246. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  247. package/lib/components/Tabs/LinkTab.js +3 -2
  248. package/lib/components/Tabs/LinkTab.js.map +1 -1
  249. package/lib/components/Tabs/Tabs.fixture.mobile.d.ts +8 -0
  250. package/lib/components/Tabs/Tabs.js +3 -2
  251. package/lib/components/Tabs/Tabs.js.map +1 -1
  252. package/lib/components/Tabs/renderGroupTab.d.ts +0 -1
  253. package/lib/components/Tabs/renderGroupTab.js +9 -15
  254. package/lib/components/Tabs/renderGroupTab.js.map +1 -1
  255. package/lib/components/Tabs/renderTab.d.ts +0 -1
  256. package/lib/components/Tabs/tabItemClasses.d.ts +2 -3
  257. package/lib/components/Tabs/tabItemClasses.js +8 -43
  258. package/lib/components/Tabs/tabItemClasses.js.map +1 -1
  259. package/lib/components/TariffsTable/TariffsTable.mobile.js +0 -1
  260. package/lib/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  261. package/lib/components/Tile/Tile.js +1 -1
  262. package/lib/components/Tile/Tile.js.map +1 -1
  263. package/lib/icons/IconName.d.ts +4 -2
  264. package/lib/icons/IconName.js +3 -1
  265. package/lib/icons/IconName.js.map +1 -1
  266. package/lib/ui-kit/BaseProductTile/BaseProductTile.d.ts +2 -2
  267. package/lib/ui-kit/BaseProductTile/BaseProductTile.js +3 -2
  268. package/lib/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  269. package/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +3 -2
  270. package/lib/ui-kit/BenefitItem/BenefitItem.d.ts +4 -4
  271. package/lib/ui-kit/BenefitItem/BenefitItem.js +3 -11
  272. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  273. package/lib/ui-kit/BenefitItem/renderBenefitDescription.d.ts +1 -0
  274. package/lib/ui-kit/BenefitItem/renderBenefitDescription.js +4 -0
  275. package/lib/ui-kit/BenefitItem/renderBenefitDescription.js.map +1 -0
  276. package/lib/ui-kit/BenefitItem/renderBenefitIcon.d.ts +3 -0
  277. package/lib/ui-kit/BenefitItem/renderBenefitIcon.js +7 -0
  278. package/lib/ui-kit/BenefitItem/renderBenefitIcon.js.map +1 -0
  279. package/lib/ui-kit/BenefitItem/renderBenefitLabel.d.ts +1 -0
  280. package/lib/ui-kit/BenefitItem/renderBenefitLabel.js +4 -0
  281. package/lib/ui-kit/BenefitItem/renderBenefitLabel.js.map +1 -0
  282. package/lib/ui-kit/BenefitItem/renderBenefitText.d.ts +2 -0
  283. package/lib/ui-kit/BenefitItem/renderBenefitText.js +9 -0
  284. package/lib/ui-kit/BenefitItem/renderBenefitText.js.map +1 -0
  285. package/lib/ui-kit/BenefitsList/BenefitsList.d.ts +1 -5
  286. package/lib/ui-kit/BenefitsList/BenefitsList.js +3 -9
  287. package/lib/ui-kit/BenefitsList/BenefitsList.js.map +1 -1
  288. package/lib/ui-kit/BenefitsList/BenefitsListContent.d.ts +3 -1
  289. package/lib/ui-kit/BenefitsList/BenefitsListProps.d.ts +4 -0
  290. package/lib/ui-kit/BenefitsList/BenefitsListProps.js +2 -0
  291. package/lib/ui-kit/BenefitsList/BenefitsListProps.js.map +1 -0
  292. package/lib/ui-kit/BenefitsList/DefaultBenefitsList.d.ts +2 -0
  293. package/lib/ui-kit/BenefitsList/DefaultBenefitsList.js +12 -0
  294. package/lib/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -0
  295. package/lib/ui-kit/BenefitsList/TabularBenefitsList.d.ts +2 -0
  296. package/lib/ui-kit/BenefitsList/TabularBenefitsList.js +6 -0
  297. package/lib/ui-kit/BenefitsList/TabularBenefitsList.js.map +1 -0
  298. package/lib/ui-kit/CookiePopup/CookiePopup.d.ts +2 -3
  299. package/lib/ui-kit/CookiePopup/CookiePopup.js +12 -6
  300. package/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  301. package/lib/ui-kit/Dialog/Dialog.js +1 -1
  302. package/lib/ui-kit/Dialog/Dialog.js.map +1 -1
  303. package/lib/ui-kit/Dialog/useDialogProps.d.ts +3 -1
  304. package/lib/ui-kit/Dialog/useDialogProps.js +9 -7
  305. package/lib/ui-kit/Dialog/useDialogProps.js.map +1 -1
  306. package/lib/ui-kit/Paragraph/Paragraph.js +2 -1
  307. package/lib/ui-kit/Paragraph/Paragraph.js.map +1 -1
  308. package/lib/ui-kit/PhoneInput/PhoneInput.js +1 -1
  309. package/lib/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  310. package/lib/ui-kit/Text/Text.js +2 -1
  311. package/lib/ui-kit/Text/Text.js.map +1 -1
  312. package/lib/ui-kit/Text/TextProps.d.ts +1 -1
  313. package/mobile/bundle/bundle.umd.js +547 -361
  314. package/mobile/bundle/bundle.umd.min.js +1 -1
  315. package/mobile/bundle/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  316. package/mobile/bundle/components/BenefitsBlock/benefitImageStyles.d.ts +1 -0
  317. package/mobile/bundle/components/BonusBenefitsBlock/bonusBenefitAlign.d.ts +1 -0
  318. package/mobile/bundle/components/BonusBenefitsBlock/bonusBenefitStyles.d.ts +1 -0
  319. package/mobile/bundle/components/BonusBenefitsBlock/renderBonusBenefit.d.ts +3 -0
  320. package/mobile/bundle/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +4 -0
  321. package/mobile/bundle/components/CarouselCatalogCard/CatalogCard.d.ts +9 -0
  322. package/mobile/bundle/components/CarouselProgramsCard/programCardStyles.d.ts +2 -0
  323. package/mobile/bundle/components/ProductBlock/ProductBlock.d.ts +1 -1
  324. package/mobile/bundle/components/ProductTile/ProductTileContent.d.ts +3 -26
  325. package/mobile/bundle/components/StepsBlock/StepsBlock.d.ts +2 -2
  326. package/mobile/bundle/components/Tabs/tabItemClasses.d.ts +2 -3
  327. package/mobile/bundle/icons/IconName.d.ts +4 -2
  328. package/mobile/bundle/ui-kit/BaseProductTile/BaseProductTile.d.ts +2 -2
  329. package/mobile/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +3 -2
  330. package/mobile/bundle/ui-kit/BenefitItem/BenefitItem.d.ts +4 -4
  331. package/mobile/bundle/ui-kit/BenefitItem/renderBenefitDescription.d.ts +2 -0
  332. package/mobile/bundle/ui-kit/BenefitItem/renderBenefitIcon.d.ts +4 -0
  333. package/mobile/bundle/ui-kit/BenefitItem/renderBenefitLabel.d.ts +2 -0
  334. package/mobile/bundle/ui-kit/BenefitItem/renderBenefitText.d.ts +3 -0
  335. package/mobile/bundle/ui-kit/BenefitsList/BenefitsList.d.ts +1 -5
  336. package/mobile/bundle/ui-kit/BenefitsList/BenefitsListContent.d.ts +3 -1
  337. package/mobile/bundle/ui-kit/BenefitsList/BenefitsListProps.d.ts +4 -0
  338. package/mobile/bundle/ui-kit/BenefitsList/DefaultBenefitsList.d.ts +2 -0
  339. package/mobile/bundle/ui-kit/BenefitsList/TabularBenefitsList.d.ts +2 -0
  340. package/mobile/bundle/ui-kit/CookiePopup/CookiePopup.d.ts +2 -3
  341. package/mobile/bundle/ui-kit/Dialog/useDialogProps.d.ts +3 -1
  342. package/mobile/bundle/ui-kit/Text/TextProps.d.ts +1 -1
  343. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  344. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +4 -6
  345. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  346. package/mobile/dist/components/BenefitsBlock/benefitImageStyles.d.ts +1 -0
  347. package/mobile/dist/components/BenefitsBlock/benefitImageStyles.js +4 -0
  348. package/mobile/dist/components/BenefitsBlock/benefitImageStyles.js.map +1 -0
  349. package/mobile/dist/components/Blocks.js +6 -0
  350. package/mobile/dist/components/Blocks.js.map +1 -1
  351. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +4 -18
  352. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  353. package/mobile/dist/components/BonusBenefitsBlock/bonusBenefitAlign.d.ts +1 -0
  354. package/mobile/dist/components/BonusBenefitsBlock/bonusBenefitAlign.js +4 -0
  355. package/mobile/dist/components/BonusBenefitsBlock/bonusBenefitAlign.js.map +1 -0
  356. package/mobile/dist/components/BonusBenefitsBlock/bonusBenefitStyles.d.ts +1 -0
  357. package/mobile/dist/components/BonusBenefitsBlock/bonusBenefitStyles.js +4 -0
  358. package/mobile/dist/components/BonusBenefitsBlock/bonusBenefitStyles.js.map +1 -0
  359. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefit.d.ts +3 -0
  360. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefit.js +11 -0
  361. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefit.js.map +1 -0
  362. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +4 -0
  363. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefits.js +8 -0
  364. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefits.js.map +1 -0
  365. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  366. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  367. package/mobile/dist/components/CarouselCatalogCard/CatalogCard.d.ts +9 -0
  368. package/mobile/dist/components/CarouselCatalogCard/CatalogCard.js +20 -0
  369. package/mobile/dist/components/CarouselCatalogCard/CatalogCard.js.map +1 -0
  370. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  371. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  372. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +5 -2
  373. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  374. package/mobile/dist/components/CarouselProgramsCard/programCardStyles.d.ts +2 -0
  375. package/mobile/dist/components/CarouselProgramsCard/programCardStyles.js +5 -0
  376. package/mobile/dist/components/CarouselProgramsCard/programCardStyles.js.map +1 -0
  377. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  378. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  379. package/mobile/dist/components/PictureText/PictureText.js +1 -1
  380. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  381. package/mobile/dist/components/ProductBlock/ProductBlock.d.ts +1 -1
  382. package/mobile/dist/components/ProductBlock/ProductBlock.js +1 -1
  383. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  384. package/mobile/dist/components/ProductGallery/ProductGallery.js +1 -1
  385. package/mobile/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  386. package/mobile/dist/components/ProductTile/ProductTile.js +3 -17
  387. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  388. package/mobile/dist/components/ProductTile/ProductTileContent.d.ts +3 -26
  389. package/mobile/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js +2 -2
  390. package/mobile/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js.map +1 -1
  391. package/mobile/dist/components/StepsBlock/StepsBlock.d.ts +2 -2
  392. package/mobile/dist/components/StepsBlock/StepsBlock.js +16 -16
  393. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  394. package/mobile/dist/components/Tabs/LinkTab.js +2 -1
  395. package/mobile/dist/components/Tabs/LinkTab.js.map +1 -1
  396. package/mobile/dist/components/Tabs/Tabs.js +3 -2
  397. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  398. package/mobile/dist/components/Tabs/renderGroupTab.js +7 -13
  399. package/mobile/dist/components/Tabs/renderGroupTab.js.map +1 -1
  400. package/mobile/dist/components/Tabs/tabItemClasses.d.ts +2 -3
  401. package/mobile/dist/components/Tabs/tabItemClasses.js +10 -46
  402. package/mobile/dist/components/Tabs/tabItemClasses.js.map +1 -1
  403. package/mobile/dist/components/TariffsTable/TariffsTable.js +0 -1
  404. package/mobile/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  405. package/mobile/dist/components/Tile/Tile.js +1 -1
  406. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  407. package/mobile/dist/icons/IconName.d.ts +4 -2
  408. package/mobile/dist/icons/IconName.js +3 -1
  409. package/mobile/dist/icons/IconName.js.map +1 -1
  410. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTile.d.ts +2 -2
  411. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTile.js +3 -2
  412. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  413. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +3 -2
  414. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.d.ts +4 -4
  415. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +3 -11
  416. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  417. package/mobile/dist/ui-kit/BenefitItem/renderBenefitDescription.d.ts +2 -0
  418. package/mobile/dist/ui-kit/BenefitItem/renderBenefitDescription.js +7 -0
  419. package/mobile/dist/ui-kit/BenefitItem/renderBenefitDescription.js.map +1 -0
  420. package/mobile/dist/ui-kit/BenefitItem/renderBenefitIcon.d.ts +4 -0
  421. package/mobile/dist/ui-kit/BenefitItem/renderBenefitIcon.js +10 -0
  422. package/mobile/dist/ui-kit/BenefitItem/renderBenefitIcon.js.map +1 -0
  423. package/mobile/dist/ui-kit/BenefitItem/renderBenefitLabel.d.ts +2 -0
  424. package/mobile/dist/ui-kit/BenefitItem/renderBenefitLabel.js +7 -0
  425. package/mobile/dist/ui-kit/BenefitItem/renderBenefitLabel.js.map +1 -0
  426. package/mobile/dist/ui-kit/BenefitItem/renderBenefitText.d.ts +3 -0
  427. package/mobile/dist/ui-kit/BenefitItem/renderBenefitText.js +12 -0
  428. package/mobile/dist/ui-kit/BenefitItem/renderBenefitText.js.map +1 -0
  429. package/mobile/dist/ui-kit/BenefitsList/BenefitsList.d.ts +1 -5
  430. package/mobile/dist/ui-kit/BenefitsList/BenefitsList.js +3 -9
  431. package/mobile/dist/ui-kit/BenefitsList/BenefitsList.js.map +1 -1
  432. package/mobile/dist/ui-kit/BenefitsList/BenefitsListContent.d.ts +3 -1
  433. package/mobile/dist/ui-kit/BenefitsList/BenefitsListProps.d.ts +4 -0
  434. package/mobile/dist/ui-kit/BenefitsList/BenefitsListProps.js +2 -0
  435. package/mobile/dist/ui-kit/BenefitsList/BenefitsListProps.js.map +1 -0
  436. package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.d.ts +2 -0
  437. package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.js +14 -0
  438. package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -0
  439. package/mobile/dist/ui-kit/BenefitsList/TabularBenefitsList.d.ts +2 -0
  440. package/mobile/dist/ui-kit/BenefitsList/TabularBenefitsList.js +8 -0
  441. package/mobile/dist/ui-kit/BenefitsList/TabularBenefitsList.js.map +1 -0
  442. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.d.ts +2 -3
  443. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js +13 -7
  444. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  445. package/mobile/dist/ui-kit/Dialog/Dialog.js +1 -1
  446. package/mobile/dist/ui-kit/Dialog/Dialog.js.map +1 -1
  447. package/mobile/dist/ui-kit/Dialog/useDialogProps.d.ts +3 -1
  448. package/mobile/dist/ui-kit/Dialog/useDialogProps.js +9 -7
  449. package/mobile/dist/ui-kit/Dialog/useDialogProps.js.map +1 -1
  450. package/mobile/dist/ui-kit/Paragraph/Paragraph.js +2 -1
  451. package/mobile/dist/ui-kit/Paragraph/Paragraph.js.map +1 -1
  452. package/mobile/dist/ui-kit/PhoneInput/PhoneInput.js +1 -1
  453. package/mobile/dist/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  454. package/mobile/dist/ui-kit/Text/Text.js +2 -1
  455. package/mobile/dist/ui-kit/Text/Text.js.map +1 -1
  456. package/mobile/dist/ui-kit/Text/TextProps.d.ts +1 -1
  457. package/mobile/lib/common.css +1 -1
  458. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  459. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +4 -6
  460. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  461. package/mobile/lib/components/BenefitsBlock/benefitImageStyles.d.ts +1 -0
  462. package/mobile/lib/components/BenefitsBlock/benefitImageStyles.js +2 -0
  463. package/mobile/lib/components/BenefitsBlock/benefitImageStyles.js.map +1 -0
  464. package/mobile/lib/components/Blocks.js +6 -0
  465. package/mobile/lib/components/Blocks.js.map +1 -1
  466. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +4 -18
  467. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  468. package/mobile/lib/components/BonusBenefitsBlock/bonusBenefitAlign.d.ts +1 -0
  469. package/mobile/lib/components/BonusBenefitsBlock/bonusBenefitAlign.js +2 -0
  470. package/mobile/lib/components/BonusBenefitsBlock/bonusBenefitAlign.js.map +1 -0
  471. package/mobile/lib/components/BonusBenefitsBlock/bonusBenefitStyles.d.ts +1 -0
  472. package/mobile/lib/components/BonusBenefitsBlock/bonusBenefitStyles.js +2 -0
  473. package/mobile/lib/components/BonusBenefitsBlock/bonusBenefitStyles.js.map +1 -0
  474. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefit.d.ts +3 -0
  475. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefit.js +8 -0
  476. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefit.js.map +1 -0
  477. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +4 -0
  478. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefits.js +5 -0
  479. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefits.js.map +1 -0
  480. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  481. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  482. package/mobile/lib/components/CarouselCatalogCard/CatalogCard.d.ts +9 -0
  483. package/mobile/lib/components/CarouselCatalogCard/CatalogCard.js +18 -0
  484. package/mobile/lib/components/CarouselCatalogCard/CatalogCard.js.map +1 -0
  485. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  486. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  487. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +5 -2
  488. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  489. package/mobile/lib/components/CarouselProgramsCard/programCardStyles.d.ts +2 -0
  490. package/mobile/lib/components/CarouselProgramsCard/programCardStyles.js +3 -0
  491. package/mobile/lib/components/CarouselProgramsCard/programCardStyles.js.map +1 -0
  492. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  493. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  494. package/mobile/lib/components/PictureText/PictureText.js +1 -1
  495. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  496. package/mobile/lib/components/ProductBlock/ProductBlock.d.ts +1 -1
  497. package/mobile/lib/components/ProductBlock/ProductBlock.js +1 -1
  498. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  499. package/mobile/lib/components/ProductGallery/ProductGallery.js +1 -1
  500. package/mobile/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  501. package/mobile/lib/components/ProductTile/ProductTile.js +4 -18
  502. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  503. package/mobile/lib/components/ProductTile/ProductTileContent.d.ts +3 -26
  504. package/mobile/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js +2 -2
  505. package/mobile/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.js.map +1 -1
  506. package/mobile/lib/components/StepsBlock/StepsBlock.d.ts +2 -2
  507. package/mobile/lib/components/StepsBlock/StepsBlock.js +16 -16
  508. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  509. package/mobile/lib/components/Tabs/LinkTab.js +3 -2
  510. package/mobile/lib/components/Tabs/LinkTab.js.map +1 -1
  511. package/mobile/lib/components/Tabs/Tabs.js +3 -2
  512. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  513. package/mobile/lib/components/Tabs/renderGroupTab.js +9 -15
  514. package/mobile/lib/components/Tabs/renderGroupTab.js.map +1 -1
  515. package/mobile/lib/components/Tabs/tabItemClasses.d.ts +2 -3
  516. package/mobile/lib/components/Tabs/tabItemClasses.js +8 -43
  517. package/mobile/lib/components/Tabs/tabItemClasses.js.map +1 -1
  518. package/mobile/lib/components/TariffsTable/TariffsTable.js +0 -1
  519. package/mobile/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  520. package/mobile/lib/components/Tile/Tile.js +1 -1
  521. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  522. package/mobile/lib/icons/IconName.d.ts +4 -2
  523. package/mobile/lib/icons/IconName.js +3 -1
  524. package/mobile/lib/icons/IconName.js.map +1 -1
  525. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTile.d.ts +2 -2
  526. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTile.js +3 -2
  527. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  528. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +3 -2
  529. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.d.ts +4 -4
  530. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +3 -11
  531. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  532. package/mobile/lib/ui-kit/BenefitItem/renderBenefitDescription.d.ts +2 -0
  533. package/mobile/lib/ui-kit/BenefitItem/renderBenefitDescription.js +4 -0
  534. package/mobile/lib/ui-kit/BenefitItem/renderBenefitDescription.js.map +1 -0
  535. package/mobile/lib/ui-kit/BenefitItem/renderBenefitIcon.d.ts +4 -0
  536. package/mobile/lib/ui-kit/BenefitItem/renderBenefitIcon.js +7 -0
  537. package/mobile/lib/ui-kit/BenefitItem/renderBenefitIcon.js.map +1 -0
  538. package/mobile/lib/ui-kit/BenefitItem/renderBenefitLabel.d.ts +2 -0
  539. package/mobile/lib/ui-kit/BenefitItem/renderBenefitLabel.js +4 -0
  540. package/mobile/lib/ui-kit/BenefitItem/renderBenefitLabel.js.map +1 -0
  541. package/mobile/lib/ui-kit/BenefitItem/renderBenefitText.d.ts +3 -0
  542. package/mobile/lib/ui-kit/BenefitItem/renderBenefitText.js +9 -0
  543. package/mobile/lib/ui-kit/BenefitItem/renderBenefitText.js.map +1 -0
  544. package/mobile/lib/ui-kit/BenefitsList/BenefitsList.d.ts +1 -5
  545. package/mobile/lib/ui-kit/BenefitsList/BenefitsList.js +3 -9
  546. package/mobile/lib/ui-kit/BenefitsList/BenefitsList.js.map +1 -1
  547. package/mobile/lib/ui-kit/BenefitsList/BenefitsListContent.d.ts +3 -1
  548. package/mobile/lib/ui-kit/BenefitsList/BenefitsListProps.d.ts +4 -0
  549. package/mobile/lib/ui-kit/BenefitsList/BenefitsListProps.js +2 -0
  550. package/mobile/lib/ui-kit/BenefitsList/BenefitsListProps.js.map +1 -0
  551. package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.d.ts +2 -0
  552. package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.js +12 -0
  553. package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -0
  554. package/mobile/lib/ui-kit/BenefitsList/TabularBenefitsList.d.ts +2 -0
  555. package/mobile/lib/ui-kit/BenefitsList/TabularBenefitsList.js +6 -0
  556. package/mobile/lib/ui-kit/BenefitsList/TabularBenefitsList.js.map +1 -0
  557. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.d.ts +2 -3
  558. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js +12 -6
  559. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  560. package/mobile/lib/ui-kit/Dialog/Dialog.js +1 -1
  561. package/mobile/lib/ui-kit/Dialog/Dialog.js.map +1 -1
  562. package/mobile/lib/ui-kit/Dialog/useDialogProps.d.ts +3 -1
  563. package/mobile/lib/ui-kit/Dialog/useDialogProps.js +9 -7
  564. package/mobile/lib/ui-kit/Dialog/useDialogProps.js.map +1 -1
  565. package/mobile/lib/ui-kit/Paragraph/Paragraph.js +2 -1
  566. package/mobile/lib/ui-kit/Paragraph/Paragraph.js.map +1 -1
  567. package/mobile/lib/ui-kit/PhoneInput/PhoneInput.js +1 -1
  568. package/mobile/lib/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  569. package/mobile/lib/ui-kit/Text/Text.js +2 -1
  570. package/mobile/lib/ui-kit/Text/Text.js.map +1 -1
  571. package/mobile/lib/ui-kit/Text/TextProps.d.ts +1 -1
  572. package/mobile/src/common.css +3 -0
  573. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +37 -34
  574. package/mobile/src/components/BenefitsBlock/benefitImageStyles.tsx +1 -0
  575. package/mobile/src/components/Blocks.ts +6 -0
  576. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +13 -49
  577. package/mobile/src/components/BonusBenefitsBlock/bonusBenefitAlign.ts +1 -0
  578. package/mobile/src/components/BonusBenefitsBlock/bonusBenefitStyles.ts +1 -0
  579. package/mobile/src/components/BonusBenefitsBlock/renderBonusBenefit.tsx +29 -0
  580. package/mobile/src/components/BonusBenefitsBlock/renderBonusBenefits.tsx +14 -0
  581. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +3 -3
  582. package/mobile/src/components/CarouselCatalogCard/CatalogCard.ts +22 -0
  583. package/mobile/src/components/CarouselInvestmentCard/CarouselInvestmentCard.example.json +1 -11
  584. package/mobile/src/components/CarouselInvestmentCard/CarouselInvestmentCard.tsx +2 -2
  585. package/mobile/src/components/CarouselProductCard/CarouselProductCard.example.json +1 -11
  586. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +21 -11
  587. package/mobile/src/components/CarouselProgramsCard/programCardStyles.ts +2 -0
  588. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +1 -12
  589. package/mobile/src/components/ErrorBlock/ErrorBlock.example.json +1 -11
  590. package/mobile/src/components/MobileAppTile/MobileAppTile.example.json +1 -11
  591. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  592. package/mobile/src/components/PictureText/PictureText.example.json +8 -13
  593. package/mobile/src/components/PictureText/PictureText.tsx +14 -3
  594. package/mobile/src/components/ProductBlock/ProductBlock.example.json +5 -13
  595. package/mobile/src/components/ProductBlock/ProductBlock.tsx +20 -16
  596. package/mobile/src/components/ProductGallery/ProductGallery.tsx +19 -17
  597. package/mobile/src/components/ProductTile/ProductTile.example.json +7 -12
  598. package/mobile/src/components/ProductTile/ProductTile.tsx +23 -58
  599. package/mobile/src/components/ProductTile/ProductTileContent.ts +4 -35
  600. package/mobile/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.tsx +3 -3
  601. package/mobile/src/components/StepsBlock/StepsBlock.tsx +50 -49
  602. package/mobile/src/components/Tabs/LinkTab.tsx +19 -8
  603. package/mobile/src/components/Tabs/Tabs.tsx +7 -4
  604. package/mobile/src/components/Tabs/renderGroupTab.tsx +21 -33
  605. package/mobile/src/components/Tabs/tabItemClasses.ts +12 -45
  606. package/mobile/src/components/TariffsTable/TariffsTable.tsx +0 -1
  607. package/mobile/src/components/Tile/Tile.example.json +7 -13
  608. package/mobile/src/components/Tile/Tile.tsx +4 -3
  609. package/mobile/src/icons/BelarusianFlag.svg +4 -0
  610. package/mobile/src/icons/IconName.ts +5 -5
  611. package/mobile/src/ui-kit/BaseProductTile/BaseProductTile.tsx +19 -6
  612. package/mobile/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +3 -1
  613. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +17 -49
  614. package/mobile/src/ui-kit/BenefitItem/renderBenefitDescription.tsx +13 -0
  615. package/mobile/src/ui-kit/BenefitItem/renderBenefitIcon.tsx +24 -0
  616. package/mobile/src/ui-kit/BenefitItem/renderBenefitLabel.tsx +12 -0
  617. package/mobile/src/ui-kit/BenefitItem/renderBenefitText.tsx +14 -0
  618. package/mobile/src/ui-kit/BenefitsList/BenefitsList.tsx +5 -32
  619. package/mobile/src/ui-kit/BenefitsList/BenefitsListContent.ts +3 -1
  620. package/mobile/src/ui-kit/BenefitsList/BenefitsListProps.ts +5 -0
  621. package/mobile/src/ui-kit/BenefitsList/DefaultBenefitsList.tsx +33 -0
  622. package/mobile/src/ui-kit/BenefitsList/TabularBenefitsList.tsx +17 -0
  623. package/mobile/src/ui-kit/CookiePopup/CookiePopup.tsx +17 -9
  624. package/mobile/src/ui-kit/Dialog/Dialog.tsx +1 -1
  625. package/mobile/src/ui-kit/Dialog/useDialogProps.ts +11 -9
  626. package/mobile/src/ui-kit/Paragraph/Paragraph.tsx +3 -2
  627. package/mobile/src/ui-kit/PhoneInput/PhoneInput.tsx +5 -1
  628. package/mobile/src/ui-kit/Text/Text.tsx +3 -2
  629. package/mobile/src/ui-kit/Text/TextProps.ts +0 -2
  630. package/package.json +1 -1
  631. package/src/common.css +3 -0
  632. package/src/components/BenefitsBlock/BenefitsBlock.fixture.mobile.tsx +43 -0
  633. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +0 -1
  634. package/src/components/BenefitsBlock/BenefitsBlock.tsx +37 -34
  635. package/src/components/BenefitsBlock/benefitImageStyles.mobile.tsx +1 -0
  636. package/src/components/BenefitsBlock/benefitImageStyles.tsx +1 -0
  637. package/src/components/Blocks.mobile.ts +6 -0
  638. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.mobile.tsx +67 -0
  639. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +13 -49
  640. package/src/components/BonusBenefitsBlock/bonusBenefitAlign.mobile.ts +1 -0
  641. package/src/components/BonusBenefitsBlock/bonusBenefitAlign.ts +1 -0
  642. package/src/components/BonusBenefitsBlock/bonusBenefitStyles.mobile.ts +1 -0
  643. package/src/components/BonusBenefitsBlock/bonusBenefitStyles.ts +1 -0
  644. package/src/components/BonusBenefitsBlock/renderBonusBenefit.tsx +29 -0
  645. package/src/components/BonusBenefitsBlock/renderBonusBenefits.mobile.tsx +14 -0
  646. package/src/components/BonusBenefitsBlock/renderBonusBenefits.tsx +27 -0
  647. package/src/components/Carousel/Carousel.fixture.tsx +13 -2
  648. package/src/components/CarouselCatalogCard/CarouselCatalogCard.fixture.mobile.tsx +23 -0
  649. package/src/components/CarouselCatalogCard/CarouselCatalogCard.fixture.tsx +3 -25
  650. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +3 -3
  651. package/src/components/CarouselCatalogCard/CatalogCard.ts +22 -0
  652. package/src/components/CarouselInvestmentCard/CarouselInvestmentCard.example.json +1 -11
  653. package/src/components/CarouselInvestmentCard/CarouselInvestmentCard.tsx +2 -2
  654. package/src/components/CarouselProductCard/CarouselProductCard.example.json +1 -11
  655. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.mobile.tsx +34 -0
  656. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.tsx +2 -7
  657. package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +21 -11
  658. package/src/components/CarouselProgramsCard/programCardStyles.mobile.ts +2 -0
  659. package/src/components/CarouselProgramsCard/programCardStyles.ts +2 -0
  660. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +1 -12
  661. package/src/components/ErrorBlock/ErrorBlock.example.json +1 -11
  662. package/src/components/MobileAppTile/MobileAppTile.example.json +1 -11
  663. package/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  664. package/src/components/PictureText/PictureText.example.json +8 -13
  665. package/src/components/PictureText/PictureText.fixture.mobile.tsx +0 -6
  666. package/src/components/PictureText/PictureText.fixture.tsx +0 -6
  667. package/src/components/PictureText/PictureText.tsx +14 -3
  668. package/src/components/ProductBlock/ProductBlock.example.json +5 -13
  669. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +0 -6
  670. package/src/components/ProductBlock/ProductBlock.tsx +20 -16
  671. package/src/components/ProductGallery/ProductGallery.mobile.tsx +19 -17
  672. package/src/components/ProductGallery/ProductGallery.tsx +2 -1
  673. package/src/components/ProductTile/ProductTile.example.json +7 -12
  674. package/src/components/ProductTile/ProductTile.fixture.tsx +13 -14
  675. package/src/components/ProductTile/ProductTile.tsx +23 -58
  676. package/src/components/ProductTile/ProductTileContent.ts +4 -35
  677. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.mobile.tsx +47 -0
  678. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.tsx +18 -9
  679. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.tsx +3 -3
  680. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +16 -8
  681. package/src/components/StepsBlock/StepsBlock.mobile.tsx +50 -49
  682. package/src/components/Tabs/LinkTab.tsx +19 -8
  683. package/src/components/Tabs/Tabs.fixture.mobile.tsx +55 -0
  684. package/src/components/Tabs/Tabs.fixture.tsx +8 -17
  685. package/src/components/Tabs/Tabs.tsx +7 -4
  686. package/src/components/Tabs/renderGroupTab.tsx +21 -33
  687. package/src/components/Tabs/tabItemClasses.ts +12 -45
  688. package/src/components/TariffsTable/TariffsTable.mobile.tsx +0 -1
  689. package/src/components/Tile/Tile.example.json +7 -13
  690. package/src/components/Tile/Tile.fixture.tsx +1 -1
  691. package/src/components/Tile/Tile.tsx +4 -3
  692. package/src/icons/BelarusianFlag.svg +4 -0
  693. package/src/icons/IconName.ts +5 -5
  694. package/src/ui-kit/BaseProductTile/BaseProductTile.tsx +19 -6
  695. package/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +3 -1
  696. package/src/ui-kit/BenefitItem/BenefitItem.tsx +17 -49
  697. package/src/ui-kit/BenefitItem/renderBenefitDescription.tsx +13 -0
  698. package/src/ui-kit/BenefitItem/renderBenefitIcon.tsx +24 -0
  699. package/src/ui-kit/BenefitItem/renderBenefitLabel.tsx +12 -0
  700. package/src/ui-kit/BenefitItem/renderBenefitText.tsx +14 -0
  701. package/src/ui-kit/BenefitsList/BenefitsList.tsx +5 -32
  702. package/src/ui-kit/BenefitsList/BenefitsListContent.ts +3 -1
  703. package/src/ui-kit/BenefitsList/BenefitsListProps.ts +5 -0
  704. package/src/ui-kit/BenefitsList/DefaultBenefitsList.tsx +33 -0
  705. package/src/ui-kit/BenefitsList/TabularBenefitsList.tsx +17 -0
  706. package/src/ui-kit/CookiePopup/CookiePopup.tsx +17 -9
  707. package/src/ui-kit/Dialog/Dialog.tsx +1 -1
  708. package/src/ui-kit/Dialog/useDialogProps.ts +11 -9
  709. package/src/ui-kit/Paragraph/Paragraph.tsx +3 -2
  710. package/src/ui-kit/PhoneInput/PhoneInput.tsx +5 -1
  711. package/src/ui-kit/Text/Text.tsx +3 -2
  712. package/src/ui-kit/Text/TextProps.ts +0 -2
  713. package/tailwind.config.cjs +12 -15
  714. package/bundle/components/ProductTile/renderAdditionalDescription.d.ts +0 -3
  715. package/bundle/components/ProductTile/renderBenefit.d.ts +0 -3
  716. package/bundle/components/ProductTile/renderImage.d.ts +0 -3
  717. package/bundle/ui-kit/BenefitItem/borderRadius.mobile.d.ts +0 -1
  718. package/bundle/ui-kit/BenefitItem/labelSize.d.ts +0 -1
  719. package/bundle/ui-kit/BenefitItem/labelSize.mobile.d.ts +0 -1
  720. package/bundle/ui-kit/BenefitsList/renderBenefit.d.ts +0 -4
  721. package/dist/components/MobileAppTile/renderButtonSection.d.ts +0 -0
  722. package/dist/components/MobileAppTile/renderButtonSection.js +0 -1
  723. package/dist/components/MobileAppTile/renderButtonSection.js.map +0 -1
  724. package/dist/components/ProductTile/renderAdditionalDescription.d.ts +0 -3
  725. package/dist/components/ProductTile/renderAdditionalDescription.js +0 -14
  726. package/dist/components/ProductTile/renderAdditionalDescription.js.map +0 -1
  727. package/dist/components/ProductTile/renderBenefit.d.ts +0 -3
  728. package/dist/components/ProductTile/renderBenefit.js +0 -29
  729. package/dist/components/ProductTile/renderBenefit.js.map +0 -1
  730. package/dist/components/ProductTile/renderImage.d.ts +0 -3
  731. package/dist/components/ProductTile/renderImage.js +0 -13
  732. package/dist/components/ProductTile/renderImage.js.map +0 -1
  733. package/dist/ui-kit/BenefitItem/borderRadius.mobile.d.ts +0 -1
  734. package/dist/ui-kit/BenefitItem/borderRadius.mobile.js +0 -4
  735. package/dist/ui-kit/BenefitItem/borderRadius.mobile.js.map +0 -1
  736. package/dist/ui-kit/BenefitItem/labelSize.d.ts +0 -1
  737. package/dist/ui-kit/BenefitItem/labelSize.js +0 -4
  738. package/dist/ui-kit/BenefitItem/labelSize.js.map +0 -1
  739. package/dist/ui-kit/BenefitItem/labelSize.mobile.d.ts +0 -1
  740. package/dist/ui-kit/BenefitItem/labelSize.mobile.js +0 -4
  741. package/dist/ui-kit/BenefitItem/labelSize.mobile.js.map +0 -1
  742. package/dist/ui-kit/BenefitsList/renderBenefit.d.ts +0 -4
  743. package/dist/ui-kit/BenefitsList/renderBenefit.js +0 -13
  744. package/dist/ui-kit/BenefitsList/renderBenefit.js.map +0 -1
  745. package/lib/components/MobileAppTile/renderButtonSection.d.ts +0 -0
  746. package/lib/components/MobileAppTile/renderButtonSection.js +0 -1
  747. package/lib/components/MobileAppTile/renderButtonSection.js.map +0 -1
  748. package/lib/components/ProductTile/renderAdditionalDescription.d.ts +0 -3
  749. package/lib/components/ProductTile/renderAdditionalDescription.js +0 -11
  750. package/lib/components/ProductTile/renderAdditionalDescription.js.map +0 -1
  751. package/lib/components/ProductTile/renderBenefit.d.ts +0 -2
  752. package/lib/components/ProductTile/renderBenefit.js +0 -26
  753. package/lib/components/ProductTile/renderBenefit.js.map +0 -1
  754. package/lib/components/ProductTile/renderImage.d.ts +0 -3
  755. package/lib/components/ProductTile/renderImage.js +0 -10
  756. package/lib/components/ProductTile/renderImage.js.map +0 -1
  757. package/lib/ui-kit/BenefitItem/borderRadius.mobile.d.ts +0 -1
  758. package/lib/ui-kit/BenefitItem/borderRadius.mobile.js +0 -2
  759. package/lib/ui-kit/BenefitItem/borderRadius.mobile.js.map +0 -1
  760. package/lib/ui-kit/BenefitItem/labelSize.d.ts +0 -1
  761. package/lib/ui-kit/BenefitItem/labelSize.js +0 -2
  762. package/lib/ui-kit/BenefitItem/labelSize.js.map +0 -1
  763. package/lib/ui-kit/BenefitItem/labelSize.mobile.d.ts +0 -1
  764. package/lib/ui-kit/BenefitItem/labelSize.mobile.js +0 -2
  765. package/lib/ui-kit/BenefitItem/labelSize.mobile.js.map +0 -1
  766. package/lib/ui-kit/BenefitsList/renderBenefit.d.ts +0 -3
  767. package/lib/ui-kit/BenefitsList/renderBenefit.js +0 -10
  768. package/lib/ui-kit/BenefitsList/renderBenefit.js.map +0 -1
  769. package/mobile/bundle/components/ProductTile/renderAdditionalDescription.d.ts +0 -3
  770. package/mobile/bundle/components/ProductTile/renderBenefit.d.ts +0 -3
  771. package/mobile/bundle/components/ProductTile/renderImage.d.ts +0 -3
  772. package/mobile/bundle/ui-kit/BenefitItem/labelSize.d.ts +0 -1
  773. package/mobile/bundle/ui-kit/BenefitsList/renderBenefit.d.ts +0 -4
  774. package/mobile/dist/components/MobileAppTile/renderButtonSection.d.ts +0 -0
  775. package/mobile/dist/components/MobileAppTile/renderButtonSection.js +0 -1
  776. package/mobile/dist/components/MobileAppTile/renderButtonSection.js.map +0 -1
  777. package/mobile/dist/components/ProductTile/renderAdditionalDescription.d.ts +0 -3
  778. package/mobile/dist/components/ProductTile/renderAdditionalDescription.js +0 -14
  779. package/mobile/dist/components/ProductTile/renderAdditionalDescription.js.map +0 -1
  780. package/mobile/dist/components/ProductTile/renderBenefit.d.ts +0 -3
  781. package/mobile/dist/components/ProductTile/renderBenefit.js +0 -29
  782. package/mobile/dist/components/ProductTile/renderBenefit.js.map +0 -1
  783. package/mobile/dist/components/ProductTile/renderImage.d.ts +0 -3
  784. package/mobile/dist/components/ProductTile/renderImage.js +0 -13
  785. package/mobile/dist/components/ProductTile/renderImage.js.map +0 -1
  786. package/mobile/dist/ui-kit/BenefitItem/labelSize.d.ts +0 -1
  787. package/mobile/dist/ui-kit/BenefitItem/labelSize.js +0 -4
  788. package/mobile/dist/ui-kit/BenefitItem/labelSize.js.map +0 -1
  789. package/mobile/dist/ui-kit/BenefitsList/renderBenefit.d.ts +0 -4
  790. package/mobile/dist/ui-kit/BenefitsList/renderBenefit.js +0 -13
  791. package/mobile/dist/ui-kit/BenefitsList/renderBenefit.js.map +0 -1
  792. package/mobile/lib/components/MobileAppTile/renderButtonSection.d.ts +0 -0
  793. package/mobile/lib/components/MobileAppTile/renderButtonSection.js +0 -1
  794. package/mobile/lib/components/MobileAppTile/renderButtonSection.js.map +0 -1
  795. package/mobile/lib/components/ProductTile/renderAdditionalDescription.d.ts +0 -3
  796. package/mobile/lib/components/ProductTile/renderAdditionalDescription.js +0 -11
  797. package/mobile/lib/components/ProductTile/renderAdditionalDescription.js.map +0 -1
  798. package/mobile/lib/components/ProductTile/renderBenefit.d.ts +0 -3
  799. package/mobile/lib/components/ProductTile/renderBenefit.js +0 -26
  800. package/mobile/lib/components/ProductTile/renderBenefit.js.map +0 -1
  801. package/mobile/lib/components/ProductTile/renderImage.d.ts +0 -3
  802. package/mobile/lib/components/ProductTile/renderImage.js +0 -10
  803. package/mobile/lib/components/ProductTile/renderImage.js.map +0 -1
  804. package/mobile/lib/ui-kit/BenefitItem/labelSize.d.ts +0 -1
  805. package/mobile/lib/ui-kit/BenefitItem/labelSize.js +0 -2
  806. package/mobile/lib/ui-kit/BenefitItem/labelSize.js.map +0 -1
  807. package/mobile/lib/ui-kit/BenefitsList/renderBenefit.d.ts +0 -4
  808. package/mobile/lib/ui-kit/BenefitsList/renderBenefit.js +0 -10
  809. package/mobile/lib/ui-kit/BenefitsList/renderBenefit.js.map +0 -1
  810. package/mobile/src/components/MobileAppTile/renderButtonSection.tsx +0 -0
  811. package/mobile/src/components/ProductTile/renderAdditionalDescription.tsx +0 -19
  812. package/mobile/src/components/ProductTile/renderBenefit.tsx +0 -41
  813. package/mobile/src/components/ProductTile/renderImage.tsx +0 -16
  814. package/mobile/src/ui-kit/BenefitItem/labelSize.tsx +0 -1
  815. package/mobile/src/ui-kit/BenefitsList/renderBenefit.tsx +0 -14
  816. package/src/components/MobileAppTile/renderButtonSection.tsx +0 -0
  817. package/src/components/ProductTile/renderAdditionalDescription.tsx +0 -19
  818. package/src/components/ProductTile/renderBenefit.tsx +0 -41
  819. package/src/components/ProductTile/renderImage.tsx +0 -16
  820. package/src/ui-kit/BenefitItem/borderRadius.mobile.tsx +0 -1
  821. package/src/ui-kit/BenefitItem/labelSize.mobile.tsx +0 -1
  822. package/src/ui-kit/BenefitItem/labelSize.tsx +0 -1
  823. package/src/ui-kit/BenefitsList/renderBenefit.tsx +0 -14
  824. package/src/ui-kit/Heading/Heading.fixture.mobile.tsx +0 -30
@@ -327,6 +327,240 @@
327
327
  return (jsx(Tag, { className: style('font-sans', isGroup ? 'group' : '', blockStyles[version], isHidden ? 'hidden' : '', padding || defaultPadding, className), ...(isGroup ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children }));
328
328
  });
329
329
 
330
+ const mobileHeadingTagMap = {
331
+ h1: 'h1',
332
+ h2: 'h1',
333
+ h3: 'h2',
334
+ h4: 'h2',
335
+ h5: 'h3',
336
+ h6: 'h3',
337
+ };
338
+ const headingTag = (tag) => mobileHeadingTagMap[tag] || 'h3';
339
+
340
+ const styles = {
341
+ h0: 'text-h0',
342
+ h1: 'text-h1',
343
+ h2: 'text-h2',
344
+ h3: 'text-h3',
345
+ h4: 'text-h4',
346
+ h5: 'text-h5',
347
+ h6: 'text-h6', // 20
348
+ };
349
+ const Heading = JSX(({ className = '', headingType = 'h3', as = 'h3', title, children }) => {
350
+ const Tag = headingTag(as);
351
+ return (jsx(Tag, { className: style('font-sans m-0', styles[headingType], className), children: title || children }));
352
+ });
353
+
354
+ const Paragraph = JSX(({ children, ...styleProps }) => (jsx("p", { className: style('font-sans', Object.values(styleProps)), children: children })));
355
+
356
+ const headlineVersionStyles = {
357
+ XXL: {
358
+ title: { headingType: 'h0', as: 'h1' },
359
+ descriptionSize: 'text-h5',
360
+ descriptionStyle: 'mt-m',
361
+ },
362
+ XL: {
363
+ title: { headingType: 'h1', as: 'h1' },
364
+ descriptionSize: 'text-xl-light',
365
+ descriptionStyle: 'mt-s',
366
+ },
367
+ L: {
368
+ title: { headingType: 'h2', as: 'h2' },
369
+ descriptionSize: 'text-xl-light',
370
+ descriptionStyle: 'mt-s',
371
+ },
372
+ M: {
373
+ title: { headingType: 'h3', as: 'h2' },
374
+ descriptionSize: 'text-xl-light',
375
+ descriptionStyle: 'mt-text',
376
+ },
377
+ S: {
378
+ title: { headingType: 'h4', as: 'h2' },
379
+ descriptionSize: 'text-xl-light',
380
+ descriptionStyle: 'mt-xs',
381
+ },
382
+ XS: {
383
+ title: { headingType: 'h5', as: 'h2' },
384
+ descriptionSize: 'text-l-light',
385
+ descriptionStyle: 'mt-xs',
386
+ },
387
+ };
388
+
389
+ const Headline = JSX(({ className, version = '', headlineVersion = 'XL', title, description, align = 'text-center', as, isPadding = true, isTheme = false, ...rest }) => {
390
+ const versionStyle = headlineVersionStyles[headlineVersion];
391
+ const descriptionStyle = { marginTop: versionStyle.descriptionStyle };
392
+ return (jsxs(BlockWrapper, { className: className, defaultPadding: isPadding ? 'p-default' : '', version: version, isTheme: isTheme, ...rest, children: [title ? (jsx(Heading, { className: style('whitespace-pre-wrap', align), ...versionStyle?.title, as: as || versionStyle?.title.as, title: title })) : null, description ? (jsx(Paragraph, { size: versionStyle.descriptionSize, align: align, ...descriptionStyle, children: description })) : null] }));
393
+ });
394
+
395
+ const mapChildren = (mapper) => (children) => {
396
+ if (children === null || children === undefined) {
397
+ return children;
398
+ }
399
+ return Array.isArray(children) ? children.map(mapper) : mapper(children, 0);
400
+ };
401
+
402
+ const HEADER_HEIGHT = 170;
403
+ const FOOTER_HEIGHT = 48;
404
+ const BLOCKS_GAP = 4;
405
+ const PAGE_PADDINGS_X = 20;
406
+ const DEFAULT_HEIGHT = 866;
407
+ const getContainerHeight = (minHeight) => ({
408
+ height: `calc(100vh - ${HEADER_HEIGHT + FOOTER_HEIGHT + BLOCKS_GAP + PAGE_PADDINGS_X}px)`,
409
+ minHeight: `${minHeight || DEFAULT_HEIGHT}px`,
410
+ });
411
+
412
+ const SwipeListItem = JSX(({ className = '', style, idx, activeIndex, observerOptions, children, onIntersection }) => {
413
+ const observerCallback = useCallback((entries) => {
414
+ if (entries.length && onIntersection) {
415
+ onIntersection(idx || 0, entries[entries.length - 1]);
416
+ }
417
+ }, [onIntersection, idx]);
418
+ const ref = useIntersectionObserver(observerCallback, observerOptions);
419
+ return (jsx("div", { className: `inline-block snap-always box-border ${className}`, style: style, "aria-current": Boolean(idx === activeIndex), ref: ref, children: children }));
420
+ });
421
+
422
+ const childStyleMap = ['min-w-[100%]', 'min-w-[50%]', 'min-w-[33.33%]', 'min-w-[25%]'];
423
+ const SwipeListContainer = JSX(({ className = '', containerRef, activeIndex, visibleItemCount = 0, gap = 0, padding = 0, listType = 'horizontal-list', snapAlign = 'snap-center', minHeight, children, onVisibleItemsChange, onVisibleIndicesChange, }) => {
424
+ const observerOptions = {
425
+ sensitivity: 1,
426
+ rootRef: containerRef,
427
+ };
428
+ const itemsVisibilityListRef = useRef([]);
429
+ const handleIntersection = useCallback((idx, entry) => {
430
+ const itemsVisibilityList = [...(itemsVisibilityListRef.current || [])];
431
+ itemsVisibilityList[idx] = entry;
432
+ itemsVisibilityListRef.current = itemsVisibilityList;
433
+ onVisibleItemsChange && onVisibleItemsChange(itemsVisibilityList);
434
+ onVisibleIndicesChange && onVisibleIndicesChange(getVisibleIndices(itemsVisibilityList));
435
+ }, [onVisibleItemsChange, onVisibleIndicesChange]);
436
+ const additionPadding = visibleItemCount > 0 ? gap * Number(visibleItemCount) - 1 : 0;
437
+ const isVerticalList = listType === 'vertical-list';
438
+ const isHorizontalList = listType === 'horizontal-list';
439
+ const containerStyle = {
440
+ ...(isHorizontalList ? getContainerOffset(padding, additionPadding) : {}),
441
+ ...(isVerticalList ? getContainerHeight(minHeight) : {}),
442
+ gap: `${gap}px`,
443
+ };
444
+ return (jsx("div", { className: style('box-border overflow-auto no-scrollbar', listType, className), style: containerStyle, ref: containerRef, children: mapChildren((child, idx) => (jsx(SwipeListItem, { className: style(snapAlign, visibleItemCount ? childStyleMap[visibleItemCount - 1] : '', isVerticalList ? 'h-full' : ''), style: isHorizontalList ? getContainerOffset(padding / 4) : {}, activeIndex: activeIndex, idx: idx, observerOptions: observerOptions, onIntersection: handleIntersection, children: child }, String(idx))))(children) }));
445
+ });
446
+ // Styles used to compensate outer container padding to get rid of clipping effect
447
+ const getContainerOffset = (padding, additionalPadding = 0) => ({
448
+ marginLeft: `${-padding}px`,
449
+ marginRight: `${-padding}px`,
450
+ paddingLeft: `${padding}px`,
451
+ paddingRight: `${padding + additionalPadding}px`,
452
+ });
453
+ const getVisibleIndices = (itemsVisibilityList) => itemsVisibilityList
454
+ .map((_, i) => [_, i])
455
+ .filter(([_]) => _ && _.intersectionRatio >= 0.9)
456
+ .map(([, i]) => i);
457
+
458
+ const containerStyles = {
459
+ 'horizontal-list': 'mx-auto mt-5 w-fit',
460
+ 'vertical-list': 'absolute flex-col justify-center h-full top-0 left-4',
461
+ };
462
+ const activeDotStyles = {
463
+ 'horizontal-list': 'w-6',
464
+ 'vertical-list': 'h-6',
465
+ };
466
+ const dotStyle = 'cursor-pointer rounded-full transition-width duration-300 bg-primary-main group-data-secondary:bg-white group-data-transparent:bg-white';
467
+ const inactiveDotStyle = 'w-2 h-2 opacity-30';
468
+ const SwipeListControlDots = JSX(({ containerRef, activeIndex, dotCount = 0, listType = 'horizontal-list', version }) => {
469
+ const handleClick = (idx) => {
470
+ if (idx !== activeIndex && containerRef?.current) {
471
+ containerRef.current.children[idx]?.scrollIntoView({
472
+ behavior: 'smooth',
473
+ block: 'nearest',
474
+ });
475
+ }
476
+ };
477
+ return dotCount ? (jsx("div", { className: style('flex gap-2', containerStyles[listType], version ? 'group' : ''), ...(version ? { 'data-ver': version } : {}), children: new Array(dotCount).fill(null).map((_, idx) => (jsx("div", { className: `${dotStyle} ${idx === activeIndex ? activeDotStyles[listType] : inactiveDotStyle}`, role: "button", "aria-hidden": true, onClick: () => handleClick(idx) }, String(idx)))) })) : null;
478
+ });
479
+
480
+ const areArraysEqual = (as, bs) => as === bs || Boolean(as && bs && as?.length === bs?.length && as.every((_, i) => _ === bs[i]));
481
+
482
+ const defaultDiscriminator = (_) => _;
483
+ const maxBy = (discriminator = defaultDiscriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
484
+
485
+ const minBy = (discriminator = defaultDiscriminator) => maxBy((_) => -discriminator(_));
486
+
487
+ const getItemWidth = (container) => (itemCount) => container.scrollWidth / itemCount;
488
+ const scrollBy = (container) => (itemCount, delta) => {
489
+ container.scrollBy({ left: delta * getItemWidth(container)(itemCount), behavior: 'smooth' });
490
+ };
491
+
492
+ const scrollToEnd = (container) => {
493
+ container.scrollTo({ left: container.scrollWidth, behavior: 'smooth' });
494
+ };
495
+
496
+ const scrollToStart = (container) => {
497
+ container.scrollTo({ left: 0, behavior: 'smooth' });
498
+ };
499
+
500
+ const useSwipeListScroll = ({ itemCount, isCyclic, onVisibleIndicesChange, }) => {
501
+ const containerRef = useRef(null);
502
+ const [visibleIndices, setVisibleIndices] = useState([]);
503
+ const handleVisibleIndicesChange = useCallback((indices) => {
504
+ setVisibleIndices((prevIndices) => areArraysEqual(prevIndices, indices) ? prevIndices : indices);
505
+ onVisibleIndicesChange && onVisibleIndicesChange(indices);
506
+ }, [itemCount]);
507
+ const [minIndex, maxIndex] = visibleIndices.length
508
+ ? [minBy()(visibleIndices), maxBy()(visibleIndices)]
509
+ : [-1, -1];
510
+ const canScrollLeft = minIndex > 0;
511
+ const canScrollRight = maxIndex < itemCount - 1;
512
+ const scrollLeft = useCallback(() => {
513
+ if (!containerRef.current) {
514
+ return;
515
+ }
516
+ if (isCyclic && !canScrollLeft) {
517
+ scrollToEnd(containerRef.current);
518
+ }
519
+ else {
520
+ scrollBy(containerRef.current)(itemCount, -1);
521
+ }
522
+ }, [isCyclic, itemCount, canScrollLeft]);
523
+ const scrollRight = useCallback(() => {
524
+ if (!containerRef.current) {
525
+ return;
526
+ }
527
+ if (isCyclic && !canScrollRight) {
528
+ scrollToStart(containerRef.current);
529
+ }
530
+ else {
531
+ scrollBy(containerRef.current)(itemCount, 1);
532
+ }
533
+ }, [itemCount, isCyclic, canScrollRight]);
534
+ return [
535
+ containerRef,
536
+ {
537
+ scrollLeft,
538
+ scrollRight,
539
+ canScrollLeft: isCyclic || canScrollLeft,
540
+ canScrollRight: isCyclic || canScrollRight,
541
+ visibleIndicesRange: [minIndex, maxIndex],
542
+ handleVisibleIndicesChange,
543
+ },
544
+ ];
545
+ };
546
+
547
+ const DEFAULT_GAP = 14;
548
+ /*
549
+ Horizontal padding used on a container above SwipeListControl.
550
+ Same value used on a SwipeListControlChildren container to compensate it
551
+ and get rid of a clipping effect caused by overflow: hidden.
552
+ */
553
+ const DEFAULT_PADDING = 16;
554
+ const SwipeListControl = JSX(({ className, version, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, showDots = true, minHeight, children, onVisibleIndicesChange, listType = 'horizontal-list', }) => {
555
+ const itemCount = Array.isArray(children) ? children.length : 0;
556
+ const [containerRef, scroll] = useSwipeListScroll({
557
+ itemCount,
558
+ onVisibleIndicesChange,
559
+ });
560
+ const [activeIndex] = scroll.visibleIndicesRange;
561
+ return (jsxs("div", { className: style(className, listType === 'vertical-list' ? 'relative h-full' : ''), children: [jsx(SwipeListContainer, { containerRef: containerRef, activeIndex: activeIndex, visibleItemCount: 1, gap: gap, padding: padding, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, listType: listType, minHeight: minHeight, children: children }), showDots ? (jsx(SwipeListControlDots, { containerRef: containerRef, activeIndex: activeIndex, dotCount: itemCount, listType: listType, version: version })) : null] }));
562
+ });
563
+
330
564
  function useRouter() {
331
565
  return useRouter._impl();
332
566
  }
@@ -417,6 +651,20 @@
417
651
  return image.icon ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: image?.iconVersion, name: image.icon, ...iconProps })) : (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, pathPrefix: pathPrefix }));
418
652
  });
419
653
 
654
+ const Text = JSX(({ children, ...styleProps }) => (jsx("span", { className: style('font-sans', Object.values(styleProps)), children: children })));
655
+
656
+ const bonusBenefitAlign = 'text-left';
657
+
658
+ const bonusBenefitStyles = 'justify-between p-4 h-full border border-gray';
659
+
660
+ const renderBonusBenefit = ({ icon, title, description }, i) => (jsxs("div", { className: style('flex flex-col', bonusBenefitStyles, !description && !title ? 'justify-center' : ''), children: [title ? (jsx(Text, { size: "text-h6", font: "font-normal", align: bonusBenefitAlign, children: title })) : null, icon ? jsx(Img, { image: icon, height: "180", className: "w-auto" }) : null, description ? (jsx(Text, { size: "text-h6", font: "font-normal", align: bonusBenefitAlign, children: description })) : null] }, String(i)));
661
+
662
+ const renderBonusBenefits = (bonusBenefits, columnsCount, cardTextAlign) => (jsx(SwipeListControl, { children: bonusBenefits.map((_, i) => renderBonusBenefit({ ..._ }, i)) }));
663
+
664
+ const BonusBenefitsBlock = JSX(({ bonusBenefits, cardTextAlign = 'center', className = '', columnsCount = '4', subtitle, title, ...rest }) => (jsxs(BlockWrapper, { className: style('p-default', className), defaultPadding: "p-default", ...rest, children: [jsx(Headline, { className: "mb-4 sm:mb-8", isPadding: false, title: title, description: subtitle, headlineVersion: "M" }), bonusBenefits?.length
665
+ ? renderBonusBenefits(bonusBenefits)
666
+ : null] })));
667
+
420
668
  const useDialog = (id = '') => ({
421
669
  open: (message) => defaultEventBus.fire('dialog', { type: 'open', id, message }),
422
670
  close: () => defaultEventBus.fire('dialog', { type: 'close' }),
@@ -610,8 +858,6 @@
610
858
  maximumFractionDigits: fractionDigits,
611
859
  }).format(Number(_) || 0);
612
860
 
613
- const Text = JSX(({ children, ...style }) => (jsx("span", { className: ['font-sans', ...Object.values(style)].join(' '), children: children })));
614
-
615
861
  const Input = JSX(({ key, className = '', inputClassName = '', id, name, type = 'text', label, placeholder, value = '', valid = true, children, onChange, onFocus, onBlur, pattern, }) => {
616
862
  const handleChange = useCallback((e) => {
617
863
  onChange && onChange(e.target?.value || '');
@@ -625,256 +871,80 @@
625
871
 
626
872
  const NumberInput = JSX((props) => {
627
873
  const { onChange, min, max, defaultValue = '0', fractionDigits = 0, ...inputProps } = props;
628
- const normalizedProps = useNormalizedInput(props, {
629
- normalize: (_ = defaultValue) => min && max ? String(clamp(Number(sanitizeNumberStr(_)), min, max)) : sanitizeNumberStr(_),
630
- format: toLocalNumberFormat(fractionDigits),
631
- });
632
- const handleChange = useCallback((_) => onChange && onChange(sanitizeNumberStr(_)), [onChange]);
633
- return jsx(Input, { onChange: handleChange, ...inputProps, ...normalizedProps });
634
- });
635
- const sanitizeNumberStr = (_ = '') => _.replaceAll(',', '.')
636
- .replace(/[^\d.]/g, '')
637
- .replace(/([^.]*\.[^.]*)\./, '$1');
638
-
639
- const CurrencyInput = JSX((props) => (jsx(NumberInput, { ...props, fractionDigits: 2, children: jsx("div", { className: "absolute right-4 bottom-4", children: jsx(Text, { size: "text-xl", font: "font-light", children: "\u20BD" }) }) })));
640
-
641
- const mobileHeadingTagMap = {
642
- h1: 'h1',
643
- h2: 'h1',
644
- h3: 'h2',
645
- h4: 'h2',
646
- h5: 'h3',
647
- h6: 'h3',
648
- };
649
- const headingTag = (tag) => mobileHeadingTagMap[tag] || 'h3';
650
-
651
- const styles = {
652
- h0: 'text-h0',
653
- h1: 'text-h1',
654
- h2: 'text-h2',
655
- h3: 'text-h3',
656
- h4: 'text-h4',
657
- h5: 'text-h5',
658
- h6: 'text-h6', // 20
659
- };
660
- const Heading = JSX(({ className = '', headingType = 'h3', as = 'h3', title, children }) => {
661
- const Tag = headingTag(as);
662
- return (jsx(Tag, { className: style('font-sans m-0', styles[headingType], className), children: title || children }));
663
- });
664
-
665
- const DEFAULT_TITLE = 'Укажите сумму перевода';
666
- const DEFAULT_LABEL = 'Сумма перевода';
667
- const DEFAULT_PLACEHOLDER = '1500';
668
- const FORM_URL = 'https://www.rshb.ru/p2p/';
669
- const AMOUNT_KEY = 'amount';
670
- const INITIAL_FORM_STATE = {
671
- [AMOUNT_KEY]: 1500,
672
- };
673
- const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, placeholder = DEFAULT_PLACEHOLDER, button, ...rest }) => {
674
- const [{ amount }, { field }] = useForm(INITIAL_FORM_STATE);
675
- const isDisabled = amount <= 0;
676
- const buttonStyle = isDisabled
677
- ? getDisabledButtonClasses({ version: button?.version })
678
- : getRegularButtonClasses({ className: 'text-white', version: button?.version });
679
- const link = useLink();
680
- return (jsxs(BlockWrapper, { className: style('flex flex-col items-center', className), defaultPadding: "p-default", ...rest, children: [title ? (jsx(Heading, { className: "pb-5 xl:pb-9 self-start xl:self-center", headingType: "h2", title: title })) : null, jsxs("form", { className: "w-full xl:max-w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, valid: !isDisabled, placeholder: placeholder, label: label, ...field(AMOUNT_KEY, { parse: Number, format: String }) }), button?.text ? (jsx("button", { type: "submit", className: style('w-full p-4 mt-5 xl:mt-6', buttonStyle), disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
681
- });
682
-
683
- const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
684
-
685
- const DEFAULT_ANCESTORS = [];
686
- const defaultStyle = 'col-span-12';
687
- function renderBlock(block, options, { className, ...extraProps } = {}) {
688
- const { key, blockDecorator = defaultBlockDecorator, blocksRegistry = {}, ancestors = DEFAULT_ANCESTORS, } = options;
689
- const { type } = block;
690
- if (!(type && type in blocksRegistry)) {
691
- console.warn(`No block with "${type}" is registered`);
692
- }
693
- const BlockComponent = type && blocksRegistry[type];
694
- return blockDecorator({
695
- blockClassName: style('scroll-mt-12', // TODO scroll-mt-12 ? here?
696
- className, block.style || defaultStyle),
697
- block,
698
- ancestors,
699
- // Adjusted by decorator block and blockClassName
700
- render: ({ block: adjustedBlock, blockClassName: adjustedBlockClassName }) => {
701
- const { content } = adjustedBlock;
702
- return BlockComponent ? (jsx(BlockComponent, { className: adjustedBlockClassName, block: block, options: options, ...content, ...extraProps }, key)) : null;
703
- },
704
- }, key);
705
- }
706
-
707
- const DEFAULT_SLOT_NAME = null;
708
-
709
- const EMPTY_ANCESTORS = [];
710
- const renderBlocksList = (blocks, { key, ancestors = EMPTY_ANCESTORS, slotName = DEFAULT_SLOT_NAME, renderProps = renderBlock, ...options }) => (blocks || []).map((_, j) => renderProps(_, {
711
- ...options,
712
- key: `${key ? key : _.type}-${j}`,
713
- ancestors: options.parent
714
- ? [...(ancestors || EMPTY_ANCESTORS), [options.parent, slotName]]
715
- : ancestors,
716
- }));
717
-
718
- function renderChildren({ children, block, options, renderProps, }) {
719
- if (children) {
720
- return children;
721
- }
722
- return block && options
723
- ? renderBlocksList(block.blocks, { ...options, parent: block, renderProps })
724
- : null;
725
- }
726
-
727
- const mapChildren = (mapper) => (children) => {
728
- if (children === null || children === undefined) {
729
- return children;
730
- }
731
- return Array.isArray(children) ? children.map(mapper) : mapper(children, 0);
732
- };
733
-
734
- const HEADER_HEIGHT = 170;
735
- const FOOTER_HEIGHT = 48;
736
- const BLOCKS_GAP = 4;
737
- const PAGE_PADDINGS_X = 20;
738
- const DEFAULT_HEIGHT = 866;
739
- const getContainerHeight = (minHeight) => ({
740
- height: `calc(100vh - ${HEADER_HEIGHT + FOOTER_HEIGHT + BLOCKS_GAP + PAGE_PADDINGS_X}px)`,
741
- minHeight: `${minHeight || DEFAULT_HEIGHT}px`,
742
- });
743
-
744
- const SwipeListItem = JSX(({ className = '', style, idx, activeIndex, observerOptions, children, onIntersection }) => {
745
- const observerCallback = useCallback((entries) => {
746
- if (entries.length && onIntersection) {
747
- onIntersection(idx || 0, entries[entries.length - 1]);
748
- }
749
- }, [onIntersection, idx]);
750
- const ref = useIntersectionObserver(observerCallback, observerOptions);
751
- return (jsx("div", { className: `inline-block snap-always box-border ${className}`, style: style, "aria-current": Boolean(idx === activeIndex), ref: ref, children: children }));
752
- });
753
-
754
- const childStyleMap = ['min-w-[100%]', 'min-w-[50%]', 'min-w-[33.33%]', 'min-w-[25%]'];
755
- const SwipeListContainer = JSX(({ className = '', containerRef, activeIndex, visibleItemCount = 0, gap = 0, padding = 0, listType = 'horizontal-list', snapAlign = 'snap-center', minHeight, children, onVisibleItemsChange, onVisibleIndicesChange, }) => {
756
- const observerOptions = {
757
- sensitivity: 1,
758
- rootRef: containerRef,
759
- };
760
- const itemsVisibilityListRef = useRef([]);
761
- const handleIntersection = useCallback((idx, entry) => {
762
- const itemsVisibilityList = [...(itemsVisibilityListRef.current || [])];
763
- itemsVisibilityList[idx] = entry;
764
- itemsVisibilityListRef.current = itemsVisibilityList;
765
- onVisibleItemsChange && onVisibleItemsChange(itemsVisibilityList);
766
- onVisibleIndicesChange && onVisibleIndicesChange(getVisibleIndices(itemsVisibilityList));
767
- }, [onVisibleItemsChange, onVisibleIndicesChange]);
768
- const additionPadding = visibleItemCount > 0 ? gap * Number(visibleItemCount) - 1 : 0;
769
- const isVerticalList = listType === 'vertical-list';
770
- const isHorizontalList = listType === 'horizontal-list';
771
- const containerStyle = {
772
- ...(isHorizontalList ? getContainerOffset(padding, additionPadding) : {}),
773
- ...(isVerticalList ? getContainerHeight(minHeight) : {}),
774
- gap: `${gap}px`,
775
- };
776
- return (jsx("div", { className: style('box-border overflow-auto no-scrollbar', listType, className), style: containerStyle, ref: containerRef, children: mapChildren((child, idx) => (jsx(SwipeListItem, { className: style(snapAlign, visibleItemCount ? childStyleMap[visibleItemCount - 1] : '', isVerticalList ? 'h-full' : ''), style: isHorizontalList ? getContainerOffset(padding / 4) : {}, activeIndex: activeIndex, idx: idx, observerOptions: observerOptions, onIntersection: handleIntersection, children: child }, String(idx))))(children) }));
777
- });
778
- // Styles used to compensate outer container padding to get rid of clipping effect
779
- const getContainerOffset = (padding, additionalPadding = 0) => ({
780
- marginLeft: `${-padding}px`,
781
- marginRight: `${-padding}px`,
782
- paddingLeft: `${padding}px`,
783
- paddingRight: `${padding + additionalPadding}px`,
784
- });
785
- const getVisibleIndices = (itemsVisibilityList) => itemsVisibilityList
786
- .map((_, i) => [_, i])
787
- .filter(([_]) => _ && _.intersectionRatio >= 0.9)
788
- .map(([, i]) => i);
789
-
790
- const containerStyles = {
791
- 'horizontal-list': 'mx-auto mt-5 w-fit',
792
- 'vertical-list': 'absolute flex-col justify-center h-full top-0 left-4',
793
- };
794
- const activeDotStyles = {
795
- 'horizontal-list': 'w-6',
796
- 'vertical-list': 'h-6',
797
- };
798
- const dotStyle = 'cursor-pointer rounded-full transition-width duration-300 bg-primary-main group-data-secondary:bg-white group-data-transparent:bg-white';
799
- const inactiveDotStyle = 'w-2 h-2 opacity-30';
800
- const SwipeListControlDots = JSX(({ containerRef, activeIndex, dotCount = 0, listType = 'horizontal-list', version }) => {
801
- const handleClick = (idx) => {
802
- if (idx !== activeIndex && containerRef?.current) {
803
- containerRef.current.children[idx]?.scrollIntoView({
804
- behavior: 'smooth',
805
- block: 'nearest',
806
- });
807
- }
808
- };
809
- return dotCount ? (jsx("div", { className: style('flex gap-2', containerStyles[listType], version ? 'group' : ''), ...(version ? { 'data-ver': version } : {}), children: new Array(dotCount).fill(null).map((_, idx) => (jsx("div", { className: `${dotStyle} ${idx === activeIndex ? activeDotStyles[listType] : inactiveDotStyle}`, role: "button", "aria-hidden": true, onClick: () => handleClick(idx) }, String(idx)))) })) : null;
874
+ const normalizedProps = useNormalizedInput(props, {
875
+ normalize: (_ = defaultValue) => min && max ? String(clamp(Number(sanitizeNumberStr(_)), min, max)) : sanitizeNumberStr(_),
876
+ format: toLocalNumberFormat(fractionDigits),
877
+ });
878
+ const handleChange = useCallback((_) => onChange && onChange(sanitizeNumberStr(_)), [onChange]);
879
+ return jsx(Input, { onChange: handleChange, ...inputProps, ...normalizedProps });
810
880
  });
881
+ const sanitizeNumberStr = (_ = '') => _.replaceAll(',', '.')
882
+ .replace(/[^\d.]/g, '')
883
+ .replace(/([^.]*\.[^.]*)\./, '$1');
811
884
 
812
- const areArraysEqual = (as, bs) => as === bs || Boolean(as && bs && as?.length === bs?.length && as.every((_, i) => _ === bs[i]));
885
+ const CurrencyInput = JSX((props) => (jsx(NumberInput, { ...props, fractionDigits: 2, children: jsx("div", { className: "absolute right-4 bottom-4", children: jsx(Text, { size: "text-xl", font: "font-light", children: "\u20BD" }) }) })));
813
886
 
814
- const defaultDiscriminator = (_) => _;
815
- const maxBy = (discriminator = defaultDiscriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
887
+ const DEFAULT_TITLE = 'Укажите сумму перевода';
888
+ const DEFAULT_LABEL = 'Сумма перевода';
889
+ const DEFAULT_PLACEHOLDER = '1500';
890
+ const FORM_URL = 'https://www.rshb.ru/p2p/';
891
+ const AMOUNT_KEY = 'amount';
892
+ const INITIAL_FORM_STATE = {
893
+ [AMOUNT_KEY]: 1500,
894
+ };
895
+ const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, placeholder = DEFAULT_PLACEHOLDER, button, ...rest }) => {
896
+ const [{ amount }, { field }] = useForm(INITIAL_FORM_STATE);
897
+ const isDisabled = amount <= 0;
898
+ const buttonStyle = isDisabled
899
+ ? getDisabledButtonClasses({ version: button?.version })
900
+ : getRegularButtonClasses({ className: 'text-white', version: button?.version });
901
+ const link = useLink();
902
+ return (jsxs(BlockWrapper, { className: style('flex flex-col items-center', className), defaultPadding: "p-default", ...rest, children: [title ? (jsx(Heading, { className: "pb-5 xl:pb-9 self-start xl:self-center", headingType: "h2", title: title })) : null, jsxs("form", { className: "w-full xl:max-w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, valid: !isDisabled, placeholder: placeholder, label: label, ...field(AMOUNT_KEY, { parse: Number, format: String }) }), button?.text ? (jsx("button", { type: "submit", className: style('w-full p-4 mt-5 xl:mt-6', buttonStyle), disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
903
+ });
816
904
 
817
- const minBy = (discriminator = defaultDiscriminator) => maxBy((_) => -discriminator(_));
905
+ const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
818
906
 
819
- const getItemWidth = (container) => (itemCount) => container.scrollWidth / itemCount;
820
- const scrollBy = (container) => (itemCount, delta) => {
821
- container.scrollBy({ left: delta * getItemWidth(container)(itemCount), behavior: 'smooth' });
822
- };
907
+ const DEFAULT_ANCESTORS = [];
908
+ const defaultStyle = 'col-span-12';
909
+ function renderBlock(block, options, { className, ...extraProps } = {}) {
910
+ const { key, blockDecorator = defaultBlockDecorator, blocksRegistry = {}, ancestors = DEFAULT_ANCESTORS, } = options;
911
+ const { type } = block;
912
+ if (!(type && type in blocksRegistry)) {
913
+ console.warn(`No block with "${type}" is registered`);
914
+ }
915
+ const BlockComponent = type && blocksRegistry[type];
916
+ return blockDecorator({
917
+ blockClassName: style('scroll-mt-12', // TODO scroll-mt-12 ? here?
918
+ className, block.style || defaultStyle),
919
+ block,
920
+ ancestors,
921
+ // Adjusted by decorator block and blockClassName
922
+ render: ({ block: adjustedBlock, blockClassName: adjustedBlockClassName }) => {
923
+ const { content } = adjustedBlock;
924
+ return BlockComponent ? (jsx(BlockComponent, { className: adjustedBlockClassName, block: block, options: options, ...content, ...extraProps }, key)) : null;
925
+ },
926
+ }, key);
927
+ }
823
928
 
824
- const scrollToEnd = (container) => {
825
- container.scrollTo({ left: container.scrollWidth, behavior: 'smooth' });
826
- };
929
+ const DEFAULT_SLOT_NAME = null;
827
930
 
828
- const scrollToStart = (container) => {
829
- container.scrollTo({ left: 0, behavior: 'smooth' });
830
- };
931
+ const EMPTY_ANCESTORS = [];
932
+ const renderBlocksList = (blocks, { key, ancestors = EMPTY_ANCESTORS, slotName = DEFAULT_SLOT_NAME, renderProps = renderBlock, ...options }) => (blocks || []).map((_, j) => renderProps(_, {
933
+ ...options,
934
+ key: `${key ? key : _.type}-${j}`,
935
+ ancestors: options.parent
936
+ ? [...(ancestors || EMPTY_ANCESTORS), [options.parent, slotName]]
937
+ : ancestors,
938
+ }));
831
939
 
832
- const useSwipeListScroll = ({ itemCount, isCyclic, onVisibleIndicesChange, }) => {
833
- const containerRef = useRef(null);
834
- const [visibleIndices, setVisibleIndices] = useState([]);
835
- const handleVisibleIndicesChange = useCallback((indices) => {
836
- setVisibleIndices((prevIndices) => areArraysEqual(prevIndices, indices) ? prevIndices : indices);
837
- onVisibleIndicesChange && onVisibleIndicesChange(indices);
838
- }, [itemCount]);
839
- const [minIndex, maxIndex] = visibleIndices.length
840
- ? [minBy()(visibleIndices), maxBy()(visibleIndices)]
841
- : [-1, -1];
842
- const canScrollLeft = minIndex > 0;
843
- const canScrollRight = maxIndex < itemCount - 1;
844
- const scrollLeft = useCallback(() => {
845
- if (!containerRef.current) {
846
- return;
847
- }
848
- if (isCyclic && !canScrollLeft) {
849
- scrollToEnd(containerRef.current);
850
- }
851
- else {
852
- scrollBy(containerRef.current)(itemCount, -1);
853
- }
854
- }, [isCyclic, itemCount, canScrollLeft]);
855
- const scrollRight = useCallback(() => {
856
- if (!containerRef.current) {
857
- return;
858
- }
859
- if (isCyclic && !canScrollRight) {
860
- scrollToStart(containerRef.current);
861
- }
862
- else {
863
- scrollBy(containerRef.current)(itemCount, 1);
864
- }
865
- }, [itemCount, isCyclic, canScrollRight]);
866
- return [
867
- containerRef,
868
- {
869
- scrollLeft,
870
- scrollRight,
871
- canScrollLeft: isCyclic || canScrollLeft,
872
- canScrollRight: isCyclic || canScrollRight,
873
- visibleIndicesRange: [minIndex, maxIndex],
874
- handleVisibleIndicesChange,
875
- },
876
- ];
877
- };
940
+ function renderChildren({ children, block, options, renderProps, }) {
941
+ if (children) {
942
+ return children;
943
+ }
944
+ return block && options
945
+ ? renderBlocksList(block.blocks, { ...options, parent: block, renderProps })
946
+ : null;
947
+ }
878
948
 
879
949
  const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `group/btn shadow-[0_4px_25px_rgba(0,0,0,0.07)] w-12 h-12 min-h-12 max-h-12 flex items-center justify-center ${disabled
880
950
  ? 'bg-secondary-light text-secondary-text'
@@ -882,7 +952,7 @@
882
952
  const ScrollLeftButton = JSX((props) => (jsx(ArrowButton, { ...props, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })));
883
953
  const ScrollRightButton = JSX((props) => (jsx(ArrowButton, { ...props, className: `${props.className || ''} rotate-180`, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" })));
884
954
 
885
- const scrollButtonStyle = 'absolute top-[calc(50%-24px)] z-40';
955
+ const scrollButtonStyle$1 = 'absolute top-[calc(50%-24px)] z-40';
886
956
  const blurBaseStyle = 'absolute top-0 bottom-0 z-40 w-[84px] pointer-events-none';
887
957
  const CarouselScrollButtons = JSX(({ scroll, arrowsPadded, isBlur, onScrollLeft, onScrollRight, hasEdgeBlocks, activeIndex, itemCount, }) => {
888
958
  const { canScrollLeft, canScrollRight, scrollLeft, scrollRight } = scroll;
@@ -906,7 +976,7 @@
906
976
  onScrollRight();
907
977
  }
908
978
  }, [scrollRight, onScrollRight, hasEdgeBlocks, canScrollLeft, activeIndex, itemCount]);
909
- return (jsxs("div", { children: [renderBlur(isBlur, scroll), canMoveLeft ? (jsx(ScrollLeftButton, { className: style(scrollButtonStyle, arrowsPadded ? 'left-8' : 'left-0'), onClick: handleScrollLeft })) : null, canMoveRight ? (jsx(ScrollRightButton, { className: style(scrollButtonStyle, arrowsPadded ? 'right-8' : 'right-0'), onClick: handleScrollRight })) : null] }));
979
+ return (jsxs("div", { children: [renderBlur(isBlur, scroll), canMoveLeft ? (jsx(ScrollLeftButton, { className: style(scrollButtonStyle$1, arrowsPadded ? 'left-8' : 'left-0'), onClick: handleScrollLeft })) : null, canMoveRight ? (jsx(ScrollRightButton, { className: style(scrollButtonStyle$1, arrowsPadded ? 'right-8' : 'right-0'), onClick: handleScrollRight })) : null] }));
910
980
  });
911
981
  const renderBlur = (isBlur, scroll) => isBlur ? (jsxs("div", { children: [scroll.canScrollLeft ? (jsx("div", { className: style(blurBaseStyle, 'left-0 bg-opacity-from-white') })) : null, scroll.canScrollRight ? (jsx("div", { className: style(blurBaseStyle, 'right-0 bg-opacity-to-white') })) : null] })) : null;
912
982
 
@@ -958,10 +1028,13 @@
958
1028
  return (jsx(Tag, { className: style('block', className), ...(href ? linkProps : {}), children: children }));
959
1029
  });
960
1030
 
1031
+ const cardTitleFont = 'font-light';
1032
+ const cardDescriptionColor = '';
1033
+
961
1034
  const CarouselProgramsCard = JSX(({ className = '', title, icon, list = [], href, target, ...rest }) => {
962
- return (jsx(BlockWrapper, { className: style('border border-gray', className), defaultPadding: "p-0", ...rest, children: jsxs(LinkWrapper, { className: "flex", href: href, target: target, children: [jsxs("div", { className: "w-[200px] min-w-[200px] self-center", children: [icon?.icon ? jsx(Img, { image: icon }) : null, icon?.src ? jsx(Img, { image: icon }) : null] }), jsxs("div", { className: "p-8 pl-3 w-full", children: [title ? jsx(Heading, { className: "mb-3.5", headingType: "h5", title: title }) : null, list.length ? (jsx("div", { className: "flex flex-col gap-3", children: list?.map(renderList$2) })) : null] })] }) }));
1035
+ return (jsx(BlockWrapper, { className: style('border border-gray', className), defaultPadding: "p-lg sm:p-0", ...rest, children: jsxs(LinkWrapper, { className: "sm:flex sm:items-center", href: href, target: target, children: [jsx("div", { className: "min-w-[200px] flex justify-center", children: icon?.src || icon?.icon ? jsx(Img, { image: icon }) : null }), jsxs("div", { className: "sm:px-3 py-xl", children: [title ? jsx(Heading, { className: "mb-2 sm:mb-3.5", headingType: "h6", title: title }) : null, list.length ? (jsx("div", { className: "flex flex-col gap-2 sm:gap-3", children: list?.map(renderList$2) })) : null] })] }) }));
963
1036
  });
964
- const renderList$2 = (_, i) => (jsxs("div", { className: "break-words", children: [_.title ? jsx("div", { className: "text-h6", children: _.title }) : null, _.description ? jsx("span", { className: "text-l-light mt-1", children: _.description }) : null] }, String(i)));
1037
+ const renderList$2 = (_, i) => (jsxs("div", { className: "flex flex-row-reverse justify-between gap-y-1 sm:flex-col", children: [_.title ? (jsx(Text, { size: "text-l", font: cardTitleFont, children: _.title })) : null, _.description ? (jsx(Paragraph, { size: "text-l", font: "font-light", color: cardDescriptionColor, children: _.description })) : null] }, String(i)));
965
1038
 
966
1039
  const DOT_SIZE_MAP = {
967
1040
  L: 'w-1.5 h-1.5 mr-4',
@@ -1032,47 +1105,6 @@
1032
1105
 
1033
1106
  const SocialMedia = JSX(({ className = '', media }) => (jsx("div", { className: `flex gap-2 items-start justify-start ${className}`, children: media?.map((_, index) => (jsx(MediaButton, { ..._ }, String(index)))) })));
1034
1107
 
1035
- const Paragraph = JSX(({ children, ...style }) => (jsx("p", { className: ['font-sans', ...Object.values(style)].join(' '), children: children })));
1036
-
1037
- const headlineVersionStyles = {
1038
- XXL: {
1039
- title: { headingType: 'h0', as: 'h1' },
1040
- descriptionSize: 'text-h5',
1041
- descriptionStyle: 'mt-m',
1042
- },
1043
- XL: {
1044
- title: { headingType: 'h1', as: 'h1' },
1045
- descriptionSize: 'text-xl-light',
1046
- descriptionStyle: 'mt-s',
1047
- },
1048
- L: {
1049
- title: { headingType: 'h2', as: 'h2' },
1050
- descriptionSize: 'text-xl-light',
1051
- descriptionStyle: 'mt-s',
1052
- },
1053
- M: {
1054
- title: { headingType: 'h3', as: 'h2' },
1055
- descriptionSize: 'text-xl-light',
1056
- descriptionStyle: 'mt-text',
1057
- },
1058
- S: {
1059
- title: { headingType: 'h4', as: 'h2' },
1060
- descriptionSize: 'text-xl-light',
1061
- descriptionStyle: 'mt-xs',
1062
- },
1063
- XS: {
1064
- title: { headingType: 'h5', as: 'h2' },
1065
- descriptionSize: 'text-l-light',
1066
- descriptionStyle: 'mt-xs',
1067
- },
1068
- };
1069
-
1070
- const Headline = JSX(({ className, version = '', headlineVersion = 'XL', title, description, align = 'text-center', as, isPadding = true, isTheme = false, ...rest }) => {
1071
- const versionStyle = headlineVersionStyles[headlineVersion];
1072
- const descriptionStyle = { marginTop: versionStyle.descriptionStyle };
1073
- return (jsxs(BlockWrapper, { className: className, defaultPadding: isPadding ? 'p-default' : '', version: version, isTheme: isTheme, ...rest, children: [title ? (jsx(Heading, { className: style('whitespace-pre-wrap', align), ...versionStyle?.title, as: as || versionStyle?.title.as, title: title })) : null, description ? (jsx(Paragraph, { size: versionStyle.descriptionSize, align: align, ...descriptionStyle, children: description })) : null] }));
1074
- });
1075
-
1076
1108
  const BORDER_STYLE = 'border border-solid border-gray group-data-secondary:border-white/50 group-data-gray:border-main-divider';
1077
1109
 
1078
1110
  const CarouselRecommendationCard = JSX(({ className = '', description, href, icon, items = [], socialMedia = [], target, title, align = 'text-left', ...rest }) => {
@@ -1122,23 +1154,6 @@
1122
1154
  const renderFoldButton$1 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-5 flex justify-between items-center", onClick: onToggle, children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] }));
1123
1155
  const renderHitIcon = () => (jsxs("div", { className: "absolute -top-7 -right-4 h-[60px] w-[60px] bg-white flex flex-col items-center justify-center rounded-md shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx(Icon, { iconVersion: "black", name: "HeartIcon", width: "23", height: "22" }), jsx(Paragraph, { size: "text-s", font: "font-normal", align: "text-center", color: "text-primary-text", children: "\u0425\u0418\u0422" })] }));
1124
1156
 
1125
- const DEFAULT_GAP = 14;
1126
- /*
1127
- Horizontal padding used on a container above SwipeListControl.
1128
- Same value used on a SwipeListControlChildren container to compensate it
1129
- and get rid of a clipping effect caused by overflow: hidden.
1130
- */
1131
- const DEFAULT_PADDING = 16;
1132
- const SwipeListControl = JSX(({ className, version, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, showDots = true, minHeight, children, onVisibleIndicesChange, listType = 'horizontal-list', }) => {
1133
- const itemCount = Array.isArray(children) ? children.length : 0;
1134
- const [containerRef, scroll] = useSwipeListScroll({
1135
- itemCount,
1136
- onVisibleIndicesChange,
1137
- });
1138
- const [activeIndex] = scroll.visibleIndicesRange;
1139
- return (jsxs("div", { className: style(className, listType === 'vertical-list' ? 'relative h-full' : ''), children: [jsx(SwipeListContainer, { containerRef: containerRef, activeIndex: activeIndex, visibleItemCount: 1, gap: gap, padding: padding, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, listType: listType, minHeight: minHeight, children: children }), showDots ? (jsx(SwipeListControlDots, { containerRef: containerRef, activeIndex: activeIndex, dotCount: itemCount, listType: listType, version: version })) : null] }));
1140
- });
1141
-
1142
1157
  const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
1143
1158
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
1144
1159
 
@@ -1282,7 +1297,7 @@
1282
1297
 
1283
1298
  const getIconName = (isUnfolded) => isUnfolded ? 'ArrowUpSolidIcon' : 'ArrowDownSolidIcon';
1284
1299
 
1285
- const labelSize$1 = 'text-l';
1300
+ const labelSize = 'text-l';
1286
1301
 
1287
1302
  const iconBgStyles = {
1288
1303
  primary: 'bg-main-divider',
@@ -1325,7 +1340,7 @@
1325
1340
  })) : (jsx(DefaultFoldButton, { label: label, icon: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', onClick: onToggle }));
1326
1341
  };
1327
1342
  const renderPrimaryFoldButton = ({ label, labelIconBgVersion, icon, onToggle, labelIcon, }) => {
1328
- return (jsxs("button", { className: style('border-none bg-transparent px-0 flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-2' : 'py-5'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center group-hover/button:text-primary-main", children: [renderRoundedIcon(labelIcon, labelIconBgVersion), label ? (jsx(Text, { size: labelSize$1, font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
1343
+ return (jsxs("button", { className: style('border-none bg-transparent px-0 flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-2' : 'py-5'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center group-hover/button:text-primary-main", children: [renderRoundedIcon(labelIcon, labelIconBgVersion), label ? (jsx(Text, { size: labelSize, font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
1329
1344
  };
1330
1345
 
1331
1346
  const Contacts = JSX(({ className = '', items, hasButton }) => (jsxs("div", { className: className, children: [items?.length ? items.map(renderContactsGroup) : null, hasButton ? (jsx(Button, { version: "primary", className: "mb-6 w-full", href: "https://www.rshb.ru/feedback/question/", target: "_blank", ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", text: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })) : null] })));
@@ -1462,7 +1477,7 @@
1462
1477
  const BaseTile = JSX(({ className, defaultPadding, padding, title = '', insetTitle = '', buttons, leftImage, rightImage, imageAlign, backImage, children, }) => (jsxs("div", { className: style('relative flex flex-col gap-lg font-sans overflow-hidden', padding || defaultPadding, className), children: [backImage ? jsx("div", { className: "absolute bottom-0 right-0 z-0", children: backImage }) : null, title ? jsx("div", { className: "relative", children: title }) : null, jsxs("div", { className: "grow relative flex flex-wrap sm:flex-nowrap justify-between items-stretch gap-lg", children: [renderImageContainer(leftImage, { imageAlign }), jsxs("div", { className: style('flex flex-col gap-lg max-w-[600px] xl:max-w-[728px]', leftImage ? '' : 'grow'), children: [insetTitle, jsx("div", { className: "grow", children: children }), buttons] }), renderImageContainer(rightImage, { className: '-order-1 sm:order-1', imageAlign })] })] })));
1463
1478
  const renderImageContainer = (image, { className, imageAlign }) => image ? (jsx("div", { className: style('flex-shrink-0', imageAlign && imageAlignmentMap[imageAlign], className), children: image })) : null;
1464
1479
 
1465
- const renderDescription$1 = (description) => description ? (jsx("div", { className: "mb-5 pt-0.5 sm:mb-0 sm:pt-0", children: jsx(Text, { size: "text-xl", "font-weight": "light", children: description }) })) : null;
1480
+ const renderDescription$2 = (description) => description ? (jsx("div", { className: "mb-5 pt-0.5 sm:mb-0 sm:pt-0", children: jsx(Text, { size: "text-xl", "font-weight": "light", children: description }) })) : null;
1466
1481
 
1467
1482
  const renderList$1 = (items) => {
1468
1483
  return items?.length ? (jsx(List, { items: items, className: "text-l-light mb-2 last:mb-0" })) : (jsx("span", { className: "text-m-light text-secondary-text", children: "\u041D\u0430\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u0443 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u043D\u0430 QR-\u043A\u043E\u0434 \u0438 \u0441\u043A\u0430\u0447\u0430\u0439\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }));
@@ -1470,7 +1485,7 @@
1470
1485
 
1471
1486
  const MobileAppTile = JSX(({ className, padding, alignTitle = 'left', buttons = [], description, headingType = 'h4', image, items, qr, title = 'Мобильное приложение', version = 'primary', ...rest }) => {
1472
1487
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
1473
- return (jsx(BlockWrapper, { className: style('min-h-80', className), defaultPadding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-default", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, backImage: image?.src ? jsx(Img, { image: image }) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 3 }), children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 gap-s items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items)] })] }) }));
1488
+ return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-default", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, backImage: image?.src ? jsx(Img, { image: image }) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 3 }), children: [renderDescription$2(description), jsxs("div", { className: "flex flex-1 gap-s items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items)] })] }) }));
1474
1489
  });
1475
1490
 
1476
1491
  const sum = (list = []) => list.reduce((a, b) => a + b, 0);
@@ -1479,48 +1494,51 @@
1479
1494
 
1480
1495
  const deviation = (items) => items?.length ? Math.sqrt(Math.abs(avg(items.map((_) => _ ** 2)) - avg(items) ** 2)) : 0;
1481
1496
 
1482
- const labelSize = 'text-l';
1483
-
1484
- const BenefitItem = JSX(({ className, icon, label, description, benefitsVersion = 'normal' }) => (jsxs("div", { className: style('flex gap-s', description ? 'items-start' : 'items-center', className), children: [icon ? (jsx("div", { className: getBenefitIconBgStyle(benefitsVersion), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null, jsxs("div", { className: "gap-0.5", children: [label ? (jsx(Text, { color: "text-primary-text group-data-secondary:text-white", size: labelSize, children: label })) : null, description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description })) : null] })] })));
1485
- function getBenefitIconBgStyle(benefitsVersion) {
1486
- const bgColorStyle = benefitsVersion === 'normal'
1497
+ const renderBenefitIcon = (icon, benefitsVersion = 'normal') => icon ? (jsx("div", { className: style('w-12 h-12 min-w-12 box-border flex items-center justify-center rounded-icon', benefitsVersion === 'normal'
1487
1498
  ? 'bg-secondary-light text-primary-main'
1488
- : 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black';
1489
- return style('w-12 h-12 min-w-12 p-2.5 box-border flex items-center justify-center rounded-icon', bgColorStyle);
1490
- }
1499
+ : 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black'), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null;
1491
1500
 
1492
1501
  const RichText = JSX((props) => {
1493
1502
  const { __html = '', richVersion = '' } = props;
1494
1503
  return (jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }));
1495
1504
  });
1496
1505
 
1497
- const renderBenefit = (benefitsVersion) => ({ type, ...benefit }, i) => {
1498
- if (type === 'rte' && '__html' in benefit) {
1499
- return jsx(RichText, { __html: benefit.__html });
1500
- }
1501
- return jsx(BenefitItem, { benefitsVersion: benefitsVersion, ...benefit }, String(i));
1502
- };
1506
+ const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
1507
+
1508
+ const renderBenefitLabel = (label, i) => label ? (jsx(Text, { color: "text-primary-text group-data-secondary:text-white", size: "text-h6", children: label }, `label-${i}`)) : null;
1509
+
1510
+ const renderBenefitText = (_, i) => _.type === 'rte' && '__html' in _ && _.__html ? (jsx(RichText, { ..._ }, `rte-${i}`)) : ([
1511
+ 'label' in _ ? renderBenefitLabel(_.label, i) : null,
1512
+ 'description' in _ ? renderBenefitDescription(_.description, i) : null,
1513
+ ]);
1514
+
1515
+ const BenefitItem = JSX(({ className, benefitsVersion, ..._ }) => (jsxs("div", { className: style('flex gap-s', 'description' in _ && _.description ? 'items-start' : 'items-center', className), children: ['icon' in _ ? renderBenefitIcon(_.icon, benefitsVersion) : null, jsx("div", { children: renderBenefitText(_) })] })));
1503
1516
 
1504
1517
  const MAX_BENEFITS_LEN_DEVIATION = 16;
1505
1518
  const benefitLength = (_) => _.type === 'rte'
1506
1519
  ? _.__html?.length || 0
1507
1520
  : Math.max(_.label?.length || 0, _.description?.length || 0);
1508
1521
  const isDistortedBenefits = (benefits) => deviation(benefits.map(benefitLength)) > MAX_BENEFITS_LEN_DEVIATION;
1509
- const BenefitsList = JSX(({ className, benefitsVersion = 'normal', benefits }) => benefits?.length ? (jsx("div", { className: style('flex gap-x-m gap-y-s', isDistortedBenefits(benefits) ? 'flex-col' : 'flex-wrap', className), children: benefits.map(renderBenefit(benefitsVersion)) })) : null);
1522
+ const DefaultBenefitsList = JSX(({ className, benefitsVersion = 'normal', benefits }) => benefits?.length ? (jsx("div", { className: style('flex gap-x-m gap-y-s', isDistortedBenefits(benefits) ? 'flex-col' : 'flex-wrap', className), children: benefits.map((_, i) => (jsx(BenefitItem, { benefitsVersion: benefitsVersion, ..._ }, String(i)))) })) : null);
1523
+
1524
+ const TabularBenefitsList = JSX(({ className, benefits }) => benefits?.length ? (jsx("div", { className: style('grid grid-cols-[max-content_1fr] auto-rows-auto items-baseline gap-x-m gap-y-xs', className), children: benefits.flatMap(renderBenefitText) })) : null);
1525
+
1526
+ const BenefitsList = JSX(({ isTabularBenefits, ...rest }) => isTabularBenefits ? jsx(TabularBenefitsList, { ...rest }) : jsx(DefaultBenefitsList, { ...rest }));
1510
1527
 
1511
1528
  const Tags = JSX(({ className, tags }) => tags?.length ? (jsx("div", { className: style('flex flex-wrap gap-xs', className), role: "list", children: tags.map(renderTag) })) : null);
1512
1529
  const renderTag = (tag, key) => (jsx("div", { className: "py-2 px-2.5 border-solid border rounded-md border-gray", role: "listitem", children: jsx(Text, { size: "text-m-light", children: tag }) }, String(key)));
1513
1530
 
1514
- const BaseProductTile = JSX(({ className, title, description, headlineVersion = 'L', align = 'text-left', isInsetTitle = true, benefits, benefitsVersion, __html, items, isDotted = true, listItemSize, tags, buttons, image, imageOptions: { imageAlign, directionRight = true } = {}, children, }) => {
1531
+ const BaseProductTile = JSX(({ className, padding, defaultPadding, title, description, headlineVersion = 'L', align = 'text-left', isInsetTitle = true, benefitsVersion, isTabularBenefits, benefits, __html, items, isDotted = true, listItemSize, tags, buttons, image, imageOptions: { imageAlign = 'end', directionRight = true, isBackground } = {}, children, }) => {
1515
1532
  const img = image?.src ? jsx(Img, { image: image }) : null;
1516
1533
  const headline = (jsx(Headline, { title: title, description: description, headlineVersion: headlineVersion, align: align, isPadding: false }));
1517
- return (jsx(BaseTile, { className: className, ...(isInsetTitle ? { insetTitle: headline } : { title: headline }), ...(directionRight ? { rightImage: img } : { leftImage: img }), imageAlign: imageAlign, buttons: renderButtonsSection(buttons), children: jsxs("div", { className: "flex flex-col gap-m", children: [jsx(BenefitsList, { benefitsVersion: benefitsVersion, benefits: benefits }), __html ? jsx(RichText, { __html: __html }) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, listItemSize: listItemSize })) : null, children, tags?.length ? jsx(Tags, { tags: tags }) : null] }) }));
1534
+ return (jsx(BaseTile, { className: className, padding: padding, defaultPadding: defaultPadding, ...(isInsetTitle ? { insetTitle: headline } : { title: headline }), ...(isBackground ? { backImage: img } : leftOrRightImage(img, directionRight)), imageAlign: imageAlign, buttons: renderButtonsSection(buttons), children: jsxs("div", { className: "flex flex-col gap-m", children: [jsx(BenefitsList, { benefitsVersion: benefitsVersion, isTabularBenefits: isTabularBenefits, benefits: benefits }), __html ? jsx(RichText, { __html: __html }) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, listItemSize: listItemSize })) : null, children, tags?.length ? jsx(Tags, { tags: tags }) : null] }) }));
1518
1535
  });
1536
+ const leftOrRightImage = (img, directionRight) => directionRight ? { rightImage: img } : { leftImage: img };
1519
1537
 
1520
1538
  const renderInsuranceSumMonth = (sum, monthLimit) => sum || monthLimit ? (jsxs("div", { className: "flex flex-wrap xl:flex-nowrap xl:bg-main-divider xl:rounded-md p-xs gap-m", children: [Number(sum) > 0 ? renderValueBlock('Страховая сумма:', sum) : null, Number(monthLimit) > 0 ? renderValueBlock('Ежемесячный лимит:', monthLimit) : null] })) : null;
1521
1539
  const renderValueBlock = (title, value = 0) => (jsxs("div", { className: "basis-full flex flex-col-reverse sm:flex-row sm:justify-between items-baseline whitespace-pre", children: [jsx(Text, { font: "font-light", size: "text-l", children: title }), jsxs(Text, { size: "text-h6", color: "text-primary-text", children: [toLocalNumberFormat(2)(value), " \u20BD"] })] }));
1522
1540
 
1523
- const PictureText = JSX(({ className, headlineVersion = 'M', align = 'text-center', sum, monthLimit, ...rest }) => (jsx(BlockWrapper, { className: className, defaultPadding: "p-default", ...rest, children: jsx(BaseProductTile, { className: "h-full", headlineVersion: headlineVersion, align: align, isInsetTitle: false, ...rest, imageOptions: { directionRight: false, imageAlign: 'center', ...rest.imageOptions }, children: renderInsuranceSumMonth(Number(sum), Number(monthLimit)) }) })));
1541
+ const PictureText = JSX(({ className, padding, headlineVersion = 'M', align = 'text-center', sum, monthLimit, imageOptions, ...rest }) => (jsx(BlockWrapper, { className: className, padding: "p-0", ...rest, children: jsx(BaseProductTile, { className: "h-full", defaultPadding: "p-default", padding: padding, headlineVersion: headlineVersion, align: align, isInsetTitle: false, imageOptions: { directionRight: false, imageAlign: 'center', ...imageOptions }, ...rest, children: renderInsuranceSumMonth(Number(sum), Number(monthLimit)) }) })));
1524
1542
 
1525
1543
  const GOLDEN_RATIO = 1.618;
1526
1544
  const Placeholder = JSX(({ className, title, description = 'Блок в разработке...', ...rest }) => (jsxs(BlockWrapper, { className: style('box-border', className), ...rest, children: [jsx(Headline, { className: "max-w-[600px]", title: title, description: description, headlineVersion: "L", align: "text-left", isPadding: false }), jsx("figure", { className: "m-0 mt-m min-w-[80%]", children: renderShimmer() })] })));
@@ -1540,11 +1558,11 @@
1540
1558
  } }) }), jsx(Button, { version: "link", ...commonProps })] }));
1541
1559
  }
1542
1560
 
1543
- const ProductBlock = JSX(({ className, backwardButton, ...rest }) => (jsxs(BlockWrapper, { className: style('overflow-hidden flex flex-col gap-lg box-border', className), defaultPadding: "p-default", ...rest, children: [backwardButton?.text
1561
+ const ProductBlock = JSX(({ className, padding, backwardButton, ...rest }) => (jsxs(BlockWrapper, { className: style('overflow-hidden flex flex-col gap-lg box-border', className), defaultPadding: "p-default", padding: padding, ...rest, children: [backwardButton?.text
1544
1562
  ? renderBackwardButton(backwardButton, !rest.version || rest.version === 'primary' ? 'primary' : 'white')
1545
1563
  : null, jsx(BaseProductTile, { className: "grow h-full", ...rest })] })));
1546
1564
 
1547
- const ProductGallery = JSX(({ className, slides = [], ...rest }) => (jsx(BlockWrapper, { className: style('overflow-hidden relative', className), defaultPadding: "p-m", ...rest, children: jsx(SwipeListControl, { gap: 0, padding: 0, children: slides
1565
+ const ProductGallery = JSX(({ className, padding, slides = [], ...rest }) => (jsx(BlockWrapper, { className: style('overflow-hidden relative', className), padding: padding, ...rest, children: jsx(SwipeListControl, { gap: 0, padding: 0, children: slides
1548
1566
  .map((s) => s.productBlock)
1549
1567
  .map((_, i) => (jsx("div", { className: "box-border h-full", role: "listitem", children: jsx(BaseProductTile, { className: "px-5 h-full", headlineVersion: "L", ..._, ...rest }) }, String(i)))) }) })));
1550
1568
 
@@ -1568,44 +1586,179 @@
1568
1586
  };
1569
1587
 
1570
1588
  const STEPS_SIZE_MAP = {
1571
- normal: 'h-[70px] w-[70px] min-w-[70px] min-h-[70px]',
1572
- small: 'h-12 w-12 min-w-12 min-h-12',
1589
+ normal: { icon: 'h-11 w-11', image: 'h-14 w-14' },
1590
+ small: { icon: 'h-12 w-12', image: 'h-14 w-14' },
1573
1591
  };
1574
1592
  const STEPS_TILE_DESCRIPTION_HEIGHT_MAP = {
1575
- normal: 'min-h-[70px]',
1593
+ normal: '',
1576
1594
  small: 'min-h-12',
1577
1595
  };
1578
1596
  const styleMap = STEPS_BLOCK_STYLE;
1579
- const StepsBlock = JSX(({ className = '', title, description, showLines = true, steps, size = 'normal', version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: `box-border flex flex-col ${className}`, defaultPadding: "px-4 py-6", version: version, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "text-center", title: title }) : null, description ? (jsx("p", { className: `text-m-light text-center ${styleMap.description} ${title ? 'mt-2' : ''}`, children: description })) : null, steps?.length ? (jsx("div", { className: `box-border py-0.5 mb-0.5 mt-5`, children: jsx("div", { className: "flex flex-col justify-between gap-x-[101px]", children: steps.map(renderStep(size, version, showLines)) }) })) : null] })));
1597
+ const StepsBlock = JSX(({ className = '', title, description, steps, buttons, size = 'normal', version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: style('box-border flex flex-col gap-2', className), defaultPadding: "p-default", version: version, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "text-left", title: title }) : null, description ? (jsx(Paragraph, { size: "text-xl", font: "font-light", children: jsx("span", { className: styleMap.description, children: description }) })) : null, steps?.length ? (jsx("div", { className: "box-border", children: jsx("div", { className: "flex flex-col justify-between", children: steps.map(renderStep(size, version)) }) })) : null, renderButtonsSection(buttons, { className: 'mt-3', isVertical: true })] })));
1580
1598
  // TODO: Create universal function for this case
1581
- const renderStep = (size, version, showLines) =>
1599
+ const renderStep = (size, version) =>
1582
1600
  // Linter doesn't understand that switch processes all cases
1583
1601
  // eslint-disable-next-line consistent-return
1584
- (step, i, steps) => {
1602
+ (step, i) => {
1585
1603
  const { type } = step;
1586
1604
  if (!(type === 'default' || type === 'rte')) {
1587
1605
  return null;
1588
1606
  }
1589
1607
  switch (type) {
1590
1608
  case 'default':
1591
- return renderDefaultStep(size, version, showLines)(step, i, steps);
1609
+ return renderDefaultStep(size, version)(step, i);
1592
1610
  case 'rte':
1593
1611
  return jsx(RichText, { __html: step.__html });
1594
1612
  default:
1595
1613
  assertUnreachable(step);
1596
1614
  }
1597
1615
  };
1598
- const renderDefaultStep = (size, version, showLines) => (step, i, steps) => {
1599
- const isLastStep = steps.length - 1 === i;
1600
- const margin = size === 'normal' ? 'ml-[34px]' : 'ml-6';
1601
- return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { className: "overflow-hidden flex-shrink-0", children: [renderIconArea(size, version)(step, i), isLastStep ? null : (jsx("div", { className: `min-h-8 h-full w-0.5 ${showLines ? styleMap.iconConnector : ''} ${margin}` }))] }), jsxs("div", { className: `flex flex-col justify-center h-fit ${STEPS_TILE_DESCRIPTION_HEIGHT_MAP[size]}`, children: [step.label ? (jsx("div", { className: "text-m-title-xs font-medium m-0 text-left mb-1", children: step.label })) : null, step.description ? (jsx("div", { className: `text-s ${styleMap.description} text-left`, children: step.description })) : null] })] }) }, String(i)));
1602
- };
1616
+ const renderDefaultStep = (size, version) => (step, i) => (jsx("div", { className: "contents", children: jsxs("div", { className: "flex flex-row text-center relative py-3", children: [jsx("div", { className: "overflow-hidden flex flex-shrink-0 items-center", children: renderIconArea(size, version)(step, i) }), jsxs("div", { className: style('flex flex-col justify-center h-fit', STEPS_TILE_DESCRIPTION_HEIGHT_MAP[size]), children: [step.label ? jsx("div", { className: "text-l m-0 text-left", children: step.label }) : null, step.description ? (jsx("div", { className: style('text-s font-light text-left', styleMap.description), children: step.description })) : null] })] }) }, String(i)));
1603
1617
  const renderIconArea = (size, version) => (step, i) => {
1604
- const iconAreaSize = STEPS_SIZE_MAP[size];
1605
- const iconSize = size === 'normal' ? '38' : '27';
1606
- const iconTextSize = size === 'normal' ? 'text-m-title' : 'text-m-title-xs';
1618
+ const iconSize = size === 'normal' ? '38' : '24';
1607
1619
  const iconVersion = version === 'secondary' ? 'white' : 'color';
1608
- return (jsx("div", { className: `${iconAreaSize} ${styleMap.iconBackground} rounded-full z-10 mr-3 flex justify-center content-center`, children: jsx("span", { className: `font-medium flex self-center ${iconTextSize}`, children: checkCanRenderIcon(step?.icon) ? (jsx(Img, { image: { ...step.icon, iconVersion: step.icon?.iconVersion || iconVersion }, width: iconSize, height: iconSize })) : (jsx("span", { children: i + 1 })) }) }));
1620
+ const isImg = Boolean(step?.icon?.src);
1621
+ const iconAreaSize = STEPS_SIZE_MAP[size][isImg ? 'image' : 'icon'];
1622
+ const containerStyle = isImg ? '' : `rounded-md ${styleMap.iconBackground}`;
1623
+ return (jsx("div", { className: style(iconAreaSize, containerStyle, 'z-10 mr-3 flex justify-center content-center'), children: jsx("span", { className: "flex self-center text-h4 text-secondary-text group-data-secondary:text-white", children: checkCanRenderIcon(step?.icon) ? (jsx(Img, { image: { ...step.icon, iconVersion: step.icon?.iconVersion || iconVersion }, width: iconSize, height: iconSize })) : (jsx("span", { children: i + 1 })) }) }));
1624
+ };
1625
+
1626
+ const LINK_CLASSES = 'h-12 flex-1 flex items-center justify-center cursor-pointer';
1627
+ const INACTIVE_LINK_CLASSES = 'group/btn bg-white';
1628
+ const SCROLLABLE_ACTIVE_LINK_CLASSES = 'bg-white text-primary-main';
1629
+ const WIDESCREEN_ACTIVE_LINK_CLASSES = 'bg-primary-main text-white';
1630
+ const TEXT_CLASSES = 'font-sans text-m text-center';
1631
+ const ACTIVE_TEXT_CLASSES = 'text-white';
1632
+ const INACTIVE_TEXT_CLASSES = 'text-secondary-text sm:group-hover/btn:text-primary-main';
1633
+ const TAB_CLASSES = {
1634
+ block: {
1635
+ scrollable: {
1636
+ active: `inline-flex px-4 grow whitespace-nowrap ${LINK_CLASSES} ${SCROLLABLE_ACTIVE_LINK_CLASSES}`,
1637
+ default: `inline-flex px-4 grow whitespace-nowrap ${LINK_CLASSES} ${INACTIVE_LINK_CLASSES}`,
1638
+ },
1639
+ centered: {
1640
+ active: `px-4 rounded-md ${LINK_CLASSES} ${WIDESCREEN_ACTIVE_LINK_CLASSES} whitespace-nowrap`,
1641
+ default: `px-4 rounded-md ${LINK_CLASSES} group/btn bg-transparent whitespace-nowrap`,
1642
+ },
1643
+ wideScreen: {
1644
+ active: `${LINK_CLASSES} ${WIDESCREEN_ACTIVE_LINK_CLASSES} whitespace-nowrap`,
1645
+ default: `${LINK_CLASSES} ${INACTIVE_LINK_CLASSES} whitespace-nowrap`,
1646
+ },
1647
+ },
1648
+ text: {
1649
+ scrollable: {
1650
+ active: `${TEXT_CLASSES} flex items-center h-full border-0 border-b-2`,
1651
+ default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`,
1652
+ },
1653
+ centered: {
1654
+ active: `${TEXT_CLASSES} ${ACTIVE_TEXT_CLASSES}`,
1655
+ default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`,
1656
+ },
1657
+ wideScreen: {
1658
+ active: `${TEXT_CLASSES} ${ACTIVE_TEXT_CLASSES} text-black px-2.5 bg-white sm:bg-primary-main sm:text-white`,
1659
+ default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES} px-2.5 bg-white`,
1660
+ },
1661
+ },
1662
+ };
1663
+ const getTabClassName = (type, active, tabsMode) => {
1664
+ const styleActive = active ? 'active' : 'default';
1665
+ const mode = tabsMode || 'wideScreen';
1666
+ return TAB_CLASSES[type][mode][styleActive];
1667
+ };
1668
+
1669
+ const LinkTab = JSX((props) => {
1670
+ const { tab, currentTab, onClick, tabsMode } = props;
1671
+ const active = currentTab?.type === 'link' && currentTab.href === tab.href;
1672
+ const link = useLink();
1673
+ const adjustedProps = link(tab);
1674
+ const handleClick = (ev) => {
1675
+ adjustedProps.onClick(ev);
1676
+ onClick(tab);
1677
+ };
1678
+ return (jsx("div", { className: getTabClassName('block', active, tabsMode), role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsx("a", { role: "tab", className: style('flex flex-1 items-center justify-center h-full', getTabClassName('text', active, tabsMode)), target: tab.target, href: adjustedProps.href, onClick: handleClick, children: jsx("span", { children: tab.text }) }) }));
1679
+ });
1680
+
1681
+ const BADGE_CLASSES = 'bg-main-divider min-w-[22px] h-[22px] rounded-full text-xs ml-2 flex justify-center items-center';
1682
+ const LIGHT_BADGE_CLASSES = 'bg-white/30 text-white';
1683
+ const DARK_BADGE_CLASSES = 'text-secondary-text group-hover/btn:text-primary-main';
1684
+ const renderGroupTab = ({ page, currentTab, showCounter, onClick, tabsMode }) => (tab, i) => {
1685
+ const active = currentTab === tab;
1686
+ const count = tab.ref && page?.blocks
1687
+ ? page.blocks.filter((block) => block?.labels?.includes(tab.ref)).length
1688
+ : 0;
1689
+ return (jsx("div", { className: getTabClassName('block', active, tabsMode), role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsxs("div", { className: style('flex flex-1 items-center justify-center h-full', getTabClassName('text', active, tabsMode)), children: [jsx("span", { children: tab.title }), showCounter && count ? renderCount(tabsMode, count, active) : null] }) }, `group-${String(i)}`));
1690
+ };
1691
+ const renderCount = (tabsMode, count, active) => {
1692
+ return (jsx("div", { className: style(BADGE_CLASSES, active && tabsMode !== 'scrollable' ? LIGHT_BADGE_CLASSES : DARK_BADGE_CLASSES), children: count }));
1693
+ };
1694
+
1695
+ const renderTab = ({ page, showCounter, ...rest }) => (tab, i) => {
1696
+ const type = tab.type;
1697
+ if (!(type === 'group' || type === 'link')) {
1698
+ return null;
1699
+ }
1700
+ switch (type) {
1701
+ case 'group':
1702
+ return renderGroupTab({ page, showCounter, ...rest })(tab, i);
1703
+ case 'link': {
1704
+ return jsx(LinkTab, { tab: tab, ...rest }, String(i));
1705
+ }
1706
+ default:
1707
+ assertUnreachable(type);
1708
+ }
1709
+ return null;
1710
+ };
1711
+
1712
+ const CenteredTabs = JSX(({ tabs, ...rest }) => (jsx("div", { className: "flex p-1 m-auto bg-main-gray rounded-md", children: tabs?.map(renderTab({ ...rest })) })));
1713
+
1714
+ const scrollButtonStyle = 'absolute z-40 top-0';
1715
+ const ScrollableTabs = JSX((props) => {
1716
+ const { tabs, ...rest } = props;
1717
+ const [containerRef, scroll] = useSwipeListScroll({
1718
+ itemCount: tabs?.length || 0,
1719
+ isCyclic: false,
1720
+ });
1721
+ return (jsxs("div", { className: "relative max-w-full m-auto", children: [jsx("div", { className: `font-sans max-w-full w-full overflow-hidden relative bg-white`, children: jsx(SwipeListContainer, { containerRef: containerRef, snapAlign: "snap-start", onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs?.map(renderTab({ ...rest })) }) }), scroll.canScrollLeft ? (jsx(ScrollLeftButton, { className: `${scrollButtonStyle} left-6`, onClick: scroll.scrollLeft })) : null, scroll.canScrollRight ? (jsx(ScrollRightButton, { className: `${scrollButtonStyle} rotate-180 right-6`, onClick: scroll.scrollRight })) : null] }));
1722
+ });
1723
+
1724
+ const Tabs = JSX((props) => {
1725
+ const { className = '', isSticky, tabs, ...rest } = props;
1726
+ const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
1727
+ useEffect(() => {
1728
+ if (!tabs || !tabs[0]) {
1729
+ return;
1730
+ }
1731
+ fireTabEvent(tabs[0]);
1732
+ }, []);
1733
+ useEffect(() => {
1734
+ if (currentTab?.type === 'group') {
1735
+ defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref });
1736
+ }
1737
+ }, [currentTab]);
1738
+ const handleClick = useCallback((selectedTab) => {
1739
+ fireTabEvent(selectedTab);
1740
+ setCurrentTab(selectedTab);
1741
+ }, []);
1742
+ return (jsx(BlockWrapper, { className: style('relative box-border flex gap-x-1 w-full overflow-x-auto no-scrollbar', isSticky ? 'sticky top-1 z-20' : '', className), defaultPadding: "p-0", role: "tablist", ...rest, children: renderTabs({ tabs, onClick: handleClick, currentTab, ...rest }) }));
1743
+ });
1744
+ const renderTabs = ({ tabsMode, tabs, ...rest }) => {
1745
+ switch (tabsMode) {
1746
+ case 'wideScreen':
1747
+ return tabs?.map(renderTab({ tabsMode, ...rest }));
1748
+ case 'centered':
1749
+ return jsx(CenteredTabs, { tabs: tabs, tabsMode: tabsMode, ...rest });
1750
+ case 'scrollable':
1751
+ return jsx(ScrollableTabs, { tabs: tabs, tabsMode: tabsMode, ...rest });
1752
+ }
1753
+ return null;
1754
+ };
1755
+ const fireTabEvent = (tab) => {
1756
+ if (tab.type === 'group') {
1757
+ defaultEventBus.fire('tab', { type: tab.type, label: tab.ref });
1758
+ }
1759
+ if (tab.type === 'link') {
1760
+ defaultEventBus.fire('tab', { type: tab.type, label: tab.href });
1761
+ }
1609
1762
  };
1610
1763
 
1611
1764
  const renderButtonsCellData = ({ buttons }) => renderButtonsSection(buttons, {
@@ -1650,10 +1803,10 @@
1650
1803
  data: colData?.[i] || [{}],
1651
1804
  }));
1652
1805
 
1653
- const TextBlock = JSX(({ className = '', title, description, iconVersion, image, __html, items = [], ...rest }) => (jsxs(BlockWrapper, { className: style('flex gap-3 bg-white group-data-secondary:bg-primary-main/10', className), ...rest, children: [iconVersion === 'small' ? jsx("div", { className: "mt-1", children: renderIcon() }) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "flex flex-col w-fit gap-3", children: [title ? (jsx(Text, { size: "text-l", font: "font-medium", color: "text-primary-text group-data-secondary:text-white", children: title })) : null, description ? renderDescription(description) : null, items?.length ? renderList(items, true) : null, __html ? jsx(RichText, { __html: __html }) : null] })] })));
1806
+ const TextBlock = JSX(({ className = '', title, description, iconVersion, image, __html, items = [], ...rest }) => (jsxs(BlockWrapper, { className: style('flex gap-3 bg-white group-data-secondary:bg-primary-main/10', className), ...rest, children: [iconVersion === 'small' ? jsx("div", { className: "mt-1", children: renderIcon() }) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "flex flex-col w-fit gap-3", children: [title ? (jsx(Text, { size: "text-l", font: "font-medium", color: "text-primary-text group-data-secondary:text-white", children: title })) : null, description ? renderDescription$1(description) : null, items?.length ? renderList(items, true) : null, __html ? jsx(RichText, { __html: __html }) : null] })] })));
1654
1807
  const renderIcon = () => (jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs-light bg-primary-main text-white group-data-secondary:bg-white group-data-secondary:text-primary-main`, children: "i" }));
1655
1808
  const renderImage = (image) => image?.src ? jsx(Img, { className: "h-fit", image: image }) : null;
1656
- const renderDescription = (description) => (jsx(Paragraph, { size: "text-s", color: "text-secondary-text group-data-secondary:text-white", children: description }));
1809
+ const renderDescription$1 = (description) => (jsx(Paragraph, { size: "text-s", color: "text-secondary-text group-data-secondary:text-white", children: description }));
1657
1810
  const renderList = (items, bullets) => {
1658
1811
  const listStyle = bullets ? 'list-disc pl-6' : '';
1659
1812
  return (jsx("ul", { className: style('text-secondary-text group-data-secondary:text-white/80', listStyle), children: items.map((_, i) => (jsx("li", { children: jsx(Text, { size: "text-s", font: "font-light", children: _ }) }, `listItem-${i}`))) }));
@@ -1684,8 +1837,25 @@
1684
1837
  });
1685
1838
  VerticalLayout.childrenTypes = [];
1686
1839
 
1840
+ const benefitImageStyles = 'w-56 h-56 min-w-56';
1841
+
1842
+ const BenefitsBlock = JSX(({ className = '', title, benefitList, ...rest }) => (jsxs(BlockWrapper, { className: className, defaultPadding: "p-default", ...rest, children: [title ? jsx(Heading, { headingType: "h3", as: "h2", className: "text-center", title: title }) : null, benefitList?.length ? (jsx("div", { className: "sm:flex sm:flex-wrap w-full sm:justify-center sm:gap-x-m gap-y-lg sm:gap-y-0 mt-8", role: "list", children: benefitList.map(renderBenefit) })) : null] })));
1843
+ const renderBenefit = (benefit, i) => (jsxs("div", { className: "flex items-center sm:basis-1/2 sm:max-w-[400px] mb-14", role: "listitem", children: [benefit?.icon?.icon ? (jsx(Img, { className: style('p-3 mr-5 shrink-0 bg-main-divider text-primary-main group-data-secondary:bg-white/30 group-data-secondary:text-black', benefitImageStyles), image: benefit.icon })) : null, benefit?.icon?.src ? jsx(Img, { className: "mr-5 shrink-0", image: benefit.icon }) : null, benefit?.label ? (jsxs("div", { className: "sm:h-full", children: [jsx(Heading, { headingType: "h6", children: benefit.label }), renderDescription(benefit.description)] })) : null] }, String(i)));
1844
+ const renderDescription = (description) => {
1845
+ const benefitType = description?.benefitType || null;
1846
+ return description && benefitType ? (jsx("div", { className: "mt-2 text-l-light text-secondary-text group-data-secondary:text-white/80", children: benefitType === 'list'
1847
+ ? renderListBenefit(description)
1848
+ : renderTextBenefit(description) })) : null;
1849
+ };
1850
+ const renderTextBenefit = (description) => description?.name || null;
1851
+ const renderListBenefit = (description) => {
1852
+ const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
1853
+ return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
1854
+ };
1855
+
1687
1856
  const Blocks = {
1688
1857
  ButtonsBlock,
1858
+ BonusBenefitsBlock,
1689
1859
  CardTransfer,
1690
1860
  Carousel,
1691
1861
  CarouselTariffsCard,
@@ -1700,6 +1870,7 @@
1700
1870
  Placeholder,
1701
1871
  ProductBlock,
1702
1872
  StepsBlock,
1873
+ Tabs,
1703
1874
  TariffsTable,
1704
1875
  TextBlock,
1705
1876
  RichTextBlock,
@@ -1708,6 +1879,7 @@
1708
1879
  CarouselRecommendationCard,
1709
1880
  CarouselProgramsCard,
1710
1881
  ProductGallery,
1882
+ BenefitsBlock,
1711
1883
  };
1712
1884
 
1713
1885
  function useBool(defaultValue = false) {
@@ -1773,6 +1945,13 @@
1773
1945
  }, [scrollTarget]);
1774
1946
  }
1775
1947
 
1948
+ const useDebouncedEffect = (effect, deps, delay = 300) => useEffect(() => {
1949
+ const timerId = setTimeout(effect, delay);
1950
+ return () => {
1951
+ clearTimeout(timerId);
1952
+ };
1953
+ }, deps);
1954
+
1776
1955
  const CloseButton = JSX(({ className, onClick }) => (jsx("button", { className: style('flex justify-center items-center w-12 h-12 p-1 bg-transparent border-none', className), onClick: onClick, title: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", children: jsx(Img, { image: { icon: 'CloseIcon' }, width: "24", height: "24" }) })));
1777
1956
 
1778
1957
  function useDialogHandlers({ onOpen, onClose } = {}) {
@@ -1790,8 +1969,8 @@
1790
1969
  }), [onOpen, onClose]);
1791
1970
  }
1792
1971
 
1793
- function useDialogProps(id, initOpen = false) {
1794
- const [isOpened, { setTrue: open, setFalse: close }] = useBool(initOpen);
1972
+ function useDialogProps(id, isOpenedOnInit = false) {
1973
+ const [isOpened, { setTrue: open, setFalse: close }] = useBool(isOpenedOnInit);
1795
1974
  const [params, setParams] = useState({ id });
1796
1975
  const wasOpened = useRef(isOpened);
1797
1976
  wasOpened.current ||= isOpened;
@@ -1804,30 +1983,37 @@
1804
1983
  close();
1805
1984
  }
1806
1985
  }, [id]);
1986
+ const handleClose = useCallback(() => {
1987
+ close();
1988
+ defaultEventBus.fire('dialog', { type: 'close' });
1989
+ }, []);
1807
1990
  useDialogHandlers({
1808
1991
  onOpen: handleOpen,
1809
1992
  onClose: close,
1810
1993
  });
1811
- const handleCloseAsEventSource = useCallback(() => {
1812
- close();
1813
- defaultEventBus.fire('dialog', { type: 'close' });
1814
- }, []);
1815
1994
  return {
1816
1995
  ...params,
1817
1996
  isOpened,
1818
1997
  wasOpened: wasOpened.current,
1819
- onClose: handleCloseAsEventSource,
1998
+ open,
1999
+ close,
2000
+ onClose: handleClose,
1820
2001
  };
1821
2002
  }
1822
2003
 
1823
2004
  const COOKIE_DIALOG_ID = 'cookie';
1824
- const LOCAL_STORAGE_NAME = 'cookieClose';
2005
+ const DIALOG_INITIAL_DELAY = 3 * 1000;
1825
2006
  const CookiePopup = JSX(({ termLink, personalDataPolicyLink }) => {
1826
- const { isOpened, onClose } = useDialogProps(COOKIE_DIALOG_ID, !globalThis.localStorage?.getItem(LOCAL_STORAGE_NAME));
2007
+ const { isOpened, open, close } = useDialogProps(COOKIE_DIALOG_ID);
2008
+ useDebouncedEffect(() => {
2009
+ if (!globalThis.localStorage?.getItem(COOKIE_DIALOG_ID)) {
2010
+ open();
2011
+ }
2012
+ }, [], DIALOG_INITIAL_DELAY);
1827
2013
  const handleClose = useCallback(() => {
1828
- globalThis.localStorage?.setItem(LOCAL_STORAGE_NAME, 'true');
1829
- onClose && onClose();
1830
- }, [onClose]);
2014
+ globalThis.localStorage?.setItem(COOKIE_DIALOG_ID, 'true');
2015
+ close();
2016
+ }, [close]);
1831
2017
  return isOpened ? (jsx("div", { className: "container z-40 fixed bottom-0 left-0 right-0 pointer-events-none", children: jsxs("div", { className: "bg-white m-6 p-6 rounded-md flex items-center pointer-events-auto shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx("div", { className: "flex-1", children: jsxs(Paragraph, { size: "text-s-light", color: "text-primary-text", children: ["\u0410\u041E \u00AB\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u00BB \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(termLink?.href)), ...termLink, children: "cookie" }), "(\u0444\u0430\u0439\u043B\u044B \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u043E \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u0441\u0430\u0439\u0442\u0430) \u0434\u043B\u044F \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0438 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 cookie \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u0432\u043E\u0435\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(personalDataPolicyLink?.href)), ...personalDataPolicyLink, children: "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0412\u0430\u0448\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" }), "\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u0438 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u04243 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB."] }) }), jsx("div", { className: "w-24 flex justify-end", children: jsx(CloseButton, { className: "bg-main-gray rounded-md", onClick: handleClose }) })] }) })) : null;
1832
2018
  });
1833
2019
  const getStyleLinkWrapper = (href) => ['inline mx-1', href ? 'text-green-dark' : ''];
@@ -1907,7 +2093,7 @@
1907
2093
 
1908
2094
  const joinList = (sep) => (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: `sep-${i}` }, el) : [el]), []);
1909
2095
 
1910
- const packageVersion = "0.12.4";
2096
+ const packageVersion = "0.12.6";
1911
2097
 
1912
2098
  exports.Blocks = Blocks;
1913
2099
  exports.ContentPage = ContentPage;