@redneckz/wildless-cms-uni-blocks 0.2.71 → 0.2.74

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 (518) hide show
  1. package/bundle/blocks.schema.json +1022 -0
  2. package/bundle/bundle.umd.js +152 -71
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/BaseTile.d.ts +2 -12
  5. package/dist/BaseTile.js +9 -4
  6. package/dist/BaseTile.js.map +1 -1
  7. package/dist/BaseTileContent.d.ts +13 -0
  8. package/dist/BaseTileContent.js +2 -0
  9. package/dist/BaseTileContent.js.map +1 -0
  10. package/dist/BenefitsBlock.d.ts +1 -10
  11. package/dist/BenefitsBlock.js.map +1 -1
  12. package/dist/BenefitsBlockContent.d.ts +10 -0
  13. package/dist/BenefitsBlockContent.js +2 -0
  14. package/dist/BenefitsBlockContent.js.map +1 -0
  15. package/dist/BlockContent.d.ts +16 -0
  16. package/dist/BlockContent.js +2 -0
  17. package/dist/BlockContent.js.map +1 -0
  18. package/dist/Blocks.d.ts +2 -15
  19. package/dist/Blocks.js +11 -7
  20. package/dist/Blocks.js.map +1 -1
  21. package/dist/ComparisonTable/ComparisonTable.d.ts +5 -0
  22. package/dist/ComparisonTable/ComparisonTable.js +34 -0
  23. package/dist/ComparisonTable/ComparisonTable.js.map +1 -0
  24. package/dist/ComparisonTable/ComparisonTableContent.d.ts +37 -0
  25. package/dist/ComparisonTable/ComparisonTableContent.js +2 -0
  26. package/dist/ComparisonTable/ComparisonTableContent.js.map +1 -0
  27. package/dist/ComparisonTable/HeaderCell.d.ts +10 -0
  28. package/dist/ComparisonTable/HeaderCell.js +11 -0
  29. package/dist/ComparisonTable/HeaderCell.js.map +1 -0
  30. package/dist/ComparisonTable/TableCarouselContainer.d.ts +4 -0
  31. package/dist/ComparisonTable/TableCarouselContainer.js +7 -0
  32. package/dist/ComparisonTable/TableCarouselContainer.js.map +1 -0
  33. package/dist/ComparisonTable/TableCell.d.ts +8 -0
  34. package/dist/ComparisonTable/TableCell.js +12 -0
  35. package/dist/ComparisonTable/TableCell.js.map +1 -0
  36. package/dist/ComparisonTable/TableRow.d.ts +10 -0
  37. package/dist/ComparisonTable/TableRow.js +10 -0
  38. package/dist/ComparisonTable/TableRow.js.map +1 -0
  39. package/dist/ComparisonTable/TableRowContainer.d.ts +4 -0
  40. package/dist/ComparisonTable/TableRowContainer.js +6 -0
  41. package/dist/ComparisonTable/TableRowContainer.js.map +1 -0
  42. package/dist/ComparisonTable/constants.d.ts +6 -0
  43. package/dist/ComparisonTable/constants.js +9 -0
  44. package/dist/ComparisonTable/constants.js.map +1 -0
  45. package/dist/ComparisonTable/index.d.ts +3 -0
  46. package/dist/ComparisonTable/index.js +5 -0
  47. package/dist/ComparisonTable/index.js.map +1 -0
  48. package/dist/ContentPage.d.ts +1 -1
  49. package/dist/ExchangeRateTile.d.ts +1 -3
  50. package/dist/ExchangeRateTile.js +1 -0
  51. package/dist/ExchangeRateTile.js.map +1 -1
  52. package/dist/ExchangeRateTileContent.d.ts +3 -0
  53. package/dist/ExchangeRateTileContent.js +2 -0
  54. package/dist/ExchangeRateTileContent.js.map +1 -0
  55. package/dist/Footer/Contacts.d.ts +2 -1
  56. package/dist/Footer/Contacts.js +1 -1
  57. package/dist/Footer/Contacts.js.map +1 -1
  58. package/dist/Footer/Footer.d.ts +2 -8
  59. package/dist/Footer/Footer.js +1 -1
  60. package/dist/Footer/Footer.js.map +1 -1
  61. package/dist/Footer/Footer.mobile.d.ts +1 -1
  62. package/dist/Footer/FooterContent.d.ts +13 -0
  63. package/dist/Footer/FooterContent.js +2 -0
  64. package/dist/Footer/FooterContent.js.map +1 -0
  65. package/dist/Footer/FooterLink.d.ts +1 -1
  66. package/dist/Footer/Sitemap.d.ts +2 -1
  67. package/dist/Footer/Sitemap.js.map +1 -1
  68. package/dist/Footer/SocialMedia.d.ts +2 -1
  69. package/dist/Footer/SocialMedia.js +4 -1
  70. package/dist/Footer/SocialMedia.js.map +1 -1
  71. package/dist/Gallery.d.ts +2 -13
  72. package/dist/Gallery.js +2 -32
  73. package/dist/Gallery.js.map +1 -1
  74. package/dist/Gallery.mobile.d.ts +1 -1
  75. package/dist/Gallery.mobile.js +1 -1
  76. package/dist/Gallery.mobile.js.map +1 -1
  77. package/dist/GalleryContent.d.ts +13 -0
  78. package/dist/GalleryContent.js +2 -0
  79. package/dist/GalleryContent.js.map +1 -0
  80. package/dist/GalleryInner.d.ts +7 -0
  81. package/dist/GalleryInner.js +46 -0
  82. package/dist/GalleryInner.js.map +1 -0
  83. package/dist/Header/HeaderContent.d.ts +2 -3
  84. package/dist/Header/isSubItemActive.d.ts +1 -1
  85. package/dist/Header/isTopItemActive.d.ts +1 -1
  86. package/dist/MiniGallery.d.ts +5 -0
  87. package/dist/MiniGallery.js +7 -0
  88. package/dist/MiniGallery.js.map +1 -0
  89. package/dist/MobileAppTile.d.ts +1 -9
  90. package/dist/MobileAppTile.js.map +1 -1
  91. package/dist/MobileAppTileContent.d.ts +9 -0
  92. package/dist/MobileAppTileContent.js +2 -0
  93. package/dist/MobileAppTileContent.js.map +1 -0
  94. package/dist/MobileBlocks.js +2 -2
  95. package/dist/MobileBlocks.js.map +1 -1
  96. package/dist/Placeholder.d.ts +1 -3
  97. package/dist/Placeholder.js.map +1 -1
  98. package/dist/PlaceholderContent.d.ts +3 -0
  99. package/dist/PlaceholderContent.js +2 -0
  100. package/dist/PlaceholderContent.js.map +1 -0
  101. package/dist/ProductBlock.d.ts +2 -4
  102. package/dist/ProductBlock.js.map +1 -1
  103. package/dist/ProductBlock.mobile.d.ts +1 -1
  104. package/dist/ProductBlock.mobile.js.map +1 -1
  105. package/dist/ProductBlockContent.d.ts +5 -0
  106. package/dist/ProductBlockContent.js +2 -0
  107. package/dist/ProductBlockContent.js.map +1 -0
  108. package/dist/ProductBlockInner.d.ts +1 -5
  109. package/dist/ProductBlockInner.js +3 -3
  110. package/dist/ProductBlockInner.js.map +1 -1
  111. package/dist/ProductBlockInnerContent.d.ts +5 -0
  112. package/dist/ProductBlockInnerContent.js +2 -0
  113. package/dist/ProductBlockInnerContent.js.map +1 -0
  114. package/dist/ProductGallery.d.ts +1 -14
  115. package/dist/ProductGallery.js.map +1 -1
  116. package/dist/ProductGalleryContent.d.ts +14 -0
  117. package/dist/ProductGalleryContent.js +2 -0
  118. package/dist/ProductGalleryContent.js.map +1 -0
  119. package/dist/ProductTile.d.ts +1 -5
  120. package/dist/ProductTile.js.map +1 -1
  121. package/dist/ProductTileContent.d.ts +5 -0
  122. package/dist/ProductTileContent.js +2 -0
  123. package/dist/ProductTileContent.js.map +1 -0
  124. package/dist/PromoTile.d.ts +1 -4
  125. package/dist/PromoTile.js.map +1 -1
  126. package/dist/PromoTileContent.d.ts +4 -0
  127. package/dist/PromoTileContent.js +2 -0
  128. package/dist/PromoTileContent.js.map +1 -0
  129. package/dist/StepsBlock.d.ts +1 -10
  130. package/dist/StepsBlock.js.map +1 -1
  131. package/dist/StepsBlockContent.d.ts +10 -0
  132. package/dist/StepsBlockContent.js +2 -0
  133. package/dist/StepsBlockContent.js.map +1 -0
  134. package/dist/TextBlock.d.ts +2 -11
  135. package/dist/TextBlock.js +4 -4
  136. package/dist/TextBlock.js.map +1 -1
  137. package/dist/TextBlockContent.d.ts +10 -0
  138. package/dist/TextBlockContent.js +2 -0
  139. package/dist/TextBlockContent.js.map +1 -0
  140. package/dist/Tile.d.ts +2 -2
  141. package/dist/Tile.js.map +1 -1
  142. package/dist/TileContent.d.ts +2 -0
  143. package/dist/TileContent.js +2 -0
  144. package/dist/TileContent.js.map +1 -0
  145. package/dist/content-page-repository/transformContentPage.js.map +1 -1
  146. package/dist/content-page-repository/transformPicture.d.ts +1 -1
  147. package/dist/index.d.ts +4 -3
  148. package/dist/index.js.map +1 -1
  149. package/dist/mergeTopItems.d.ts +2 -2
  150. package/dist/mergeTopItems.js.map +1 -1
  151. package/dist/model/BlockVersion.d.ts +1 -0
  152. package/dist/model/BlockVersion.js +2 -0
  153. package/dist/model/BlockVersion.js.map +1 -0
  154. package/dist/model/ButtonVersion.d.ts +1 -0
  155. package/dist/model/ButtonVersion.js +2 -0
  156. package/dist/model/ButtonVersion.js.map +1 -0
  157. package/dist/model/GalleryVersion.d.ts +1 -0
  158. package/dist/model/GalleryVersion.js +2 -0
  159. package/dist/model/GalleryVersion.js.map +1 -0
  160. package/dist/model/LinkContent.d.ts +5 -0
  161. package/dist/model/LinkContent.js +2 -0
  162. package/dist/model/LinkContent.js.map +1 -0
  163. package/dist/model/Picture.d.ts +17 -0
  164. package/dist/model/Picture.js +2 -0
  165. package/dist/model/Picture.js.map +1 -0
  166. package/dist/model/SitemapContent.d.ts +7 -0
  167. package/dist/model/SitemapContent.js +2 -0
  168. package/dist/model/SitemapContent.js.map +1 -0
  169. package/dist/types.d.ts +2 -32
  170. package/dist/ui-kit/ArrowButton.d.ts +2 -6
  171. package/dist/ui-kit/ArrowButton.js +17 -3
  172. package/dist/ui-kit/ArrowButton.js.map +1 -1
  173. package/dist/ui-kit/Breadcrumb.d.ts +1 -1
  174. package/dist/ui-kit/Button.d.ts +2 -8
  175. package/dist/ui-kit/Button.js +11 -5
  176. package/dist/ui-kit/Button.js.map +1 -1
  177. package/dist/ui-kit/ButtonProps.d.ts +21 -0
  178. package/dist/ui-kit/ButtonProps.js +2 -0
  179. package/dist/ui-kit/ButtonProps.js.map +1 -0
  180. package/dist/ui-kit/Icon.d.ts +1 -10
  181. package/dist/ui-kit/Icon.js.map +1 -1
  182. package/dist/ui-kit/IconProps.d.ts +32 -0
  183. package/dist/ui-kit/IconProps.js +26 -0
  184. package/dist/ui-kit/IconProps.js.map +1 -0
  185. package/dist/{Img.d.ts → ui-kit/Img.d.ts} +1 -1
  186. package/dist/{Img.js → ui-kit/Img.js} +0 -0
  187. package/dist/ui-kit/Img.js.map +1 -0
  188. package/dist/ui-kit/SVG.d.ts +2 -0
  189. package/dist/ui-kit/SVG.js +2 -2
  190. package/dist/ui-kit/SVG.js.map +1 -1
  191. package/dist/ui-kit/Title.d.ts +1 -10
  192. package/dist/ui-kit/Title.js +3 -9
  193. package/dist/ui-kit/Title.js.map +1 -1
  194. package/dist/ui-kit/TitleProps.d.ts +10 -0
  195. package/dist/ui-kit/TitleProps.js +10 -0
  196. package/dist/ui-kit/TitleProps.js.map +1 -0
  197. package/dist/ui-kit/TopItem.d.ts +1 -1
  198. package/dist/useLink.d.ts +5 -2
  199. package/dist/useLink.js.map +1 -1
  200. package/dist/useSitemap.d.ts +1 -1
  201. package/lib/BaseTile.d.ts +2 -12
  202. package/lib/BaseTile.js +9 -4
  203. package/lib/BaseTile.js.map +1 -1
  204. package/lib/BaseTileContent.d.ts +13 -0
  205. package/lib/BaseTileContent.js +2 -0
  206. package/lib/BaseTileContent.js.map +1 -0
  207. package/lib/BenefitsBlock.d.ts +1 -10
  208. package/lib/BenefitsBlock.js.map +1 -1
  209. package/lib/BenefitsBlockContent.d.ts +10 -0
  210. package/lib/BenefitsBlockContent.js +2 -0
  211. package/lib/BenefitsBlockContent.js.map +1 -0
  212. package/lib/BlockContent.d.ts +16 -0
  213. package/lib/BlockContent.js +2 -0
  214. package/lib/BlockContent.js.map +1 -0
  215. package/lib/Blocks.d.ts +2 -15
  216. package/lib/Blocks.js +9 -5
  217. package/lib/Blocks.js.map +1 -1
  218. package/lib/ComparisonTable/ComparisonTable.d.ts +5 -0
  219. package/lib/ComparisonTable/ComparisonTable.js +32 -0
  220. package/lib/ComparisonTable/ComparisonTable.js.map +1 -0
  221. package/lib/ComparisonTable/ComparisonTableContent.d.ts +37 -0
  222. package/lib/ComparisonTable/ComparisonTableContent.js +2 -0
  223. package/lib/ComparisonTable/ComparisonTableContent.js.map +1 -0
  224. package/lib/ComparisonTable/HeaderCell.d.ts +10 -0
  225. package/lib/ComparisonTable/HeaderCell.js +9 -0
  226. package/lib/ComparisonTable/HeaderCell.js.map +1 -0
  227. package/lib/ComparisonTable/TableCarouselContainer.d.ts +4 -0
  228. package/lib/ComparisonTable/TableCarouselContainer.js +5 -0
  229. package/lib/ComparisonTable/TableCarouselContainer.js.map +1 -0
  230. package/lib/ComparisonTable/TableCell.d.ts +8 -0
  231. package/lib/ComparisonTable/TableCell.js +10 -0
  232. package/lib/ComparisonTable/TableCell.js.map +1 -0
  233. package/lib/ComparisonTable/TableRow.d.ts +10 -0
  234. package/lib/ComparisonTable/TableRow.js +8 -0
  235. package/lib/ComparisonTable/TableRow.js.map +1 -0
  236. package/lib/ComparisonTable/TableRowContainer.d.ts +4 -0
  237. package/lib/ComparisonTable/TableRowContainer.js +4 -0
  238. package/lib/ComparisonTable/TableRowContainer.js.map +1 -0
  239. package/lib/ComparisonTable/constants.d.ts +6 -0
  240. package/lib/ComparisonTable/constants.js +7 -0
  241. package/lib/ComparisonTable/constants.js.map +1 -0
  242. package/lib/ComparisonTable/index.d.ts +3 -0
  243. package/lib/ComparisonTable/index.js +2 -0
  244. package/lib/ComparisonTable/index.js.map +1 -0
  245. package/lib/ContentPage.d.ts +1 -1
  246. package/lib/ExchangeRateTile.d.ts +1 -3
  247. package/lib/ExchangeRateTile.js +1 -0
  248. package/lib/ExchangeRateTile.js.map +1 -1
  249. package/lib/ExchangeRateTileContent.d.ts +3 -0
  250. package/lib/ExchangeRateTileContent.js +2 -0
  251. package/lib/ExchangeRateTileContent.js.map +1 -0
  252. package/lib/Footer/Contacts.d.ts +2 -1
  253. package/lib/Footer/Contacts.js +1 -1
  254. package/lib/Footer/Contacts.js.map +1 -1
  255. package/lib/Footer/Footer.d.ts +2 -8
  256. package/lib/Footer/Footer.js +1 -1
  257. package/lib/Footer/Footer.js.map +1 -1
  258. package/lib/Footer/Footer.mobile.d.ts +1 -1
  259. package/lib/Footer/FooterContent.d.ts +13 -0
  260. package/lib/Footer/FooterContent.js +2 -0
  261. package/lib/Footer/FooterContent.js.map +1 -0
  262. package/lib/Footer/FooterLink.d.ts +1 -1
  263. package/lib/Footer/Sitemap.d.ts +2 -1
  264. package/lib/Footer/Sitemap.js.map +1 -1
  265. package/lib/Footer/SocialMedia.d.ts +2 -1
  266. package/lib/Footer/SocialMedia.js +4 -1
  267. package/lib/Footer/SocialMedia.js.map +1 -1
  268. package/lib/Gallery.d.ts +2 -13
  269. package/lib/Gallery.js +3 -33
  270. package/lib/Gallery.js.map +1 -1
  271. package/lib/Gallery.mobile.d.ts +1 -1
  272. package/lib/Gallery.mobile.js +1 -1
  273. package/lib/Gallery.mobile.js.map +1 -1
  274. package/lib/GalleryContent.d.ts +13 -0
  275. package/lib/GalleryContent.js +2 -0
  276. package/lib/GalleryContent.js.map +1 -0
  277. package/lib/GalleryInner.d.ts +7 -0
  278. package/lib/GalleryInner.js +44 -0
  279. package/lib/GalleryInner.js.map +1 -0
  280. package/lib/Header/HeaderContent.d.ts +2 -3
  281. package/lib/Header/isSubItemActive.d.ts +1 -1
  282. package/lib/Header/isTopItemActive.d.ts +1 -1
  283. package/lib/MiniGallery.d.ts +5 -0
  284. package/lib/MiniGallery.js +5 -0
  285. package/lib/MiniGallery.js.map +1 -0
  286. package/lib/MobileAppTile.d.ts +1 -9
  287. package/lib/MobileAppTile.js.map +1 -1
  288. package/lib/MobileAppTileContent.d.ts +9 -0
  289. package/lib/MobileAppTileContent.js +2 -0
  290. package/lib/MobileAppTileContent.js.map +1 -0
  291. package/lib/MobileBlocks.js +1 -1
  292. package/lib/MobileBlocks.js.map +1 -1
  293. package/lib/Placeholder.d.ts +1 -3
  294. package/lib/Placeholder.js.map +1 -1
  295. package/lib/PlaceholderContent.d.ts +3 -0
  296. package/lib/PlaceholderContent.js +2 -0
  297. package/lib/PlaceholderContent.js.map +1 -0
  298. package/lib/ProductBlock.d.ts +2 -4
  299. package/lib/ProductBlock.js.map +1 -1
  300. package/lib/ProductBlock.mobile.d.ts +1 -1
  301. package/lib/ProductBlock.mobile.js.map +1 -1
  302. package/lib/ProductBlockContent.d.ts +5 -0
  303. package/lib/ProductBlockContent.js +2 -0
  304. package/lib/ProductBlockContent.js.map +1 -0
  305. package/lib/ProductBlockInner.d.ts +1 -5
  306. package/lib/ProductBlockInner.js +3 -3
  307. package/lib/ProductBlockInner.js.map +1 -1
  308. package/lib/ProductBlockInnerContent.d.ts +5 -0
  309. package/lib/ProductBlockInnerContent.js +2 -0
  310. package/lib/ProductBlockInnerContent.js.map +1 -0
  311. package/lib/ProductGallery.d.ts +1 -14
  312. package/lib/ProductGallery.js.map +1 -1
  313. package/lib/ProductGalleryContent.d.ts +14 -0
  314. package/lib/ProductGalleryContent.js +2 -0
  315. package/lib/ProductGalleryContent.js.map +1 -0
  316. package/lib/ProductTile.d.ts +1 -5
  317. package/lib/ProductTile.js.map +1 -1
  318. package/lib/ProductTileContent.d.ts +5 -0
  319. package/lib/ProductTileContent.js +2 -0
  320. package/lib/ProductTileContent.js.map +1 -0
  321. package/lib/PromoTile.d.ts +1 -4
  322. package/lib/PromoTile.js.map +1 -1
  323. package/lib/PromoTileContent.d.ts +4 -0
  324. package/lib/PromoTileContent.js +2 -0
  325. package/lib/PromoTileContent.js.map +1 -0
  326. package/lib/StepsBlock.d.ts +1 -10
  327. package/lib/StepsBlock.js.map +1 -1
  328. package/lib/StepsBlockContent.d.ts +10 -0
  329. package/lib/StepsBlockContent.js +2 -0
  330. package/lib/StepsBlockContent.js.map +1 -0
  331. package/lib/TextBlock.d.ts +2 -11
  332. package/lib/TextBlock.js +4 -4
  333. package/lib/TextBlock.js.map +1 -1
  334. package/lib/TextBlockContent.d.ts +10 -0
  335. package/lib/TextBlockContent.js +2 -0
  336. package/lib/TextBlockContent.js.map +1 -0
  337. package/lib/Tile.d.ts +2 -2
  338. package/lib/Tile.js.map +1 -1
  339. package/lib/TileContent.d.ts +2 -0
  340. package/lib/TileContent.js +2 -0
  341. package/lib/TileContent.js.map +1 -0
  342. package/lib/common.css +1 -1
  343. package/lib/content-page-repository/transformContentPage.js.map +1 -1
  344. package/lib/content-page-repository/transformPicture.d.ts +1 -1
  345. package/lib/index.d.ts +4 -3
  346. package/lib/index.js.map +1 -1
  347. package/lib/mergeTopItems.d.ts +2 -2
  348. package/lib/mergeTopItems.js.map +1 -1
  349. package/lib/model/BlockVersion.d.ts +1 -0
  350. package/lib/model/BlockVersion.js +2 -0
  351. package/lib/model/BlockVersion.js.map +1 -0
  352. package/lib/model/ButtonVersion.d.ts +1 -0
  353. package/lib/model/ButtonVersion.js +2 -0
  354. package/lib/model/ButtonVersion.js.map +1 -0
  355. package/lib/model/GalleryVersion.d.ts +1 -0
  356. package/lib/model/GalleryVersion.js +2 -0
  357. package/lib/model/GalleryVersion.js.map +1 -0
  358. package/lib/model/LinkContent.d.ts +5 -0
  359. package/lib/model/LinkContent.js +2 -0
  360. package/lib/model/LinkContent.js.map +1 -0
  361. package/lib/model/Picture.d.ts +17 -0
  362. package/lib/model/Picture.js +2 -0
  363. package/lib/model/Picture.js.map +1 -0
  364. package/lib/model/SitemapContent.d.ts +7 -0
  365. package/lib/model/SitemapContent.js +2 -0
  366. package/lib/model/SitemapContent.js.map +1 -0
  367. package/lib/types.d.ts +2 -32
  368. package/lib/ui-kit/ArrowButton.d.ts +2 -6
  369. package/lib/ui-kit/ArrowButton.js +18 -4
  370. package/lib/ui-kit/ArrowButton.js.map +1 -1
  371. package/lib/ui-kit/Breadcrumb.d.ts +1 -1
  372. package/lib/ui-kit/Button.d.ts +2 -8
  373. package/lib/ui-kit/Button.js +11 -5
  374. package/lib/ui-kit/Button.js.map +1 -1
  375. package/lib/ui-kit/ButtonProps.d.ts +21 -0
  376. package/lib/ui-kit/ButtonProps.js +2 -0
  377. package/lib/ui-kit/ButtonProps.js.map +1 -0
  378. package/lib/ui-kit/Icon.d.ts +1 -10
  379. package/lib/ui-kit/Icon.js.map +1 -1
  380. package/lib/ui-kit/IconProps.d.ts +32 -0
  381. package/lib/ui-kit/IconProps.js +24 -0
  382. package/lib/ui-kit/IconProps.js.map +1 -0
  383. package/lib/{Img.d.ts → ui-kit/Img.d.ts} +1 -1
  384. package/lib/{Img.js → ui-kit/Img.js} +0 -0
  385. package/lib/ui-kit/Img.js.map +1 -0
  386. package/lib/ui-kit/SVG.d.ts +2 -0
  387. package/lib/ui-kit/SVG.js +2 -2
  388. package/lib/ui-kit/SVG.js.map +1 -1
  389. package/lib/ui-kit/Title.d.ts +1 -10
  390. package/lib/ui-kit/Title.js +1 -7
  391. package/lib/ui-kit/Title.js.map +1 -1
  392. package/lib/ui-kit/TitleProps.d.ts +10 -0
  393. package/lib/ui-kit/TitleProps.js +8 -0
  394. package/lib/ui-kit/TitleProps.js.map +1 -0
  395. package/lib/ui-kit/TopItem.d.ts +1 -1
  396. package/lib/useLink.d.ts +5 -2
  397. package/lib/useLink.js.map +1 -1
  398. package/lib/useSitemap.d.ts +1 -1
  399. package/package.json +5 -2
  400. package/src/BaseTile.tsx +21 -17
  401. package/src/BaseTileContent.ts +14 -0
  402. package/src/BenefitsBlock.tsx +2 -12
  403. package/src/BenefitsBlockContent.ts +12 -0
  404. package/src/BlockContent.ts +32 -0
  405. package/src/Blocks.ts +16 -30
  406. package/src/ComparisonTable/ComparisonTable.fixture.tsx +265 -0
  407. package/src/ComparisonTable/ComparisonTable.tsx +126 -0
  408. package/src/ComparisonTable/ComparisonTableContent.ts +43 -0
  409. package/src/ComparisonTable/HeaderCell.tsx +50 -0
  410. package/src/ComparisonTable/TableCarouselContainer.tsx +19 -0
  411. package/src/ComparisonTable/TableCell.tsx +43 -0
  412. package/src/ComparisonTable/TableRow.tsx +44 -0
  413. package/src/ComparisonTable/TableRowContainer.tsx +7 -0
  414. package/src/ComparisonTable/constants.ts +6 -0
  415. package/src/ComparisonTable/index.ts +3 -0
  416. package/src/ContentPage.page.json +463 -1
  417. package/src/ContentPage.tsx +1 -1
  418. package/src/ExchangeRateTile.tsx +3 -5
  419. package/src/ExchangeRateTileContent.ts +3 -0
  420. package/src/Footer/Contacts.tsx +3 -1
  421. package/src/Footer/Footer.mobile.tsx +1 -1
  422. package/src/Footer/Footer.tsx +3 -10
  423. package/src/Footer/FooterContent.ts +15 -0
  424. package/src/Footer/FooterLink.ts +1 -1
  425. package/src/Footer/HorizontalNavigation.tsx +2 -2
  426. package/src/Footer/Sitemap.tsx +3 -2
  427. package/src/Footer/SocialMedia.tsx +13 -7
  428. package/src/Footer/TextInformation.tsx +1 -1
  429. package/src/Gallery.fixture.tsx +1 -1
  430. package/src/Gallery.mobile.tsx +3 -2
  431. package/src/Gallery.tsx +4 -133
  432. package/src/GalleryContent.ts +15 -0
  433. package/src/GalleryInner.tsx +135 -0
  434. package/src/Header/HeaderContent.ts +2 -3
  435. package/src/Header/isSubItemActive.ts +1 -1
  436. package/src/Header/isTopItemActive.ts +1 -1
  437. package/src/MiniGallery.fixture.tsx +90 -0
  438. package/src/MiniGallery.tsx +10 -0
  439. package/src/MobileAppTile.tsx +1 -11
  440. package/src/MobileAppTileContent.ts +11 -0
  441. package/src/MobileBlocks.ts +1 -1
  442. package/src/Placeholder.tsx +1 -4
  443. package/src/PlaceholderContent.ts +3 -0
  444. package/src/ProductBlock.fixture.tsx +1 -1
  445. package/src/ProductBlock.mobile.tsx +1 -1
  446. package/src/ProductBlock.tsx +3 -5
  447. package/src/ProductBlockContent.ts +6 -0
  448. package/src/ProductBlockInner.tsx +5 -9
  449. package/src/ProductBlockInnerContent.ts +6 -0
  450. package/src/ProductGallery.fixture.tsx +1 -1
  451. package/src/ProductGallery.tsx +2 -16
  452. package/src/ProductGalleryContent.ts +16 -0
  453. package/src/ProductTile.fixture.tsx +1 -1
  454. package/src/ProductTile.tsx +3 -7
  455. package/src/ProductTileContent.ts +6 -0
  456. package/src/PromoTile.tsx +1 -5
  457. package/src/PromoTileContent.ts +5 -0
  458. package/src/StepsBlock.tsx +2 -12
  459. package/src/StepsBlockContent.ts +12 -0
  460. package/src/TextBlock.fixture.tsx +1 -1
  461. package/src/TextBlock.tsx +9 -16
  462. package/src/TextBlockContent.ts +12 -0
  463. package/src/Tile.fixture.tsx +1 -1
  464. package/src/Tile.tsx +4 -3
  465. package/src/TileContent.ts +3 -0
  466. package/src/common.css +6 -0
  467. package/src/content-page-repository/transformContentPage.ts +2 -1
  468. package/src/content-page-repository/transformPicture.ts +1 -1
  469. package/src/icons/AppleIcon.svg +1 -13
  470. package/src/icons/GlassIcon.svg +1 -0
  471. package/src/icons/PlayMarketIcon.svg +1 -6
  472. package/src/index.ts +4 -11
  473. package/src/mergeTopItems.ts +5 -5
  474. package/src/model/BlockVersion.ts +1 -0
  475. package/src/model/ButtonVersion.ts +1 -0
  476. package/src/model/GalleryVersion.ts +1 -0
  477. package/src/model/LinkContent.ts +5 -0
  478. package/src/model/Picture.ts +19 -0
  479. package/src/model/SitemapContent.ts +9 -0
  480. package/src/types.ts +2 -56
  481. package/src/ui-kit/ArrowButton.tsx +29 -30
  482. package/src/ui-kit/Breadcrumb.tsx +1 -1
  483. package/src/ui-kit/Button.fixture.tsx +33 -5
  484. package/src/ui-kit/Button.tsx +42 -25
  485. package/src/ui-kit/ButtonProps.ts +24 -0
  486. package/src/ui-kit/Icon.fixture.tsx +22 -0
  487. package/src/ui-kit/Icon.tsx +1 -32
  488. package/src/ui-kit/IconProps.ts +34 -0
  489. package/src/{Img.tsx → ui-kit/Img.tsx} +1 -1
  490. package/src/ui-kit/SVG.tsx +11 -2
  491. package/src/ui-kit/Title.tsx +1 -13
  492. package/src/ui-kit/TitleProps.ts +12 -0
  493. package/src/ui-kit/TopItem.tsx +1 -1
  494. package/src/useLink.ts +2 -2
  495. package/src/useSitemap.ts +1 -1
  496. package/dist/Footer/index.d.ts +0 -2
  497. package/dist/Footer/index.js +0 -5
  498. package/dist/Footer/index.js.map +0 -1
  499. package/dist/Header/index.d.ts +0 -3
  500. package/dist/Header/index.js +0 -5
  501. package/dist/Header/index.js.map +0 -1
  502. package/dist/Img.js.map +0 -1
  503. package/dist/ui-kit/IconButton.d.ts +0 -7
  504. package/dist/ui-kit/IconButton.js +0 -10
  505. package/dist/ui-kit/IconButton.js.map +0 -1
  506. package/lib/Footer/index.d.ts +0 -2
  507. package/lib/Footer/index.js +0 -2
  508. package/lib/Footer/index.js.map +0 -1
  509. package/lib/Header/index.d.ts +0 -3
  510. package/lib/Header/index.js +0 -2
  511. package/lib/Header/index.js.map +0 -1
  512. package/lib/Img.js.map +0 -1
  513. package/lib/ui-kit/IconButton.d.ts +0 -7
  514. package/lib/ui-kit/IconButton.js +0 -8
  515. package/lib/ui-kit/IconButton.js.map +0 -1
  516. package/src/Footer/index.ts +0 -2
  517. package/src/Header/index.ts +0 -3
  518. package/src/ui-kit/IconButton.tsx +0 -27
@@ -239,13 +239,6 @@
239
239
  return (jsxs("div", { className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className || ''}`, children: [jsx(LikeButton, { onClick: likeService.like, ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: likeService.dislike, className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
240
240
  });
241
241
 
242
- const Img = JSX(({ className, image }) => (jsxs("picture", { className: `${className || ''}`, children: [image.sources?.length
243
- ? image.sources.map(({ src, format }, index) => (jsx("source", { srcSet: src, type: formatToMimeType(format) }, `${index}_${src}`)))
244
- : null, jsx("img", { src: image.src, alt: image.alt || image.title, title: image.title, ...image?.size })] })));
245
- function formatToMimeType(format) {
246
- return format ? `image/${String(format)}` : undefined;
247
- }
248
-
249
242
  const listStyleMap = {
250
243
  primary: 'bg-primary-main',
251
244
  secondary: 'bg-white',
@@ -266,19 +259,28 @@
266
259
  primary: 'bg-secondary-dark text-secondary-text',
267
260
  secondary: 'bg-secondary-light text-secondary-text',
268
261
  };
269
- const styleButton = 'inline-block rounded-md px-8 py-2 text-center font-sans';
270
- const Button = JSX(({ className, text, href, target, onClick, children, disabled, version = 'primary', ariaLabel, }) => {
262
+ const styleButton = 'inline-block text-center font-sans select-none';
263
+ const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'none', ariaLabel, ...rest }) => {
264
+ const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded }));
271
265
  if (disabled) {
272
- return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `${styleButton} select-none ${buttonDisabledStyleMap[version]} ${className || ''}`, children: children ? (jsx("div", { children: children })) : (jsx("div", { className: "text-sm font-medium py-1.5", children: text })) }));
266
+ return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
273
267
  }
274
- return (jsx("a", { className: `${styleButton} no-underline ${buttonStyleMap[version]} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, children: children ? (jsx("div", { children: children })) : (jsx("div", { className: "text-sm font-medium py-1.5", children: text })) }));
268
+ return (jsx("a", { className: `${styleButton} cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
269
+ });
270
+ const ButtonInner = JSX(({ text, aboveText, appendLeft, rounded }) => {
271
+ const withoutText = !text && !aboveText && Boolean(appendLeft);
272
+ const buttonInnerClasses = `flex items-center justify-center ${withoutText ? 'h-12 w-12 min-h-12 min-w-12' : `px-8 gap-2 ${aboveText ? 'py-2' : 'py-[13px]'}`} ${rounded ? 'rounded-full' : ''}`;
273
+ return (jsxs("div", { className: buttonInnerClasses, children: [appendLeft ? appendLeft : null, !withoutText ? (jsxs("div", { children: [jsx("div", { className: "text-xxs text-left", children: aboveText }), jsx("div", { className: "text-sm font-medium text-left", children: text })] })) : null] }));
275
274
  });
276
275
 
277
276
  const Icon = JSX(({ className, name, alt = `Icon ${name}`, title = alt, ...imgProps }) => (jsx("img", { className: className, src: `${projectSettings.CDN || ''}icons/${name}.svg`, alt: alt, title: title, ...imgProps })));
278
277
 
279
- const IconButton = JSX((props) => {
280
- return (jsx(Button, { ...props, children: props.icon ? (jsxs("div", { className: "flex items-center", children: [jsx("div", { className: "mr-2", children: jsx(Icon, { name: props.icon, width: "24", height: "24" }) }), jsxs("div", { children: [jsx("div", { className: "text-xxs text-left", children: props.aboveText }), jsx("div", { className: "text-sm font-medium text-left", children: props.text })] })] })) : null }));
281
- });
278
+ const Img = JSX(({ className, image }) => (jsxs("picture", { className: `${className || ''}`, children: [image.sources?.length
279
+ ? image.sources.map(({ src, format }, index) => (jsx("source", { srcSet: src, type: formatToMimeType(format) }, `${index}_${src}`)))
280
+ : null, jsx("img", { src: image.src, alt: image.alt || image.title, title: image.title, ...image?.size })] })));
281
+ function formatToMimeType(format) {
282
+ return format ? `image/${String(format)}` : undefined;
283
+ }
282
284
 
283
285
  var SizeTableClass;
284
286
  (function (SizeTableClass) {
@@ -287,6 +289,7 @@
287
289
  SizeTableClass["M"] = "text-title-sm";
288
290
  SizeTableClass["S"] = "text-title-xs";
289
291
  })(SizeTableClass || (SizeTableClass = {}));
292
+
290
293
  const Title = JSX(({ size = 'L', className, children, ...rest }) => {
291
294
  const Tag = size === 'XL' ? 'h1' : 'h2';
292
295
  return (jsx(Tag, { className: getClasses(SizeTableClass[size], className), ...rest, children: children }));
@@ -366,7 +369,7 @@
366
369
  const BaseTile = JSX(({ className, context, title, titleSize, description, children, buttons, image, items, version = 'primary', }) => {
367
370
  const router = context.useRouter();
368
371
  const { handlerDecorator } = context;
369
- return (jsxs("div", { className: `font-sans flex flex-col grow h-full`, children: [title && (jsx(Title, { size: titleSize || getTitleSizeByClassName(className), className: TITLE_CLASSES, children: title })), jsxs("div", { className: "flex grow justify-between", children: [jsxs("div", { className: "flex flex-col justify-between items-start", children: [jsxs("div", { children: [description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mb-5", children: description })) : null, children, items?.length ? renderItems$2(items, version) : null] }), buttons?.length ? (jsx("div", { className: "flex mt-9 gap-3", children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null] }), image?.src && jsx(Img, { className: "mt-auto ml-7", image: image })] })] }));
372
+ return (jsxs("div", { className: `font-sans flex flex-col grow h-full`, children: [title && (jsx(Title, { size: titleSize || getTitleSizeByClassName(className), className: TITLE_CLASSES, children: title })), jsxs("div", { className: "flex grow justify-between", children: [jsxs("div", { className: "flex flex-col justify-between items-start", children: [jsxs("div", { children: [description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mb-5", children: description })) : null, children, items?.length ? renderItems$1(items, version) : null] }), buttons?.length ? (jsx("div", { className: "flex mt-9 gap-3", children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null] }), image?.src && jsx(Img, { className: "mt-auto ml-7", image: image })] })] }));
370
373
  });
371
374
  function getTitleSizeByClassName(className = '') {
372
375
  const colSpan = getColSpan(className);
@@ -380,11 +383,15 @@
380
383
  return 'L';
381
384
  }
382
385
  }
383
- function renderItems$2(items = [], version) {
386
+ function renderItems$1(items = [], version) {
384
387
  return (jsx("section", { className: "max-w-[600px]", role: "list", children: items.map((_, i) => (jsx(BlockItem, { className: i ? 'mt-2.5' : '', text: _, version: version }, String(i)))) }));
385
388
  }
386
- function renderButton(button, i) {
387
- return button?.text ? jsx(IconButton, { ...button }, String(i)) : null;
389
+ function renderButton({ icon, ...button }, i) {
390
+ if (!button?.text)
391
+ return;
392
+ if (icon)
393
+ return (jsx(Button, { appendLeft: jsx(Icon, { name: icon, width: "24", height: "24" }), ...button }, String(i)));
394
+ return jsx(Button, { ...button }, String(i));
388
395
  }
389
396
 
390
397
  const tileStyleMap = {
@@ -478,6 +485,7 @@
478
485
  {
479
486
  text: 'Все показатели',
480
487
  href: 'https://cbr.ru/currency_base/daily/',
488
+ version: 'secondary',
481
489
  },
482
490
  ];
483
491
  const ExchangeRateTile = JSX(({ className, context, title }) => {
@@ -496,8 +504,8 @@
496
504
  const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
497
505
  const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
498
506
 
499
- const SVG = JSX(({ className, viewBox, fill = 'none', paths, ...commonOptions }) => {
500
- return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, children: paths.map(({ d, fill, ...options }, i) => (jsx("path", { d: d, fill: fill || 'currentColor', ...commonOptions, ...options }, i))) }));
507
+ const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
508
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, width: width, height: height, children: paths.map(({ d, fill, ...options }, i) => (jsx("path", { d: d, fill: fill || 'currentColor', ...commonOptions, ...options }, i))) }));
501
509
  });
502
510
 
503
511
  const LOGO_PATHS = [
@@ -522,7 +530,7 @@
522
530
  const Contacts = JSX(({ className, items, hasButton, context }) => {
523
531
  const router = context.useRouter();
524
532
  const { handlerDecorator } = context;
525
- return (jsxs("div", { className: `flex flex-col ${className || ''}`, children: [items?.length ? items.map(renderContact) : null, hasButton ? (jsx(Button, { className: "my-4", ...useLink({ router, handlerDecorator }, {
533
+ return (jsxs("div", { className: `flex flex-col ${className || ''}`, children: [items?.length ? items.map(renderContact) : null, hasButton ? (jsx(Button, { version: "primary", className: "my-4", ...useLink({ router, handlerDecorator }, {
526
534
  text: 'Обратная связь',
527
535
  href: '/',
528
536
  target: '_blank',
@@ -544,6 +552,13 @@
544
552
  };
545
553
  const formatTel = (s) => s.replaceAll(/(\-|\s|\(|\)|\D+)/g, '');
546
554
 
555
+ const HorizontalNavigation = JSX(({ className, links, context }) => {
556
+ const router = context.useRouter();
557
+ const { handlerDecorator } = context;
558
+ return (jsx("div", { className: `${className || ''}`, children: links?.length ? (jsx("div", { className: "flex justify-between items-center gap-5 py-5 border-solid border-x-0 border-y border-y-main-divider", children: links.map((_, i) => (jsx(HorizontalNavigationLink, { index: i, ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null }));
559
+ });
560
+ const HorizontalNavigationLink = JSX(({ className, index, text, href, target, onClick }) => (jsx("a", { className: `font-sans font-normal text-sm text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${className || ''}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
561
+
547
562
  const cmp = (a) => (b) => a?.href === b?.href;
548
563
  const substitute = (items, substitution) => (items || []).map((_) => substitution?.find(cmp(_)) || _);
549
564
  const subtract = (minuend, subtrahend) => (minuend || []).filter((_) => !subtrahend?.find(cmp(_)));
@@ -590,15 +605,10 @@
590
605
  });
591
606
  const MediaButton = JSX(({ href }) => {
592
607
  const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
593
- return (jsx("a", { className: "flex items-center justify-center border-solid border border-main-divider rounded-full no-underline outline-none w-9 h-9", href: href, target: "_blank", rel: "noopener noreferrer", "aria-label": label, children: icon && jsx(Icon, { className: "block", name: icon }) /* TODO width & height */ }));
594
- });
595
-
596
- const HorizontalNavigation = JSX(({ className, links, context }) => {
597
- const router = context.useRouter();
598
- const { handlerDecorator } = context;
599
- return (jsx("div", { className: `${className || ''}`, children: links?.length ? (jsx("div", { className: "flex justify-between items-center gap-5 py-5 border-solid border-x-0 border-y border-y-main-divider", children: links.map((_, i) => (jsx(HorizontalNavigationLink, { index: i, ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null }));
608
+ if (!icon)
609
+ return null;
610
+ return (jsx(Button, { rounded: true, href: href, target: "_blank", rel: "noopener noreferrer", "aria-label": label, className: "border-solid border border-main-divider w-9 h-9 flex items-center justify-center hover:text-primary-main", appendLeft: jsx(Icon, { name: icon }) }));
600
611
  });
601
- const HorizontalNavigationLink = JSX(({ className, index, text, href, target, onClick }) => (jsx("a", { className: `font-sans font-normal text-sm text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${className || ''}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
602
612
 
603
613
  const TextInformation = JSX(({ className, links, context }) => {
604
614
  const router = context.useRouter();
@@ -613,6 +623,61 @@
613
623
  return (jsxs("footer", { className: `${className} px-9 py-10 bg-white`, children: [jsxs("div", { className: "flex items-stretch gap-32 pb-8 xl:gap-8", children: [jsx(Logo, { className: `${LEFT_COL_WIDTH_FULL_HD} ${LEFT_COL_WIDTH_SMALL_DESKTOP}` }), jsx(SearchBar, { context: context, className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-32 xl:gap-8", children: [jsx(Contacts, { className: `${LEFT_COL_WIDTH_FULL_HD} shrink-0 overflow-hidden ${LEFT_COL_WIDTH_SMALL_DESKTOP}`, items: contacts, context: context, hasButton: true }), jsx(Sitemap, { className: "pt-[3px]", context: context, items: topItems })] }), jsx(SocialMedia, { media: socialMedia, context: context }), jsx(HorizontalNavigation, { links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
614
624
  });
615
625
 
626
+ const ARROW_PATHS = [
627
+ {
628
+ d: 'm9 12 4-4-4-4',
629
+ stroke: 'currentColor',
630
+ strokeWidth: '2',
631
+ strokeLinecap: 'round',
632
+ fill: 'none',
633
+ },
634
+ {
635
+ d: 'M2 9a1 1 0 0 1 0-2v2Zm6-2a1 1 0 0 1 0 2V7ZM2 7h6v2H2V7Z',
636
+ },
637
+ ];
638
+ 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
639
+ ? 'bg-secondary-light text-secondary-text'
640
+ : 'bg-white text-primary-text hover:text-primary-main'} ${className || ''}`, disabled: disabled, ...rest, children: jsx(SVG, { paths: ARROW_PATHS, viewBox: "0 0 16 16", fill: "none", width: "16", height: "16" }) })));
641
+
642
+ const cardStyleMap = {
643
+ normal: 'min-w-[364px] w-[364px]',
644
+ mini: 'min-w-[260px] w-[260px]',
645
+ };
646
+ const cardWidthMap = {
647
+ normal: 380,
648
+ mini: 276,
649
+ };
650
+ const galleryLengthForScrollMap = {
651
+ normal: 3,
652
+ mini: 4,
653
+ };
654
+ const GalleryInner = JSX(({ title, description, context, cards = [], className, version = 'normal' }) => {
655
+ const [activeCardIndex, setActiveCardIndex] = context.useState(0);
656
+ function handleNextClick() {
657
+ setActiveCardIndex(activeCardIndex + 1);
658
+ }
659
+ function handlePrevClick() {
660
+ setActiveCardIndex(activeCardIndex - 1);
661
+ }
662
+ const isGalleryScrollAvailable = cards?.length > galleryLengthForScrollMap[version];
663
+ const showNextButton = isGalleryScrollAvailable &&
664
+ cards?.length - activeCardIndex > galleryLengthForScrollMap[version];
665
+ const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
666
+ return (jsxs("section", { className: `relative font-sans text-primary-text bg-white p-12 overflow-hidden ${className}`, children: [jsxs("div", { className: "flex flex-col items-center mb-8", children: [title ? jsx(Title, { className: "font-medium m-0 text-center", children: title }) : null, description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mt-3", children: description })) : null] }), jsx("div", {
667
+ // Need to place all cards at the center if count of cards less than 4
668
+ className: `flex ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`,
669
+ // All cards has same width
670
+ style: { transform: `translateX(-${activeCardIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard$1(card, i, version)) }), showPrevButton && (jsx(ArrowButton, { className: "absolute top-1/2 left-8 rotate-180", onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E" })), showNextButton && (jsx(ArrowButton, { className: "absolute top-1/2 right-1 z-10", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E" })), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })] }));
671
+ });
672
+ function renderCard$1(card, i, version) {
673
+ return (jsxs("div", { className: `box-border border-solid border rounded-md border-main-divider p-7 mx-2 flex flex-col justify-between items-stretch ${cardStyleMap[version]} w-full`, role: "listitem", children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: card.image }) })) : null, card.title ? (jsx("h4", { className: `font-medium text-xl m-0 ${!card.description && !card.items?.length ? 'text-center' : ''}`, children: card.title })) : null, card.description ? (jsx("div", { className: "font-normal text-sm text-secondary-text mt-2", children: card.description })) : null, card.items?.length ? (jsx("section", { className: "max-w-[308px] mt-2", role: "list", children: card.items.map(renderItem) })) : null] }), card.href ? (jsx(Button, { className: "mt-6", text: "\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435", version: "secondary", href: card.href })) : null] }, String(i)));
674
+ }
675
+ function renderItem(item, i) {
676
+ return (jsx(BlockItem, { children: jsx("span", { className: "text-sm text-secondary-text", children: item }) }, String(i)));
677
+ }
678
+
679
+ const Gallery$1 = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
680
+
616
681
  const HeaderItem = JSX(({ className, text, href, target, active, onClick, children }) => {
617
682
  const textStyle = active ? 'text-primary-main' : 'text-primary-text hover:text-primary-main';
618
683
  return (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className || ''}`, href: href, target: target, onClick: onClick, children: [jsx("span", { className: `font-sans font-normal text-base ${textStyle}`, children: text || children }), active ? (jsx("div", { className: "absolute left-0 -bottom-2 w-full h-[2px] bg-primary-main" })) : null] }));
@@ -654,6 +719,8 @@
654
719
  return (jsxs("header", { className: `pt-5 pb-8 px-20 bg-white ${className || ''}`, children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-8" }), topMenu, jsx(HeaderSecondaryMenu, { context: context, className: "ml-auto", defaultLocation: defaultLocation })] }), jsx("div", { className: "mt-5 h-[1px] bg-main-divider" }), jsx("nav", { className: "mt-5", children: subMenu })] }));
655
720
  });
656
721
 
722
+ const MiniGallery = JSX((props) => (jsx(GalleryInner, { ...props, version: "mini" })));
723
+
657
724
  const MobileAppTile = JSX(({ className, context, title = 'Мобильное приложение', qr, buttons = [] }) => {
658
725
  return (jsx(Tile, { className: className, context: context, title: title, buttons: buttons, children: jsxs("div", { className: "flex items-center", children: [qr?.src && qr?.href && (jsx("a", { href: qr.href, target: "_blank", children: jsx("img", { src: qr.src, alt: title, title: title, width: "164", height: "164", className: "w-[90px] h-[90px] min-w-[90px] min-h-[90px] bg-secondary-light" }) })), jsx("span", { className: "font-normal text-sm 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" })] }) }));
659
726
  });
@@ -661,10 +728,10 @@
661
728
  const ProductBlockInner = JSX(({ className, context, title, titleSize, description, benefits, buttons, image, items }) => {
662
729
  return (jsxs("div", { className: `flex grow justify-between items-stretch ${className || ''}`, children: [jsxs("div", { className: 'flex flex-col', children: [title && (
663
730
  /* TODO Why <Title> is duplicated here? */
664
- jsx(Title, { size: titleSize || 'XL', className: "font-medium m-0 mb-4 whitespace-pre-wrap max-w-[600px]", children: title })), jsx(BaseTile, { context: context, description: description, items: items, buttons: buttons, children: benefits?.length ? (jsx("div", { className: "flex gap-6 mt-6 mb-3.5", children: benefits.map(renderBenefit) })) : null })] }), image?.src && jsx(Img, { className: "mt-auto", image: image })] }));
731
+ jsx(Title, { size: titleSize || 'XL', className: "font-medium m-0 mb-4 whitespace-pre-wrap max-w-[600px] text-primary-text", children: title })), jsx(BaseTile, { context: context, description: description, items: items, buttons: buttons, children: benefits?.length ? (jsx("div", { className: "flex gap-6 mt-6 mb-3.5", children: benefits.map(renderBenefit) })) : null })] }), image?.src && jsx(Img, { className: "mt-auto", image: image })] }));
665
732
  });
666
733
  function renderBenefit(benefit, i) {
667
- return (jsxs("div", { className: "flex gap-4 items-center", children: [benefit.icon && (jsx(Icon, { className: "w-[50px] h-[50px] min-w-[50px] min-h-[50px] bg-main rounded-full p-[10px] box-border", name: benefit.icon, width: "24", height: "24" })), jsxs("div", { className: "flex gap-1 flex-col h-full", children: [jsx("h4", { className: "font-medium text-xl m-0", children: benefit.label }), benefit.description && (jsx("div", { className: "font-normal text-sm text-secondary-text", children: benefit.description }))] })] }, String(i)));
734
+ return (jsxs("div", { className: "flex gap-4 items-center", children: [benefit.icon && (jsx(Icon, { className: "w-[50px] h-[50px] min-w-[50px] min-h-[50px] bg-main rounded-full p-[10px] box-border", name: benefit.icon, width: "24", height: "24" })), jsxs("div", { className: "flex gap-1 flex-col h-full", children: [jsx("h4", { className: "font-medium text-primary-text text-xl m-0", children: benefit.label }), benefit.description && (jsx("div", { className: "font-normal text-sm text-secondary-text", children: benefit.description }))] })] }, String(i)));
668
735
  }
669
736
 
670
737
  const Breadcrumb = JSX(({ text, href, target, onClick, className, children }) => {
@@ -709,16 +776,6 @@
709
776
  return (jsxs("button", { type: "button", onClick: onClick, className: `group relative overflow-hidden border-0 bg-inherit cursor-pointer text-left px-0 py-4 grow basis-0`, children: [jsxs("div", { className: "border-0 border-r border-solid border-main-divider px-6", children: [jsx("div", { className: `text-sm font-medium group-hover:text-primary-text ${btnTitleClassName}`, children: slide?.title }), jsx("div", { className: "text-xs text-secondary-text", children: slide.desc })] }), jsx("div", { className: `absolute bottom-0 left-0 w-full h-[3px] bg-primary-main -translate-x-full ${progressBarClassName}`, style: { animationDuration: `${duration}s` } })] }, String(i)));
710
777
  }
711
778
 
712
- const StepsBlock = JSX(({ className, title, steps }) => {
713
- return (jsxs("section", { className: `font-sans text-primary-text bg-white px-12 py-12 flex flex-col items-center ${className || ''}`, children: [jsx(Title, { className: "font-medium m-0 max-w-[47rem] text-center", children: title }), steps?.length ? (jsxs("div", { children: [jsx("div", { className: "flex mt-9 items-center px-[88px]", children: joinList(jsx("div", { className: "h-0.5 w-full bg-secondary-light" }))(steps.map((step, i) => renderStepIcon(step, i))) }), jsx("div", { className: "flex mt-9 justify-between gap-x-24", children: steps.map(renderStepTitle) })] })) : null] }));
714
- });
715
- const renderStepIcon = (step, i) => {
716
- 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 && jsx(Icon, { name: step.icon, width: "48", height: "48" })) || (jsx("span", { className: "font-medium text-title-sm text-secondary-text", children: i + 1 })) }) }, String(i)));
717
- };
718
- const renderStepTitle = (step, i) => {
719
- return (jsx("div", { className: "flex flex-col items-center text-center relative w-[276px]", children: jsxs("div", { className: "max-w-min", children: [jsx("h5", { className: "font-medium text-xl m-0 mt-4 whitespace-nowrap px-3", children: step.label }), step.description && (jsx("div", { className: "font-normal text-sm text-secondary-text mt-2", children: step.description }))] }) }, String(i)));
720
- };
721
-
722
779
  const ProductTile = JSX((props) => {
723
780
  const { benefits, version } = props;
724
781
  return (jsx(Tile, { ...props, children: jsxs("div", { className: "flex mt-5 mb-1", children: [benefits?.length ? (jsx("div", { className: "mr-8", children: benefits.map(renderBenefitDescription) })) : null, benefits?.length ? (jsx("div", { className: "pt-1", children: benefits.map((_, i) => renderBenefitLabel(_, i, version)) })) : null] }) }));
@@ -747,11 +804,21 @@
747
804
  return dateObj.toLocaleString('ru-RU', dateFormat).replace('г.', '');
748
805
  }
749
806
 
807
+ const StepsBlock = JSX(({ className, title, steps }) => {
808
+ return (jsxs("section", { className: `font-sans text-primary-text bg-white px-12 py-12 flex flex-col items-center ${className || ''}`, children: [jsx(Title, { className: "font-medium m-0 max-w-[47rem] text-center", children: title }), steps?.length ? (jsxs("div", { children: [jsx("div", { className: "flex mt-9 items-center px-[88px]", children: joinList(jsx("div", { className: "h-0.5 w-full bg-secondary-light" }))(steps.map((step, i) => renderStepIcon(step, i))) }), jsx("div", { className: "flex mt-9 justify-between gap-x-24", children: steps.map(renderStepTitle) })] })) : null] }));
809
+ });
810
+ const renderStepIcon = (step, i) => {
811
+ 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 && jsx(Icon, { name: step.icon, width: "48", height: "48" })) || (jsx("span", { className: "font-medium text-title-sm text-secondary-text", children: i + 1 })) }) }, String(i)));
812
+ };
813
+ const renderStepTitle = (step, i) => {
814
+ return (jsx("div", { className: "flex flex-col items-center text-center relative w-[276px]", children: jsxs("div", { className: "max-w-min", children: [jsx("h5", { className: "font-medium text-xl m-0 mt-4 whitespace-nowrap px-3", children: step.label }), step.description && (jsx("div", { className: "font-normal text-sm text-secondary-text mt-2", children: step.description }))] }) }, String(i)));
815
+ };
816
+
750
817
  const textBlockStyleMaps = {
751
818
  primary: {
752
819
  background: 'bg-white',
753
820
  icon: 'bg-primary-main text-white',
754
- title: 'text-base',
821
+ title: 'text-primary-text',
755
822
  description: 'text-secondary-text',
756
823
  },
757
824
  secondary: {
@@ -763,13 +830,13 @@
763
830
  'secondary-light': {
764
831
  background: 'bg-primary-main/10',
765
832
  icon: 'bg-primary-main text-white',
766
- title: 'text-base',
833
+ title: 'text-primary-text',
767
834
  description: 'text-secondary-text',
768
835
  },
769
836
  };
770
837
  const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className }) => {
771
838
  const textBlockStyleMap = textBlockStyleMaps[blockVersion];
772
- return (jsxs("section", { className: `font-sans px-9 py-4 flex ${textBlockStyleMap.background} ${className || ''}`, children: [iconVersion && iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion && iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "py-0.5", children: [title && jsx("div", { className: `font-medium mb-1 ${textBlockStyleMap.title}`, children: title }), description && (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description }))] })] }));
839
+ return (jsxs("section", { className: `font-sans px-9 py-4 flex ${textBlockStyleMap.background} ${className || ''}`, children: [iconVersion && iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion && iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "py-0.5", children: [title && (jsx("div", { className: `font-medium text-base mb-1 ${textBlockStyleMap.title}`, children: title })), description && (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description }))] })] }));
773
840
  });
774
841
  function renderIcon(className) {
775
842
  return (jsx("div", { className: `pt-1.5 pr-4`, children: jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs ${className}`, children: "i" }) }));
@@ -778,37 +845,49 @@
778
845
  return image?.src ? jsx(Img, { className: "pt-0.5 pr-3", image: image }) : null;
779
846
  }
780
847
 
781
- const ArrowButton = JSX(({ className, onClick, ariaLabel }) => {
782
- return (jsx("button", { className: `${className} border-none no-underline w-12 h-12 rounded-3xl bg-white flex text-black hover:text-primary-main`, style: { boxShadow: '0px 4px 25px rgba(0, 0, 0, 0.07)' }, onClick: onClick, "aria-label": ariaLabel, children: jsxs("svg", { className: "m-auto", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M7 12L3 8L7 4", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }), jsx("path", { d: "M14 9C14.5523 9 15 8.55228 15 8C15 7.44772 14.5523 7 14 7L14 9ZM8 7C7.44772 7 7 7.44772 7 8C7 8.55229 7.44772 9 8 9L8 7ZM14 7L8 7L8 9L14 9L14 7Z", fill: "currentColor" })] }) }));
848
+ const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
849
+
850
+ const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
851
+ const BORDER_CLASSES = 'border-main-stroke border-solid border';
852
+ const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
853
+ const FIRST_CELL_CLASSES = 'w-[200px] mr-6';
854
+ const COLS_LENGTH_FOR_SCROLL = 2;
855
+ const COLUMN_WIDTH = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
856
+
857
+ const TableCarouselContainer = JSX(({ children, activeCardIndex }) => (jsx("div", { className: "flex flex-1 overflow-hidden", children: jsx("div", { className: "flex gap-4 duration-1000", style: { transform: `translateX(-${activeCardIndex * COLUMN_WIDTH}px)` }, children: children }) })));
858
+
859
+ 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-12 ${BORDER_CLASSES} ${GRADIENT}`, role: "columnheader", scope: "col", children: [icon && !image?.src && (jsx(Icon, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", name: icon, width: "63", height: "63" })), image?.src && jsx(Img, { className: "mb-4", image: image }), title && (jsx(Title, { size: "S", className: "font-medium m-0 text-center text-white", children: title })), link?.text && (jsx("div", { className: "mt-auto w-full", children: jsx(Button, { href: link.href, target: link.target, className: "mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active", children: jsx("div", { className: "text-xs py-[11px]", children: link.text }) }) }))] })));
860
+
861
+ const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
862
+ const cellWrapperClasses = `w-80 box-border flex flex-col ${BORDER_CLASSES} ${!isLastRow ? 'border-y-0' : 'border-t-0 rounded-b-md'} ${isFillGradient ? GRADIENT : ''}`;
863
+ const cellClasses = `mx-7 h-full ${DIVIDER_CLASSES} ${isFillGradient && isFirstRow ? 'border-t' : ''} ${!isLastRow ? 'border-solid' : ''}`;
864
+ return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map((item, i) => renderCellInner(item, i, isFillGradient)) }) }));
783
865
  });
866
+ const renderCellInner = ({ label, description }, i, isFillGradient) => (jsxs("div", { className: "first:pt-7 pt-6 last:pb-7", children: [label && (jsx("h5", { className: `text-xl font-medium m-0 ${isFillGradient ? 'text-white' : ''}`, children: label })), description && (jsx("div", { className: `text-sm opacity-80 ${isFillGradient ? 'text-white' : 'text-secondary-text'}`, children: description }))] }, String(i)));
867
+
868
+ const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? (jsx("div", { className: `text-sm py-7 ${DIVIDER_CLASSES} ${FIRST_CELL_CLASSES} ${!isLastRow ? 'border-solid' : ''}`, children: header.title })) : null, data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
784
869
 
785
- const CARD_WIDTH = 384;
786
- const GALLERY_LENGTH_FOR_SCROLL = 3;
787
- const Gallery$1 = JSX(({ title, description, context, cards = [], className }) => {
870
+ const ComparisonTable = JSX(({ className, context, title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, }) => {
871
+ const router = context.useRouter();
872
+ const { handlerDecorator } = context;
788
873
  const [activeCardIndex, setActiveCardIndex] = context.useState(0);
789
- function handleNextClick() {
790
- setActiveCardIndex(activeCardIndex + 1);
791
- }
792
- function handlePrevClick() {
793
- setActiveCardIndex(activeCardIndex - 1);
794
- }
795
- const isGalleryScrollAvailable = cards?.length > GALLERY_LENGTH_FOR_SCROLL;
796
- const showNextButton = isGalleryScrollAvailable && cards?.length - activeCardIndex > GALLERY_LENGTH_FOR_SCROLL;
797
- const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
798
- return (jsxs("section", { className: `relative font-sans text-primary-text bg-white p-12 overflow-hidden ${className}`, children: [jsxs("div", { className: "flex flex-col items-center mb-8", children: [jsx(Title, { className: "font-medium m-0 text-centers", children: title }), description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mt-3", children: description })) : null] }), jsx("div", {
799
- // Need to place all cards at the center if count of cards less than 4
800
- className: `flex ${cards?.length <= GALLERY_LENGTH_FOR_SCROLL ? 'justify-center' : ''} duration-1000`,
801
- // All cards has same width
802
- style: { transform: `translateX(-${activeCardIndex * CARD_WIDTH}px)` }, role: "list", children: cards?.map(renderCard$1) }), showPrevButton && (jsx(ArrowButton, { className: "absolute top-1/2 left-8", onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E" })), showNextButton && (jsx(ArrowButton, { className: "absolute top-1/2 right-1 z-20 rotate-180", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E" })), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px]", style: {
803
- background: 'linear-gradient(270deg, #FFFFFF 34.89%, rgba(255, 255, 255, 0) 92.52%)',
804
- } })] }));
874
+ const [isShowAllRow, setIsShowAllRow] = context.useState(!visibleRowLength);
875
+ const colHeaders = columns?.map(({ header }) => header || {});
876
+ const colData = columns?.map(({ data }) => data) || [];
877
+ const rowData = rowHeaders
878
+ ?.map((header, i) => ({
879
+ header,
880
+ data: colData.map((col) => col?.[i] || [{}]),
881
+ }))
882
+ .slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
883
+ const nextClick = () => setActiveCardIndex(activeCardIndex + 1);
884
+ const prevClick = () => setActiveCardIndex(activeCardIndex - 1);
885
+ const showToggle = () => setIsShowAllRow(!isShowAllRow);
886
+ const isScrollAvailable = colData?.length && colData.length > COLS_LENGTH_FOR_SCROLL;
887
+ const showNextButton = isScrollAvailable && colData?.length - activeCardIndex > COLS_LENGTH_FOR_SCROLL;
888
+ const showPrevButton = isScrollAvailable && activeCardIndex > 0;
889
+ return (jsxs("section", { className: `bg-white font-sans py-[50px] pl-[50px] overflow-hidden text-primary-text relative ${className || ''}`, children: [jsx(Title, { className: "font-medium m-0 max-w-[47rem] text-center mb-9 mx-auto", children: title }), jsxs("div", { role: "table", children: [colHeaders?.length ? (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES, role: "columnheader", scope: "col" }), jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header, link: header.link && useLink({ router, handlerDecorator }, header.link) }, String(i)))) })] })) : null, rowData?.length ? (jsxs("div", { className: "relative", children: [rowData.map((row, i, { length }) => (jsx(TableRow, { row: row, isFirstRow: i === 0, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex, isColoredFirstColumn: isColoredFirstColumn }, String(i)))), isScrollAvailable ? (jsx("div", { children: jsxs("div", { className: "absolute top-7 right-7 z-10", children: [jsx(ArrowButton, { onClick: nextClick, disabled: !showNextButton, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E" }), jsx(ArrowButton, { className: "mt-4 rotate-180", onClick: prevClick, disabled: !showPrevButton, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E" })] }) })) : null] })) : null] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null, visibleRowLength ? (jsx("div", { className: "pr-[50px]", children: jsxs("div", { className: "flex w-full", children: [jsx("div", { className: FIRST_CELL_CLASSES }), jsx("button", { onClick: showToggle, 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 ? 'Показать все параметры' : 'Скрыть' }) })] }) })) : null] }));
805
890
  });
806
- function renderCard$1(card, key) {
807
- return (jsxs("div", { className: "box-border border-solid border rounded-md border-main-divider p-7 mx-2 flex flex-col justify-between items-stretch min-w-[364px] w-[364px] w-full", role: "listitem", children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: card.image }) })) : null, card.title ? (jsx("h4", { className: `font-medium text-xl m-0 ${!card.description && !card.items?.length ? 'text-center' : ''}`, children: card.title })) : null, card.description ? (jsx("div", { className: "font-normal text-sm text-secondary-text mt-2", children: card.description })) : null, card.items?.length ? renderItems$1(card.items) : null] }), card.href ? (jsx(Button, { className: "mt-6", text: "\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435", version: "secondary", href: card.href })) : null] }, key));
808
- }
809
- function renderItems$1(items = []) {
810
- return (jsx("section", { className: "max-w-[308px] mt-2", role: "list", children: items.map((item, i) => (jsx(BlockItem, { children: jsx("span", { className: "text-sm text-secondary-text", children: item }) }, String(i)))) }));
811
- }
812
891
 
813
892
  const Blocks = {
814
893
  Header,
@@ -825,6 +904,8 @@
825
904
  ExchangeRateTile,
826
905
  MobileAppTile,
827
906
  Gallery: Gallery$1,
907
+ MiniGallery,
908
+ ComparisonTable,
828
909
  };
829
910
 
830
911
  const Footer = JSX(({ className, context }) => (jsx("footer", { className: `${className} px-9 py-2 bg-white rounded-bl-3xl rounded-br-3xl`, children: jsx(TextInformation, { context: context }) })));