@redneckz/wildless-cms-uni-blocks 0.3.35 → 0.3.38

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 (352) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +151 -85
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/BlockContent.d.ts +2 -1
  5. package/dist/components/Blocks.d.ts +1 -0
  6. package/dist/components/Blocks.js +3 -1
  7. package/dist/components/Blocks.js.map +1 -1
  8. package/dist/components/ComparisonTable/HeaderCell.js +1 -1
  9. package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  10. package/dist/components/ComparisonTable/TableCell.js +1 -1
  11. package/dist/components/ContentPage/ContentPage.js +13 -3
  12. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  13. package/dist/components/CreditCalculator/renderButton.js +8 -1
  14. package/dist/components/CreditCalculator/renderButton.js.map +1 -1
  15. package/dist/components/Gallery/GalleryCardInner.js +5 -6
  16. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  17. package/dist/components/Gallery/GalleryContainer.js +2 -2
  18. package/dist/components/Gallery/GalleryContainer.js.map +1 -1
  19. package/dist/components/Gallery/GalleryInner.js +1 -1
  20. package/dist/components/GracePeriod/GracePeriod.d.ts +5 -0
  21. package/dist/components/GracePeriod/GracePeriod.js +21 -0
  22. package/dist/components/GracePeriod/GracePeriod.js.map +1 -0
  23. package/dist/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  24. package/dist/components/GracePeriod/GracePeriodContent.js +2 -0
  25. package/dist/components/GracePeriod/GracePeriodContent.js.map +1 -0
  26. package/dist/components/Header/Header.js +1 -1
  27. package/dist/components/Header/Header.js.map +1 -1
  28. package/dist/components/Header/HeaderSubMenu.js +8 -1
  29. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  30. package/dist/components/Header/HeaderSubMenuObserver.js +5 -4
  31. package/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
  32. package/dist/components/LinkDocs/LinkDocsList.d.ts +1 -1
  33. package/dist/components/LinkDocs/LinkDocsList.js +1 -1
  34. package/dist/components/LinkDocs/LinkDocsList.js.map +1 -1
  35. package/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
  36. package/dist/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  37. package/dist/components/MobileAppTile/MobileAppTile.js +1 -2
  38. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  39. package/dist/components/NavigatorTabs/NavigatorTabItem.js +4 -4
  40. package/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  41. package/dist/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  42. package/dist/components/NavigatorTabs/NavigatorTabs.js +11 -6
  43. package/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  44. package/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +3 -1
  45. package/dist/components/ProductBlock/renderBackwardButton.js +1 -1
  46. package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  47. package/dist/components/Recommendation/RecommendationCard.js +2 -1
  48. package/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  49. package/dist/components/Recommendation/RecommendationContent.d.ts +4 -0
  50. package/dist/components/StepsBlock/StepsBlock.js +6 -5
  51. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  52. package/dist/components/StepsBlock/StepsBlockContent.d.ts +3 -0
  53. package/dist/components/TariffsTable/TariffsTableCell.js +2 -1
  54. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  55. package/dist/components/TariffsTable/TariffsTableTileCell.js +2 -1
  56. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  57. package/dist/components/TariffsTable/utils/getButtonAriaLabel.d.ts +2 -0
  58. package/dist/components/TariffsTable/utils/getButtonAriaLabel.js +6 -0
  59. package/dist/components/TariffsTable/utils/getButtonAriaLabel.js.map +1 -0
  60. package/dist/components/Tile/Tile.js +1 -1
  61. package/dist/components/Tile/Tile.js.map +1 -1
  62. package/dist/hooks/useLink.d.ts +1 -1
  63. package/dist/hooks/useLink.js +1 -1
  64. package/dist/hooks/useLink.js.map +1 -1
  65. package/dist/ui-kit/Button/Button.js +6 -1
  66. package/dist/ui-kit/Button/Button.js.map +1 -1
  67. package/dist/ui-kit/Button/ButtonInner.js +1 -1
  68. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  69. package/dist/ui-kit/Heading/Heading.d.ts +2 -1
  70. package/dist/ui-kit/Heading/Heading.js +3 -3
  71. package/dist/ui-kit/Heading/Heading.js.map +1 -1
  72. package/dist/ui-kit/Heading/Heading.mobile.d.ts +2 -1
  73. package/dist/ui-kit/Heading/Heading.mobile.js +2 -2
  74. package/dist/ui-kit/Heading/Heading.mobile.js.map +1 -1
  75. package/dist/utils/changeHashOnScroll.d.ts +2 -0
  76. package/dist/utils/changeHashOnScroll.js +16 -0
  77. package/dist/utils/changeHashOnScroll.js.map +1 -0
  78. package/dist/utils/tableFunc.d.ts +2 -0
  79. package/dist/utils/tableFunc.js +8 -0
  80. package/dist/utils/tableFunc.js.map +1 -0
  81. package/lib/common.css +1 -1
  82. package/lib/components/BlockContent.d.ts +2 -1
  83. package/lib/components/Blocks.d.ts +1 -0
  84. package/lib/components/Blocks.js +3 -1
  85. package/lib/components/Blocks.js.map +1 -1
  86. package/lib/components/ComparisonTable/HeaderCell.js +1 -1
  87. package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  88. package/lib/components/ComparisonTable/TableCell.js +1 -1
  89. package/lib/components/ContentPage/ContentPage.js +13 -3
  90. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  91. package/lib/components/CreditCalculator/renderButton.js +8 -1
  92. package/lib/components/CreditCalculator/renderButton.js.map +1 -1
  93. package/lib/components/Gallery/GalleryCardInner.js +5 -6
  94. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  95. package/lib/components/Gallery/GalleryContainer.js +2 -2
  96. package/lib/components/Gallery/GalleryContainer.js.map +1 -1
  97. package/lib/components/Gallery/GalleryInner.js +1 -1
  98. package/lib/components/GracePeriod/GracePeriod.d.ts +5 -0
  99. package/lib/components/GracePeriod/GracePeriod.fixture.d.ts +6 -0
  100. package/lib/components/GracePeriod/GracePeriod.js +19 -0
  101. package/lib/components/GracePeriod/GracePeriod.js.map +1 -0
  102. package/lib/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  103. package/lib/components/GracePeriod/GracePeriodContent.js +2 -0
  104. package/lib/components/GracePeriod/GracePeriodContent.js.map +1 -0
  105. package/lib/components/Header/Header.js +1 -1
  106. package/lib/components/Header/Header.js.map +1 -1
  107. package/lib/components/Header/HeaderSubMenu.js +8 -1
  108. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  109. package/lib/components/Header/HeaderSubMenuObserver.js +5 -4
  110. package/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
  111. package/lib/components/LinkDocs/LinkDocsList.d.ts +1 -1
  112. package/lib/components/LinkDocs/LinkDocsList.js +1 -1
  113. package/lib/components/LinkDocs/LinkDocsList.js.map +1 -1
  114. package/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
  115. package/lib/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  116. package/lib/components/MobileAppTile/MobileAppTile.js +1 -2
  117. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  118. package/lib/components/NavigatorTabs/NavigatorTabItem.js +4 -4
  119. package/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  120. package/lib/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  121. package/lib/components/NavigatorTabs/NavigatorTabs.js +12 -7
  122. package/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  123. package/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +3 -1
  124. package/lib/components/ProductBlock/renderBackwardButton.js +1 -1
  125. package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  126. package/lib/components/Recommendation/RecommendationCard.js +2 -1
  127. package/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  128. package/lib/components/Recommendation/RecommendationContent.d.ts +4 -0
  129. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +2 -0
  130. package/lib/components/StepsBlock/StepsBlock.js +6 -5
  131. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  132. package/lib/components/StepsBlock/StepsBlockContent.d.ts +3 -0
  133. package/lib/components/TariffsTable/TariffsTableCell.js +2 -1
  134. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  135. package/lib/components/TariffsTable/TariffsTableTileCell.js +2 -1
  136. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  137. package/lib/components/TariffsTable/utils/getButtonAriaLabel.d.ts +2 -0
  138. package/lib/components/TariffsTable/utils/getButtonAriaLabel.js +3 -0
  139. package/lib/components/TariffsTable/utils/getButtonAriaLabel.js.map +1 -0
  140. package/lib/components/Tile/Tile.js +1 -1
  141. package/lib/components/Tile/Tile.js.map +1 -1
  142. package/lib/hooks/useLink.d.ts +1 -1
  143. package/lib/hooks/useLink.js +1 -1
  144. package/lib/hooks/useLink.js.map +1 -1
  145. package/lib/ui-kit/Button/Button.js +6 -1
  146. package/lib/ui-kit/Button/Button.js.map +1 -1
  147. package/lib/ui-kit/Button/ButtonInner.js +1 -1
  148. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  149. package/lib/ui-kit/Heading/Heading.d.ts +2 -1
  150. package/lib/ui-kit/Heading/Heading.js +3 -3
  151. package/lib/ui-kit/Heading/Heading.js.map +1 -1
  152. package/lib/ui-kit/Heading/Heading.mobile.d.ts +2 -1
  153. package/lib/ui-kit/Heading/Heading.mobile.js +2 -2
  154. package/lib/ui-kit/Heading/Heading.mobile.js.map +1 -1
  155. package/lib/utils/changeHashOnScroll.d.ts +2 -0
  156. package/lib/utils/changeHashOnScroll.js +13 -0
  157. package/lib/utils/changeHashOnScroll.js.map +1 -0
  158. package/lib/utils/tableFunc.d.ts +2 -0
  159. package/lib/utils/tableFunc.js +5 -0
  160. package/lib/utils/tableFunc.js.map +1 -0
  161. package/mobile/bundle/bundle.umd.js +33 -8
  162. package/mobile/bundle/bundle.umd.min.js +1 -1
  163. package/mobile/dist/components/BlockContent.d.ts +2 -1
  164. package/mobile/dist/components/ContentPage/ContentPage.js +13 -3
  165. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  166. package/mobile/dist/components/CreditCalculator/renderButton.js +8 -1
  167. package/mobile/dist/components/CreditCalculator/renderButton.js.map +1 -1
  168. package/mobile/dist/components/Gallery/GalleryCardInner.js +5 -6
  169. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  170. package/mobile/dist/components/Gallery/GalleryContainer.js +2 -2
  171. package/mobile/dist/components/Gallery/GalleryContainer.js.map +1 -1
  172. package/mobile/dist/components/Gallery/GalleryInner.js +1 -1
  173. package/mobile/dist/components/GracePeriod/GracePeriod.d.ts +5 -0
  174. package/mobile/dist/components/GracePeriod/GracePeriod.js +21 -0
  175. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -0
  176. package/mobile/dist/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  177. package/mobile/dist/components/GracePeriod/GracePeriodContent.js +2 -0
  178. package/mobile/dist/components/GracePeriod/GracePeriodContent.js.map +1 -0
  179. package/mobile/dist/components/Header/HeaderSubMenu.js +8 -1
  180. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  181. package/mobile/dist/components/Header/HeaderSubMenuObserver.js +5 -4
  182. package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
  183. package/mobile/dist/components/LinkDocs/LinkDocsList.d.ts +1 -1
  184. package/mobile/dist/components/LinkDocs/LinkDocsList.js +1 -1
  185. package/mobile/dist/components/LinkDocs/LinkDocsList.js.map +1 -1
  186. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js +4 -4
  187. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  188. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  189. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js +11 -6
  190. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  191. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +3 -1
  192. package/mobile/dist/components/ProductBlock/renderBackwardButton.js +1 -1
  193. package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  194. package/mobile/dist/components/Recommendation/RecommendationCard.js +2 -1
  195. package/mobile/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  196. package/mobile/dist/components/Recommendation/RecommendationContent.d.ts +4 -0
  197. package/mobile/dist/components/StepsBlock/StepsBlockContent.d.ts +3 -0
  198. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +2 -1
  199. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  200. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +2 -1
  201. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  202. package/mobile/dist/components/TariffsTable/utils/getButtonAriaLabel.d.ts +2 -0
  203. package/mobile/dist/components/TariffsTable/utils/getButtonAriaLabel.js +6 -0
  204. package/mobile/dist/components/TariffsTable/utils/getButtonAriaLabel.js.map +1 -0
  205. package/mobile/dist/components/Tile/Tile.js +1 -1
  206. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  207. package/mobile/dist/hooks/useLink.d.ts +1 -1
  208. package/mobile/dist/hooks/useLink.js +1 -1
  209. package/mobile/dist/hooks/useLink.js.map +1 -1
  210. package/mobile/dist/ui-kit/Button/ButtonInner.js +1 -1
  211. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  212. package/mobile/dist/ui-kit/Heading/Heading.d.ts +2 -1
  213. package/mobile/dist/ui-kit/Heading/Heading.js +2 -2
  214. package/mobile/dist/ui-kit/Heading/Heading.js.map +1 -1
  215. package/mobile/dist/utils/changeHashOnScroll.d.ts +2 -0
  216. package/mobile/dist/utils/changeHashOnScroll.js +16 -0
  217. package/mobile/dist/utils/changeHashOnScroll.js.map +1 -0
  218. package/mobile/dist/utils/tableFunc.d.ts +2 -0
  219. package/mobile/dist/utils/tableFunc.js +8 -0
  220. package/mobile/dist/utils/tableFunc.js.map +1 -0
  221. package/mobile/lib/components/BlockContent.d.ts +2 -1
  222. package/mobile/lib/components/ContentPage/ContentPage.js +13 -3
  223. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  224. package/mobile/lib/components/CreditCalculator/renderButton.js +8 -1
  225. package/mobile/lib/components/CreditCalculator/renderButton.js.map +1 -1
  226. package/mobile/lib/components/Gallery/GalleryCardInner.js +5 -6
  227. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  228. package/mobile/lib/components/Gallery/GalleryContainer.js +2 -2
  229. package/mobile/lib/components/Gallery/GalleryContainer.js.map +1 -1
  230. package/mobile/lib/components/Gallery/GalleryInner.js +1 -1
  231. package/mobile/lib/components/GracePeriod/GracePeriod.d.ts +5 -0
  232. package/mobile/lib/components/GracePeriod/GracePeriod.js +19 -0
  233. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -0
  234. package/mobile/lib/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  235. package/mobile/lib/components/GracePeriod/GracePeriodContent.js +2 -0
  236. package/mobile/lib/components/GracePeriod/GracePeriodContent.js.map +1 -0
  237. package/mobile/lib/components/Header/HeaderSubMenu.js +8 -1
  238. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  239. package/mobile/lib/components/Header/HeaderSubMenuObserver.js +5 -4
  240. package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
  241. package/mobile/lib/components/LinkDocs/LinkDocsList.d.ts +1 -1
  242. package/mobile/lib/components/LinkDocs/LinkDocsList.js +1 -1
  243. package/mobile/lib/components/LinkDocs/LinkDocsList.js.map +1 -1
  244. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js +4 -4
  245. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  246. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  247. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js +12 -7
  248. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  249. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +3 -1
  250. package/mobile/lib/components/ProductBlock/renderBackwardButton.js +1 -1
  251. package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  252. package/mobile/lib/components/Recommendation/RecommendationCard.js +2 -1
  253. package/mobile/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  254. package/mobile/lib/components/Recommendation/RecommendationContent.d.ts +4 -0
  255. package/mobile/lib/components/StepsBlock/StepsBlockContent.d.ts +3 -0
  256. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +2 -1
  257. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  258. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +2 -1
  259. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  260. package/mobile/lib/components/TariffsTable/utils/getButtonAriaLabel.d.ts +2 -0
  261. package/mobile/lib/components/TariffsTable/utils/getButtonAriaLabel.js +3 -0
  262. package/mobile/lib/components/TariffsTable/utils/getButtonAriaLabel.js.map +1 -0
  263. package/mobile/lib/components/Tile/Tile.js +1 -1
  264. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  265. package/mobile/lib/hooks/useLink.d.ts +1 -1
  266. package/mobile/lib/hooks/useLink.js +1 -1
  267. package/mobile/lib/hooks/useLink.js.map +1 -1
  268. package/mobile/lib/ui-kit/Button/ButtonInner.js +1 -1
  269. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  270. package/mobile/lib/ui-kit/Heading/Heading.d.ts +2 -1
  271. package/mobile/lib/ui-kit/Heading/Heading.js +2 -2
  272. package/mobile/lib/ui-kit/Heading/Heading.js.map +1 -1
  273. package/mobile/lib/utils/changeHashOnScroll.d.ts +2 -0
  274. package/mobile/lib/utils/changeHashOnScroll.js +13 -0
  275. package/mobile/lib/utils/changeHashOnScroll.js.map +1 -0
  276. package/mobile/lib/utils/tableFunc.d.ts +2 -0
  277. package/mobile/lib/utils/tableFunc.js +5 -0
  278. package/mobile/lib/utils/tableFunc.js.map +1 -0
  279. package/mobile/src/components/BlockContent.ts +2 -0
  280. package/mobile/src/components/ContentPage/ContentPage.page.json +188 -234
  281. package/mobile/src/components/ContentPage/ContentPage.tsx +18 -2
  282. package/mobile/src/components/CreditCalculator/renderButton.tsx +11 -1
  283. package/mobile/src/components/Footer/FooterContent.ts +0 -1
  284. package/mobile/src/components/Gallery/GalleryCardInner.tsx +6 -7
  285. package/mobile/src/components/Gallery/GalleryContainer.tsx +2 -2
  286. package/mobile/src/components/Gallery/GalleryInner.tsx +1 -1
  287. package/mobile/src/components/GracePeriod/GracePeriod.example.json +90 -0
  288. package/mobile/src/components/GracePeriod/GracePeriod.tsx +70 -0
  289. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +27 -0
  290. package/mobile/src/components/Header/HeaderSubMenu.tsx +17 -2
  291. package/mobile/src/components/Header/HeaderSubMenuObserver.ts +6 -4
  292. package/mobile/src/components/LinkDocs/LinkDocsList.tsx +3 -3
  293. package/mobile/src/components/NavigatorTabs/NavigatorTabItem.tsx +7 -5
  294. package/mobile/src/components/NavigatorTabs/NavigatorTabs.example.json +3 -3
  295. package/mobile/src/components/NavigatorTabs/NavigatorTabs.tsx +17 -9
  296. package/mobile/src/components/NavigatorTabs/NavigatorTabsContent.ts +3 -1
  297. package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +1 -0
  298. package/mobile/src/components/Recommendation/RecommendationCard.tsx +2 -1
  299. package/mobile/src/components/Recommendation/RecommendationContent.ts +4 -0
  300. package/mobile/src/components/StepsBlock/StepsBlockContent.ts +3 -0
  301. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +2 -0
  302. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +2 -0
  303. package/mobile/src/components/TariffsTable/utils/getButtonAriaLabel.ts +5 -0
  304. package/mobile/src/components/Tile/Tile.tsx +1 -0
  305. package/mobile/src/hooks/useLink.ts +1 -1
  306. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -1
  307. package/mobile/src/ui-kit/Heading/Heading.tsx +5 -2
  308. package/mobile/src/utils/changeHashOnScroll.ts +15 -0
  309. package/mobile/src/utils/tableFunc.ts +8 -0
  310. package/package.json +1 -1
  311. package/src/components/BlockContent.ts +2 -0
  312. package/src/components/Blocks.ts +3 -1
  313. package/src/components/ComparisonTable/HeaderCell.tsx +1 -1
  314. package/src/components/ComparisonTable/TableCell.tsx +1 -1
  315. package/src/components/ContentPage/ContentPage.page.json +188 -234
  316. package/src/components/ContentPage/ContentPage.tsx +18 -2
  317. package/src/components/CreditCalculator/renderButton.tsx +11 -1
  318. package/src/components/Footer/FooterContent.ts +0 -1
  319. package/src/components/Gallery/GalleryCardInner.tsx +6 -7
  320. package/src/components/Gallery/GalleryContainer.tsx +2 -2
  321. package/src/components/Gallery/GalleryInner.tsx +1 -1
  322. package/src/components/GracePeriod/GracePeriod.example.json +90 -0
  323. package/src/components/GracePeriod/GracePeriod.fixture.tsx +109 -0
  324. package/src/components/GracePeriod/GracePeriod.tsx +70 -0
  325. package/src/components/GracePeriod/GracePeriodContent.ts +27 -0
  326. package/src/components/Header/Header.tsx +1 -1
  327. package/src/components/Header/HeaderSubMenu.tsx +17 -2
  328. package/src/components/Header/HeaderSubMenuObserver.ts +6 -4
  329. package/src/components/LinkDocs/LinkDocsList.tsx +3 -3
  330. package/src/components/LinkDocs/LinkDocsListItem.tsx +3 -3
  331. package/src/components/MobileAppTile/MobileAppTile.tsx +4 -5
  332. package/src/components/NavigatorTabs/NavigatorTabItem.tsx +7 -5
  333. package/src/components/NavigatorTabs/NavigatorTabs.example.json +3 -3
  334. package/src/components/NavigatorTabs/NavigatorTabs.tsx +17 -9
  335. package/src/components/NavigatorTabs/NavigatorTabsContent.ts +3 -1
  336. package/src/components/ProductBlock/renderBackwardButton.tsx +1 -0
  337. package/src/components/Recommendation/RecommendationCard.tsx +2 -1
  338. package/src/components/Recommendation/RecommendationContent.ts +4 -0
  339. package/src/components/StepsBlock/StepsBlock.fixture.tsx +59 -0
  340. package/src/components/StepsBlock/StepsBlock.tsx +34 -11
  341. package/src/components/StepsBlock/StepsBlockContent.ts +3 -0
  342. package/src/components/TariffsTable/TariffsTableCell.tsx +2 -0
  343. package/src/components/TariffsTable/TariffsTableTileCell.tsx +2 -0
  344. package/src/components/TariffsTable/utils/getButtonAriaLabel.ts +5 -0
  345. package/src/components/Tile/Tile.tsx +1 -0
  346. package/src/hooks/useLink.ts +1 -1
  347. package/src/ui-kit/Button/Button.tsx +20 -15
  348. package/src/ui-kit/Button/ButtonInner.tsx +1 -1
  349. package/src/ui-kit/Heading/Heading.mobile.tsx +5 -2
  350. package/src/ui-kit/Heading/Heading.tsx +6 -3
  351. package/src/utils/changeHashOnScroll.ts +15 -0
  352. package/src/utils/tableFunc.ts +8 -0
@@ -188,18 +188,18 @@
188
188
 
189
189
  const HEADING_STYLE_MAP = {
190
190
  h1: 'text-title-xl tracking-[-0.3px]',
191
- h2: 'text-title-lg',
191
+ h2: 'text-title',
192
192
  h3: 'text-title-sm',
193
193
  h4: 'text-title-xs',
194
194
  h5: 'text-title-2xs tracking-[0.2px]',
195
195
  h6: 'text-title-2xs tracking-[0.2px]',
196
196
  };
197
197
  const Heading = JSX((props) => {
198
- const { className = '', headingType, title } = props;
198
+ const { className = '', headingType, title, as } = props;
199
199
  if (!headingType) {
200
200
  return;
201
201
  }
202
- const Tag = headingType;
202
+ const Tag = as || headingType;
203
203
  return (jsx(Tag, { className: `font-sans m-0 ${HEADING_STYLE_MAP[headingType]} ${className}`, children: title }));
204
204
  });
205
205
 
@@ -485,10 +485,10 @@
485
485
  return index !== -1 ? href.substring(index + 1) : '';
486
486
  };
487
487
 
488
- const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full box-border ${className}`, iconClassName: "mr-2.5 min-w-6 min-h-6 text-primary-text", textClassName: "self-center", suffixClassName: "text-secondary-text group-hover:text-primary-main", doc: doc, icon: icon })));
488
+ const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full box-border ${className}`, iconClassName: "mr-3.5 min-w-6 min-h-6 text-primary-text", textClassName: "self-center font-light", suffixClassName: "text-secondary-text group-hover:text-primary-main", doc: doc, icon: icon })));
489
489
 
490
490
  const LinkDocsList = JSX(({ className, documents, columnsMode = 'double', icon }) => {
491
- return documents?.length ? (jsx("div", { className: className, role: "list", children: documents.map((doc, i) => (jsx("div", { className: columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : '', role: "listitem", children: jsx(LinkDocsListItem, { className: "group flex text-sm align-middle h-fit w-fit text-primary-text no-underline hover:text-primary-main", doc: doc, icon: icon }) }, String(i)))) })) : null;
491
+ return documents?.length ? (jsx("div", { className: className, role: "list", children: documents.map((doc, i) => (jsx("div", { className: columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : '', role: "listitem", children: jsx(LinkDocsListItem, { className: "group flex align-middle h-fit w-fit text-primary-text no-underline hover:text-primary-main", doc: doc, icon: icon }) }, String(i)))) })) : null;
492
492
  });
493
493
 
494
494
  const titleAlignStyleMap = {
@@ -572,7 +572,7 @@
572
572
  return {
573
573
  ...link,
574
574
  href,
575
- ariaLabel: link.text,
575
+ 'aria-label': link.text,
576
576
  onClick: handlerDecorator((ev) => {
577
577
  const isLocalHref = href && !isURL(href);
578
578
  const isLocalTarget = !link.target || link.target === '_self';
@@ -599,7 +599,7 @@
599
599
 
600
600
  const ButtonInner = JSX((props) => {
601
601
  const { text, aboveText, appendLeft } = props;
602
- return (jsxs("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? (jsxs("div", { children: [jsx("div", { className: "text-m-2xs font-light text-left", children: aboveText }), jsx("div", { className: "text-button-sm text-left", children: text })] })) : null] }));
602
+ return (jsxs("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? (jsxs("div", { children: [jsx("div", { className: "text-m-2xs font-light text-left", children: aboveText }), jsx("div", { className: "text-button text-left", children: text })] })) : null] }));
603
603
  });
604
604
  const getButtonStyle = (props) => {
605
605
  const { version, aboveText, rounded } = props;
@@ -631,7 +631,12 @@
631
631
  const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded }));
632
632
  return disabled ? (jsx(DisabledButton, { ...props, children: buttonInner })) : (jsx(RegularButton, { ...props, children: buttonInner }));
633
633
  });
634
- const RegularButton = JSX(({ className, ariaLabel, version = 'none', rounded, href, target, children, onClick, ...rest }) => (jsx("a", { className: `${buttonStyle} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: href ? 'link' : 'button', ...rest, children: children })));
634
+ const RegularButton = JSX(({ className, ariaLabel, version = 'none', rounded, href, target, children, onClick, ...rest }) => {
635
+ // Pick Button props to prevent forwarding into HTML <a> tag leading to errors being printed in console.
636
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
637
+ const { aboveText, appendLeft, ...linkProps } = rest;
638
+ return (jsx("a", { className: `${buttonStyle} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: href ? 'link' : 'button', ...linkProps, children: children }));
639
+ });
635
640
  const DisabledButton = JSX(({ className, children, ariaLabel, version = 'none', rounded }) => (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `inline-block ${buttonStyle} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: children })));
636
641
 
637
642
  const ButtonSection = JSX(({ context, className = '', buttons }) => {
@@ -732,7 +737,7 @@
732
737
  secondary: 'text-primary-text',
733
738
  };
734
739
  function renderBackwardButton(text, version, className) {
735
- return (jsxs("div", { className: `flex items-center ${className}`, children: [jsx(Button, { rounded: true, className: `w-12 h-12 min-h-12 max-h-12 flex items-center justify-center mr-3 ${backwardBgStyleMap[version]}`, children: jsx(Img, { className: `w-4 h-4 min-w-4 min-h-4 rounded-full box-border ${backwardIconStyleMap[version]}`, image: { icon: 'ArrowLeftIcon' }, color: "none", width: "24", height: "24", asSVG: true }) }), text ? jsx("span", { className: "text-m-md", children: text }) : null] }));
740
+ return (jsxs("div", { className: `flex items-center ${className}`, children: [jsx(Button, { rounded: true, className: `w-12 h-12 min-h-12 max-h-12 flex items-center justify-center mr-3 ${backwardBgStyleMap[version]}`, ariaLabel: text, children: jsx(Img, { className: `w-4 h-4 min-w-4 min-h-4 rounded-full box-border ${backwardIconStyleMap[version]}`, image: { icon: 'ArrowLeftIcon' }, color: "none", width: "24", height: "24", asSVG: true }) }), text ? jsx("span", { className: "text-m-md", children: text }) : null] }));
736
741
  }
737
742
 
738
743
  const productBlockStyleMap$1 = {
@@ -832,7 +837,7 @@
832
837
  };
833
838
  const Tile = JSX((props) => {
834
839
  const { context, title, description, items, children, buttons, image, className = '', version = 'primary', role, anchor = null, } = props;
835
- 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: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
840
+ 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: getTileHeadingType(className), as: "h3", title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
836
841
  ${version === 'primary' ? 'text-primary-text' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description && (jsx(Description, { className: "mt-4 max-w-[600px] text-title-new-sm font-light", description: description })), children, renderList$1(items, version)] }) }));
837
842
  });
838
843
  function renderList$1(items, version) {
@@ -895,30 +900,29 @@
895
900
  };
896
901
 
897
902
  const GalleryCardInner = JSX(({ title, description, image, items, button, version }) => {
898
- const titleStyleClasses = getTitleStyle(version, description, items);
899
- return (jsxs("div", { className: "h-full flex flex-col justify-between", children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title ? renderCardTitle(title, titleStyleClasses) : null, description ? (jsx("div", { className: `font-normal text-sm ${title ? 'mt-2' : ''}`, children: description })) : null, items?.length ? renderItems(items, version) : null] }), button?.text ? renderButton$1(button) : null] }));
903
+ const titleStyleClasses = getTitleStyle(version);
904
+ return (jsxs("div", { className: "h-full flex flex-col justify-between text-center", children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title ? renderCardTitle(title, titleStyleClasses) : null, description ? (jsx("div", { className: `font-light text-m-md-new ${title ? 'mt-2' : ''}`, children: description })) : null, items?.length ? renderItems(items, version) : null] }), button?.text ? renderButton$1(button) : null] }));
900
905
  });
901
906
  function renderButton$1(button) {
902
907
  return (jsx(Button, { className: "mt-6 w-full", appendLeft: button.icon && jsx(Img, { image: button.icon, width: "24px", height: "24px", asSVG: true }), ...button }));
903
908
  }
904
909
  function renderCardTitle(title, className) {
905
- return jsx("div", { className: `font-medium text-xl m-0 ${className}`, children: title });
910
+ return jsx("div", { className: `text-xl m-0 ${className}`, children: title });
906
911
  }
907
912
  function renderItems(items, version = 'primary') {
908
913
  return (jsx(List, { className: `max-w-[308px] mt-2 text-sm ${version === 'primary' ? '!text-secondary-text' : ''}`, itemClassName: "mt-1 first:mt-0", items: items.filter((item) => item?.text).map((item) => item.text), version: version }));
909
914
  }
910
- function getTitleStyle(version, description, items) {
911
- return `font-medium text-xl m-0
915
+ function getTitleStyle(version) {
916
+ return `text-xl m-0
912
917
  ${version !== 'secondary' ? 'text-primary-text' : ''}
913
- ${!description && !items?.length ? 'text-center' : ''}
914
918
  `;
915
919
  }
916
920
 
917
921
  const GalleryContainer = JSX(({ context, title, description, cards = [], version = 'normal', activeCardIndex }) => {
918
- return (jsxs("div", { children: [jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-gradient-to-r from-white to-transparent" }), jsxs("div", { className: "flex flex-col items-center mb-8", children: [title ? jsx(Heading, { headingType: "h2", className: "text-center", title: title }) : null, description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mt-2.5", children: description })) : null] }), jsx("div", { className: `flex ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`, style: { transform: `translateX(-${activeCardIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard({ card, version, context }, i)) })] }));
922
+ return (jsxs("div", { children: [jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-gradient-to-r from-white to-transparent" }), jsxs("div", { className: "flex flex-col items-center mb-8", children: [title ? jsx(Heading, { headingType: "h2", className: "text-center", title: title }) : null, description ? (jsx("div", { className: "font-light text-md max-w-[600px] mt-2.5", children: description })) : null] }), jsx("div", { className: `flex ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`, style: { transform: `translateX(-${activeCardIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard({ card, version, context }, i)) })] }));
919
923
  });
920
924
  function renderCard({ card, version }, i) {
921
- return (jsx("section", { className: `box-border border-solid border rounded-md border-main-divider p-7 mx-2 flex flex-col justify-between
925
+ return (jsx("section", { className: `box-border border-solid border border-main-stroke p-6 mx-2 flex flex-col justify-between
922
926
  items-stretch ${cardStyleMap[version]} ${cardVersionMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
923
927
  }
924
928
 
@@ -930,7 +934,7 @@
930
934
  const showNextButton = isGalleryScrollAvailable &&
931
935
  cards?.length - activeCardIndex > galleryLengthForScrollMap[version];
932
936
  const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
933
- return (jsxs("section", { className: `relative font-sans text-primary-text bg-white p-[50px] overflow-hidden ${className}`, id: anchor, children: [jsx(GalleryContainer, { context: context, cards: cards, version: version, activeCardIndex: activeCardIndex, ...rest }), showPrevButton && (jsx(ArrowButton, { className: "absolute top-1/2 left-8 rotate-180 z-10 mt-[25px]", onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })), showNextButton && (jsx(ArrowButton, { className: "absolute top-1/2 right-8 z-10 mt-[25px]", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" })), jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-opacity-from-white" }), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[100px] bg-opacity-to-white" })] }));
937
+ return (jsxs("section", { className: `relative font-sans text-primary-text bg-white p-[42px] overflow-hidden ${className}`, id: anchor, children: [jsx(GalleryContainer, { context: context, cards: cards, version: version, activeCardIndex: activeCardIndex, ...rest }), showPrevButton && (jsx(ArrowButton, { className: "absolute top-1/2 left-8 rotate-180 z-10 mt-[25px]", onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })), showNextButton && (jsx(ArrowButton, { className: "absolute top-1/2 right-8 z-10 mt-[25px]", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" })), jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-opacity-from-white" }), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[100px] bg-opacity-to-white" })] }));
934
938
  });
935
939
 
936
940
  const Gallery = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
@@ -1031,7 +1035,7 @@
1031
1035
  };
1032
1036
  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 }) })));
1033
1037
 
1034
- 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", className: "text-center text-white", title: 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: "font-medium text-xs py-[11px]", children: link.text }) }) }))] })));
1038
+ 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 }), 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 }) }) }))] })));
1035
1039
 
1036
1040
  const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeCardIndex, router, handlerDecorator }) => {
1037
1041
  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)))) })] }));
@@ -1042,7 +1046,7 @@
1042
1046
  const cellClasses = `mx-7 h-full ${DIVIDER_CLASSES$1} ${isFillGradient && isFirstRow ? 'border-t' : ''} ${!isLastRow ? 'border-solid' : 'border-b-0'}`;
1043
1047
  return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map((item, i) => renderCellInner$1(item, i, isFillGradient)) }) }));
1044
1048
  });
1045
- const renderCellInner$1 = ({ 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)));
1049
+ const renderCellInner$1 = ({ label, description }, i, isFillGradient) => (jsxs("div", { className: "first:pt-7 pt-6 last:pb-7", children: [label && (jsx("h4", { 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)));
1046
1050
 
1047
1051
  const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? (jsx("div", { className: `text-sm py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${!isLastRow ? 'border-solid' : 'border-b-0'}`, 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] })));
1048
1052
 
@@ -1192,8 +1196,19 @@
1192
1196
  }
1193
1197
  };
1194
1198
 
1199
+ const tableFunc = (table) => (input) => {
1200
+ const [, output] = table.find(([predicate]) => predicate(input)) || [];
1201
+ return output;
1202
+ };
1203
+
1204
+ const func = tableFunc([
1205
+ [(_) => _ === 1, 'год'],
1206
+ [(_) => _ <= 4, 'года'],
1207
+ [() => true, 'лет'],
1208
+ ]);
1195
1209
  function renderButton(number, i, handleClick) {
1196
- return (jsx("button", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer border-none", onClick: () => handleClick(number), children: jsxs("span", { className: "font-semibold text-sm", children: [number, " ", number === 1 ? 'год' : number > 4 ? 'лет' : 'года'] }) }, String(i)));
1210
+ const string = func(number);
1211
+ return (jsx("button", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer border-none", onClick: () => handleClick(number), children: jsxs("span", { className: "font-semibold text-sm", children: [number, " ", string] }) }, String(i)));
1197
1212
  }
1198
1213
 
1199
1214
  const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
@@ -1536,6 +1551,21 @@
1536
1551
  return (jsxs("footer", { className: `px-9 pt-9 pb-8 bg-white ${className || ''}`, id: anchor, children: [jsxs("div", { className: "flex items-stretch gap-[54px] pb-[30px] xl:gap-8", children: [jsx(Logo, { className: LEFT_COL_WIDTH_FULL_HD }), jsx(SearchBar, { context: context, className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-[54px] xl:gap-8", children: [jsxs("div", { className: `${LEFT_COL_WIDTH_FULL_HD} flex flex-col shrink-0 overflow-hidden`, children: [jsx(Contacts, { items: contacts, context: context, hasButton: true }), jsx(SocialMedia, { media: socialMedia, context: context, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { className: "mt-6", media: mobileApps, context: context, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "pt-[3px]", context: context, items: topItems })] }), jsx(HorizontalNavigation, { className: "mt-24", links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1537
1552
  });
1538
1553
 
1554
+ const GracePeriod = JSX(({ className = '', title, description, calendar, anchor = null }) => {
1555
+ return (jsxs("section", { className: `bg-white p-16 pt-12 ${className}`, id: anchor, children: [jsx(Heading, { headingType: "h2", className: "text-center", title: title }), jsx("div", { className: "font-light text-base-md text-center mt-3", children: description }), renderCalendar(calendar)] }));
1556
+ });
1557
+ const renderCalendar = (calendar) => {
1558
+ const colCount = calendar.reduce((accumulator, currentValue) => accumulator + currentValue.month.length, 0) || 1;
1559
+ const colSize = 100 / colCount;
1560
+ const mappedCalendar = calendar.map((_) => ({
1561
+ ..._,
1562
+ flexBasis: `${_.month.length * colSize}%`,
1563
+ }));
1564
+ return (jsxs("div", { className: "w-full flex flex-col justify-center mt-14", children: [jsx("div", { className: "flex w-full mb-3 font-light text-m-title-md mb-3 text-center", children: mappedCalendar.map((_) => renderMonthNames(_, colSize)) }), jsx("div", { className: "flex w-full", children: mappedCalendar.map((_, ind) => (jsxs("div", { className: "pr-3 mr-3 border-r border-r-gray/100 last:border-r-0 last:pr-0 last:mr-0", style: { flexBasis: _.flexBasis }, children: [jsx("div", { className: "flex", children: renderMonthImages(_) }), jsxs("div", { className: "font-light text-sm text-primary-text mt-3", children: [jsx("span", { children: _.blackText }), "\u2009", jsx("span", { className: "text-primary-main", children: _.greenText })] })] }, `monthItem-${ind}`))) })] }));
1565
+ };
1566
+ const renderMonthNames = (item, colSize) => item.month.map((_) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.name }, `monthName-${_.name}`)));
1567
+ const renderMonthImages = (item) => item.month.map((_) => (jsx("div", { className: "max-h-[207px] border-r-[1px] pr-3 mr-3 border-r-gray/100 last:border-r-0 last:pr-0 last:mr-0", children: jsx(Img, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)));
1568
+
1539
1569
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
1540
1570
 
1541
1571
  const isHrefActive = (href, router, cmp = (href, baseHref) => baseHref.startsWith(href)) => {
@@ -1616,9 +1646,9 @@
1616
1646
 
1617
1647
  const isSSR = () => !(typeof window !== 'undefined' && window.document && window.document.createElement);
1618
1648
 
1619
- const headerSubMenuObserver = isSSR()
1620
- ? undefined
1621
- : new IntersectionObserver((entries) => {
1649
+ const isClient$1 = !isSSR();
1650
+ const headerSubMenuObserver = isClient$1
1651
+ ? new IntersectionObserver((entries) => {
1622
1652
  const headerSubMenuButtonElement = window.document.querySelector('[data-header-submenu-visible=toggled]');
1623
1653
  const headerSubMenuItems = Array.from(window.document.querySelectorAll('[data-item-name=header-submenu]'));
1624
1654
  const dotsHeaderSubMenuItems = Array.from(window.document.querySelectorAll('[data-item-name=dots-header-submenu]'));
@@ -1633,7 +1663,8 @@
1633
1663
  ? headerSubMenuButtonElement.classList.remove('hidden')
1634
1664
  : headerSubMenuButtonElement.classList.add('hidden');
1635
1665
  }
1636
- }, { root: window.document, threshold: 1.0 });
1666
+ }, { root: window.document, threshold: 1.0 })
1667
+ : undefined;
1637
1668
  // TODO: add types
1638
1669
  const toggleVisibilityInItems = (visibilityList, items, className) => {
1639
1670
  const isReversed = className !== 'hidden';
@@ -1650,6 +1681,9 @@
1650
1681
  const router = context.useRouter();
1651
1682
  const { handlerDecorator } = context;
1652
1683
  setTimeout(() => {
1684
+ if (isSSR()) {
1685
+ return;
1686
+ }
1653
1687
  const headerSubMenu = globalThis.document.querySelectorAll('[data-item-name=header-submenu]');
1654
1688
  headerSubMenu.forEach((_) => {
1655
1689
  headerSubMenuObserver?.observe(_);
@@ -1667,9 +1701,12 @@
1667
1701
  })] }));
1668
1702
  });
1669
1703
  // TODO: add types
1670
- const renderDotsSubMenu = ({ subMenuIsShow, toggleSubMenu, subItems, router, handlerDecorator, }) => (jsxs("div", { className: `absolute w-52 -top-4 right-0 pt-4 z-40 ${subMenuIsShow ? 'bg-white rounded-md shadow-blue-gray/24' : ''}`, "data-header-submenu-visible": "toggled", children: [jsx("button", { className: "flex justify-between items-center cursor-pointer h-6 ml-6", onClick: toggleSubMenu, children: Array(3).fill(jsx("div", { className: "w-[3px] h-[3px] rounded bg-black mr-1" })) }), jsx("div", { className: `flex flex-col rounded-md bg-white p-6 pb-2 ${subMenuIsShow ? '' : 'hidden'}`, children: renderDotsSubMenuItems(subItems, router, handlerDecorator) })] }));
1704
+ const renderDotsSubMenu = ({ subMenuIsShow, toggleSubMenu, subItems, router, handlerDecorator, }) => (jsxs("div", { className: `absolute w-52 -top-4 right-0 pt-4 z-40 ${subMenuIsShow ? 'bg-white rounded-md shadow-blue-gray/24' : ''}`, "data-header-submenu-visible": "toggled", children: [jsx("button", { className: "flex justify-between items-center cursor-pointer h-6 ml-6", onClick: toggleSubMenu, "aria-label": `${subMenuIsShow ? 'Скрыть другие разделы' : 'Показать другие разделы'}`, children: Array(3)
1705
+ .fill(0)
1706
+ .map((_, i) => renderDot(i)) }), jsx("div", { className: `flex flex-col rounded-md bg-white p-6 pb-2 ${subMenuIsShow ? '' : 'hidden'}`, "aria-hidden": !subMenuIsShow, children: renderDotsSubMenuItems(subItems, router, handlerDecorator) })] }));
1671
1707
  // TODO: add types
1672
1708
  const renderDotsSubMenuItems = (subItems, router, handlerDecorator) => subItems?.map((_) => (jsx("a", { ...useLink({ router, handlerDecorator }, _), "data-item-name": "dots-header-submenu", className: "text-base font-light pb-4 hover:text-primary-main", children: _.text }, _.href)));
1709
+ const renderDot = (i) => (jsx("div", { className: "w-[3px] h-[3px] rounded bg-black mr-1" }, String(i)));
1673
1710
 
1674
1711
  const BORDER_COLORS = {
1675
1712
  'bg-white': 'bg-main-divider',
@@ -1681,12 +1718,12 @@
1681
1718
  const { handlerDecorator } = context;
1682
1719
  const mergedItems = mergeTopItems(sitemap.topItems, topItems);
1683
1720
  const activeTopItem = mergedItems.find(isTopItemActive(router));
1684
- const topMenu = mergedItems.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ...useLink({ router, handlerDecorator }, _), ariaLabel: _.text, bgColor: bgColor }, String(i))));
1721
+ const topMenu = mergedItems.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ...useLink({ router, handlerDecorator }, _), "aria-label": _.text, bgColor: bgColor }, String(i))));
1685
1722
  return (jsx("header", { className: `pt-6 pb-8 px-20 ${bgColor} ${className}`, id: anchor, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-8", bgColor: bgColor }), topMenu, jsx(HeaderSecondaryMenu, { context: context, className: "ml-auto", defaultLocation: defaultLocation, bgColor: bgColor })] }), jsx("div", { className: `mt-6 h-[1px] ${BORDER_COLORS[bgColor]}` }), jsx(HeaderSubMenu, { context: context, subItems: activeTopItem?.items, bgColor: bgColor })] }) }));
1686
1723
  });
1687
1724
 
1688
1725
  const MobileAppTile = JSX(({ className = '', context, title = 'Мобильное приложение', qr, buttons = [], anchor = null, }) => {
1689
- 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: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] mb-7` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-7 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-[90px] h-[90px] min-w-[90px] min-h-[90px] 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" })] }) }) }));
1726
+ 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]` })), 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" })] }) }) }));
1690
1727
  });
1691
1728
 
1692
1729
  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 })));
@@ -1701,27 +1738,68 @@
1701
1738
  });
1702
1739
 
1703
1740
  const TEXT_CLASSES = 'font-sans font-normal text-sm';
1704
- const LINK_CLASSES = 'flex-1 flex items-center justify-center';
1705
- const NavigatorTabItem = JSX(({ className = '', label, active, children, onClick, anchor }) => (jsx("a", { className: getLinkClasses(className, active), href: `#${anchor}`, onClick: onClick, children: jsx("span", { className: getTextClasses(active), children: label || children }) })));
1741
+ const LINK_CLASSES = 'flex-1 flex items-center justify-center cursor-pointer';
1742
+ const NavigatorTabItem = JSX(({ className = '', label, active, children, onClick, href, target = '_self' }) => (jsx("a", { className: getLinkClasses(className, active), target: target, href: href, onClick: onClick, children: jsx("span", { className: getTextClasses(active), children: label || children }) })));
1706
1743
  const getLinkClasses = (className, active) => {
1707
- const classes = active ? 'bg-primary-main' : 'bg-white';
1744
+ const classes = active ? 'bg-primary-main' : 'group bg-white';
1708
1745
  return `${classes} ${LINK_CLASSES} ${className}`;
1709
1746
  };
1710
1747
  const getTextClasses = (active) => {
1711
- const classes = active ? 'text-white' : 'text-secondary-text hover:text-primary-main';
1748
+ const classes = active ? 'text-white' : 'text-secondary-text group-hover:text-primary-main ';
1712
1749
  return `${classes} ${TEXT_CLASSES}`;
1713
1750
  };
1714
1751
 
1715
1752
  const NavigatorTabs = JSX(({ className = '', navigatorTabs, context, anchor = null }) => {
1716
1753
  const router = context.useRouter();
1717
- const hash = getHash(router.href);
1718
- return (jsx("section", { className: `sticky top-0 z-20 box-border flex gap-x-1 h-12 ${className}`, id: anchor, children: navigatorTabs ? navigatorTabs.map(renderTab(hash, router)) : null }));
1754
+ const href = globalThis.location.href;
1755
+ return (jsx("section", { className: `sticky top-0 z-20 box-border flex gap-x-1 h-12 ${className}`, id: anchor, children: navigatorTabs ? navigatorTabs.map(renderTab(href, router)) : null }));
1719
1756
  });
1720
- const renderTab = (hash, router) => (tab, i) => {
1721
- const anchorHash = `#${tab.anchor}`;
1722
- const active = hash ? anchorHash === hash : i === 0;
1723
- return (jsx(NavigatorTabItem, { active: active, onClick: () => router?.replace(anchorHash), ...tab }, tab.anchor));
1757
+ const renderTab = (href, router) => (tab, i) => {
1758
+ const hash = getHash(href);
1759
+ const active = hash ? tab.href === hash : i === 0;
1760
+ return (jsx(NavigatorTabItem, { active: active, onClick: () => handleRoute(router, tab.href), ...tab }, tab.href));
1724
1761
  };
1762
+ const handleRoute = (router, href) => {
1763
+ if (isURL(href))
1764
+ return; // if href if full URL - move to HTML href action, do not touch router
1765
+ router?.replace(href || '');
1766
+ };
1767
+
1768
+ const useActiveHandler = ({ context, blocks, initialState = false }) => {
1769
+ const [isActive, setIsActive] = context.useState(initialState);
1770
+ const hasContent = blocks?.length;
1771
+ const icon = isActive ? 'ArrowUpIcon' : 'ArrowDownIcon';
1772
+ const getContentBlock = ({ currentTarget }) => currentTarget.previousSibling;
1773
+ const handleToggle = (e) => {
1774
+ if (!hasContent) {
1775
+ return;
1776
+ }
1777
+ setIsActive(!isActive);
1778
+ const contentBlock = getContentBlock(e);
1779
+ contentBlock.style.maxHeight = contentBlock.style.maxHeight
1780
+ ? null
1781
+ : `${contentBlock.scrollHeight}px`;
1782
+ };
1783
+ return { isActive, hasContent, icon, handleToggle };
1784
+ };
1785
+
1786
+ const OtherProductsItemInner = JSX(({ blocks, columns = 1, context }) => {
1787
+ const className = 'box-border p-5';
1788
+ return (jsx("div", { className: "transition-all duration-300 max-h-0 overflow-hidden", children: jsx("div", { className: `box-border w-full p-9 ${columns > 1 ? 'flex flex-wrap' : ''}`, children: renderBlocksList({ context, className, columns, blocks }) }) }));
1789
+ });
1790
+
1791
+ const OtherProductsItem = JSX(({ label, isExpanded, blocks, columns, context }) => {
1792
+ const { hasContent, icon, handleToggle, isActive } = useActiveHandler({
1793
+ context,
1794
+ blocks,
1795
+ initialState: isExpanded,
1796
+ });
1797
+ return (jsxs("div", { className: "border-0 border-b border-solid border-main-divider", children: [hasContent ? (jsx(OtherProductsItemInner, { isExpanded: isActive, columns: columns, blocks: blocks, context: context })) : null, jsxs("button", { className: "border-none bg-primary-main px-0 py-[26px] mb-[1px] w-full font-sans text-white text-base flex justify-center cursor-pointer", onClick: handleToggle, children: [jsx("span", { className: "pr-3", children: isActive ? 'Скрыть' : label }), hasContent ? jsx(Icon, { name: icon, width: "20", height: "20", asSVG: true }) : null] })] }));
1798
+ });
1799
+
1800
+ const OtherProducts = JSX(({ blockItems, context, className }) => {
1801
+ 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, context: context }, `BlockItem${i}`))) })) : null }));
1802
+ });
1725
1803
 
1726
1804
  const GOLDEN_RATIO = 1.618;
1727
1805
  const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...', anchor = null }) => {
@@ -1828,44 +1906,8 @@
1828
1906
  return dateObj.toLocaleString('ru-RU', dateFormat).replace('г.', '');
1829
1907
  }
1830
1908
 
1831
- const useActiveHandler = ({ context, blocks, initialState = false }) => {
1832
- const [isActive, setIsActive] = context.useState(initialState);
1833
- const hasContent = blocks?.length;
1834
- const icon = isActive ? 'ArrowUpIcon' : 'ArrowDownIcon';
1835
- const getContentBlock = ({ currentTarget }) => currentTarget.previousSibling;
1836
- const handleToggle = (e) => {
1837
- if (!hasContent) {
1838
- return;
1839
- }
1840
- setIsActive(!isActive);
1841
- const contentBlock = getContentBlock(e);
1842
- contentBlock.style.maxHeight = contentBlock.style.maxHeight
1843
- ? null
1844
- : `${contentBlock.scrollHeight}px`;
1845
- };
1846
- return { isActive, hasContent, icon, handleToggle };
1847
- };
1848
-
1849
- const OtherProductsItemInner = JSX(({ blocks, columns = 1, context }) => {
1850
- const className = 'box-border p-5';
1851
- return (jsx("div", { className: "transition-all duration-300 max-h-0 overflow-hidden", children: jsx("div", { className: `box-border w-full p-9 ${columns > 1 ? 'flex flex-wrap' : ''}`, children: renderBlocksList({ context, className, columns, blocks }) }) }));
1852
- });
1853
-
1854
- const OtherProductsItem = JSX(({ label, isExpanded, blocks, columns, context }) => {
1855
- const { hasContent, icon, handleToggle, isActive } = useActiveHandler({
1856
- context,
1857
- blocks,
1858
- initialState: isExpanded,
1859
- });
1860
- return (jsxs("div", { className: "border-0 border-b border-solid border-main-divider", children: [hasContent ? (jsx(OtherProductsItemInner, { isExpanded: isActive, columns: columns, blocks: blocks, context: context })) : null, jsxs("button", { className: "border-none bg-primary-main px-0 py-[26px] mb-[1px] w-full font-sans text-white text-base flex justify-center cursor-pointer", onClick: handleToggle, children: [jsx("span", { className: "pr-3", children: isActive ? 'Скрыть' : label }), hasContent ? jsx(Icon, { name: icon, width: "20", height: "20", asSVG: true }) : null] })] }));
1861
- });
1862
-
1863
- const OtherProducts = JSX(({ blockItems, context, className }) => {
1864
- 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, context: context }, `BlockItem${i}`))) })) : null }));
1865
- });
1866
-
1867
1909
  const RecommendationCard = JSX(({ context, className = '', title, description, items, image, version, socialMedia }) => {
1868
- return (jsx("section", { className: `border border-solid box-border py-[30px] px-9 min-w-[515px] max-w-[515px] ${className}`, role: "listitem", children: jsxs(BaseTile, { context: context, className: "flex justify-between", title: title ? (jsx("h4", { className: `font-sans text-title-xs font-normal m-0 mb-3.5`, children: title })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? jsx(Description, { className: "text-left", description: description }) : null, items?.length ? (jsx(List, { className: "text-md font-light flex flex-col gap-2", items: items, version: version })) : null, jsx(SocialMedia, { className: "pt-[42px] pb-0", media: socialMedia, context: context })] }) }));
1910
+ return (jsx("section", { className: `border border-solid box-border py-[30px] px-9 min-w-[515px] max-w-[515px] ${className}`, role: "listitem", children: jsxs(BaseTile, { context: context, className: "flex justify-between", title: title ? (jsx(Heading, { headingType: "h4", as: "h3", className: "font-normal mb-3.5", title: title })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? jsx(Description, { className: "text-left", description: description }) : null, items?.length ? (jsx(List, { className: "text-md font-light flex flex-col gap-2", items: items, version: version })) : null, jsx(SocialMedia, { className: "pt-[42px] pb-0", media: socialMedia, context: context })] }) }));
1869
1911
  });
1870
1912
 
1871
1913
  const BLUR_BLOCK_CLASSES = 'absolute top-0 bottom-0 w-[84px]';
@@ -1895,20 +1937,20 @@
1895
1937
  return (jsxs("div", { children: [showPrevButton && (jsx(ArrowButton, { className: "absolute top-1/2 left-8 rotate-180 z-10 mt-6", 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-8 z-10 mt-6", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E" }))] }));
1896
1938
  };
1897
1939
 
1898
- const StepsBlock = JSX(({ className = '', title, showLines = true, steps = [], anchor = null }) => {
1940
+ const StepsBlock = JSX(({ className = '', title, showLines = true, steps = [], button, anchor = null }) => {
1899
1941
  const shortGaps = steps.length > 3;
1900
1942
  return (jsxs("section", { className: [
1901
1943
  'box-border font-sans text-primary-text bg-white',
1902
1944
  shortGaps ? 'px-20' : 'px-[70px]',
1903
1945
  'py-[50px] flex flex-col items-center',
1904
1946
  className,
1905
- ].join(' '), id: anchor, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center", title: title }), steps?.length ? (jsxs("div", { className: `box-border py-0.5 mb-0.5 ${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(renderStepTitle) })] })) : null] }));
1947
+ ].join(' '), id: anchor, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center", title: title }), steps?.length ? (jsxs("div", { className: `box-border py-0.5 mb-0.5 ${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-[43px] py-3 h-12 w-full max-w-[240px]", version: "primary", href: "#", children: button.text })) : null] }));
1906
1948
  });
1907
1949
  const renderStepIcon = (step, i) => {
1908
- 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-medium text-title-sm text-secondary-text", children: i + 1 })) }) }, String(i)));
1950
+ 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)));
1909
1951
  };
1910
- const renderStepTitle = (step, i) => {
1911
- return (jsxs("div", { className: "flex flex-col items-center text-center relative w-[276px] whitespace-pre-line overflow-hidden", children: [step.label && jsx("div", { className: "font-medium text-xl m-0 mt-4", children: step.label }), step.description && (jsx("div", { className: `font-normal text-sm text-secondary-text ${step.label ? 'mt-2' : 'mt-4'}`, children: step.description }))] }, String(i)));
1952
+ const renderStepTitle = (step, i, isMainButton) => {
1953
+ 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-[38px] py-3 h-12 w-full max-w-[240px]", version: "primary", href: "#", children: step.button.text })) : null] }, String(i)));
1912
1954
  };
1913
1955
 
1914
1956
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
@@ -1916,13 +1958,15 @@
1916
1958
  const COLS_LENGTH_FOR_SCROLL = 2;
1917
1959
  const COLUMN_WIDTH = 4 * 80 + 40; // w-80 + pl-10 = 360px
1918
1960
 
1961
+ const getButtonAriaLabel = (icon) => icon?.alt || icon?.title || IconTitleMap[icon?.icon ? icon.icon : ''];
1962
+
1919
1963
  const TariffsTableCell = JSX(({ cell, isLastRow }) => {
1920
1964
  const cellWrapperClasses = `first:pl-0 pl-10 w-80 flex-grow flex flex-col border-solid border-main-divider border border-t-0 border-x-0 ${isLastRow ? 'border-t-0 rounded-b-md' : ''}`;
1921
1965
  return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { children: cell.map(renderCellInner) }) }));
1922
1966
  });
1923
1967
  const renderCellInner = ({ label, description, list, image, buttons }, i) => (jsxs("div", { className: "first:pt-5 last:pb-5", children: [i > 0 && (jsx("div", { className: "border-main-divider border border-solid border-t-0 border-x-0 my-4" })), label ? jsx("div", { className: "text-xl font-medium m-0", children: label }) : null, description ? jsx("div", { className: "text-sm text-secondary-text", children: description }) : null, list?.items?.length ? renderList(list) : null, image && jsx(Img, { image: image }), buttons?.length ? renderButtons(buttons) : null] }, String(i)));
1924
1968
  const renderList = (list) => (jsx(List, { className: "flex flex-col justify-between items-start text-sm", version: "gray", items: list.items, isDotted: list.isDotted ?? true }));
1925
- const renderButtons = (buttons) => (jsx("div", { children: buttons.map(({ icon, rounded, ...buttonProps }, idx) => (jsx(Button, { className: `${idx > 0 && rounded ? 'ml-3' : ''} w-12 h-12`, rounded: rounded, appendLeft: icon ? jsx(Img, { image: icon, width: "24px", height: "24px", asSVG: true }) : null, ...buttonProps }, String(idx)))) }));
1969
+ const renderButtons = (buttons) => (jsx("div", { children: buttons.map(({ icon, rounded, ...buttonProps }, idx) => (jsx(Button, { className: `${idx > 0 && rounded ? 'ml-3' : ''} w-12 h-12`, ariaLabel: getButtonAriaLabel(icon), rounded: rounded, appendLeft: icon ? jsx(Img, { image: icon, width: "24px", height: "24px", asSVG: true }) : null, ...buttonProps }, String(idx)))) }));
1926
1970
 
1927
1971
  const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, isLastRow }) => {
1928
1972
  return (jsxs(TableRowContainer, { children: [jsx("div", { className: `text-sm py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES} ${!isLastRow ? 'border-solid' : ''}`, children: jsxs("div", { className: "flex items-center text-primary-text", children: [header?.icon ? (jsx(Img, { className: "mr-[14px] max-w-6 max-h-6", image: header.icon, width: "24px", height: "24px", asSVG: true })) : null, header?.title] }) }), data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH, version: "tariff", children: data.map((cell, i) => (jsx(TariffsTableCell, { cell: cell, isLastRow: isLastRow }, String(i)))) })) : null] }));
@@ -1955,6 +1999,7 @@
1955
1999
  ExchangeRateTile,
1956
2000
  Footer,
1957
2001
  Gallery,
2002
+ GracePeriod,
1958
2003
  Header,
1959
2004
  Headline,
1960
2005
  LinkDocs,
@@ -1977,6 +2022,19 @@
1977
2022
  Placeholder,
1978
2023
  };
1979
2024
 
2025
+ const changeHashOnScroll = (router, blocks) => {
2026
+ blocks?.forEach((block) => {
2027
+ const currentHash = globalThis.location.hash;
2028
+ const anchorHash = `#${block?.id}`;
2029
+ if (currentHash === anchorHash)
2030
+ return;
2031
+ const position = block?.getBoundingClientRect();
2032
+ if (position && position.top > 0 && position.top < 150) {
2033
+ router.replace(`#${block?.id}`);
2034
+ }
2035
+ });
2036
+ };
2037
+
1980
2038
  const LikeButton = JSX(({ className, onClick, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 w-[36px] bg-inherit cursor-pointer ${className || ''}`, onClick: onClick, "aria-label": ariaLabel, children: renderLikeIcon() })));
1981
2039
  const renderLikeIcon = () => {
1982
2040
  const params = {
@@ -1993,10 +2051,18 @@
1993
2051
  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 || ''}`, id: anchor, 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 })] }));
1994
2052
  });
1995
2053
 
2054
+ const isClient = !isSSR();
1996
2055
  const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
1997
- const ContentPage = JSX(({ className, context, blocksRegistry, data: { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' }, blockDecorator = defaultBlockDecorator, }) => {
2056
+ const ContentPage = JSX(({ className = '', context, blocksRegistry, data: { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' }, blockDecorator = defaultBlockDecorator, }) => {
1998
2057
  const { header } = slots;
1999
- return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className || ''}`, "data-theme": colorPalette, children: [header?.blocks?.length ? (jsx("div", { className: `${style2className(header?.style)}`, children: header.blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context }, i)) })) : null, blocks?.length ? (jsx("div", { className: "container grid grid-cols-12 gap-1", children: blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context }, i)) })) : null, likeControl && (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto", context: context }) }))] }));
2058
+ const router = context.useRouter();
2059
+ // listener is for NavigatorTabs
2060
+ isClient &&
2061
+ globalThis.addEventListener('load', () => {
2062
+ const sectionsWithAnchors = globalThis.document.querySelectorAll('section[id]');
2063
+ globalThis.document.addEventListener('scroll', () => changeHashOnScroll(router, sectionsWithAnchors));
2064
+ });
2065
+ return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [header?.blocks?.length ? (jsx("div", { className: `${style2className(header?.style)}`, children: header.blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context }, i)) })) : null, blocks?.length ? (jsx("div", { className: "container grid grid-cols-12 gap-1", children: blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context }, i)) })) : null, likeControl && (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto", context: context }, "LikeControl") }))] }));
2000
2066
  });
2001
2067
  function renderBlock({ block, blockDecorator, blocksRegistry, context }, i) {
2002
2068
  const { type } = block;
@@ -2009,7 +2075,7 @@
2009
2075
  block,
2010
2076
  render: (props) => {
2011
2077
  const { version, content, anchor } = props.block;
2012
- return (jsx(BlockComponent, { className: props.blockClassName, version: version, context: context, anchor: anchor, ...content }));
2078
+ return (jsx(BlockComponent, { className: props.blockClassName, version: version, context: context, anchor: anchor, ...content }, `${type}-${i}`));
2013
2079
  },
2014
2080
  }, `block-${i}`);
2015
2081
  }