@redneckz/wildless-cms-uni-blocks 0.6.33 → 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 (1058) 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 +365 -385
  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/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  36. package/dist/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  37. package/dist/BlockRenderer/BlockRendererOptions.js +2 -0
  38. package/dist/BlockRenderer/BlockRendererOptions.js.map +1 -0
  39. package/dist/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  40. package/dist/BlockRenderer/defaultBlockDecorator.js +5 -0
  41. package/dist/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  42. package/dist/BlockRenderer/getParentBlockContent.d.ts +2 -0
  43. package/dist/{model → BlockRenderer}/getParentBlockContent.js +2 -2
  44. package/dist/BlockRenderer/getParentBlockContent.js.map +1 -0
  45. package/dist/BlockRenderer/getParentBlockDef.d.ts +3 -0
  46. package/dist/BlockRenderer/getParentBlockDef.js +7 -0
  47. package/dist/BlockRenderer/getParentBlockDef.js.map +1 -0
  48. package/dist/BlockRenderer/renderBlock.d.ts +3 -0
  49. package/dist/BlockRenderer/renderBlock.js +27 -0
  50. package/dist/BlockRenderer/renderBlock.js.map +1 -0
  51. package/dist/BlockRenderer/renderBlockList.d.ts +9 -0
  52. package/dist/BlockRenderer/renderBlockList.js +14 -0
  53. package/dist/BlockRenderer/renderBlockList.js.map +1 -0
  54. package/dist/BlockRenderer/renderChildren.d.ts +10 -0
  55. package/dist/BlockRenderer/renderChildren.js +13 -0
  56. package/dist/BlockRenderer/renderChildren.js.map +1 -0
  57. package/dist/components/Accordion/Accordion.js +2 -1
  58. package/dist/components/Accordion/Accordion.js.map +1 -1
  59. package/dist/components/Accordion/Accordion.mobile.js +2 -1
  60. package/dist/components/Accordion/Accordion.mobile.js.map +1 -1
  61. package/dist/components/AccordionItem/AccordionItem.js +2 -1
  62. package/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  63. package/dist/components/AccordionItem/AccordionItem.mobile.js +5 -4
  64. package/dist/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  65. package/dist/components/Blocks.js +3 -1
  66. package/dist/components/Blocks.js.map +1 -1
  67. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  68. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  69. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  70. package/dist/components/Calculator/Calculator.js +22 -22
  71. package/dist/components/Calculator/Calculator.js.map +1 -1
  72. package/dist/components/Calculator/CalculatorValueBlock.js +1 -3
  73. package/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  74. package/dist/components/CardTransfer/CardTransfer.js +2 -1
  75. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  76. package/dist/components/Carousel/Carousel.d.ts +1 -0
  77. package/dist/components/Carousel/Carousel.js +16 -14
  78. package/dist/components/Carousel/Carousel.js.map +1 -1
  79. package/dist/components/Carousel/CarouselContainer.d.ts +8 -5
  80. package/dist/components/Carousel/CarouselContainer.js +8 -5
  81. package/dist/components/Carousel/CarouselContainer.js.map +1 -1
  82. package/dist/components/Carousel/CarouselContent.d.ts +5 -8
  83. package/dist/components/Carousel/CarouselContent.js +0 -3
  84. package/dist/components/Carousel/CarouselContent.js.map +1 -1
  85. package/dist/components/CarouselCard/CarouselCard.d.ts +0 -2
  86. package/dist/components/CarouselCard/CarouselCard.js +4 -11
  87. package/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  88. package/dist/components/CarouselLinks/CarouselLinks.js +7 -7
  89. package/dist/components/CarouselLinks/CarouselLinks.js.map +1 -1
  90. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  91. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  92. package/dist/components/Catalog/Catalog.js +8 -11
  93. package/dist/components/Catalog/Catalog.js.map +1 -1
  94. package/dist/components/ComparisonTable/ComparisonTable.mobile.js +2 -2
  95. package/dist/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  96. package/dist/components/ComparisonTable/ComparisonTableBody.js +4 -4
  97. package/dist/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  98. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  99. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  100. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  101. package/dist/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  102. package/dist/components/ComparisonTable/ComparisonTableRows.js +8 -7
  103. package/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  104. package/dist/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  105. package/dist/components/ComparisonTable/TableCarouselContainer.js +1 -1
  106. package/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  107. package/dist/components/ComparisonTable/TableRow.d.ts +1 -1
  108. package/dist/components/ComparisonTable/TableRow.js +1 -1
  109. package/dist/components/ComparisonTable/TableRow.js.map +1 -1
  110. package/dist/components/ComparisonTable/constants.d.ts +1 -1
  111. package/dist/components/ComparisonTable/constants.js +1 -1
  112. package/dist/components/ContactsBlock/ContactsBlock.js +1 -3
  113. package/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  114. package/dist/components/ContentPage/ContentPage.js +13 -7
  115. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  116. package/dist/components/ExchangeRateTile/CurrencyTable.js +1 -3
  117. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  118. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -3
  119. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  120. package/dist/components/Footer/Footer.js +1 -1
  121. package/dist/components/Footer/Footer.js.map +1 -1
  122. package/dist/components/Footer/Footer.mobile.js +2 -2
  123. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  124. package/dist/components/Gallery/GalleryCardInner.js +2 -4
  125. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  126. package/dist/components/Gallery/GalleryContainer.d.ts +1 -1
  127. package/dist/components/Gallery/GalleryContainer.js +1 -3
  128. package/dist/components/Gallery/GalleryContainer.js.map +1 -1
  129. package/dist/components/Gallery/GalleryInner.js +9 -12
  130. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  131. package/dist/components/Header/Header.js +1 -1
  132. package/dist/components/Header/Header.js.map +1 -1
  133. package/dist/components/Header/Header.mobile.js +2 -3
  134. package/dist/components/Header/Header.mobile.js.map +1 -1
  135. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +23 -25
  136. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  137. package/dist/components/InvestmentGallery/InvestmentGallery.js +10 -20
  138. package/dist/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  139. package/dist/components/MobileAppTile/MobileAppTile.js +4 -4
  140. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  141. package/dist/components/OtherProducts/OtherProducts.js +2 -1
  142. package/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  143. package/dist/components/OtherProductsItem/OtherProductsItem.js +5 -4
  144. package/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  145. package/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  146. package/dist/components/ProductBlock/ProductBlockInner.js +2 -2
  147. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  148. package/dist/components/Recommendation/Recommendation.js +11 -21
  149. package/dist/components/Recommendation/Recommendation.js.map +1 -1
  150. package/dist/components/RollupItem/RollupItem.js +5 -3
  151. package/dist/components/RollupItem/RollupItem.js.map +1 -1
  152. package/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  153. package/dist/components/StepsBlock/StepsBlock.js +1 -1
  154. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  155. package/dist/components/TariffsTable/TariffsTable.js +12 -14
  156. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  157. package/dist/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  158. package/dist/components/TariffsTable/TariffsTableRow.js +2 -2
  159. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  160. package/dist/components/VerticalLayout/VerticalLayout.js +3 -2
  161. package/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  162. package/dist/components/Video/Video.d.ts +6 -0
  163. package/dist/components/Video/Video.js +12 -0
  164. package/dist/components/Video/Video.js.map +1 -0
  165. package/dist/components/Video/VideoContent.d.ts +8 -0
  166. package/dist/components/Video/VideoContent.js +2 -0
  167. package/dist/components/Video/VideoContent.js.map +1 -0
  168. package/dist/components/Video/getPaddings.d.ts +1 -0
  169. package/dist/components/Video/getPaddings.js +7 -0
  170. package/dist/components/Video/getPaddings.js.map +1 -0
  171. package/dist/hooks/useCarouselControls.d.ts +5 -3
  172. package/dist/hooks/useCarouselControls.js +19 -8
  173. package/dist/hooks/useCarouselControls.js.map +1 -1
  174. package/dist/model/JSXBlock.d.ts +4 -5
  175. package/dist/model/LinkProps.d.ts +1 -0
  176. package/dist/model/Picture.d.ts +8 -2
  177. package/dist/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  178. package/{mobile/dist/react → dist}/setup-fixture.js +4 -4
  179. package/dist/setup-fixture.js.map +1 -0
  180. package/dist/ui-kit/Button/renderArrows.d.ts +6 -4
  181. package/dist/ui-kit/Button/renderArrows.js +3 -2
  182. package/dist/ui-kit/Button/renderArrows.js.map +1 -1
  183. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  184. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  185. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +5 -2
  186. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  187. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  188. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  189. package/dist/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  190. package/dist/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  191. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  192. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  193. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  194. package/lib/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  195. package/lib/BlockRenderer/BlockRendererOptions.js +2 -0
  196. package/lib/BlockRenderer/BlockRendererOptions.js.map +1 -0
  197. package/lib/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  198. package/lib/BlockRenderer/defaultBlockDecorator.js +2 -0
  199. package/lib/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  200. package/lib/BlockRenderer/getParentBlockContent.d.ts +2 -0
  201. package/lib/BlockRenderer/getParentBlockContent.js +6 -0
  202. package/lib/BlockRenderer/getParentBlockContent.js.map +1 -0
  203. package/lib/BlockRenderer/getParentBlockDef.d.ts +3 -0
  204. package/lib/BlockRenderer/getParentBlockDef.js +4 -0
  205. package/lib/BlockRenderer/getParentBlockDef.js.map +1 -0
  206. package/lib/BlockRenderer/renderBlock.d.ts +3 -0
  207. package/lib/BlockRenderer/renderBlock.js +24 -0
  208. package/lib/BlockRenderer/renderBlock.js.map +1 -0
  209. package/lib/BlockRenderer/renderBlockList.d.ts +9 -0
  210. package/lib/BlockRenderer/renderBlockList.js +11 -0
  211. package/lib/BlockRenderer/renderBlockList.js.map +1 -0
  212. package/lib/BlockRenderer/renderChildren.d.ts +10 -0
  213. package/lib/BlockRenderer/renderChildren.js +10 -0
  214. package/lib/BlockRenderer/renderChildren.js.map +1 -0
  215. package/lib/common.css +1 -1
  216. package/lib/components/Accordion/Accordion.fixture.d.ts +3 -2
  217. package/lib/components/Accordion/Accordion.fixture.mobile.d.ts +3 -2
  218. package/lib/components/Accordion/Accordion.js +2 -1
  219. package/lib/components/Accordion/Accordion.js.map +1 -1
  220. package/lib/components/Accordion/Accordion.mobile.js +2 -1
  221. package/lib/components/Accordion/Accordion.mobile.js.map +1 -1
  222. package/lib/components/AccordionItem/AccordionItem.js +2 -1
  223. package/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  224. package/lib/components/AccordionItem/AccordionItem.mobile.js +5 -4
  225. package/lib/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  226. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +1 -1
  227. package/lib/components/Blocks.js +3 -1
  228. package/lib/components/Blocks.js.map +1 -1
  229. package/lib/components/Bonus/Bonus.fixture.d.ts +1 -1
  230. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.d.ts +2 -1
  231. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  232. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  233. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  234. package/lib/components/BusinessBlock/BusinessBlock.fixture.d.ts +1 -1
  235. package/lib/components/Calculator/Calculator.fixture.d.ts +1 -1
  236. package/lib/components/Calculator/Calculator.js +23 -23
  237. package/lib/components/Calculator/Calculator.js.map +1 -1
  238. package/lib/components/Calculator/CalculatorValueBlock.js +1 -3
  239. package/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  240. package/lib/components/CardTransfer/CardTransfer.fixture.d.ts +1 -1
  241. package/lib/components/CardTransfer/CardTransfer.js +3 -2
  242. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  243. package/lib/components/Carousel/Carousel.d.ts +1 -0
  244. package/lib/components/Carousel/Carousel.fixture.d.ts +1 -1
  245. package/lib/components/Carousel/Carousel.js +16 -14
  246. package/lib/components/Carousel/Carousel.js.map +1 -1
  247. package/lib/components/Carousel/CarouselContainer.d.ts +8 -5
  248. package/lib/components/Carousel/CarouselContainer.js +8 -5
  249. package/lib/components/Carousel/CarouselContainer.js.map +1 -1
  250. package/lib/components/Carousel/CarouselContent.d.ts +5 -8
  251. package/lib/components/Carousel/CarouselContent.js +0 -3
  252. package/lib/components/Carousel/CarouselContent.js.map +1 -1
  253. package/lib/components/CarouselCard/CarouselCard.d.ts +0 -2
  254. package/lib/components/CarouselCard/CarouselCard.fixture.d.ts +2 -1
  255. package/lib/components/CarouselCard/CarouselCard.js +4 -11
  256. package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  257. package/lib/components/CarouselLinks/CarouselLinks.js +7 -7
  258. package/lib/components/CarouselLinks/CarouselLinks.js.map +1 -1
  259. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  260. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  261. package/lib/components/Catalog/Catalog.fixture.d.ts +1 -1
  262. package/lib/components/Catalog/Catalog.js +8 -11
  263. package/lib/components/Catalog/Catalog.js.map +1 -1
  264. package/lib/components/ComparisonTable/ComparisonTable.fixture.d.ts +2 -2
  265. package/lib/components/ComparisonTable/ComparisonTable.fixture.mobile.d.ts +1 -1
  266. package/lib/components/ComparisonTable/ComparisonTable.mobile.js +2 -2
  267. package/lib/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  268. package/lib/components/ComparisonTable/ComparisonTableBody.js +4 -4
  269. package/lib/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  270. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  271. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  272. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  273. package/lib/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  274. package/lib/components/ComparisonTable/ComparisonTableRows.js +8 -7
  275. package/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  276. package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  277. package/lib/components/ComparisonTable/TableCarouselContainer.js +1 -1
  278. package/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  279. package/lib/components/ComparisonTable/TableRow.d.ts +1 -1
  280. package/lib/components/ComparisonTable/TableRow.js +1 -1
  281. package/lib/components/ComparisonTable/TableRow.js.map +1 -1
  282. package/lib/components/ComparisonTable/constants.d.ts +1 -1
  283. package/lib/components/ComparisonTable/constants.js +1 -1
  284. package/lib/components/ContactsBlock/ContactsBlock.fixture.d.ts +1 -1
  285. package/lib/components/ContactsBlock/ContactsBlock.js +1 -3
  286. package/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  287. package/lib/components/ContentPage/ContentPage.fixture.d.ts +1 -1
  288. package/lib/components/ContentPage/ContentPage.fixture.mobile.d.ts +1 -1
  289. package/lib/components/ContentPage/ContentPage.js +13 -7
  290. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  291. package/lib/components/ErrorBlock/ErrorBlock.fixture.d.ts +1 -1
  292. package/lib/components/ExchangeRateTile/CurrencyTable.js +1 -3
  293. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  294. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -4
  295. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  296. package/lib/components/ExchangeRateTile/ExchangeRateTile.fixture.d.ts +1 -1
  297. package/lib/components/Footer/Footer.fixture.d.ts +1 -1
  298. package/lib/components/Footer/Footer.fixture.mobile.d.ts +1 -1
  299. package/lib/components/Footer/Footer.js +1 -1
  300. package/lib/components/Footer/Footer.js.map +1 -1
  301. package/lib/components/Footer/Footer.mobile.js +2 -2
  302. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  303. package/lib/components/Gallery/Gallery.fixture.d.ts +1 -1
  304. package/lib/components/Gallery/Gallery.fixture.mobile.d.ts +1 -1
  305. package/lib/components/Gallery/GalleryCardInner.js +2 -4
  306. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  307. package/lib/components/Gallery/GalleryContainer.d.ts +1 -1
  308. package/lib/components/Gallery/GalleryContainer.js +1 -3
  309. package/lib/components/Gallery/GalleryContainer.js.map +1 -1
  310. package/lib/components/Gallery/GalleryInner.js +9 -12
  311. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  312. package/lib/components/GracePeriod/GracePeriod.fixture.d.ts +1 -1
  313. package/lib/components/Header/Header.fixture.d.ts +1 -1
  314. package/lib/components/Header/Header.fixture.mobile.d.ts +1 -1
  315. package/lib/components/Header/Header.js +1 -1
  316. package/lib/components/Header/Header.js.map +1 -1
  317. package/lib/components/Header/Header.mobile.js +2 -3
  318. package/lib/components/Header/Header.mobile.js.map +1 -1
  319. package/lib/components/Headline/Headline.fixture.d.ts +1 -1
  320. package/lib/components/Headline/Headline.fixture.mobile.d.ts +1 -1
  321. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.d.ts +1 -1
  322. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +24 -26
  323. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  324. package/lib/components/InvestmentGallery/InvestmentGallery.fixture.d.ts +1 -1
  325. package/lib/components/InvestmentGallery/InvestmentGallery.js +10 -20
  326. package/lib/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  327. package/lib/components/InvestmentInfo/InvestmentInfo.fixture.d.ts +1 -1
  328. package/lib/components/LikeControl/LikeControl.fixture.d.ts +1 -1
  329. package/lib/components/LinkDocs/LinkDocs.fixture.d.ts +1 -1
  330. package/lib/components/LinkDocs/LinkDocs.fixture.mobile.d.ts +1 -1
  331. package/lib/components/LinkList/LinkList.fixture.d.ts +1 -1
  332. package/lib/components/MiniGallery/MiniGallery.fixture.d.ts +1 -1
  333. package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +1 -1
  334. package/lib/components/MobileAppTile/MobileAppTile.fixture.mobile.d.ts +1 -1
  335. package/lib/components/MobileAppTile/MobileAppTile.js +4 -4
  336. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  337. package/lib/components/OfficeMap/OfficeMap.fixture.d.ts +1 -1
  338. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.fixture.d.ts +1 -1
  339. package/lib/components/OtherProducts/OtherProducts.fixture.d.ts +3 -2
  340. package/lib/components/OtherProducts/OtherProducts.js +2 -1
  341. package/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  342. package/lib/components/OtherProductsItem/OtherProductsItem.js +5 -4
  343. package/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  344. package/lib/components/PictureText/PictureText.fixture.d.ts +1 -1
  345. package/lib/components/Placeholder/Placeholder.fixture.d.ts +1 -1
  346. package/lib/components/Placeholder/Placeholder.fixture.mobile.d.ts +1 -1
  347. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +2 -1
  348. package/lib/components/ProductBlock/ProductBlock.fixture.mobile.d.ts +1 -1
  349. package/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  350. package/lib/components/ProductBlock/ProductBlockInner.js +2 -2
  351. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  352. package/lib/components/ProductGallery/ProductGallery.fixture.d.ts +1 -1
  353. package/lib/components/ProductTile/ProductTile.fixture.d.ts +1 -1
  354. package/lib/components/PromoTile/PromoTile.fixture.d.ts +1 -1
  355. package/lib/components/Recommendation/Recommendation.fixture.d.ts +1 -1
  356. package/lib/components/Recommendation/Recommendation.js +11 -21
  357. package/lib/components/Recommendation/Recommendation.js.map +1 -1
  358. package/lib/components/RollupItem/RollupItem.js +5 -3
  359. package/lib/components/RollupItem/RollupItem.js.map +1 -1
  360. package/lib/components/SafeDepositRental/SafeDepositRental.fixture.d.ts +1 -1
  361. package/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  362. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +1 -1
  363. package/lib/components/StepsBlock/StepsBlock.fixture.mobile.d.ts +1 -1
  364. package/lib/components/StepsBlock/StepsBlock.js +1 -1
  365. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  366. package/lib/components/Tabs/Tabs.fixture.d.ts +1 -1
  367. package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +1 -1
  368. package/lib/components/TariffsTable/TariffsTable.fixture.mobile.d.ts +1 -1
  369. package/lib/components/TariffsTable/TariffsTable.js +12 -14
  370. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  371. package/lib/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  372. package/lib/components/TariffsTable/TariffsTableRow.js +2 -2
  373. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  374. package/lib/components/TextBlock/TextBlock.fixture.d.ts +1 -1
  375. package/lib/components/TextBlock/TextBlock.fixture.mobile.d.ts +1 -1
  376. package/lib/components/Tile/Tile.fixture.d.ts +1 -1
  377. package/lib/components/VerticalLayout/VerticalLayout.fixture.d.ts +1 -1
  378. package/lib/components/VerticalLayout/VerticalLayout.js +3 -2
  379. package/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  380. package/lib/components/Video/Video.d.ts +6 -0
  381. package/lib/components/Video/Video.fixture.d.ts +8 -0
  382. package/lib/components/Video/Video.js +10 -0
  383. package/lib/components/Video/Video.js.map +1 -0
  384. package/lib/components/Video/VideoContent.d.ts +8 -0
  385. package/lib/components/Video/VideoContent.js +2 -0
  386. package/lib/components/Video/VideoContent.js.map +1 -0
  387. package/lib/components/Video/getPaddings.d.ts +1 -0
  388. package/lib/components/Video/getPaddings.js +4 -0
  389. package/lib/components/Video/getPaddings.js.map +1 -0
  390. package/lib/hooks/useCarouselControls.d.ts +5 -3
  391. package/lib/hooks/useCarouselControls.js +19 -8
  392. package/lib/hooks/useCarouselControls.js.map +1 -1
  393. package/lib/model/JSXBlock.d.ts +4 -5
  394. package/lib/model/LinkProps.d.ts +1 -0
  395. package/lib/model/Picture.d.ts +8 -2
  396. package/lib/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  397. package/lib/{react/setup-fixture.js → setup-fixture.js} +4 -4
  398. package/lib/setup-fixture.js.map +1 -0
  399. package/lib/ui-kit/Button/Button.fixture.d.ts +1 -1
  400. package/lib/ui-kit/Button/renderArrows.d.ts +6 -4
  401. package/lib/ui-kit/Button/renderArrows.js +3 -2
  402. package/lib/ui-kit/Button/renderArrows.js.map +1 -1
  403. package/lib/ui-kit/HeaderItem/HeaderItem.fixture.d.ts +1 -1
  404. package/lib/ui-kit/Icon/Icon.fixture.d.ts +1 -1
  405. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  406. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  407. package/lib/ui-kit/List/List.fixture.d.ts +1 -1
  408. package/lib/ui-kit/Logo/Logo.fixture.d.ts +1 -1
  409. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.fixture.d.ts +1 -1
  410. package/lib/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.d.ts +3 -1
  411. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +6 -3
  412. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  413. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  414. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  415. package/lib/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  416. package/lib/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  417. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  418. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  419. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  420. package/lib/ui-kit/TopItem/TopItem.fixture.d.ts +1 -1
  421. package/mobile/bundle/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  422. package/mobile/bundle/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  423. package/mobile/bundle/BlockRenderer/getParentBlockContent.d.ts +2 -0
  424. package/mobile/bundle/BlockRenderer/getParentBlockDef.d.ts +3 -0
  425. package/mobile/bundle/BlockRenderer/renderBlock.d.ts +3 -0
  426. package/mobile/bundle/BlockRenderer/renderBlockList.d.ts +9 -0
  427. package/mobile/bundle/BlockRenderer/renderChildren.d.ts +10 -0
  428. package/mobile/bundle/bundle.umd.js +89 -86
  429. package/mobile/bundle/bundle.umd.min.js +1 -1
  430. package/mobile/bundle/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  431. package/mobile/bundle/components/Carousel/Carousel.d.ts +1 -0
  432. package/mobile/bundle/components/Carousel/CarouselContainer.d.ts +8 -5
  433. package/mobile/bundle/components/Carousel/CarouselContent.d.ts +5 -8
  434. package/mobile/bundle/components/CarouselCard/CarouselCard.d.ts +0 -2
  435. package/mobile/bundle/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  436. package/mobile/bundle/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  437. package/mobile/bundle/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  438. package/mobile/bundle/components/ComparisonTable/TableRow.d.ts +1 -1
  439. package/mobile/bundle/components/ComparisonTable/constants.d.ts +1 -1
  440. package/mobile/bundle/components/Gallery/GalleryContainer.d.ts +1 -1
  441. package/mobile/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  442. package/mobile/bundle/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  443. package/mobile/bundle/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  444. package/mobile/bundle/components/Video/Video.d.ts +6 -0
  445. package/mobile/bundle/components/Video/VideoContent.d.ts +8 -0
  446. package/mobile/bundle/components/Video/getPaddings.d.ts +1 -0
  447. package/mobile/bundle/hooks/useCarouselControls.d.ts +5 -3
  448. package/mobile/bundle/model/JSXBlock.d.ts +4 -5
  449. package/mobile/bundle/model/LinkProps.d.ts +1 -0
  450. package/mobile/bundle/model/Picture.d.ts +8 -2
  451. package/mobile/bundle/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  452. package/mobile/bundle/ui-kit/Button/renderArrows.d.ts +6 -4
  453. package/mobile/bundle/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  454. package/mobile/dist/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  455. package/mobile/dist/BlockRenderer/BlockRendererOptions.js +2 -0
  456. package/mobile/dist/BlockRenderer/BlockRendererOptions.js.map +1 -0
  457. package/mobile/dist/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  458. package/mobile/dist/BlockRenderer/defaultBlockDecorator.js +5 -0
  459. package/mobile/dist/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  460. package/mobile/dist/BlockRenderer/getParentBlockContent.d.ts +2 -0
  461. package/mobile/dist/{model → BlockRenderer}/getParentBlockContent.js +2 -2
  462. package/mobile/dist/BlockRenderer/getParentBlockContent.js.map +1 -0
  463. package/mobile/dist/BlockRenderer/getParentBlockDef.d.ts +3 -0
  464. package/mobile/dist/BlockRenderer/getParentBlockDef.js +7 -0
  465. package/mobile/dist/BlockRenderer/getParentBlockDef.js.map +1 -0
  466. package/mobile/dist/BlockRenderer/renderBlock.d.ts +3 -0
  467. package/mobile/dist/BlockRenderer/renderBlock.js +27 -0
  468. package/mobile/dist/BlockRenderer/renderBlock.js.map +1 -0
  469. package/mobile/dist/BlockRenderer/renderBlockList.d.ts +9 -0
  470. package/mobile/dist/BlockRenderer/renderBlockList.js +14 -0
  471. package/mobile/dist/BlockRenderer/renderBlockList.js.map +1 -0
  472. package/mobile/dist/BlockRenderer/renderChildren.d.ts +10 -0
  473. package/mobile/dist/BlockRenderer/renderChildren.js +13 -0
  474. package/mobile/dist/BlockRenderer/renderChildren.js.map +1 -0
  475. package/mobile/dist/components/Accordion/Accordion.js +2 -1
  476. package/mobile/dist/components/Accordion/Accordion.js.map +1 -1
  477. package/mobile/dist/components/AccordionItem/AccordionItem.js +5 -4
  478. package/mobile/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  479. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  480. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  481. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  482. package/mobile/dist/components/Calculator/Calculator.js +22 -22
  483. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  484. package/mobile/dist/components/Calculator/CalculatorValueBlock.js +1 -3
  485. package/mobile/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  486. package/mobile/dist/components/CardTransfer/CardTransfer.js +2 -1
  487. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  488. package/mobile/dist/components/Carousel/Carousel.d.ts +1 -0
  489. package/mobile/dist/components/Carousel/Carousel.js +16 -14
  490. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  491. package/mobile/dist/components/Carousel/CarouselContainer.d.ts +8 -5
  492. package/mobile/dist/components/Carousel/CarouselContainer.js +8 -5
  493. package/mobile/dist/components/Carousel/CarouselContainer.js.map +1 -1
  494. package/mobile/dist/components/Carousel/CarouselContent.d.ts +5 -8
  495. package/mobile/dist/components/Carousel/CarouselContent.js +0 -3
  496. package/mobile/dist/components/Carousel/CarouselContent.js.map +1 -1
  497. package/mobile/dist/components/CarouselCard/CarouselCard.d.ts +0 -2
  498. package/mobile/dist/components/CarouselCard/CarouselCard.js +4 -11
  499. package/mobile/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  500. package/mobile/dist/components/CarouselLinks/CarouselLinks.js +7 -7
  501. package/mobile/dist/components/CarouselLinks/CarouselLinks.js.map +1 -1
  502. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  503. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  504. package/mobile/dist/components/Catalog/Catalog.js +8 -11
  505. package/mobile/dist/components/Catalog/Catalog.js.map +1 -1
  506. package/mobile/dist/components/ComparisonTable/ComparisonTable.js +2 -2
  507. package/mobile/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  508. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.js +4 -4
  509. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  510. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  511. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  512. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  513. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  514. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js +8 -7
  515. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  516. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  517. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.js +1 -1
  518. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  519. package/mobile/dist/components/ComparisonTable/TableRow.d.ts +1 -1
  520. package/mobile/dist/components/ComparisonTable/TableRow.js +1 -1
  521. package/mobile/dist/components/ComparisonTable/TableRow.js.map +1 -1
  522. package/mobile/dist/components/ComparisonTable/constants.d.ts +1 -1
  523. package/mobile/dist/components/ComparisonTable/constants.js +1 -1
  524. package/mobile/dist/components/ContactsBlock/ContactsBlock.js +1 -3
  525. package/mobile/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  526. package/mobile/dist/components/ContentPage/ContentPage.js +13 -7
  527. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  528. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +1 -3
  529. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  530. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -3
  531. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  532. package/mobile/dist/components/Footer/Footer.js +2 -2
  533. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  534. package/mobile/dist/components/Gallery/GalleryCardInner.js +2 -4
  535. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  536. package/mobile/dist/components/Gallery/GalleryContainer.d.ts +1 -1
  537. package/mobile/dist/components/Gallery/GalleryContainer.js +1 -3
  538. package/mobile/dist/components/Gallery/GalleryContainer.js.map +1 -1
  539. package/mobile/dist/components/Gallery/GalleryInner.js +9 -12
  540. package/mobile/dist/components/Gallery/GalleryInner.js.map +1 -1
  541. package/mobile/dist/components/Header/Header.js +2 -3
  542. package/mobile/dist/components/Header/Header.js.map +1 -1
  543. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +23 -25
  544. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  545. package/mobile/dist/components/InvestmentGallery/InvestmentGallery.js +10 -20
  546. package/mobile/dist/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  547. package/mobile/dist/components/OtherProducts/OtherProducts.js +2 -1
  548. package/mobile/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  549. package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js +5 -4
  550. package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  551. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  552. package/mobile/dist/components/Recommendation/Recommendation.js +11 -21
  553. package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
  554. package/mobile/dist/components/RollupItem/RollupItem.js +5 -3
  555. package/mobile/dist/components/RollupItem/RollupItem.js.map +1 -1
  556. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  557. package/mobile/dist/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  558. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +2 -2
  559. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  560. package/mobile/dist/components/VerticalLayout/VerticalLayout.js +3 -2
  561. package/mobile/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  562. package/mobile/dist/components/Video/Video.d.ts +6 -0
  563. package/mobile/dist/components/Video/Video.js +12 -0
  564. package/mobile/dist/components/Video/Video.js.map +1 -0
  565. package/mobile/dist/components/Video/VideoContent.d.ts +8 -0
  566. package/mobile/dist/components/Video/VideoContent.js +2 -0
  567. package/mobile/dist/components/Video/VideoContent.js.map +1 -0
  568. package/mobile/dist/components/Video/getPaddings.d.ts +1 -0
  569. package/mobile/dist/components/Video/getPaddings.js +7 -0
  570. package/mobile/dist/components/Video/getPaddings.js.map +1 -0
  571. package/mobile/dist/hooks/useCarouselControls.d.ts +5 -3
  572. package/mobile/dist/hooks/useCarouselControls.js +19 -8
  573. package/mobile/dist/hooks/useCarouselControls.js.map +1 -1
  574. package/mobile/dist/model/JSXBlock.d.ts +4 -5
  575. package/mobile/dist/model/LinkProps.d.ts +1 -0
  576. package/mobile/dist/model/Picture.d.ts +8 -2
  577. package/mobile/dist/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  578. package/{dist/react → mobile/dist}/setup-fixture.js +4 -4
  579. package/mobile/dist/setup-fixture.js.map +1 -0
  580. package/mobile/dist/ui-kit/Button/renderArrows.d.ts +6 -4
  581. package/mobile/dist/ui-kit/Button/renderArrows.js +3 -2
  582. package/mobile/dist/ui-kit/Button/renderArrows.js.map +1 -1
  583. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  584. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  585. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +5 -2
  586. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  587. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  588. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  589. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  590. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  591. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  592. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  593. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  594. package/mobile/lib/BlockRenderer/BlockRendererOptions.d.ts +11 -0
  595. package/mobile/lib/BlockRenderer/BlockRendererOptions.js +2 -0
  596. package/mobile/lib/BlockRenderer/BlockRendererOptions.js.map +1 -0
  597. package/mobile/lib/BlockRenderer/defaultBlockDecorator.d.ts +2 -0
  598. package/mobile/lib/BlockRenderer/defaultBlockDecorator.js +2 -0
  599. package/mobile/lib/BlockRenderer/defaultBlockDecorator.js.map +1 -0
  600. package/mobile/lib/BlockRenderer/getParentBlockContent.d.ts +2 -0
  601. package/mobile/lib/BlockRenderer/getParentBlockContent.js +6 -0
  602. package/mobile/lib/BlockRenderer/getParentBlockContent.js.map +1 -0
  603. package/mobile/lib/BlockRenderer/getParentBlockDef.d.ts +3 -0
  604. package/mobile/lib/BlockRenderer/getParentBlockDef.js +4 -0
  605. package/mobile/lib/BlockRenderer/getParentBlockDef.js.map +1 -0
  606. package/mobile/lib/BlockRenderer/renderBlock.d.ts +3 -0
  607. package/mobile/lib/BlockRenderer/renderBlock.js +24 -0
  608. package/mobile/lib/BlockRenderer/renderBlock.js.map +1 -0
  609. package/mobile/lib/BlockRenderer/renderBlockList.d.ts +9 -0
  610. package/mobile/lib/BlockRenderer/renderBlockList.js +11 -0
  611. package/mobile/lib/BlockRenderer/renderBlockList.js.map +1 -0
  612. package/mobile/lib/BlockRenderer/renderChildren.d.ts +10 -0
  613. package/mobile/lib/BlockRenderer/renderChildren.js +10 -0
  614. package/mobile/lib/BlockRenderer/renderChildren.js.map +1 -0
  615. package/mobile/lib/components/Accordion/Accordion.js +2 -1
  616. package/mobile/lib/components/Accordion/Accordion.js.map +1 -1
  617. package/mobile/lib/components/AccordionItem/AccordionItem.js +5 -4
  618. package/mobile/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  619. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +16 -4
  620. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  621. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +6 -3
  622. package/mobile/lib/components/Calculator/Calculator.js +23 -23
  623. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  624. package/mobile/lib/components/Calculator/CalculatorValueBlock.js +1 -3
  625. package/mobile/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  626. package/mobile/lib/components/CardTransfer/CardTransfer.js +3 -2
  627. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  628. package/mobile/lib/components/Carousel/Carousel.d.ts +1 -0
  629. package/mobile/lib/components/Carousel/Carousel.js +16 -14
  630. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  631. package/mobile/lib/components/Carousel/CarouselContainer.d.ts +8 -5
  632. package/mobile/lib/components/Carousel/CarouselContainer.js +8 -5
  633. package/mobile/lib/components/Carousel/CarouselContainer.js.map +1 -1
  634. package/mobile/lib/components/Carousel/CarouselContent.d.ts +5 -8
  635. package/mobile/lib/components/Carousel/CarouselContent.js +0 -3
  636. package/mobile/lib/components/Carousel/CarouselContent.js.map +1 -1
  637. package/mobile/lib/components/CarouselCard/CarouselCard.d.ts +0 -2
  638. package/mobile/lib/components/CarouselCard/CarouselCard.js +4 -11
  639. package/mobile/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  640. package/mobile/lib/components/CarouselLinks/CarouselLinks.js +7 -7
  641. package/mobile/lib/components/CarouselLinks/CarouselLinks.js.map +1 -1
  642. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  643. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  644. package/mobile/lib/components/Catalog/Catalog.js +8 -11
  645. package/mobile/lib/components/Catalog/Catalog.js.map +1 -1
  646. package/mobile/lib/components/ComparisonTable/ComparisonTable.js +2 -2
  647. package/mobile/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  648. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.js +4 -4
  649. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  650. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  651. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js +1 -1
  652. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.js.map +1 -1
  653. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.d.ts +1 -2
  654. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js +8 -7
  655. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  656. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  657. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.js +1 -1
  658. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  659. package/mobile/lib/components/ComparisonTable/TableRow.d.ts +1 -1
  660. package/mobile/lib/components/ComparisonTable/TableRow.js +1 -1
  661. package/mobile/lib/components/ComparisonTable/TableRow.js.map +1 -1
  662. package/mobile/lib/components/ComparisonTable/constants.d.ts +1 -1
  663. package/mobile/lib/components/ComparisonTable/constants.js +1 -1
  664. package/mobile/lib/components/ContactsBlock/ContactsBlock.js +1 -3
  665. package/mobile/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  666. package/mobile/lib/components/ContentPage/ContentPage.js +13 -7
  667. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  668. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +1 -3
  669. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  670. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -4
  671. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  672. package/mobile/lib/components/Footer/Footer.js +2 -2
  673. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  674. package/mobile/lib/components/Gallery/GalleryCardInner.js +2 -4
  675. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  676. package/mobile/lib/components/Gallery/GalleryContainer.d.ts +1 -1
  677. package/mobile/lib/components/Gallery/GalleryContainer.js +1 -3
  678. package/mobile/lib/components/Gallery/GalleryContainer.js.map +1 -1
  679. package/mobile/lib/components/Gallery/GalleryInner.js +9 -12
  680. package/mobile/lib/components/Gallery/GalleryInner.js.map +1 -1
  681. package/mobile/lib/components/Header/Header.js +2 -3
  682. package/mobile/lib/components/Header/Header.js.map +1 -1
  683. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +24 -26
  684. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  685. package/mobile/lib/components/InvestmentGallery/InvestmentGallery.js +10 -20
  686. package/mobile/lib/components/InvestmentGallery/InvestmentGallery.js.map +1 -1
  687. package/mobile/lib/components/OtherProducts/OtherProducts.js +2 -1
  688. package/mobile/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  689. package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js +5 -4
  690. package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  691. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  692. package/mobile/lib/components/Recommendation/Recommendation.js +11 -21
  693. package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
  694. package/mobile/lib/components/RollupItem/RollupItem.js +5 -3
  695. package/mobile/lib/components/RollupItem/RollupItem.js.map +1 -1
  696. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +1 -4
  697. package/mobile/lib/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  698. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +2 -2
  699. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  700. package/mobile/lib/components/VerticalLayout/VerticalLayout.js +3 -2
  701. package/mobile/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  702. package/mobile/lib/components/Video/Video.d.ts +6 -0
  703. package/mobile/lib/components/Video/Video.js +10 -0
  704. package/mobile/lib/components/Video/Video.js.map +1 -0
  705. package/mobile/lib/components/Video/VideoContent.d.ts +8 -0
  706. package/mobile/lib/components/Video/VideoContent.js +2 -0
  707. package/mobile/lib/components/Video/VideoContent.js.map +1 -0
  708. package/mobile/lib/components/Video/getPaddings.d.ts +1 -0
  709. package/mobile/lib/components/Video/getPaddings.js +4 -0
  710. package/mobile/lib/components/Video/getPaddings.js.map +1 -0
  711. package/mobile/lib/hooks/useCarouselControls.d.ts +5 -3
  712. package/mobile/lib/hooks/useCarouselControls.js +19 -8
  713. package/mobile/lib/hooks/useCarouselControls.js.map +1 -1
  714. package/mobile/lib/model/JSXBlock.d.ts +4 -5
  715. package/mobile/lib/model/LinkProps.d.ts +1 -0
  716. package/mobile/lib/model/Picture.d.ts +8 -2
  717. package/mobile/lib/{react/setup-fixture.d.ts → setup-fixture.d.ts} +0 -0
  718. package/mobile/lib/{react/setup-fixture.js → setup-fixture.js} +4 -4
  719. package/mobile/lib/setup-fixture.js.map +1 -0
  720. package/mobile/lib/ui-kit/Button/renderArrows.d.ts +6 -4
  721. package/mobile/lib/ui-kit/Button/renderArrows.js +3 -2
  722. package/mobile/lib/ui-kit/Button/renderArrows.js.map +1 -1
  723. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js +9 -10
  724. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -1
  725. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +6 -3
  726. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  727. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +9 -12
  728. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  729. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.js +2 -2
  730. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.js.map +1 -1
  731. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +5 -3
  732. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  733. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +2 -1
  734. package/mobile/src/BlockRenderer/BlockRendererOptions.ts +12 -0
  735. package/mobile/src/BlockRenderer/defaultBlockDecorator.ts +4 -0
  736. package/mobile/src/{model → BlockRenderer}/getParentBlockContent.ts +3 -3
  737. package/mobile/src/BlockRenderer/getParentBlockDef.ts +6 -0
  738. package/mobile/src/BlockRenderer/renderBlock.tsx +47 -0
  739. package/mobile/src/BlockRenderer/renderBlockList.tsx +33 -0
  740. package/mobile/src/BlockRenderer/renderChildren.ts +25 -0
  741. package/mobile/src/components/Accordion/Accordion.tsx +3 -2
  742. package/mobile/src/components/AccordionItem/AccordionItem.tsx +5 -4
  743. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -0
  744. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +31 -18
  745. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +6 -3
  746. package/mobile/src/components/Calculator/Calculator.tsx +32 -33
  747. package/mobile/src/components/Calculator/CalculatorValueBlock.tsx +10 -12
  748. package/mobile/src/components/CardTransfer/CardTransfer.tsx +3 -2
  749. package/mobile/src/components/Carousel/Carousel.example.json +2 -2
  750. package/mobile/src/components/Carousel/Carousel.tsx +29 -40
  751. package/mobile/src/components/Carousel/CarouselContainer.tsx +19 -12
  752. package/mobile/src/components/Carousel/CarouselContent.ts +5 -9
  753. package/mobile/src/components/CarouselCard/CarouselCard.tsx +22 -34
  754. package/mobile/src/components/CarouselLinks/CarouselLinks.tsx +24 -24
  755. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +3 -3
  756. package/mobile/src/components/Catalog/Catalog.tsx +8 -13
  757. package/mobile/src/components/ComparisonTable/ComparisonTable.tsx +2 -2
  758. package/mobile/src/components/ComparisonTable/ComparisonTableBody.tsx +6 -7
  759. package/mobile/src/components/ComparisonTable/ComparisonTableColumnHeaders.tsx +3 -3
  760. package/mobile/src/components/ComparisonTable/ComparisonTableRows.tsx +10 -14
  761. package/mobile/src/components/ComparisonTable/TableCarouselContainer.tsx +3 -3
  762. package/mobile/src/components/ComparisonTable/TableRow.tsx +3 -3
  763. package/mobile/src/components/ComparisonTable/constants.ts +1 -1
  764. package/mobile/src/components/ContactsBlock/ContactsBlock.tsx +6 -8
  765. package/mobile/src/components/ContentPage/ContentPage.tsx +21 -20
  766. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +12 -14
  767. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +5 -4
  768. package/mobile/src/components/Footer/Footer.tsx +3 -3
  769. package/mobile/src/components/Gallery/GalleryCardInner.tsx +12 -14
  770. package/mobile/src/components/Gallery/GalleryContainer.tsx +14 -16
  771. package/mobile/src/components/Gallery/GalleryInner.tsx +9 -22
  772. package/mobile/src/components/Header/Header.tsx +3 -4
  773. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +29 -42
  774. package/mobile/src/components/InvestmentGallery/InvestmentGallery.tsx +12 -34
  775. package/mobile/src/components/OtherProducts/OtherProducts.tsx +3 -2
  776. package/mobile/src/components/OtherProductsItem/OtherProductsItem.tsx +6 -5
  777. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  778. package/mobile/src/components/Recommendation/Recommendation.tsx +12 -36
  779. package/mobile/src/components/RollupItem/RollupItem.tsx +9 -7
  780. package/mobile/src/components/SafeDepositRental/SafeDepositRentalContent.ts +1 -5
  781. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +3 -3
  782. package/mobile/src/components/VerticalLayout/VerticalLayout.tsx +3 -2
  783. package/mobile/src/components/Video/Video.tsx +29 -0
  784. package/mobile/src/components/Video/Video.ui.json +12 -0
  785. package/mobile/src/components/Video/VideoContent.ts +9 -0
  786. package/mobile/src/components/Video/getPaddings.ts +6 -0
  787. package/mobile/src/hooks/useCarouselControls.ts +33 -19
  788. package/mobile/src/model/JSXBlock.ts +4 -5
  789. package/mobile/src/model/LinkProps.ts +1 -0
  790. package/mobile/src/model/Picture.ts +8 -2
  791. package/{src/react → mobile/src}/setup-fixture.ts +4 -4
  792. package/mobile/src/ui-kit/Button/renderArrows.tsx +22 -17
  793. package/mobile/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +9 -13
  794. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +35 -28
  795. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +32 -27
  796. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlList.tsx +10 -8
  797. package/mobile/src/ui-kit/TableArrowScrollControl/TableArrowScrollControl.tsx +5 -3
  798. package/mobile/src/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.ts +2 -1
  799. package/package.json +1 -1
  800. package/src/BlockRenderer/BlockRendererOptions.ts +12 -0
  801. package/src/BlockRenderer/defaultBlockDecorator.ts +4 -0
  802. package/src/{model → BlockRenderer}/getParentBlockContent.ts +3 -3
  803. package/src/BlockRenderer/getParentBlockDef.ts +6 -0
  804. package/src/BlockRenderer/renderBlock.tsx +47 -0
  805. package/src/BlockRenderer/renderBlockList.tsx +33 -0
  806. package/src/BlockRenderer/renderChildren.ts +25 -0
  807. package/src/components/Accordion/Accordion.fixture.mobile.tsx +40 -55
  808. package/src/components/Accordion/Accordion.fixture.tsx +79 -52
  809. package/src/components/Accordion/Accordion.mobile.tsx +3 -2
  810. package/src/components/Accordion/Accordion.tsx +3 -2
  811. package/src/components/AccordionItem/AccordionItem.fixture.mobile.tsx +13 -2
  812. package/src/components/AccordionItem/AccordionItem.fixture.tsx +12 -1
  813. package/src/components/AccordionItem/AccordionItem.mobile.tsx +5 -4
  814. package/src/components/AccordionItem/AccordionItem.tsx +3 -2
  815. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +1 -1
  816. package/src/components/Blocks.ts +3 -1
  817. package/src/components/Bonus/Bonus.fixture.tsx +1 -1
  818. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -0
  819. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.tsx +12 -1
  820. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +31 -18
  821. package/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +6 -3
  822. package/src/components/BusinessBlock/BusinessBlock.fixture.tsx +1 -1
  823. package/src/components/Calculator/Calculator.fixture.tsx +1 -1
  824. package/src/components/Calculator/Calculator.tsx +32 -33
  825. package/src/components/Calculator/CalculatorValueBlock.tsx +10 -12
  826. package/src/components/CardTransfer/CardTransfer.fixture.tsx +1 -1
  827. package/src/components/CardTransfer/CardTransfer.tsx +3 -2
  828. package/src/components/Carousel/Carousel.example.json +2 -2
  829. package/src/components/Carousel/Carousel.fixture.tsx +38 -45
  830. package/src/components/Carousel/Carousel.tsx +29 -40
  831. package/src/components/Carousel/CarouselContainer.tsx +19 -12
  832. package/src/components/Carousel/CarouselContent.ts +5 -9
  833. package/src/components/CarouselCard/CarouselCard.fixture.tsx +9 -4
  834. package/src/components/CarouselCard/CarouselCard.tsx +22 -34
  835. package/src/components/CarouselLinks/CarouselLinks.tsx +24 -24
  836. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +3 -3
  837. package/src/components/Catalog/Catalog.fixture.tsx +1 -1
  838. package/src/components/Catalog/Catalog.tsx +8 -13
  839. package/src/components/ComparisonTable/ComparisonTable.fixture.mobile.tsx +1 -1
  840. package/src/components/ComparisonTable/ComparisonTable.fixture.tsx +2 -2
  841. package/src/components/ComparisonTable/ComparisonTable.mobile.tsx +2 -2
  842. package/src/components/ComparisonTable/ComparisonTableBody.tsx +6 -7
  843. package/src/components/ComparisonTable/ComparisonTableColumnHeaders.tsx +3 -3
  844. package/src/components/ComparisonTable/ComparisonTableRows.tsx +10 -14
  845. package/src/components/ComparisonTable/TableCarouselContainer.tsx +3 -3
  846. package/src/components/ComparisonTable/TableRow.tsx +3 -3
  847. package/src/components/ComparisonTable/constants.ts +1 -1
  848. package/src/components/ContactsBlock/ContactsBlock.fixture.tsx +1 -1
  849. package/src/components/ContactsBlock/ContactsBlock.tsx +6 -8
  850. package/src/components/ContentPage/ContentPage.fixture.mobile.tsx +1 -1
  851. package/src/components/ContentPage/ContentPage.fixture.tsx +1 -1
  852. package/src/components/ContentPage/ContentPage.tsx +21 -20
  853. package/src/components/ErrorBlock/ErrorBlock.fixture.tsx +1 -1
  854. package/src/components/ExchangeRateTile/CurrencyTable.tsx +12 -14
  855. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +5 -4
  856. package/src/components/ExchangeRateTile/ExchangeRateTile.fixture.tsx +1 -1
  857. package/src/components/Footer/Footer.fixture.mobile.tsx +1 -1
  858. package/src/components/Footer/Footer.fixture.tsx +1 -1
  859. package/src/components/Footer/Footer.mobile.tsx +3 -3
  860. package/src/components/Footer/Footer.tsx +1 -1
  861. package/src/components/Gallery/Gallery.fixture.mobile.tsx +1 -1
  862. package/src/components/Gallery/Gallery.fixture.tsx +1 -1
  863. package/src/components/Gallery/GalleryCardInner.tsx +12 -14
  864. package/src/components/Gallery/GalleryContainer.tsx +14 -16
  865. package/src/components/Gallery/GalleryInner.tsx +9 -22
  866. package/src/components/GracePeriod/GracePeriod.fixture.tsx +1 -1
  867. package/src/components/Header/Header.fixture.mobile.tsx +1 -1
  868. package/src/components/Header/Header.fixture.tsx +1 -1
  869. package/src/components/Header/Header.mobile.tsx +3 -4
  870. package/src/components/Header/Header.tsx +1 -1
  871. package/src/components/Headline/Headline.fixture.mobile.tsx +1 -1
  872. package/src/components/Headline/Headline.fixture.tsx +1 -1
  873. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +1 -1
  874. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +29 -42
  875. package/src/components/InvestmentGallery/InvestmentGallery.fixture.tsx +1 -1
  876. package/src/components/InvestmentGallery/InvestmentGallery.tsx +12 -34
  877. package/src/components/InvestmentInfo/InvestmentInfo.fixture.tsx +1 -1
  878. package/src/components/LikeControl/LikeControl.fixture.tsx +1 -1
  879. package/src/components/LinkDocs/LinkDocs.fixture.mobile.tsx +1 -1
  880. package/src/components/LinkDocs/LinkDocs.fixture.tsx +1 -1
  881. package/src/components/LinkList/LinkList.fixture.tsx +1 -1
  882. package/src/components/MiniGallery/MiniGallery.fixture.tsx +1 -1
  883. package/src/components/MobileAppTile/MobileAppTile.fixture.mobile.tsx +1 -1
  884. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +1 -1
  885. package/src/components/MobileAppTile/MobileAppTile.tsx +5 -5
  886. package/src/components/OfficeMap/OfficeMap.fixture.tsx +1 -1
  887. package/src/components/OfficeServicesBlock/OfficeServicesBlock.fixture.tsx +1 -1
  888. package/src/components/OtherProducts/OtherProducts.fixture.tsx +86 -76
  889. package/src/components/OtherProducts/OtherProducts.tsx +3 -2
  890. package/src/components/OtherProductsItem/OtherProductsItem.fixture.tsx +16 -1
  891. package/src/components/OtherProductsItem/OtherProductsItem.tsx +6 -5
  892. package/src/components/PictureText/PictureText.fixture.tsx +1 -1
  893. package/src/components/Placeholder/Placeholder.fixture.mobile.tsx +1 -1
  894. package/src/components/Placeholder/Placeholder.fixture.tsx +1 -1
  895. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +1 -1
  896. package/src/components/ProductBlock/ProductBlock.fixture.tsx +13 -1
  897. package/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  898. package/src/components/ProductBlock/ProductBlockInner.tsx +26 -22
  899. package/src/components/ProductGallery/ProductGallery.fixture.tsx +1 -1
  900. package/src/components/ProductTile/ProductTile.fixture.tsx +1 -1
  901. package/src/components/PromoTile/PromoTile.fixture.tsx +1 -1
  902. package/src/components/Recommendation/Recommendation.fixture.tsx +1 -1
  903. package/src/components/Recommendation/Recommendation.tsx +12 -36
  904. package/src/components/RollupItem/RollupItem.fixture.tsx +44 -11
  905. package/src/components/RollupItem/RollupItem.tsx +9 -7
  906. package/src/components/SafeDepositRental/SafeDepositRental.fixture.tsx +1 -1
  907. package/src/components/SafeDepositRental/SafeDepositRentalContent.ts +1 -5
  908. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +1 -1
  909. package/src/components/StepsBlock/StepsBlock.fixture.tsx +1 -1
  910. package/src/components/StepsBlock/StepsBlock.tsx +1 -1
  911. package/src/components/Tabs/Tabs.fixture.tsx +1 -1
  912. package/src/components/TariffsTable/TariffsTable.fixture.mobile.tsx +1 -1
  913. package/src/components/TariffsTable/TariffsTable.fixture.tsx +1 -1
  914. package/src/components/TariffsTable/TariffsTable.tsx +21 -38
  915. package/src/components/TariffsTable/TariffsTableRow.tsx +3 -3
  916. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +1 -1
  917. package/src/components/TextBlock/TextBlock.fixture.tsx +1 -1
  918. package/src/components/Tile/Tile.fixture.tsx +1 -1
  919. package/src/components/VerticalLayout/VerticalLayout.fixture.tsx +126 -47
  920. package/src/components/VerticalLayout/VerticalLayout.tsx +3 -2
  921. package/src/components/Video/Video.fixture.tsx +33 -0
  922. package/src/components/Video/Video.tsx +29 -0
  923. package/src/components/Video/Video.ui.json +12 -0
  924. package/src/components/Video/VideoContent.ts +9 -0
  925. package/src/components/Video/getPaddings.ts +6 -0
  926. package/src/hooks/useCarouselControls.ts +33 -19
  927. package/src/model/JSXBlock.ts +4 -5
  928. package/src/model/LinkProps.ts +1 -0
  929. package/src/model/Picture.ts +8 -2
  930. package/{mobile/src/react → src}/setup-fixture.ts +4 -4
  931. package/src/ui-kit/Button/Button.fixture.tsx +1 -1
  932. package/src/ui-kit/Button/renderArrows.tsx +22 -17
  933. package/src/ui-kit/HeaderItem/HeaderItem.fixture.tsx +1 -1
  934. package/src/ui-kit/Icon/Icon.fixture.tsx +1 -1
  935. package/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +9 -13
  936. package/src/ui-kit/List/List.fixture.tsx +1 -1
  937. package/src/ui-kit/Logo/Logo.fixture.tsx +1 -1
  938. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.fixture.tsx +1 -1
  939. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +24 -8
  940. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +35 -28
  941. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +32 -27
  942. package/src/ui-kit/SwipeListControl/SwipeListControlList.tsx +10 -8
  943. package/src/ui-kit/TableArrowScrollControl/TableArrowScrollControl.tsx +5 -3
  944. package/src/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.ts +2 -1
  945. package/src/ui-kit/TopItem/TopItem.fixture.tsx +1 -1
  946. package/bundle/components/Carousel/CarouselNavButtons.d.ts +0 -11
  947. package/bundle/components/ContentPage/renderBlock.d.ts +0 -15
  948. package/bundle/components/ContentPage/renderBlockList.d.ts +0 -14
  949. package/bundle/components/ContentPage/renderSlots.d.ts +0 -12
  950. package/bundle/model/getParentBlockContent.d.ts +0 -2
  951. package/bundle/model/getParentBlockDef.d.ts +0 -3
  952. package/bundle/utils/sliceArray.d.ts +0 -1
  953. package/dist/components/Carousel/CarouselNavButtons.d.ts +0 -11
  954. package/dist/components/Carousel/CarouselNavButtons.js +0 -36
  955. package/dist/components/Carousel/CarouselNavButtons.js.map +0 -1
  956. package/dist/components/ContentPage/renderBlock.d.ts +0 -15
  957. package/dist/components/ContentPage/renderBlock.js +0 -29
  958. package/dist/components/ContentPage/renderBlock.js.map +0 -1
  959. package/dist/components/ContentPage/renderBlockList.d.ts +0 -14
  960. package/dist/components/ContentPage/renderBlockList.js +0 -11
  961. package/dist/components/ContentPage/renderBlockList.js.map +0 -1
  962. package/dist/components/ContentPage/renderSlots.d.ts +0 -12
  963. package/dist/components/ContentPage/renderSlots.js +0 -15
  964. package/dist/components/ContentPage/renderSlots.js.map +0 -1
  965. package/dist/model/getParentBlockContent.d.ts +0 -2
  966. package/dist/model/getParentBlockContent.js.map +0 -1
  967. package/dist/model/getParentBlockDef.d.ts +0 -3
  968. package/dist/model/getParentBlockDef.js +0 -11
  969. package/dist/model/getParentBlockDef.js.map +0 -1
  970. package/dist/react/setup-fixture.js.map +0 -1
  971. package/dist/utils/sliceArray.d.ts +0 -1
  972. package/dist/utils/sliceArray.js +0 -15
  973. package/dist/utils/sliceArray.js.map +0 -1
  974. package/lib/components/Carousel/CarouselNavButtons.d.ts +0 -11
  975. package/lib/components/Carousel/CarouselNavButtons.js +0 -34
  976. package/lib/components/Carousel/CarouselNavButtons.js.map +0 -1
  977. package/lib/components/ContentPage/renderBlock.d.ts +0 -15
  978. package/lib/components/ContentPage/renderBlock.js +0 -26
  979. package/lib/components/ContentPage/renderBlock.js.map +0 -1
  980. package/lib/components/ContentPage/renderBlockList.d.ts +0 -14
  981. package/lib/components/ContentPage/renderBlockList.js +0 -8
  982. package/lib/components/ContentPage/renderBlockList.js.map +0 -1
  983. package/lib/components/ContentPage/renderSlots.d.ts +0 -12
  984. package/lib/components/ContentPage/renderSlots.js +0 -12
  985. package/lib/components/ContentPage/renderSlots.js.map +0 -1
  986. package/lib/model/getParentBlockContent.d.ts +0 -2
  987. package/lib/model/getParentBlockContent.js +0 -6
  988. package/lib/model/getParentBlockContent.js.map +0 -1
  989. package/lib/model/getParentBlockDef.d.ts +0 -3
  990. package/lib/model/getParentBlockDef.js +0 -8
  991. package/lib/model/getParentBlockDef.js.map +0 -1
  992. package/lib/react/setup-fixture.js.map +0 -1
  993. package/lib/utils/sliceArray.d.ts +0 -1
  994. package/lib/utils/sliceArray.js +0 -12
  995. package/lib/utils/sliceArray.js.map +0 -1
  996. package/mobile/bundle/components/Carousel/CarouselNavButtons.d.ts +0 -11
  997. package/mobile/bundle/components/ContentPage/renderBlock.d.ts +0 -15
  998. package/mobile/bundle/components/ContentPage/renderBlockList.d.ts +0 -14
  999. package/mobile/bundle/components/ContentPage/renderSlots.d.ts +0 -12
  1000. package/mobile/bundle/model/getParentBlockContent.d.ts +0 -2
  1001. package/mobile/bundle/model/getParentBlockDef.d.ts +0 -3
  1002. package/mobile/bundle/utils/sliceArray.d.ts +0 -1
  1003. package/mobile/dist/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1004. package/mobile/dist/components/Carousel/CarouselNavButtons.js +0 -36
  1005. package/mobile/dist/components/Carousel/CarouselNavButtons.js.map +0 -1
  1006. package/mobile/dist/components/ContentPage/renderBlock.d.ts +0 -15
  1007. package/mobile/dist/components/ContentPage/renderBlock.js +0 -29
  1008. package/mobile/dist/components/ContentPage/renderBlock.js.map +0 -1
  1009. package/mobile/dist/components/ContentPage/renderBlockList.d.ts +0 -14
  1010. package/mobile/dist/components/ContentPage/renderBlockList.js +0 -11
  1011. package/mobile/dist/components/ContentPage/renderBlockList.js.map +0 -1
  1012. package/mobile/dist/components/ContentPage/renderSlots.d.ts +0 -12
  1013. package/mobile/dist/components/ContentPage/renderSlots.js +0 -15
  1014. package/mobile/dist/components/ContentPage/renderSlots.js.map +0 -1
  1015. package/mobile/dist/model/getParentBlockContent.d.ts +0 -2
  1016. package/mobile/dist/model/getParentBlockContent.js.map +0 -1
  1017. package/mobile/dist/model/getParentBlockDef.d.ts +0 -3
  1018. package/mobile/dist/model/getParentBlockDef.js +0 -11
  1019. package/mobile/dist/model/getParentBlockDef.js.map +0 -1
  1020. package/mobile/dist/react/setup-fixture.js.map +0 -1
  1021. package/mobile/dist/utils/sliceArray.d.ts +0 -1
  1022. package/mobile/dist/utils/sliceArray.js +0 -15
  1023. package/mobile/dist/utils/sliceArray.js.map +0 -1
  1024. package/mobile/lib/components/Carousel/CarouselNavButtons.d.ts +0 -11
  1025. package/mobile/lib/components/Carousel/CarouselNavButtons.js +0 -34
  1026. package/mobile/lib/components/Carousel/CarouselNavButtons.js.map +0 -1
  1027. package/mobile/lib/components/ContentPage/renderBlock.d.ts +0 -15
  1028. package/mobile/lib/components/ContentPage/renderBlock.js +0 -26
  1029. package/mobile/lib/components/ContentPage/renderBlock.js.map +0 -1
  1030. package/mobile/lib/components/ContentPage/renderBlockList.d.ts +0 -14
  1031. package/mobile/lib/components/ContentPage/renderBlockList.js +0 -8
  1032. package/mobile/lib/components/ContentPage/renderBlockList.js.map +0 -1
  1033. package/mobile/lib/components/ContentPage/renderSlots.d.ts +0 -12
  1034. package/mobile/lib/components/ContentPage/renderSlots.js +0 -12
  1035. package/mobile/lib/components/ContentPage/renderSlots.js.map +0 -1
  1036. package/mobile/lib/model/getParentBlockContent.d.ts +0 -2
  1037. package/mobile/lib/model/getParentBlockContent.js +0 -6
  1038. package/mobile/lib/model/getParentBlockContent.js.map +0 -1
  1039. package/mobile/lib/model/getParentBlockDef.d.ts +0 -3
  1040. package/mobile/lib/model/getParentBlockDef.js +0 -8
  1041. package/mobile/lib/model/getParentBlockDef.js.map +0 -1
  1042. package/mobile/lib/react/setup-fixture.js.map +0 -1
  1043. package/mobile/lib/utils/sliceArray.d.ts +0 -1
  1044. package/mobile/lib/utils/sliceArray.js +0 -12
  1045. package/mobile/lib/utils/sliceArray.js.map +0 -1
  1046. package/mobile/src/components/Carousel/CarouselNavButtons.tsx +0 -51
  1047. package/mobile/src/components/ContentPage/renderBlock.tsx +0 -61
  1048. package/mobile/src/components/ContentPage/renderBlockList.tsx +0 -28
  1049. package/mobile/src/components/ContentPage/renderSlots.tsx +0 -32
  1050. package/mobile/src/model/getParentBlockDef.ts +0 -12
  1051. package/mobile/src/utils/sliceArray.ts +0 -15
  1052. package/src/components/Carousel/CarouselNavButtons.tsx +0 -51
  1053. package/src/components/ContentPage/renderBlock.tsx +0 -61
  1054. package/src/components/ContentPage/renderBlockList.tsx +0 -28
  1055. package/src/components/ContentPage/renderSlots.tsx +0 -32
  1056. package/src/model/.CarouselCardVersion.ts.icloud +0 -0
  1057. package/src/model/getParentBlockDef.ts +0 -12
  1058. 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',
@@ -357,7 +404,7 @@
357
404
 
358
405
  const AccordionItemsList = JSX(({ children }) => (jsx("ul", { className: "list-none m-0 p-0", children: children })));
359
406
 
360
- const Accordion = JSX(({ className = '', title, accordionAlignTitle = 'center', description, children, ...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: 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) })] })));
361
408
  Accordion.childrenTypes = ['AccordionItem'];
362
409
 
363
410
  const Foldable = JSX(({ isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
@@ -458,51 +505,47 @@
458
505
  });
459
506
 
460
507
  const icons$1 = ['PlusIcon', 'MinusIcon'];
461
- 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 })) }) })));
462
509
  AccordionItem.childrenTypes = [];
463
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 })] })));
464
511
 
465
- const LINK_CLASS_NAME = `absolute border border-primary-main ml-3 px-6 py-5
466
- text-l-light bg-white text-primary-text flex w-[316px]
467
- justify-between items-center group-hover:text-primary-main z-10`;
468
- const LINK_BORDER_CLASS_NAME = 'bg-transparent border-white border h-[70px] absolute w-[316px] top-0';
469
- const LinkButton = JSX(({ text, href = '', target = '', className = '' }) => {
470
- if (!text) {
471
- return null;
472
- }
473
- 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` })] }));
512
+ const VersionStyleMap = {
513
+ primary: 'bg-white text-primary-text',
514
+ secondary: 'bg-primary-main text-white',
515
+ };
516
+
517
+ const getIconWithVersion = (icon, version = 'primary') => ({
518
+ ...icon,
519
+ iconVersion: icon?.iconVersion ?? (version === 'secondary' ? 'white' : 'color'),
474
520
  });
475
521
 
476
- const sliceArray = (items, size) => {
477
- const result = items.reduce((resultArray, item, index) => {
478
- const chunkIndex = Math.floor(index / (size - 1));
479
- if (!resultArray[chunkIndex]) {
480
- resultArray[chunkIndex] = [item];
481
- }
482
- resultArray[chunkIndex].push(item);
483
- return resultArray;
484
- }, []);
485
- return result;
522
+ const benefitsTextStyleMap = {
523
+ primary: '',
524
+ secondary: 'text-white',
486
525
  };
487
-
488
- const useCarouselControls = ({ itemsCount, visibleItemCount = itemsCount, isCyclic, }) => {
489
- const [activeIndex, setActiveIndex] = useState(0);
490
- const inc = useCallback(() => setActiveIndex((_) => (isCyclic ? (_ + 1) % itemsCount : Math.min(_ + 1, itemsCount - 1))), [isCyclic, itemsCount]);
491
- const dec = useCallback(() => setActiveIndex((_) => (isCyclic ? (itemsCount + _ - 1) % itemsCount : Math.max(_ - 1, 0))), [isCyclic, itemsCount]);
492
- const isScrollAvailable = itemsCount > visibleItemCount;
493
- const isCyclicAndScrollAvailable = isCyclic && isScrollAvailable;
494
- const canInc = isCyclicAndScrollAvailable ||
495
- (isScrollAvailable && itemsCount - activeIndex > visibleItemCount);
496
- const canDec = isCyclicAndScrollAvailable || Boolean(isScrollAvailable && activeIndex > 0);
497
- return [
498
- activeIndex,
499
- {
500
- inc,
501
- dec,
502
- canInc,
503
- canDec,
504
- },
505
- ];
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;
506
549
  };
507
550
 
508
551
  const isURL = (href) => href?.includes('//');
@@ -656,90 +699,6 @@
656
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 })));
657
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 })));
658
701
 
659
- 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
660
- ? 'bg-secondary-light text-secondary-text'
661
- : '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 }) })));
662
-
663
- function renderArrows({ handler, isShown, btnClass, className = '', isDisabled = false, }) {
664
- 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] }));
665
- }
666
-
667
- const CarouselContainer = JSX(({ children, activeItem, cardFullViewCount, cardWidth }) => {
668
- const cardFullViewStyles = cardFullViewCount === 1
669
- ? `translateX(-${activeItem}00%)`
670
- : `translateX(-${activeItem * Number(cardWidth)}px)`;
671
- return (jsx("div", { className: "w-auto flex flex-1 duration-1000", style: { transform: `${cardFullViewStyles}` }, role: "list", children: children }));
672
- });
673
-
674
- const Carousel = JSX(({ cardFullViewCount = 1, children, cardWidth = '1007', className = '', isBlur = true, isCyclic = false, block, ...rest }) => {
675
- const blurClasses = isBlur ? 'absolute top-0 bottom-0 w-[84px]' : '';
676
- const { blocks: childBlocks } = block || {};
677
- const childBlocksLength = childBlocks !== undefined ? childBlocks.length : 0;
678
- const isScrollAvailable = childBlocksLength > cardFullViewCount;
679
- const [activeIndex, controls] = useCarouselControls({
680
- itemsCount: childBlocksLength,
681
- visibleItemCount: cardFullViewCount,
682
- isCyclic,
683
- });
684
- const { inc, dec, canDec, canInc } = controls;
685
- 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({
686
- handler: [dec, inc],
687
- isShown: [canDec, canInc],
688
- btnClass: ['left-8', 'right-8'],
689
- className: 'top-1/2 z-10',
690
- }) })) : 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] }));
691
- });
692
- Carousel.childrenTypes = ['CarouselCard', 'CarouselTariffsCard'];
693
-
694
- const MAX_LINKS_COUNT = 12;
695
- const CarouselLinks = JSX(({ additionalDescription, description, links, title, className = '', ...rest }) => {
696
- 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("div", { className: "pt-5", children: jsx(Paragraph, { size: "text-xl", font: "font-light", children: description }) })) : null, additionalDescription ? (jsx("div", { className: "pt-6", children: jsx(Paragraph, { children: additionalDescription }) })) : null] }), links?.length ? renderLinks(links) : null] }));
697
- });
698
- const renderLinks = (links) => {
699
- const slicedLinks = sliceArray(links, MAX_LINKS_COUNT);
700
- 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)))) })));
701
- return (jsx(Carousel, { className: "min-w-[832px] w-[832px]", isBlur: false, cardFullViewCount: 1, cardWidth: '832', isCyclic: true, block: { type: 'Carousel', blocks: slides }, children: slides }));
702
- };
703
-
704
- const VersionStyleMap = {
705
- primary: 'bg-white text-primary-text',
706
- secondary: 'bg-primary-main text-white',
707
- };
708
-
709
- const getIconWithVersion = (icon, version = 'primary') => ({
710
- ...icon,
711
- iconVersion: icon?.iconVersion ?? (version === 'secondary' ? 'white' : 'color'),
712
- });
713
-
714
- const benefitsTextStyleMap = {
715
- primary: '',
716
- secondary: 'text-white',
717
- };
718
- const benefitsDescriptionStyleMap = {
719
- primary: 'text-secondary-text',
720
- secondary: 'text-white opacity-80',
721
- };
722
- const benefitsIconStyleMap = {
723
- primary: 'bg-main-divider text-primary-main',
724
- secondary: 'bg-white/30 text-black',
725
- };
726
- 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] })));
727
- const renderStep = (version) => (benefit, i) => {
728
- const description = benefit.description;
729
- 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)));
730
- };
731
- const renderDescription$3 = (description, version) => {
732
- const benefitType = description?.benefitType || null;
733
- return description && benefitType ? (jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[version]}`, children: benefitType === 'list'
734
- ? renderListBenefit(description)
735
- : renderTextBenefit(description) })) : null;
736
- };
737
- const renderTextBenefit = (description) => description?.name || null;
738
- const renderListBenefit = (description) => {
739
- const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
740
- return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
741
- };
742
-
743
702
  const ButtonSection = JSX(({ className = '', buttons }) => buttons && buttons?.length ? (jsx("div", { className: className, children: buttons.map((button, index) => renderButton({ button, index })) })) : null);
744
703
  function renderButton({ button, buttonClassName, index }) {
745
704
  const { icon, iconRight, version, ...rest } = button;
@@ -844,11 +803,22 @@
844
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] }));
845
804
  const renderBonusImage = (_) => _.image ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full`, image: _.image })) : null;
846
805
 
847
- 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] })));
848
- const renderBonusBenefit = (bonusBenefit, i) => {
849
- 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
+ }
850
821
  };
851
- const getElementsColsValue = (colValue) => colValue === '4' ? 'grid-cols-4' : 'grid-cols-5';
852
822
 
853
823
  const BusinessCard = JSX((props) => {
854
824
  const { title, image, cardItems, button } = props;
@@ -861,11 +831,49 @@
861
831
 
862
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 })] })));
863
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
+
864
874
  const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
865
875
 
866
- const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => {
867
- 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] }));
868
- });
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] })));
869
877
 
870
878
  const DEFAULT_MIN_SUM = 60000;
871
879
  const DEFAULT_MAX_SUM = 2000000;
@@ -1221,46 +1229,45 @@
1221
1229
  const Calculator = JSX(({ className = '', calculatorTabs = [], ...rest }) => {
1222
1230
  const tabsNav = calculatorTabs.map((_) => _.nav || {});
1223
1231
  const calculatorBlocks = calculatorTabs.map(({ calculatorBlock }) => calculatorBlock || {});
1224
- const [activeSlideIndex, setActiveSlideIndex] = useState(0);
1225
- const [tabsShift, setTabsShift] = useState(0);
1226
- const handleNextClick = () => setTabsShift(tabsShift + 1);
1227
- const handlePrevClick = () => setTabsShift(tabsShift - 1);
1228
- const isGalleryScrollAvailable = calculatorTabs?.length > 3;
1229
- const showNextButton = isGalleryScrollAvailable && calculatorTabs?.length > tabsShift + 3;
1230
- 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
+ });
1231
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
1232
- ? renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex })
1240
+ ? renderTabs({ activeIndex, tabsNav, slideIndexShift, onClick: handleSlideIndexShift })
1233
1241
  : null, renderArrows({
1234
- handler: [handlePrevClick, handleNextClick],
1235
- isShown: [showPrevButton, showNextButton],
1242
+ ...controls,
1236
1243
  btnClass: ['left-3', 'right-3'],
1237
1244
  className: 'top-8',
1238
- })] }), 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 })] }));
1239
1246
  });
1240
- function renderNavButton$2({ tab, i, activeSlideIndex, onClick }) {
1241
- const isActiveBtn = i === activeSlideIndex;
1242
- const btnClassName = isActiveBtn
1247
+ function renderNavButton$2({ tab, i, isActive, onClick }) {
1248
+ const btnClassName = isActive
1243
1249
  ? 'h-[88px] w-[387px] min-w-[387px] p-5 border-none bg-primary-main text-white'
1244
1250
  : `h-[77px] w-[328px] min-w-[328px] px-5 py-4 ease-in duration-300 bg-white text-primary-text`;
1245
- const btnTitleClassName = isActiveBtn ? 'text-xl mb-1.5' : `text-l mb-[3px]`;
1246
- const btnDescClassName = isActiveBtn
1251
+ const btnTitleClassName = isActive ? 'text-xl mb-1.5' : `text-l mb-[3px]`;
1252
+ const btnDescClassName = isActive
1247
1253
  ? 'text-l-light text-white'
1248
1254
  : `text-m-light text-secondary-text`;
1249
- const iconClassName = isActiveBtn ? '' : `text-primary-main`;
1255
+ const iconClassName = isActive ? '' : `text-primary-main`;
1250
1256
  const iconVersion = tab?.icon?.iconVersion;
1251
- const activeIconStyle = isActiveBtn ? 'white' : 'normal';
1257
+ const activeIconStyle = isActive ? 'white' : 'normal';
1252
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]
1253
1259
  ${btnClassName}`, children: [jsx(ImgInner, { className: `h-6 w-6 min-w-6 min-h-6 mr-4 ${iconClassName}`, image: {
1254
1260
  ...tab?.icon,
1255
1261
  iconVersion: iconVersion ?? activeIconStyle,
1256
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)));
1257
1263
  }
1258
- function renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex }) {
1259
- 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({
1260
1267
  tab,
1261
1268
  i,
1262
- activeSlideIndex,
1263
- onClick: () => setActiveSlideIndex(i),
1269
+ isActive: Boolean(i === slideIndexShift),
1270
+ onClick: () => onClick(i),
1264
1271
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1265
1272
  }
1266
1273
 
@@ -1327,27 +1334,73 @@
1327
1334
  const DEFAULT_PLACEHOLDER = '1500';
1328
1335
  const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, placeholder = DEFAULT_PLACEHOLDER, button, ...rest }) => {
1329
1336
  const [value, setValue] = useState('');
1337
+ const handleChange = useCallback((_) => setValue(_), []);
1330
1338
  const isDisabled = !Number(getSanitizedValue(value));
1331
1339
  const buttonStyle = isDisabled
1332
1340
  ? getDisabledButtonClasses({ version: button?.version })
1333
1341
  : getRegularButtonClasses({ className: 'text-white', version: button?.version });
1334
1342
  const link = useLink();
1335
- 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] })] }));
1336
1344
  });
1337
1345
 
1338
- const BLOCK_CLASSES = 'absolute border border-solid border-main-stroke w-[100%] h-[100%]';
1339
- const CARD_STYLE_MAP = {
1340
- normal: 'min-w-[100%] justify-center items-center my-7 col-span-12',
1341
- mini: 'justify-center items-center mx-4 my-9 col-span-4',
1342
- };
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';
1343
1377
  const CARD_WIDTH_MAP = {
1344
- normal: 'w-[1007px]',
1345
- mini: 'w-[350px]',
1378
+ normal: `w-[${1007 + 48}px]`,
1379
+ mini: `w-[${350 + 48}px]`,
1346
1380
  };
1347
- const CarouselCard = JSX(({ button, className = '', description, title, version = 'normal' }) => {
1348
- 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
1349
- 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] }));
1350
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
+ };
1351
1404
 
1352
1405
  const CarouselTariffsCard = JSX(({ className = '', title, icon, isHighlighting, button, rows = [], ...rest }) => {
1353
1406
  const hitStyle = getHitStyle(Boolean(isHighlighting));
@@ -1357,11 +1410,11 @@
1357
1410
  rowsNode.slice(0, VISIBLE_ROWS_COUNT),
1358
1411
  rowsNode.slice(VISIBLE_ROWS_COUNT),
1359
1412
  ];
1360
- 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] }));
1361
1414
  });
1362
1415
  const getHitStyle = (isHighlighting) => isHighlighting ? 'mt-9 pt-[71px]' : 'mt-[70px] pt-9';
1363
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 })] }));
1364
- 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)));
1365
1418
  const renderHitIcon = () => {
1366
1419
  const POSITION_STYLE = 'absolute -top-7 -right-4';
1367
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" })] }));
@@ -1375,18 +1428,15 @@
1375
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)));
1376
1429
 
1377
1430
  const BLUR_BLOCK_CLASSES$2 = 'absolute top-0 bottom-0 w-[84px]';
1378
- const CARD_FULL_VIEW_COUNT$2 = 3;
1431
+ const CARD_VIEW_COUNT$1 = 3;
1379
1432
  const CARD_SHIFT$1 = 430;
1380
1433
  const Catalog = JSX(({ cards = [], className = '', title, description, ...rest }) => {
1381
- const [activeCardIndex, setActiveCardIndex] = useState(0);
1382
- const handleNextClick = useCallback(() => setActiveCardIndex((_) => _ + 1), []);
1383
- const handlePrevClick = useCallback(() => setActiveCardIndex((_) => _ - 1), []);
1384
- const isUseSlider = cards.length > CARD_FULL_VIEW_COUNT$2;
1385
- const showNextButton = isUseSlider && cards.length - activeCardIndex > CARD_FULL_VIEW_COUNT$2;
1386
- const showPrevButton = isUseSlider && activeCardIndex > 0;
1387
- 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({
1388
- handler: [handlePrevClick, handleNextClick],
1389
- 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,
1390
1440
  btnClass: ['left-8', 'right-8'],
1391
1441
  className: 'top-1/2 z-10 mt-6',
1392
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` })] }));
@@ -1396,7 +1446,7 @@
1396
1446
  const BORDER_CLASSES$1 = 'border-main-stroke border-solid border';
1397
1447
  const DIVIDER_CLASSES$1 = 'border-main-divider border border-t-0 border-x-0';
1398
1448
  const FIRST_CELL_CLASSES$1 = 'w-[200px] mr-6';
1399
- const COLS_LENGTH_FOR_SCROLL$1 = 2;
1449
+ const COLS_LENGTH_FOR_SCROLL$1 = 3;
1400
1450
  const COLUMN_WIDTH$2 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1401
1451
 
1402
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 }) }) }))] })));
@@ -1405,11 +1455,11 @@
1405
1455
  comparison: 'flex gap-4 duration-1000',
1406
1456
  tariff: 'flex flex-grow duration-1000',
1407
1457
  };
1408
- 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 }) })));
1409
1459
 
1410
1460
  const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
1411
1461
 
1412
- 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)))) })] })));
1413
1463
 
1414
1464
  const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
1415
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 : ''}`;
@@ -1421,20 +1471,21 @@
1421
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)));
1422
1472
 
1423
1473
  const titleStyle = (isLastRow = false) => `text-s py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1424
- 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] })));
1425
-
1426
- const ComparisonTableRows = JSX(({ rowData, isColoredFirstColumn, activeCardIndex, controls, isScrollAvailable }) => {
1427
- const { inc, dec, canDec, canInc } = controls;
1428
- 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({
1429
- handler: [inc, dec],
1430
- isShown: [canDec, canInc],
1431
- 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]'],
1432
1482
  className: 'right-7',
1433
1483
  isDisabled: true,
1434
- }) })) : null] }));
1484
+ })
1485
+ : null] }));
1435
1486
  });
1436
1487
 
1437
- const ComparisonTableBody = JSX(({ columns, rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
1488
+ const ComparisonTableBody = JSX(({ columns = [], rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
1438
1489
  const colHeaders = columns?.map(({ header }) => header || {});
1439
1490
  const colData = columns?.map(({ data }) => data) || [];
1440
1491
  const rowData = rowHeaders
@@ -1443,12 +1494,12 @@
1443
1494
  data: colData.map((col) => col?.[i] || [{}]),
1444
1495
  }))
1445
1496
  .slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
1446
- const isScrollAvailable = colData.length > COLS_LENGTH_FOR_SCROLL$1;
1447
1497
  const [activeIndex, controls] = useCarouselControls({
1448
- itemsCount: colData.length,
1498
+ itemCount: columns.length,
1449
1499
  visibleItemCount: COLS_LENGTH_FOR_SCROLL$1,
1450
1500
  });
1451
- 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] }));
1452
1503
  });
1453
1504
 
1454
1505
  const ComparisonTable = JSX(({ className = '', title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, ...rest }) => {
@@ -1460,9 +1511,7 @@
1460
1511
  });
1461
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 ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1462
1513
 
1463
- const ContactsBlock = JSX(({ className = '', contacts, info, version = 'secondary', ...rest }) => {
1464
- return (jsxs(BlockWrapper, { className: `${VersionStyleMap[version]} flex p-[50px] ${className}`, ...rest, children: [info?.length ? renderBlocks(info, version) : null, contacts?.length ? renderBlocks(contacts, version) : null] }));
1465
- });
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] })));
1466
1515
  const renderBlocks = (info, version) => (jsx("div", { className: "flex grow basis-0", children: info.map((column, index) => renderBlocksColumn({ column, index, version })) }));
1467
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;
1468
1517
 
@@ -1497,9 +1546,7 @@
1497
1546
  USD: 'DollarIcon',
1498
1547
  EUR: 'EuroIcon',
1499
1548
  };
1500
- const CurrencyTable = JSX(({ className, exchangeCurrencyItems }) => {
1501
- 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)) })] }));
1502
- });
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) })] })));
1503
1550
  const renderCurrencyRow = (exchangeCurrencyItem) => {
1504
1551
  const currency = exchangeCurrencyItem?.currency?.currency;
1505
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));
@@ -1596,9 +1643,7 @@
1596
1643
  selectSell: currencyRatesBuy?.[0]?.currency?.currency || Currency.RUB,
1597
1644
  selectBuy: currencyRatesSell?.[0]?.currency?.currency || Currency.USD,
1598
1645
  });
1599
- const handleSetCalcState = (newState) => {
1600
- setCalcState((oldState) => ({ ...oldState, ...newState }));
1601
- };
1646
+ const handleSetCalcState = useCallback((newState) => setCalcState((oldState) => ({ ...oldState, ...newState })), []);
1602
1647
  return (jsxs("div", { className: `grid gap-[18px] pt-2 ${className}`, children: [renderInput({
1603
1648
  placeholder: 'Хочу продать',
1604
1649
  rates: currencyRatesSell,
@@ -1857,7 +1902,7 @@
1857
1902
 
1858
1903
  const LEFT_COL_WIDTH_FULL_HD = 'w-[204px]';
1859
1904
  const Footer = JSX(({ className, ...rest }) => {
1860
- const fallback = rest.page?.fallback;
1905
+ const fallback = rest.options?.page?.fallback;
1861
1906
  const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
1862
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 })] }));
1863
1908
  });
@@ -1912,37 +1957,30 @@
1912
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)))) }));
1913
1958
  });
1914
1959
 
1915
- const GalleryCardInner = JSX(({ title, headlineSmallVersion = 'H6', description, additionalDescription, icon, items, button, version, isDotted = true, align = 'center', }) => {
1916
- 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] }));
1917
- });
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] })));
1918
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] }));
1919
1962
  const renderCardTitle = (headlineSmallVersion, title) => title ? jsx("div", { className: HEADLINE_SMALL_VERSION[headlineSmallVersion], children: title }) : null;
1920
1963
  const renderDescription$2 = (description, title) => description ? jsx("div", { className: `text-l ${title ? 'mt-2' : ''}`, children: description }) : null;
1921
1964
  const renderAdditionalDescription$1 = (additionalDescription) => additionalDescription ? (jsx("div", { className: "text-m-light text-secondary-text mt-auto", children: additionalDescription })) : null;
1922
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 }));
1923
1966
 
1924
- const GalleryContainer = JSX(({ headlineVersion = 'M', cards = [], version = 'normal', activeCardIndex, ...rest }) => {
1925
- 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)) })] }));
1926
- });
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)) })] })));
1927
1968
  function renderCard({ card, version }, i) {
1928
1969
  return (jsx("section", { className: `box-border border-solid border border-main-stroke p-6 mx-2 flex flex-col justify-between
1929
1970
  items-stretch ${cardStyleMap[version]} ${VersionStyleMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
1930
1971
  }
1931
1972
 
1932
1973
  const GalleryInner = JSX(({ cards = [], className = '', version = 'normal', button, ...rest }) => {
1933
- const [activeCardIndex, setActiveCardIndex] = useState(0);
1934
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1935
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1936
- const isGalleryScrollAvailable = cards?.length > galleryLengthForScrollMap[version];
1937
- const showNextButton = isGalleryScrollAvailable &&
1938
- cards?.length - activeCardIndex > galleryLengthForScrollMap[version];
1939
- const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
1940
- 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({
1941
- handler: [handlePrevClick, handleNextClick],
1942
- 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,
1943
1981
  btnClass: ['left-8', 'right-8'],
1944
1982
  className: 'top-1/2',
1945
- }), 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] }));
1946
1984
  });
1947
1985
 
1948
1986
  const Gallery = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
@@ -2112,7 +2150,7 @@
2112
2150
  };
2113
2151
  const Header = JSX(({ bgColor = 'bg-white', className = '', showSubMenu = true, ...rest }) => {
2114
2152
  const router = useRouter();
2115
- const { topItems, logo, defaultLocation } = useSWRResource(projectSettings.SITEMAP || 'sitemap', rest.page?.fallback);
2153
+ const { topItems, logo, defaultLocation } = useSWRResource(projectSettings.SITEMAP || 'sitemap', rest.options?.page?.fallback);
2116
2154
  const activeTopItem = showSubMenu ? getActiveItem(topItems, router) : null;
2117
2155
  const topMenu = topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, "aria-label": _.text, bgColor: bgColor, ..._ }, String(i))));
2118
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] }) }));
@@ -2124,47 +2162,44 @@
2124
2162
  };
2125
2163
 
2126
2164
  const InsuranceAmountBlockInner = JSX(({ className = '', cards = [], button }) => {
2127
- const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2128
- const [tabsShift, setTabsShift] = useState(0);
2129
- const handleNextClick = () => setTabsShift(tabsShift + 1);
2130
- const handlePrevClick = () => setTabsShift(tabsShift - 1);
2131
- const galleryLength = cards?.length ?? 0;
2132
- const isGalleryScrollAvailable = cards?.length > 2;
2133
- const showNextButton = isGalleryScrollAvailable && galleryLength > tabsShift + 2;
2134
- const isLastShift = galleryLength === tabsShift + 2;
2135
- const showPrevButton = tabsShift > 0;
2136
- 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;
2137
2175
  return (jsxs("section", { role: "listitem", className: `min-w-full text-center ${className}`, children: [jsxs("div", { className: "relative overflow-hidden", children: [galleryLength
2138
2176
  ? renderGallery({
2139
- tabsShift,
2177
+ activeIndex,
2140
2178
  cards,
2141
- activeSlideIndex,
2142
- isLastShift,
2143
- setActiveSlideIndex,
2179
+ selectedCardIndex,
2180
+ onClick: handleSelectedCardIndex,
2144
2181
  })
2145
2182
  : null, renderArrows({
2146
- handler: [handlePrevClick, handleNextClick],
2147
- isShown: [showPrevButton, showNextButton],
2183
+ ...controls,
2148
2184
  btnClass: ['left-[50px]', 'right-[50px]'],
2149
2185
  className: 'top-[62px]',
2150
- }), 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 })] }));
2151
2187
  });
2152
- function renderGallery({ tabsShift, cards, activeSlideIndex, isLastShift, setActiveSlideIndex, }) {
2153
- const tabsShiftWidth = isLastShift ? tabsShift * 460 - 240 : tabsShift * 460;
2188
+ function renderGallery({ activeIndex, cards, selectedCardIndex, onClick }) {
2189
+ const tabsShiftWidth = activeIndex * 460;
2154
2190
  const cardsAlignStyle = cards.length > 2 ? 'justify-start' : 'justify-center';
2155
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({
2156
2192
  slide,
2157
2193
  i,
2158
- activeSlideIndex,
2159
- onClick: () => setActiveSlideIndex(i),
2194
+ isActive: Boolean(i === selectedCardIndex),
2195
+ onClick: () => onClick(i),
2160
2196
  })) }) }));
2161
2197
  }
2162
- function renderSlide({ slide, i, activeSlideIndex, onClick }) {
2163
- const isActiveBtn = i === activeSlideIndex;
2164
- const btnClassName = isActiveBtn
2198
+ function renderSlide({ slide, i, isActive, onClick }) {
2199
+ const btnClassName = isActive
2165
2200
  ? 'shadow-dark-blue/42 border-primary-main'
2166
2201
  : `ease-in duration-300 border-main-stroke`;
2167
- 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)));
2168
2203
  }
2169
2204
  function renderValueBlock$1(title, sum) {
2170
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 })] }));
@@ -2220,30 +2255,20 @@
2220
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))));
2221
2256
 
2222
2257
  const BLUR_BLOCK_CLASSES$1 = 'absolute top-0 bottom-0 w-[84px]';
2223
- const CARD_FULL_VIEW_COUNT$1 = 1;
2258
+ const CARD_FULL_VIEW_COUNT = 1;
2224
2259
  const InvestmentGallery = JSX(({ cards = [], className = '', title, version = 'primary', ...rest }) => {
2225
- const [activeCardIndex, setActiveCardIndex] = useState(0);
2226
- const cardWidth = 525;
2227
- 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({
2228
- cardsCount: cards.length,
2229
- activeCardIndex,
2230
- 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',
2231
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'}` })] }));
2232
2270
  });
2233
2271
  const renderInvestmentGalleryCard = (className, version) => (card, i) => jsx(InvestmentGalleryCard, { className: className, version: version, ...card }, String(i));
2234
- const renderNavButtons$1 = ({ cardsCount, activeCardIndex, setActiveCardIndex }) => {
2235
- const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT$1;
2236
- const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT$1;
2237
- const showPrevButton = isUseSlider && activeCardIndex > 0;
2238
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
2239
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
2240
- return (jsx("div", { children: renderArrows({
2241
- handler: [handlePrevClick, handleNextClick],
2242
- isShown: [showPrevButton, showNextButton],
2243
- btnClass: ['left-8', 'right-8'],
2244
- className: 'top-1/2 mt-3',
2245
- }) }));
2246
- };
2247
2272
 
2248
2273
  function joinList(sep) {
2249
2274
  return (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: i }, el) : [el]), []);
@@ -2346,16 +2371,16 @@
2346
2371
  const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2347
2372
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
2348
2373
  const buttonsWithClass = buttons?.map((_) => ({ ..._, className: 'min-w-[168px]' }));
2349
- 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]
2350
2375
  ${getTileMinHeight(className)}
2351
2376
  ${VersionStyleMap[version]}
2352
- ${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
2353
- ${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] }));
2354
2379
  });
2355
2380
  const renderList$1 = (version, items) => {
2356
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" }));
2357
2382
  };
2358
- 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;
2359
2384
 
2360
2385
  function renderClusterer(yandexMaps, map, points) {
2361
2386
  map.geoObjects.removeAll();
@@ -2763,19 +2788,15 @@
2763
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] })));
2764
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)}`));
2765
2790
 
2766
- 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) })));
2767
2792
  OtherProducts.childrenTypes = ['OtherProductsItem'];
2768
2793
 
2769
- function getParentBlockDef(ancestors, type) {
2770
- const [block] = (ancestors || [])
2771
- .map((item) => item)
2772
- .reverse()
2773
- .find(([_]) => _ && 'type' in _ && (!type || type === _.type)) || [];
2774
- return block || {};
2794
+ function getParentBlockDef(options) {
2795
+ return options?.parent || {};
2775
2796
  }
2776
2797
 
2777
- function getParentBlockContent(ancestors, defaultContent) {
2778
- const { content } = getParentBlockDef(ancestors);
2798
+ function getParentBlockContent(options, defaultContent) {
2799
+ const { content } = getParentBlockDef(options);
2779
2800
  return content || defaultContent;
2780
2801
  }
2781
2802
 
@@ -2799,9 +2820,9 @@
2799
2820
  };
2800
2821
 
2801
2822
  const icons = ['ArrowDownIcon', 'ArrowUpIcon'];
2802
- const OtherProductsItem = JSX(({ className, page, ancestors, label = '', isUnfolded: unfoldedByDefault, children }) => {
2803
- const { colorPalette } = getParentBlockContent(ancestors, {});
2804
- 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 })) }) }));
2805
2826
  });
2806
2827
  OtherProductsItem.childrenTypes = []; // All types of blocks are suitable
2807
2828
 
@@ -2886,10 +2907,10 @@
2886
2907
 
2887
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)));
2888
2909
 
2889
- 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 }) => {
2890
2911
  const benefitsCount = benefits?.filter((_) => _.label)?.length;
2891
2912
  const benefitsContainerStyles = getBenefitsContainerStyles(benefitsCountOfRow);
2892
- 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 })] }));
2893
2914
  });
2894
2915
  const getBenefitsContainerStyles = (benefitsCountOfRow = 2) => `gap-6 mt-6 ${benefitsCountOfRow > 2
2895
2916
  ? 'inline-grid grid-cols-[auto_auto_auto]'
@@ -3005,38 +3026,29 @@
3005
3026
  });
3006
3027
 
3007
3028
  const BLUR_BLOCK_CLASSES = 'absolute top-0 bottom-0 w-[84px]';
3008
- const CARD_FULL_VIEW_COUNT = 2;
3029
+ const CARD_VIEW_COUNT = 2;
3009
3030
  const CARD_SHIFT = 525;
3010
3031
  const Recommendation = JSX(({ recommendations = [], className = '', title, version = 'primary', ...rest }) => {
3011
- const [activeCardIndex, setActiveCardIndex] = useState(0);
3012
- 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
3013
3037
  ? recommendations.map((card, i) => (jsx(RecommendationCard, { version: version, className: BorderVersionStyleMap[version], ...card }, String(i))))
3014
- : null }), renderNavButtons({
3015
- cardsCount: recommendations.length,
3016
- activeCardIndex,
3017
- setActiveCardIndex,
3038
+ : null }), renderArrows({
3039
+ ...controls,
3040
+ btnClass: ['left-8', 'right-8'],
3041
+ className: 'top-1/2 mt-3',
3018
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'}` })] }));
3019
3043
  });
3020
- const renderNavButtons = ({ cardsCount, activeCardIndex, setActiveCardIndex, }) => {
3021
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
3022
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
3023
- const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT;
3024
- const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT;
3025
- const showPrevButton = isUseSlider && activeCardIndex > 0;
3026
- return (jsx("div", { children: renderArrows({
3027
- handler: [handlePrevClick, handleNextClick],
3028
- isShown: [showPrevButton, showNextButton],
3029
- btnClass: ['left-8', 'right-8'],
3030
- className: 'top-1/2 mt-3',
3031
- }) }));
3032
- };
3033
3044
 
3034
- 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 }) }) })));
3035
3046
  RollupItem.childrenTypes = [];
3036
3047
  const renderFoldButton = ({ isUnfolded, onToggle, label, version }) => {
3037
- const icons = ['PlusIcon', 'MinusIcon'];
3048
+ const iconsPrimary = ['PlusIcon', 'MinusIcon'];
3049
+ const iconsSecondary = ['ArrowDownIcon', 'ArrowUpIcon'];
3038
3050
  const labels = label ? [label, label] : ['Развернуть', 'Скрыть'];
3039
- 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 }));
3040
3052
  };
3041
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] })));
3042
3054
 
@@ -3231,7 +3243,7 @@
3231
3243
  return (jsxs(BlockWrapper, { className: [
3232
3244
  'box-border py-[50px] font-sans',
3233
3245
  shortGaps ? 'px-20' : 'px-[70px]',
3234
- 'flex flex-col items-center',
3246
+ 'flex flex-col items-center overflow-hidden',
3235
3247
  styleMap.background,
3236
3248
  styleMap.title,
3237
3249
  className,
@@ -3417,16 +3429,15 @@
3417
3429
 
3418
3430
  const COLUMN_WIDTH = 140;
3419
3431
  const InnerTableBodyItem = JSX(({ rows }) => {
3420
- const [activeColumnIndex, setActiveColumnIndex] = useState(0);
3421
- const handleNextClick = () => setActiveColumnIndex(activeColumnIndex + 1);
3422
- const handlePrevClick = () => setActiveColumnIndex(activeColumnIndex - 1);
3423
3432
  const rowsLength = rows?.[0]?.length ?? 0;
3424
- const showNextButton = rowsLength > 3 && rowsLength > activeColumnIndex + 4;
3425
- const showPrevButton = activeColumnIndex > 0;
3426
- return (jsxs("div", { children: [rows?.map(renderRow(activeColumnIndex)), renderArrows({
3427
- handler: [handlePrevClick, handleNextClick],
3428
- isShown: [showPrevButton, showNextButton],
3429
- 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'],
3430
3441
  className: '',
3431
3442
  })] }));
3432
3443
  });
@@ -3470,11 +3481,11 @@
3470
3481
 
3471
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] })));
3472
3483
 
3473
- const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, rowIdx, ...rest }) => {
3484
+ const TariffsTableRow = JSX(({ row: { header, data }, activeIndex, rowIdx, ...rest }) => {
3474
3485
  const [tableInner, setTableInner] = useState(undefined);
3475
3486
  const [openTableInnerIdx, setOpenTableInnerIdx] = useState(undefined);
3476
3487
  const onHideContentClick = () => setTableInner(undefined);
3477
- 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] }));
3478
3489
  });
3479
3490
 
3480
3491
  const TariffsTable = JSX(({ className = '', title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
@@ -3483,15 +3494,15 @@
3483
3494
  header,
3484
3495
  data: colData.map((col) => col?.[i] || []),
3485
3496
  }));
3486
- const columnsLength = colData.length;
3497
+ const itemCount = colData.length;
3487
3498
  const [activeIndex, controls] = useCarouselControls({
3488
- itemsCount: colData.length,
3499
+ itemCount: itemCount,
3489
3500
  visibleItemCount: COLS_LENGTH_FOR_SCROLL,
3490
3501
  });
3491
- const isScrollAvailable = colData.length > COLS_LENGTH_FOR_SCROLL;
3492
- 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))));
3493
3504
  const [visibleRows, hiddenRows] = hiddenRowsNum > 0 ? [rows.slice(0, -hiddenRowsNum), rows.slice(-hiddenRowsNum)] : [rows, []];
3494
- 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 }))] }));
3495
3506
  });
3496
3507
  function renderTitle({ title, description }) {
3497
3508
  return title ? (jsx(Heading, { headingType: "h3", className: `text-center ${description ? 'mb-2.5' : 'mb-8'}`, title: title })) : null;
@@ -3499,15 +3510,13 @@
3499
3510
  function renderDescription(description) {
3500
3511
  return description ? jsx("div", { className: "mb-9 text-center text-l", children: description }) : null;
3501
3512
  }
3502
- const Wrapper = JSX(({ children, controls, isScrollAvailable }) => {
3503
- const { inc, dec, canDec, canInc } = controls;
3504
- return (jsxs("div", { role: "table", children: [jsxs("div", { className: "relative", children: [children, isScrollAvailable ? (jsx("div", { children: renderArrows({
3505
- handler: [inc, dec],
3506
- isShown: [canDec, canInc],
3507
- btnClass: ['top-[108px]', 'top-11'],
3508
- className: 'right-7',
3509
- }) })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
3510
- });
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] })));
3511
3520
 
3512
3521
  const textBlockStyleMaps = {
3513
3522
  primary: {
@@ -3574,17 +3583,25 @@
3574
3583
  primary: 'bg-white',
3575
3584
  secondary: 'bg-primary-main',
3576
3585
  };
3577
- 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: [
3578
3587
  'flex flex-col',
3579
3588
  gapStyleMap[gap],
3580
3589
  alignStyle[align],
3581
3590
  backgroundStyleMap[version],
3582
3591
  className,
3583
- ].join(' '), ...rest, children: children })));
3592
+ ].join(' '), ...rest, children: renderChildren(rest) })));
3584
3593
  VerticalLayout.childrenTypes = {
3585
3594
  exclude: ['VerticalLayout'],
3586
3595
  };
3587
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
+
3588
3605
  const Blocks = {
3589
3606
  Accordion,
3590
3607
  AccordionItem,
@@ -3633,12 +3650,9 @@
3633
3650
  TextBlock,
3634
3651
  Tile,
3635
3652
  VerticalLayout,
3653
+ Video,
3636
3654
  };
3637
3655
 
3638
- function style2className(style) {
3639
- return style ? style.filter(Boolean).join(' ') : '';
3640
- }
3641
-
3642
3656
  const api = LikeAPI();
3643
3657
  function useLikeService(pagePath) {
3644
3658
  const [likeCount, setLikeCount] = useState(0);
@@ -3680,59 +3694,25 @@
3680
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 })] }));
3681
3695
  });
3682
3696
 
3683
- const DEFAULT_SLOT_NAME = null;
3684
-
3685
- const renderSlots = ({ slots, parent, options, ancestors = [], }) => Object.entries(slots || {}).reduce((res, [slotName, slotBlocks]) => ({
3686
- ...res,
3687
- [slotName]: renderBlocksList({
3688
- blocks: slotBlocks,
3689
- parent,
3690
- slotName,
3691
- options,
3692
- ancestors,
3693
- }),
3694
- }), {});
3695
-
3696
- function renderBlock({ block = {}, options, ancestors = [] }) {
3697
- const { key, page, blockDecorator, blocksRegistry = {} } = options;
3698
- const { type, slots, blocks: childBlocks } = block;
3699
- if (!(type && type in blocksRegistry)) {
3700
- console.warn(`No block with "${type}" is registered`);
3701
- }
3702
- const BlockComponent = type && blocksRegistry[type];
3703
- const subBlockRenderProps = { parent: block, options, ancestors };
3704
- const children = renderBlocksList({ ...subBlockRenderProps, blocks: childBlocks });
3705
- const blockSlots = slots ? renderSlots({ ...subBlockRenderProps, slots }) : {};
3706
- return blockDecorator({
3707
- blockClassName: `scroll-mt-12 ${style2className(block.style)}`,
3708
- block,
3709
- ancestors,
3710
- // Adjusted by decorator block and blockClassName
3711
- render: ({ block: adjustedBlock, blockClassName: adjustedBlockClassName }) => {
3712
- const { content } = adjustedBlock;
3713
- return BlockComponent ? (jsx(BlockComponent, { page: page, block: adjustedBlock, className: adjustedBlockClassName, ancestors: ancestors, slots: blockSlots, ...content, children: children }, key)) : null;
3714
- },
3715
- }, key);
3716
- }
3717
-
3718
- const renderBlocksList = ({ blocks, parent, slotName = DEFAULT_SLOT_NAME, options, ancestors = [], }) => (blocks || []).map((_, j) => renderBlock({
3719
- block: _,
3720
- options: { ...options, key: `${options.key ? options.key : _.type}-${j}` },
3721
- ancestors: [...ancestors, [parent, slotName]],
3722
- }));
3723
-
3724
- const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
3725
3697
  const ContentPage = JSX((props) => {
3726
3698
  const { className = '', blocksRegistry, blockDecorator, data = {} } = props;
3727
3699
  const { style: pageStyle, blocks, slots, likeControl, colorPalette = 'pc' } = data;
3728
3700
  const options = {
3729
3701
  key: '',
3730
- blocksRegistry,
3731
3702
  page: data,
3732
- blockDecorator: blockDecorator || defaultBlockDecorator,
3703
+ blocksRegistry,
3704
+ blockDecorator,
3705
+ parent: data,
3733
3706
  };
3734
- const pageSlots = renderSlots({ slots, parent: data, options });
3735
- 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] }));
3736
3716
  });
3737
3717
  ContentPage.childrenTypes = [];
3738
3718
  ContentPage.slots = () => ['header', 'footer'];
@@ -3740,7 +3720,7 @@
3740
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" }) }));
3741
3721
  }
3742
3722
 
3743
- const packageVersion = "0.6.33";
3723
+ const packageVersion = "0.6.34";
3744
3724
 
3745
3725
  exports.Blocks = Blocks;
3746
3726
  exports.ContentPage = ContentPage;