@redneckz/wildless-cms-uni-blocks 0.3.73 → 0.3.75

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 (634) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +270 -199
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/api/DaDataAPI.js.map +1 -1
  5. package/dist/api/LikeAPI.js.map +1 -1
  6. package/dist/components/Accordion/Accordion.mobile.js +1 -1
  7. package/dist/components/Accordion/Accordion.mobile.js.map +1 -1
  8. package/dist/components/Accordion/AccordionItem.mobile.js +1 -1
  9. package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
  10. package/dist/components/Accordion/AccordionItemInner.js +1 -2
  11. package/dist/components/Accordion/AccordionItemInner.js.map +1 -1
  12. package/dist/components/Accordion/AccordionItemInner.mobile.js +1 -2
  13. package/dist/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
  14. package/dist/components/BenefitsBlock/BenefitsBlock.js +1 -1
  15. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  16. package/dist/components/Blocks.d.ts +1 -0
  17. package/dist/components/Blocks.js +5 -3
  18. package/dist/components/Blocks.js.map +1 -1
  19. package/dist/components/Calculator/getMonthlyPayment.js.map +1 -1
  20. package/dist/components/Calculator/renderCalculatorBlock.js.map +1 -1
  21. package/dist/components/Calculator/renderMonthsInput.js.map +1 -1
  22. package/dist/components/Calculator/renderRate.js.map +1 -1
  23. package/dist/components/Catalog/Catalog.d.ts +5 -0
  24. package/dist/components/Catalog/Catalog.js +36 -0
  25. package/dist/components/Catalog/Catalog.js.map +1 -0
  26. package/dist/components/Catalog/CatalogCard.d.ts +7 -0
  27. package/dist/components/Catalog/CatalogCard.js +16 -0
  28. package/dist/components/Catalog/CatalogCard.js.map +1 -0
  29. package/dist/components/Catalog/CatalogContent.d.ts +22 -0
  30. package/{mobile/dist/model/Insurance.js → dist/components/Catalog/CatalogContent.js} +1 -1
  31. package/dist/components/Catalog/CatalogContent.js.map +1 -0
  32. package/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  33. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  34. package/dist/components/ContentPage/ContentPageHead.js.map +1 -1
  35. package/dist/components/ContentPage/normalizeBlock.js.map +1 -1
  36. package/dist/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
  37. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  38. package/dist/components/ExchangeRateTile/calculateResult.js.map +1 -1
  39. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  40. package/dist/components/Footer/SocialMedia.js.map +1 -1
  41. package/dist/components/Footer/SocialMedia.mobile.js.map +1 -1
  42. package/dist/components/Footer/TextInformation.js.map +1 -1
  43. package/dist/components/Footer/TextInformation.mobile.js.map +1 -1
  44. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  45. package/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  46. package/dist/components/GroupBlock/renderBlocksTypes.js.map +1 -1
  47. package/dist/components/Header/HeaderBurger.js.map +1 -1
  48. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  49. package/dist/components/Headline/Headline.mobile.js.map +1 -1
  50. package/dist/components/Insurance/Insurance.js +7 -4
  51. package/dist/components/Insurance/Insurance.js.map +1 -1
  52. package/dist/components/Insurance/InsuranceContent.d.ts +8 -2
  53. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +3 -3
  54. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  55. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +5 -3
  56. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  57. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  58. package/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  59. package/dist/components/LinkList/LinkList.js.map +1 -1
  60. package/dist/components/MobileAppTile/MobileAppTile.js +16 -2
  61. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  62. package/dist/components/MobileAppTile/MobileAppTile.mobile.js +2 -2
  63. package/dist/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  64. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +5 -1
  65. package/dist/components/OtherProducts/OtherProducts.js +1 -1
  66. package/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  67. package/dist/components/OtherProducts/OtherProductsContent.d.ts +3 -8
  68. package/dist/components/OtherProducts/OtherProductsItem.js +4 -6
  69. package/dist/components/OtherProducts/OtherProductsItem.js.map +1 -1
  70. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  71. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  72. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  73. package/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  74. package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  75. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  76. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  77. package/dist/components/StepsBlock/StepsBlock.js +10 -6
  78. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  79. package/dist/components/StepsBlock/StepsBlock.mobile.js +12 -31
  80. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  81. package/dist/components/StepsBlock/StepsBlockContent.d.ts +5 -2
  82. package/dist/components/StepsBlock/StepsBlockStyleMaps.d.ts +9 -0
  83. package/dist/components/StepsBlock/StepsBlockStyleMaps.js +21 -0
  84. package/dist/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -0
  85. package/dist/components/TextBlock/TextBlock.js.map +1 -1
  86. package/dist/components/TextBlock/TextBlock.mobile.js.map +1 -1
  87. package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  88. package/dist/content-page-repository/mapJSON.js.map +1 -1
  89. package/dist/content-page-repository/transformContentPage.js.map +1 -1
  90. package/dist/content-page-repository/transformMarkdown.js.map +1 -1
  91. package/dist/content-page-repository/transformPicture.js.map +1 -1
  92. package/dist/hooks/useCreditCalculatorData.js.map +1 -1
  93. package/dist/hooks/useExchangeRates.js.map +1 -1
  94. package/dist/hooks/useLink.js.map +1 -1
  95. package/dist/react/setup-fixture.js.map +1 -1
  96. package/dist/services/sitemap/findActiveSubItem.js.map +1 -1
  97. package/dist/services/sitemap/useSitemap.js.map +1 -1
  98. package/dist/ui-kit/BlocksList/BlocksListProps.d.ts +17 -15
  99. package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +2 -3
  100. package/dist/ui-kit/BlocksList/renderBlocksList.js +5 -4
  101. package/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  102. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  103. package/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  104. package/dist/ui-kit/Foldable/Foldable.d.ts +2 -0
  105. package/dist/ui-kit/Foldable/Foldable.js +5 -5
  106. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  107. package/dist/ui-kit/Input/Input.js.map +1 -1
  108. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  109. package/dist/ui-kit/List/ListItem.js.map +1 -1
  110. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  111. package/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  112. package/dist/ui-kit/SearchBar/SearchBar.mobile.js.map +1 -1
  113. package/dist/ui-kit/SearchBar.mobile.js.map +1 -1
  114. package/dist/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  115. package/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  116. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  117. package/dist/utils/adjustHref.js.map +1 -1
  118. package/dist/utils/getColSpan.js.map +1 -1
  119. package/dist/utils/roundTo.js.map +1 -1
  120. package/dist/utils/tableFunc.js.map +1 -1
  121. package/dist/utils/url.js.map +1 -1
  122. package/lib/api/DaDataAPI.js.map +1 -1
  123. package/lib/api/LikeAPI.js.map +1 -1
  124. package/lib/common.css +1 -1
  125. package/lib/components/Accordion/Accordion.mobile.js +1 -1
  126. package/lib/components/Accordion/Accordion.mobile.js.map +1 -1
  127. package/lib/components/Accordion/AccordionItem.mobile.js +1 -1
  128. package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
  129. package/lib/components/Accordion/AccordionItemInner.js +1 -2
  130. package/lib/components/Accordion/AccordionItemInner.js.map +1 -1
  131. package/lib/components/Accordion/AccordionItemInner.mobile.js +1 -2
  132. package/lib/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
  133. package/lib/components/BenefitsBlock/BenefitsBlock.js +1 -1
  134. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  135. package/lib/components/Blocks.d.ts +1 -0
  136. package/lib/components/Blocks.js +5 -3
  137. package/lib/components/Blocks.js.map +1 -1
  138. package/lib/components/Calculator/getMonthlyPayment.js.map +1 -1
  139. package/lib/components/Calculator/renderCalculatorBlock.js.map +1 -1
  140. package/lib/components/Calculator/renderMonthsInput.js.map +1 -1
  141. package/lib/components/Calculator/renderRate.js.map +1 -1
  142. package/lib/components/Catalog/Catalog.d.ts +5 -0
  143. package/lib/components/Catalog/Catalog.fixture.d.ts +6 -0
  144. package/lib/components/Catalog/Catalog.js +34 -0
  145. package/lib/components/Catalog/Catalog.js.map +1 -0
  146. package/lib/components/Catalog/CatalogCard.d.ts +7 -0
  147. package/lib/components/Catalog/CatalogCard.js +14 -0
  148. package/lib/components/Catalog/CatalogCard.js.map +1 -0
  149. package/lib/components/Catalog/CatalogContent.d.ts +22 -0
  150. package/lib/components/Catalog/CatalogContent.js +2 -0
  151. package/lib/components/Catalog/CatalogContent.js.map +1 -0
  152. package/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  153. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  154. package/lib/components/ContentPage/ContentPageHead.js.map +1 -1
  155. package/lib/components/ContentPage/normalizeBlock.js.map +1 -1
  156. package/lib/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
  157. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  158. package/lib/components/ExchangeRateTile/calculateResult.js.map +1 -1
  159. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  160. package/lib/components/Footer/SocialMedia.js.map +1 -1
  161. package/lib/components/Footer/SocialMedia.mobile.js.map +1 -1
  162. package/lib/components/Footer/TextInformation.js.map +1 -1
  163. package/lib/components/Footer/TextInformation.mobile.js.map +1 -1
  164. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  165. package/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  166. package/lib/components/GroupBlock/renderBlocksTypes.js.map +1 -1
  167. package/lib/components/Header/HeaderBurger.js.map +1 -1
  168. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  169. package/lib/components/Headline/Headline.mobile.js.map +1 -1
  170. package/lib/components/Insurance/Insurance.js +7 -4
  171. package/lib/components/Insurance/Insurance.js.map +1 -1
  172. package/lib/components/Insurance/InsuranceContent.d.ts +8 -2
  173. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +3 -3
  174. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  175. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +5 -3
  176. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  177. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  178. package/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  179. package/lib/components/LinkList/LinkList.js.map +1 -1
  180. package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +2 -0
  181. package/lib/components/MobileAppTile/MobileAppTile.js +16 -2
  182. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  183. package/lib/components/MobileAppTile/MobileAppTile.mobile.js +2 -2
  184. package/lib/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  185. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +5 -1
  186. package/lib/components/OtherProducts/OtherProducts.fixture.d.ts +0 -1
  187. package/lib/components/OtherProducts/OtherProducts.js +1 -1
  188. package/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  189. package/lib/components/OtherProducts/OtherProductsContent.d.ts +3 -8
  190. package/lib/components/OtherProducts/OtherProductsItem.js +4 -6
  191. package/lib/components/OtherProducts/OtherProductsItem.js.map +1 -1
  192. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  193. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  194. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  195. package/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  196. package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  197. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  198. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  199. package/lib/components/StepsBlock/StepsBlock.js +10 -6
  200. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  201. package/lib/components/StepsBlock/StepsBlock.mobile.js +12 -31
  202. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  203. package/lib/components/StepsBlock/StepsBlockContent.d.ts +5 -2
  204. package/lib/components/StepsBlock/StepsBlockStyleMaps.d.ts +9 -0
  205. package/lib/components/StepsBlock/StepsBlockStyleMaps.js +18 -0
  206. package/lib/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -0
  207. package/lib/components/TextBlock/TextBlock.js.map +1 -1
  208. package/lib/components/TextBlock/TextBlock.mobile.js.map +1 -1
  209. package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  210. package/lib/content-page-repository/mapJSON.js.map +1 -1
  211. package/lib/content-page-repository/transformContentPage.js.map +1 -1
  212. package/lib/content-page-repository/transformMarkdown.js.map +1 -1
  213. package/lib/content-page-repository/transformPicture.js.map +1 -1
  214. package/lib/hooks/useCreditCalculatorData.js.map +1 -1
  215. package/lib/hooks/useExchangeRates.js.map +1 -1
  216. package/lib/hooks/useLink.js.map +1 -1
  217. package/lib/react/setup-fixture.js.map +1 -1
  218. package/lib/services/sitemap/findActiveSubItem.js.map +1 -1
  219. package/lib/services/sitemap/useSitemap.js.map +1 -1
  220. package/lib/ui-kit/BlocksList/BlocksListProps.d.ts +17 -15
  221. package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +2 -3
  222. package/lib/ui-kit/BlocksList/renderBlocksList.js +5 -4
  223. package/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  224. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  225. package/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  226. package/lib/ui-kit/Foldable/Foldable.d.ts +2 -0
  227. package/lib/ui-kit/Foldable/Foldable.js +5 -5
  228. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  229. package/lib/ui-kit/Input/Input.js.map +1 -1
  230. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  231. package/lib/ui-kit/List/ListItem.js.map +1 -1
  232. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  233. package/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  234. package/lib/ui-kit/SearchBar/SearchBar.mobile.js.map +1 -1
  235. package/lib/ui-kit/SearchBar.mobile.js.map +1 -1
  236. package/lib/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  237. package/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  238. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  239. package/lib/utils/adjustHref.js.map +1 -1
  240. package/lib/utils/getColSpan.js.map +1 -1
  241. package/lib/utils/roundTo.js.map +1 -1
  242. package/lib/utils/tableFunc.js.map +1 -1
  243. package/lib/utils/url.js.map +1 -1
  244. package/mobile/bundle/bundle.umd.js +34 -37
  245. package/mobile/bundle/bundle.umd.min.js +1 -1
  246. package/mobile/dist/api/DaDataAPI.js.map +1 -1
  247. package/mobile/dist/api/LikeAPI.js.map +1 -1
  248. package/mobile/dist/components/Accordion/Accordion.js +1 -1
  249. package/mobile/dist/components/Accordion/Accordion.js.map +1 -1
  250. package/mobile/dist/components/Accordion/AccordionItem.js +1 -1
  251. package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
  252. package/mobile/dist/components/Accordion/AccordionItemInner.js +1 -2
  253. package/mobile/dist/components/Accordion/AccordionItemInner.js.map +1 -1
  254. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +1 -1
  255. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  256. package/mobile/dist/components/Calculator/getMonthlyPayment.js.map +1 -1
  257. package/mobile/dist/components/Calculator/renderCalculatorBlock.js.map +1 -1
  258. package/mobile/dist/components/Calculator/renderMonthsInput.js.map +1 -1
  259. package/mobile/dist/components/Calculator/renderRate.js.map +1 -1
  260. package/mobile/dist/components/Catalog/Catalog.d.ts +5 -0
  261. package/mobile/dist/components/Catalog/Catalog.js +36 -0
  262. package/mobile/dist/components/Catalog/Catalog.js.map +1 -0
  263. package/mobile/dist/components/Catalog/CatalogCard.d.ts +7 -0
  264. package/mobile/dist/components/Catalog/CatalogCard.js +16 -0
  265. package/mobile/dist/components/Catalog/CatalogCard.js.map +1 -0
  266. package/mobile/dist/components/Catalog/CatalogContent.d.ts +22 -0
  267. package/{dist/model/Insurance.js → mobile/dist/components/Catalog/CatalogContent.js} +1 -1
  268. package/mobile/dist/components/Catalog/CatalogContent.js.map +1 -0
  269. package/mobile/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  270. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  271. package/mobile/dist/components/ContentPage/ContentPageHead.js.map +1 -1
  272. package/mobile/dist/components/ContentPage/normalizeBlock.js.map +1 -1
  273. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  274. package/mobile/dist/components/ExchangeRateTile/calculateResult.js.map +1 -1
  275. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  276. package/mobile/dist/components/Footer/SocialMedia.js.map +1 -1
  277. package/mobile/dist/components/Footer/TextInformation.js.map +1 -1
  278. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  279. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  280. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js.map +1 -1
  281. package/mobile/dist/components/Header/HeaderBurger.js.map +1 -1
  282. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  283. package/mobile/dist/components/Headline/Headline.js.map +1 -1
  284. package/mobile/dist/components/Insurance/Insurance.js +7 -4
  285. package/mobile/dist/components/Insurance/Insurance.js.map +1 -1
  286. package/mobile/dist/components/Insurance/InsuranceContent.d.ts +8 -2
  287. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +3 -3
  288. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  289. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +5 -3
  290. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  291. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  292. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  293. package/mobile/dist/components/LinkList/LinkList.js.map +1 -1
  294. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +2 -2
  295. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  296. package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +5 -1
  297. package/mobile/dist/components/OtherProducts/OtherProducts.js +1 -1
  298. package/mobile/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  299. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +3 -8
  300. package/mobile/dist/components/OtherProducts/OtherProductsItem.js +4 -6
  301. package/mobile/dist/components/OtherProducts/OtherProductsItem.js.map +1 -1
  302. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  303. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  304. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  305. package/mobile/dist/components/PromoTile/PromoTile.js.map +1 -1
  306. package/mobile/dist/components/StepsBlock/StepsBlock.js +12 -31
  307. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  308. package/mobile/dist/components/StepsBlock/StepsBlockContent.d.ts +5 -2
  309. package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.d.ts +9 -0
  310. package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.js +21 -0
  311. package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -0
  312. package/mobile/dist/components/TextBlock/TextBlock.js.map +1 -1
  313. package/mobile/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  314. package/mobile/dist/content-page-repository/mapJSON.js.map +1 -1
  315. package/mobile/dist/content-page-repository/transformContentPage.js.map +1 -1
  316. package/mobile/dist/content-page-repository/transformMarkdown.js.map +1 -1
  317. package/mobile/dist/content-page-repository/transformPicture.js.map +1 -1
  318. package/mobile/dist/hooks/useCreditCalculatorData.js.map +1 -1
  319. package/mobile/dist/hooks/useExchangeRates.js.map +1 -1
  320. package/mobile/dist/hooks/useLink.js.map +1 -1
  321. package/mobile/dist/react/setup-fixture.js.map +1 -1
  322. package/mobile/dist/services/sitemap/findActiveSubItem.js.map +1 -1
  323. package/mobile/dist/services/sitemap/useSitemap.js.map +1 -1
  324. package/mobile/dist/ui-kit/BlocksList/BlocksListProps.d.ts +17 -15
  325. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +2 -3
  326. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js +5 -4
  327. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  328. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  329. package/mobile/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  330. package/mobile/dist/ui-kit/Foldable/Foldable.d.ts +2 -0
  331. package/mobile/dist/ui-kit/Foldable/Foldable.js +5 -5
  332. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  333. package/mobile/dist/ui-kit/Input/Input.js.map +1 -1
  334. package/mobile/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  335. package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
  336. package/mobile/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  337. package/mobile/dist/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  338. package/mobile/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  339. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  340. package/mobile/dist/utils/adjustHref.js.map +1 -1
  341. package/mobile/dist/utils/getColSpan.js.map +1 -1
  342. package/mobile/dist/utils/roundTo.js.map +1 -1
  343. package/mobile/dist/utils/tableFunc.js.map +1 -1
  344. package/mobile/dist/utils/url.js.map +1 -1
  345. package/mobile/lib/api/DaDataAPI.js.map +1 -1
  346. package/mobile/lib/api/LikeAPI.js.map +1 -1
  347. package/mobile/lib/components/Accordion/Accordion.js +1 -1
  348. package/mobile/lib/components/Accordion/Accordion.js.map +1 -1
  349. package/mobile/lib/components/Accordion/AccordionItem.js +1 -1
  350. package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
  351. package/mobile/lib/components/Accordion/AccordionItemInner.js +1 -2
  352. package/mobile/lib/components/Accordion/AccordionItemInner.js.map +1 -1
  353. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +1 -1
  354. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  355. package/mobile/lib/components/Calculator/getMonthlyPayment.js.map +1 -1
  356. package/mobile/lib/components/Calculator/renderCalculatorBlock.js.map +1 -1
  357. package/mobile/lib/components/Calculator/renderMonthsInput.js.map +1 -1
  358. package/mobile/lib/components/Calculator/renderRate.js.map +1 -1
  359. package/mobile/lib/components/Catalog/Catalog.d.ts +5 -0
  360. package/mobile/lib/components/Catalog/Catalog.js +34 -0
  361. package/mobile/lib/components/Catalog/Catalog.js.map +1 -0
  362. package/mobile/lib/components/Catalog/CatalogCard.d.ts +7 -0
  363. package/mobile/lib/components/Catalog/CatalogCard.js +14 -0
  364. package/mobile/lib/components/Catalog/CatalogCard.js.map +1 -0
  365. package/mobile/lib/components/Catalog/CatalogContent.d.ts +22 -0
  366. package/mobile/lib/components/Catalog/CatalogContent.js +2 -0
  367. package/mobile/lib/components/Catalog/CatalogContent.js.map +1 -0
  368. package/mobile/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  369. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  370. package/mobile/lib/components/ContentPage/ContentPageHead.js.map +1 -1
  371. package/mobile/lib/components/ContentPage/normalizeBlock.js.map +1 -1
  372. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  373. package/mobile/lib/components/ExchangeRateTile/calculateResult.js.map +1 -1
  374. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  375. package/mobile/lib/components/Footer/SocialMedia.js.map +1 -1
  376. package/mobile/lib/components/Footer/TextInformation.js.map +1 -1
  377. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  378. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  379. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js.map +1 -1
  380. package/mobile/lib/components/Header/HeaderBurger.js.map +1 -1
  381. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  382. package/mobile/lib/components/Headline/Headline.js.map +1 -1
  383. package/mobile/lib/components/Insurance/Insurance.js +7 -4
  384. package/mobile/lib/components/Insurance/Insurance.js.map +1 -1
  385. package/mobile/lib/components/Insurance/InsuranceContent.d.ts +8 -2
  386. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +3 -3
  387. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  388. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +5 -3
  389. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  390. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  391. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  392. package/mobile/lib/components/LinkList/LinkList.js.map +1 -1
  393. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +2 -2
  394. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  395. package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +5 -1
  396. package/mobile/lib/components/OtherProducts/OtherProducts.js +1 -1
  397. package/mobile/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  398. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +3 -8
  399. package/mobile/lib/components/OtherProducts/OtherProductsItem.js +4 -6
  400. package/mobile/lib/components/OtherProducts/OtherProductsItem.js.map +1 -1
  401. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  402. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  403. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  404. package/mobile/lib/components/PromoTile/PromoTile.js.map +1 -1
  405. package/mobile/lib/components/StepsBlock/StepsBlock.js +12 -31
  406. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  407. package/mobile/lib/components/StepsBlock/StepsBlockContent.d.ts +5 -2
  408. package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.d.ts +9 -0
  409. package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.js +18 -0
  410. package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -0
  411. package/mobile/lib/components/TextBlock/TextBlock.js.map +1 -1
  412. package/mobile/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  413. package/mobile/lib/content-page-repository/mapJSON.js.map +1 -1
  414. package/mobile/lib/content-page-repository/transformContentPage.js.map +1 -1
  415. package/mobile/lib/content-page-repository/transformMarkdown.js.map +1 -1
  416. package/mobile/lib/content-page-repository/transformPicture.js.map +1 -1
  417. package/mobile/lib/hooks/useCreditCalculatorData.js.map +1 -1
  418. package/mobile/lib/hooks/useExchangeRates.js.map +1 -1
  419. package/mobile/lib/hooks/useLink.js.map +1 -1
  420. package/mobile/lib/react/setup-fixture.js.map +1 -1
  421. package/mobile/lib/services/sitemap/findActiveSubItem.js.map +1 -1
  422. package/mobile/lib/services/sitemap/useSitemap.js.map +1 -1
  423. package/mobile/lib/ui-kit/BlocksList/BlocksListProps.d.ts +17 -15
  424. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +2 -3
  425. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js +5 -4
  426. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  427. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  428. package/mobile/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  429. package/mobile/lib/ui-kit/Foldable/Foldable.d.ts +2 -0
  430. package/mobile/lib/ui-kit/Foldable/Foldable.js +5 -5
  431. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  432. package/mobile/lib/ui-kit/Input/Input.js.map +1 -1
  433. package/mobile/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  434. package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
  435. package/mobile/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  436. package/mobile/lib/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  437. package/mobile/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  438. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  439. package/mobile/lib/utils/adjustHref.js.map +1 -1
  440. package/mobile/lib/utils/getColSpan.js.map +1 -1
  441. package/mobile/lib/utils/roundTo.js.map +1 -1
  442. package/mobile/lib/utils/tableFunc.js.map +1 -1
  443. package/mobile/lib/utils/url.js.map +1 -1
  444. package/mobile/src/api/DaDataAPI.ts +2 -0
  445. package/mobile/src/api/LikeAPI.ts +4 -0
  446. package/mobile/src/components/Accordion/Accordion.tsx +1 -1
  447. package/mobile/src/components/Accordion/AccordionItem.tsx +2 -2
  448. package/mobile/src/components/Accordion/AccordionItemInner.tsx +3 -4
  449. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +6 -1
  450. package/mobile/src/components/Calculator/getMonthlyPayment.ts +1 -0
  451. package/mobile/src/components/Calculator/renderCalculatorBlock.tsx +1 -0
  452. package/mobile/src/components/Calculator/renderMonthsInput.tsx +1 -0
  453. package/mobile/src/components/Calculator/renderRate.tsx +1 -0
  454. package/mobile/src/components/Catalog/Catalog.example.json +57 -0
  455. package/mobile/src/components/Catalog/Catalog.tsx +73 -0
  456. package/mobile/src/components/Catalog/CatalogCard.tsx +47 -0
  457. package/mobile/src/components/Catalog/CatalogContent.ts +26 -0
  458. package/mobile/src/components/ComparisonTable/TableColumn.tsx +1 -0
  459. package/mobile/src/components/ContentPage/ContentPage.tsx +2 -0
  460. package/mobile/src/components/ContentPage/ContentPageHead.tsx +1 -0
  461. package/mobile/src/components/ContentPage/normalizeBlock.ts +1 -0
  462. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +1 -0
  463. package/mobile/src/components/ExchangeRateTile/calculateResult.ts +1 -0
  464. package/mobile/src/components/Footer/Footer.tsx +2 -0
  465. package/mobile/src/components/Footer/SocialMedia.tsx +1 -0
  466. package/mobile/src/components/Footer/TextInformation.tsx +1 -0
  467. package/mobile/src/components/Gallery/GalleryCardInner.tsx +1 -0
  468. package/mobile/src/components/GroupBlock/GroupBlocksItem.tsx +1 -0
  469. package/mobile/src/components/GroupBlock/renderBlocksTypes.tsx +1 -0
  470. package/mobile/src/components/Header/HeaderBurger.tsx +2 -0
  471. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +1 -0
  472. package/mobile/src/components/Headline/Headline.tsx +1 -0
  473. package/mobile/src/components/Insurance/Insurance.example.json +9 -1
  474. package/mobile/src/components/Insurance/Insurance.tsx +21 -15
  475. package/mobile/src/components/Insurance/InsuranceContent.ts +8 -2
  476. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.example.json +4 -4
  477. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +8 -3
  478. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +5 -3
  479. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +6 -5
  480. package/mobile/src/components/LinkDocs/LinkDocsListItemBase.tsx +3 -0
  481. package/mobile/src/components/LinkList/LinkList.tsx +1 -0
  482. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +2 -4
  483. package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +7 -1
  484. package/mobile/src/components/OtherProducts/OtherProducts.tsx +2 -2
  485. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +3 -8
  486. package/mobile/src/components/OtherProducts/OtherProductsItem.tsx +6 -18
  487. package/mobile/src/components/ProductBlock/ProductBlock.tsx +1 -0
  488. package/mobile/src/components/ProductBlock/renderBenefit.tsx +1 -0
  489. package/mobile/src/components/ProductTile/ProductTile.tsx +2 -0
  490. package/mobile/src/components/PromoTile/PromoTile.tsx +1 -0
  491. package/mobile/src/components/StepsBlock/StepsBlock.tsx +58 -82
  492. package/mobile/src/components/StepsBlock/StepsBlockContent.ts +6 -3
  493. package/mobile/src/components/StepsBlock/StepsBlockStyleMaps.ts +28 -0
  494. package/mobile/src/components/TextBlock/TextBlock.tsx +1 -0
  495. package/mobile/src/content-page-repository/ContentPageRepository.ts +5 -0
  496. package/mobile/src/content-page-repository/mapJSON.ts +3 -0
  497. package/mobile/src/content-page-repository/transformContentPage.ts +2 -0
  498. package/mobile/src/content-page-repository/transformMarkdown.ts +1 -0
  499. package/mobile/src/content-page-repository/transformPicture.ts +2 -0
  500. package/mobile/src/hooks/useCreditCalculatorData.ts +2 -0
  501. package/mobile/src/hooks/useExchangeRates.ts +3 -0
  502. package/mobile/src/hooks/useLink.ts +1 -0
  503. package/mobile/src/react/setup-fixture.ts +1 -0
  504. package/mobile/src/services/sitemap/findActiveSubItem.ts +1 -0
  505. package/mobile/src/services/sitemap/useSitemap.ts +2 -0
  506. package/mobile/src/ui-kit/BlocksList/BlocksListProps.ts +25 -15
  507. package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +14 -9
  508. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -0
  509. package/mobile/src/ui-kit/Button/ButtonSection.tsx +1 -0
  510. package/mobile/src/ui-kit/Foldable/Foldable.tsx +8 -4
  511. package/mobile/src/ui-kit/Input/Input.tsx +1 -0
  512. package/mobile/src/ui-kit/InputRange/InputRange.tsx +1 -0
  513. package/mobile/src/ui-kit/List/ListItem.tsx +1 -0
  514. package/mobile/src/ui-kit/SearchBar/SearchBar.tsx +1 -0
  515. package/mobile/src/ui-kit/SwipeListControl/utils/getIndexParts.ts +1 -0
  516. package/mobile/src/ui-kit/Tabs/Tabs.tsx +1 -0
  517. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -0
  518. package/mobile/src/utils/adjustHref.ts +2 -0
  519. package/mobile/src/utils/getColSpan.ts +1 -0
  520. package/mobile/src/utils/roundTo.ts +1 -0
  521. package/mobile/src/utils/tableFunc.ts +1 -0
  522. package/mobile/src/utils/url.ts +2 -0
  523. package/package.json +1 -1
  524. package/src/api/DaDataAPI.ts +2 -0
  525. package/src/api/LikeAPI.ts +4 -0
  526. package/src/components/Accordion/Accordion.fixture.mobile.tsx +8 -19
  527. package/src/components/Accordion/Accordion.fixture.tsx +10 -2
  528. package/src/components/Accordion/Accordion.mobile.tsx +1 -1
  529. package/src/components/Accordion/AccordionItem.mobile.tsx +2 -2
  530. package/src/components/Accordion/AccordionItemInner.mobile.tsx +3 -4
  531. package/src/components/Accordion/AccordionItemInner.tsx +3 -4
  532. package/src/components/BenefitsBlock/BenefitsBlock.tsx +6 -1
  533. package/src/components/Blocks.ts +5 -3
  534. package/src/components/Calculator/getMonthlyPayment.ts +1 -0
  535. package/src/components/Calculator/renderCalculatorBlock.tsx +1 -0
  536. package/src/components/Calculator/renderMonthsInput.tsx +1 -0
  537. package/src/components/Calculator/renderRate.tsx +1 -0
  538. package/src/components/Catalog/Catalog.example.json +57 -0
  539. package/src/components/Catalog/Catalog.fixture.tsx +48 -0
  540. package/src/components/Catalog/Catalog.tsx +73 -0
  541. package/src/components/Catalog/CatalogCard.tsx +47 -0
  542. package/src/components/Catalog/CatalogContent.ts +26 -0
  543. package/src/components/ComparisonTable/TableColumn.tsx +1 -0
  544. package/src/components/ContentPage/ContentPage.tsx +2 -0
  545. package/src/components/ContentPage/ContentPageHead.tsx +1 -0
  546. package/src/components/ContentPage/normalizeBlock.mobile.ts +1 -0
  547. package/src/components/ContentPage/normalizeBlock.ts +1 -0
  548. package/src/components/ExchangeRateTile/CurrencyTable.tsx +1 -0
  549. package/src/components/ExchangeRateTile/calculateResult.ts +1 -0
  550. package/src/components/Footer/Footer.mobile.tsx +2 -0
  551. package/src/components/Footer/SocialMedia.mobile.tsx +1 -0
  552. package/src/components/Footer/SocialMedia.tsx +1 -0
  553. package/src/components/Footer/TextInformation.mobile.tsx +1 -0
  554. package/src/components/Footer/TextInformation.tsx +1 -0
  555. package/src/components/Gallery/GalleryCardInner.tsx +1 -0
  556. package/src/components/GroupBlock/GroupBlocksItem.tsx +1 -0
  557. package/src/components/GroupBlock/renderBlocksTypes.tsx +1 -0
  558. package/src/components/Header/HeaderBurger.tsx +2 -0
  559. package/src/components/Header/HeaderSecondaryMenu.tsx +1 -0
  560. package/src/components/Headline/Headline.mobile.tsx +1 -0
  561. package/src/components/Insurance/Insurance.example.json +9 -1
  562. package/src/components/Insurance/Insurance.tsx +21 -15
  563. package/src/components/Insurance/InsuranceContent.ts +8 -2
  564. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.example.json +4 -4
  565. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +0 -5
  566. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +8 -3
  567. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +5 -3
  568. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +6 -5
  569. package/src/components/LinkDocs/LinkDocsListItemBase.tsx +3 -0
  570. package/src/components/LinkList/LinkList.tsx +1 -0
  571. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +69 -13
  572. package/src/components/MobileAppTile/MobileAppTile.mobile.tsx +2 -4
  573. package/src/components/MobileAppTile/MobileAppTile.tsx +44 -12
  574. package/src/components/MobileAppTile/MobileAppTileContent.ts +7 -1
  575. package/src/components/OtherProducts/OtherProducts.fixture.tsx +16 -53
  576. package/src/components/OtherProducts/OtherProducts.tsx +2 -2
  577. package/src/components/OtherProducts/OtherProductsContent.ts +3 -8
  578. package/src/components/OtherProducts/OtherProductsItem.tsx +6 -18
  579. package/src/components/ProductBlock/ProductBlock.mobile.tsx +1 -0
  580. package/src/components/ProductBlock/ProductBlock.tsx +1 -0
  581. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -0
  582. package/src/components/ProductBlock/renderBenefit.mobile.tsx +1 -0
  583. package/src/components/ProductBlock/renderBenefit.tsx +1 -0
  584. package/src/components/ProductTile/ProductTile.tsx +2 -0
  585. package/src/components/PromoTile/PromoTile.tsx +1 -0
  586. package/src/components/StepsBlock/StepsBlock.mobile.tsx +58 -82
  587. package/src/components/StepsBlock/StepsBlock.tsx +27 -11
  588. package/src/components/StepsBlock/StepsBlockContent.ts +6 -3
  589. package/src/components/StepsBlock/StepsBlockStyleMaps.ts +28 -0
  590. package/src/components/TextBlock/TextBlock.mobile.tsx +1 -0
  591. package/src/components/TextBlock/TextBlock.tsx +1 -0
  592. package/src/content-page-repository/ContentPageRepository.ts +5 -0
  593. package/src/content-page-repository/mapJSON.ts +3 -0
  594. package/src/content-page-repository/transformContentPage.ts +2 -0
  595. package/src/content-page-repository/transformMarkdown.ts +1 -0
  596. package/src/content-page-repository/transformPicture.ts +2 -0
  597. package/src/hooks/useCreditCalculatorData.ts +2 -0
  598. package/src/hooks/useExchangeRates.ts +3 -0
  599. package/src/hooks/useLink.ts +1 -0
  600. package/src/react/setup-fixture.ts +1 -0
  601. package/src/services/sitemap/findActiveSubItem.ts +1 -0
  602. package/src/services/sitemap/useSitemap.ts +2 -0
  603. package/src/ui-kit/BlocksList/BlocksListProps.ts +25 -15
  604. package/src/ui-kit/BlocksList/renderBlocksList.tsx +14 -9
  605. package/src/ui-kit/Button/ButtonInner.tsx +1 -0
  606. package/src/ui-kit/Button/ButtonSection.tsx +1 -0
  607. package/src/ui-kit/Foldable/Foldable.tsx +8 -4
  608. package/src/ui-kit/Input/Input.tsx +1 -0
  609. package/src/ui-kit/InputRange/InputRange.tsx +1 -0
  610. package/src/ui-kit/List/ListItem.tsx +1 -0
  611. package/src/ui-kit/Logo/Logo.tsx +1 -0
  612. package/src/ui-kit/SearchBar/SearchBar.mobile.tsx +1 -0
  613. package/src/ui-kit/SearchBar/SearchBar.tsx +1 -0
  614. package/src/ui-kit/SearchBar.mobile.tsx +1 -0
  615. package/src/ui-kit/SwipeListControl/utils/getIndexParts.ts +1 -0
  616. package/src/ui-kit/Tabs/Tabs.tsx +1 -0
  617. package/src/ui-kit/TopItem/TopItem.tsx +1 -0
  618. package/src/utils/adjustHref.ts +2 -0
  619. package/src/utils/getColSpan.ts +1 -0
  620. package/src/utils/roundTo.ts +1 -0
  621. package/src/utils/tableFunc.ts +1 -0
  622. package/src/utils/url.ts +2 -0
  623. package/dist/model/Insurance.d.ts +0 -6
  624. package/dist/model/Insurance.js.map +0 -1
  625. package/lib/model/Insurance.d.ts +0 -6
  626. package/lib/model/Insurance.js +0 -2
  627. package/lib/model/Insurance.js.map +0 -1
  628. package/mobile/dist/model/Insurance.d.ts +0 -6
  629. package/mobile/dist/model/Insurance.js.map +0 -1
  630. package/mobile/lib/model/Insurance.d.ts +0 -6
  631. package/mobile/lib/model/Insurance.js +0 -2
  632. package/mobile/lib/model/Insurance.js.map +0 -1
  633. package/mobile/src/model/Insurance.ts +0 -6
  634. package/src/model/Insurance.ts +0 -6
@@ -450,6 +450,10 @@
450
450
  return format ? `image/${String(format)}` : undefined;
451
451
  }
452
452
 
453
+ function style2className(style) {
454
+ return style ? style.filter(Boolean).join(' ') : '';
455
+ }
456
+
453
457
  const ALIGN_TEXT = {
454
458
  left: 'text-left',
455
459
  center: 'text-center',
@@ -828,9 +832,9 @@
828
832
  const Tile = JSX((props) => {
829
833
  const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, className = '', version = 'primary', role, anchor = null, } = props;
830
834
  return (jsx("section", { className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, role: role, id: anchor, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
831
- ${version === 'primary' ? 'text-primary-text' : ''}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'w-[158px]' })), className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? (jsx(Description, { className: "max-w-[600px] text-title-new-sm font-light", description: description })) : null, children, renderList$1(items, version, isDotted)] }) }));
835
+ ${version === 'primary' ? 'text-primary-text' : ''}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'w-[158px]' })), className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? (jsx(Description, { className: "max-w-[600px] text-title-new-sm font-light", description: description })) : null, children, renderList$2(items, version, isDotted)] }) }));
832
836
  });
833
- function renderList$1(items, version, isDotted) {
837
+ function renderList$2(items, version, isDotted) {
834
838
  return items?.length ? (jsx(List, { items: items, isDotted: isDotted, itemClassName: "text-title-2xs font-light mt-2", version: version === 'primary' ? 'tile' : 'tile-white' })) : null;
835
839
  }
836
840
 
@@ -872,7 +876,7 @@
872
876
  normal: 3,
873
877
  mini: 4,
874
878
  };
875
- const cardStyleMap = {
879
+ const cardStyleMap$1 = {
876
880
  normal: 'min-w-[364px] w-[364px]',
877
881
  mini: 'min-w-[260px] w-[260px]',
878
882
  };
@@ -905,7 +909,7 @@
905
909
  });
906
910
  function renderCard({ card, version }, i) {
907
911
  return (jsx("section", { className: `box-border border-solid border border-main-stroke p-6 mx-2 flex flex-col justify-between
908
- items-stretch ${cardStyleMap[version]} ${cardVersionMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
912
+ items-stretch ${cardStyleMap$1[version]} ${cardVersionMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
909
913
  }
910
914
 
911
915
  const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `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
@@ -959,20 +963,19 @@
959
963
  LinkList,
960
964
  };
961
965
 
962
- const renderBlocksList = ({ blocks, context, className, columns }) => blocks?.length ? blocks.map(renderBlock$2({ context, className, columns })) : null;
963
- const renderBlock$2 = ({ context, columns, className }) => (block, i) => {
966
+ const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$2({ context, className })) : null;
967
+ const renderBlock$2 = ({ context, className }) => (block, i) => {
964
968
  const type = block?.blockListType;
965
969
  if (!type || !(type in EmbeddableBlocks)) {
966
970
  return null;
967
971
  }
968
- const columnsCountClass = columns === 2 ? 'w-1/2' : '';
972
+ const classNameBlock = style2className(block?.style);
969
973
  const EmbeddedBlock = EmbeddableBlocks[type];
970
- return (jsx("div", { className: `${className} ${columnsCountClass}`, children: jsx(EmbeddedBlock, { context: context, ...block, className: "!p-0" }) }, `block_${i}`));
974
+ return (jsx(EmbeddedBlock, { context: context, ...block, className: `${className} ${classNameBlock}` }, `block_${i}`));
971
975
  };
972
976
 
973
977
  const AccordionItemInner = JSX(({ blocks, context }) => {
974
- const className = 'mb-5 last:mb-0 pb-5';
975
- return (jsx("div", { className: "transition-all duration-300 max-h-0 overflow-hidden", children: renderBlocksList({ context, className, blocks }) }));
978
+ return (jsx("div", { className: "grid grid-cols-12 transition-all duration-300 max-h-0 overflow-hidden", children: renderBlocksList({ context, blocks, className: '!p-0 mb-5' }) }));
976
979
  });
977
980
 
978
981
  const useActiveHandler$1 = ({ context, blocks, initialState = false }) => {
@@ -1017,7 +1020,7 @@
1017
1020
  return (jsxs("section", { className: `font-sans text-primary-text bg-white p-12 flex flex-col items-center ${className}`, id: anchor, children: [title ? (jsx(Heading, { headingType: headingType, as: "h2", className: "max-w-[47rem] text-center", title: title })) : null, benefitList?.length ? renderBenefits(benefitList) : null] }));
1018
1021
  });
1019
1022
  const renderBenefits = (benefits) => {
1020
- return (jsx("div", { className: "flex flex-wrap justify-center gap-x-20 mt-9", children: benefits.map(renderStep) }));
1023
+ return (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-9", children: benefits.map(renderStep) }));
1021
1024
  };
1022
1025
  const renderStep = (benefit, i) => {
1023
1026
  const description = benefit?.description || undefined;
@@ -1047,93 +1050,24 @@
1047
1050
  : null })] }) }));
1048
1051
  });
1049
1052
 
1050
- const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
1051
-
1052
- const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
1053
- const BORDER_CLASSES$1 = 'border-main-stroke border-solid border';
1054
- const DIVIDER_CLASSES$1 = 'border-main-divider border border-t-0 border-x-0';
1055
- const FIRST_CELL_CLASSES$1 = 'w-[200px] mr-6';
1056
- const COLS_LENGTH_FOR_SCROLL$1 = 2;
1057
- const COLUMN_WIDTH$1 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1058
-
1059
- const carouselContainerClassesMap = {
1060
- comparison: 'flex gap-4 duration-1000',
1061
- tariff: 'flex flex-grow duration-1000',
1062
- };
1063
- 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 }) })));
1064
-
1065
- 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", scope: "col", children: [icon && !image?.src && (jsx(Img, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: icon, width: "63", height: "63" })), image?.src && jsx(Img, { 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: "font-medium text-xs py-[11px]", children: link.text }) }) }))] })));
1066
-
1067
- const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeCardIndex, router, handlerDecorator }) => {
1068
- return (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES$1, role: "columnheader", scope: "col" }), jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header, link: header.link && useLink({ router, handlerDecorator }, header.link) }, String(i)))) })] }));
1069
- });
1070
-
1071
- const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
1072
- const cellWrapperClasses = `w-80 box-border flex flex-col ${BORDER_CLASSES$1} ${!isLastRow ? 'border-y-0' : 'border-t-0 rounded-b-md'} ${isFillGradient ? GRADIENT : ''}`;
1073
- const cellClasses = `mx-7 h-full ${DIVIDER_CLASSES$1} ${isFillGradient && isFirstRow ? 'border-t' : ''} ${!isLastRow ? 'border-solid' : 'border-b-0'}`;
1074
- return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map((item, i) => renderCellInner$1(item, i, isFillGradient)) }) }));
1075
- });
1076
- const labelStyle = (isFillGradient = false) => `text-xl font-medium m-0 ${isFillGradient ? 'text-white' : ''}`;
1077
- const descriptionStyle = (isFillGradient = false) => `text-sm opacity-80 ${isFillGradient ? 'text-white' : 'text-secondary-text'}`;
1078
- 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)));
1079
-
1080
- const titleStyle = (isLastRow = false) => `text-sm py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1081
- 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$1, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1082
-
1083
- const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1084
- return isScrollAvailable ? (jsx("div", { children: renderArrows({
1085
- handler: [handlePrevClick, handleNextClick],
1086
- isShown: [showPrevButton, showNextButton],
1087
- btnClass: ['top-[108px]', 'top-11'],
1088
- className: 'right-7',
1089
- isDisabled: true,
1090
- }) })) : null;
1091
- });
1092
-
1093
- const ComparisonTableRows = JSX(({ rowData, activeCardIndex, isColoredFirstColumn, ...tableArrowScrollProps }) => {
1094
- 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)))), jsx(TableArrowScrollControl, { ...tableArrowScrollProps })] }));
1095
- });
1096
-
1097
- const useTableArrowScrollControl = ({ columnsLength, colsLengthForScroll, activeCardIndex, setActiveCardIndex, }) => {
1098
- const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1099
- const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1100
- const isScrollAvailable = columnsLength > colsLengthForScroll;
1101
- const showNextButton = isScrollAvailable && columnsLength - activeCardIndex > colsLengthForScroll;
1102
- const showPrevButton = Boolean(isScrollAvailable && activeCardIndex > 0);
1103
- return { handleNextClick, handlePrevClick, isScrollAvailable, showNextButton, showPrevButton };
1104
- };
1105
-
1106
- const ComparisonTableBody = JSX(({ context, columns, rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
1107
- const router = context.useRouter();
1108
- const { handlerDecorator } = context;
1109
- const colHeaders = columns?.map(({ header }) => header || {});
1110
- const colData = columns?.map(({ data }) => data) || [];
1111
- const rowData = rowHeaders
1112
- ?.map((header, i) => ({
1113
- header,
1114
- data: colData.map((col) => col?.[i] || [{}]),
1115
- }))
1116
- .slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
1117
- const [activeCardIndex, setActiveCardIndex] = context.useState(0);
1118
- const tableArrowScrollProps = useTableArrowScrollControl({
1119
- columnsLength: colData.length,
1120
- colsLengthForScroll: COLS_LENGTH_FOR_SCROLL$1,
1121
- activeCardIndex,
1122
- setActiveCardIndex,
1123
- });
1124
- const { isScrollAvailable } = tableArrowScrollProps;
1125
- return (jsxs("div", { children: [jsxs("div", { role: "table", children: [colHeaders?.length ? (jsx(ComparisonTableColumnHeaders, { colHeaders: colHeaders, activeCardIndex: activeCardIndex, router: router, handlerDecorator: handlerDecorator })) : null, rowData?.length ? (jsx(ComparisonTableRows, { rowData: rowData, activeCardIndex: activeCardIndex, isColoredFirstColumn: isColoredFirstColumn, ...tableArrowScrollProps })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
1126
- });
1053
+ function getElementsColsValue(className = '') {
1054
+ const colSpan = getColSpan(className);
1055
+ if (colSpan <= 6) {
1056
+ return 'grid-cols-2';
1057
+ }
1058
+ else if (colSpan <= 8) {
1059
+ return 'grid-cols-3';
1060
+ }
1061
+ else {
1062
+ return 'grid-cols-4';
1063
+ }
1064
+ }
1127
1065
 
1128
- const ComparisonTable = JSX(({ className, context, title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, anchor = null, }) => {
1129
- const [isShowAllRow, setIsShowAllRow] = context.useState(!visibleRowLength);
1130
- const showToggle = () => setIsShowAllRow(!isShowAllRow);
1131
- return (jsxs("section", { className: `bg-white font-sans py-[50px] pl-[50px] overflow-hidden text-primary-text relative ${className || ''}`, id: anchor, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center mb-9 mx-auto", title: title }), jsx(ComparisonTableBody, { context: context, columns: columns, rowHeaders: rowHeaders, isShowAllRow: isShowAllRow, isColoredFirstColumn: isColoredFirstColumn, visibleRowLength: visibleRowLength }), visibleRowLength
1132
- ? renderShowMoreToggleButton({ isShowAllRow, onClick: showToggle })
1133
- : null] }));
1066
+ const BonusBenefitsBlock = JSX(({ className = '', title, subtitle, bonusBenefits, anchor = null }) => {
1067
+ return (jsxs("section", { className: `font-sans text-primary-text bg-white p-50 flex flex-col text-center ${className}`, id: anchor, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-[10px]", title: title }) : null, subtitle ? jsx("span", { className: "text-md font-normal", children: subtitle }) : null, bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${getElementsColsValue(className)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] }));
1134
1068
  });
1135
- const renderShowMoreToggleButton = ({ isShowAllRow, onClick, }) => {
1136
- return (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 font-medium text-xs py-[11px]", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1069
+ const renderBonusBenefit = (bonusBenefit, i) => {
1070
+ return (jsxs("div", { className: "flex flex-col items-center max-w-[292px]", children: [bonusBenefit?.icon ? (jsx(Img, { className: "h-[180px] w-[160px] min-w-[160px] min-h-[160px]", image: bonusBenefit.icon, width: "160", height: "180" })) : null, jsx("div", { children: bonusBenefit?.label ? jsx("span", { className: "title-2xs m-0", children: bonusBenefit.label }) : null })] }, String(i)));
1137
1071
  };
1138
1072
 
1139
1073
  function useCreditCalculatorData(useAsyncData, directoryName) {
@@ -1483,6 +1417,132 @@
1483
1417
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1484
1418
  }
1485
1419
 
1420
+ const cardStyleMap = {
1421
+ black: 'bg-black',
1422
+ white: 'bg-white',
1423
+ };
1424
+ const CatalogCard = JSX(({ className = '', title, description, image, price, button, colors }) => {
1425
+ return (jsxs("section", { className: `border border-solid box-border p-[30px] min-w-[402px] flex flex-col justify-left ${className}`, role: "listitem", children: [image?.src ? jsx(Img, { className: "mb-5", image: image }) : null, title ? (jsx(Heading, { headingType: "h6", as: "h5", className: "text-left mb-1.5", title: title })) : null, description ? jsx("div", { className: "text-m-md text-left mb-4", children: description }) : null, colors?.length ? (jsxs("div", { className: "flex mb-4 text-m-md text-secondary-text", children: ["\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430: ", colors.map(renderColorOption)] })) : null, price ? jsxs("div", { className: "text-title-sm text-left", children: [price, "\u00A0\u20BD"] }) : null, button?.text ? jsx(Button, { className: "mt-6 w-full", ...button }) : null] }));
1426
+ });
1427
+ const renderColorOption = (color, i) => (jsx("span", { className: `w-6 h-6 ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap[color]}` }, String(i)));
1428
+
1429
+ const BLUR_BLOCK_CLASSES$1 = 'absolute top-0 bottom-0 w-[84px]';
1430
+ const CARD_FULL_VIEW_COUNT$1 = 3;
1431
+ const CARD_SHIFT$1 = 430;
1432
+ const Catalog = JSX(({ context, cards = [], className = '', title, description }) => {
1433
+ const [activeCardIndex, setActiveCardIndex] = context.useState(0);
1434
+ return (jsxs("section", { className: `bg-white relative font-sans p-9 overflow-hidden text-center ${className}`, children: [title ? jsx(Heading, { headingType: "h2", className: "mb-6", title: title }) : null, description ? jsx(Description, { className: "mb-6", description: description }) : null, jsx("div", { className: "flex duration-1000 gap-3.5", style: { transform: `translateX(-${activeCardIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map(renderCatalogCard(context)) : null }), renderNavButtons$1({
1435
+ cardsCount: cards.length,
1436
+ activeCardIndex,
1437
+ setActiveCardIndex,
1438
+ }), jsx("div", { className: `${BLUR_BLOCK_CLASSES$1} left-0 ${'bg-opacity-from-white'}` }), jsx("div", { className: `${BLUR_BLOCK_CLASSES$1} right-0 ${'bg-opacity-to-white'}` })] }));
1439
+ });
1440
+ const renderCatalogCard = (context) => (card, i) => {
1441
+ return jsx(CatalogCard, { context: context, ...card }, String(i));
1442
+ };
1443
+ const renderNavButtons$1 = ({ cardsCount, activeCardIndex, setActiveCardIndex, }) => {
1444
+ const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1445
+ const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1446
+ const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT$1;
1447
+ const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT$1;
1448
+ const showPrevButton = isUseSlider && activeCardIndex > 0;
1449
+ return renderArrows({
1450
+ handler: [handlePrevClick, handleNextClick],
1451
+ isShown: [showPrevButton, showNextButton],
1452
+ btnClass: ['left-8', 'right-8'],
1453
+ className: 'top-1/2 z-10 mt-6',
1454
+ });
1455
+ };
1456
+
1457
+ const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
1458
+
1459
+ const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
1460
+ const BORDER_CLASSES$1 = 'border-main-stroke border-solid border';
1461
+ const DIVIDER_CLASSES$1 = 'border-main-divider border border-t-0 border-x-0';
1462
+ const FIRST_CELL_CLASSES$1 = 'w-[200px] mr-6';
1463
+ const COLS_LENGTH_FOR_SCROLL$1 = 2;
1464
+ const COLUMN_WIDTH$1 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1465
+
1466
+ const carouselContainerClassesMap = {
1467
+ comparison: 'flex gap-4 duration-1000',
1468
+ tariff: 'flex flex-grow duration-1000',
1469
+ };
1470
+ 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 }) })));
1471
+
1472
+ 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", scope: "col", children: [icon && !image?.src && (jsx(Img, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: icon, width: "63", height: "63" })), image?.src && jsx(Img, { 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: "font-medium text-xs py-[11px]", children: link.text }) }) }))] })));
1473
+
1474
+ const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeCardIndex, router, handlerDecorator }) => {
1475
+ return (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES$1, role: "columnheader", scope: "col" }), jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header, link: header.link && useLink({ router, handlerDecorator }, header.link) }, String(i)))) })] }));
1476
+ });
1477
+
1478
+ const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
1479
+ const cellWrapperClasses = `w-80 box-border flex flex-col ${BORDER_CLASSES$1} ${!isLastRow ? 'border-y-0' : 'border-t-0 rounded-b-md'} ${isFillGradient ? GRADIENT : ''}`;
1480
+ const cellClasses = `mx-7 h-full ${DIVIDER_CLASSES$1} ${isFillGradient && isFirstRow ? 'border-t' : ''} ${!isLastRow ? 'border-solid' : 'border-b-0'}`;
1481
+ return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map((item, i) => renderCellInner$1(item, i, isFillGradient)) }) }));
1482
+ });
1483
+ const labelStyle = (isFillGradient = false) => `text-xl font-medium m-0 ${isFillGradient ? 'text-white' : ''}`;
1484
+ const descriptionStyle = (isFillGradient = false) => `text-sm opacity-80 ${isFillGradient ? 'text-white' : 'text-secondary-text'}`;
1485
+ 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)));
1486
+
1487
+ const titleStyle = (isLastRow = false) => `text-sm py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1488
+ 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$1, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1489
+
1490
+ const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1491
+ return isScrollAvailable ? (jsx("div", { children: renderArrows({
1492
+ handler: [handlePrevClick, handleNextClick],
1493
+ isShown: [showPrevButton, showNextButton],
1494
+ btnClass: ['top-[108px]', 'top-11'],
1495
+ className: 'right-7',
1496
+ isDisabled: true,
1497
+ }) })) : null;
1498
+ });
1499
+
1500
+ const ComparisonTableRows = JSX(({ rowData, activeCardIndex, isColoredFirstColumn, ...tableArrowScrollProps }) => {
1501
+ 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)))), jsx(TableArrowScrollControl, { ...tableArrowScrollProps })] }));
1502
+ });
1503
+
1504
+ const useTableArrowScrollControl = ({ columnsLength, colsLengthForScroll, activeCardIndex, setActiveCardIndex, }) => {
1505
+ const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1506
+ const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1507
+ const isScrollAvailable = columnsLength > colsLengthForScroll;
1508
+ const showNextButton = isScrollAvailable && columnsLength - activeCardIndex > colsLengthForScroll;
1509
+ const showPrevButton = Boolean(isScrollAvailable && activeCardIndex > 0);
1510
+ return { handleNextClick, handlePrevClick, isScrollAvailable, showNextButton, showPrevButton };
1511
+ };
1512
+
1513
+ const ComparisonTableBody = JSX(({ context, columns, rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
1514
+ const router = context.useRouter();
1515
+ const { handlerDecorator } = context;
1516
+ const colHeaders = columns?.map(({ header }) => header || {});
1517
+ const colData = columns?.map(({ data }) => data) || [];
1518
+ const rowData = rowHeaders
1519
+ ?.map((header, i) => ({
1520
+ header,
1521
+ data: colData.map((col) => col?.[i] || [{}]),
1522
+ }))
1523
+ .slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
1524
+ const [activeCardIndex, setActiveCardIndex] = context.useState(0);
1525
+ const tableArrowScrollProps = useTableArrowScrollControl({
1526
+ columnsLength: colData.length,
1527
+ colsLengthForScroll: COLS_LENGTH_FOR_SCROLL$1,
1528
+ activeCardIndex,
1529
+ setActiveCardIndex,
1530
+ });
1531
+ const { isScrollAvailable } = tableArrowScrollProps;
1532
+ return (jsxs("div", { children: [jsxs("div", { role: "table", children: [colHeaders?.length ? (jsx(ComparisonTableColumnHeaders, { colHeaders: colHeaders, activeCardIndex: activeCardIndex, router: router, handlerDecorator: handlerDecorator })) : null, rowData?.length ? (jsx(ComparisonTableRows, { rowData: rowData, activeCardIndex: activeCardIndex, isColoredFirstColumn: isColoredFirstColumn, ...tableArrowScrollProps })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
1533
+ });
1534
+
1535
+ const ComparisonTable = JSX(({ className, context, title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, anchor = null, }) => {
1536
+ const [isShowAllRow, setIsShowAllRow] = context.useState(!visibleRowLength);
1537
+ const showToggle = () => setIsShowAllRow(!isShowAllRow);
1538
+ return (jsxs("section", { className: `bg-white font-sans py-[50px] pl-[50px] overflow-hidden text-primary-text relative ${className || ''}`, id: anchor, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center mb-9 mx-auto", title: title }), jsx(ComparisonTableBody, { context: context, columns: columns, rowHeaders: rowHeaders, isShowAllRow: isShowAllRow, isColoredFirstColumn: isColoredFirstColumn, visibleRowLength: visibleRowLength }), visibleRowLength
1539
+ ? renderShowMoreToggleButton({ isShowAllRow, onClick: showToggle })
1540
+ : null] }));
1541
+ });
1542
+ const renderShowMoreToggleButton = ({ isShowAllRow, onClick, }) => {
1543
+ return (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 font-medium text-xs py-[11px]", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1544
+ };
1545
+
1486
1546
  function useExchangeRates(useAsyncData) {
1487
1547
  const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1488
1548
  const result = data?.hits?.hits?.map((_) => _._source) || [];
@@ -1888,6 +1948,54 @@
1888
1948
  const renderMonthNames = (item, colSize) => item.month.map((_) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.name }, `monthName-${_.name}`)));
1889
1949
  const renderMonthImages = (item) => item.month.map((_) => _.image?.src ? (jsx("div", { className: "h-[207px] border-r-[1px] pr-3 mr-3 border-main-divider last:border-r-0 last:pr-0 last:mr-0", children: jsx(Img, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)) : null);
1890
1950
 
1951
+ const GroupBlockTabs = JSX((props) => {
1952
+ const { tabs, currentTag, onTabClick, className = '', isShowCounter } = props;
1953
+ return (jsx("div", { className: `mb-2 box-border flex gap-x-1 ${className}`, role: "tablist", children: tabs?.map(renderTab$1(onTabClick, isShowCounter, currentTag)) }));
1954
+ });
1955
+ const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-m-sm';
1956
+ const renderTab$1 = (onTabClick, isShowCounter, currentTag) => (tab, i) => {
1957
+ const isActive = currentTag === tab.tag;
1958
+ const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
1959
+ const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
1960
+ const counterBlockStyle = `${badgeStyle}
1961
+ ${isActive ? 'bg-white/30 text-white' : 'bg-secondary-light text-secondary-text'}`;
1962
+ return (jsx("div", { className: `flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? jsx("h3", { className: tabText, children: tab?.title }) : null, isShowCounter ? (jsx("div", { className: `flex items-center justify-center ml-8 ${counterBlockStyle}`, children: jsx("span", { children: tab.count }) })) : null] }) }, String(i)));
1963
+ };
1964
+
1965
+ const EmbeddableGroupBlocks = {
1966
+ ProductBlock,
1967
+ ProductTile,
1968
+ };
1969
+
1970
+ const GroupBlocksItem = JSX(({ groupBlocks, context }) => {
1971
+ return (jsx("div", { className: "grid grid-cols-12 gap-2 box-border", children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
1972
+ });
1973
+ const renderBlock$1 = (context) => (block, i) => {
1974
+ const type = block?.blockType;
1975
+ if (!type || !(type in EmbeddableGroupBlocks)) {
1976
+ return null;
1977
+ }
1978
+ const classNameBlock = style2className(block?.style);
1979
+ const EmbeddedBlock = EmbeddableGroupBlocks[type];
1980
+ return (jsx(EmbeddedBlock, { context: context, ...block, className: classNameBlock }, `block_${i}`));
1981
+ };
1982
+
1983
+ const filterBlocksByTag = (blocks, tag) => {
1984
+ return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
1985
+ };
1986
+
1987
+ const GroupBlock = JSX(({ className = '', tabs, context, anchor = null, groupBlocks = [], isShowCounter }) => {
1988
+ const [currentTag, setCurrentTag] = context.useState(tabs?.[0]?.tag);
1989
+ const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
1990
+ const tabsNewMap = tabs?.map((tab) => {
1991
+ const count = tab.tag
1992
+ ? groupBlocks.filter((block) => block?.tags?.includes(tab.tag)).length
1993
+ : groupBlocks.length;
1994
+ return { ...tab, count };
1995
+ });
1996
+ return (jsxs("section", { id: anchor, className: `box-border gap-1 ${className}`, children: [tabsNewMap?.length ? (jsx(GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap, isShowCounter: isShowCounter })) : null, groupBlocks.length ? (jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks })) : null] }));
1997
+ });
1998
+
1891
1999
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
1892
2000
 
1893
2001
  const isHrefActive = (href, router, cmp = (targetHref, baseHref) => baseHref.startsWith(targetHref)) => {
@@ -2015,12 +2123,15 @@
2015
2123
  });
2016
2124
 
2017
2125
  const Insurance = JSX(({ className = '', title, description, image, benefits, sum, monthLimit }) => {
2018
- return (jsxs("section", { className: `px-[100px] py-[50px] bg-white text-primary-text ${className}`, children: [title ? jsx(Heading, { headingType: "h3", title: title, className: "text-center" }) : null, description ? jsx("div", { className: "text-center text-md mt-3", children: description }) : null, jsx("div", { children: jsxs("div", { className: "mt-5 mx-auto flex justify-center gap-[120px] mt-[30px]", children: [image?.src ? jsx(Img, { image: image }) : null, jsxs("div", { className: "w-[558px] m-auto", children: [benefits ? (jsx("div", { className: "flex flex-col gap-4", children: benefits.map(renderBenefit) })) : null, jsxs("div", { className: "bg-secondary-light h-15 flex mt-7 gap-6 px-5 py-4", children: [sum ? renderValueBlock$1('Страховая сумма:', sum, Boolean(monthLimit)) : null, monthLimit
2019
- ? renderValueBlock$1('Ежемесячный лимит:', monthLimit, Boolean(sum))
2020
- : null] })] })] }) })] }));
2126
+ return (jsxs("section", { className: `px-[100px] py-[50px] bg-white text-primary-text font-sans ${className}`, children: [title ? jsx(Heading, { headingType: "h3", title: title, className: "text-center" }) : null, description ? jsx("div", { className: "text-center text-md mt-3", children: description }) : null, jsx("div", { children: jsxs("div", { className: "mt-5 mx-auto flex justify-center gap-[122px] mt-[30px]", children: [image?.src ? jsx(Img, { image: image }) : null, jsxs("div", { className: "w-[558px] m-auto", children: [benefits ? (jsx("div", { className: "flex flex-col gap-4", children: benefits.map(renderBenefit) })) : null, renderInsuranceSumMonth(sum, monthLimit)] })] }) })] }));
2021
2127
  });
2022
2128
  function renderBenefit(benefit, i) {
2023
- return (jsxs("div", { className: "flex items-center gap-5", children: [benefit?.icon ? (jsx(Img, { className: "w-[50px] h-[50px] min-w-[50px] p-3 rounded-full bg-secondary-light", image: benefit.icon, width: "24", height: "24", asSVG: true })) : null, jsxs("div", { children: [benefit?.label ? jsx("div", { className: "text-title-2xs", children: benefit.label }) : null, benefit?.description ? (jsx("div", { className: "mt-2 font-light text-secondary-text", children: benefit.description })) : null] })] }, String(i)));
2129
+ return (jsxs("div", { className: "flex items-center gap-4", children: [benefit?.icon ? (jsx(Img, { className: "w-12 h-12 min-w-12 p-3 rounded-full bg-secondary-light", image: benefit.icon, asSVG: true })) : null, jsxs("div", { children: [benefit?.label ? jsx("div", { className: "text-title-2xs font-normal", children: benefit.label }) : null, benefit?.description ? (jsx("div", { className: "mt-0.5 font-light text-secondary-text font-light", children: benefit.description })) : null] })] }, String(i)));
2130
+ }
2131
+ function renderInsuranceSumMonth(sum, monthLimit) {
2132
+ return sum || monthLimit ? (jsxs("div", { className: "bg-secondary-light h-15 flex mt-7 gap-6 px-5 py-4", children: [Number.isFinite(sum) ? renderValueBlock$1('Страховая сумма:', sum, Boolean(monthLimit)) : null, Number.isFinite(monthLimit)
2133
+ ? renderValueBlock$1('Ежемесячный лимит:', monthLimit, Boolean(sum))
2134
+ : null] })) : null;
2024
2135
  }
2025
2136
  function renderValueBlock$1(title, sum, isAnotherBlock) {
2026
2137
  const widthStyle = isAnotherBlock ? 'w-fit' : 'w-full';
@@ -2032,12 +2143,12 @@
2032
2143
  const [tabsShift, setTabsShift] = context.useState(0);
2033
2144
  const handleNextClick = () => setTabsShift(tabsShift + 1);
2034
2145
  const handlePrevClick = () => setTabsShift(tabsShift - 1);
2035
- const galleryLength = cards?.length;
2146
+ const galleryLength = cards?.length ?? 0;
2036
2147
  const isGalleryScrollAvailable = cards?.length > 2;
2037
2148
  const showNextButton = isGalleryScrollAvailable && galleryLength > tabsShift + 2;
2038
2149
  const isLastShift = galleryLength === tabsShift + 2;
2039
2150
  const showPrevButton = tabsShift > 0;
2040
- return (jsx("section", { id: anchor, className: `min-w-full ${className}`, children: jsxs("div", { className: "relative mt-7 overflow-hidden", children: [galleryLength > 1
2151
+ return (jsx("section", { id: anchor, className: `min-w-full ${className}`, children: jsxs("div", { className: "relative mt-7 overflow-hidden", children: [galleryLength
2041
2152
  ? renderGallery({
2042
2153
  tabsShift,
2043
2154
  cards,
@@ -2076,7 +2187,6 @@
2076
2187
  }
2077
2188
 
2078
2189
  const InsuranceAmountBlock = JSX(({ className = '', context, title, insuranceTabs = [], button, anchor = null }) => {
2079
- const insuranceGalleries = insuranceTabs.map((_) => _.cards);
2080
2190
  const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
2081
2191
  return (jsxs("section", { id: anchor, className: `box-border py-[50px] overflow-hidden relative font-sans w-100 bg-white ${className}`, children: [title ? jsx(Heading, { className: "text-center", title: title, headingType: "h3" }) : null, jsx("div", { className: "p-1.5 bg-secondary-light w-fit m-auto rounded-md mt-[34px]", children: insuranceTabs.map((item, i) => renderNavButton$1({
2082
2192
  title: item?.title,
@@ -2086,10 +2196,11 @@
2086
2196
  })) }), jsx("div", { className: "flex", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: renderInsuranceGalleries({
2087
2197
  context,
2088
2198
  className,
2089
- insuranceGalleries,
2199
+ insuranceTabs,
2090
2200
  }) }), button?.text ? (jsx("div", { className: "flex justify-center", children: jsx(Button, { className: "box-border p-4 h-14 w-full max-w-[240px]", version: button?.version || 'primary', href: button.href, children: button.text }) })) : null] }));
2091
2201
  });
2092
- const renderInsuranceGalleries = ({ insuranceGalleries, context, className }) => {
2202
+ const renderInsuranceGalleries = ({ insuranceTabs, context, className = '', }) => {
2203
+ const insuranceGalleries = insuranceTabs?.map((_) => _.cards);
2093
2204
  return insuranceGalleries?.length
2094
2205
  ? insuranceGalleries.map((cards) => (jsx(InsuranceAmountBlockInner, { context: context, className: className, cards: cards })))
2095
2206
  : null;
@@ -2102,9 +2213,21 @@
2102
2213
  return (jsx("button", { type: "button", onClick: onClick, "aria-label": title, className: `box-border px-4 py-3 text-m-md ${btnClassName}`, children: title }, String(i)));
2103
2214
  }
2104
2215
 
2105
- const MobileAppTile = JSX(({ className = '', context, title = 'Мобильное приложение', qr, buttons = [], anchor = null, }) => {
2106
- return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, id: anchor, children: jsx(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: "h3", title: title, className: `whitespace-pre-wrap max-w-[600px] mb-[30px]` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-[30px] gap-4" })) : null, children: jsxs("div", { className: "flex items-center", children: [qr?.src && qr?.href && (jsx("a", { href: qr.href, target: "_blank", "aria-label": title, children: jsx("img", { src: qr.src, alt: title, title: title, width: "164", height: "164", className: "w-[92px] h-[92px] min-w-[92px] min-h-[92px] bg-secondary-light" }) })), jsx("span", { className: "font-light text-secondary-text ml-4", 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" })] }) }) }));
2216
+ const mobileAppStyleMap = {
2217
+ primary: 'bg-white text-primary-text',
2218
+ secondary: 'bg-primary-main text-white',
2219
+ };
2220
+ const MobileAppTile = JSX(({ className = '', context, title = 'Мобильное приложение', qr, buttons, anchor = null, version = 'primary', items, image, }) => {
2221
+ const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2222
+ return (jsxs("section", { className: `flex justify-between font-sans p-9 box-border relative
2223
+ ${getTileRightPadding(className)} ${getTileMinHeight(className)}
2224
+ ${mobileAppStyleMap[version]}
2225
+ ${className}`, id: anchor, children: [jsx(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: "h3", title: title, className: `whitespace-pre-wrap max-w-[509px] mb-6
2226
+ ${textColorClass}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-[30px] gap-4" })) : null, children: jsxs("div", { className: "flex flex-1 items-center", children: [qr?.src && qr?.href && (jsx("a", { href: qr.href, target: "_blank", "aria-label": title, children: jsx("img", { src: qr.src, alt: title, title: title, width: "122", height: "122", className: "w-[122px] h-[122px] min-w-[122px] min-h-[122px] bg-secondary-light mr-[23px] rounded-md" }) })), renderList$1(version, items)] }) }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(Img, { image: image }) })) : null] }));
2107
2227
  });
2228
+ const renderList$1 = (version, items) => {
2229
+ return items?.length ? (jsx(List, { items: items, itemClassName: "base font-light mb-2 last:mb-0", version: version === 'primary' ? 'tile' : 'tile-white' })) : (jsx("span", { className: "font-light text-secondary-text ml-4", 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" }));
2230
+ };
2108
2231
 
2109
2232
  const NavigationItem = JSX(({ className, text, onClick, href, target, isActive }) => (jsx("a", { className: `bg-inherit no-underline px-4 py-2.5 cursor-pointer rounded text-sm border border-solid hover:text-primary-main ${className || ''} ${isActive ? 'border-primary-main text-primary-main' : 'border-white text-secondary-text'}`, onClick: onClick, href: href, target: target, children: text })));
2110
2233
 
@@ -2131,9 +2254,9 @@
2131
2254
 
2132
2255
  const NavigatorTabs = JSX(({ className = '', navigatorTabs, context, anchor = null }) => {
2133
2256
  const href = globalThis.location?.href; // TODO: remove globalThis, use href from router
2134
- return (jsx("section", { className: `sticky top-0 z-20 box-border flex gap-x-1 h-14 ${className}`, id: anchor, children: navigatorTabs ? navigatorTabs.map(renderTab$1(context, href)) : null }));
2257
+ return (jsx("section", { className: `sticky top-0 z-20 box-border flex gap-x-1 h-14 ${className}`, id: anchor, children: navigatorTabs ? navigatorTabs.map(renderTab(context, href)) : null }));
2135
2258
  });
2136
- const renderTab$1 = (context, href) => (tab, i) => {
2259
+ const renderTab = (context, href) => (tab, i) => {
2137
2260
  const { useRouter, handlerDecorator } = context;
2138
2261
  const router = useRouter();
2139
2262
  const hash = getHash(href);
@@ -2160,36 +2283,34 @@
2160
2283
  return { icon, handleToggle, isActive };
2161
2284
  };
2162
2285
 
2163
- const Foldable = JSX(({ blocks = [], context, hiddenBlocksNum = 0, foldButtonClasses, foldButtonLabel, foldButtonDataTheme, isUnfolded, render = (_) => _, }) => {
2286
+ const Foldable = JSX(({ blocks = [], context, hiddenBlocksNum = 0, foldButtonClasses, foldButtonLabel, foldButtonDataTheme, isUnfolded, containerClasses, render = (_) => _, }) => {
2164
2287
  const blocksToHide = clamp(hiddenBlocksNum, 0, blocks.length);
2165
2288
  const { icon, handleToggle, isActive } = useActiveHandler({
2166
2289
  context,
2167
2290
  initialState: isUnfolded,
2168
2291
  });
2169
- return blocks ? (jsxs("div", { children: [renderBlocks(blocks, render, { blocksToHide, isActive }), hiddenBlocksNum ? (jsxs("button", { className: foldButtonClasses ||
2170
- 'border-none bg-primary-main px-0 py-[26px] mb-[1px] w-full font-sans text-white text-base flex justify-center cursor-pointer', "data-theme": foldButtonDataTheme, onClick: handleToggle, children: [jsx("span", { className: "pr-3", children: isActive ? 'Скрыть' : foldButtonLabel }), jsx(Icon, { name: icon, iconVersion: "white", width: "20", height: "20", asSVG: true })] })) : null] })) : null;
2292
+ return blocks ? (jsxs("div", { children: [renderBlocks(blocks, render, { blocksToHide, isActive, containerClasses }), hiddenBlocksNum ? (jsxs("button", { className: foldButtonClasses ||
2293
+ 'border-none bg-primary-main px-0 py-[26px] mb-[1px] w-full font-sans text-white text-base flex justify-center cursor-pointer', "data-theme": foldButtonDataTheme, onClick: handleToggle, children: [jsx("span", { className: "pr-3", children: isActive ? 'Скрыть' : foldButtonLabel }), icon && jsx(Icon, { name: icon, iconVersion: "white", width: "20", height: "20", asSVG: true })] })) : null] })) : null;
2171
2294
  });
2172
- const renderBlocks = (blocks, render, { blocksToHide, isActive }) => {
2295
+ const renderBlocks = (blocks, render, { blocksToHide, isActive, containerClasses }) => {
2173
2296
  const visibleBlocks = blocks.slice(0, blocks.length - blocksToHide);
2174
2297
  const hiddenBlocks = blocks.slice(-blocksToHide);
2175
- return render(jsxs("div", { children: [visibleBlocks, jsx("div", { className: foldableBlockClassNames, children: hiddenBlocks })] }), isActive);
2298
+ return render(jsxs("div", { children: [visibleBlocks, jsx("div", { className: `${foldableBlockClassNames} ${containerClasses}`, children: hiddenBlocks })] }), isActive);
2176
2299
  };
2177
2300
 
2178
- const OtherProductsItem = JSX(({ label, blocks, columns = 1, context, dataTheme, isUnfolded }) => {
2301
+ const OtherProductsItem = JSX(({ label, blocks, context, dataTheme, isUnfolded }) => {
2179
2302
  const foldableBlocks = renderBlocksList({
2180
2303
  context,
2181
- className: 'box-border p-5',
2182
- columns,
2183
2304
  blocks,
2184
2305
  });
2185
- return (jsx("div", { className: "border-0 border-b border-solid border-main-divider", children: blocks?.length ? (jsx(Foldable, { foldButtonDataTheme: dataTheme, hiddenBlocksNum: blocks?.length, blocks: foldableBlocks, isUnfolded: isUnfolded, context: context, foldButtonLabel: label, render: (children, isActive) => (jsx(Wrapper$1, { columns: columns, isActive: isActive, children: children })) })) : null }));
2306
+ return (jsx("div", { className: "border-0 border-b border-solid border-main-divider", children: blocks?.length ? (jsx(Foldable, { foldButtonDataTheme: dataTheme, hiddenBlocksNum: blocks?.length, blocks: foldableBlocks, isUnfolded: isUnfolded, context: context, foldButtonLabel: label, containerClasses: "grid grid-cols-12 gap-1 border-box", render: (children, isActive) => jsx(Wrapper$1, { isActive: isActive, children: children }) })) : null }));
2186
2307
  });
2187
- const Wrapper$1 = JSX(({ columns, children, isActive }) => {
2188
- return (jsx("div", { className: `box-border w-full ${isActive ? 'p-9' : ''} ${columns > 1 ? 'flex flex-wrap' : ''}`, children: children }));
2308
+ const Wrapper$1 = JSX(({ children }) => {
2309
+ return jsx("div", { className: "box-border", children: children });
2189
2310
  });
2190
2311
 
2191
2312
  const OtherProducts = JSX(({ blockItems, colorPalette, context, className = '' }) => {
2192
- return (jsx("section", { className: `font-sans bg-white text-primary-text ${className}`, children: blockItems?.length ? (jsx("div", { className: "list-none m-0 p-0", children: blockItems.map((item, i) => (jsx(OtherProductsItem, { ...item, dataTheme: colorPalette, context: context }, `BlockItem${i}`))) })) : null }));
2313
+ return (jsx("section", { className: `font-sans text-primary-text ${className}`, children: blockItems?.length ? (jsx("div", { className: "box-border1", children: blockItems.map((item, i) => (jsx(OtherProductsItem, { ...item, dataTheme: colorPalette, context: context }, `BlockItem${i}`))) })) : null }));
2193
2314
  });
2194
2315
 
2195
2316
  const GOLDEN_RATIO = 1.618;
@@ -2303,20 +2424,41 @@
2303
2424
  }) }));
2304
2425
  };
2305
2426
 
2306
- const StepsBlock = JSX(({ className = '', title, showLines = true, steps = [], button, anchor = null }) => {
2427
+ const STEPS_BLOCK_STYLE_MAPS = {
2428
+ primary: {
2429
+ background: 'bg-white',
2430
+ title: 'text-primary-text',
2431
+ description: 'text-secondary-text',
2432
+ iconBackground: 'bg-secondary-light',
2433
+ iconConnector: 'bg-secondary-light',
2434
+ },
2435
+ secondary: {
2436
+ background: 'bg-primary-main',
2437
+ title: 'text-white',
2438
+ description: 'text-white/80',
2439
+ iconBackground: 'bg-white/30',
2440
+ iconConnector: 'bg-white',
2441
+ },
2442
+ };
2443
+ const getStyleMap = (version) => STEPS_BLOCK_STYLE_MAPS[version];
2444
+
2445
+ const StepsBlock = JSX(({ className = '', title, showLines = true, steps = [], button, anchor = null, version = 'primary', }) => {
2446
+ const styleMap = getStyleMap(version);
2307
2447
  const shortGaps = steps.length > 3;
2308
2448
  return (jsxs("section", { className: [
2309
2449
  'box-border font-sans text-primary-text bg-white',
2310
2450
  shortGaps ? 'px-20' : 'px-[70px]',
2311
2451
  'py-[50px] flex flex-col items-center',
2452
+ styleMap.background,
2453
+ styleMap.title,
2312
2454
  className,
2313
- ].join(' '), id: anchor, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center", title: title }), steps?.length ? (jsxs("div", { className: `box-border ${title ? 'mt-9' : ''}`, children: [jsx("div", { className: "flex items-center px-[88px]", children: joinList(jsx("div", { className: `h-0.5 w-full bg-secondary-light ${!showLines ? 'opacity-0' : ''}` }))(steps.map(renderStepIcon)) }), jsx("div", { className: `flex justify-between ${shortGaps ? 'gap-x-3' : 'gap-x-[101px]'}`, children: steps.map((step, i) => renderStepTitle(step, i, Boolean(button?.text))) })] })) : null, button?.text ? (jsx(Button, { className: "box-border mt-8 py-3 h-12 w-full max-w-[240px]", version: "primary", href: "#", children: button.text })) : null] }));
2455
+ ].join(' '), id: anchor, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center", title: title }), steps?.length ? (jsxs("div", { className: `box-border ${title ? 'mt-9' : ''}`, children: [jsx("div", { className: "flex items-center px-[88px]", children: joinList(jsx("div", { className: `h-0.5 w-full bg-secondary-light ${!showLines ? 'opacity-0' : ''}` }))(steps.map(renderStepIcon(styleMap))) }), jsx("div", { className: `flex justify-between ${shortGaps ? 'gap-x-3' : 'gap-x-[101px]'}`, children: steps.map(renderStepTitle(styleMap, Boolean(button?.text))) })] })) : null, button?.text ? (jsx(Button, { className: "box-border mt-8 py-3 h-12 w-full max-w-[240px]", version: "primary", href: "#", children: button.text })) : null] }));
2314
2456
  });
2315
- const renderStepIcon = (step, i) => {
2316
- return (jsx("div", { className: "flex flex-col items-center text-center relative", children: jsx("div", { className: "h-[100px] w-[100px] min-w-[100px] min-h-[100px] bg-secondary-light rounded-full p-[26px] box-border z-10", children: (step.icon?.icon && jsx(Img, { image: step.icon, width: "48", height: "48" })) || (jsx("span", { className: "font-normal text-title-sm text-secondary-text", children: i + 1 })) }) }, String(i)));
2457
+ const renderStepIcon = (styleMap) => (step, i) => {
2458
+ return (jsx("div", { className: "flex flex-col items-center text-center relative", children: jsx("div", { className: `h-[100px] w-[100px] min-w-[100px] min-h-[100px] rounded-full p-[26px] box-border z-10 ${styleMap.iconBackground}`, children: (step.icon?.icon && jsx(Img, { image: step.icon, width: "48", height: "48" })) || (jsx("span", { className: `font-normal text-title-sm ${styleMap.title}`, children: i + 1 })) }) }, String(i)));
2317
2459
  };
2318
- const renderStepTitle = (step, i, isMainButton) => {
2319
- return (jsxs("div", { className: "flex flex-col items-center justify-between text-center relative w-[276px] whitespace-pre-line overflow-hidden", children: [jsxs("div", { children: [step.label && jsx("div", { className: "font-normal text-xl m-0 mt-4", children: step.label }), step.description && (jsx("div", { className: `font-light text-base text-secondary-text ${step.label ? 'mt-2' : 'mt-4'}`, children: step.description }))] }), step?.button?.text && !isMainButton ? (jsx(Button, { className: "box-border mt-8 py-3 h-12 w-full max-w-[240px]", version: "primary", href: step.button?.href, children: step.button.text })) : null] }, String(i)));
2460
+ const renderStepTitle = (styleMap, isMainButton) => (step, i) => {
2461
+ return (jsxs("div", { className: "flex flex-col items-center justify-between text-center relative w-[276px] whitespace-pre-line overflow-hidden", children: [jsxs("div", { children: [step.label ? jsx("div", { className: "font-normal text-xl m-0 mt-4", children: step.label }) : null, step.description ? (jsx("div", { className: `font-light text-base ${styleMap.description} ${step.label ? 'mt-2' : 'mt-4'}`, children: step.description })) : null] }), step?.button?.text && !isMainButton ? (jsx(Button, { className: "box-border mt-8 py-3 h-12 w-full max-w-[240px]", version: "primary", href: step.button?.href, children: step.button.text })) : null] }, String(i)));
2320
2462
  };
2321
2463
 
2322
2464
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
@@ -2361,84 +2503,13 @@
2361
2503
  return (jsxs("div", { role: "table", children: [jsxs("div", { className: "relative", children: [children, jsx(TableArrowScrollControl, { ...tableArrowScrollControlProps })] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
2362
2504
  });
2363
2505
 
2364
- const GroupBlockTabs = JSX((props) => {
2365
- const { tabs, currentTag, onTabClick, className = '', isShowCounter } = props;
2366
- return (jsx("div", { className: `mb-2 box-border flex gap-x-1 ${className}`, role: "tablist", children: tabs?.map(renderTab(onTabClick, isShowCounter, currentTag)) }));
2367
- });
2368
- const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-m-sm';
2369
- const renderTab = (onTabClick, isShowCounter, currentTag) => (tab, i) => {
2370
- const isActive = currentTag === tab.tag;
2371
- const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
2372
- const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
2373
- const counterBlockStyle = `${badgeStyle}
2374
- ${isActive ? 'bg-white/30 text-white' : 'bg-secondary-light text-secondary-text'}`;
2375
- return (jsx("div", { className: `flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? jsx("h3", { className: tabText, children: tab?.title }) : null, isShowCounter ? (jsx("div", { className: `flex items-center justify-center ml-8 ${counterBlockStyle}`, children: jsx("span", { children: tab.count }) })) : null] }) }, String(i)));
2376
- };
2377
-
2378
- function style2className(style) {
2379
- return style ? style.filter(Boolean).join(' ') : '';
2380
- }
2381
-
2382
- const EmbeddableGroupBlocks = {
2383
- ProductBlock,
2384
- ProductTile,
2385
- };
2386
-
2387
- const GroupBlocksItem = JSX(({ groupBlocks, context }) => {
2388
- return (jsx("div", { className: "grid grid-cols-12 gap-2 box-border", children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
2389
- });
2390
- const renderBlock$1 = (context) => (block, i) => {
2391
- const type = block?.blockType;
2392
- if (!type || !(type in EmbeddableGroupBlocks)) {
2393
- return null;
2394
- }
2395
- const classNameBlock = style2className(block?.style);
2396
- const EmbeddedBlock = EmbeddableGroupBlocks[type];
2397
- return (jsx(EmbeddedBlock, { context: context, ...block, className: classNameBlock }, `block_${i}`));
2398
- };
2399
-
2400
- const filterBlocksByTag = (blocks, tag) => {
2401
- return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
2402
- };
2403
-
2404
- const GroupBlock = JSX(({ className = '', tabs, context, anchor = null, groupBlocks = [], isShowCounter }) => {
2405
- const [currentTag, setCurrentTag] = context.useState(tabs?.[0]?.tag);
2406
- const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
2407
- const tabsNewMap = tabs?.map((tab) => {
2408
- const count = tab.tag
2409
- ? groupBlocks.filter((block) => block?.tags?.includes(tab.tag)).length
2410
- : groupBlocks.length;
2411
- return { ...tab, count };
2412
- });
2413
- return (jsxs("section", { id: anchor, className: `box-border gap-1 ${className}`, children: [tabsNewMap?.length ? (jsx(GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap, isShowCounter: isShowCounter })) : null, groupBlocks.length ? (jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks })) : null] }));
2414
- });
2415
-
2416
- function getElementsColsValue(className = '') {
2417
- const colSpan = getColSpan(className);
2418
- if (colSpan <= 6) {
2419
- return 'grid-cols-2';
2420
- }
2421
- else if (colSpan <= 8) {
2422
- return 'grid-cols-3';
2423
- }
2424
- else {
2425
- return 'grid-cols-4';
2426
- }
2427
- }
2428
-
2429
- const BonusBenefitsBlock = JSX(({ className = '', title, subtitle, bonusBenefits, anchor = null }) => {
2430
- return (jsxs("section", { className: `font-sans text-primary-text bg-white p-50 flex flex-col text-center ${className}`, id: anchor, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-[10px]", title: title }) : null, subtitle ? jsx("span", { className: "text-md font-normal", children: subtitle }) : null, bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${getElementsColsValue(className)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] }));
2431
- });
2432
- const renderBonusBenefit = (bonusBenefit, i) => {
2433
- return (jsxs("div", { className: "flex flex-col items-center max-w-[292px]", children: [bonusBenefit?.icon ? (jsx(Img, { className: "h-[180px] w-[160px] min-w-[160px] min-h-[160px]", image: bonusBenefit.icon, width: "160", height: "180" })) : null, jsx("div", { children: bonusBenefit?.label ? jsx("span", { className: "title-2xs m-0", children: bonusBenefit.label }) : null })] }, String(i)));
2434
- };
2435
-
2436
2506
  const Blocks = {
2437
2507
  Accordion,
2438
2508
  BenefitsBlock,
2439
2509
  Bonus,
2440
2510
  ComparisonTable,
2441
2511
  Calculator,
2512
+ Catalog,
2442
2513
  ExchangeRateTile,
2443
2514
  Footer,
2444
2515
  Gallery,