@redneckz/wildless-cms-uni-blocks 0.6.32 → 0.6.34

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 (1151) hide show
  1. package/bin/migration-scripts/0.6.34.js +51 -0
  2. package/bundle/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  3. package/bundle/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  4. package/bundle/BlockRenderer/getParentBlockContent.d.ts +2 -0
  5. package/bundle/BlockRenderer/getParentBlockDef.d.ts +3 -0
  6. package/bundle/BlockRenderer/renderBlock.d.ts +3 -0
  7. package/bundle/BlockRenderer/renderBlockList.d.ts +9 -0
  8. package/bundle/BlockRenderer/renderChildren.d.ts +10 -0
  9. package/bundle/blocks.schema.json +1 -1
  10. package/bundle/bundle.umd.js +382 -395
  11. package/bundle/bundle.umd.min.js +1 -1
  12. package/bundle/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  13. package/bundle/components/Carousel/Carousel.d.ts +1 -0
  14. package/bundle/components/Carousel/CarouselContainer.d.ts +8 -5
  15. package/bundle/components/Carousel/CarouselContent.d.ts +5 -8
  16. package/bundle/components/CarouselCard/CarouselCard.d.ts +0 -2
  17. package/bundle/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  18. package/bundle/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  19. package/bundle/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  20. package/bundle/components/ComparisonTable/TableRow.d.ts +1 -1
  21. package/bundle/components/ComparisonTable/constants.d.ts +1 -1
  22. package/bundle/components/Gallery/GalleryContainer.d.ts +1 -1
  23. package/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  24. package/bundle/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  25. package/bundle/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  26. package/bundle/components/Video/Video.d.ts +6 -0
  27. package/bundle/components/Video/VideoContent.d.ts +8 -0
  28. package/bundle/components/Video/getPaddings.d.ts +1 -0
  29. package/bundle/hooks/useCarouselControls.d.ts +5 -3
  30. package/bundle/model/JSXBlock.d.ts +4 -5
  31. package/bundle/model/LinkProps.d.ts +1 -0
  32. package/bundle/model/Picture.d.ts +8 -2
  33. package/bundle/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  34. package/bundle/ui-kit/Button/renderArrows.d.ts +6 -4
  35. package/bundle/ui-kit/Paragraph/Paragraph.d.ts +9 -0
  36. package/bundle/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  37. package/bundle/ui-kit/Text/Text.d.ts +34 -0
  38. package/dist/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  39. package/dist/BlockRenderer/BlockRendererOptions.js +2 -0
  40. package/dist/BlockRenderer/BlockRendererOptions.js.map +1 -0
  41. package/dist/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  42. package/dist/BlockRenderer/defaultBlockDecorator.js +5 -0
  43. package/dist/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  44. package/dist/BlockRenderer/getParentBlockContent.d.ts +2 -0
  45. package/{mobile/dist/model → dist/BlockRenderer}/getParentBlockContent.js +2 -2
  46. package/dist/BlockRenderer/getParentBlockContent.js.map +1 -0
  47. package/dist/BlockRenderer/getParentBlockDef.d.ts +3 -0
  48. package/dist/BlockRenderer/getParentBlockDef.js +7 -0
  49. package/dist/BlockRenderer/getParentBlockDef.js.map +1 -0
  50. package/dist/BlockRenderer/renderBlock.d.ts +3 -0
  51. package/dist/BlockRenderer/renderBlock.js +27 -0
  52. package/dist/BlockRenderer/renderBlock.js.map +1 -0
  53. package/dist/BlockRenderer/renderBlockList.d.ts +9 -0
  54. package/dist/BlockRenderer/renderBlockList.js +14 -0
  55. package/dist/BlockRenderer/renderBlockList.js.map +1 -0
  56. package/dist/BlockRenderer/renderChildren.d.ts +10 -0
  57. package/dist/BlockRenderer/renderChildren.js +13 -0
  58. package/dist/BlockRenderer/renderChildren.js.map +1 -0
  59. package/dist/components/Accordion/Accordion.js +3 -1
  60. package/dist/components/Accordion/Accordion.js.map +1 -1
  61. package/dist/components/Accordion/Accordion.mobile.js +3 -1
  62. package/dist/components/Accordion/Accordion.mobile.js.map +1 -1
  63. package/dist/components/AccordionItem/AccordionItem.js +4 -2
  64. package/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  65. package/dist/components/AccordionItem/AccordionItem.mobile.js +7 -5
  66. package/dist/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  67. package/dist/components/Blocks.js +3 -1
  68. package/dist/components/Blocks.js.map +1 -1
  69. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  70. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  71. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  72. package/dist/components/Calculator/Calculator.js +22 -22
  73. package/dist/components/Calculator/Calculator.js.map +1 -1
  74. package/dist/components/Calculator/CalculatorValueBlock.js +1 -3
  75. package/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  76. package/dist/components/CardTransfer/CardTransfer.js +2 -1
  77. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  78. package/dist/components/Carousel/Carousel.d.ts +1 -0
  79. package/dist/components/Carousel/Carousel.js +16 -14
  80. package/dist/components/Carousel/Carousel.js.map +1 -1
  81. package/dist/components/Carousel/CarouselContainer.d.ts +8 -5
  82. package/dist/components/Carousel/CarouselContainer.js +8 -5
  83. package/dist/components/Carousel/CarouselContainer.js.map +1 -1
  84. package/dist/components/Carousel/CarouselContent.d.ts +5 -8
  85. package/dist/components/Carousel/CarouselContent.js +0 -3
  86. package/dist/components/Carousel/CarouselContent.js.map +1 -1
  87. package/dist/components/CarouselCard/CarouselCard.d.ts +0 -2
  88. package/dist/components/CarouselCard/CarouselCard.js +4 -11
  89. package/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  90. package/dist/components/CarouselLinks/CarouselLinks.js +9 -9
  91. package/dist/components/CarouselLinks/CarouselLinks.js.map +1 -1
  92. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  93. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  94. package/dist/components/Catalog/Catalog.js +8 -11
  95. package/dist/components/Catalog/Catalog.js.map +1 -1
  96. package/dist/components/ComparisonTable/ComparisonTable.mobile.js +2 -2
  97. package/dist/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  98. package/dist/components/ComparisonTable/ComparisonTableBody.js +4 -4
  99. package/dist/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  100. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  101. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  102. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  103. package/dist/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  104. package/dist/components/ComparisonTable/ComparisonTableRows.js +8 -7
  105. package/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  106. package/dist/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  107. package/dist/components/ComparisonTable/TableCarouselContainer.js +1 -1
  108. package/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  109. package/dist/components/ComparisonTable/TableRow.d.ts +1 -1
  110. package/dist/components/ComparisonTable/TableRow.js +1 -1
  111. package/dist/components/ComparisonTable/TableRow.js.map +1 -1
  112. package/dist/components/ComparisonTable/constants.d.ts +1 -1
  113. package/dist/components/ComparisonTable/constants.js +1 -1
  114. package/dist/components/ContactsBlock/ContactsBlock.js +3 -5
  115. package/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  116. package/dist/components/ContentPage/ContentPage.js +13 -7
  117. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  118. package/dist/components/ExchangeRateTile/CurrencyTable.js +1 -3
  119. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  120. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -3
  121. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  122. package/dist/components/Footer/Footer.js +1 -1
  123. package/dist/components/Footer/Footer.js.map +1 -1
  124. package/dist/components/Footer/Footer.mobile.js +2 -2
  125. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  126. package/dist/components/Gallery/GalleryCardInner.js +2 -4
  127. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  128. package/dist/components/Gallery/GalleryContainer.d.ts +1 -1
  129. package/dist/components/Gallery/GalleryContainer.js +1 -3
  130. package/dist/components/Gallery/GalleryContainer.js.map +1 -1
  131. package/dist/components/Gallery/GalleryInner.js +9 -12
  132. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  133. package/dist/components/Header/Header.js +1 -1
  134. package/dist/components/Header/Header.js.map +1 -1
  135. package/dist/components/Header/Header.mobile.js +2 -3
  136. package/dist/components/Header/Header.mobile.js.map +1 -1
  137. package/dist/components/Headline/Headline.js +1 -2
  138. package/dist/components/Headline/Headline.js.map +1 -1
  139. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +23 -25
  140. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  141. package/dist/components/InvestmentGallery/InvestmentGallery.js +10 -20
  142. package/dist/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  143. package/dist/components/InvestmentGallery/InvestmentGalleryCard.js +1 -2
  144. package/dist/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -1
  145. package/dist/components/MobileAppTile/MobileAppTile.js +4 -4
  146. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  147. package/dist/components/OtherProducts/OtherProducts.js +2 -1
  148. package/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  149. package/dist/components/OtherProductsItem/OtherProductsItem.js +5 -4
  150. package/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  151. package/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  152. package/dist/components/ProductBlock/ProductBlockInner.js +2 -2
  153. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  154. package/dist/components/Recommendation/Recommendation.js +11 -21
  155. package/dist/components/Recommendation/Recommendation.js.map +1 -1
  156. package/dist/components/Recommendation/RecommendationCard.js +1 -2
  157. package/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  158. package/dist/components/RollupItem/RollupItem.js +5 -3
  159. package/dist/components/RollupItem/RollupItem.js.map +1 -1
  160. package/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  161. package/dist/components/StepsBlock/StepsBlock.js +1 -1
  162. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  163. package/dist/components/TariffsTable/TariffsTable.js +12 -14
  164. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  165. package/dist/components/TariffsTable/TariffsTable.mobile.js +1 -1
  166. package/dist/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  167. package/dist/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  168. package/dist/components/TariffsTable/TariffsTableRow.js +2 -2
  169. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  170. package/dist/components/Tile/Tile.js +2 -2
  171. package/dist/components/Tile/Tile.js.map +1 -1
  172. package/dist/components/VerticalLayout/VerticalLayout.js +3 -2
  173. package/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  174. package/dist/components/Video/Video.d.ts +6 -0
  175. package/dist/components/Video/Video.js +12 -0
  176. package/dist/components/Video/Video.js.map +1 -0
  177. package/dist/components/Video/VideoContent.d.ts +8 -0
  178. package/dist/components/Video/VideoContent.js +2 -0
  179. package/dist/components/Video/VideoContent.js.map +1 -0
  180. package/dist/components/Video/getPaddings.d.ts +1 -0
  181. package/dist/components/Video/getPaddings.js +7 -0
  182. package/dist/components/Video/getPaddings.js.map +1 -0
  183. package/dist/hooks/useCarouselControls.d.ts +5 -3
  184. package/dist/hooks/useCarouselControls.js +19 -8
  185. package/dist/hooks/useCarouselControls.js.map +1 -1
  186. package/dist/model/JSXBlock.d.ts +4 -5
  187. package/dist/model/LinkProps.d.ts +1 -0
  188. package/dist/model/Picture.d.ts +8 -2
  189. package/dist/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  190. package/{mobile/dist/react → dist}/setup-fixture.js +4 -4
  191. package/dist/setup-fixture.js.map +1 -0
  192. package/dist/ui-kit/Button/renderArrows.d.ts +6 -4
  193. package/dist/ui-kit/Button/renderArrows.js +3 -2
  194. package/dist/ui-kit/Button/renderArrows.js.map +1 -1
  195. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  196. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  197. package/dist/ui-kit/Paragraph/Paragraph.d.ts +9 -0
  198. package/dist/ui-kit/Paragraph/Paragraph.js +10 -0
  199. package/dist/ui-kit/Paragraph/Paragraph.js.map +1 -0
  200. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +5 -2
  201. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  202. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  203. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  204. package/dist/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  205. package/dist/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  206. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  207. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  208. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  209. package/dist/ui-kit/Text/Text.d.ts +34 -0
  210. package/dist/ui-kit/Text/Text.js +10 -0
  211. package/dist/ui-kit/Text/Text.js.map +1 -0
  212. package/lib/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  213. package/lib/BlockRenderer/BlockRendererOptions.js +2 -0
  214. package/lib/BlockRenderer/BlockRendererOptions.js.map +1 -0
  215. package/lib/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  216. package/lib/BlockRenderer/defaultBlockDecorator.js +2 -0
  217. package/lib/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  218. package/lib/BlockRenderer/getParentBlockContent.d.ts +2 -0
  219. package/lib/BlockRenderer/getParentBlockContent.js +6 -0
  220. package/lib/BlockRenderer/getParentBlockContent.js.map +1 -0
  221. package/lib/BlockRenderer/getParentBlockDef.d.ts +3 -0
  222. package/lib/BlockRenderer/getParentBlockDef.js +4 -0
  223. package/lib/BlockRenderer/getParentBlockDef.js.map +1 -0
  224. package/lib/BlockRenderer/renderBlock.d.ts +3 -0
  225. package/lib/BlockRenderer/renderBlock.js +24 -0
  226. package/lib/BlockRenderer/renderBlock.js.map +1 -0
  227. package/lib/BlockRenderer/renderBlockList.d.ts +9 -0
  228. package/lib/BlockRenderer/renderBlockList.js +11 -0
  229. package/lib/BlockRenderer/renderBlockList.js.map +1 -0
  230. package/lib/BlockRenderer/renderChildren.d.ts +10 -0
  231. package/lib/BlockRenderer/renderChildren.js +10 -0
  232. package/lib/BlockRenderer/renderChildren.js.map +1 -0
  233. package/lib/common.css +1 -1
  234. package/lib/components/Accordion/Accordion.fixture.d.ts +3 -2
  235. package/lib/components/Accordion/Accordion.fixture.mobile.d.ts +3 -2
  236. package/lib/components/Accordion/Accordion.js +3 -1
  237. package/lib/components/Accordion/Accordion.js.map +1 -1
  238. package/lib/components/Accordion/Accordion.mobile.js +3 -1
  239. package/lib/components/Accordion/Accordion.mobile.js.map +1 -1
  240. package/lib/components/AccordionItem/AccordionItem.js +4 -2
  241. package/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  242. package/lib/components/AccordionItem/AccordionItem.mobile.js +7 -5
  243. package/lib/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  244. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +1 -1
  245. package/lib/components/Blocks.js +3 -1
  246. package/lib/components/Blocks.js.map +1 -1
  247. package/lib/components/Bonus/Bonus.fixture.d.ts +1 -1
  248. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.d.ts +2 -1
  249. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  250. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  251. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  252. package/lib/components/BusinessBlock/BusinessBlock.fixture.d.ts +1 -1
  253. package/lib/components/Calculator/Calculator.fixture.d.ts +1 -1
  254. package/lib/components/Calculator/Calculator.js +23 -23
  255. package/lib/components/Calculator/Calculator.js.map +1 -1
  256. package/lib/components/Calculator/CalculatorValueBlock.js +1 -3
  257. package/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  258. package/lib/components/CardTransfer/CardTransfer.fixture.d.ts +1 -1
  259. package/lib/components/CardTransfer/CardTransfer.js +3 -2
  260. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  261. package/lib/components/Carousel/Carousel.d.ts +1 -0
  262. package/lib/components/Carousel/Carousel.fixture.d.ts +1 -1
  263. package/lib/components/Carousel/Carousel.js +16 -14
  264. package/lib/components/Carousel/Carousel.js.map +1 -1
  265. package/lib/components/Carousel/CarouselContainer.d.ts +8 -5
  266. package/lib/components/Carousel/CarouselContainer.js +8 -5
  267. package/lib/components/Carousel/CarouselContainer.js.map +1 -1
  268. package/lib/components/Carousel/CarouselContent.d.ts +5 -8
  269. package/lib/components/Carousel/CarouselContent.js +0 -3
  270. package/lib/components/Carousel/CarouselContent.js.map +1 -1
  271. package/lib/components/CarouselCard/CarouselCard.d.ts +0 -2
  272. package/lib/components/CarouselCard/CarouselCard.fixture.d.ts +2 -1
  273. package/lib/components/CarouselCard/CarouselCard.js +4 -11
  274. package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  275. package/lib/components/CarouselLinks/CarouselLinks.js +9 -9
  276. package/lib/components/CarouselLinks/CarouselLinks.js.map +1 -1
  277. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  278. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  279. package/lib/components/Catalog/Catalog.fixture.d.ts +1 -1
  280. package/lib/components/Catalog/Catalog.js +8 -11
  281. package/lib/components/Catalog/Catalog.js.map +1 -1
  282. package/lib/components/ComparisonTable/ComparisonTable.fixture.d.ts +2 -2
  283. package/lib/components/ComparisonTable/ComparisonTable.fixture.mobile.d.ts +1 -1
  284. package/lib/components/ComparisonTable/ComparisonTable.mobile.js +2 -2
  285. package/lib/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  286. package/lib/components/ComparisonTable/ComparisonTableBody.js +4 -4
  287. package/lib/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  288. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  289. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  290. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  291. package/lib/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  292. package/lib/components/ComparisonTable/ComparisonTableRows.js +8 -7
  293. package/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  294. package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  295. package/lib/components/ComparisonTable/TableCarouselContainer.js +1 -1
  296. package/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  297. package/lib/components/ComparisonTable/TableRow.d.ts +1 -1
  298. package/lib/components/ComparisonTable/TableRow.js +1 -1
  299. package/lib/components/ComparisonTable/TableRow.js.map +1 -1
  300. package/lib/components/ComparisonTable/constants.d.ts +1 -1
  301. package/lib/components/ComparisonTable/constants.js +1 -1
  302. package/lib/components/ContactsBlock/ContactsBlock.fixture.d.ts +1 -1
  303. package/lib/components/ContactsBlock/ContactsBlock.js +3 -5
  304. package/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  305. package/lib/components/ContentPage/ContentPage.fixture.d.ts +1 -1
  306. package/lib/components/ContentPage/ContentPage.fixture.mobile.d.ts +1 -1
  307. package/lib/components/ContentPage/ContentPage.js +13 -7
  308. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  309. package/lib/components/ErrorBlock/ErrorBlock.fixture.d.ts +1 -1
  310. package/lib/components/ExchangeRateTile/CurrencyTable.js +1 -3
  311. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  312. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -4
  313. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  314. package/lib/components/ExchangeRateTile/ExchangeRateTile.fixture.d.ts +1 -1
  315. package/lib/components/Footer/Footer.fixture.d.ts +1 -1
  316. package/lib/components/Footer/Footer.fixture.mobile.d.ts +1 -1
  317. package/lib/components/Footer/Footer.js +1 -1
  318. package/lib/components/Footer/Footer.js.map +1 -1
  319. package/lib/components/Footer/Footer.mobile.js +2 -2
  320. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  321. package/lib/components/Gallery/Gallery.fixture.d.ts +1 -1
  322. package/lib/components/Gallery/Gallery.fixture.mobile.d.ts +1 -1
  323. package/lib/components/Gallery/GalleryCardInner.js +2 -4
  324. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  325. package/lib/components/Gallery/GalleryContainer.d.ts +1 -1
  326. package/lib/components/Gallery/GalleryContainer.js +1 -3
  327. package/lib/components/Gallery/GalleryContainer.js.map +1 -1
  328. package/lib/components/Gallery/GalleryInner.js +9 -12
  329. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  330. package/lib/components/GracePeriod/GracePeriod.fixture.d.ts +1 -1
  331. package/lib/components/Header/Header.fixture.d.ts +1 -1
  332. package/lib/components/Header/Header.fixture.mobile.d.ts +1 -1
  333. package/lib/components/Header/Header.js +1 -1
  334. package/lib/components/Header/Header.js.map +1 -1
  335. package/lib/components/Header/Header.mobile.js +2 -3
  336. package/lib/components/Header/Header.mobile.js.map +1 -1
  337. package/lib/components/Headline/Headline.fixture.d.ts +1 -1
  338. package/lib/components/Headline/Headline.fixture.mobile.d.ts +1 -1
  339. package/lib/components/Headline/Headline.js +1 -2
  340. package/lib/components/Headline/Headline.js.map +1 -1
  341. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.d.ts +1 -1
  342. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +24 -26
  343. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  344. package/lib/components/InvestmentGallery/InvestmentGallery.fixture.d.ts +1 -1
  345. package/lib/components/InvestmentGallery/InvestmentGallery.js +10 -20
  346. package/lib/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  347. package/lib/components/InvestmentGallery/InvestmentGalleryCard.js +1 -2
  348. package/lib/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -1
  349. package/lib/components/InvestmentInfo/InvestmentInfo.fixture.d.ts +1 -1
  350. package/lib/components/LikeControl/LikeControl.fixture.d.ts +1 -1
  351. package/lib/components/LinkDocs/LinkDocs.fixture.d.ts +1 -1
  352. package/lib/components/LinkDocs/LinkDocs.fixture.mobile.d.ts +1 -1
  353. package/lib/components/LinkList/LinkList.fixture.d.ts +1 -1
  354. package/lib/components/MiniGallery/MiniGallery.fixture.d.ts +1 -1
  355. package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +1 -1
  356. package/lib/components/MobileAppTile/MobileAppTile.fixture.mobile.d.ts +1 -1
  357. package/lib/components/MobileAppTile/MobileAppTile.js +4 -4
  358. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  359. package/lib/components/OfficeMap/OfficeMap.fixture.d.ts +1 -1
  360. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.fixture.d.ts +1 -1
  361. package/lib/components/OtherProducts/OtherProducts.fixture.d.ts +3 -2
  362. package/lib/components/OtherProducts/OtherProducts.js +2 -1
  363. package/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  364. package/lib/components/OtherProductsItem/OtherProductsItem.js +5 -4
  365. package/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  366. package/lib/components/PictureText/PictureText.fixture.d.ts +1 -1
  367. package/lib/components/Placeholder/Placeholder.fixture.d.ts +1 -1
  368. package/lib/components/Placeholder/Placeholder.fixture.mobile.d.ts +1 -1
  369. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +2 -1
  370. package/lib/components/ProductBlock/ProductBlock.fixture.mobile.d.ts +1 -1
  371. package/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  372. package/lib/components/ProductBlock/ProductBlockInner.js +2 -2
  373. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  374. package/lib/components/ProductGallery/ProductGallery.fixture.d.ts +1 -1
  375. package/lib/components/ProductTile/ProductTile.fixture.d.ts +1 -1
  376. package/lib/components/PromoTile/PromoTile.fixture.d.ts +1 -1
  377. package/lib/components/Recommendation/Recommendation.fixture.d.ts +1 -1
  378. package/lib/components/Recommendation/Recommendation.js +11 -21
  379. package/lib/components/Recommendation/Recommendation.js.map +1 -1
  380. package/lib/components/Recommendation/RecommendationCard.js +1 -2
  381. package/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  382. package/lib/components/RollupItem/RollupItem.js +5 -3
  383. package/lib/components/RollupItem/RollupItem.js.map +1 -1
  384. package/lib/components/SafeDepositRental/SafeDepositRental.fixture.d.ts +1 -1
  385. package/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  386. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +1 -1
  387. package/lib/components/StepsBlock/StepsBlock.fixture.mobile.d.ts +1 -1
  388. package/lib/components/StepsBlock/StepsBlock.js +1 -1
  389. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  390. package/lib/components/Tabs/Tabs.fixture.d.ts +1 -1
  391. package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +1 -1
  392. package/lib/components/TariffsTable/TariffsTable.fixture.mobile.d.ts +1 -1
  393. package/lib/components/TariffsTable/TariffsTable.js +12 -14
  394. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  395. package/lib/components/TariffsTable/TariffsTable.mobile.js +1 -1
  396. package/lib/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  397. package/lib/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  398. package/lib/components/TariffsTable/TariffsTableRow.js +2 -2
  399. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  400. package/lib/components/TextBlock/TextBlock.fixture.d.ts +1 -1
  401. package/lib/components/TextBlock/TextBlock.fixture.mobile.d.ts +1 -1
  402. package/lib/components/Tile/Tile.fixture.d.ts +1 -1
  403. package/lib/components/Tile/Tile.js +2 -2
  404. package/lib/components/Tile/Tile.js.map +1 -1
  405. package/lib/components/VerticalLayout/VerticalLayout.fixture.d.ts +1 -1
  406. package/lib/components/VerticalLayout/VerticalLayout.js +3 -2
  407. package/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  408. package/lib/components/Video/Video.d.ts +6 -0
  409. package/lib/components/Video/Video.fixture.d.ts +8 -0
  410. package/lib/components/Video/Video.js +10 -0
  411. package/lib/components/Video/Video.js.map +1 -0
  412. package/lib/components/Video/VideoContent.d.ts +8 -0
  413. package/lib/components/Video/VideoContent.js +2 -0
  414. package/lib/components/Video/VideoContent.js.map +1 -0
  415. package/lib/components/Video/getPaddings.d.ts +1 -0
  416. package/lib/components/Video/getPaddings.js +4 -0
  417. package/lib/components/Video/getPaddings.js.map +1 -0
  418. package/lib/hooks/useCarouselControls.d.ts +5 -3
  419. package/lib/hooks/useCarouselControls.js +19 -8
  420. package/lib/hooks/useCarouselControls.js.map +1 -1
  421. package/lib/model/JSXBlock.d.ts +4 -5
  422. package/lib/model/LinkProps.d.ts +1 -0
  423. package/lib/model/Picture.d.ts +8 -2
  424. package/lib/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  425. package/lib/{react/setup-fixture.js → setup-fixture.js} +4 -4
  426. package/lib/setup-fixture.js.map +1 -0
  427. package/lib/ui-kit/Button/Button.fixture.d.ts +1 -1
  428. package/lib/ui-kit/Button/renderArrows.d.ts +6 -4
  429. package/lib/ui-kit/Button/renderArrows.js +3 -2
  430. package/lib/ui-kit/Button/renderArrows.js.map +1 -1
  431. package/lib/ui-kit/HeaderItem/HeaderItem.fixture.d.ts +1 -1
  432. package/lib/ui-kit/Icon/Icon.fixture.d.ts +1 -1
  433. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  434. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  435. package/lib/ui-kit/List/List.fixture.d.ts +1 -1
  436. package/lib/ui-kit/Logo/Logo.fixture.d.ts +1 -1
  437. package/lib/ui-kit/Paragraph/Paragraph.d.ts +9 -0
  438. package/lib/ui-kit/Paragraph/Paragraph.js +8 -0
  439. package/lib/ui-kit/Paragraph/Paragraph.js.map +1 -0
  440. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.fixture.d.ts +1 -1
  441. package/lib/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.d.ts +3 -1
  442. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +6 -3
  443. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  444. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  445. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  446. package/lib/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  447. package/lib/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  448. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  449. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  450. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  451. package/lib/ui-kit/Text/Text.d.ts +34 -0
  452. package/lib/ui-kit/Text/Text.js +8 -0
  453. package/lib/ui-kit/Text/Text.js.map +1 -0
  454. package/lib/ui-kit/TopItem/TopItem.fixture.d.ts +1 -1
  455. package/mobile/bundle/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  456. package/mobile/bundle/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  457. package/mobile/bundle/BlockRenderer/getParentBlockContent.d.ts +2 -0
  458. package/mobile/bundle/BlockRenderer/getParentBlockDef.d.ts +3 -0
  459. package/mobile/bundle/BlockRenderer/renderBlock.d.ts +3 -0
  460. package/mobile/bundle/BlockRenderer/renderBlockList.d.ts +9 -0
  461. package/mobile/bundle/BlockRenderer/renderChildren.d.ts +10 -0
  462. package/mobile/bundle/bundle.umd.js +103 -88
  463. package/mobile/bundle/bundle.umd.min.js +1 -1
  464. package/mobile/bundle/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  465. package/mobile/bundle/components/Carousel/Carousel.d.ts +1 -0
  466. package/mobile/bundle/components/Carousel/CarouselContainer.d.ts +8 -5
  467. package/mobile/bundle/components/Carousel/CarouselContent.d.ts +5 -8
  468. package/mobile/bundle/components/CarouselCard/CarouselCard.d.ts +0 -2
  469. package/mobile/bundle/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  470. package/mobile/bundle/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  471. package/mobile/bundle/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  472. package/mobile/bundle/components/ComparisonTable/TableRow.d.ts +1 -1
  473. package/mobile/bundle/components/ComparisonTable/constants.d.ts +1 -1
  474. package/mobile/bundle/components/Gallery/GalleryContainer.d.ts +1 -1
  475. package/mobile/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  476. package/mobile/bundle/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  477. package/mobile/bundle/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  478. package/mobile/bundle/components/Video/Video.d.ts +6 -0
  479. package/mobile/bundle/components/Video/VideoContent.d.ts +8 -0
  480. package/mobile/bundle/components/Video/getPaddings.d.ts +1 -0
  481. package/mobile/bundle/hooks/useCarouselControls.d.ts +5 -3
  482. package/mobile/bundle/model/JSXBlock.d.ts +4 -5
  483. package/mobile/bundle/model/LinkProps.d.ts +1 -0
  484. package/mobile/bundle/model/Picture.d.ts +8 -2
  485. package/mobile/bundle/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  486. package/mobile/bundle/ui-kit/Button/renderArrows.d.ts +6 -4
  487. package/mobile/bundle/ui-kit/Paragraph/Paragraph.d.ts +9 -0
  488. package/mobile/bundle/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  489. package/mobile/bundle/ui-kit/Text/Text.d.ts +34 -0
  490. package/mobile/dist/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  491. package/mobile/dist/BlockRenderer/BlockRendererOptions.js +2 -0
  492. package/mobile/dist/BlockRenderer/BlockRendererOptions.js.map +1 -0
  493. package/mobile/dist/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  494. package/mobile/dist/BlockRenderer/defaultBlockDecorator.js +5 -0
  495. package/mobile/dist/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  496. package/mobile/dist/BlockRenderer/getParentBlockContent.d.ts +2 -0
  497. package/{dist/model → mobile/dist/BlockRenderer}/getParentBlockContent.js +2 -2
  498. package/mobile/dist/BlockRenderer/getParentBlockContent.js.map +1 -0
  499. package/mobile/dist/BlockRenderer/getParentBlockDef.d.ts +3 -0
  500. package/mobile/dist/BlockRenderer/getParentBlockDef.js +7 -0
  501. package/mobile/dist/BlockRenderer/getParentBlockDef.js.map +1 -0
  502. package/mobile/dist/BlockRenderer/renderBlock.d.ts +3 -0
  503. package/mobile/dist/BlockRenderer/renderBlock.js +27 -0
  504. package/mobile/dist/BlockRenderer/renderBlock.js.map +1 -0
  505. package/mobile/dist/BlockRenderer/renderBlockList.d.ts +9 -0
  506. package/mobile/dist/BlockRenderer/renderBlockList.js +14 -0
  507. package/mobile/dist/BlockRenderer/renderBlockList.js.map +1 -0
  508. package/mobile/dist/BlockRenderer/renderChildren.d.ts +10 -0
  509. package/mobile/dist/BlockRenderer/renderChildren.js +13 -0
  510. package/mobile/dist/BlockRenderer/renderChildren.js.map +1 -0
  511. package/mobile/dist/components/Accordion/Accordion.js +3 -1
  512. package/mobile/dist/components/Accordion/Accordion.js.map +1 -1
  513. package/mobile/dist/components/AccordionItem/AccordionItem.js +7 -5
  514. package/mobile/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  515. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  516. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  517. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  518. package/mobile/dist/components/Calculator/Calculator.js +22 -22
  519. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  520. package/mobile/dist/components/Calculator/CalculatorValueBlock.js +1 -3
  521. package/mobile/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  522. package/mobile/dist/components/CardTransfer/CardTransfer.js +2 -1
  523. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  524. package/mobile/dist/components/Carousel/Carousel.d.ts +1 -0
  525. package/mobile/dist/components/Carousel/Carousel.js +16 -14
  526. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  527. package/mobile/dist/components/Carousel/CarouselContainer.d.ts +8 -5
  528. package/mobile/dist/components/Carousel/CarouselContainer.js +8 -5
  529. package/mobile/dist/components/Carousel/CarouselContainer.js.map +1 -1
  530. package/mobile/dist/components/Carousel/CarouselContent.d.ts +5 -8
  531. package/mobile/dist/components/Carousel/CarouselContent.js +0 -3
  532. package/mobile/dist/components/Carousel/CarouselContent.js.map +1 -1
  533. package/mobile/dist/components/CarouselCard/CarouselCard.d.ts +0 -2
  534. package/mobile/dist/components/CarouselCard/CarouselCard.js +4 -11
  535. package/mobile/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  536. package/mobile/dist/components/CarouselLinks/CarouselLinks.js +9 -9
  537. package/mobile/dist/components/CarouselLinks/CarouselLinks.js.map +1 -1
  538. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  539. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  540. package/mobile/dist/components/Catalog/Catalog.js +8 -11
  541. package/mobile/dist/components/Catalog/Catalog.js.map +1 -1
  542. package/mobile/dist/components/ComparisonTable/ComparisonTable.js +2 -2
  543. package/mobile/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  544. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.js +4 -4
  545. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  546. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  547. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  548. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  549. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  550. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js +8 -7
  551. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  552. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  553. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.js +1 -1
  554. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  555. package/mobile/dist/components/ComparisonTable/TableRow.d.ts +1 -1
  556. package/mobile/dist/components/ComparisonTable/TableRow.js +1 -1
  557. package/mobile/dist/components/ComparisonTable/TableRow.js.map +1 -1
  558. package/mobile/dist/components/ComparisonTable/constants.d.ts +1 -1
  559. package/mobile/dist/components/ComparisonTable/constants.js +1 -1
  560. package/mobile/dist/components/ContactsBlock/ContactsBlock.js +3 -5
  561. package/mobile/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  562. package/mobile/dist/components/ContentPage/ContentPage.js +13 -7
  563. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  564. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +1 -3
  565. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  566. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -3
  567. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  568. package/mobile/dist/components/Footer/Footer.js +2 -2
  569. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  570. package/mobile/dist/components/Gallery/GalleryCardInner.js +2 -4
  571. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  572. package/mobile/dist/components/Gallery/GalleryContainer.d.ts +1 -1
  573. package/mobile/dist/components/Gallery/GalleryContainer.js +1 -3
  574. package/mobile/dist/components/Gallery/GalleryContainer.js.map +1 -1
  575. package/mobile/dist/components/Gallery/GalleryInner.js +9 -12
  576. package/mobile/dist/components/Gallery/GalleryInner.js.map +1 -1
  577. package/mobile/dist/components/Header/Header.js +2 -3
  578. package/mobile/dist/components/Header/Header.js.map +1 -1
  579. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +23 -25
  580. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  581. package/mobile/dist/components/InvestmentGallery/InvestmentGallery.js +10 -20
  582. package/mobile/dist/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  583. package/mobile/dist/components/InvestmentGallery/InvestmentGalleryCard.js +1 -2
  584. package/mobile/dist/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -1
  585. package/mobile/dist/components/OtherProducts/OtherProducts.js +2 -1
  586. package/mobile/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  587. package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js +5 -4
  588. package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  589. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  590. package/mobile/dist/components/Recommendation/Recommendation.js +11 -21
  591. package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
  592. package/mobile/dist/components/Recommendation/RecommendationCard.js +1 -2
  593. package/mobile/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  594. package/mobile/dist/components/RollupItem/RollupItem.js +5 -3
  595. package/mobile/dist/components/RollupItem/RollupItem.js.map +1 -1
  596. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  597. package/mobile/dist/components/TariffsTable/TariffsTable.js +1 -1
  598. package/mobile/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  599. package/mobile/dist/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  600. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +2 -2
  601. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  602. package/mobile/dist/components/Tile/Tile.js +2 -2
  603. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  604. package/mobile/dist/components/VerticalLayout/VerticalLayout.js +3 -2
  605. package/mobile/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  606. package/mobile/dist/components/Video/Video.d.ts +6 -0
  607. package/mobile/dist/components/Video/Video.js +12 -0
  608. package/mobile/dist/components/Video/Video.js.map +1 -0
  609. package/mobile/dist/components/Video/VideoContent.d.ts +8 -0
  610. package/mobile/dist/components/Video/VideoContent.js +2 -0
  611. package/mobile/dist/components/Video/VideoContent.js.map +1 -0
  612. package/mobile/dist/components/Video/getPaddings.d.ts +1 -0
  613. package/mobile/dist/components/Video/getPaddings.js +7 -0
  614. package/mobile/dist/components/Video/getPaddings.js.map +1 -0
  615. package/mobile/dist/hooks/useCarouselControls.d.ts +5 -3
  616. package/mobile/dist/hooks/useCarouselControls.js +19 -8
  617. package/mobile/dist/hooks/useCarouselControls.js.map +1 -1
  618. package/mobile/dist/model/JSXBlock.d.ts +4 -5
  619. package/mobile/dist/model/LinkProps.d.ts +1 -0
  620. package/mobile/dist/model/Picture.d.ts +8 -2
  621. package/mobile/dist/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  622. package/{dist/react → mobile/dist}/setup-fixture.js +4 -4
  623. package/mobile/dist/setup-fixture.js.map +1 -0
  624. package/mobile/dist/ui-kit/Button/renderArrows.d.ts +6 -4
  625. package/mobile/dist/ui-kit/Button/renderArrows.js +3 -2
  626. package/mobile/dist/ui-kit/Button/renderArrows.js.map +1 -1
  627. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  628. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  629. package/mobile/dist/ui-kit/Paragraph/Paragraph.d.ts +9 -0
  630. package/mobile/dist/ui-kit/Paragraph/Paragraph.js +10 -0
  631. package/mobile/dist/ui-kit/Paragraph/Paragraph.js.map +1 -0
  632. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +5 -2
  633. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  634. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  635. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  636. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  637. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  638. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  639. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  640. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  641. package/mobile/dist/ui-kit/Text/Text.d.ts +34 -0
  642. package/mobile/dist/ui-kit/Text/Text.js +10 -0
  643. package/mobile/dist/ui-kit/Text/Text.js.map +1 -0
  644. package/mobile/lib/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  645. package/mobile/lib/BlockRenderer/BlockRendererOptions.js +2 -0
  646. package/mobile/lib/BlockRenderer/BlockRendererOptions.js.map +1 -0
  647. package/mobile/lib/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  648. package/mobile/lib/BlockRenderer/defaultBlockDecorator.js +2 -0
  649. package/mobile/lib/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  650. package/mobile/lib/BlockRenderer/getParentBlockContent.d.ts +2 -0
  651. package/mobile/lib/BlockRenderer/getParentBlockContent.js +6 -0
  652. package/mobile/lib/BlockRenderer/getParentBlockContent.js.map +1 -0
  653. package/mobile/lib/BlockRenderer/getParentBlockDef.d.ts +3 -0
  654. package/mobile/lib/BlockRenderer/getParentBlockDef.js +4 -0
  655. package/mobile/lib/BlockRenderer/getParentBlockDef.js.map +1 -0
  656. package/mobile/lib/BlockRenderer/renderBlock.d.ts +3 -0
  657. package/mobile/lib/BlockRenderer/renderBlock.js +24 -0
  658. package/mobile/lib/BlockRenderer/renderBlock.js.map +1 -0
  659. package/mobile/lib/BlockRenderer/renderBlockList.d.ts +9 -0
  660. package/mobile/lib/BlockRenderer/renderBlockList.js +11 -0
  661. package/mobile/lib/BlockRenderer/renderBlockList.js.map +1 -0
  662. package/mobile/lib/BlockRenderer/renderChildren.d.ts +10 -0
  663. package/mobile/lib/BlockRenderer/renderChildren.js +10 -0
  664. package/mobile/lib/BlockRenderer/renderChildren.js.map +1 -0
  665. package/mobile/lib/components/Accordion/Accordion.js +3 -1
  666. package/mobile/lib/components/Accordion/Accordion.js.map +1 -1
  667. package/mobile/lib/components/AccordionItem/AccordionItem.js +7 -5
  668. package/mobile/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  669. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  670. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  671. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  672. package/mobile/lib/components/Calculator/Calculator.js +23 -23
  673. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  674. package/mobile/lib/components/Calculator/CalculatorValueBlock.js +1 -3
  675. package/mobile/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  676. package/mobile/lib/components/CardTransfer/CardTransfer.js +3 -2
  677. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  678. package/mobile/lib/components/Carousel/Carousel.d.ts +1 -0
  679. package/mobile/lib/components/Carousel/Carousel.js +16 -14
  680. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  681. package/mobile/lib/components/Carousel/CarouselContainer.d.ts +8 -5
  682. package/mobile/lib/components/Carousel/CarouselContainer.js +8 -5
  683. package/mobile/lib/components/Carousel/CarouselContainer.js.map +1 -1
  684. package/mobile/lib/components/Carousel/CarouselContent.d.ts +5 -8
  685. package/mobile/lib/components/Carousel/CarouselContent.js +0 -3
  686. package/mobile/lib/components/Carousel/CarouselContent.js.map +1 -1
  687. package/mobile/lib/components/CarouselCard/CarouselCard.d.ts +0 -2
  688. package/mobile/lib/components/CarouselCard/CarouselCard.js +4 -11
  689. package/mobile/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  690. package/mobile/lib/components/CarouselLinks/CarouselLinks.js +9 -9
  691. package/mobile/lib/components/CarouselLinks/CarouselLinks.js.map +1 -1
  692. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  693. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  694. package/mobile/lib/components/Catalog/Catalog.js +8 -11
  695. package/mobile/lib/components/Catalog/Catalog.js.map +1 -1
  696. package/mobile/lib/components/ComparisonTable/ComparisonTable.js +2 -2
  697. package/mobile/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  698. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.js +4 -4
  699. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  700. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  701. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  702. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  703. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  704. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js +8 -7
  705. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  706. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  707. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.js +1 -1
  708. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  709. package/mobile/lib/components/ComparisonTable/TableRow.d.ts +1 -1
  710. package/mobile/lib/components/ComparisonTable/TableRow.js +1 -1
  711. package/mobile/lib/components/ComparisonTable/TableRow.js.map +1 -1
  712. package/mobile/lib/components/ComparisonTable/constants.d.ts +1 -1
  713. package/mobile/lib/components/ComparisonTable/constants.js +1 -1
  714. package/mobile/lib/components/ContactsBlock/ContactsBlock.js +3 -5
  715. package/mobile/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  716. package/mobile/lib/components/ContentPage/ContentPage.js +13 -7
  717. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  718. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +1 -3
  719. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  720. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -4
  721. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  722. package/mobile/lib/components/Footer/Footer.js +2 -2
  723. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  724. package/mobile/lib/components/Gallery/GalleryCardInner.js +2 -4
  725. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  726. package/mobile/lib/components/Gallery/GalleryContainer.d.ts +1 -1
  727. package/mobile/lib/components/Gallery/GalleryContainer.js +1 -3
  728. package/mobile/lib/components/Gallery/GalleryContainer.js.map +1 -1
  729. package/mobile/lib/components/Gallery/GalleryInner.js +9 -12
  730. package/mobile/lib/components/Gallery/GalleryInner.js.map +1 -1
  731. package/mobile/lib/components/Header/Header.js +2 -3
  732. package/mobile/lib/components/Header/Header.js.map +1 -1
  733. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +24 -26
  734. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  735. package/mobile/lib/components/InvestmentGallery/InvestmentGallery.js +10 -20
  736. package/mobile/lib/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  737. package/mobile/lib/components/InvestmentGallery/InvestmentGalleryCard.js +1 -2
  738. package/mobile/lib/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -1
  739. package/mobile/lib/components/OtherProducts/OtherProducts.js +2 -1
  740. package/mobile/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  741. package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js +5 -4
  742. package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  743. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  744. package/mobile/lib/components/Recommendation/Recommendation.js +11 -21
  745. package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
  746. package/mobile/lib/components/Recommendation/RecommendationCard.js +1 -2
  747. package/mobile/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  748. package/mobile/lib/components/RollupItem/RollupItem.js +5 -3
  749. package/mobile/lib/components/RollupItem/RollupItem.js.map +1 -1
  750. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  751. package/mobile/lib/components/TariffsTable/TariffsTable.js +1 -1
  752. package/mobile/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  753. package/mobile/lib/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  754. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +2 -2
  755. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  756. package/mobile/lib/components/Tile/Tile.js +2 -2
  757. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  758. package/mobile/lib/components/VerticalLayout/VerticalLayout.js +3 -2
  759. package/mobile/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  760. package/mobile/lib/components/Video/Video.d.ts +6 -0
  761. package/mobile/lib/components/Video/Video.js +10 -0
  762. package/mobile/lib/components/Video/Video.js.map +1 -0
  763. package/mobile/lib/components/Video/VideoContent.d.ts +8 -0
  764. package/mobile/lib/components/Video/VideoContent.js +2 -0
  765. package/mobile/lib/components/Video/VideoContent.js.map +1 -0
  766. package/mobile/lib/components/Video/getPaddings.d.ts +1 -0
  767. package/mobile/lib/components/Video/getPaddings.js +4 -0
  768. package/mobile/lib/components/Video/getPaddings.js.map +1 -0
  769. package/mobile/lib/hooks/useCarouselControls.d.ts +5 -3
  770. package/mobile/lib/hooks/useCarouselControls.js +19 -8
  771. package/mobile/lib/hooks/useCarouselControls.js.map +1 -1
  772. package/mobile/lib/model/JSXBlock.d.ts +4 -5
  773. package/mobile/lib/model/LinkProps.d.ts +1 -0
  774. package/mobile/lib/model/Picture.d.ts +8 -2
  775. package/mobile/lib/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  776. package/mobile/lib/{react/setup-fixture.js → setup-fixture.js} +4 -4
  777. package/mobile/lib/setup-fixture.js.map +1 -0
  778. package/mobile/lib/ui-kit/Button/renderArrows.d.ts +6 -4
  779. package/mobile/lib/ui-kit/Button/renderArrows.js +3 -2
  780. package/mobile/lib/ui-kit/Button/renderArrows.js.map +1 -1
  781. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  782. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  783. package/mobile/lib/ui-kit/Paragraph/Paragraph.d.ts +9 -0
  784. package/mobile/lib/ui-kit/Paragraph/Paragraph.js +8 -0
  785. package/mobile/lib/ui-kit/Paragraph/Paragraph.js.map +1 -0
  786. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +6 -3
  787. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  788. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  789. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  790. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  791. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  792. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  793. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  794. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  795. package/mobile/lib/ui-kit/Text/Text.d.ts +34 -0
  796. package/mobile/lib/ui-kit/Text/Text.js +8 -0
  797. package/mobile/lib/ui-kit/Text/Text.js.map +1 -0
  798. package/mobile/src/BlockRenderer/BlockRendererOptions.ts +12 -0
  799. package/mobile/src/BlockRenderer/defaultBlockDecorator.ts +4 -0
  800. package/mobile/src/{model → BlockRenderer}/getParentBlockContent.ts +3 -3
  801. package/mobile/src/BlockRenderer/getParentBlockDef.ts +6 -0
  802. package/mobile/src/BlockRenderer/renderBlock.tsx +47 -0
  803. package/mobile/src/BlockRenderer/renderBlockList.tsx +33 -0
  804. package/mobile/src/BlockRenderer/renderChildren.ts +25 -0
  805. package/mobile/src/components/Accordion/Accordion.tsx +12 -7
  806. package/mobile/src/components/AccordionItem/AccordionItem.tsx +12 -8
  807. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -0
  808. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +31 -18
  809. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +6 -3
  810. package/mobile/src/components/Calculator/Calculator.tsx +32 -33
  811. package/mobile/src/components/Calculator/CalculatorValueBlock.tsx +10 -12
  812. package/mobile/src/components/CardTransfer/CardTransfer.tsx +3 -2
  813. package/mobile/src/components/Carousel/Carousel.example.json +2 -2
  814. package/mobile/src/components/Carousel/Carousel.tsx +29 -40
  815. package/mobile/src/components/Carousel/CarouselContainer.tsx +19 -12
  816. package/mobile/src/components/Carousel/CarouselContent.ts +5 -9
  817. package/mobile/src/components/CarouselCard/CarouselCard.tsx +22 -34
  818. package/mobile/src/components/CarouselLinks/CarouselLinks.tsx +30 -24
  819. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +3 -3
  820. package/mobile/src/components/Catalog/Catalog.tsx +8 -13
  821. package/mobile/src/components/ComparisonTable/ComparisonTable.tsx +2 -2
  822. package/mobile/src/components/ComparisonTable/ComparisonTableBody.tsx +6 -7
  823. package/mobile/src/components/ComparisonTable/ComparisonTableColumnHeaders.tsx +3 -3
  824. package/mobile/src/components/ComparisonTable/ComparisonTableRows.tsx +10 -14
  825. package/mobile/src/components/ComparisonTable/TableCarouselContainer.tsx +3 -3
  826. package/mobile/src/components/ComparisonTable/TableRow.tsx +3 -3
  827. package/mobile/src/components/ComparisonTable/constants.ts +1 -1
  828. package/mobile/src/components/ContactsBlock/ContactsBlock.tsx +10 -13
  829. package/mobile/src/components/ContentPage/ContentPage.tsx +21 -20
  830. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +12 -14
  831. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +5 -4
  832. package/mobile/src/components/Footer/Footer.tsx +3 -3
  833. package/mobile/src/components/Gallery/GalleryCardInner.tsx +12 -14
  834. package/mobile/src/components/Gallery/GalleryContainer.tsx +14 -16
  835. package/mobile/src/components/Gallery/GalleryInner.tsx +9 -22
  836. package/mobile/src/components/Header/Header.tsx +3 -4
  837. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +29 -42
  838. package/mobile/src/components/InvestmentGallery/InvestmentGallery.tsx +12 -34
  839. package/mobile/src/components/InvestmentGallery/InvestmentGalleryCard.tsx +2 -3
  840. package/mobile/src/components/OtherProducts/OtherProducts.tsx +3 -2
  841. package/mobile/src/components/OtherProductsItem/OtherProductsItem.tsx +6 -5
  842. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  843. package/mobile/src/components/Recommendation/Recommendation.tsx +12 -36
  844. package/mobile/src/components/Recommendation/RecommendationCard.tsx +1 -2
  845. package/mobile/src/components/RollupItem/RollupItem.tsx +9 -7
  846. package/mobile/src/components/SafeDepositRental/SafeDepositRentalContent.ts +1 -5
  847. package/mobile/src/components/TariffsTable/TariffsTable.tsx +1 -1
  848. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +3 -3
  849. package/mobile/src/components/Tile/Tile.tsx +4 -2
  850. package/mobile/src/components/VerticalLayout/VerticalLayout.tsx +3 -2
  851. package/mobile/src/components/Video/Video.tsx +29 -0
  852. package/mobile/src/components/Video/Video.ui.json +12 -0
  853. package/mobile/src/components/Video/VideoContent.ts +9 -0
  854. package/mobile/src/components/Video/getPaddings.ts +6 -0
  855. package/mobile/src/hooks/useCarouselControls.ts +33 -19
  856. package/mobile/src/model/JSXBlock.ts +4 -5
  857. package/mobile/src/model/LinkProps.ts +1 -0
  858. package/mobile/src/model/Picture.ts +8 -2
  859. package/{src/react → mobile/src}/setup-fixture.ts +4 -4
  860. package/mobile/src/ui-kit/Button/renderArrows.tsx +22 -17
  861. package/mobile/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +9 -13
  862. package/mobile/src/ui-kit/Paragraph/Paragraph.tsx +17 -0
  863. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +35 -28
  864. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +32 -27
  865. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlList.tsx +10 -8
  866. package/mobile/src/ui-kit/TableArrowScrollControl/TableArrowScrollControl.tsx +5 -3
  867. package/mobile/src/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.ts +2 -1
  868. package/mobile/src/ui-kit/Text/Text.tsx +79 -0
  869. package/package.json +1 -1
  870. package/src/BlockRenderer/BlockRendererOptions.ts +12 -0
  871. package/src/BlockRenderer/defaultBlockDecorator.ts +4 -0
  872. package/src/{model → BlockRenderer}/getParentBlockContent.ts +3 -3
  873. package/src/BlockRenderer/getParentBlockDef.ts +6 -0
  874. package/src/BlockRenderer/renderBlock.tsx +47 -0
  875. package/src/BlockRenderer/renderBlockList.tsx +33 -0
  876. package/src/BlockRenderer/renderChildren.ts +25 -0
  877. package/src/components/Accordion/Accordion.fixture.mobile.tsx +40 -55
  878. package/src/components/Accordion/Accordion.fixture.tsx +79 -52
  879. package/src/components/Accordion/Accordion.mobile.tsx +12 -7
  880. package/src/components/Accordion/Accordion.tsx +10 -4
  881. package/src/components/AccordionItem/AccordionItem.fixture.mobile.tsx +13 -2
  882. package/src/components/AccordionItem/AccordionItem.fixture.tsx +12 -1
  883. package/src/components/AccordionItem/AccordionItem.mobile.tsx +12 -8
  884. package/src/components/AccordionItem/AccordionItem.tsx +7 -3
  885. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +1 -1
  886. package/src/components/Blocks.ts +3 -1
  887. package/src/components/Bonus/Bonus.fixture.tsx +1 -1
  888. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -0
  889. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.tsx +12 -1
  890. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +31 -18
  891. package/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +6 -3
  892. package/src/components/BusinessBlock/BusinessBlock.fixture.tsx +1 -1
  893. package/src/components/Calculator/Calculator.fixture.tsx +1 -1
  894. package/src/components/Calculator/Calculator.tsx +32 -33
  895. package/src/components/Calculator/CalculatorValueBlock.tsx +10 -12
  896. package/src/components/CardTransfer/CardTransfer.fixture.tsx +1 -1
  897. package/src/components/CardTransfer/CardTransfer.tsx +3 -2
  898. package/src/components/Carousel/Carousel.example.json +2 -2
  899. package/src/components/Carousel/Carousel.fixture.tsx +38 -45
  900. package/src/components/Carousel/Carousel.tsx +29 -40
  901. package/src/components/Carousel/CarouselContainer.tsx +19 -12
  902. package/src/components/Carousel/CarouselContent.ts +5 -9
  903. package/src/components/CarouselCard/CarouselCard.fixture.tsx +9 -4
  904. package/src/components/CarouselCard/CarouselCard.tsx +22 -34
  905. package/src/components/CarouselLinks/CarouselLinks.tsx +30 -24
  906. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +3 -3
  907. package/src/components/Catalog/Catalog.fixture.tsx +1 -1
  908. package/src/components/Catalog/Catalog.tsx +8 -13
  909. package/src/components/ComparisonTable/ComparisonTable.fixture.mobile.tsx +1 -1
  910. package/src/components/ComparisonTable/ComparisonTable.fixture.tsx +2 -2
  911. package/src/components/ComparisonTable/ComparisonTable.mobile.tsx +2 -2
  912. package/src/components/ComparisonTable/ComparisonTableBody.tsx +6 -7
  913. package/src/components/ComparisonTable/ComparisonTableColumnHeaders.tsx +3 -3
  914. package/src/components/ComparisonTable/ComparisonTableRows.tsx +10 -14
  915. package/src/components/ComparisonTable/TableCarouselContainer.tsx +3 -3
  916. package/src/components/ComparisonTable/TableRow.tsx +3 -3
  917. package/src/components/ComparisonTable/constants.ts +1 -1
  918. package/src/components/ContactsBlock/ContactsBlock.fixture.tsx +1 -1
  919. package/src/components/ContactsBlock/ContactsBlock.tsx +10 -13
  920. package/src/components/ContentPage/ContentPage.fixture.mobile.tsx +1 -1
  921. package/src/components/ContentPage/ContentPage.fixture.tsx +1 -1
  922. package/src/components/ContentPage/ContentPage.tsx +21 -20
  923. package/src/components/ErrorBlock/ErrorBlock.fixture.tsx +1 -1
  924. package/src/components/ExchangeRateTile/CurrencyTable.tsx +12 -14
  925. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +5 -4
  926. package/src/components/ExchangeRateTile/ExchangeRateTile.fixture.tsx +1 -1
  927. package/src/components/Footer/Footer.fixture.mobile.tsx +1 -1
  928. package/src/components/Footer/Footer.fixture.tsx +1 -1
  929. package/src/components/Footer/Footer.mobile.tsx +3 -3
  930. package/src/components/Footer/Footer.tsx +1 -1
  931. package/src/components/Gallery/Gallery.fixture.mobile.tsx +1 -1
  932. package/src/components/Gallery/Gallery.fixture.tsx +1 -1
  933. package/src/components/Gallery/GalleryCardInner.tsx +12 -14
  934. package/src/components/Gallery/GalleryContainer.tsx +14 -16
  935. package/src/components/Gallery/GalleryInner.tsx +9 -22
  936. package/src/components/GracePeriod/GracePeriod.fixture.tsx +1 -1
  937. package/src/components/Header/Header.fixture.mobile.tsx +1 -1
  938. package/src/components/Header/Header.fixture.tsx +1 -1
  939. package/src/components/Header/Header.mobile.tsx +3 -4
  940. package/src/components/Header/Header.tsx +1 -1
  941. package/src/components/Headline/Headline.fixture.mobile.tsx +1 -1
  942. package/src/components/Headline/Headline.fixture.tsx +1 -1
  943. package/src/components/Headline/Headline.tsx +3 -5
  944. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +1 -1
  945. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +29 -42
  946. package/src/components/InvestmentGallery/InvestmentGallery.fixture.tsx +1 -1
  947. package/src/components/InvestmentGallery/InvestmentGallery.tsx +12 -34
  948. package/src/components/InvestmentGallery/InvestmentGalleryCard.tsx +2 -3
  949. package/src/components/InvestmentInfo/InvestmentInfo.fixture.tsx +1 -1
  950. package/src/components/LikeControl/LikeControl.fixture.tsx +1 -1
  951. package/src/components/LinkDocs/LinkDocs.fixture.mobile.tsx +1 -1
  952. package/src/components/LinkDocs/LinkDocs.fixture.tsx +1 -1
  953. package/src/components/LinkList/LinkList.fixture.tsx +1 -1
  954. package/src/components/MiniGallery/MiniGallery.fixture.tsx +1 -1
  955. package/src/components/MobileAppTile/MobileAppTile.fixture.mobile.tsx +1 -1
  956. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +1 -1
  957. package/src/components/MobileAppTile/MobileAppTile.tsx +5 -5
  958. package/src/components/OfficeMap/OfficeMap.fixture.tsx +1 -1
  959. package/src/components/OfficeServicesBlock/OfficeServicesBlock.fixture.tsx +1 -1
  960. package/src/components/OtherProducts/OtherProducts.fixture.tsx +86 -76
  961. package/src/components/OtherProducts/OtherProducts.tsx +3 -2
  962. package/src/components/OtherProductsItem/OtherProductsItem.fixture.tsx +16 -1
  963. package/src/components/OtherProductsItem/OtherProductsItem.tsx +6 -5
  964. package/src/components/PictureText/PictureText.fixture.tsx +1 -1
  965. package/src/components/Placeholder/Placeholder.fixture.mobile.tsx +1 -1
  966. package/src/components/Placeholder/Placeholder.fixture.tsx +1 -1
  967. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +1 -1
  968. package/src/components/ProductBlock/ProductBlock.fixture.tsx +13 -1
  969. package/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  970. package/src/components/ProductBlock/ProductBlockInner.tsx +26 -22
  971. package/src/components/ProductGallery/ProductGallery.fixture.tsx +1 -1
  972. package/src/components/ProductTile/ProductTile.fixture.tsx +1 -1
  973. package/src/components/PromoTile/PromoTile.fixture.tsx +1 -1
  974. package/src/components/Recommendation/Recommendation.fixture.tsx +1 -1
  975. package/src/components/Recommendation/Recommendation.tsx +12 -36
  976. package/src/components/Recommendation/RecommendationCard.tsx +1 -2
  977. package/src/components/RollupItem/RollupItem.fixture.tsx +44 -11
  978. package/src/components/RollupItem/RollupItem.tsx +9 -7
  979. package/src/components/SafeDepositRental/SafeDepositRental.fixture.tsx +1 -1
  980. package/src/components/SafeDepositRental/SafeDepositRentalContent.ts +1 -5
  981. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +1 -1
  982. package/src/components/StepsBlock/StepsBlock.fixture.tsx +1 -1
  983. package/src/components/StepsBlock/StepsBlock.tsx +1 -1
  984. package/src/components/Tabs/Tabs.fixture.tsx +1 -1
  985. package/src/components/TariffsTable/TariffsTable.fixture.mobile.tsx +1 -1
  986. package/src/components/TariffsTable/TariffsTable.fixture.tsx +1 -1
  987. package/src/components/TariffsTable/TariffsTable.mobile.tsx +1 -1
  988. package/src/components/TariffsTable/TariffsTable.tsx +21 -38
  989. package/src/components/TariffsTable/TariffsTableRow.tsx +3 -3
  990. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +1 -1
  991. package/src/components/TextBlock/TextBlock.fixture.tsx +1 -1
  992. package/src/components/Tile/Tile.fixture.tsx +1 -1
  993. package/src/components/Tile/Tile.tsx +4 -2
  994. package/src/components/VerticalLayout/VerticalLayout.fixture.tsx +126 -47
  995. package/src/components/VerticalLayout/VerticalLayout.tsx +3 -2
  996. package/src/components/Video/Video.fixture.tsx +33 -0
  997. package/src/components/Video/Video.tsx +29 -0
  998. package/src/components/Video/Video.ui.json +12 -0
  999. package/src/components/Video/VideoContent.ts +9 -0
  1000. package/src/components/Video/getPaddings.ts +6 -0
  1001. package/src/hooks/useCarouselControls.ts +33 -19
  1002. package/src/model/JSXBlock.ts +4 -5
  1003. package/src/model/LinkProps.ts +1 -0
  1004. package/src/model/Picture.ts +8 -2
  1005. package/{mobile/src/react → src}/setup-fixture.ts +4 -4
  1006. package/src/ui-kit/Button/Button.fixture.tsx +1 -1
  1007. package/src/ui-kit/Button/renderArrows.tsx +22 -17
  1008. package/src/ui-kit/HeaderItem/HeaderItem.fixture.tsx +1 -1
  1009. package/src/ui-kit/Icon/Icon.fixture.tsx +1 -1
  1010. package/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +9 -13
  1011. package/src/ui-kit/List/List.fixture.tsx +1 -1
  1012. package/src/ui-kit/Logo/Logo.fixture.tsx +1 -1
  1013. package/src/ui-kit/Paragraph/Paragraph.tsx +17 -0
  1014. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.fixture.tsx +1 -1
  1015. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +24 -8
  1016. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +35 -28
  1017. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +32 -27
  1018. package/src/ui-kit/SwipeListControl/SwipeListControlList.tsx +10 -8
  1019. package/src/ui-kit/TableArrowScrollControl/TableArrowScrollControl.tsx +5 -3
  1020. package/src/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.ts +2 -1
  1021. package/src/ui-kit/Text/Text.tsx +79 -0
  1022. package/src/ui-kit/TopItem/TopItem.fixture.tsx +1 -1
  1023. package/bundle/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1024. package/bundle/components/ContentPage/renderBlock.d.ts +0 -15
  1025. package/bundle/components/ContentPage/renderBlockList.d.ts +0 -14
  1026. package/bundle/components/ContentPage/renderSlots.d.ts +0 -12
  1027. package/bundle/model/getParentBlockContent.d.ts +0 -2
  1028. package/bundle/model/getParentBlockDef.d.ts +0 -3
  1029. package/bundle/ui-kit/Description/Description.d.ts +0 -5
  1030. package/bundle/utils/sliceArray.d.ts +0 -1
  1031. package/dist/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1032. package/dist/components/Carousel/CarouselNavButtons.js +0 -36
  1033. package/dist/components/Carousel/CarouselNavButtons.js.map +0 -1
  1034. package/dist/components/ContentPage/renderBlock.d.ts +0 -15
  1035. package/dist/components/ContentPage/renderBlock.js +0 -29
  1036. package/dist/components/ContentPage/renderBlock.js.map +0 -1
  1037. package/dist/components/ContentPage/renderBlockList.d.ts +0 -14
  1038. package/dist/components/ContentPage/renderBlockList.js +0 -11
  1039. package/dist/components/ContentPage/renderBlockList.js.map +0 -1
  1040. package/dist/components/ContentPage/renderSlots.d.ts +0 -12
  1041. package/dist/components/ContentPage/renderSlots.js +0 -15
  1042. package/dist/components/ContentPage/renderSlots.js.map +0 -1
  1043. package/dist/model/getParentBlockContent.d.ts +0 -2
  1044. package/dist/model/getParentBlockContent.js.map +0 -1
  1045. package/dist/model/getParentBlockDef.d.ts +0 -3
  1046. package/dist/model/getParentBlockDef.js +0 -11
  1047. package/dist/model/getParentBlockDef.js.map +0 -1
  1048. package/dist/react/setup-fixture.js.map +0 -1
  1049. package/dist/ui-kit/Description/Description.d.ts +0 -5
  1050. package/dist/ui-kit/Description/Description.js +0 -9
  1051. package/dist/ui-kit/Description/Description.js.map +0 -1
  1052. package/dist/utils/sliceArray.d.ts +0 -1
  1053. package/dist/utils/sliceArray.js +0 -15
  1054. package/dist/utils/sliceArray.js.map +0 -1
  1055. package/lib/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1056. package/lib/components/Carousel/CarouselNavButtons.js +0 -34
  1057. package/lib/components/Carousel/CarouselNavButtons.js.map +0 -1
  1058. package/lib/components/ContentPage/renderBlock.d.ts +0 -15
  1059. package/lib/components/ContentPage/renderBlock.js +0 -26
  1060. package/lib/components/ContentPage/renderBlock.js.map +0 -1
  1061. package/lib/components/ContentPage/renderBlockList.d.ts +0 -14
  1062. package/lib/components/ContentPage/renderBlockList.js +0 -8
  1063. package/lib/components/ContentPage/renderBlockList.js.map +0 -1
  1064. package/lib/components/ContentPage/renderSlots.d.ts +0 -12
  1065. package/lib/components/ContentPage/renderSlots.js +0 -12
  1066. package/lib/components/ContentPage/renderSlots.js.map +0 -1
  1067. package/lib/model/getParentBlockContent.d.ts +0 -2
  1068. package/lib/model/getParentBlockContent.js +0 -6
  1069. package/lib/model/getParentBlockContent.js.map +0 -1
  1070. package/lib/model/getParentBlockDef.d.ts +0 -3
  1071. package/lib/model/getParentBlockDef.js +0 -8
  1072. package/lib/model/getParentBlockDef.js.map +0 -1
  1073. package/lib/react/setup-fixture.js.map +0 -1
  1074. package/lib/ui-kit/Description/Description.d.ts +0 -5
  1075. package/lib/ui-kit/Description/Description.js +0 -7
  1076. package/lib/ui-kit/Description/Description.js.map +0 -1
  1077. package/lib/utils/sliceArray.d.ts +0 -1
  1078. package/lib/utils/sliceArray.js +0 -12
  1079. package/lib/utils/sliceArray.js.map +0 -1
  1080. package/mobile/bundle/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1081. package/mobile/bundle/components/ContentPage/renderBlock.d.ts +0 -15
  1082. package/mobile/bundle/components/ContentPage/renderBlockList.d.ts +0 -14
  1083. package/mobile/bundle/components/ContentPage/renderSlots.d.ts +0 -12
  1084. package/mobile/bundle/model/getParentBlockContent.d.ts +0 -2
  1085. package/mobile/bundle/model/getParentBlockDef.d.ts +0 -3
  1086. package/mobile/bundle/ui-kit/Description/Description.d.ts +0 -5
  1087. package/mobile/bundle/utils/sliceArray.d.ts +0 -1
  1088. package/mobile/dist/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1089. package/mobile/dist/components/Carousel/CarouselNavButtons.js +0 -36
  1090. package/mobile/dist/components/Carousel/CarouselNavButtons.js.map +0 -1
  1091. package/mobile/dist/components/ContentPage/renderBlock.d.ts +0 -15
  1092. package/mobile/dist/components/ContentPage/renderBlock.js +0 -29
  1093. package/mobile/dist/components/ContentPage/renderBlock.js.map +0 -1
  1094. package/mobile/dist/components/ContentPage/renderBlockList.d.ts +0 -14
  1095. package/mobile/dist/components/ContentPage/renderBlockList.js +0 -11
  1096. package/mobile/dist/components/ContentPage/renderBlockList.js.map +0 -1
  1097. package/mobile/dist/components/ContentPage/renderSlots.d.ts +0 -12
  1098. package/mobile/dist/components/ContentPage/renderSlots.js +0 -15
  1099. package/mobile/dist/components/ContentPage/renderSlots.js.map +0 -1
  1100. package/mobile/dist/model/getParentBlockContent.d.ts +0 -2
  1101. package/mobile/dist/model/getParentBlockContent.js.map +0 -1
  1102. package/mobile/dist/model/getParentBlockDef.d.ts +0 -3
  1103. package/mobile/dist/model/getParentBlockDef.js +0 -11
  1104. package/mobile/dist/model/getParentBlockDef.js.map +0 -1
  1105. package/mobile/dist/react/setup-fixture.js.map +0 -1
  1106. package/mobile/dist/ui-kit/Description/Description.d.ts +0 -5
  1107. package/mobile/dist/ui-kit/Description/Description.js +0 -9
  1108. package/mobile/dist/ui-kit/Description/Description.js.map +0 -1
  1109. package/mobile/dist/utils/sliceArray.d.ts +0 -1
  1110. package/mobile/dist/utils/sliceArray.js +0 -15
  1111. package/mobile/dist/utils/sliceArray.js.map +0 -1
  1112. package/mobile/lib/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1113. package/mobile/lib/components/Carousel/CarouselNavButtons.js +0 -34
  1114. package/mobile/lib/components/Carousel/CarouselNavButtons.js.map +0 -1
  1115. package/mobile/lib/components/ContentPage/renderBlock.d.ts +0 -15
  1116. package/mobile/lib/components/ContentPage/renderBlock.js +0 -26
  1117. package/mobile/lib/components/ContentPage/renderBlock.js.map +0 -1
  1118. package/mobile/lib/components/ContentPage/renderBlockList.d.ts +0 -14
  1119. package/mobile/lib/components/ContentPage/renderBlockList.js +0 -8
  1120. package/mobile/lib/components/ContentPage/renderBlockList.js.map +0 -1
  1121. package/mobile/lib/components/ContentPage/renderSlots.d.ts +0 -12
  1122. package/mobile/lib/components/ContentPage/renderSlots.js +0 -12
  1123. package/mobile/lib/components/ContentPage/renderSlots.js.map +0 -1
  1124. package/mobile/lib/model/getParentBlockContent.d.ts +0 -2
  1125. package/mobile/lib/model/getParentBlockContent.js +0 -6
  1126. package/mobile/lib/model/getParentBlockContent.js.map +0 -1
  1127. package/mobile/lib/model/getParentBlockDef.d.ts +0 -3
  1128. package/mobile/lib/model/getParentBlockDef.js +0 -8
  1129. package/mobile/lib/model/getParentBlockDef.js.map +0 -1
  1130. package/mobile/lib/react/setup-fixture.js.map +0 -1
  1131. package/mobile/lib/ui-kit/Description/Description.d.ts +0 -5
  1132. package/mobile/lib/ui-kit/Description/Description.js +0 -7
  1133. package/mobile/lib/ui-kit/Description/Description.js.map +0 -1
  1134. package/mobile/lib/utils/sliceArray.d.ts +0 -1
  1135. package/mobile/lib/utils/sliceArray.js +0 -12
  1136. package/mobile/lib/utils/sliceArray.js.map +0 -1
  1137. package/mobile/src/components/Carousel/CarouselNavButtons.tsx +0 -51
  1138. package/mobile/src/components/ContentPage/renderBlock.tsx +0 -61
  1139. package/mobile/src/components/ContentPage/renderBlockList.tsx +0 -28
  1140. package/mobile/src/components/ContentPage/renderSlots.tsx +0 -32
  1141. package/mobile/src/model/getParentBlockDef.ts +0 -12
  1142. package/mobile/src/ui-kit/Description/Description.tsx +0 -12
  1143. package/mobile/src/utils/sliceArray.ts +0 -15
  1144. package/src/components/Carousel/CarouselNavButtons.tsx +0 -51
  1145. package/src/components/ContentPage/renderBlock.tsx +0 -61
  1146. package/src/components/ContentPage/renderBlockList.tsx +0 -28
  1147. package/src/components/ContentPage/renderSlots.tsx +0 -32
  1148. package/src/model/.CarouselCardVersion.ts.icloud +0 -0
  1149. package/src/model/getParentBlockDef.ts +0 -12
  1150. package/src/ui-kit/Description/Description.tsx +0 -12
  1151. package/src/utils/sliceArray.ts +0 -15
@@ -231,6 +231,53 @@
231
231
  return JSXTmpl;
232
232
  };
233
233
 
234
+ const DEFAULT_SLOT_NAME = null;
235
+
236
+ function style2className(style) {
237
+ return style ? style.filter(Boolean).join(' ') : '';
238
+ }
239
+
240
+ const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
241
+
242
+ const DEFAULT_ANCESTORS = [];
243
+ const DEFAULT_STYLE = ['col-span-12'];
244
+ function renderBlock(block, options) {
245
+ const { key, blockDecorator = defaultBlockDecorator, blocksRegistry = {}, ancestors = DEFAULT_ANCESTORS, } = options;
246
+ const { type } = block;
247
+ if (!(type && type in blocksRegistry)) {
248
+ console.warn(`No block with "${type}" is registered`);
249
+ }
250
+ const BlockComponent = type && blocksRegistry[type];
251
+ return blockDecorator({
252
+ blockClassName: `scroll-mt-12 ${style2className(block.style || DEFAULT_STYLE)}`,
253
+ block,
254
+ ancestors,
255
+ // Adjusted by decorator block and blockClassName
256
+ render: ({ block: adjustedBlock, blockClassName: adjustedBlockClassName }) => {
257
+ const { content } = adjustedBlock;
258
+ return BlockComponent ? (jsx(BlockComponent, { className: adjustedBlockClassName, block: block, options: options, ...content }, key)) : null;
259
+ },
260
+ }, key);
261
+ }
262
+
263
+ const EMPTY_ANCESTORS = [];
264
+ const renderBlocksList = (blocks, { key, ancestors = EMPTY_ANCESTORS, slotName = DEFAULT_SLOT_NAME, renderChild = renderBlock, ...options }) => (blocks || []).map((_, j) => renderChild(_, {
265
+ ...options,
266
+ key: `${key ? key : _.type}-${j}`,
267
+ ancestors: options.parent
268
+ ? [...(ancestors || EMPTY_ANCESTORS), [options.parent, slotName]]
269
+ : ancestors,
270
+ }));
271
+
272
+ function renderChildren({ children, block, options, renderChild, }) {
273
+ if (children) {
274
+ return children;
275
+ }
276
+ return block && options
277
+ ? renderBlocksList(block.blocks, { ...options, parent: block, renderChild })
278
+ : null;
279
+ }
280
+
234
281
  const AlignText = {
235
282
  left: 'text-left',
236
283
  center: 'text-center',
@@ -349,9 +396,15 @@
349
396
  return (jsx(Tag, { className: `font-sans m-0 ${HEADING_STYLE_MAP[headingType]} ${className}`, children: title }));
350
397
  });
351
398
 
399
+ const Paragraph = JSX((props) => {
400
+ const { size = '', color = '', align = '', font = '', children } = props;
401
+ const textClasses = `font-sans ${size} ${color} ${align} ${font}`;
402
+ return jsx("p", { className: textClasses, children: children });
403
+ });
404
+
352
405
  const AccordionItemsList = JSX(({ children }) => (jsx("ul", { className: "list-none m-0 p-0", children: children })));
353
406
 
354
- const Accordion = JSX(({ className = '', title, accordionAlignTitle = 'center', description, children, ...rest }) => (jsxs(BlockWrapper, { className: `p-[50px] mb-1 last:mb-0 font-sans bg-white text-primary-text ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `mb-2.5 ${AlignText[accordionAlignTitle]}`, title: title })) : null, description ? jsx("div", { className: "mb-2.5 text-l", children: description }) : null, jsx(AccordionItemsList, { children: children })] })));
407
+ const Accordion = JSX(({ className = '', title, accordionAlignTitle = 'center', description, ...rest }) => (jsxs(BlockWrapper, { className: `p-[50px] mb-1 last:mb-0 bg-white text-primary-text ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `mb-2.5 ${AlignText[accordionAlignTitle]}`, title: title })) : null, description ? (jsx("div", { className: "mb-2.5", children: jsx(Paragraph, { size: "text-l", children: description }) })) : null, jsx(AccordionItemsList, { children: renderChildren(rest) })] })));
355
408
  Accordion.childrenTypes = ['AccordionItem'];
356
409
 
357
410
  const Foldable = JSX(({ isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
@@ -445,57 +498,54 @@
445
498
  return (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, isMobile: isMobile }));
446
499
  });
447
500
 
501
+ const Text = JSX((props) => {
502
+ const { size = '', color = '', align = '', font = '', children } = props;
503
+ const textClasses = `font-sans ${size} ${color} ${align} ${font}`;
504
+ return jsx("span", { className: textClasses, children: children });
505
+ });
506
+
448
507
  const icons$1 = ['PlusIcon', 'MinusIcon'];
449
- const AccordionItem = JSX(({ className = '', label = '', isExpanded, children }) => (jsx("li", { className: `border-0 border-b border-solid border-main-divider last:border-b-0 ${className}`, children: jsx(Foldable, { isFoldButtonOnTop: true, unfoldedByDefault: isExpanded, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { className: "grid grid-cols-12 gap-5 [&>*]:p-0", isUnfolded: isUnfolded, children: children })), renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(FoldButton$1, { label: label, icon: icons$1[Number(isUnfolded)], onClick: onToggle })) }) })));
508
+ const AccordionItem = JSX(({ className = '', label = '', isExpanded, ...rest }) => (jsx("li", { className: `border-0 border-b border-solid border-main-divider last:border-b-0 ${className}`, children: jsx(Foldable, { isFoldButtonOnTop: true, unfoldedByDefault: isExpanded, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { className: "grid grid-cols-12 gap-5 [&>*]:p-0", isUnfolded: isUnfolded, children: renderChildren(rest) })), renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(FoldButton$1, { label: label, icon: icons$1[Number(isUnfolded)], onClick: onToggle })) }) })));
450
509
  AccordionItem.childrenTypes = [];
451
- const FoldButton$1 = JSX(({ label, icon, onClick }) => (jsxs("button", { className: "border-none bg-transparent px-0 pt-5 pb-3.5 flex justify-between text-left w-full font-sans text-h6 group cursor-pointer", onClick: onClick, children: [jsx("span", { className: "text-xl font-medium pr-2.5", children: label }), jsx(ImgInner, { image: icon, className: "text-primary-main flex-shrink-0", width: "24", height: "24", asSVG: true })] })));
510
+ const FoldButton$1 = JSX(({ label, icon, onClick }) => (jsxs("button", { className: "border-none bg-transparent px-0 pt-5 pb-3.5 flex justify-between text-left w-full font-sans text-h6 group cursor-pointer", onClick: onClick, children: [jsx(Text, { size: "text-xl", font: "font-medium", children: label }), jsx(ImgInner, { image: icon, className: "text-primary-main flex-shrink-0", width: "24", height: "24", asSVG: true })] })));
452
511
 
453
- const Description = JSX((props) => {
454
- const { className = '', description } = props;
455
- return jsx("div", { className: `${className}`, children: description });
456
- });
512
+ const VersionStyleMap = {
513
+ primary: 'bg-white text-primary-text',
514
+ secondary: 'bg-primary-main text-white',
515
+ };
457
516
 
458
- const LINK_CLASS_NAME = `absolute border border-primary-main ml-3 px-6 py-5
459
- text-l-light bg-white text-primary-text flex w-[316px]
460
- justify-between items-center group-hover:text-primary-main z-10`;
461
- const LINK_BORDER_CLASS_NAME = 'bg-transparent border-white border h-[70px] absolute w-[316px] top-0';
462
- const LinkButton = JSX(({ text, href = '', target = '', className = '' }) => {
463
- if (!text) {
464
- return null;
465
- }
466
- return (jsxs("div", { className: `relative group cursor-pointer w-[328px] h-[82px] ${className}`, children: [jsxs("a", { className: LINK_CLASS_NAME, role: "link", href: href, target: target, children: [jsx("div", { className: "p-0.5", children: text }), jsx("div", { className: "w-6 h-6", children: jsx(ImgInner, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border brightness-0 group-hover:brightness-100", image: { icon: 'ArrowRightIcon', iconVersion: 'black' }, imageClassName: "group-hover:text-primary-main", width: "24", height: "24", asSVG: true }) })] }), jsx("div", { className: `${LINK_BORDER_CLASS_NAME} mx-1.5 mt-1.5` }), jsx("div", { className: `${LINK_BORDER_CLASS_NAME} mt-3 mr-3` })] }));
517
+ const getIconWithVersion = (icon, version = 'primary') => ({
518
+ ...icon,
519
+ iconVersion: icon?.iconVersion ?? (version === 'secondary' ? 'white' : 'color'),
467
520
  });
468
521
 
469
- const sliceArray = (items, size) => {
470
- const result = items.reduce((resultArray, item, index) => {
471
- const chunkIndex = Math.floor(index / (size - 1));
472
- if (!resultArray[chunkIndex]) {
473
- resultArray[chunkIndex] = [item];
474
- }
475
- resultArray[chunkIndex].push(item);
476
- return resultArray;
477
- }, []);
478
- return result;
522
+ const benefitsTextStyleMap = {
523
+ primary: '',
524
+ secondary: 'text-white',
479
525
  };
480
-
481
- const useCarouselControls = ({ itemsCount, visibleItemCount = itemsCount, isCyclic, }) => {
482
- const [activeIndex, setActiveIndex] = useState(0);
483
- const inc = useCallback(() => setActiveIndex((_) => (isCyclic ? (_ + 1) % itemsCount : Math.min(_ + 1, itemsCount - 1))), [isCyclic, itemsCount]);
484
- const dec = useCallback(() => setActiveIndex((_) => (isCyclic ? (itemsCount + _ - 1) % itemsCount : Math.max(_ - 1, 0))), [isCyclic, itemsCount]);
485
- const isScrollAvailable = itemsCount > visibleItemCount;
486
- const isCyclicAndScrollAvailable = isCyclic && isScrollAvailable;
487
- const canInc = isCyclicAndScrollAvailable ||
488
- (isScrollAvailable && itemsCount - activeIndex > visibleItemCount);
489
- const canDec = isCyclicAndScrollAvailable || Boolean(isScrollAvailable && activeIndex > 0);
490
- return [
491
- activeIndex,
492
- {
493
- inc,
494
- dec,
495
- canInc,
496
- canDec,
497
- },
498
- ];
526
+ const benefitsDescriptionStyleMap = {
527
+ primary: 'text-secondary-text',
528
+ secondary: 'text-white opacity-80',
529
+ };
530
+ const benefitsIconStyleMap = {
531
+ primary: 'bg-main-divider text-primary-main',
532
+ secondary: 'bg-white/30 text-black',
533
+ };
534
+ const BenefitsBlock = JSX(({ className = '', title, benefitList, version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${VersionStyleMap[version]}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[version]}`, title: title })) : null, benefitList?.length ? (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(version)) })) : null] })));
535
+ const renderStep = (version) => (benefit, i) => {
536
+ const description = benefit.description;
537
+ return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[version]}`, image: getIconWithVersion(benefit.icon, version), asSVG: true })) : null, benefit?.icon?.src ? jsx(ImgInner, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[version]}`, children: benefit.label })) : null, renderDescription$3(description, version)] })] }, String(i)));
538
+ };
539
+ const renderDescription$3 = (description, version) => {
540
+ const benefitType = description?.benefitType || null;
541
+ return description && benefitType ? (jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[version]}`, children: benefitType === 'list'
542
+ ? renderListBenefit(description)
543
+ : renderTextBenefit(description) })) : null;
544
+ };
545
+ const renderTextBenefit = (description) => description?.name || null;
546
+ const renderListBenefit = (description) => {
547
+ const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
548
+ return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
499
549
  };
500
550
 
501
551
  const isURL = (href) => href?.includes('//');
@@ -649,90 +699,6 @@
649
699
  const RegularButton = JSX(({ className = '', href, rel, target, ariaLabel, version, rounded, onClick, children }) => (jsx("a", { className: getRegularButtonClasses({ className, version, rounded }), href: href, rel: rel, target: target, "aria-label": ariaLabel, role: href ? 'link' : 'button', onClick: onClick, children: children })));
650
700
  const DisabledButton = JSX(({ className, ariaLabel, version, rounded, children }) => (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: getDisabledButtonClasses({ className, rounded, version }), children: children })));
651
701
 
652
- const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `group 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
653
- ? 'bg-secondary-light text-secondary-text'
654
- : 'bg-white text-primary-text hover:text-primary-main'} ${className || ''}`, disabled: disabled, ...rest, children: jsx(ImgInner, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border", image: { icon: 'ArrowLeftIcon', iconVersion: 'black' }, imageClassName: "group-hover:text-primary-main", width: "16", height: "16", asSVG: true }) })));
655
-
656
- function renderArrows({ handler, isShown, btnClass, className = '', isDisabled = false, }) {
657
- return (jsxs("div", { children: [isShown[0] || isDisabled ? (jsx(ArrowButton, { className: `absolute z-10 ${btnClass[0]} ${className}`, onClick: handler[0], ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left", disabled: !isShown[0] })) : null, isShown[1] || isDisabled ? (jsx(ArrowButton, { className: `absolute z-10 rotate-180 ${btnClass[1]} ${className}`, onClick: handler[1], ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right", disabled: !isShown[1] })) : null] }));
658
- }
659
-
660
- const CarouselContainer = JSX(({ children, activeItem, cardFullViewCount, cardWidth }) => {
661
- const cardFullViewStyles = cardFullViewCount === 1
662
- ? `translateX(-${activeItem}00%)`
663
- : `translateX(-${activeItem * Number(cardWidth)}px)`;
664
- return (jsx("div", { className: "w-auto flex flex-1 duration-1000", style: { transform: `${cardFullViewStyles}` }, role: "list", children: children }));
665
- });
666
-
667
- const Carousel = JSX(({ cardFullViewCount = 1, children, cardWidth = '1007', className = '', isBlur = true, isCyclic = false, block, ...rest }) => {
668
- const blurClasses = isBlur ? 'absolute top-0 bottom-0 w-[84px]' : '';
669
- const { blocks: childBlocks } = block || {};
670
- const childBlocksLength = childBlocks !== undefined ? childBlocks.length : 0;
671
- const isScrollAvailable = childBlocksLength > cardFullViewCount;
672
- const [activeIndex, controls] = useCarouselControls({
673
- itemsCount: childBlocksLength,
674
- visibleItemCount: cardFullViewCount,
675
- isCyclic,
676
- });
677
- const { inc, dec, canDec, canInc } = controls;
678
- return (jsxs(BlockWrapper, { className: `box-border h-full relative font-sans flex flex-col justify-center overflow-hidden ${className}`, ...rest, children: [jsx(CarouselContainer, { activeItem: activeIndex, cardFullViewCount: cardFullViewCount, cardWidth: cardWidth, children: children }), isScrollAvailable ? (jsx("div", { children: renderArrows({
679
- handler: [dec, inc],
680
- isShown: [canDec, canInc],
681
- btnClass: ['left-8', 'right-8'],
682
- className: 'top-1/2 z-10',
683
- }) })) : null, isScrollAvailable ? (jsxs("div", { children: [jsx("div", { className: `${blurClasses} left-0 bg-opacity-from-white` }), jsx("div", { className: `${blurClasses} right-0 bg-opacity-to-white` })] })) : null] }));
684
- });
685
- Carousel.childrenTypes = ['CarouselCard', 'CarouselTariffsCard'];
686
-
687
- const MAX_LINKS_COUNT = 12;
688
- const CarouselLinks = JSX(({ additionalDescription, block, description, links, title, className = '', ...rest }) => {
689
- return (jsxs(BlockWrapper, { className: `bg-primary-main flex w-full p-10 overflow-hidden justify-between font-sans ${className}`, ...rest, children: [jsxs("div", { className: "flex flex-col max-w-96 pr-9 text-white text-xl-light", children: [title ? jsx(Heading, { title: title, as: "h1", headingType: "h0", className: "pb-0.5" }) : null, description ? (jsx(Description, { description: description, className: "text-xl-light pt-5" })) : null, additionalDescription ? (jsx(Description, { description: additionalDescription, className: "pt-6" })) : null] }), links?.length ? renderLinks(links) : null] }));
690
- });
691
- const renderLinks = (links, block) => {
692
- const slicedLinks = sliceArray(links, MAX_LINKS_COUNT);
693
- const slides = slicedLinks.map((slide) => (jsx("div", { className: "w-[672px] min-w-[672px] ml-20 mr-20 flex flex-wrap self-start", children: slide.map((link, index) => (jsx(LinkButton, { className: "m-1", ...link }, String(index)))) })));
694
- return (jsx(Carousel, { className: "min-w-[832px] w-[832px]", isBlur: false, cardFullViewCount: 1, cardWidth: '832', isCyclic: true, block: { type: 'Carousel', blocks: slides }, children: slides }));
695
- };
696
-
697
- const VersionStyleMap = {
698
- primary: 'bg-white text-primary-text',
699
- secondary: 'bg-primary-main text-white',
700
- };
701
-
702
- const getIconWithVersion = (icon, version = 'primary') => ({
703
- ...icon,
704
- iconVersion: icon?.iconVersion ?? (version === 'secondary' ? 'white' : 'color'),
705
- });
706
-
707
- const benefitsTextStyleMap = {
708
- primary: '',
709
- secondary: 'text-white',
710
- };
711
- const benefitsDescriptionStyleMap = {
712
- primary: 'text-secondary-text',
713
- secondary: 'text-white opacity-80',
714
- };
715
- const benefitsIconStyleMap = {
716
- primary: 'bg-main-divider text-primary-main',
717
- secondary: 'bg-white/30 text-black',
718
- };
719
- const BenefitsBlock = JSX(({ className = '', title, benefitList, version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${VersionStyleMap[version]}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[version]}`, title: title })) : null, benefitList?.length ? (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(version)) })) : null] })));
720
- const renderStep = (version) => (benefit, i) => {
721
- const description = benefit.description;
722
- return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[version]}`, image: getIconWithVersion(benefit.icon, version), asSVG: true })) : null, benefit?.icon?.src ? jsx(ImgInner, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[version]}`, children: benefit.label })) : null, renderDescription$3(description, version)] })] }, String(i)));
723
- };
724
- const renderDescription$3 = (description, version) => {
725
- const benefitType = description?.benefitType || null;
726
- return description && benefitType ? (jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[version]}`, children: benefitType === 'list'
727
- ? renderListBenefit(description)
728
- : renderTextBenefit(description) })) : null;
729
- };
730
- const renderTextBenefit = (description) => description?.name || null;
731
- const renderListBenefit = (description) => {
732
- const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
733
- return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
734
- };
735
-
736
702
  const ButtonSection = JSX(({ className = '', buttons }) => buttons && buttons?.length ? (jsx("div", { className: className, children: buttons.map((button, index) => renderButton({ button, index })) })) : null);
737
703
  function renderButton({ button, buttonClassName, index }) {
738
704
  const { icon, iconRight, version, ...rest } = button;
@@ -818,7 +784,7 @@
818
784
  const Headline = JSX(({ className = '', bgColorHeadline = 'transparent', align = 'center', title, description, headlineVersion = 'XL', as, ...rest }) => {
819
785
  const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
820
786
  const SIZE_MAPS = HEADLINE_VERSION[headlineVersion];
821
- return (jsxs(BlockWrapper, { className: `font-sans flex flex-col p-[50px] ${SIZE_MAPS.gap} ${STYLE_MAPS.background} ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: SIZE_MAPS?.headingType, as: as || SIZE_MAPS?.as, className: `whitespace-pre-wrap ${STYLE_MAPS.text} ${AlignText[align]}`, title: title })) : null, description ? (jsx(Description, { className: `${SIZE_MAPS.descriptionFont} ${STYLE_MAPS.text} ${AlignText[align]}`, description: description })) : null] }));
787
+ return (jsxs(BlockWrapper, { className: `font-sans flex flex-col p-[50px] ${SIZE_MAPS.gap} ${STYLE_MAPS.background} ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: SIZE_MAPS?.headingType, as: as || SIZE_MAPS?.as, className: `whitespace-pre-wrap ${STYLE_MAPS.text} ${AlignText[align]}`, title: title })) : null, description ? (jsx("p", { className: `${SIZE_MAPS.descriptionFont} ${STYLE_MAPS.text} ${AlignText[align]}`, children: description })) : null] }));
822
788
  });
823
789
 
824
790
  const Bonus = JSX((props) => {
@@ -837,11 +803,22 @@
837
803
  const renderBonusCount = (_) => (jsxs("div", { className: "relative -bottom-3 h-auto flex items-end mt-14 shrink-0", children: [_.bonusCount ? (jsx("span", { className: "font-mohave -tracking-[5px] text-title-extra bg-clip-text text-transparent bg-green-to-yellow -mb-7", children: _.bonusCount })) : null, _.bonusName ? (jsx("span", { className: "text-h2 bg-clip-text text-transparent bg-green-to-yellow", children: _.bonusName })) : null] }));
838
804
  const renderBonusImage = (_) => _.image ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full`, image: _.image })) : null;
839
805
 
840
- const BonusBenefitsBlock = JSX(({ className = '', title, subtitle, bonusBenefits, columnsCount = '4', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text bg-white p-[50px] flex flex-col text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: subtitle, headlineVersion: "M", align: "center", ...rest }), bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 mt-8 ${getElementsColsValue(columnsCount)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] })));
841
- const renderBonusBenefit = (bonusBenefit, i) => {
842
- return (jsxs("div", { className: "flex flex-col items-center max-w-[292px]", children: [bonusBenefit?.icon ? (jsx(ImgInner, { className: "h-[160px] w-[180px] min-w-[180px] min-h-[160px]", image: bonusBenefit.icon, width: "180", height: "160" })) : null, jsx("div", { children: bonusBenefit?.label ? jsx("span", { className: "text-h6 m-0", children: bonusBenefit.label }) : null })] }, String(i)));
806
+ const BonusBenefitsBlock = JSX(({ bonusBenefits, cardTextAlign = 'center', className = '', columnsCount = '4', subtitle, title, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text bg-white p-[50px] flex flex-col text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0 mb-8", title: title, description: subtitle, headlineVersion: "M", align: "center", ...rest }), bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${AlignText[cardTextAlign]} ${getElementsColsValue(columnsCount)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] })));
807
+ const renderBonusBenefit = ({ icon, label, description }, i) => {
808
+ return (jsxs("div", { className: "flex flex-col items-center text-h6", children: [description ? jsx("span", { children: description }) : null, icon ? jsx(ImgInner, { image: icon, height: "180", width: "auto", className: "h-[180px] w-auto" }) : null, jsx("div", { children: label ? jsx("span", { children: label }) : null })] }, String(i)));
809
+ };
810
+ const getElementsColsValue = (colValue) => {
811
+ switch (colValue) {
812
+ case '3':
813
+ return 'grid-cols-3';
814
+ case '4':
815
+ return 'grid-cols-4';
816
+ case '5':
817
+ return 'grid-cols-5';
818
+ default:
819
+ return 'grid-cols-5';
820
+ }
843
821
  };
844
- const getElementsColsValue = (colValue) => colValue === '4' ? 'grid-cols-4' : 'grid-cols-5';
845
822
 
846
823
  const BusinessCard = JSX((props) => {
847
824
  const { title, image, cardItems, button } = props;
@@ -854,11 +831,49 @@
854
831
 
855
832
  const BusinessBlock = JSX(({ className = '', title, cards, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans bg-white p-[50px] pb-9 ${className}`, ...rest, children: [jsx(Heading, { headingType: "h3", title: title, className: "text-center mb-8" }), jsx("div", { className: "flex gap-5", children: cards?.length ? cards.map((_, i) => jsx(BusinessCard, { ..._ }, String(i))) : null })] })));
856
833
 
834
+ const useCarouselControls = (props) => {
835
+ const { itemCount, visibleItemCount, isCyclic } = props;
836
+ const [activeIndex, setActiveIndex] = useState(0);
837
+ const inc = useCallback(() => setActiveIndex((_) => (isCyclic ? (_ + 1) % itemCount : Math.min(_ + 1, itemCount - 1))), [isCyclic, itemCount]);
838
+ const dec = useCallback(() => setActiveIndex((_) => (isCyclic ? (itemCount + _ - 1) % itemCount : Math.max(_ - 1, 0))), [isCyclic, itemCount]);
839
+ const canInc = isCyclic ||
840
+ (isScrollable(activeIndex, props) && activeIndex < itemCount - (visibleItemCount || 1));
841
+ const canDec = isCyclic || activeIndex > 0;
842
+ const isScrollAvailable = canDec || canInc;
843
+ return [
844
+ activeIndex,
845
+ {
846
+ inc,
847
+ dec,
848
+ canInc,
849
+ canDec,
850
+ isScrollAvailable,
851
+ },
852
+ ];
853
+ };
854
+ function isScrollable(activeIndex, { itemCount, visibleItemCount, container }) {
855
+ if (visibleItemCount) {
856
+ return itemCount > visibleItemCount;
857
+ }
858
+ if (container) {
859
+ const scrollLeft = (container.scrollWidth * activeIndex) / itemCount;
860
+ return scrollLeft + container.clientWidth < container.scrollWidth;
861
+ }
862
+ return false;
863
+ }
864
+
865
+ const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `group 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
866
+ ? 'bg-secondary-light text-secondary-text'
867
+ : 'bg-white text-primary-text hover:text-primary-main'} ${className || ''}`, disabled: disabled, ...rest, children: jsx(ImgInner, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border", image: { icon: 'ArrowLeftIcon', iconVersion: 'black' }, imageClassName: "group-hover:text-primary-main", width: "16", height: "16", asSVG: true }) })));
868
+
869
+ function renderArrows({ dec, inc, canDec, canInc, btnClass, className = '', }) {
870
+ const isVisible = canDec || canInc;
871
+ return isVisible ? (jsxs("div", { children: [canDec ? (jsx(ArrowButton, { className: `absolute z-50 ${btnClass[0]} ${className}`, onClick: dec, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left", disabled: !canDec })) : null, canInc ? (jsx(ArrowButton, { className: `absolute z-50 rotate-180 ${btnClass[1]} ${className}`, onClick: inc, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right", disabled: !canInc })) : null] })) : null;
872
+ }
873
+
857
874
  const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
858
875
 
859
- const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => {
860
- return (jsxs("div", { className: `mb-7 ${className}`, children: [title ? jsx("div", { className: "text-l-light text-secondary-text", children: title }) : null, value ? (jsxs("div", { className: "text-h3", children: [prefix, " ", addSpacesBetweenNumbers(Math.round(value)), " ", postfix] })) : null] }));
861
- });
876
+ const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => (jsxs("div", { className: `mb-7 ${className}`, children: [title ? jsx("div", { className: "text-l-light text-secondary-text", children: title }) : null, value ? (jsxs("div", { className: "text-h3", children: [prefix, " ", addSpacesBetweenNumbers(Math.round(value)), " ", postfix] })) : null] })));
862
877
 
863
878
  const DEFAULT_MIN_SUM = 60000;
864
879
  const DEFAULT_MAX_SUM = 2000000;
@@ -1214,46 +1229,45 @@
1214
1229
  const Calculator = JSX(({ className = '', calculatorTabs = [], ...rest }) => {
1215
1230
  const tabsNav = calculatorTabs.map((_) => _.nav || {});
1216
1231
  const calculatorBlocks = calculatorTabs.map(({ calculatorBlock }) => calculatorBlock || {});
1217
- const [activeSlideIndex, setActiveSlideIndex] = useState(0);
1218
- const [tabsShift, setTabsShift] = useState(0);
1219
- const handleNextClick = () => setTabsShift(tabsShift + 1);
1220
- const handlePrevClick = () => setTabsShift(tabsShift - 1);
1221
- const isGalleryScrollAvailable = calculatorTabs?.length > 3;
1222
- const showNextButton = isGalleryScrollAvailable && calculatorTabs?.length > tabsShift + 3;
1223
- const showPrevButton = tabsShift > 0;
1232
+ const [slideIndexShift, setSlideIndexShift] = useState(0);
1233
+ const handleSlideIndexShift = useCallback((_) => setSlideIndexShift(_), []);
1234
+ const COLUMNS_FOR_SCROLL = 3;
1235
+ const [activeIndex, controls] = useCarouselControls({
1236
+ itemCount: calculatorTabs?.length,
1237
+ visibleItemCount: COLUMNS_FOR_SCROLL,
1238
+ });
1224
1239
  return (jsxs(BlockWrapper, { className: `box-border overflow-hidden relative font-sans w-100 text-primary-text bg-white ${className}`, ...rest, children: [jsxs("div", { className: "bg-white", children: [tabsNav.length > 1
1225
- ? renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex })
1240
+ ? renderTabs({ activeIndex, tabsNav, slideIndexShift, onClick: handleSlideIndexShift })
1226
1241
  : null, renderArrows({
1227
- handler: [handlePrevClick, handleNextClick],
1228
- isShown: [showPrevButton, showNextButton],
1242
+ ...controls,
1229
1243
  btnClass: ['left-3', 'right-3'],
1230
1244
  className: 'top-8',
1231
- })] }), jsx("div", { className: "flex", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: calculatorBlocks?.length ? calculatorBlocks.map(renderCalculatorBlock) : null })] }));
1245
+ })] }), jsx("div", { className: "flex", style: { transform: `translateX(-${slideIndexShift}00%)` }, role: "list", children: calculatorBlocks?.length ? calculatorBlocks.map(renderCalculatorBlock) : null })] }));
1232
1246
  });
1233
- function renderNavButton$2({ tab, i, activeSlideIndex, onClick }) {
1234
- const isActiveBtn = i === activeSlideIndex;
1235
- const btnClassName = isActiveBtn
1247
+ function renderNavButton$2({ tab, i, isActive, onClick }) {
1248
+ const btnClassName = isActive
1236
1249
  ? 'h-[88px] w-[387px] min-w-[387px] p-5 border-none bg-primary-main text-white'
1237
1250
  : `h-[77px] w-[328px] min-w-[328px] px-5 py-4 ease-in duration-300 bg-white text-primary-text`;
1238
- const btnTitleClassName = isActiveBtn ? 'text-xl mb-1.5' : `text-l mb-[3px]`;
1239
- const btnDescClassName = isActiveBtn
1251
+ const btnTitleClassName = isActive ? 'text-xl mb-1.5' : `text-l mb-[3px]`;
1252
+ const btnDescClassName = isActive
1240
1253
  ? 'text-l-light text-white'
1241
1254
  : `text-m-light text-secondary-text`;
1242
- const iconClassName = isActiveBtn ? '' : `text-primary-main`;
1255
+ const iconClassName = isActive ? '' : `text-primary-main`;
1243
1256
  const iconVersion = tab?.icon?.iconVersion;
1244
- const activeIconStyle = isActiveBtn ? 'white' : 'normal';
1257
+ const activeIconStyle = isActive ? 'white' : 'normal';
1245
1258
  return (jsxs("button", { type: "button", onClick: onClick, "aria-label": tab?.title, className: `box-border relative border border-main-stroke cursor-pointer text-left border-b-0 flex hover:h-[88px]
1246
1259
  ${btnClassName}`, children: [jsx(ImgInner, { className: `h-6 w-6 min-w-6 min-h-6 mr-4 ${iconClassName}`, image: {
1247
1260
  ...tab?.icon,
1248
1261
  iconVersion: iconVersion ?? activeIconStyle,
1249
1262
  }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "border-0", children: [jsx("div", { className: `${btnTitleClassName}`, children: tab?.title }), jsx("div", { className: `${btnDescClassName}`, children: tab.description })] })] }, String(i)));
1250
1263
  }
1251
- function renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex }) {
1252
- return (jsxs("div", { children: [jsx("div", { style: { transform: `translateX(-${tabsShift * 388}px)` }, className: "flex flex-col justify-end items-center h-[126px] pt-9 box-border duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap items-end gap-2", children: tabsNav.map((tab, i) => renderNavButton$2({
1264
+ function renderTabs({ activeIndex, tabsNav, slideIndexShift, onClick }) {
1265
+ const CARD_SHIFT = 388;
1266
+ return (jsxs("div", { children: [jsx("div", { style: { transform: `translateX(-${activeIndex * CARD_SHIFT}px)` }, className: "flex flex-col justify-end items-center h-[126px] pt-9 box-border duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap items-end gap-2", children: tabsNav.map((tab, i) => renderNavButton$2({
1253
1267
  tab,
1254
1268
  i,
1255
- activeSlideIndex,
1256
- onClick: () => setActiveSlideIndex(i),
1269
+ isActive: Boolean(i === slideIndexShift),
1270
+ onClick: () => onClick(i),
1257
1271
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1258
1272
  }
1259
1273
 
@@ -1320,27 +1334,73 @@
1320
1334
  const DEFAULT_PLACEHOLDER = '1500';
1321
1335
  const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, placeholder = DEFAULT_PLACEHOLDER, button, ...rest }) => {
1322
1336
  const [value, setValue] = useState('');
1337
+ const handleChange = useCallback((_) => setValue(_), []);
1323
1338
  const isDisabled = !Number(getSanitizedValue(value));
1324
1339
  const buttonStyle = isDisabled
1325
1340
  ? getDisabledButtonClasses({ version: button?.version })
1326
1341
  : getRegularButtonClasses({ className: 'text-white', version: button?.version });
1327
1342
  const link = useLink();
1328
- return (jsxs(BlockWrapper, { className: `p-[50px] flex flex-col items-center font-sans bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, value: value, onChange: setValue, valid: value === '' || !isDisabled, placeholder: placeholder, label: label }), button?.text ? (jsx("button", { type: "submit", className: `w-full p-4 mt-6 ${buttonStyle} `, disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1343
+ return (jsxs(BlockWrapper, { className: `p-[50px] flex flex-col items-center font-sans bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, value: value, onChange: handleChange, valid: value === '' || !isDisabled, placeholder: placeholder, label: label }), button?.text ? (jsx("button", { type: "submit", className: `w-full p-4 mt-6 ${buttonStyle} `, disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1329
1344
  });
1330
1345
 
1331
- const BLOCK_CLASSES = 'absolute border border-solid border-main-stroke w-[100%] h-[100%]';
1332
- const CARD_STYLE_MAP = {
1333
- normal: 'min-w-[100%] justify-center items-center my-7 col-span-12',
1334
- mini: 'justify-center items-center mx-4 my-9 col-span-4',
1335
- };
1346
+ const childStyleMap = ['[&>*]:min-w-[100%]', '[&>*]:min-w-[50%]', '[&>*]:min-w-[33.33%]'];
1347
+ const CarouselContainer = JSX(({ activeIndex, itemCount, visibleItemCount, containerRef, children }) => {
1348
+ const scrollWidth = containerRef?.current?.scrollWidth || 0;
1349
+ const maxScrollLeft = scrollWidth - (containerRef?.current?.clientWidth || 0);
1350
+ const translateX = visibleItemCount
1351
+ ? `${-Math.round((100 * activeIndex) / visibleItemCount)}%`
1352
+ : `${-Math.round(Math.min((scrollWidth * activeIndex) / (itemCount || 1), maxScrollLeft))}px`;
1353
+ return (jsx("div", { className: `flex gap-1 duration-1000 ${visibleItemCount ? childStyleMap[visibleItemCount - 1] : ''}`, style: { transform: `translateX(${translateX})` }, role: "list", ref: containerRef, children: children }));
1354
+ });
1355
+
1356
+ const blurBaseStyle = 'absolute top-0 bottom-0 z-50 w-[84px]';
1357
+ const Carousel = JSX(({ className = '', itemCount, visibleItemCount, isBlur = true, isCyclic = false, ...rest }) => {
1358
+ const { blocks: childBlocks } = rest.block || {};
1359
+ const count = itemCount || childBlocks?.length || 0;
1360
+ const containerRef = useRef(null);
1361
+ const [activeIndex, controls] = useCarouselControls({
1362
+ itemCount: count,
1363
+ visibleItemCount,
1364
+ isCyclic,
1365
+ container: containerRef.current,
1366
+ });
1367
+ const { isScrollAvailable } = controls;
1368
+ return (jsxs(BlockWrapper, { className: `relative font-sans overflow-hidden ${className}`, ...rest, children: [jsx(CarouselContainer, { activeIndex: activeIndex, itemCount: count, visibleItemCount: visibleItemCount, containerRef: containerRef, children: renderChildren(rest) }), isScrollAvailable && isBlur ? (jsxs("div", { children: [jsx("div", { className: `${blurBaseStyle} left-0 bg-opacity-from-white` }), jsx("div", { className: `${blurBaseStyle} right-0 bg-opacity-to-white` })] })) : null, renderArrows({
1369
+ ...controls,
1370
+ btnClass: ['left-8', 'right-8'],
1371
+ className: 'top-1/2',
1372
+ })] }));
1373
+ });
1374
+ Carousel.childrenTypes = ['CarouselCard', 'CarouselTariffsCard'];
1375
+
1376
+ const BLOCK_CLASSES = 'absolute border border-solid border-main-stroke w-full h-full';
1336
1377
  const CARD_WIDTH_MAP = {
1337
- normal: 'w-[1007px]',
1338
- mini: 'w-[350px]',
1378
+ normal: `w-[${1007 + 48}px]`,
1379
+ mini: `w-[${350 + 48}px]`,
1339
1380
  };
1340
- const CarouselCard = JSX(({ button, className = '', description, title, version = 'normal' }) => {
1341
- return (jsx("section", { className: `flex ${CARD_STYLE_MAP[version]}`, children: jsxs("div", { className: `relative ${CARD_WIDTH_MAP[version]}`, children: [jsxs("div", { className: `relative bg-white py-6 px-10 z-10
1342
- border border-solid border-green-light ${className}`, children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center" }), button ? renderButton({ button, buttonClassName: 'mt-6 w-[158px]' }) : null] }), jsx("div", { className: `top-9 right-12 bg-green-dark ${BLOCK_CLASSES}` }), jsx("div", { className: `top-6 right-8 bg-green ${BLOCK_CLASSES}` }), jsx("div", { className: `top-3 right-4 bg-green-light ${BLOCK_CLASSES}` })] }) }));
1381
+ const CarouselCard = JSX(({ className = '', button, description, title, version = 'normal' }) => (jsx("section", { className: `flex pb-9 pl-12 ${CARD_WIDTH_MAP[version]} ${className}`, children: jsxs("div", { className: "relative w-full", children: [jsx("div", { className: `${BLOCK_CLASSES} z-10 top-9 right-12 bg-green-dark` }), jsx("div", { className: `${BLOCK_CLASSES} z-10 top-6 right-8 bg-green` }), jsx("div", { className: `${BLOCK_CLASSES} z-10 top-3 right-4 bg-green-light` }), jsxs("div", { className: "relative bg-white z-10 py-6 px-10 border border-solid border-green-light", children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center" }), button ? jsx("div", { className: "mt-6", children: renderButton({ button }) }) : null] })] }) })));
1382
+
1383
+ const LINK_CLASS_NAME = `absolute border border-primary-main ml-3 px-6 py-5
1384
+ text-l-light bg-white text-primary-text flex w-[316px]
1385
+ justify-between items-center group-hover:text-primary-main z-10`;
1386
+ const LINK_BORDER_CLASS_NAME = 'bg-transparent border-white border h-[70px] absolute w-[316px] top-0';
1387
+ const LinkButton = JSX(({ text, href = '', target = '', className = '' }) => {
1388
+ if (!text) {
1389
+ return null;
1390
+ }
1391
+ return (jsxs("div", { className: `relative group cursor-pointer w-[328px] h-[82px] ${className}`, children: [jsxs("a", { className: LINK_CLASS_NAME, role: "link", href: href, target: target, children: [jsx("div", { className: "p-0.5", children: text }), jsx("div", { className: "w-6 h-6", children: jsx(ImgInner, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border brightness-0 group-hover:brightness-100", image: { icon: 'ArrowRightIcon', iconVersion: 'black' }, imageClassName: "group-hover:text-primary-main", width: "24", height: "24", asSVG: true }) })] }), jsx("div", { className: `${LINK_BORDER_CLASS_NAME} mx-1.5 mt-1.5` }), jsx("div", { className: `${LINK_BORDER_CLASS_NAME} mt-3 mr-3` })] }));
1392
+ });
1393
+
1394
+ const MAX_LINKS_COUNT = 12;
1395
+ const CarouselLinks = JSX(({ className = '', additionalDescription, description, links, title, ...rest }) => {
1396
+ return (jsxs(BlockWrapper, { className: `bg-primary-main flex w-full p-10 overflow-hidden justify-between font-sans ${className}`, ...rest, children: [jsxs("div", { className: "flex flex-col max-w-96 pr-9 text-white text-xl-light", children: [jsx(Headline, { title: title, as: "h1", description: description, align: "left", className: "p-0", bgColorHeadline: "secondary" }), additionalDescription ? (jsx("div", { className: "pt-6", children: jsx(Paragraph, { children: additionalDescription }) })) : null] }), links?.length ? renderLinks(links) : null] }));
1343
1397
  });
1398
+ const renderLinks = (links) => {
1399
+ const itemCount = Math.ceil(links.length / MAX_LINKS_COUNT);
1400
+ return (jsx(Carousel, { className: "min-w-[832px] w-[832px]", isBlur: false, isCyclic: true, itemCount: itemCount, children: new Array(itemCount).fill(null).map((_, groupIndex) => (jsx("div", { className: "w-[672px] min-w-[672px] ml-20 mr-20 flex flex-wrap self-start", children: links
1401
+ .slice(groupIndex * MAX_LINKS_COUNT, (groupIndex + 1) * MAX_LINKS_COUNT)
1402
+ .map((link, index) => (jsx(LinkButton, { className: "m-1", ...link }, String(index)))) }, String(groupIndex)))) }));
1403
+ };
1344
1404
 
1345
1405
  const CarouselTariffsCard = JSX(({ className = '', title, icon, isHighlighting, button, rows = [], ...rest }) => {
1346
1406
  const hitStyle = getHitStyle(Boolean(isHighlighting));
@@ -1350,11 +1410,11 @@
1350
1410
  rowsNode.slice(0, VISIBLE_ROWS_COUNT),
1351
1411
  rowsNode.slice(VISIBLE_ROWS_COUNT),
1352
1412
  ];
1353
- return (jsxs(BlockWrapper, { className: `font-sans bg-white p-[50px] p-8 border border-main-stroke relative w-[322px] min-w-[322px] -ml-[1px] ${hitStyle} ${className}`, ...rest, children: [isHighlighting ? renderHitIcon() : null, icon?.src ? jsx(ImgInner, { className: "flex justify-center", image: icon }) : null, title ? (jsx(Heading, { className: "text-primary-text text-center pt-2", headingType: "h5", title: title })) : null, button ? jsx(Button, { className: "w-full mt-4", ...button }) : null, rows?.length ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: rows.length > 1 ? renderFoldButton$1 : null })) : null] }));
1413
+ return (jsxs(BlockWrapper, { className: `font-sans bg-white p-8 border border-main-stroke relative w-[322px] min-w-[322px] -ml-[1px] ${hitStyle} ${className}`, ...rest, children: [isHighlighting ? renderHitIcon() : null, icon?.src ? jsx(ImgInner, { className: "flex justify-center", image: icon }) : null, title ? (jsx(Heading, { className: "text-primary-text text-center pt-2", headingType: "h5", title: title })) : null, button ? jsx(Button, { className: "w-full mt-4", ...button }) : null, rows?.length ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: rows.length > 1 ? renderFoldButton$1 : null })) : null] }));
1354
1414
  });
1355
1415
  const getHitStyle = (isHighlighting) => isHighlighting ? 'mt-9 pt-[71px]' : 'mt-[70px] pt-9';
1356
1416
  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", asSVG: true })] }));
1357
- const renderCardInfo = (cell) => (jsxs("div", { className: "py-5 border-b border-main-divider flex flex-col gap-1", children: [cell?.title ? (jsx("div", { className: "text-secondary-text text-m-light opacity-80", children: cell.title })) : null, cell?.description ? jsx("div", { className: "text-primary-text text-h6", children: cell.description }) : null] }));
1417
+ const renderCardInfo = (cell, i) => (jsxs("div", { className: "py-5 border-b border-main-divider flex flex-col gap-1", children: [cell?.title ? (jsx("div", { className: "text-secondary-text text-m-light opacity-80", children: cell.title })) : null, cell?.description ? jsx("div", { className: "text-primary-text text-h6", children: cell.description }) : null] }, String(i)));
1358
1418
  const renderHitIcon = () => {
1359
1419
  const POSITION_STYLE = 'absolute -top-7 -right-4';
1360
1420
  return (jsxs("div", { className: `h-[60px] w-[60px] bg-white flex flex-col items-center justify-center shadow-[0_4px_25px_rgba(0,0,0,0.07)] ${POSITION_STYLE}`, children: [jsx(Icon, { iconVersion: "black", name: "HeartIcon", width: "23", height: "22", asSVG: true }), jsx("div", { className: "text-center", children: "\u0425\u0438\u0442" })] }));
@@ -1368,18 +1428,15 @@
1368
1428
  const renderColorOption = (color, i) => (jsx("span", { className: `w-6 h-6 ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap$1[color]}` }, String(i)));
1369
1429
 
1370
1430
  const BLUR_BLOCK_CLASSES$2 = 'absolute top-0 bottom-0 w-[84px]';
1371
- const CARD_FULL_VIEW_COUNT$2 = 3;
1431
+ const CARD_VIEW_COUNT$1 = 3;
1372
1432
  const CARD_SHIFT$1 = 430;
1373
1433
  const Catalog = JSX(({ cards = [], className = '', title, description, ...rest }) => {
1374
- const [activeCardIndex, setActiveCardIndex] = useState(0);
1375
- const handleNextClick = useCallback(() => setActiveCardIndex((_) => _ + 1), []);
1376
- const handlePrevClick = useCallback(() => setActiveCardIndex((_) => _ - 1), []);
1377
- const isUseSlider = cards.length > CARD_FULL_VIEW_COUNT$2;
1378
- const showNextButton = isUseSlider && cards.length - activeCardIndex > CARD_FULL_VIEW_COUNT$2;
1379
- const showPrevButton = isUseSlider && activeCardIndex > 0;
1380
- return (jsxs(BlockWrapper, { className: `bg-white relative font-sans p-[50px] overflow-hidden text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), jsx("div", { className: "flex duration-1000 gap-3.5 mt-8", style: { transform: `translateX(-${activeCardIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map((card, i) => jsx(CatalogCard, { ...card }, String(i))) : null }), renderArrows({
1381
- handler: [handlePrevClick, handleNextClick],
1382
- isShown: [showPrevButton, showNextButton],
1434
+ const [activeIndex, controls] = useCarouselControls({
1435
+ itemCount: cards?.length,
1436
+ visibleItemCount: CARD_VIEW_COUNT$1,
1437
+ });
1438
+ return (jsxs(BlockWrapper, { className: `bg-white relative font-sans p-[50px] overflow-hidden text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), jsx("div", { className: "flex duration-1000 gap-3.5 mt-8", style: { transform: `translateX(-${activeIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map((card, i) => jsx(CatalogCard, { ...card }, String(i))) : null }), renderArrows({
1439
+ ...controls,
1383
1440
  btnClass: ['left-8', 'right-8'],
1384
1441
  className: 'top-1/2 z-10 mt-6',
1385
1442
  }), jsx("div", { className: `${BLUR_BLOCK_CLASSES$2} left-0 bg-opacity-from-white` }), jsx("div", { className: `${BLUR_BLOCK_CLASSES$2} right-0 bg-opacity-to-white` })] }));
@@ -1389,7 +1446,7 @@
1389
1446
  const BORDER_CLASSES$1 = 'border-main-stroke border-solid border';
1390
1447
  const DIVIDER_CLASSES$1 = 'border-main-divider border border-t-0 border-x-0';
1391
1448
  const FIRST_CELL_CLASSES$1 = 'w-[200px] mr-6';
1392
- const COLS_LENGTH_FOR_SCROLL$1 = 2;
1449
+ const COLS_LENGTH_FOR_SCROLL$1 = 3;
1393
1450
  const COLUMN_WIDTH$2 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1394
1451
 
1395
1452
  const HeaderCell = JSX(({ icon, image, title, link }) => (jsxs("div", { className: `w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-[46px] ${BORDER_CLASSES$1} ${GRADIENT}`, role: "columnheader", children: [icon && !image?.src && (jsx(ImgInner, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: getIconWithVersion(icon), width: "63", height: "63", asSVG: true })), image?.src && jsx(ImgInner, { className: "mb-[18px]", image: image }), title ? (jsx(Heading, { headingType: "h4", as: "h3", className: "text-center text-white", title: title })) : null, link?.text && (jsx("div", { className: "mt-auto w-full", children: jsx(Button, { href: link.href, target: link.target, className: "mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active", children: jsx("div", { className: "text-xs-light font-medium py-[11px]", children: link.text }) }) }))] })));
@@ -1398,11 +1455,11 @@
1398
1455
  comparison: 'flex gap-4 duration-1000',
1399
1456
  tariff: 'flex flex-grow duration-1000',
1400
1457
  };
1401
- const TableCarouselContainer = JSX(({ children, activeCardIndex, columnWidth, version = 'comparison' }) => (jsx("div", { className: "flex flex-1 overflow-hidden", children: jsx("div", { className: carouselContainerClassesMap[version], style: { transform: `translateX(-${activeCardIndex * columnWidth}px)` }, children: children }) })));
1458
+ const TableCarouselContainer = JSX(({ children, activeIndex, columnWidth, version = 'comparison' }) => (jsx("div", { className: "flex flex-1 overflow-hidden", children: jsx("div", { className: carouselContainerClassesMap[version], style: { transform: `translateX(-${activeIndex * columnWidth}px)` }, children: children }) })));
1402
1459
 
1403
1460
  const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
1404
1461
 
1405
- const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeCardIndex }) => (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES$1, role: "columnheader" }), jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$2, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header }, String(i)))) })] })));
1462
+ const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeIndex }) => (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES$1, role: "columnheader" }), jsx(TableCarouselContainer, { activeIndex: activeIndex, columnWidth: COLUMN_WIDTH$2, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header }, String(i)))) })] })));
1406
1463
 
1407
1464
  const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
1408
1465
  const cellWrapperClasses = `w-80 box-border flex flex-col ${BORDER_CLASSES$1} ${!isLastRow ? 'border-y-0' : 'border-t-0 rounded-b-md'} ${isFillGradient ? GRADIENT : ''}`;
@@ -1414,20 +1471,21 @@
1414
1471
  const renderCellInner$1 = ({ label, description }, i, isFillGradient) => (jsxs("div", { className: "first:pt-7 pt-6 last:pb-7", children: [label ? jsx("h4", { className: labelStyle(isFillGradient), children: label }) : null, description ? jsx("div", { className: descriptionStyle(isFillGradient), children: description }) : null] }, String(i)));
1415
1472
 
1416
1473
  const titleStyle = (isLastRow = false) => `text-s py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1417
- const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? jsx("div", { className: titleStyle(isLastRow), children: header.title }) : null, data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$2, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1418
-
1419
- const ComparisonTableRows = JSX(({ rowData, isColoredFirstColumn, activeCardIndex, controls, isScrollAvailable }) => {
1420
- const { inc, dec, canDec, canInc } = controls;
1421
- return (jsxs("div", { className: "relative", children: [rowData.map((row, i, { length }) => (jsx(TableRow, { row: row, isFirstRow: i === 0, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex, isColoredFirstColumn: isColoredFirstColumn }, String(i)))), isScrollAvailable ? (jsx("div", { children: renderArrows({
1422
- handler: [inc, dec],
1423
- isShown: [canDec, canInc],
1424
- btnClass: ['top-[108px]', 'top-11'],
1474
+ const TableRow = JSX(({ row: { header, data }, activeIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? jsx("div", { className: titleStyle(isLastRow), children: header.title }) : null, data?.length ? (jsx(TableCarouselContainer, { activeIndex: activeIndex, columnWidth: COLUMN_WIDTH$2, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1475
+
1476
+ const ComparisonTableRows = JSX(({ rowData, isColoredFirstColumn, activeIndex, controls }) => {
1477
+ const { isScrollAvailable } = controls;
1478
+ return (jsxs("div", { className: "relative", children: [rowData.map((row, i, { length }) => (jsx(TableRow, { row: row, isFirstRow: i === 0, isLastRow: i + 1 === length, activeIndex: activeIndex, isColoredFirstColumn: isColoredFirstColumn }, String(i)))), isScrollAvailable
1479
+ ? renderArrows({
1480
+ ...controls,
1481
+ btnClass: ['top-[108px]', 'top-[44px]'],
1425
1482
  className: 'right-7',
1426
1483
  isDisabled: true,
1427
- }) })) : null] }));
1484
+ })
1485
+ : null] }));
1428
1486
  });
1429
1487
 
1430
- const ComparisonTableBody = JSX(({ columns, rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
1488
+ const ComparisonTableBody = JSX(({ columns = [], rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
1431
1489
  const colHeaders = columns?.map(({ header }) => header || {});
1432
1490
  const colData = columns?.map(({ data }) => data) || [];
1433
1491
  const rowData = rowHeaders
@@ -1436,12 +1494,12 @@
1436
1494
  data: colData.map((col) => col?.[i] || [{}]),
1437
1495
  }))
1438
1496
  .slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
1439
- const isScrollAvailable = colData.length > COLS_LENGTH_FOR_SCROLL$1;
1440
1497
  const [activeIndex, controls] = useCarouselControls({
1441
- itemsCount: colData.length,
1498
+ itemCount: columns.length,
1442
1499
  visibleItemCount: COLS_LENGTH_FOR_SCROLL$1,
1443
1500
  });
1444
- return (jsxs("div", { children: [jsxs("div", { role: "table", children: [colHeaders?.length ? (jsx(ComparisonTableColumnHeaders, { colHeaders: colHeaders, activeCardIndex: activeIndex })) : null, rowData?.length ? (jsx(ComparisonTableRows, { rowData: rowData, isColoredFirstColumn: isColoredFirstColumn, activeCardIndex: activeIndex, controls: controls, isScrollAvailable: isScrollAvailable })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
1501
+ const { isScrollAvailable } = controls;
1502
+ return (jsxs("div", { children: [jsxs("div", { role: "table", children: [colHeaders?.length ? (jsx(ComparisonTableColumnHeaders, { colHeaders: colHeaders, activeIndex: activeIndex })) : null, rowData?.length ? (jsx(ComparisonTableRows, { rowData: rowData, isColoredFirstColumn: isColoredFirstColumn, activeIndex: activeIndex, controls: controls })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
1445
1503
  });
1446
1504
 
1447
1505
  const ComparisonTable = JSX(({ className = '', title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, ...rest }) => {
@@ -1453,11 +1511,9 @@
1453
1511
  });
1454
1512
  const renderShowMoreToggleButton = ({ isShowAllRow, onClick, }) => (jsx("div", { className: "pr-[50px]", children: jsxs("div", { className: "flex w-full", children: [jsx("div", { className: FIRST_CELL_CLASSES$1 }), jsx("button", { onClick: onClick, className: "mt-5 flex-1 border-main-stroke border-solid border text-primary-text bg-white hover:border-primary-main hover:text-primary-main", children: jsx("div", { className: "font-sans text-xs-light font-medium py-3", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1455
1513
 
1456
- const ContactsBlock = JSX(({ className = '', contacts, info, version = 'secondary', ...rest }) => {
1457
- return (jsxs(BlockWrapper, { className: `${VersionStyleMap[version]} flex p-[50px] ${className}`, ...rest, children: [info?.length ? renderBlocks(info, version) : null, contacts?.length ? renderBlocks(contacts, version) : null] }));
1458
- });
1514
+ const ContactsBlock = JSX(({ className = '', contacts, info, version = 'secondary', ...rest }) => (jsxs(BlockWrapper, { className: `${VersionStyleMap[version]} flex p-[50px] ${className}`, ...rest, children: [info?.length ? renderBlocks(info, version) : null, contacts?.length ? renderBlocks(contacts, version) : null] })));
1459
1515
  const renderBlocks = (info, version) => (jsx("div", { className: "flex grow basis-0", children: info.map((column, index) => renderBlocksColumn({ column, index, version })) }));
1460
- const renderBlocksColumn = ({ column, index, version }) => column ? (jsx("div", { className: "flex flex-col grow basis-0 pr-11 last:pr-0", children: column.map(({ title = '', description, additionalDescription, button }, key) => (jsxs("div", { className: "mt-6 first:mt-0", children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "XS", align: "left", bgColorHeadline: version }), additionalDescription ? (jsx(Description, { className: "text-m-light mt-1.5 opacity-80", description: additionalDescription })) : null, button ? jsx(Button, { className: "mt-6", ...button }) : null] }, String(key)))) }, `col-${String(index)}`)) : null;
1516
+ const renderBlocksColumn = ({ column, index, version }) => column ? (jsx("div", { className: "flex flex-col grow basis-0 pr-11 last:pr-0", children: column.map(({ title = '', description, additionalDescription, button }, key) => (jsxs("div", { className: "mt-6 first:mt-0", children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "XS", align: "left", bgColorHeadline: version }), additionalDescription ? (jsx("div", { className: "mt-1.5 opacity-80", children: jsx(Paragraph, { size: "text-m-light", children: additionalDescription }) })) : null, button ? jsx(Button, { className: "mt-6", ...button }) : null] }, String(key)))) }, `col-${String(index)}`)) : null;
1461
1517
 
1462
1518
  const renderErrorContent = (error) => {
1463
1519
  if (error?.errorContentType === 'Image' && error?.image) {
@@ -1490,9 +1546,7 @@
1490
1546
  USD: 'DollarIcon',
1491
1547
  EUR: 'EuroIcon',
1492
1548
  };
1493
- const CurrencyTable = JSX(({ className, exchangeCurrencyItems }) => {
1494
- return (jsxs("table", { className: `h-fit w-fit ${className}`, children: [jsx("thead", { children: jsxs("tr", { children: [jsx("th", { className: TABLE_HEAD_STYLE, children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041A\u0443\u043F\u0438\u0442\u044C" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041F\u0440\u043E\u0434\u0430\u0442\u044C" })] }) }), jsx("tbody", { children: exchangeCurrencyItems.map((item) => renderCurrencyRow(item)) })] }));
1495
- });
1549
+ const CurrencyTable = JSX(({ className, exchangeCurrencyItems }) => (jsxs("table", { className: `h-fit w-fit ${className}`, children: [jsx("thead", { children: jsxs("tr", { children: [jsx("th", { className: TABLE_HEAD_STYLE, children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041A\u0443\u043F\u0438\u0442\u044C" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041F\u0440\u043E\u0434\u0430\u0442\u044C" })] }) }), jsx("tbody", { children: exchangeCurrencyItems.map(renderCurrencyRow) })] })));
1496
1550
  const renderCurrencyRow = (exchangeCurrencyItem) => {
1497
1551
  const currency = exchangeCurrencyItem?.currency?.currency;
1498
1552
  return (jsxs("tr", { className: "pb-1 text-h6", children: [jsx("td", { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [currency ? (jsx(ImgInner, { image: { icon: CURRENCY_ICONS_MAP[currency] }, width: "24", height: "24" })) : null, jsx("span", { className: "ml-2", children: currency })] }) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.saleExchangeRate) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.buyExchangeRate) })] }, currency));
@@ -1589,9 +1643,7 @@
1589
1643
  selectSell: currencyRatesBuy?.[0]?.currency?.currency || Currency.RUB,
1590
1644
  selectBuy: currencyRatesSell?.[0]?.currency?.currency || Currency.USD,
1591
1645
  });
1592
- const handleSetCalcState = (newState) => {
1593
- setCalcState((oldState) => ({ ...oldState, ...newState }));
1594
- };
1646
+ const handleSetCalcState = useCallback((newState) => setCalcState((oldState) => ({ ...oldState, ...newState })), []);
1595
1647
  return (jsxs("div", { className: `grid gap-[18px] pt-2 ${className}`, children: [renderInput({
1596
1648
  placeholder: 'Хочу продать',
1597
1649
  rates: currencyRatesSell,
@@ -1850,7 +1902,7 @@
1850
1902
 
1851
1903
  const LEFT_COL_WIDTH_FULL_HD = 'w-[204px]';
1852
1904
  const Footer = JSX(({ className, ...rest }) => {
1853
- const fallback = rest.page?.fallback;
1905
+ const fallback = rest.options?.page?.fallback;
1854
1906
  const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
1855
1907
  return (jsxs(BlockWrapper, { tag: "footer", className: `p-9 bg-white font-sans ${className || ''}`, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-[54px] pb-[30px] xl:gap-8", children: [jsx(Logo, { className: LEFT_COL_WIDTH_FULL_HD }), jsx(SearchBar, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-[54px] xl:gap-8", children: [jsxs("div", { className: `${LEFT_COL_WIDTH_FULL_HD} flex flex-col shrink-0 overflow-hidden`, children: [jsx(Contacts, { items: contacts, hasButton: true }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { className: "mt-6", media: mobileApps, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "pt-[3px]", items: topItems, fallback: fallback })] }), jsx(HorizontalNavigation, { className: "mt-[98px]", links: relatedEnterprises }), jsx(TextInformation, { links: documents })] }));
1856
1908
  });
@@ -1905,37 +1957,30 @@
1905
1957
  return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${TEXT_SIZE_MAP[listItemSize]} ${className} ${hasIndent ? ITEM_INDENT_MAP[listItemSize] : ''}`, role: "list", children: items.map((item, i) => (jsx(ListItem, { className: `${itemClassName} mb-1.5`, isDotted: isDotted, version: version, size: listItemSize, children: item }, String(i)))) }));
1906
1958
  });
1907
1959
 
1908
- const GalleryCardInner = JSX(({ title, headlineSmallVersion = 'H6', description, additionalDescription, icon, items, button, version, isDotted = true, align = 'center', }) => {
1909
- return (jsxs("div", { className: `h-full flex flex-col justify-between ${AlignText[align]}`, children: [jsxs("div", { className: "flex flex-col h-full", children: [renderImage$1(icon, version), renderCardTitle(headlineSmallVersion, title), renderDescription$2(description, title), items?.length ? renderItems$1(items, isDotted, version) : null, renderAdditionalDescription$1(additionalDescription)] }), button?.text ? renderButton({ button, buttonClassName: 'mt-6' }) : null] }));
1910
- });
1960
+ const GalleryCardInner = JSX(({ title, headlineSmallVersion = 'H6', description, additionalDescription, icon, items, button, version, isDotted = true, align = 'center', }) => (jsxs("div", { className: `h-full flex flex-col justify-between ${AlignText[align]}`, children: [jsxs("div", { className: "flex flex-col h-full", children: [renderImage$1(icon, version), renderCardTitle(headlineSmallVersion, title), renderDescription$2(description, title), items?.length ? renderItems$1(items, isDotted, version) : null, renderAdditionalDescription$1(additionalDescription)] }), button?.text ? renderButton({ button, buttonClassName: 'mt-6' }) : null] })));
1911
1961
  const renderImage$1 = (image, version) => (jsxs("div", { className: "flex justify-center", children: [image?.src ? jsx(ImgInner, { className: "mb-5", image: image }) : null, image?.icon ? (jsx(ImgInner, { className: `w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`, image: getIconWithVersion(image, version), asSVG: true })) : null] }));
1912
1962
  const renderCardTitle = (headlineSmallVersion, title) => title ? jsx("div", { className: HEADLINE_SMALL_VERSION[headlineSmallVersion], children: title }) : null;
1913
1963
  const renderDescription$2 = (description, title) => description ? jsx("div", { className: `text-l ${title ? 'mt-2' : ''}`, children: description }) : null;
1914
1964
  const renderAdditionalDescription$1 = (additionalDescription) => additionalDescription ? (jsx("div", { className: "text-m-light text-secondary-text mt-auto", children: additionalDescription })) : null;
1915
1965
  const renderItems$1 = (items, isDotted, version = 'primary') => (jsx(List, { className: `max-w-[308px] mt-2 text-s ${version === 'primary' ? '!text-secondary-text' : ''}`, itemClassName: "text-left", items: items.filter((item) => item?.text).map((item) => item.text), isDotted: isDotted, version: version }));
1916
1966
 
1917
- const GalleryContainer = JSX(({ headlineVersion = 'M', cards = [], version = 'normal', activeCardIndex, ...rest }) => {
1918
- return (jsxs("div", { children: [jsx(Headline, { ...rest, className: "!p-0", headlineVersion: headlineVersion, align: "center" }), jsx("div", { className: `flex mt-8 ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`, style: { transform: `translateX(-${activeCardIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard({ card, version }, i)) })] }));
1919
- });
1967
+ const GalleryContainer = JSX(({ headlineVersion = 'M', cards = [], version = 'normal', activeIndex, ...rest }) => (jsxs("div", { children: [jsx(Headline, { ...rest, className: "!p-0", headlineVersion: headlineVersion, align: "center" }), jsx("div", { className: `flex mt-8 ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`, style: { transform: `translateX(-${activeIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard({ card, version }, i)) })] })));
1920
1968
  function renderCard({ card, version }, i) {
1921
1969
  return (jsx("section", { className: `box-border border-solid border border-main-stroke p-6 mx-2 flex flex-col justify-between
1922
1970
  items-stretch ${cardStyleMap[version]} ${VersionStyleMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
1923
1971
  }
1924
1972
 
1925
1973
  const GalleryInner = JSX(({ cards = [], className = '', version = 'normal', button, ...rest }) => {
1926
- const [activeCardIndex, setActiveCardIndex] = useState(0);
1927
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1928
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1929
- const isGalleryScrollAvailable = cards?.length > galleryLengthForScrollMap[version];
1930
- const showNextButton = isGalleryScrollAvailable &&
1931
- cards?.length - activeCardIndex > galleryLengthForScrollMap[version];
1932
- const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
1933
- return (jsxs(BlockWrapper, { className: `relative font-sans text-primary-text bg-white p-[42px] overflow-hidden flex flex-col ${className}`, ...rest, children: [jsx(GalleryContainer, { cards: cards, version: version, activeCardIndex: activeCardIndex, ...rest }), renderArrows({
1934
- handler: [handlePrevClick, handleNextClick],
1935
- isShown: [showPrevButton, showNextButton],
1974
+ const [activeIndex, controls] = useCarouselControls({
1975
+ itemCount: cards?.length,
1976
+ visibleItemCount: galleryLengthForScrollMap[version],
1977
+ });
1978
+ const { isScrollAvailable } = controls;
1979
+ return (jsxs(BlockWrapper, { className: `relative font-sans text-primary-text bg-white p-[42px] overflow-hidden flex flex-col ${className}`, ...rest, children: [jsx(GalleryContainer, { cards: cards, version: version, activeIndex: activeIndex, ...rest }), renderArrows({
1980
+ ...controls,
1936
1981
  btnClass: ['left-8', 'right-8'],
1937
1982
  className: 'top-1/2',
1938
- }), isGalleryScrollAvailable ? (jsxs("div", { children: [jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[82px] bg-opacity-from-white" }), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[82px] bg-opacity-to-white" })] })) : null, button ? renderButton({ button, buttonClassName: 'mt-8 mx-auto' }) : null] }));
1983
+ }), isScrollAvailable ? (jsxs("div", { children: [jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[82px] bg-opacity-from-white" }), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[82px] bg-opacity-to-white" })] })) : null, button ? renderButton({ button, buttonClassName: 'mt-8 mx-auto' }) : null] }));
1939
1984
  });
1940
1985
 
1941
1986
  const Gallery = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
@@ -2105,7 +2150,7 @@
2105
2150
  };
2106
2151
  const Header = JSX(({ bgColor = 'bg-white', className = '', showSubMenu = true, ...rest }) => {
2107
2152
  const router = useRouter();
2108
- const { topItems, logo, defaultLocation } = useSWRResource(projectSettings.SITEMAP || 'sitemap', rest.page?.fallback);
2153
+ const { topItems, logo, defaultLocation } = useSWRResource(projectSettings.SITEMAP || 'sitemap', rest.options?.page?.fallback);
2109
2154
  const activeTopItem = showSubMenu ? getActiveItem(topItems, router) : null;
2110
2155
  const topMenu = topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, "aria-label": _.text, bgColor: bgColor, ..._ }, String(i))));
2111
2156
  return (jsx(BlockWrapper, { tag: "header", className: `pt-6 px-20 ${bgColor} ${className} ${showSubMenu && activeTopItem?.items?.length ? 'pb-4' : 'pb-5'}`, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-8", bgColor: bgColor, logo: logo }), topMenu, jsx(HeaderSecondaryMenu, { className: "ml-auto", defaultLocation: defaultLocation, bgColor: bgColor })] }), jsx("div", { className: `mt-6 h-[1px] ${BORDER_COLORS[bgColor]}` }), showSubMenu && activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { subItems: activeTopItem.items, bgColor: bgColor })) : null] }) }));
@@ -2117,47 +2162,44 @@
2117
2162
  };
2118
2163
 
2119
2164
  const InsuranceAmountBlockInner = JSX(({ className = '', cards = [], button }) => {
2120
- const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2121
- const [tabsShift, setTabsShift] = useState(0);
2122
- const handleNextClick = () => setTabsShift(tabsShift + 1);
2123
- const handlePrevClick = () => setTabsShift(tabsShift - 1);
2124
- const galleryLength = cards?.length ?? 0;
2125
- const isGalleryScrollAvailable = cards?.length > 2;
2126
- const showNextButton = isGalleryScrollAvailable && galleryLength > tabsShift + 2;
2127
- const isLastShift = galleryLength === tabsShift + 2;
2128
- const showPrevButton = tabsShift > 0;
2129
- const activeHref = cards[activeSlideIndex]?.href;
2165
+ const [selectedCardIndex, setSelectedCardIndex] = useState(0);
2166
+ const handleSelectedCardIndex = useCallback((_) => setSelectedCardIndex(_), []);
2167
+ const galleryLength = cards.length;
2168
+ const CARD_VIEW_COUNT = 2;
2169
+ const [activeIndex, controls] = useCarouselControls({
2170
+ itemCount: galleryLength,
2171
+ visibleItemCount: CARD_VIEW_COUNT,
2172
+ });
2173
+ const { canDec, canInc } = controls;
2174
+ const activeHref = cards[activeIndex]?.href;
2130
2175
  return (jsxs("section", { role: "listitem", className: `min-w-full text-center ${className}`, children: [jsxs("div", { className: "relative overflow-hidden", children: [galleryLength
2131
2176
  ? renderGallery({
2132
- tabsShift,
2177
+ activeIndex,
2133
2178
  cards,
2134
- activeSlideIndex,
2135
- isLastShift,
2136
- setActiveSlideIndex,
2179
+ selectedCardIndex,
2180
+ onClick: handleSelectedCardIndex,
2137
2181
  })
2138
2182
  : null, renderArrows({
2139
- handler: [handlePrevClick, handleNextClick],
2140
- isShown: [showPrevButton, showNextButton],
2183
+ ...controls,
2141
2184
  btnClass: ['left-[50px]', 'right-[50px]'],
2142
2185
  className: 'top-[62px]',
2143
- }), showPrevButton ? (jsx("div", { className: "absolute top-0 left-0 h-full w-[136px] bg-opacity-from-white" })) : null, showNextButton ? (jsx("div", { className: "absolute top-0 right-0 h-full w-[136px] bg-opacity-to-white" })) : null] }), jsx(Button, { className: "w-[240px] text-center", version: "primary", ...button, href: activeHref })] }));
2186
+ }), canDec ? (jsx("div", { className: "absolute top-0 left-0 h-full w-[136px] bg-opacity-from-white" })) : null, canInc ? (jsx("div", { className: "absolute top-0 right-0 h-full w-[136px] bg-opacity-to-white" })) : null] }), jsx(Button, { className: "w-[240px] text-center", version: "primary", ...button, href: activeHref })] }));
2144
2187
  });
2145
- function renderGallery({ tabsShift, cards, activeSlideIndex, isLastShift, setActiveSlideIndex, }) {
2146
- const tabsShiftWidth = isLastShift ? tabsShift * 460 - 240 : tabsShift * 460;
2188
+ function renderGallery({ activeIndex, cards, selectedCardIndex, onClick }) {
2189
+ const tabsShiftWidth = activeIndex * 460;
2147
2190
  const cardsAlignStyle = cards.length > 2 ? 'justify-start' : 'justify-center';
2148
2191
  return (jsx("div", { style: { transform: `translateX(-${tabsShiftWidth}px)` }, className: "duration-1000 px-[50px]", children: jsx("div", { className: `w-full flex flex-nowrap gap-3.5 pb-12 ${cardsAlignStyle}`, children: cards.map((slide, i) => renderSlide({
2149
2192
  slide,
2150
2193
  i,
2151
- activeSlideIndex,
2152
- onClick: () => setActiveSlideIndex(i),
2194
+ isActive: Boolean(i === selectedCardIndex),
2195
+ onClick: () => onClick(i),
2153
2196
  })) }) }));
2154
2197
  }
2155
- function renderSlide({ slide, i, activeSlideIndex, onClick }) {
2156
- const isActiveBtn = i === activeSlideIndex;
2157
- const btnClassName = isActiveBtn
2198
+ function renderSlide({ slide, i, isActive, onClick }) {
2199
+ const btnClassName = isActive
2158
2200
  ? 'shadow-dark-blue/42 border-primary-main'
2159
2201
  : `ease-in duration-300 border-main-stroke`;
2160
- return (jsxs("button", { type: "button", onClick: onClick, className: `p-[30px] min-w-[460px] flex items-center bg-white border-solid border relative ${btnClassName}`, children: [slide?.icon ? (jsx(ImgInner, { className: "p-5 rounded-full bg-secondary-light mr-[30px]", image: slide.icon, width: "108", height: "108" })) : null, jsxs("div", { className: "flex gap-3.5", children: [slide?.sum ? renderValueBlock$1('страховая сумма', slide.sum) : null, slide?.fee ? renderValueBlock$1('страховой взнос', slide.fee) : null] }), renderDoneIcon(isActiveBtn)] }, String(i)));
2202
+ return (jsxs("button", { type: "button", onClick: onClick, className: `p-[30px] min-w-[460px] flex items-center bg-white border-solid border relative ${btnClassName}`, children: [slide?.icon ? (jsx(ImgInner, { className: "p-5 rounded-full bg-secondary-light mr-[30px]", image: slide.icon, width: "108", height: "108" })) : null, jsxs("div", { className: "flex gap-3.5", children: [slide?.sum ? renderValueBlock$1('страховая сумма', slide.sum) : null, slide?.fee ? renderValueBlock$1('страховой взнос', slide.fee) : null] }), renderDoneIcon(isActive)] }, String(i)));
2161
2203
  }
2162
2204
  function renderValueBlock$1(title, sum) {
2163
2205
  return (jsxs("div", { className: "flex flex-col text-left whitespace-pre", children: [jsxs("span", { className: "text-h6", children: [addSpacesBetweenNumbers(sum), " \u20BD"] }), jsx("span", { className: "text-secondary-text text-l mt-1", children: title })] }));
@@ -2208,35 +2250,25 @@
2208
2250
  return (jsx("section", { className: `relative overflow-hidden text-left border border-solid box-border
2209
2251
  p-9 min-w-[697px] min-h-[319px]
2210
2252
  ${BorderVersionStyleMap[version]}
2211
- ${className}`, role: "listitem", children: jsx(BaseTile, { className: "flex justify-between", title: tileTitle, image: tileImage, children: jsxs("div", { className: "flex flex-col justify-between", children: [jsxs("div", { className: "flex itens-center justify-between mb-4", children: [description ? jsx(Description, { className: "text-h6", description: description }) : null, additionalDescription ? (jsxs("div", { className: "text-m-light text-secondary-text", children: [" ", additionalDescription, " "] })) : null] }), cardList?.length ? (jsx("div", { className: `${cardColumnsModeStyleMap[columnsMode]}`, role: "list", children: renderCardList(cardList, columnsMode) })) : null] }) }) }));
2253
+ ${className}`, role: "listitem", children: jsx(BaseTile, { className: "flex justify-between", title: tileTitle, image: tileImage, children: jsxs("div", { className: "flex flex-col justify-between", children: [jsxs("div", { className: "flex itens-center justify-between mb-4", children: [description ? jsx("span", { className: "text-h6", children: description }) : null, additionalDescription ? (jsxs("span", { className: "text-m-light text-secondary-text", children: [" ", additionalDescription, " "] })) : null] }), cardList?.length ? (jsx("div", { className: `${cardColumnsModeStyleMap[columnsMode]}`, role: "list", children: renderCardList(cardList, columnsMode) })) : null] }) }) }));
2212
2254
  });
2213
2255
  const renderCardList = (cardList, columnsMode) => cardList.map((item, i) => (jsxs("div", { className: columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : '', role: "listitem", children: [item?.parameter ? (jsx("span", { className: `pr-2.5 ${getItemListFontSize(columnsMode)}`, children: item.parameter })) : null, item?.parameterDesccription ? (jsx("span", { className: "text-m-light text-secondary-text", children: item.parameterDesccription })) : null] }, String(i))));
2214
2256
 
2215
2257
  const BLUR_BLOCK_CLASSES$1 = 'absolute top-0 bottom-0 w-[84px]';
2216
- const CARD_FULL_VIEW_COUNT$1 = 1;
2258
+ const CARD_FULL_VIEW_COUNT = 1;
2217
2259
  const InvestmentGallery = JSX(({ cards = [], className = '', title, version = 'primary', ...rest }) => {
2218
- const [activeCardIndex, setActiveCardIndex] = useState(0);
2219
- const cardWidth = 525;
2220
- return (jsxs(BlockWrapper, { className: `relative font-sans p-9 overflow-hidden text-center ${VersionStyleMap[version]} ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-9", title: title }) : null, jsxs("div", { children: [jsx("div", { className: "flex duration-1000 gap-3.5", style: { transform: `translateX(-${activeCardIndex * cardWidth}px)` }, role: "list", children: cards?.length ? cards.map(renderInvestmentGalleryCard(className, version)) : null }), renderNavButtons$1({
2221
- cardsCount: cards.length,
2222
- activeCardIndex,
2223
- setActiveCardIndex,
2260
+ const cardWidth = 710;
2261
+ const [activeIndex, controls] = useCarouselControls({
2262
+ itemCount: cards.length,
2263
+ visibleItemCount: CARD_FULL_VIEW_COUNT,
2264
+ });
2265
+ return (jsxs(BlockWrapper, { className: `relative font-sans p-9 overflow-hidden text-center ${VersionStyleMap[version]} ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-9", title: title }) : null, jsxs("div", { children: [jsx("div", { className: "flex duration-1000 gap-3.5", style: { transform: `translateX(-${activeIndex * cardWidth}px)` }, role: "list", children: cards?.length ? cards.map(renderInvestmentGalleryCard(className, version)) : null }), renderArrows({
2266
+ ...controls,
2267
+ btnClass: ['left-8', 'right-8'],
2268
+ className: 'top-1/2 mt-3',
2224
2269
  })] }), jsx("div", { className: `${BLUR_BLOCK_CLASSES$1} left-0 ${version === 'secondary' ? 'bg-opacity-from-main' : 'bg-opacity-from-white'}` }), jsx("div", { className: `${BLUR_BLOCK_CLASSES$1} right-0 ${version === 'secondary' ? 'bg-opacity-to-main' : 'bg-opacity-to-white'}` })] }));
2225
2270
  });
2226
2271
  const renderInvestmentGalleryCard = (className, version) => (card, i) => jsx(InvestmentGalleryCard, { className: className, version: version, ...card }, String(i));
2227
- const renderNavButtons$1 = ({ cardsCount, activeCardIndex, setActiveCardIndex }) => {
2228
- const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT$1;
2229
- const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT$1;
2230
- const showPrevButton = isUseSlider && activeCardIndex > 0;
2231
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
2232
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
2233
- return (jsx("div", { children: renderArrows({
2234
- handler: [handlePrevClick, handleNextClick],
2235
- isShown: [showPrevButton, showNextButton],
2236
- btnClass: ['left-8', 'right-8'],
2237
- className: 'top-1/2 mt-3',
2238
- }) }));
2239
- };
2240
2272
 
2241
2273
  function joinList(sep) {
2242
2274
  return (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: i }, el) : [el]), []);
@@ -2339,16 +2371,16 @@
2339
2371
  const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2340
2372
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
2341
2373
  const buttonsWithClass = buttons?.map((_) => ({ ..._, className: 'min-w-[168px]' }));
2342
- return (jsxs(BlockWrapper, { className: `flex justify-between font-sans p-9 box-border relative min-h-[320px]
2374
+ return (jsxs(BlockWrapper, { className: `flex justify-between font-sans p-[50px] box-border relative min-h-[320px]
2343
2375
  ${getTileMinHeight(className)}
2344
2376
  ${VersionStyleMap[version]}
2345
- ${className}`, ...rest, children: [jsxs(BaseTile, { className: "z-10", title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap mb-6 w-full
2346
- ${textColorClass} ${AlignText[alignTitle]}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { buttons: buttonsWithClass, className: "flex gap-4", ...rest })) : null, children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 items-center", children: [qr?.src ? (jsx("div", { className: `flex justify-center mr-5 bg-white rounded-md ${containerStyle}`, children: jsx(ImgInner, { className: "w-fit", image: qr }) })) : null, renderList$1(version, items)] })] }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(ImgInner, { image: image }) })) : null] }));
2377
+ ${className}`, ...rest, children: [jsxs(BaseTile, { className: "z-10", title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap mb-7 w-full
2378
+ ${textColorClass} ${AlignText[alignTitle]}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { buttons: buttonsWithClass, className: "flex gap-4 mt-8", ...rest })) : null, children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 items-center mb-3", children: [qr?.src ? (jsx("div", { className: `flex justify-center mr-5 bg-white rounded-md ${containerStyle}`, children: jsx(ImgInner, { className: "w-fit", image: qr }) })) : null, renderList$1(version, items)] })] }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(ImgInner, { image: image }) })) : null] }));
2347
2379
  });
2348
2380
  const renderList$1 = (version, items) => {
2349
2381
  return items?.length ? (jsx(List, { items: items, itemClassName: "text-l-light mb-2 last:mb-0", version: version })) : (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" }));
2350
2382
  };
2351
- const renderDescription$1 = (description) => description ? jsx("p", { className: "text-xl-light mb-5", children: description }) : null;
2383
+ const renderDescription$1 = (description) => description ? jsx("p", { className: "text-xl-light mb-5 pt-0.5", children: description }) : null;
2352
2384
 
2353
2385
  function renderClusterer(yandexMaps, map, points) {
2354
2386
  map.geoObjects.removeAll();
@@ -2756,19 +2788,15 @@
2756
2788
  const OfficeServicesBlock = JSX(({ className = '', title, servicesList, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans bg-white p-8 flex flex-col ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h5", className: "mb-5", title: title }) : null, servicesList?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: servicesList.map(renderListItems) })) : null] })));
2757
2789
  const renderListItems = (itemList, i) => (jsxs("li", { className: "flex mb-5 last:mb-0 list-none", children: [itemList.icon ? (jsx(ImgInner, { className: "mr-3 min-w-6 min-h-6 w-6 h-6", width: "24", height: "24", asSVG: true, image: getIconWithVersion(itemList.icon) })) : null, itemList.label ? jsx("span", { className: "text-l-light", children: itemList.label }) : null] }, `list_item_${String(i)}`));
2758
2790
 
2759
- const OtherProducts = JSX(({ className = '', children, ...rest }) => (jsx(BlockWrapper, { className: `font-sans text-primary-text ${className}`, ...rest, children: children })));
2791
+ const OtherProducts = JSX(({ className = '', ...rest }) => (jsx(BlockWrapper, { className: `font-sans text-primary-text ${className}`, ...rest, children: renderChildren(rest) })));
2760
2792
  OtherProducts.childrenTypes = ['OtherProductsItem'];
2761
2793
 
2762
- function getParentBlockDef(ancestors, type) {
2763
- const [block] = (ancestors || [])
2764
- .map((item) => item)
2765
- .reverse()
2766
- .find(([_]) => _ && 'type' in _ && (!type || type === _.type)) || [];
2767
- return block || {};
2794
+ function getParentBlockDef(options) {
2795
+ return options?.parent || {};
2768
2796
  }
2769
2797
 
2770
- function getParentBlockContent(ancestors, defaultContent) {
2771
- const { content } = getParentBlockDef(ancestors);
2798
+ function getParentBlockContent(options, defaultContent) {
2799
+ const { content } = getParentBlockDef(options);
2772
2800
  return content || defaultContent;
2773
2801
  }
2774
2802
 
@@ -2792,9 +2820,9 @@
2792
2820
  };
2793
2821
 
2794
2822
  const icons = ['ArrowDownIcon', 'ArrowUpIcon'];
2795
- const OtherProductsItem = JSX(({ className, page, ancestors, label = '', isUnfolded: unfoldedByDefault, children }) => {
2796
- const { colorPalette } = getParentBlockContent(ancestors, {});
2797
- return (jsx("div", { className: `border-0 border-b border-solid border-main-divider ${className}`, children: jsx(Foldable, { unfoldedByDefault: unfoldedByDefault, renderFoldableSection: ({ isUnfolded }) => (jsx("div", { className: "box-border", children: jsx(FoldableSection, { className: "grid grid-cols-12 gap-1 border-box", isUnfolded: isUnfolded, children: children }) })), renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(DefaultFoldButton, { label: label, icon: icons[Number(isUnfolded)], dataTheme: page?.colorPalette || colorPalette, onClick: onToggle })) }) }));
2823
+ const OtherProductsItem = JSX(({ className, label = '', isUnfolded: unfoldedByDefault, ...rest }) => {
2824
+ const { colorPalette } = getParentBlockContent(rest.options, {});
2825
+ return (jsx("div", { className: `border-0 border-b border-solid border-main-divider ${className}`, children: jsx(Foldable, { unfoldedByDefault: unfoldedByDefault, renderFoldableSection: ({ isUnfolded }) => (jsx("div", { className: "box-border", children: jsx(FoldableSection, { className: "grid grid-cols-12 gap-1 border-box", isUnfolded: isUnfolded, children: renderChildren(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(DefaultFoldButton, { label: label, icon: icons[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette || colorPalette, onClick: onToggle })) }) }));
2798
2826
  });
2799
2827
  OtherProductsItem.childrenTypes = []; // All types of blocks are suitable
2800
2828
 
@@ -2879,10 +2907,10 @@
2879
2907
 
2880
2908
  const renderBenefit$1 = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => (jsx(BenefitItem, { icon: icon, label: label, description: description, version: version, benefitsVersion: benefitsVersion }, String(i)));
2881
2909
 
2882
- const ProductBlockInner = JSX(({ className = '', title, headlineVersion = 'L', description, benefitsCountOfRow = 3, benefits, benefitsVersion, buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', ...rest }) => {
2910
+ const ProductBlockInner = JSX(({ className = '', title, headlineVersion = 'L', description, benefitsCountOfRow = 3, benefits, benefitsVersion, buttons, footnote, image, items, version = 'primary', isDotted = true, textBlockClassName = '', ...rest }) => {
2883
2911
  const benefitsCount = benefits?.filter((_) => _.label)?.length;
2884
2912
  const benefitsContainerStyles = getBenefitsContainerStyles(benefitsCountOfRow);
2885
- return (jsxs("div", { className: `flex grow justify-between items-stretch h-full ${className}`, children: [jsxs("div", { className: `flex flex-col ${textBlockClassName}`, children: [jsx(Headline, { title: title, description: description, className: `!p-0 max-w-[600px]`, bgColorHeadline: version, headlineVersion: headlineVersion, align: "left", ...rest }), jsxs(BaseTile, { buttons: buttons?.length ? (jsx(ButtonSection, { buttons: buttons, className: "flex gap-4", ...rest })) : null, children: [benefitsCount ? (jsx("div", { className: benefitsContainerStyles, children: benefits.map(renderBenefit$1(version, benefitsVersion)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-h6", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] })] }), image?.src && jsx(ImgInner, { className: "mt-[-50px]", image: image })] }));
2913
+ return (jsxs("div", { className: `flex grow justify-between items-stretch h-full ${className}`, children: [jsxs("div", { className: `flex flex-col ${textBlockClassName}`, children: [jsx(Headline, { title: title, description: description, className: `!p-0 max-w-[600px]`, bgColorHeadline: version, headlineVersion: headlineVersion, align: "left", ...rest }), jsxs("div", { className: "flex flex-col justify-between h-full", children: [jsxs(BaseTile, { buttons: buttons?.length ? (jsx(ButtonSection, { buttons: buttons, className: "flex gap-4", ...rest })) : null, children: [benefitsCount ? (jsx("div", { className: benefitsContainerStyles, children: benefits.map(renderBenefit$1(version, benefitsVersion)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-h6", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] }), footnote ? jsx("p", { className: "text-m-light pt-12", children: footnote }) : null] })] }), image?.src && jsx(ImgInner, { className: "mt-[-50px]", image: image })] }));
2886
2914
  });
2887
2915
  const getBenefitsContainerStyles = (benefitsCountOfRow = 2) => `gap-6 mt-6 ${benefitsCountOfRow > 2
2888
2916
  ? 'inline-grid grid-cols-[auto_auto_auto]'
@@ -2994,42 +3022,33 @@
2994
3022
  const RecommendationCard = JSX(({ className = '', title, description, items, image, version, socialMedia, button }) => {
2995
3023
  const tileTitle = title ? (jsx(Heading, { headingType: "h5", as: "h3", className: "mb-3.5 z-10", title: title })) : null;
2996
3024
  const tileImage = image?.src ? (jsx(ImgInner, { className: "absolute bottom-0 right-0 m-0", image: image })) : null;
2997
- return (jsx("section", { className: `relative overflow-hidden text-left border border-solid box-border p-7 min-w-[524px] min-h-[218px] ${className}`, role: "listitem", children: jsx(BaseTile, { className: "flex justify-between", title: tileTitle, image: tileImage, children: jsxs("div", { className: "h-full flex flex-col justify-between", children: [description ? jsx(Description, { className: "mb-2", description: description }) : null, items?.length ? (jsx(List, { className: "text-xl-light flex flex-col flex-1 gap-2 max-w-[236px]", items: items, version: version })) : null, socialMedia ? (jsx(SocialMedia, { className: "pt-10 pb-0", media: socialMedia, version: version })) : null, button?.text ? (jsx("div", { className: "pt-2", children: renderButton({ button, buttonClassName: 'mt-16' }) })) : null] }) }) }));
3025
+ return (jsx("section", { className: `relative overflow-hidden text-left border border-solid box-border p-7 min-w-[524px] min-h-[218px] ${className}`, role: "listitem", children: jsx(BaseTile, { className: "flex justify-between", title: tileTitle, image: tileImage, children: jsxs("div", { className: "h-full flex flex-col justify-between", children: [description ? jsx("span", { className: "mb-2", children: description }) : null, items?.length ? (jsx(List, { className: "text-xl-light flex flex-col flex-1 gap-2 max-w-[236px]", items: items, version: version })) : null, socialMedia ? (jsx(SocialMedia, { className: "pt-10 pb-0", media: socialMedia, version: version })) : null, button?.text ? (jsx("div", { className: "pt-2", children: renderButton({ button, buttonClassName: 'mt-16' }) })) : null] }) }) }));
2998
3026
  });
2999
3027
 
3000
3028
  const BLUR_BLOCK_CLASSES = 'absolute top-0 bottom-0 w-[84px]';
3001
- const CARD_FULL_VIEW_COUNT = 2;
3029
+ const CARD_VIEW_COUNT = 2;
3002
3030
  const CARD_SHIFT = 525;
3003
3031
  const Recommendation = JSX(({ recommendations = [], className = '', title, version = 'primary', ...rest }) => {
3004
- const [activeCardIndex, setActiveCardIndex] = useState(0);
3005
- return (jsxs(BlockWrapper, { className: `relative font-sans p-9 overflow-hidden text-center ${VersionStyleMap[version]} ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-6", title: title }) : null, jsxs("div", { children: [jsx("div", { className: "flex duration-1000 gap-3.5", style: { transform: `translateX(-${activeCardIndex * CARD_SHIFT}px)` }, role: "list", children: recommendations?.length
3032
+ const [activeIndex, controls] = useCarouselControls({
3033
+ itemCount: recommendations.length,
3034
+ visibleItemCount: CARD_VIEW_COUNT,
3035
+ });
3036
+ return (jsxs(BlockWrapper, { className: `relative font-sans p-9 overflow-hidden text-center ${VersionStyleMap[version]} ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-6", title: title }) : null, jsxs("div", { children: [jsx("div", { className: "flex duration-1000 gap-3.5", style: { transform: `translateX(-${activeIndex * CARD_SHIFT}px)` }, role: "list", children: recommendations.length
3006
3037
  ? recommendations.map((card, i) => (jsx(RecommendationCard, { version: version, className: BorderVersionStyleMap[version], ...card }, String(i))))
3007
- : null }), renderNavButtons({
3008
- cardsCount: recommendations.length,
3009
- activeCardIndex,
3010
- setActiveCardIndex,
3038
+ : null }), renderArrows({
3039
+ ...controls,
3040
+ btnClass: ['left-8', 'right-8'],
3041
+ className: 'top-1/2 mt-3',
3011
3042
  })] }), jsx("div", { className: `${BLUR_BLOCK_CLASSES} left-0 ${version === 'secondary' ? 'bg-opacity-from-main' : 'bg-opacity-from-white'}` }), jsx("div", { className: `${BLUR_BLOCK_CLASSES} right-0 ${version === 'secondary' ? 'bg-opacity-to-main' : 'bg-opacity-to-white'}` })] }));
3012
3043
  });
3013
- const renderNavButtons = ({ cardsCount, activeCardIndex, setActiveCardIndex, }) => {
3014
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
3015
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
3016
- const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT;
3017
- const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT;
3018
- const showPrevButton = isUseSlider && activeCardIndex > 0;
3019
- return (jsx("div", { children: renderArrows({
3020
- handler: [handlePrevClick, handleNextClick],
3021
- isShown: [showPrevButton, showNextButton],
3022
- btnClass: ['left-8', 'right-8'],
3023
- className: 'top-1/2 mt-3',
3024
- }) }));
3025
- };
3026
3044
 
3027
- const RollupItem = JSX(({ className = '', label = 'Развернуть', isExpanded, isFoldButtonOnTop = true, version = 'primary', children, }) => (jsx("div", { className: `border-b border-solid border-main-divider w-full ${className}`, children: jsx(Foldable, { isFoldButtonOnTop: isFoldButtonOnTop, unfoldedByDefault: isExpanded, renderFoldableSection: ({ isUnfolded }) => (jsx("div", { className: "box-border", children: jsx(FoldableSection, { className: `grid grid-cols-12 gap-1 border-box`, isUnfolded: isUnfolded, children: children }) })), renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton({ isUnfolded, onToggle, label, version }) }) })));
3045
+ const RollupItem = JSX(({ className = '', label = 'Развернуть', isExpanded, isFoldButtonOnTop = true, version = 'primary', ...rest }) => (jsx("div", { className: `border-b border-solid border-main-divider w-full ${className}`, children: jsx(Foldable, { isFoldButtonOnTop: isFoldButtonOnTop, unfoldedByDefault: isExpanded, renderFoldableSection: ({ isUnfolded }) => (jsx("div", { className: "box-border", children: jsx(FoldableSection, { className: `grid grid-cols-12 gap-1 border-box`, isUnfolded: isUnfolded, children: renderChildren(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton({ isUnfolded, onToggle, label, version }) }) })));
3028
3046
  RollupItem.childrenTypes = [];
3029
3047
  const renderFoldButton = ({ isUnfolded, onToggle, label, version }) => {
3030
- const icons = ['PlusIcon', 'MinusIcon'];
3048
+ const iconsPrimary = ['PlusIcon', 'MinusIcon'];
3049
+ const iconsSecondary = ['ArrowDownIcon', 'ArrowUpIcon'];
3031
3050
  const labels = label ? [label, label] : ['Развернуть', 'Скрыть'];
3032
- return version === 'primary' ? (jsx(FoldButton, { icon: icons[Number(isUnfolded)], label: labels[Number(isUnfolded)], onClick: onToggle })) : (jsx(DefaultFoldButton, { icon: icons[Number(isUnfolded)], label: labels[Number(isUnfolded)], onClick: onToggle }));
3051
+ return version === 'primary' ? (jsx(FoldButton, { icon: iconsPrimary[Number(isUnfolded)], label: labels[Number(isUnfolded)], onClick: onToggle })) : (jsx(DefaultFoldButton, { icon: iconsSecondary[Number(isUnfolded)], label: labels[Number(isUnfolded)], onClick: onToggle }));
3033
3052
  };
3034
3053
  const FoldButton = JSX(({ label, icon, onClick }) => (jsxs("button", { className: "border-none bg-transparent px-9 pt-5 pb-3.5 flex justify-between text-left w-full font-sans text-h6 group cursor-pointer", onClick: onClick, children: [jsx("span", { className: "text-xl font-medium pr-2.5", children: label }), icon ? jsx(ImgInner, { image: getIconWithVersion({ icon }), width: "24", height: "24", asSVG: true }) : null] })));
3035
3054
 
@@ -3224,7 +3243,7 @@
3224
3243
  return (jsxs(BlockWrapper, { className: [
3225
3244
  'box-border py-[50px] font-sans',
3226
3245
  shortGaps ? 'px-20' : 'px-[70px]',
3227
- 'flex flex-col items-center',
3246
+ 'flex flex-col items-center overflow-hidden',
3228
3247
  styleMap.background,
3229
3248
  styleMap.title,
3230
3249
  className,
@@ -3410,16 +3429,15 @@
3410
3429
 
3411
3430
  const COLUMN_WIDTH = 140;
3412
3431
  const InnerTableBodyItem = JSX(({ rows }) => {
3413
- const [activeColumnIndex, setActiveColumnIndex] = useState(0);
3414
- const handleNextClick = () => setActiveColumnIndex(activeColumnIndex + 1);
3415
- const handlePrevClick = () => setActiveColumnIndex(activeColumnIndex - 1);
3416
3432
  const rowsLength = rows?.[0]?.length ?? 0;
3417
- const showNextButton = rowsLength > 3 && rowsLength > activeColumnIndex + 4;
3418
- const showPrevButton = activeColumnIndex > 0;
3419
- return (jsxs("div", { children: [rows?.map(renderRow(activeColumnIndex)), renderArrows({
3420
- handler: [handlePrevClick, handleNextClick],
3421
- isShown: [showPrevButton, showNextButton],
3422
- btnClass: ['right-3 top-24', 'right-3 top-2'],
3433
+ const CARD_VIEW_COUNT = 5;
3434
+ const [activeIndex, controls] = useCarouselControls({
3435
+ itemCount: rowsLength,
3436
+ visibleItemCount: CARD_VIEW_COUNT,
3437
+ });
3438
+ return (jsxs("div", { children: [rows?.map(renderRow(activeIndex)), renderArrows({
3439
+ ...controls,
3440
+ btnClass: ['left-3 top-20', 'right-3 top-20'],
3423
3441
  className: '',
3424
3442
  })] }));
3425
3443
  });
@@ -3463,11 +3481,11 @@
3463
3481
 
3464
3482
  const TariffsTableRowContainer = JSX(({ children, tableInner, onHideContentClick }) => (jsxs("div", { className: "self-start flex flex-col", role: "row", children: [jsx("div", { className: "flex", children: children }), tableInner ? (jsx("div", { className: "origin-top animate-expansion", children: jsx(InnerTable, { ...tableInner, onClick: onHideContentClick }) })) : null] })));
3465
3483
 
3466
- const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, rowIdx, ...rest }) => {
3484
+ const TariffsTableRow = JSX(({ row: { header, data }, activeIndex, rowIdx, ...rest }) => {
3467
3485
  const [tableInner, setTableInner] = useState(undefined);
3468
3486
  const [openTableInnerIdx, setOpenTableInnerIdx] = useState(undefined);
3469
3487
  const onHideContentClick = () => setTableInner(undefined);
3470
- return (jsxs(TariffsTableRowContainer, { onHideContentClick: onHideContentClick, tableInner: tableInner, ...rest, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(ImgInner, { className: "mr-[14px] max-w-6 max-h-6", image: getIconWithVersion(header.icon), width: "24px", height: "24px", asSVG: true })) : null, header?.title ? jsx("div", { className: "text-m-light", children: header?.title }) : null] }) }), data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, rowIdx: rowIdx, cellIdx: i, setTableInner: setTableInner, tableInner: tableInner, openTableInnerIdx: openTableInnerIdx, setOpenTableInnerIdx: setOpenTableInnerIdx, ...rest }, String(i)))) })) : null] }));
3488
+ return (jsxs(TariffsTableRowContainer, { onHideContentClick: onHideContentClick, tableInner: tableInner, ...rest, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(ImgInner, { className: "mr-[14px] max-w-6 max-h-6", image: getIconWithVersion(header.icon), width: "24px", height: "24px", asSVG: true })) : null, header?.title ? jsx("div", { className: "text-m-light", children: header?.title }) : null] }) }), data?.length ? (jsx(TableCarouselContainer, { activeIndex: activeIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, rowIdx: rowIdx, cellIdx: i, setTableInner: setTableInner, tableInner: tableInner, openTableInnerIdx: openTableInnerIdx, setOpenTableInnerIdx: setOpenTableInnerIdx, ...rest }, String(i)))) })) : null] }));
3471
3489
  });
3472
3490
 
3473
3491
  const TariffsTable = JSX(({ className = '', title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
@@ -3476,15 +3494,15 @@
3476
3494
  header,
3477
3495
  data: colData.map((col) => col?.[i] || []),
3478
3496
  }));
3479
- const columnsLength = colData.length;
3497
+ const itemCount = colData.length;
3480
3498
  const [activeIndex, controls] = useCarouselControls({
3481
- itemsCount: colData.length,
3499
+ itemCount: itemCount,
3482
3500
  visibleItemCount: COLS_LENGTH_FOR_SCROLL,
3483
3501
  });
3484
- const isScrollAvailable = colData.length > COLS_LENGTH_FOR_SCROLL;
3485
- const rows = (rowData || []).map((row, i) => (jsx(TariffsTableRow, { row: row, activeCardIndex: activeIndex, rowIdx: i, ...rest }, String(i))));
3502
+ const { isScrollAvailable } = controls;
3503
+ const rows = (rowData || []).map((row, i) => (jsx(TariffsTableRow, { row: row, activeIndex: activeIndex, rowIdx: i, ...rest }, String(i))));
3486
3504
  const [visibleRows, hiddenRows] = hiddenRowsNum > 0 ? [rows.slice(0, -hiddenRowsNum), rows.slice(-hiddenRowsNum)] : [rows, []];
3487
- return (jsxs(BlockWrapper, { className: `bg-white font-sans p-[50px] overflow-hidden text-primary-text relative ${columnsLength > 1 ? 'pr-0' : ''} ${className}`, ...rest, children: [renderTitle({ title, description }), renderDescription(description), hiddenRowsNum > 0 ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs(Wrapper, { controls: controls, isScrollAvailable: isScrollAvailable, children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: renderDefaultFoldButton })) : (jsx(Wrapper, { controls: controls, isScrollAvailable: isScrollAvailable, children: rows }))] }));
3505
+ return (jsxs(BlockWrapper, { className: `bg-white font-sans p-[50px] overflow-hidden text-primary-text relative ${itemCount > 1 ? 'pr-0' : ''} ${className}`, ...rest, children: [renderTitle({ title, description }), renderDescription(description), hiddenRowsNum > 0 ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs(Wrapper, { controls: controls, isScrollAvailable: isScrollAvailable, children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: renderDefaultFoldButton })) : (jsx(Wrapper, { controls: controls, isScrollAvailable: isScrollAvailable, children: rows }))] }));
3488
3506
  });
3489
3507
  function renderTitle({ title, description }) {
3490
3508
  return title ? (jsx(Heading, { headingType: "h3", className: `text-center ${description ? 'mb-2.5' : 'mb-8'}`, title: title })) : null;
@@ -3492,15 +3510,13 @@
3492
3510
  function renderDescription(description) {
3493
3511
  return description ? jsx("div", { className: "mb-9 text-center text-l", children: description }) : null;
3494
3512
  }
3495
- const Wrapper = JSX(({ children, controls, isScrollAvailable }) => {
3496
- const { inc, dec, canDec, canInc } = controls;
3497
- return (jsxs("div", { role: "table", children: [jsxs("div", { className: "relative", children: [children, isScrollAvailable ? (jsx("div", { children: renderArrows({
3498
- handler: [inc, dec],
3499
- isShown: [canDec, canInc],
3500
- btnClass: ['top-[108px]', 'top-11'],
3501
- className: 'right-7',
3502
- }) })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
3503
- });
3513
+ const Wrapper = JSX(({ children, controls, isScrollAvailable }) => (jsxs("div", { role: "table", children: [jsxs("div", { className: "relative", children: [children, isScrollAvailable
3514
+ ? renderArrows({
3515
+ ...controls,
3516
+ btnClass: ['top-[108px]', 'top-[44px]'],
3517
+ className: 'right-7',
3518
+ })
3519
+ : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] })));
3504
3520
 
3505
3521
  const textBlockStyleMaps = {
3506
3522
  primary: {
@@ -3542,7 +3558,7 @@
3542
3558
  const Tile = JSX((props) => {
3543
3559
  const { title, headingType = 'h3', description, items, buttons, image, isDotted = true, listItemSize = 'M', className = '', version = 'primary', tags, children, ...rest } = props;
3544
3560
  const headingClassName = version === 'primary' ? 'text-primary-text' : '';
3545
- return (jsx(BlockWrapper, { className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsxs(BaseTile, { title: title ? (jsx(Heading, { headingType: headingType, as: "h2", title: title, className: `whitespace-pre-wrap max-w-[600px] ${headingClassName}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { buttons: buttons.map((button) => ({ ...button, className: 'min-w-[158px]' })), className: "flex mt-8 gap-3", ...rest })) : null, image: image?.src ? jsx(ImgInner, { className: "mt-auto ml-7", image: image }) : null, children: [description ? (jsx(Description, { className: "max-w-[600px] text-xl-light mt-2.5", description: description })) : null, children, renderList({ version, isDotted, listItemSize }, items), tags?.length ? jsx(Tags, { tags: tags, className: "mt-5" }) : null] }) }));
3561
+ return (jsx(BlockWrapper, { className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsxs(BaseTile, { title: title ? (jsx(Heading, { headingType: headingType, as: "h2", title: title, className: `whitespace-pre-wrap max-w-[600px] ${headingClassName}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { buttons: buttons.map((button) => ({ ...button, className: 'min-w-[158px]' })), className: "flex mt-8 gap-3", ...rest })) : null, image: image?.src ? jsx(ImgInner, { className: "mt-auto ml-7", image: image }) : null, children: [description ? (jsx("div", { className: "max-w-[600px] mt-2.5", children: jsx(Paragraph, { size: "text-xl-light", children: description }) })) : null, children, renderList({ version, isDotted, listItemSize }, items), tags?.length ? jsx(Tags, { tags: tags, className: "mt-5" }) : null] }) }));
3546
3562
  });
3547
3563
  function renderList({ version, isDotted, listItemSize }, items) {
3548
3564
  return items?.length ? (jsx(List, { items: items, isDotted: isDotted, className: "mt-2.5", listItemSize: listItemSize, itemClassName: "mb-1.5", version: version })) : null;
@@ -3567,17 +3583,25 @@
3567
3583
  primary: 'bg-white',
3568
3584
  secondary: 'bg-primary-main',
3569
3585
  };
3570
- const VerticalLayout = JSX(({ className = '', children, gap = '', align = 'left', version = 'transparent', ...rest }) => (jsx(BlockWrapper, { className: [
3586
+ const VerticalLayout = JSX(({ className = '', gap = '', align = 'left', version = 'transparent', ...rest }) => (jsx(BlockWrapper, { className: [
3571
3587
  'flex flex-col',
3572
3588
  gapStyleMap[gap],
3573
3589
  alignStyle[align],
3574
3590
  backgroundStyleMap[version],
3575
3591
  className,
3576
- ].join(' '), ...rest, children: children })));
3592
+ ].join(' '), ...rest, children: renderChildren(rest) })));
3577
3593
  VerticalLayout.childrenTypes = {
3578
3594
  exclude: ['VerticalLayout'],
3579
3595
  };
3580
3596
 
3597
+ const MIN_COL_SPAN = 10;
3598
+ const getPaddings = (className) => getColSpan(className) < MIN_COL_SPAN ? 'py-6 px-11' : 'py-12 px-32';
3599
+
3600
+ const Video = JSX((props) => {
3601
+ const { title, src, previewImg, className = '', ...rest } = props;
3602
+ return (jsxs(BlockWrapper, { className: `bg-white ${getPaddings(className)} ${className}`, ...rest, children: [jsx(Headline, { title: title, headlineVersion: "M" }), src ? (jsx("video", { className: "m-auto w-full object-fill", preload: "metadata", poster: previewImg?.src, style: { maxHeight: 524 }, controls: true, children: jsx("source", { src: src }) })) : null] }));
3603
+ });
3604
+
3581
3605
  const Blocks = {
3582
3606
  Accordion,
3583
3607
  AccordionItem,
@@ -3626,12 +3650,9 @@
3626
3650
  TextBlock,
3627
3651
  Tile,
3628
3652
  VerticalLayout,
3653
+ Video,
3629
3654
  };
3630
3655
 
3631
- function style2className(style) {
3632
- return style ? style.filter(Boolean).join(' ') : '';
3633
- }
3634
-
3635
3656
  const api = LikeAPI();
3636
3657
  function useLikeService(pagePath) {
3637
3658
  const [likeCount, setLikeCount] = useState(0);
@@ -3673,59 +3694,25 @@
3673
3694
  return (jsxs("div", { className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className}`, children: [jsx(LikeButton, { onClick: handlerDecorator(likeService.like), ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: handlerDecorator(likeService.dislike), className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
3674
3695
  });
3675
3696
 
3676
- const DEFAULT_SLOT_NAME = null;
3677
-
3678
- const renderSlots = ({ slots, parent, options, ancestors = [], }) => Object.entries(slots || {}).reduce((res, [slotName, slotBlocks]) => ({
3679
- ...res,
3680
- [slotName]: renderBlocksList({
3681
- blocks: slotBlocks,
3682
- parent,
3683
- slotName,
3684
- options,
3685
- ancestors,
3686
- }),
3687
- }), {});
3688
-
3689
- function renderBlock({ block = {}, options, ancestors = [] }) {
3690
- const { key, page, blockDecorator, blocksRegistry = {} } = options;
3691
- const { type, slots, blocks: childBlocks } = block;
3692
- if (!(type && type in blocksRegistry)) {
3693
- console.warn(`No block with "${type}" is registered`);
3694
- }
3695
- const BlockComponent = type && blocksRegistry[type];
3696
- const subBlockRenderProps = { parent: block, options, ancestors };
3697
- const children = renderBlocksList({ ...subBlockRenderProps, blocks: childBlocks });
3698
- const blockSlots = slots ? renderSlots({ ...subBlockRenderProps, slots }) : {};
3699
- return blockDecorator({
3700
- blockClassName: `scroll-mt-12 ${style2className(block.style)}`,
3701
- block,
3702
- ancestors,
3703
- // Adjusted by decorator block and blockClassName
3704
- render: ({ block: adjustedBlock, blockClassName: adjustedBlockClassName }) => {
3705
- const { content } = adjustedBlock;
3706
- return BlockComponent ? (jsx(BlockComponent, { page: page, block: adjustedBlock, className: adjustedBlockClassName, ancestors: ancestors, slots: blockSlots, ...content, children: children }, key)) : null;
3707
- },
3708
- }, key);
3709
- }
3710
-
3711
- const renderBlocksList = ({ blocks, parent, slotName = DEFAULT_SLOT_NAME, options, ancestors = [], }) => (blocks || []).map((_, j) => renderBlock({
3712
- block: _,
3713
- options: { ...options, key: `${options.key ? options.key : _.type}-${j}` },
3714
- ancestors: [...ancestors, [parent, slotName]],
3715
- }));
3716
-
3717
- const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
3718
3697
  const ContentPage = JSX((props) => {
3719
3698
  const { className = '', blocksRegistry, blockDecorator, data = {} } = props;
3720
3699
  const { style: pageStyle, blocks, slots, likeControl, colorPalette = 'pc' } = data;
3721
3700
  const options = {
3722
3701
  key: '',
3723
- blocksRegistry,
3724
3702
  page: data,
3725
- blockDecorator: blockDecorator || defaultBlockDecorator,
3703
+ blocksRegistry,
3704
+ blockDecorator,
3705
+ parent: data,
3726
3706
  };
3727
- const pageSlots = renderSlots({ slots, parent: data, options });
3728
- return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [pageSlots?.header ? (jsx("div", { className: "mb-5 shadow-[0_8px_32px_0px_#00000014]", children: pageSlots.header })) : null, blocks?.length ? (jsxs("div", { className: "container grid grid-cols-12 gap-1", children: [renderBlocksList({ blocks, parent: data, options }), pageSlots?.footer ? pageSlots.footer : null] })) : null, likeControl ? renderLikeControl() : null] }));
3707
+ return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [slots?.header ? (jsx("div", { className: "mb-5 shadow-[0_8px_32px_0px_#00000014]", children: renderBlocksList(slots?.header, {
3708
+ ...options,
3709
+ slotName: 'header',
3710
+ }) })) : null, jsxs("div", { className: "container grid grid-cols-12 gap-1", children: [renderBlocksList(blocks, options), slots?.footer
3711
+ ? renderBlocksList(slots?.footer, {
3712
+ ...options,
3713
+ slotName: 'footer',
3714
+ })
3715
+ : null] }), likeControl ? renderLikeControl() : null] }));
3729
3716
  });
3730
3717
  ContentPage.childrenTypes = [];
3731
3718
  ContentPage.slots = () => ['header', 'footer'];
@@ -3733,7 +3720,7 @@
3733
3720
  return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto" }) }));
3734
3721
  }
3735
3722
 
3736
- const packageVersion = "0.6.32";
3723
+ const packageVersion = "0.6.34";
3737
3724
 
3738
3725
  exports.Blocks = Blocks;
3739
3726
  exports.ContentPage = ContentPage;