@redneckz/wildless-cms-uni-blocks 0.6.22 → 0.6.24

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 (648) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +253 -259
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  5. package/bundle/components/Calculator/CalculatorContent.d.ts +4 -50
  6. package/bundle/components/ContactsBlock/ContactsBlockContent.d.ts +2 -1
  7. package/bundle/components/ContentPage/useContentPageData.d.ts +3 -0
  8. package/bundle/components/Header/DropdownMenu.d.ts +5 -7
  9. package/bundle/components/Header/HeaderSubMenuItem.d.ts +12 -0
  10. package/bundle/components/Headline/HeadlineContent.d.ts +1 -0
  11. package/bundle/components/InvestmentInfo/InvestmentInfoContent.d.ts +1 -2
  12. package/bundle/components/Tile/TileContent.d.ts +2 -1
  13. package/bundle/hooks/useIntersectionObserver.d.ts +3 -0
  14. package/bundle/hooks/useOutsideClick.d.ts +3 -5
  15. package/bundle/model/IconVersion.d.ts +4 -2
  16. package/bundle/ui-kit/Tags/Tags.d.ts +6 -0
  17. package/bundle/ui-kit/Tags/TagsContent.d.ts +6 -0
  18. package/bundle/ui-kit/TopItem/TopItem.d.ts +1 -1
  19. package/bundle/utils/getIconWithVersion.d.ts +3 -0
  20. package/dist/components/AccordionItem/AccordionItem.mobile.js +2 -1
  21. package/dist/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  22. package/dist/components/BenefitsBlock/BenefitsBlock.js +7 -20
  23. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  24. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  25. package/dist/components/Calculator/Calculator.js +6 -1
  26. package/dist/components/Calculator/Calculator.js.map +1 -1
  27. package/dist/components/Calculator/CalculatorContent.d.ts +4 -50
  28. package/dist/components/Catalog/Catalog.js +1 -1
  29. package/dist/components/Catalog/Catalog.js.map +1 -1
  30. package/dist/components/Catalog/CatalogCard.js +1 -1
  31. package/dist/components/ComparisonTable/HeaderCell.js +2 -1
  32. package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  33. package/dist/components/ContactsBlock/ContactsBlock.js +2 -2
  34. package/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  35. package/dist/components/ContactsBlock/ContactsBlockContent.d.ts +2 -1
  36. package/dist/components/ContentPage/ContentPage.page.json +35 -0
  37. package/dist/components/ContentPage/useContentPageData.d.ts +3 -0
  38. package/dist/components/ContentPage/useContentPageData.js +67 -0
  39. package/dist/components/ContentPage/useContentPageData.js.map +1 -0
  40. package/dist/components/ErrorBlock/ErrorBlock.js +1 -1
  41. package/dist/components/ErrorBlock/ErrorBlock.js.map +1 -1
  42. package/dist/components/ExchangeRateTile/CurrentLocation.js +1 -1
  43. package/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  44. package/dist/components/Footer/Footer.mobile.js +3 -2
  45. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  46. package/dist/components/Footer/MediaButton.js +2 -1
  47. package/dist/components/Footer/MediaButton.js.map +1 -1
  48. package/dist/components/Gallery/GalleryCardInner.js +3 -2
  49. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  50. package/dist/components/Header/DropdownMenu.d.ts +5 -7
  51. package/dist/components/Header/DropdownMenu.js +8 -7
  52. package/dist/components/Header/DropdownMenu.js.map +1 -1
  53. package/dist/components/Header/HeaderSubMenu.js +8 -21
  54. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  55. package/dist/components/Header/HeaderSubMenuItem.d.ts +12 -0
  56. package/dist/components/Header/HeaderSubMenuItem.js +23 -0
  57. package/dist/components/Header/HeaderSubMenuItem.js.map +1 -0
  58. package/dist/components/Headline/HeadlineContent.d.ts +1 -0
  59. package/dist/components/InvestmentInfo/InvestmentInfo.js +4 -4
  60. package/dist/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  61. package/dist/components/InvestmentInfo/InvestmentInfoContent.d.ts +1 -2
  62. package/dist/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  63. package/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  64. package/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  65. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  66. package/dist/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  67. package/dist/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  68. package/dist/components/OfficeMap/OfficeMap.js +3 -3
  69. package/dist/components/OfficeMap/OfficeMap.js.map +1 -1
  70. package/dist/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -2
  71. package/dist/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  72. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  73. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  74. package/dist/components/ProductBlock/renderBenefit.js +1 -3
  75. package/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  76. package/dist/components/StepsBlock/StepsBlock.js +4 -3
  77. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  78. package/dist/components/StepsBlock/StepsBlock.mobile.js +2 -1
  79. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  80. package/dist/components/Tabs/renderLinkTab.js +1 -1
  81. package/dist/components/Tabs/renderLinkTab.js.map +1 -1
  82. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js +1 -0
  83. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
  84. package/dist/components/TariffsTable/TariffsTableRow.js +2 -1
  85. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  86. package/dist/components/Tile/Tile.js +3 -2
  87. package/dist/components/Tile/Tile.js.map +1 -1
  88. package/dist/components/Tile/TileContent.d.ts +2 -1
  89. package/dist/hooks/useIntersectionObserver.d.ts +3 -0
  90. package/dist/hooks/useIntersectionObserver.js +19 -0
  91. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  92. package/dist/hooks/useOutsideClick.d.ts +3 -5
  93. package/dist/hooks/useOutsideClick.js +11 -9
  94. package/dist/hooks/useOutsideClick.js.map +1 -1
  95. package/dist/index.js +1 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/model/IconVersion.d.ts +4 -2
  98. package/dist/model/IconVersion.js +10 -0
  99. package/dist/model/IconVersion.js.map +1 -1
  100. package/dist/ui-kit/BenefitItem/BenefitItem.js +3 -4
  101. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  102. package/dist/ui-kit/BlockWrapper.js +19 -27
  103. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  104. package/dist/ui-kit/Button/ButtonSection.js +5 -5
  105. package/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  106. package/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  107. package/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  108. package/dist/ui-kit/Icon/Icon.js +4 -3
  109. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  110. package/dist/ui-kit/Logo/Logo.js +1 -1
  111. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  112. package/dist/ui-kit/Logo/Logo.mobile.js +5 -1
  113. package/dist/ui-kit/Logo/Logo.mobile.js.map +1 -1
  114. package/dist/ui-kit/Select/Select.js +2 -2
  115. package/dist/ui-kit/Select/Select.js.map +1 -1
  116. package/dist/ui-kit/Tags/Tags.d.ts +6 -0
  117. package/dist/ui-kit/Tags/Tags.js +10 -0
  118. package/dist/ui-kit/Tags/Tags.js.map +1 -0
  119. package/dist/ui-kit/Tags/TagsContent.d.ts +6 -0
  120. package/dist/ui-kit/Tags/TagsContent.js +2 -0
  121. package/dist/ui-kit/Tags/TagsContent.js.map +1 -0
  122. package/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  123. package/dist/utils/getIconWithVersion.d.ts +3 -0
  124. package/dist/utils/getIconWithVersion.js +8 -0
  125. package/dist/utils/getIconWithVersion.js.map +1 -0
  126. package/lib/common.css +1 -1
  127. package/lib/components/AccordionItem/AccordionItem.mobile.js +2 -1
  128. package/lib/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  129. package/lib/components/BenefitsBlock/BenefitsBlock.js +7 -20
  130. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  131. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  132. package/lib/components/Calculator/Calculator.js +6 -1
  133. package/lib/components/Calculator/Calculator.js.map +1 -1
  134. package/lib/components/Calculator/CalculatorContent.d.ts +4 -50
  135. package/lib/components/Catalog/Catalog.js +1 -1
  136. package/lib/components/Catalog/Catalog.js.map +1 -1
  137. package/lib/components/Catalog/CatalogCard.js +1 -1
  138. package/lib/components/ComparisonTable/HeaderCell.js +2 -1
  139. package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  140. package/lib/components/ContactsBlock/ContactsBlock.fixture.d.ts +2 -1
  141. package/lib/components/ContactsBlock/ContactsBlock.js +2 -2
  142. package/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  143. package/lib/components/ContactsBlock/ContactsBlockContent.d.ts +2 -1
  144. package/lib/components/ContentPage/ContentPage.fixture.d.ts +2 -2
  145. package/lib/components/ContentPage/ContentPage.fixture.mobile.d.ts +1 -1
  146. package/lib/components/ContentPage/ContentPage.page.json +35 -0
  147. package/lib/components/ContentPage/useContentPageData.d.ts +3 -0
  148. package/lib/components/ContentPage/useContentPageData.js +38 -0
  149. package/lib/components/ContentPage/useContentPageData.js.map +1 -0
  150. package/lib/components/ErrorBlock/ErrorBlock.js +1 -1
  151. package/lib/components/ErrorBlock/ErrorBlock.js.map +1 -1
  152. package/lib/components/ExchangeRateTile/CurrentLocation.js +1 -1
  153. package/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  154. package/lib/components/Footer/Footer.mobile.js +3 -2
  155. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  156. package/lib/components/Footer/MediaButton.js +2 -1
  157. package/lib/components/Footer/MediaButton.js.map +1 -1
  158. package/lib/components/Gallery/GalleryCardInner.js +3 -2
  159. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  160. package/lib/components/Header/DropdownMenu.d.ts +5 -7
  161. package/lib/components/Header/DropdownMenu.js +8 -7
  162. package/lib/components/Header/DropdownMenu.js.map +1 -1
  163. package/lib/components/Header/HeaderSubMenu.js +8 -21
  164. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  165. package/lib/components/Header/HeaderSubMenuItem.d.ts +12 -0
  166. package/lib/components/Header/HeaderSubMenuItem.js +21 -0
  167. package/lib/components/Header/HeaderSubMenuItem.js.map +1 -0
  168. package/lib/components/Headline/HeadlineContent.d.ts +1 -0
  169. package/lib/components/InvestmentInfo/InvestmentInfo.js +4 -4
  170. package/lib/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  171. package/lib/components/InvestmentInfo/InvestmentInfoContent.d.ts +1 -2
  172. package/lib/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  173. package/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  174. package/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  175. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  176. package/lib/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  177. package/lib/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  178. package/lib/components/OfficeMap/OfficeMap.js +3 -3
  179. package/lib/components/OfficeMap/OfficeMap.js.map +1 -1
  180. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -2
  181. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  182. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  183. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  184. package/lib/components/ProductBlock/renderBenefit.js +1 -3
  185. package/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  186. package/lib/components/StepsBlock/StepsBlock.js +4 -3
  187. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  188. package/lib/components/StepsBlock/StepsBlock.mobile.js +2 -1
  189. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  190. package/lib/components/Tabs/renderLinkTab.js +1 -1
  191. package/lib/components/Tabs/renderLinkTab.js.map +1 -1
  192. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js +1 -0
  193. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
  194. package/lib/components/TariffsTable/TariffsTableRow.js +2 -1
  195. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  196. package/lib/components/Tile/Tile.fixture.d.ts +1 -0
  197. package/lib/components/Tile/Tile.js +3 -2
  198. package/lib/components/Tile/Tile.js.map +1 -1
  199. package/lib/components/Tile/TileContent.d.ts +2 -1
  200. package/lib/hooks/useIntersectionObserver.d.ts +3 -0
  201. package/lib/hooks/useIntersectionObserver.js +16 -0
  202. package/lib/hooks/useIntersectionObserver.js.map +1 -0
  203. package/lib/hooks/useOutsideClick.d.ts +3 -5
  204. package/lib/hooks/useOutsideClick.js +12 -10
  205. package/lib/hooks/useOutsideClick.js.map +1 -1
  206. package/lib/index.js +1 -1
  207. package/lib/index.js.map +1 -1
  208. package/lib/model/IconVersion.d.ts +4 -2
  209. package/lib/model/IconVersion.js +10 -0
  210. package/lib/model/IconVersion.js.map +1 -1
  211. package/lib/ui-kit/BenefitItem/BenefitItem.js +3 -4
  212. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  213. package/lib/ui-kit/BlockWrapper.js +19 -27
  214. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  215. package/lib/ui-kit/Button/ButtonSection.js +5 -5
  216. package/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  217. package/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  218. package/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  219. package/lib/ui-kit/Icon/Icon.js +4 -3
  220. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  221. package/lib/ui-kit/Logo/Logo.js +1 -1
  222. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  223. package/lib/ui-kit/Logo/Logo.mobile.js +5 -1
  224. package/lib/ui-kit/Logo/Logo.mobile.js.map +1 -1
  225. package/lib/ui-kit/Select/Select.js +3 -3
  226. package/lib/ui-kit/Select/Select.js.map +1 -1
  227. package/lib/ui-kit/Tags/Tags.d.ts +6 -0
  228. package/lib/ui-kit/Tags/Tags.fixture.d.ts +3 -0
  229. package/lib/ui-kit/Tags/Tags.js +8 -0
  230. package/lib/ui-kit/Tags/Tags.js.map +1 -0
  231. package/lib/ui-kit/Tags/TagsContent.d.ts +6 -0
  232. package/lib/ui-kit/Tags/TagsContent.js +2 -0
  233. package/lib/ui-kit/Tags/TagsContent.js.map +1 -0
  234. package/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  235. package/lib/utils/getIconWithVersion.d.ts +3 -0
  236. package/lib/utils/getIconWithVersion.js +5 -0
  237. package/lib/utils/getIconWithVersion.js.map +1 -0
  238. package/mobile/bundle/bundle.umd.js +65 -72
  239. package/mobile/bundle/bundle.umd.min.js +1 -1
  240. package/mobile/bundle/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  241. package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +4 -50
  242. package/mobile/bundle/components/ContactsBlock/ContactsBlockContent.d.ts +2 -1
  243. package/mobile/bundle/components/ContentPage/useContentPageData.d.ts +3 -0
  244. package/mobile/bundle/components/Header/DropdownMenu.d.ts +5 -7
  245. package/mobile/bundle/components/Header/HeaderSubMenuItem.d.ts +12 -0
  246. package/mobile/bundle/components/Headline/HeadlineContent.d.ts +1 -0
  247. package/mobile/bundle/components/InvestmentInfo/InvestmentInfoContent.d.ts +1 -2
  248. package/mobile/bundle/components/Tile/TileContent.d.ts +2 -1
  249. package/mobile/bundle/hooks/useIntersectionObserver.d.ts +3 -0
  250. package/mobile/bundle/hooks/useOutsideClick.d.ts +3 -5
  251. package/mobile/bundle/model/IconVersion.d.ts +4 -2
  252. package/mobile/bundle/ui-kit/Tags/Tags.d.ts +6 -0
  253. package/mobile/bundle/ui-kit/Tags/TagsContent.d.ts +6 -0
  254. package/mobile/bundle/ui-kit/TopItem/TopItem.d.ts +1 -1
  255. package/mobile/bundle/utils/getIconWithVersion.d.ts +3 -0
  256. package/mobile/dist/components/AccordionItem/AccordionItem.js +2 -1
  257. package/mobile/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  258. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +7 -20
  259. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  260. package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  261. package/mobile/dist/components/Calculator/Calculator.js +6 -1
  262. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  263. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +4 -50
  264. package/mobile/dist/components/Catalog/Catalog.js +1 -1
  265. package/mobile/dist/components/Catalog/Catalog.js.map +1 -1
  266. package/mobile/dist/components/Catalog/CatalogCard.js +1 -1
  267. package/mobile/dist/components/ContactsBlock/ContactsBlock.js +2 -2
  268. package/mobile/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  269. package/mobile/dist/components/ContactsBlock/ContactsBlockContent.d.ts +2 -1
  270. package/mobile/dist/components/ContentPage/ContentPage.page.json +35 -0
  271. package/mobile/dist/components/ContentPage/useContentPageData.d.ts +3 -0
  272. package/mobile/dist/components/ContentPage/useContentPageData.js +67 -0
  273. package/mobile/dist/components/ContentPage/useContentPageData.js.map +1 -0
  274. package/mobile/dist/components/ErrorBlock/ErrorBlock.js +1 -1
  275. package/mobile/dist/components/ErrorBlock/ErrorBlock.js.map +1 -1
  276. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js +1 -1
  277. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  278. package/mobile/dist/components/Footer/Footer.js +3 -2
  279. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  280. package/mobile/dist/components/Footer/MediaButton.js +2 -1
  281. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  282. package/mobile/dist/components/Gallery/GalleryCardInner.js +3 -2
  283. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  284. package/mobile/dist/components/Header/DropdownMenu.d.ts +5 -7
  285. package/mobile/dist/components/Header/DropdownMenu.js +8 -7
  286. package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
  287. package/mobile/dist/components/Header/HeaderSubMenu.js +8 -21
  288. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  289. package/mobile/dist/components/Header/HeaderSubMenuItem.d.ts +12 -0
  290. package/mobile/dist/components/Header/HeaderSubMenuItem.js +23 -0
  291. package/mobile/dist/components/Header/HeaderSubMenuItem.js.map +1 -0
  292. package/mobile/dist/components/Headline/HeadlineContent.d.ts +1 -0
  293. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.js +4 -4
  294. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  295. package/mobile/dist/components/InvestmentInfo/InvestmentInfoContent.d.ts +1 -2
  296. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  297. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  298. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  299. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  300. package/mobile/dist/components/OfficeMap/OfficeMap.js +3 -3
  301. package/mobile/dist/components/OfficeMap/OfficeMap.js.map +1 -1
  302. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -2
  303. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  304. package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -3
  305. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  306. package/mobile/dist/components/StepsBlock/StepsBlock.js +2 -1
  307. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  308. package/mobile/dist/components/Tabs/renderLinkTab.js +1 -1
  309. package/mobile/dist/components/Tabs/renderLinkTab.js.map +1 -1
  310. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js +1 -0
  311. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  312. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +2 -1
  313. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  314. package/mobile/dist/components/Tile/Tile.js +3 -2
  315. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  316. package/mobile/dist/components/Tile/TileContent.d.ts +2 -1
  317. package/mobile/dist/hooks/useIntersectionObserver.d.ts +3 -0
  318. package/mobile/dist/hooks/useIntersectionObserver.js +19 -0
  319. package/mobile/dist/hooks/useIntersectionObserver.js.map +1 -0
  320. package/mobile/dist/hooks/useOutsideClick.d.ts +3 -5
  321. package/mobile/dist/hooks/useOutsideClick.js +11 -9
  322. package/mobile/dist/hooks/useOutsideClick.js.map +1 -1
  323. package/mobile/dist/index.js +1 -1
  324. package/mobile/dist/index.js.map +1 -1
  325. package/mobile/dist/model/IconVersion.d.ts +4 -2
  326. package/mobile/dist/model/IconVersion.js +10 -0
  327. package/mobile/dist/model/IconVersion.js.map +1 -1
  328. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +3 -4
  329. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  330. package/mobile/dist/ui-kit/BlockWrapper.js +19 -27
  331. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  332. package/mobile/dist/ui-kit/Button/ButtonSection.js +5 -5
  333. package/mobile/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  334. package/mobile/dist/ui-kit/Icon/Icon.js +4 -3
  335. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  336. package/mobile/dist/ui-kit/Logo/Logo.js +5 -1
  337. package/mobile/dist/ui-kit/Logo/Logo.js.map +1 -1
  338. package/mobile/dist/ui-kit/Select/Select.js +2 -2
  339. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  340. package/mobile/dist/ui-kit/Tags/Tags.d.ts +6 -0
  341. package/mobile/dist/ui-kit/Tags/Tags.js +10 -0
  342. package/mobile/dist/ui-kit/Tags/Tags.js.map +1 -0
  343. package/mobile/dist/ui-kit/Tags/TagsContent.d.ts +6 -0
  344. package/mobile/dist/ui-kit/Tags/TagsContent.js +2 -0
  345. package/mobile/dist/ui-kit/Tags/TagsContent.js.map +1 -0
  346. package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  347. package/mobile/dist/utils/getIconWithVersion.d.ts +3 -0
  348. package/mobile/dist/utils/getIconWithVersion.js +8 -0
  349. package/mobile/dist/utils/getIconWithVersion.js.map +1 -0
  350. package/mobile/lib/components/AccordionItem/AccordionItem.js +2 -1
  351. package/mobile/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  352. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +7 -20
  353. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  354. package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  355. package/mobile/lib/components/Calculator/Calculator.js +6 -1
  356. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  357. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +4 -50
  358. package/mobile/lib/components/Catalog/Catalog.js +1 -1
  359. package/mobile/lib/components/Catalog/Catalog.js.map +1 -1
  360. package/mobile/lib/components/Catalog/CatalogCard.js +1 -1
  361. package/mobile/lib/components/ContactsBlock/ContactsBlock.js +2 -2
  362. package/mobile/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  363. package/mobile/lib/components/ContactsBlock/ContactsBlockContent.d.ts +2 -1
  364. package/mobile/lib/components/ContentPage/ContentPage.page.json +35 -0
  365. package/mobile/lib/components/ContentPage/useContentPageData.d.ts +3 -0
  366. package/mobile/lib/components/ContentPage/useContentPageData.js +38 -0
  367. package/mobile/lib/components/ContentPage/useContentPageData.js.map +1 -0
  368. package/mobile/lib/components/ErrorBlock/ErrorBlock.js +1 -1
  369. package/mobile/lib/components/ErrorBlock/ErrorBlock.js.map +1 -1
  370. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js +1 -1
  371. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  372. package/mobile/lib/components/Footer/Footer.js +3 -2
  373. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  374. package/mobile/lib/components/Footer/MediaButton.js +2 -1
  375. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  376. package/mobile/lib/components/Gallery/GalleryCardInner.js +3 -2
  377. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  378. package/mobile/lib/components/Header/DropdownMenu.d.ts +5 -7
  379. package/mobile/lib/components/Header/DropdownMenu.js +8 -7
  380. package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
  381. package/mobile/lib/components/Header/HeaderSubMenu.js +8 -21
  382. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  383. package/mobile/lib/components/Header/HeaderSubMenuItem.d.ts +12 -0
  384. package/mobile/lib/components/Header/HeaderSubMenuItem.js +21 -0
  385. package/mobile/lib/components/Header/HeaderSubMenuItem.js.map +1 -0
  386. package/mobile/lib/components/Headline/HeadlineContent.d.ts +1 -0
  387. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.js +4 -4
  388. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  389. package/mobile/lib/components/InvestmentInfo/InvestmentInfoContent.d.ts +1 -2
  390. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  391. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  392. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  393. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  394. package/mobile/lib/components/OfficeMap/OfficeMap.js +3 -3
  395. package/mobile/lib/components/OfficeMap/OfficeMap.js.map +1 -1
  396. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -2
  397. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  398. package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -3
  399. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  400. package/mobile/lib/components/StepsBlock/StepsBlock.js +2 -1
  401. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  402. package/mobile/lib/components/Tabs/renderLinkTab.js +1 -1
  403. package/mobile/lib/components/Tabs/renderLinkTab.js.map +1 -1
  404. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js +1 -0
  405. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  406. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +2 -1
  407. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  408. package/mobile/lib/components/Tile/Tile.js +3 -2
  409. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  410. package/mobile/lib/components/Tile/TileContent.d.ts +2 -1
  411. package/mobile/lib/hooks/useIntersectionObserver.d.ts +3 -0
  412. package/mobile/lib/hooks/useIntersectionObserver.js +16 -0
  413. package/mobile/lib/hooks/useIntersectionObserver.js.map +1 -0
  414. package/mobile/lib/hooks/useOutsideClick.d.ts +3 -5
  415. package/mobile/lib/hooks/useOutsideClick.js +12 -10
  416. package/mobile/lib/hooks/useOutsideClick.js.map +1 -1
  417. package/mobile/lib/index.js +1 -1
  418. package/mobile/lib/index.js.map +1 -1
  419. package/mobile/lib/model/IconVersion.d.ts +4 -2
  420. package/mobile/lib/model/IconVersion.js +10 -0
  421. package/mobile/lib/model/IconVersion.js.map +1 -1
  422. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +3 -4
  423. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  424. package/mobile/lib/ui-kit/BlockWrapper.js +19 -27
  425. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  426. package/mobile/lib/ui-kit/Button/ButtonSection.js +5 -5
  427. package/mobile/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  428. package/mobile/lib/ui-kit/Icon/Icon.js +4 -3
  429. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  430. package/mobile/lib/ui-kit/Logo/Logo.js +5 -1
  431. package/mobile/lib/ui-kit/Logo/Logo.js.map +1 -1
  432. package/mobile/lib/ui-kit/Select/Select.js +3 -3
  433. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  434. package/mobile/lib/ui-kit/Tags/Tags.d.ts +6 -0
  435. package/mobile/lib/ui-kit/Tags/Tags.js +8 -0
  436. package/mobile/lib/ui-kit/Tags/Tags.js.map +1 -0
  437. package/mobile/lib/ui-kit/Tags/TagsContent.d.ts +6 -0
  438. package/mobile/lib/ui-kit/Tags/TagsContent.js +2 -0
  439. package/mobile/lib/ui-kit/Tags/TagsContent.js.map +1 -0
  440. package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  441. package/mobile/lib/utils/getIconWithVersion.d.ts +3 -0
  442. package/mobile/lib/utils/getIconWithVersion.js +5 -0
  443. package/mobile/lib/utils/getIconWithVersion.js.map +1 -0
  444. package/mobile/src/components/Accordion/Accordion.example.json +52 -2
  445. package/mobile/src/components/AccordionItem/AccordionItem.example.json +23 -5
  446. package/mobile/src/components/AccordionItem/AccordionItem.tsx +15 -2
  447. package/mobile/src/components/BenefitsBlock/BenefitsBlock.example.json +32 -30
  448. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +44 -66
  449. package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +1 -1
  450. package/mobile/src/components/Bonus/Bonus.example.json +10 -8
  451. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +94 -91
  452. package/mobile/src/components/Calculator/Calculator.example.json +21 -19
  453. package/mobile/src/components/Calculator/Calculator.tsx +6 -1
  454. package/mobile/src/components/Calculator/CalculatorContent.ts +2 -53
  455. package/mobile/src/components/CardTransfer/CardTransfer.example.json +10 -8
  456. package/mobile/src/components/Catalog/Catalog.example.json +51 -49
  457. package/mobile/src/components/Catalog/Catalog.tsx +1 -1
  458. package/mobile/src/components/Catalog/CatalogCard.tsx +1 -1
  459. package/mobile/src/components/ComparisonTable/ComparisonTable.example.json +79 -77
  460. package/mobile/src/components/ContactsBlock/ContactsBlock.example.json +45 -43
  461. package/mobile/src/components/ContactsBlock/ContactsBlock.tsx +2 -2
  462. package/mobile/src/components/ContactsBlock/ContactsBlockContent.ts +2 -1
  463. package/mobile/src/components/ContentPage/ContentPage.page.json +3 -2318
  464. package/mobile/src/components/ContentPage/useContentPageData.ts +49 -0
  465. package/mobile/src/components/ErrorBlock/ErrorBlock.example.json +12 -10
  466. package/mobile/src/components/ErrorBlock/ErrorBlock.tsx +1 -4
  467. package/mobile/src/components/ExchangeRateTile/CurrentLocation.tsx +1 -1
  468. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.example.json +7 -5
  469. package/mobile/src/components/Footer/Footer.tsx +15 -5
  470. package/mobile/src/components/Footer/MediaButton.tsx +8 -1
  471. package/mobile/src/components/Gallery/Gallery.example.json +62 -60
  472. package/mobile/src/components/Gallery/Gallery.tsx +1 -1
  473. package/mobile/src/components/Gallery/GalleryCardInner.tsx +8 -3
  474. package/mobile/src/components/GracePeriod/GracePeriod.example.json +61 -74
  475. package/mobile/src/components/Header/DropdownMenu.tsx +46 -63
  476. package/mobile/src/components/Header/Header.example.json +6 -4
  477. package/mobile/src/components/Header/HeaderSubMenu.tsx +21 -40
  478. package/mobile/src/components/Header/HeaderSubMenuItem.tsx +61 -0
  479. package/mobile/src/components/Headline/Headline.example.json +15 -13
  480. package/mobile/src/components/Headline/HeadlineContent.ts +1 -0
  481. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.example.json +76 -74
  482. package/mobile/src/components/InvestmentInfo/InvestmentInfo.example.json +48 -45
  483. package/mobile/src/components/InvestmentInfo/InvestmentInfo.tsx +14 -10
  484. package/mobile/src/components/InvestmentInfo/InvestmentInfo.ui.json +5 -12
  485. package/mobile/src/components/InvestmentInfo/InvestmentInfoContent.ts +1 -2
  486. package/mobile/src/components/LinkDocs/LinkDocs.example.json +31 -29
  487. package/mobile/src/components/LinkDocs/LinkDocsListItemBase.tsx +8 -1
  488. package/mobile/src/components/LinkList/LinkList.example.json +21 -19
  489. package/mobile/src/components/MiniGallery/MiniGallery.example.json +51 -49
  490. package/mobile/src/components/MobileAppTile/MobileAppTile.example.json +33 -30
  491. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  492. package/mobile/src/components/OfficeMap/OfficeMap.tsx +3 -3
  493. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlock.example.json +47 -45
  494. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlock.tsx +5 -2
  495. package/mobile/src/components/OtherProducts/OtherProducts.example.json +28 -1
  496. package/mobile/src/components/OtherProductsItem/OtherProductsItem.example.json +20 -2
  497. package/mobile/src/components/PictureText/PictureText.example.json +28 -26
  498. package/mobile/src/components/ProductBlock/ProductBlock.example.json +37 -35
  499. package/mobile/src/components/ProductBlock/renderBenefit.tsx +2 -3
  500. package/mobile/src/components/ProductGallery/ProductGallery.example.json +66 -64
  501. package/mobile/src/components/ProductTile/ProductTile.example.json +31 -29
  502. package/mobile/src/components/PromoTile/PromoTile.example.json +14 -12
  503. package/mobile/src/components/Recommendation/Recommendation.example.json +52 -50
  504. package/mobile/src/components/StepsBlock/StepsBlock.example.json +54 -52
  505. package/mobile/src/components/StepsBlock/StepsBlock.tsx +2 -1
  506. package/mobile/src/components/Tabs/Tabs.example.json +20 -18
  507. package/mobile/src/components/Tabs/renderLinkTab.tsx +1 -0
  508. package/mobile/src/components/TariffsTable/EmbeddableCellData.tsx +1 -1
  509. package/mobile/src/components/TariffsTable/TariffsTable.example.json +91 -89
  510. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +2 -1
  511. package/mobile/src/components/TextBlock/TextBlock.example.json +14 -12
  512. package/mobile/src/components/Tile/Tile.example.json +21 -19
  513. package/mobile/src/components/Tile/Tile.tsx +3 -0
  514. package/mobile/src/components/Tile/TileContent.ts +3 -1
  515. package/mobile/src/hooks/useIntersectionObserver.ts +23 -0
  516. package/mobile/src/hooks/useOutsideClick.ts +13 -13
  517. package/mobile/src/index.ts +1 -1
  518. package/mobile/src/model/IconVersion.ts +5 -2
  519. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +3 -8
  520. package/mobile/src/ui-kit/BlockWrapper.tsx +29 -41
  521. package/mobile/src/ui-kit/Button/ButtonSection.tsx +5 -12
  522. package/mobile/src/ui-kit/Icon/Icon.tsx +4 -3
  523. package/mobile/src/ui-kit/Logo/Logo.tsx +10 -2
  524. package/mobile/src/ui-kit/Select/Select.tsx +3 -4
  525. package/mobile/src/ui-kit/Tags/Tags.tsx +26 -0
  526. package/mobile/src/ui-kit/Tags/TagsContent.ts +6 -0
  527. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -1
  528. package/mobile/src/utils/getIconWithVersion.ts +7 -0
  529. package/package.json +22 -2
  530. package/src/components/Accordion/Accordion.example.json +52 -2
  531. package/src/components/AccordionItem/AccordionItem.example.json +23 -5
  532. package/src/components/AccordionItem/AccordionItem.mobile.tsx +15 -2
  533. package/src/components/BenefitsBlock/BenefitsBlock.example.json +32 -30
  534. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +6 -6
  535. package/src/components/BenefitsBlock/BenefitsBlock.tsx +44 -66
  536. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +1 -1
  537. package/src/components/Bonus/Bonus.example.json +10 -8
  538. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +94 -91
  539. package/src/components/Calculator/Calculator.example.json +21 -19
  540. package/src/components/Calculator/Calculator.tsx +6 -1
  541. package/src/components/Calculator/CalculatorContent.ts +2 -53
  542. package/src/components/CardTransfer/CardTransfer.example.json +10 -8
  543. package/src/components/Catalog/Catalog.example.json +51 -49
  544. package/src/components/Catalog/Catalog.tsx +1 -1
  545. package/src/components/Catalog/CatalogCard.tsx +1 -1
  546. package/src/components/ComparisonTable/ComparisonTable.example.json +79 -77
  547. package/src/components/ComparisonTable/HeaderCell.tsx +3 -1
  548. package/src/components/ContactsBlock/ContactsBlock.example.json +45 -43
  549. package/src/components/ContactsBlock/ContactsBlock.fixture.tsx +46 -39
  550. package/src/components/ContactsBlock/ContactsBlock.tsx +2 -2
  551. package/src/components/ContactsBlock/ContactsBlockContent.ts +2 -1
  552. package/src/components/ContentPage/ContentPage.fixture.mobile.tsx +13 -10
  553. package/src/components/ContentPage/ContentPage.fixture.tsx +24 -16
  554. package/src/components/ContentPage/ContentPage.page.json +3 -2318
  555. package/src/components/ContentPage/useContentPageData.ts +49 -0
  556. package/src/components/ErrorBlock/ErrorBlock.example.json +12 -10
  557. package/src/components/ErrorBlock/ErrorBlock.tsx +1 -4
  558. package/src/components/ExchangeRateTile/CurrentLocation.tsx +1 -1
  559. package/src/components/ExchangeRateTile/ExchangeRateTile.example.json +7 -5
  560. package/src/components/Footer/Footer.mobile.tsx +15 -5
  561. package/src/components/Footer/MediaButton.tsx +8 -1
  562. package/src/components/Gallery/Gallery.example.json +62 -60
  563. package/src/components/Gallery/Gallery.fixture.tsx +1 -0
  564. package/src/components/Gallery/Gallery.mobile.tsx +1 -1
  565. package/src/components/Gallery/GalleryCardInner.tsx +8 -3
  566. package/src/components/GracePeriod/GracePeriod.example.json +61 -74
  567. package/src/components/Header/DropdownMenu.tsx +46 -63
  568. package/src/components/Header/Header.example.json +6 -4
  569. package/src/components/Header/HeaderSubMenu.tsx +21 -40
  570. package/src/components/Header/HeaderSubMenuItem.tsx +61 -0
  571. package/src/components/Headline/Headline.example.json +15 -13
  572. package/src/components/Headline/HeadlineContent.ts +1 -0
  573. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.example.json +76 -74
  574. package/src/components/InvestmentInfo/InvestmentInfo.example.json +48 -45
  575. package/src/components/InvestmentInfo/InvestmentInfo.fixture.tsx +3 -4
  576. package/src/components/InvestmentInfo/InvestmentInfo.tsx +14 -10
  577. package/src/components/InvestmentInfo/InvestmentInfo.ui.json +5 -12
  578. package/src/components/InvestmentInfo/InvestmentInfoContent.ts +1 -2
  579. package/src/components/LinkDocs/LinkDocs.example.json +31 -29
  580. package/src/components/LinkDocs/LinkDocsListItemBase.tsx +8 -1
  581. package/src/components/LinkList/LinkList.example.json +21 -19
  582. package/src/components/MiniGallery/MiniGallery.example.json +51 -49
  583. package/src/components/MobileAppTile/MobileAppTile.example.json +33 -30
  584. package/src/components/MobileAppTile/MobileAppTile.mobile.tsx +1 -1
  585. package/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  586. package/src/components/OfficeMap/OfficeMap.tsx +3 -3
  587. package/src/components/OfficeServicesBlock/OfficeServicesBlock.example.json +47 -45
  588. package/src/components/OfficeServicesBlock/OfficeServicesBlock.tsx +5 -2
  589. package/src/components/OtherProducts/OtherProducts.example.json +28 -1
  590. package/src/components/OtherProductsItem/OtherProductsItem.example.json +20 -2
  591. package/src/components/PictureText/PictureText.example.json +28 -26
  592. package/src/components/ProductBlock/ProductBlock.example.json +37 -35
  593. package/src/components/ProductBlock/ProductBlock.fixture.tsx +3 -1
  594. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  595. package/src/components/ProductBlock/renderBenefit.tsx +2 -3
  596. package/src/components/ProductGallery/ProductGallery.example.json +66 -64
  597. package/src/components/ProductTile/ProductTile.example.json +31 -29
  598. package/src/components/PromoTile/PromoTile.example.json +14 -12
  599. package/src/components/Recommendation/Recommendation.example.json +52 -50
  600. package/src/components/StepsBlock/StepsBlock.example.json +54 -52
  601. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +4 -4
  602. package/src/components/StepsBlock/StepsBlock.fixture.tsx +4 -3
  603. package/src/components/StepsBlock/StepsBlock.mobile.tsx +2 -1
  604. package/src/components/StepsBlock/StepsBlock.tsx +5 -3
  605. package/src/components/Tabs/Tabs.example.json +20 -18
  606. package/src/components/Tabs/renderLinkTab.tsx +1 -0
  607. package/src/components/TariffsTable/EmbeddableCellData.mobile.tsx +1 -1
  608. package/src/components/TariffsTable/TariffsTable.example.json +91 -89
  609. package/src/components/TariffsTable/TariffsTableRow.tsx +2 -1
  610. package/src/components/TextBlock/TextBlock.example.json +14 -12
  611. package/src/components/Tile/Tile.example.json +21 -19
  612. package/src/components/Tile/Tile.fixture.tsx +7 -0
  613. package/src/components/Tile/Tile.tsx +3 -0
  614. package/src/components/Tile/TileContent.ts +3 -1
  615. package/src/hooks/useIntersectionObserver.ts +23 -0
  616. package/src/hooks/useOutsideClick.ts +13 -13
  617. package/src/index.ts +1 -1
  618. package/src/model/IconVersion.ts +5 -2
  619. package/src/ui-kit/BenefitItem/BenefitItem.tsx +3 -8
  620. package/src/ui-kit/BlockWrapper.tsx +29 -41
  621. package/src/ui-kit/Button/ButtonSection.tsx +5 -12
  622. package/src/ui-kit/HeaderItem/HeaderItem.tsx +3 -3
  623. package/src/ui-kit/Icon/Icon.tsx +4 -3
  624. package/src/ui-kit/Logo/Logo.mobile.tsx +10 -2
  625. package/src/ui-kit/Logo/Logo.tsx +1 -1
  626. package/src/ui-kit/Select/Select.tsx +3 -4
  627. package/src/ui-kit/Tags/Tags.fixture.tsx +9 -0
  628. package/src/ui-kit/Tags/Tags.tsx +26 -0
  629. package/src/ui-kit/Tags/TagsContent.ts +6 -0
  630. package/src/ui-kit/TopItem/TopItem.tsx +1 -1
  631. package/src/utils/getIconWithVersion.ts +7 -0
  632. package/tailwind.config.cjs +2 -1
  633. package/bundle/ui-kit/IntersectionObserverTag.d.ts +0 -11
  634. package/dist/ui-kit/IntersectionObserverTag.d.ts +0 -11
  635. package/dist/ui-kit/IntersectionObserverTag.js +0 -22
  636. package/dist/ui-kit/IntersectionObserverTag.js.map +0 -1
  637. package/lib/ui-kit/IntersectionObserverTag.d.ts +0 -11
  638. package/lib/ui-kit/IntersectionObserverTag.js +0 -20
  639. package/lib/ui-kit/IntersectionObserverTag.js.map +0 -1
  640. package/mobile/bundle/ui-kit/IntersectionObserverTag.d.ts +0 -11
  641. package/mobile/dist/ui-kit/IntersectionObserverTag.d.ts +0 -11
  642. package/mobile/dist/ui-kit/IntersectionObserverTag.js +0 -22
  643. package/mobile/dist/ui-kit/IntersectionObserverTag.js.map +0 -1
  644. package/mobile/lib/ui-kit/IntersectionObserverTag.d.ts +0 -11
  645. package/mobile/lib/ui-kit/IntersectionObserverTag.js +0 -20
  646. package/mobile/lib/ui-kit/IntersectionObserverTag.js.map +0 -1
  647. package/mobile/src/ui-kit/IntersectionObserverTag.tsx +0 -45
  648. package/src/ui-kit/IntersectionObserverTag.tsx +0 -45
@@ -261,6 +261,21 @@
261
261
  }
262
262
  }
263
263
 
264
+ function useIntersectionObserver(observerCallback, observerOptions) {
265
+ const ref = useRef(null);
266
+ useEffect(() => {
267
+ if (!ref.current) {
268
+ return undefined;
269
+ }
270
+ const intersectionObserver = new IntersectionObserver(observerCallback, observerOptions);
271
+ intersectionObserver.observe(ref.current);
272
+ return () => {
273
+ intersectionObserver.disconnect();
274
+ };
275
+ }, [observerCallback, observerOptions]);
276
+ return ref;
277
+ }
278
+
264
279
  const changeHashOnObserve = ({ anchor, anchorClickRef }) => (entries) => {
265
280
  if (!entries?.length) {
266
281
  return;
@@ -278,58 +293,33 @@
278
293
  }
279
294
  };
280
295
 
281
- const IntersectionObserverTag = JSX((props) => {
282
- const { tag = 'section', observerCallback, observerOptions, className = '', anchor = null, children, } = props;
283
- const tagRef = useRef(null);
284
- useEffect(() => {
285
- if (!tagRef.current) {
286
- return undefined;
287
- }
288
- const intersectionObserver = new IntersectionObserver(observerCallback, observerOptions);
289
- intersectionObserver.observe(tagRef.current);
290
- return () => {
291
- intersectionObserver.disconnect();
292
- };
293
- }, [observerCallback, observerOptions]);
294
- const Tag = tag;
295
- return (jsx(Tag, { ref: tagRef, className: className, id: anchor, children: children }));
296
- });
297
-
298
296
  const THRESHOLD_ACCURACY = 100; // Decimals number (100 is for two decimals number, 0.**)
299
297
  const THRESHOLD_ARRAY_LENGTH = 18;
300
298
  const THRESHOLD_ARRAY_START_VALUE = (THRESHOLD_ACCURACY - THRESHOLD_ARRAY_LENGTH) / THRESHOLD_ACCURACY;
301
299
  const OBSERVER_OPTIONS = {
302
300
  threshold: new Array(THRESHOLD_ARRAY_LENGTH).fill(0).map(getIntersectionThreshold),
303
301
  };
304
- const BlockWrapper = JSX(({ anchor, className, children, tag = 'section', labels }) => {
302
+ const BlockWrapper = JSX(({ anchor, className, children, tag = 'section', labels, role }) => {
305
303
  const Tag = tag;
306
- const [shouldRenderBlock, setShouldRenderBlock] = useState(true);
304
+ const [isVisible, setVisible] = useState(true);
307
305
  const anchorClickRef = useRef({});
308
306
  const observerCallback = useMemo(() => changeHashOnObserve({ anchor, anchorClickRef }), [anchor]);
309
- useEffect(() => {
310
- const anchorClickCleanup = EventBus.inst.subscribe('anchorClick', (e) => {
311
- setShouldRenderBlock(true);
312
- anchorClickRef.current = e;
313
- });
314
- const tabCleanup = EventBus.inst.subscribe('tab', (event) => {
315
- if (event.type === 'group') {
316
- const blockHasSettgins = labels?.length || anchor;
317
- setShouldRenderBlock(event.label ? !blockHasSettgins || Boolean(labels?.includes(event.label)) : true);
318
- }
319
- else {
320
- changeHash(event.label);
321
- setShouldRenderBlock(true);
322
- }
323
- });
324
- return () => {
325
- anchorClickCleanup();
326
- tabCleanup();
327
- };
328
- }, []);
329
- if (!shouldRenderBlock) {
330
- return null;
331
- }
332
- return anchor ? (jsx(IntersectionObserverTag, { tag: tag, className: className, observerCallback: observerCallback, observerOptions: OBSERVER_OPTIONS, anchor: anchor, children: children })) : (jsx(Tag, { className: className, children: children }));
307
+ const ref = useIntersectionObserver(observerCallback, OBSERVER_OPTIONS);
308
+ useEffect(() => EventBus.inst.subscribe('anchorClick', (e) => {
309
+ setVisible(true);
310
+ anchorClickRef.current = e;
311
+ }), []);
312
+ useEffect(() => EventBus.inst.subscribe('tab', (event) => {
313
+ if (event.type === 'group') {
314
+ const hasSettings = labels?.length || anchor;
315
+ setVisible(event.label ? !hasSettings || Boolean(labels?.includes(event.label)) : true);
316
+ }
317
+ else {
318
+ changeHash(event.label);
319
+ setVisible(true);
320
+ }
321
+ }), []);
322
+ return isVisible ? (jsx(Tag, { className: className, role: role, ...(anchor ? { id: anchor, ref } : {}), children: children })) : null;
333
323
  });
334
324
  function getIntersectionThreshold(_, i) {
335
325
  const value = (i + 1) / THRESHOLD_ACCURACY + THRESHOLD_ARRAY_START_VALUE;
@@ -383,13 +373,14 @@
383
373
  });
384
374
 
385
375
  const svgUseStyleMap = {
386
- normal: 'text-primary-main',
376
+ normal: '',
377
+ color: 'text-primary-main',
387
378
  black: 'text-black',
388
379
  white: 'text-black',
389
380
  };
390
- const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${name}`, title = alt, iconVersion = 'normal', asSVG, ...imgProps }) => {
381
+ const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${name}`, title = alt, iconVersion = 'color', asSVG, ...imgProps }) => {
391
382
  const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
392
- if (asSVG) {
383
+ if (asSVG && iconVersion !== 'normal') {
393
384
  return (jsx(Background, { className: className, children: jsxs("svg", { className: [
394
385
  getSvgSize(className, imgProps.width),
395
386
  svgUseStyleMap[iconVersion],
@@ -403,7 +394,7 @@
403
394
  const getSvgSize = (className, width) => width ? `width: ${width}px ` : 'w-full h-full';
404
395
  const Background = JSX(({ className, children }) => className ? jsx("div", { className: className, children: children }) : children);
405
396
 
406
- function getIconVersion$1(image) {
397
+ function getIconVersion(image) {
407
398
  return typeof image === 'string' ? 'normal' : image?.iconVersion || 'normal';
408
399
  }
409
400
 
@@ -445,7 +436,7 @@
445
436
  // backwards compatibility with existing icons in usage
446
437
  const icon = typeof image === 'string' ? image : image.icon;
447
438
  if (icon || icon === '') {
448
- return icon.length ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: getIconVersion$1(image), name: icon, ...iconProps })) : null;
439
+ return icon.length ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: getIconVersion(image), name: icon, ...iconProps })) : null;
449
440
  }
450
441
  return (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, isMobile: isMobile }));
451
442
  });
@@ -455,6 +446,11 @@
455
446
  AccordionItem.childrenTypes = [];
456
447
  const FoldButton = JSX(({ label, icon, onClick }) => (jsxs("button", { className: "border-none bg-transparent px-0 pt-5 pb-3.5 flex justify-between text-left w-full font-sans text-h6 group cursor-pointer", onClick: onClick, children: [jsx("span", { className: "text-xl font-medium pr-2.5", children: label }), jsx(ImgInner, { image: icon, className: "text-primary-main flex-shrink-0", width: "24", height: "24", asSVG: true })] })));
457
448
 
449
+ const getIconWithVersion = (icon, version = 'primary') => ({
450
+ ...icon,
451
+ iconVersion: icon?.iconVersion ?? (version === 'secondary' ? 'white' : 'color'),
452
+ });
453
+
458
454
  const benefitsBlockStyleMap = {
459
455
  primary: 'bg-white',
460
456
  secondary: 'bg-primary-main',
@@ -471,29 +467,15 @@
471
467
  primary: 'bg-main-divider text-primary-main',
472
468
  secondary: 'bg-white/30 text-black',
473
469
  };
474
- const BenefitsBlock = JSX(({ className = '', title, benefitList, benefitsBlockVersion = 'primary', ...rest }) => {
475
- return (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${benefitsBlockStyleMap[benefitsBlockVersion]}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[benefitsBlockVersion]}`, title: title })) : null, benefitList?.length ? renderBenefits$1(benefitList, benefitsBlockVersion) : null] }));
476
- });
477
- const renderBenefits$1 = (benefitList, benefitsBlockVersion) => {
478
- return (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(benefitsBlockVersion)) }));
479
- };
480
- const setIconVersion = (benefitIcon, benefitsBlockVersion) => {
481
- if (!benefitIcon.icon || benefitIcon?.iconVersion) {
482
- return benefitIcon;
483
- }
484
- benefitIcon.iconVersion = benefitsBlockVersion === 'secondary' ? 'white' : 'normal';
485
- return benefitIcon;
486
- };
487
- const renderStep = (benefitsBlockVersion) => (benefit, i) => {
470
+ const BenefitsBlock = JSX(({ className = '', title, benefitList, version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${benefitsBlockStyleMap[version]}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[version]}`, title: title })) : null, benefitList?.length ? renderBenefits$1(benefitList, version) : null] })));
471
+ const renderBenefits$1 = (benefitList, version) => (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(version)) }));
472
+ const renderStep = (version) => (benefit, i) => {
488
473
  const description = (benefit?.description || undefined);
489
- return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[benefitsBlockVersion]}`, image: setIconVersion(benefit.icon, benefitsBlockVersion), asSVG: true })) : null, benefit?.icon?.src ? jsx(ImgInner, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[benefitsBlockVersion]}`, children: benefit.label })) : null, renderDescription$3(description, benefitsBlockVersion)] })] }, String(i)));
474
+ return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[version]}`, image: getIconWithVersion(benefit.icon, version), asSVG: true })) : null, benefit?.icon?.src ? jsx(ImgInner, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[version]}`, children: benefit.label })) : null, renderDescription$3(description, version)] })] }, String(i)));
490
475
  };
491
- const renderDescription$3 = (description, benefitsBlockVersion) => {
476
+ const renderDescription$3 = (description, version) => {
492
477
  const benefitType = description ? description?.benefitType : null;
493
- if (!benefitType) {
494
- return null;
495
- }
496
- return description ? (jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[benefitsBlockVersion]}`, children: benefitType === 'list'
478
+ return description && benefitType ? (jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[version]}`, children: benefitType === 'list'
497
479
  ? renderListBenefit(description)
498
480
  : renderTextBenefit(description) })) : null;
499
481
  };
@@ -644,17 +626,17 @@
644
626
  });
645
627
  function renderButton({ button, buttonClassName, index }) {
646
628
  const { icon, iconRight, version, ...rest } = button;
647
- const iconVersion = version === 'secondary' ? 'normal' : 'white';
648
- const leftIcon = renderButtonIcon({ icon, iconVersion });
649
- const rightIcon = renderButtonIcon({ icon: iconRight, iconVersion });
629
+ const iconVersion = version === 'secondary' ? 'color' : 'white';
630
+ const leftIcon = renderButtonIcon({ ...icon, iconVersion: iconVersion });
631
+ const rightIcon = renderButtonIcon({ ...iconRight, iconVersion: iconVersion });
650
632
  return (jsx(Button, { className: buttonClassName, appendLeft: leftIcon, appendRight: rightIcon, version: version, ...rest }, index ? String(index) : ''));
651
633
  }
652
- const renderButtonIcon = ({ icon, iconVersion }) => {
634
+ const renderButtonIcon = (icon) => {
653
635
  if (!icon?.icon && !icon?.src) {
654
636
  return null;
655
637
  }
656
638
  const iconWidth = icon?.size?.width ? `${icon.size.width}` : '24';
657
- return jsx(ImgInner, { image: { ...icon, iconVersion: iconVersion }, width: iconWidth, height: "24", asSVG: true });
639
+ return jsx(ImgInner, { image: { ...icon }, width: iconWidth, height: "24", asSVG: true });
658
640
  };
659
641
 
660
642
  const Description = JSX((props) => {
@@ -1164,8 +1146,13 @@
1164
1146
  ? 'text-l-light text-white'
1165
1147
  : `text-m-light text-secondary-text`;
1166
1148
  const iconClassName = isActiveBtn ? '' : `text-primary-main`;
1149
+ const iconVersion = tab?.icon?.iconVersion;
1150
+ const activeIconStyle = isActiveBtn ? 'white' : 'normal';
1167
1151
  return (jsxs("button", { type: "button", onClick: onClick, "aria-label": tab?.title, className: `box-border relative border border-main-stroke cursor-pointer text-left border-b-0 flex hover:h-[88px]
1168
- ${btnClassName}`, children: [jsx(ImgInner, { className: `h-6 w-6 min-w-6 min-h-6 mr-4 ${iconClassName}`, image: { ...tab?.icon, iconVersion: isActiveBtn ? 'white' : 'normal' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "border-0", children: [jsx("div", { className: `${btnTitleClassName}`, children: tab?.title }), jsx("div", { className: `${btnDescClassName}`, children: tab.description })] })] }, String(i)));
1152
+ ${btnClassName}`, children: [jsx(ImgInner, { className: `h-6 w-6 min-w-6 min-h-6 mr-4 ${iconClassName}`, image: {
1153
+ ...tab?.icon,
1154
+ iconVersion: iconVersion ?? activeIconStyle,
1155
+ }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "border-0", children: [jsx("div", { className: `${btnTitleClassName}`, children: tab?.title }), jsx("div", { className: `${btnDescClassName}`, children: tab.description })] })] }, String(i)));
1169
1156
  }
1170
1157
  function renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex }) {
1171
1158
  return (jsxs("div", { children: [jsx("div", { style: { transform: `translateX(-${tabsShift * 388}px)` }, className: "flex flex-col justify-end items-center h-[126px] pt-9 box-border duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap items-end gap-2", children: tabsNav.map((tab, i) => renderNavButton$2({
@@ -1253,7 +1240,7 @@
1253
1240
  white: 'bg-white',
1254
1241
  };
1255
1242
  const CatalogCard = JSX(({ className = '', title, description, image, price, button, colors }) => {
1256
- return (jsxs("section", { className: `border border-solid box-border border-main-stroke p-[30px] min-w-[402px] flex flex-col justify-left ${className}`, role: "listitem", children: [image?.src ? jsx(ImgInner, { className: "mb-5 flex justify-center", image: image }) : null, title ? (jsx(Heading, { headingType: "h6", as: "h4", className: "text-left mb-1.5", title: title })) : null, description ? jsx("div", { className: "text-m-light text-left mb-4", children: description }) : null, colors?.length ? (jsxs("div", { className: "flex mb-4 text-m-light text-secondary-text", children: [jsx("div", { className: "mr-1.5", children: "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430: " }), colors.map(renderColorOption)] })) : null, price ? jsxs("div", { className: "text-h3 text-left", children: [price, "\u00A0\u20BD"] }) : null, button ? renderButton({ button, buttonClassName: 'mt-5 w-full' }) : null] }));
1243
+ return (jsxs("section", { className: `border border-solid box-border border-main-stroke p-[30px] min-w-[402px] flex flex-col justify-left ${className}`, role: "listitem", children: [image?.src ? jsx(ImgInner, { className: "mb-5 flex justify-center", image: image }) : null, title ? (jsx(Heading, { headingType: "h6", as: "h4", className: "text-left mb-1.5", title: title })) : null, description ? jsx("div", { className: "text-m-light text-left mb-4", children: description }) : null, colors?.length ? (jsxs("div", { className: "flex mb-4 text-s-light text-secondary-text", children: [jsx("div", { className: "mr-1.5", children: "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430: " }), colors.map(renderColorOption)] })) : null, price ? jsxs("div", { className: "text-h3 text-left", children: [price, "\u00A0\u20BD"] }) : null, button ? renderButton({ button, buttonClassName: 'mt-5 w-full' }) : null] }));
1257
1244
  });
1258
1245
  const renderColorOption = (color, i) => (jsx("span", { className: `w-6 h-6 ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap$1[color]}` }, String(i)));
1259
1246
 
@@ -1262,7 +1249,7 @@
1262
1249
  const CARD_SHIFT$1 = 430;
1263
1250
  const Catalog = JSX(({ context, cards = [], className = '', title, description, ...rest }) => {
1264
1251
  const [activeCardIndex, setActiveCardIndex] = useState(0);
1265
- return (jsxs(BlockWrapper, { context: context, className: `bg-white relative font-sans p-12 overflow-hidden text-center ${className}`, ...rest, children: [jsx(Headline, { context: context, className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center" }), jsx("div", { className: "flex duration-1000 gap-3.5 mt-8", style: { transform: `translateX(-${activeCardIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map(renderCatalogCard(context)) : null }), renderNavButtons$1({
1252
+ return (jsxs(BlockWrapper, { context: context, className: `bg-white relative font-sans p-[50px] overflow-hidden text-center ${className}`, ...rest, children: [jsx(Headline, { context: context, className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center" }), jsx("div", { className: "flex duration-1000 gap-3.5 mt-8", style: { transform: `translateX(-${activeCardIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map(renderCatalogCard(context)) : null }), renderNavButtons$1({
1266
1253
  cardsCount: cards.length,
1267
1254
  activeCardIndex,
1268
1255
  setActiveCardIndex,
@@ -1301,7 +1288,7 @@
1301
1288
  const COLS_LENGTH_FOR_SCROLL$1 = 2;
1302
1289
  const COLUMN_WIDTH$2 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1303
1290
 
1304
- const HeaderCell = JSX(({ icon, image, title, link }) => (jsxs("div", { className: `w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-[46px] ${BORDER_CLASSES$1} ${GRADIENT}`, role: "columnheader", children: [icon && !image?.src && (jsx(ImgInner, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: icon, width: "63", height: "63" })), image?.src && jsx(ImgInner, { className: "mb-[18px]", image: image }), title ? (jsx(Heading, { headingType: "h4", as: "h3", className: "text-center text-white", title: title })) : null, link?.text && (jsx("div", { className: "mt-auto w-full", children: jsx(Button, { href: link.href, target: link.target, className: "mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active", children: jsx("div", { className: "text-xs-light font-medium py-[11px]", children: link.text }) }) }))] })));
1291
+ const HeaderCell = JSX(({ icon, image, title, link }) => (jsxs("div", { className: `w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-[46px] ${BORDER_CLASSES$1} ${GRADIENT}`, role: "columnheader", children: [icon && !image?.src && (jsx(ImgInner, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: getIconWithVersion(icon), width: "63", height: "63", asSVG: true })), image?.src && jsx(ImgInner, { className: "mb-[18px]", image: image }), title ? (jsx(Heading, { headingType: "h4", as: "h3", className: "text-center text-white", title: title })) : null, link?.text && (jsx("div", { className: "mt-auto w-full", children: jsx(Button, { href: link.href, target: link.target, className: "mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active", children: jsx("div", { className: "text-xs-light font-medium py-[11px]", children: link.text }) }) }))] })));
1305
1292
 
1306
1293
  const carouselContainerClassesMap = {
1307
1294
  comparison: 'flex gap-4 duration-1000',
@@ -1378,8 +1365,8 @@
1378
1365
  primary: 'bg-white',
1379
1366
  secondary: 'bg-primary-main text-white',
1380
1367
  };
1381
- const ContactsBlock = JSX(({ className = '', contacts, context, info, contactsBlockVersion = 'secondary', ...rest }) => {
1382
- return (jsxs(BlockWrapper, { context: context, className: `${contactsBlockStyleMap[contactsBlockVersion]} flex p-12 ${className}`, ...rest, children: [info ? renderInfo(info) : null, contacts ? renderContacts(contacts) : null] }));
1368
+ const ContactsBlock = JSX(({ className = '', contacts, context, info, version = 'secondary', ...rest }) => {
1369
+ return (jsxs(BlockWrapper, { context: context, className: `${contactsBlockStyleMap[version]} flex p-12 ${className}`, ...rest, children: [info ? renderInfo(info) : null, contacts ? renderContacts(contacts) : null] }));
1383
1370
  });
1384
1371
  const renderInfo = (info) => (jsx("div", { className: "flex grow basis-0 pr-11", children: info.map(({ title, description, button }, index) => (jsxs("div", { className: "grow basis-0 pr-11 last:pr-0", children: [jsx(Heading, { as: "h5", headingType: "h5", title: title, className: "pb-2.5" }), jsx(Description, { className: "text-l-light pb-6", description: description }), button ? jsx(Button, { ...button }) : null] }, String(index)))) }));
1385
1372
  const renderContacts = (contacts) => (jsx("div", { className: "flex grow basis-0", children: contacts.map((contactsColumn, index) => renderContactsColumn({ contactsColumn, index })) }));
@@ -1397,7 +1384,7 @@
1397
1384
  const ErrorBlock = JSX(({ context, className = '', title, subtitle, error, button }) => {
1398
1385
  const { useRouter, handlerDecorator } = context;
1399
1386
  const router = useRouter();
1400
- return (jsxs("section", { className: `flex flex-col justify-center items-center mt-12 ${className}`, role: "listitem", children: [jsx("div", { className: "flex justify-center py-20", children: renderErrorContent(error) }), title ? jsx(Heading, { headingType: "h1", className: "text-left mb-4", title: title }) : null, subtitle ? (jsx("div", { className: "font-sans text-xl-light mb-7 max-w-[613px] text-center", children: subtitle })) : null, button?.text ? (jsx(Button, { className: "py-4 px-9", version: button?.version, ...useLink({ router, handlerDecorator }, button), children: button.text })) : null] }));
1387
+ return (jsxs("section", { className: `flex flex-col justify-center items-center mt-12 ${className}`, children: [jsx("div", { className: "flex justify-center py-20", children: renderErrorContent(error) }), title ? jsx(Heading, { headingType: "h1", className: "text-left mb-4", title: title }) : null, subtitle ? (jsx("div", { className: "font-sans text-xl-light mb-7 max-w-[613px] text-center", children: subtitle })) : null, button?.text ? (jsx(Button, { className: "py-4 px-9", version: button?.version, ...useLink({ router, handlerDecorator }, button), children: button.text })) : null] }));
1401
1388
  });
1402
1389
 
1403
1390
  const BaseTile = JSX(({ className = '', title = '', children, buttons, image }) => {
@@ -1430,7 +1417,7 @@
1430
1417
  return (jsxs("tr", { className: "pb-1 text-h6", children: [jsx("td", { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [currency ? (jsx(ImgInner, { image: { icon: CURRENCY_ICONS_MAP[currency] }, width: "24", height: "24" })) : null, jsx("span", { className: "ml-2", children: currency })] }) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.saleExchangeRate) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.buyExchangeRate) })] }, currency));
1431
1418
  };
1432
1419
 
1433
- const CurrentLocation = JSX(({ className = '', address }) => (jsxs("div", { className: `flex ${className}`, children: [jsx(ImgInner, { image: { icon: 'GpsIcon' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "ml-3", children: [address ? jsx("p", { className: "text-primary-main m-0 mb-1 text-l", children: address }) : null, jsx("p", { className: "text-secondary-text m-0 text-m", children: "\u041A\u0443\u0440\u0441 \u0443\u043A\u0430\u0437\u0430\u043D \u0434\u043B\u044F \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043E \u043E\u0444\u0438\u0441\u0430" })] })] })));
1420
+ const CurrentLocation = JSX(({ className = '', address }) => (jsxs("div", { className: `flex ${className}`, children: [jsx(ImgInner, { image: { icon: 'GpsIcon' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "ml-3", children: [address ? jsx("p", { className: "text-primary-main m-0 mb-1 text-l", children: address }) : null, jsx("p", { className: "text-secondary-text m-0 text-m", children: "\u041A\u0443\u0440\u0441 \u0443\u043A\u0430\u0437\u0430\u043D \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u0444\u0438\u0441\u0430" })] })] })));
1434
1421
 
1435
1422
  const roundTo = (value, precision = 2) => {
1436
1423
  const factor = 10 ** precision;
@@ -1460,28 +1447,30 @@
1460
1447
  [() => true, () => props.handleConvert(props.value)],
1461
1448
  ])(props)?.();
1462
1449
 
1463
- function useOutsideClick(wrapperRef, setIsOpen) {
1450
+ function useOutsideClick(onClick) {
1451
+ const targetRef = useRef(null);
1464
1452
  useEffect(() => {
1465
- function handleClickOutside(event) {
1466
- if (wrapperRef &&
1467
- wrapperRef.current &&
1468
- event.target instanceof HTMLElement &&
1469
- !wrapperRef.current.contains(event.target)) {
1470
- setIsOpen(false);
1453
+ const handleClickOutside = (event) => {
1454
+ if (targetRef &&
1455
+ targetRef.current &&
1456
+ event.target instanceof Node &&
1457
+ !targetRef.current.contains(event.target)) {
1458
+ onClick();
1471
1459
  }
1472
- }
1460
+ };
1473
1461
  document.addEventListener('click', handleClickOutside);
1474
1462
  return () => {
1475
1463
  document.removeEventListener('click', handleClickOutside);
1476
1464
  };
1477
- }, []);
1465
+ }, [onClick]);
1466
+ return targetRef;
1478
1467
  }
1479
1468
 
1480
1469
  const Select = JSX(({ className = '', isBorder = true, label, options = [], value, onChange, placeholder = '' }) => {
1481
1470
  const [selectedItem, setSelectedItem] = useState(options[0] || { key: '', text: '' });
1482
1471
  const [isOpen, setIsOpen] = useState(false);
1483
- const wrapperRef = useRef(null);
1484
- useOutsideClick(wrapperRef, setIsOpen);
1472
+ const handleClickOutside = useCallback(() => setIsOpen(false), []);
1473
+ const wrapperRef = useOutsideClick(handleClickOutside);
1485
1474
  const choiceOption = (option) => {
1486
1475
  setSelectedItem(option);
1487
1476
  setIsOpen(false);
@@ -1626,7 +1615,7 @@
1626
1615
  };
1627
1616
 
1628
1617
  const ICON_VERSION_MAP = {
1629
- 'bg-white': 'normal',
1618
+ 'bg-white': 'color',
1630
1619
  transparent: 'white',
1631
1620
  };
1632
1621
  const SVG_COLOR = {
@@ -1767,7 +1756,7 @@
1767
1756
  ? 'bg-white hover:bg-secondary-hover'
1768
1757
  : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
1769
1758
  const isPrimary = version === 'primary';
1770
- return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: icon ? (jsx(ImgInner, { image: icon, imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
1759
+ return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: icon ? (jsx(ImgInner, { image: getIconWithVersion(icon), imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
1771
1760
  });
1772
1761
 
1773
1762
  const SocialMedia = JSX(({ className = '', media, version, context, children }) => {
@@ -1846,9 +1835,9 @@
1846
1835
  });
1847
1836
 
1848
1837
  const GalleryCardInner = JSX(({ title, headlineSmallVersion = 'H6', description, additionalDescription, icon, items, button, version, isDotted = true, align = 'center', }) => {
1849
- return (jsxs("div", { className: `h-full flex flex-col justify-between ${AlignText[align]}`, children: [jsxs("div", { className: "flex flex-col h-full", children: [renderImage$1(icon), renderCardTitle(headlineSmallVersion, title), renderDescription$2(description, title), items?.length ? renderItems$1(items, isDotted, version) : null, renderAdditionalDescription$1(additionalDescription)] }), button?.text ? renderButton({ button, buttonClassName: 'mt-6' }) : null] }));
1838
+ return (jsxs("div", { className: `h-full flex flex-col justify-between ${AlignText[align]}`, children: [jsxs("div", { className: "flex flex-col h-full", children: [renderImage$1(icon, version), renderCardTitle(headlineSmallVersion, title), renderDescription$2(description, title), items?.length ? renderItems$1(items, isDotted, version) : null, renderAdditionalDescription$1(additionalDescription)] }), button?.text ? renderButton({ button, buttonClassName: 'mt-6' }) : null] }));
1850
1839
  });
1851
- const renderImage$1 = (image) => (jsxs("div", { className: "flex justify-center", children: [image?.src ? jsx(ImgInner, { className: "mb-5", image: image }) : null, image?.icon ? (jsx(ImgInner, { className: `w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`, image: image, asSVG: true })) : null] }));
1840
+ const renderImage$1 = (image, version) => (jsxs("div", { className: "flex justify-center", children: [image?.src ? jsx(ImgInner, { className: "mb-5", image: image }) : null, image?.icon ? (jsx(ImgInner, { className: `w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`, image: getIconWithVersion(image, version), asSVG: true })) : null] }));
1852
1841
  const renderCardTitle = (headlineSmallVersion, title) => title ? jsx("div", { className: HEADLINE_SMALL_VERSION[headlineSmallVersion], children: title }) : null;
1853
1842
  const renderDescription$2 = (description, title) => description ? jsx("div", { className: `text-l ${title ? 'mt-2' : ''}`, children: description }) : null;
1854
1843
  const renderAdditionalDescription$1 = (additionalDescription) => additionalDescription ? (jsx("div", { className: "text-m-light text-secondary-text mt-auto", children: additionalDescription })) : null;
@@ -1972,9 +1961,24 @@
1972
1961
  : undefined;
1973
1962
  };
1974
1963
 
1964
+ const DOT_BG_COLORS_MAP = {
1965
+ 'bg-white': 'bg-primary-text',
1966
+ transparent: 'bg-white',
1967
+ };
1968
+ const DropdownMenu = JSX(({ context, className, items, activeItem, bgColor }) => {
1969
+ const { useRouter, handlerDecorator } = context;
1970
+ const router = useRouter();
1971
+ const [visible, setVisible] = useState(false);
1972
+ const handleToggle = useCallback(() => setVisible((_) => !_), []);
1973
+ const handleClickOutside = useCallback(() => setVisible(false), []);
1974
+ const ref = useOutsideClick(handleClickOutside);
1975
+ return (jsxs("div", { className: `${visible ? 'bg-white rounded-md shadow-blue-gray/24' : ''} ${className || ''}`, ref: ref, children: [jsx("button", { className: "flex justify-between items-center cursor-pointer h-6 ml-6", "aria-label": `${visible ? 'Скрыть другие разделы' : 'Показать другие разделы'}`, onClick: handleToggle, children: Array(3).fill(bgColor).map(renderDot) }), jsx("div", { className: `flex flex-col rounded-md bg-white p-6 pb-2 ${visible ? '' : 'hidden'}`, "aria-hidden": !visible, children: items?.map((item, i) => (jsx("a", { className: `text-l-light pb-4 hover:text-primary-main ${item === activeItem ? 'text-primary-main' : ''}`, ...useLink({ router, handlerDecorator }, item), children: item.text }, item.href || String(i)))) })] }));
1976
+ });
1977
+ const renderDot = (bgColor, i) => (jsx("div", { className: `w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}` }, String(i)));
1978
+
1975
1979
  const TEXT_CLASSES$1 = 'font-sans text-l-light';
1976
1980
  const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
1977
- const HeaderItem = JSX(({ className = '', text, href, target, active, onClick, children, bgColor = 'bg-white', dataItemName, }) => (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className}`, href: href, target: target, onClick: onClick, "data-item-name": dataItemName, children: [jsx("span", { className: getTextClasses(bgColor, active), children: text || children }), active ? jsx("div", { className: getBorderClasses(bgColor, active) }) : null] })));
1981
+ const HeaderItem = JSX(({ className = '', text, href, target, active, bgColor = 'bg-white', dataItemName, children, onClick, }) => (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className}`, href: href, target: target, "data-item-name": dataItemName, onClick: onClick, children: [jsx("span", { className: getTextClasses(bgColor, active), children: text || children }), active ? jsx("div", { className: getBorderClasses(bgColor, active) }) : null] })));
1978
1982
  const getTextClasses = (bgColor, active = false) => {
1979
1983
  let classes = 'text-white';
1980
1984
  if (bgColor === 'bg-white') {
@@ -1989,46 +1993,34 @@
1989
1993
  return `${bgColor === 'bg-white' ? 'bg-primary-main' : bgColor} ${BORDER_CLASSES}`;
1990
1994
  };
1991
1995
 
1992
- const DOT_BG_COLORS_MAP = {
1993
- 'bg-white': 'bg-primary-text',
1994
- transparent: 'bg-white',
1995
- };
1996
- const DropdownMenu = JSX((props) => {
1997
- const { menuVisible, toggleMenu, menuItems, bgColor, context, activeSubItem } = props;
1998
- const { useRouter, handlerDecorator } = context;
1999
- const router = useRouter();
2000
- return (jsxs("div", { className: `absolute w-52 -top-4 right-0 pt-4 z-40 ${menuVisible ? 'bg-white rounded-md shadow-blue-gray/24' : ''}`, children: [jsx("button", { className: "flex justify-between items-center cursor-pointer h-6 ml-6", onClick: toggleMenu, "aria-label": `${menuVisible ? 'Скрыть другие разделы' : 'Показать другие разделы'}`, children: Array(3).fill(bgColor).map(renderDot) }), jsx("div", { className: `flex flex-col rounded-md bg-white p-6 pb-2 ${menuVisible ? '' : 'hidden'}`, "aria-hidden": !menuVisible, children: renderDotsSubMenuItems({ menuItems, router, handlerDecorator, activeSubItem }) })] }));
1996
+ const HeaderSubMenuItem = JSX(({ context, className, active, bgColor, observerOptions, onVisibilityChange, children, ...linkProps }) => {
1997
+ const { handlerDecorator } = context;
1998
+ const router = context.useRouter();
1999
+ const observerCallback = useCallback((entries) => {
2000
+ if (!entries.length || !onVisibilityChange) {
2001
+ return;
2002
+ }
2003
+ // Assumption about entries order (by time)
2004
+ const entry = entries[entries.length - 1];
2005
+ onVisibilityChange(entry.isIntersecting);
2006
+ }, [onVisibilityChange]);
2007
+ const ref = useIntersectionObserver(observerCallback, observerOptions);
2008
+ return (jsx("span", { ref: ref, children: jsx(HeaderItem, { className: className, active: active, bgColor: bgColor, ...useLink({ router, handlerDecorator }, linkProps), children: children }) }));
2001
2009
  });
2002
- const renderDotsSubMenuItems = ({ menuItems, router, handlerDecorator, activeSubItem, }) => {
2003
- const isActive = (item) => item === activeSubItem;
2004
- return menuItems?.map(({ text, ...rest }) => (jsx("a", { ...useLink({ router, handlerDecorator }, rest), className: `text-l-light pb-4 hover:text-primary-main ${isActive(rest) ? 'text-primary-main' : ''}`, children: text }, rest.href)));
2005
- };
2006
- const renderDot = (bgColor, i) => (jsx("div", { className: `w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}` }, String(i)));
2007
2010
 
2008
2011
  const HeaderSubMenu = JSX(({ context, subItems = [], bgColor }) => {
2009
- const { handlerDecorator } = context;
2010
2012
  const router = context.useRouter();
2011
- const subItemsListRef = useRef(null);
2012
- const [menuVisible, setMenuVisible] = useState(false);
2013
+ const activeSubItem = findActiveSubItem(router)(subItems);
2013
2014
  const [visibleItemsCount, setVisibleItemsCount] = useState(subItems.length);
2014
2015
  const dropDownMenuItems = subItems.slice(visibleItemsCount);
2016
+ const subItemsListRef = useRef(null);
2015
2017
  const observerOptions = useMemo(() => ({ threshold: 1, root: subItemsListRef.current }), [subItemsListRef.current]);
2016
- const observerCallbacks = useMemo(() => subItems.map((_, index) => (entries) => {
2017
- if (!entries.length) {
2018
- return;
2019
- }
2020
- // Assumption about sorting entries by time
2021
- const entry = entries[entries.length - 1];
2022
- if (entry.isIntersecting) {
2023
- setVisibleItemsCount(handleIntersectionActivation(index));
2024
- }
2025
- else {
2026
- setVisibleItemsCount(handleIntersectionDeactivation(index));
2027
- }
2018
+ const subItemsVisibilityHandlers = useMemo(() => subItems.map((_, index) => (isIntersecting) => {
2019
+ setVisibleItemsCount(isIntersecting
2020
+ ? handleIntersectionActivation(index)
2021
+ : handleIntersectionDeactivation(index));
2028
2022
  }), [subItems]);
2029
- const activeSubItem = findActiveSubItem(router)(subItems);
2030
- const toggleMenu = () => setMenuVisible(!menuVisible);
2031
- return (jsxs("nav", { className: "relative mt-6", children: [jsx("div", { ref: subItemsListRef, className: "overflow-hidden whitespace-nowrap mr-52 pb-3", children: subItems.map((_, i) => (jsx(IntersectionObserverTag, { tag: "span", observerCallback: observerCallbacks[i], observerOptions: observerOptions, children: jsx(HeaderItem, { className: `mr-8 ${visibleItemsCount - 1 < i ? 'invisible' : ''}`, active: _ === activeSubItem, ...useLink({ router, handlerDecorator }, _), bgColor: bgColor }) }, String(i)))) }), dropDownMenuItems.length ? (jsx(DropdownMenu, { context: context, activeSubItem: activeSubItem, menuVisible: menuVisible, toggleMenu: toggleMenu, menuItems: dropDownMenuItems, bgColor: bgColor })) : null] }));
2023
+ return (jsxs("nav", { className: "relative mt-6", children: [jsx("div", { ref: subItemsListRef, className: "overflow-hidden whitespace-nowrap mr-52 pb-3", children: subItems.map((_, i) => (jsx(HeaderSubMenuItem, { context: context, className: `mr-8 ${visibleItemsCount - 1 < i ? 'invisible' : ''}`, active: _ === activeSubItem, bgColor: bgColor, observerOptions: observerOptions, onVisibilityChange: subItemsVisibilityHandlers[i], ..._ }, String(i)))) }), dropDownMenuItems.length ? (jsx(DropdownMenu, { context: context, className: "absolute w-52 -top-4 right-0 pt-4 z-40", items: dropDownMenuItems, activeItem: activeSubItem, bgColor: bgColor })) : null] }));
2032
2024
  });
2033
2025
  const handleIntersectionActivation = (index) => (prev) => Math.max(prev, index + 1);
2034
2026
  const handleIntersectionDeactivation = (index) => (prev) => Math.min(prev, index);
@@ -2152,17 +2144,17 @@
2152
2144
  if (investmentZeroColumn) {
2153
2145
  colums.unshift(investmentZeroColumn);
2154
2146
  }
2155
- return (jsx(BlockWrapper, { className: `font-sans bg-white p-9 pb-9 ${className}`, context: context, ...rest, children: jsxs("div", { className: "container text-m-light", children: [colums?.length ? (jsxs("div", { children: [jsxs("div", { className: "flex items-end px-9 text-white", children: [joinList(jsx("div", { className: "w-px h-4 bg-main-stroke" }))(colums.map(renderInvestmentColumn)), jsx("div", { className: "w-px h-4 bg-main-stroke" })] }), jsx("div", { className: "border-t border-main-stroke -mt-2 mx-9" }), jsx("div", { className: "flex justify-between mt-3 -mx-10", children: colums.map(renderInvestmentColumnTitle) })] })) : null, items?.length ? (jsx(List, { className: "mt-9 text-h6", items: items, itemClassName: "mb-[7px]", isDotted: isDotted })) : null] }) }));
2147
+ return (jsx(BlockWrapper, { className: `font-sans bg-white px-9 py-12 ${className}`, context: context, ...rest, children: jsxs("div", { className: "container text-m-light", children: [colums?.length ? (jsxs("div", { children: [jsxs("div", { className: "flex items-end relative pl-9 pr-5 text-white", children: [joinList(jsx("div", { className: "w-px h-4 bg-main-stroke" }))(colums.map(renderInvestmentColumn)), jsx("div", { className: "absolute right-[30px] w-px h-4 bg-main-stroke" })] }), jsx("div", { className: "border-t border-main-stroke -mt-2 ml-9 mr-8" }), jsx("div", { className: "flex justify-between text-primary-text mt-3 -mx-10", children: colums.map(renderInvestmentColumnTitle) })] })) : null, items?.length ? (jsx(List, { className: "mt-9 text-l-light max-w-[657px]", items: items, itemClassName: "mb-[7px]", isDotted: isDotted })) : null] }) }));
2156
2148
  });
2157
2149
  const renderInvestmentColumn = (column, i, arr) => {
2158
2150
  const isSecondColumn = i === 1;
2159
2151
  const isLastColumn = i === arr.length - 1;
2160
- return (jsx("div", { className: `${getColumnClasses(isSecondColumn, isLastColumn, column.cells)}`, children: column.cells?.length ? (jsx("div", { className: `w-full ${isLastColumn ? 'border-4 border-green-more-dark p-1' : ''}`, children: column.cells.map(renderInvestmentCell) })) : null }, `column_${i}`));
2152
+ return (jsx("div", { className: `${getColumnClasses(isSecondColumn, isLastColumn, column.cells)}`, children: column.cells?.length ? (jsx("div", { className: `w-full ${isLastColumn ? 'border-4 border-green-more-dark p-1.5 min-w-[290px]' : ''}`, children: column.cells.reverse().map(renderInvestmentCell) })) : null }, `column_${i}`));
2161
2153
  };
2162
2154
  const getColumnClasses = (isSecondColumn, isLastColumn, cells = []) => [
2163
2155
  cells.length ? 'flex-1' : 'flex-0',
2164
2156
  cells.length && !isSecondColumn && !isLastColumn ? 'pl-2.5' : '',
2165
- cells.length && !isLastColumn ? 'pr-2.5 pb-8' : 'pb-6',
2157
+ cells.length && !isLastColumn ? 'pr-2.5 pb-8' : 'pb-[22px]',
2166
2158
  ].join(' ');
2167
2159
  const renderInvestmentCell = (cell, i) => {
2168
2160
  const cellSize = cell.cellSize || 'XS';
@@ -2172,12 +2164,12 @@
2172
2164
  const renderInvestmentColumnTitle = (column, i, arr) => {
2173
2165
  const isFirstColumn = i === 0;
2174
2166
  const isLastColumn = i === arr.length - 1;
2175
- return (jsx("div", { className: `flex-1 max-w-[180px] text-center px-2 ${isFirstColumn ? 'pl-9' : ''} ${isLastColumn ? 'pr-9' : ' '}`, children: column.title }, `title_${i}`));
2167
+ return (jsx("div", { className: `flex-1 max-w-[180px] text-center px-2 ${isFirstColumn ? 'pl-9' : ''} ${isLastColumn ? 'mr-3.5' : ' '}`, children: column.title }, `title_${i}`));
2176
2168
  };
2177
2169
 
2178
2170
  const LinkDocsListItemBase = JSX(({ className, iconClassName, textClassName, suffixClassName, doc, icon }) => {
2179
2171
  const { text, fileSize, ...linkProps } = doc;
2180
- return (jsxs("a", { className: className, role: "link", ...linkProps, children: [icon ? (jsx(ImgInner, { className: iconClassName, image: icon, width: "24px", height: "24px", asSVG: true })) : null, text ? (jsxs("span", { className: textClassName, children: [text, jsx("span", { className: suffixClassName, children: linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize) })] })) : null] }));
2172
+ return (jsxs("a", { className: className, role: "link", ...linkProps, children: [icon ? (jsx(ImgInner, { className: iconClassName, image: getIconWithVersion(icon), width: "24px", height: "24px", asSVG: true })) : null, text ? (jsxs("span", { className: textClassName, children: [text, jsx("span", { className: suffixClassName, children: linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize) })] })) : null] }));
2181
2173
  });
2182
2174
  const formatSuffix = (ext, fileSize) => {
2183
2175
  const prefix = ext || fileSize ? ',' : '';
@@ -2236,119 +2228,13 @@
2236
2228
  ${getTileMinHeight(className)}
2237
2229
  ${VersionStyleMap[version]}
2238
2230
  ${className}`, ...rest, children: [jsxs(BaseTile, { context: context, className: "z-10", title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap max-w-[509px] mb-6
2239
- ${textColorClass} ${AlignText[alignTitle]}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttonsWithClass, className: "flex gap-4" })) : null, children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 items-center", children: [qr?.src ? (jsx("div", { className: `flex justify-center mr-5 bg-white rounded-md ${containerStyle}`, children: jsx(ImgInner, { className: "w-fit", image: qr, alt: "QR-\u043A\u043E\u0434" }) })) : null, renderList$1(version, items)] })] }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(ImgInner, { image: image }) })) : null] }));
2231
+ ${textColorClass} ${AlignText[alignTitle]}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttonsWithClass, className: "flex gap-4" })) : null, children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 items-center", children: [qr?.src ? (jsx("div", { className: `flex justify-center mr-5 bg-white rounded-md ${containerStyle}`, children: jsx(ImgInner, { className: "w-fit", image: qr }) })) : null, renderList$1(version, items)] })] }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(ImgInner, { image: image }) })) : null] }));
2240
2232
  });
2241
2233
  const renderList$1 = (version, items) => {
2242
2234
  return items?.length ? (jsx(List, { items: items, itemClassName: "text-l-light mb-2 last:mb-0", version: version })) : (jsx("span", { className: "text-m-light text-secondary-text", children: "\u041D\u0430\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u0443 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u043D\u0430 QR-\u043A\u043E\u0434 \u0438 \u0441\u043A\u0430\u0447\u0430\u0439\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }));
2243
2235
  };
2244
2236
  const renderDescription$1 = (description) => description ? jsx("p", { className: "text-xl-light mb-5", children: description }) : null;
2245
2237
 
2246
- const OFFICE_MAP_URL = '/api/v1/branches';
2247
- // TODO: regionCode - внутренний идентификатор банка. Не соответствует государственной нумерации регионов РФ
2248
- // TODO: Список регионов можно получить через api/v1/regions
2249
- function useOfficeMap(regionCode) {
2250
- const { data } = useAsyncData(regionCode ? `${OFFICE_MAP_URL}?regionCode=${regionCode}` : undefined, fetchOfficeMap);
2251
- return data;
2252
- }
2253
- const fetchOfficeMap = (url) => {
2254
- if (!url) {
2255
- return {};
2256
- }
2257
- return fetchJSON(url, { method: 'GET' });
2258
- };
2259
-
2260
- const OFFICE_MAP = {
2261
- id: 123,
2262
- branchType: {
2263
- id: 7,
2264
- code: '21',
2265
- name: 'Отделение на балансе филиала',
2266
- },
2267
- shortName: 'Ейский ДО',
2268
- name: 'ДО №3349/3/05',
2269
- address: '353682, Краснодарский край, г.Ейск, ул.Гоголя, 349/ ул.Баррикадная, 42/1',
2270
- lawAddress: '353682, Краснодарский край, г.Ейск, ул.Гоголя, 349/ ул.Баррикадная, 42/1',
2271
- openDate: '2000-12-05',
2272
- closeDate: null,
2273
- bik: '040349536',
2274
- corAcc: '30101810700000000536',
2275
- registrationNumber: '3349/3/05',
2276
- phone: '+7(XXX)XXX-XX-XX',
2277
- fax: '+7(XXX)XXX-XX-XY',
2278
- okpo: '55105921',
2279
- ogrn: '1027700342890',
2280
- kpp: '231002002',
2281
- inn: '7725114488',
2282
- branchCode: '0305',
2283
- upperBranchCode: '0300',
2284
- timeZone: '+03:00',
2285
- exchangeRate: {
2286
- currencies: [
2287
- {
2288
- buyExchangeRate: 0.0,
2289
- saleExchangeRate: 0.0,
2290
- currency: {
2291
- id: 3,
2292
- code: '156',
2293
- currency: 'CNY',
2294
- name: 'Китайский юань',
2295
- },
2296
- },
2297
- {
2298
- buyExchangeRate: 59.15,
2299
- saleExchangeRate: 69.25,
2300
- currency: {
2301
- id: 2,
2302
- code: '978',
2303
- currency: 'EUR',
2304
- name: 'Евро',
2305
- },
2306
- },
2307
- {
2308
- buyExchangeRate: 58.4,
2309
- saleExchangeRate: 70.05,
2310
- currency: {
2311
- id: 1,
2312
- code: '840',
2313
- currency: 'USD',
2314
- name: 'Американский доллар',
2315
- },
2316
- },
2317
- ],
2318
- lastUpdate: '2022-11-11 03:56:17',
2319
- },
2320
- workSchedule: {
2321
- id: 413,
2322
- workTime: '09.00–16.30',
2323
- lunchHour: 'без перерыва',
2324
- workTimeSaturday: '09.00–15.00',
2325
- lunchHourSaturday: 'без перерыва',
2326
- workingMonday: false,
2327
- workingTuesday: false,
2328
- workingWednesday: true,
2329
- workingThursday: true,
2330
- workingFriday: true,
2331
- workingSaturday: true,
2332
- workingSunday: false,
2333
- },
2334
- gpsLatitude: 46.709744,
2335
- gpsLongitude: 38.260703,
2336
- range: null,
2337
- safeBoxCaseVolumes: null,
2338
- };
2339
-
2340
- const renderCurrentDaySchedule = ({ lunchHour, status, workTime }) => {
2341
- const hasTime = /\d+/gi.test(lunchHour);
2342
- const lunchHourText = hasTime ? `Перерыв ${lunchHour}` : lunchHour;
2343
- return status ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-primary-main border-green-light mr-4", children: workTime ? workTime : null }), jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-golden border-golden", children: lunchHour ? lunchHourText : null })] })) : (jsx("div", { className: "flex", children: jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-error border-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }) }));
2344
- };
2345
- const renderNearbyOffice = ({ icon, title, distance, time }, index) => (jsxs("div", { className: "flex mr-4", children: [jsx(Icon, { name: icon, width: "16", height: "16", asSVG: true, className: "mr-1" }), title ? jsxs("span", { className: "text-m", children: [title, "\u00A0"] }) : null, jsxs("span", { className: "text-m-light", children: [distance ? ` (${distance})` : null, time ? `, ${time}` : null] })] }, `nearbyOffice${index}`));
2346
- const renderDay = ({ title, status, workTime, lunchHour, description }, inx) => (jsxs("div", { className: "flex flex-col pb-3 border-b border-solid border-main-divider mb-3 last:border-0", children: [jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-l text-primary-text", children: [jsx("div", { children: title }), status ? null : jsx("div", { className: "text-m-light text-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }), status && workTime ? jsx("div", { children: workTime }) : null] }), status && lunchHour ? renderLunchHour(lunchHour) : null, description ? (jsx("div", { className: "pb-1 text-s-light text-secondary-text", children: description })) : null] }, `day${inx}`));
2347
- const renderLunchHour = (lunchHour) => {
2348
- const hasTime = /\d+/gi.test(lunchHour);
2349
- return hasTime ? (jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-error", children: [jsx("div", { children: "\u041F\u0435\u0440\u0435\u0440\u044B\u0432" }), jsx("div", { children: lunchHour })] })) : (jsx("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-primary-main", children: jsx("div", { children: lunchHour }) }));
2350
- };
2351
-
2352
2238
  function renderClusterer(yandexMaps, map, points) {
2353
2239
  map.geoObjects.removeAll();
2354
2240
  const clusterIconContentLayout = yandexMaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
@@ -2603,6 +2489,86 @@
2603
2489
  const getArraySumAndAverage = (arr) => arr.reduce((a, b) => a + b) / arr.length;
2604
2490
  const normalizePoints = (points) => (points ? points.map((_) => _.coords) : null);
2605
2491
 
2492
+ const OFFICE_MAP = {
2493
+ id: 123,
2494
+ branchType: {
2495
+ id: 7,
2496
+ code: '21',
2497
+ name: 'Отделение на балансе филиала',
2498
+ },
2499
+ shortName: 'Ейский ДО',
2500
+ name: 'ДО №3349/3/05',
2501
+ address: '353682, Краснодарский край, г.Ейск, ул.Гоголя, 349/ ул.Баррикадная, 42/1',
2502
+ lawAddress: '353682, Краснодарский край, г.Ейск, ул.Гоголя, 349/ ул.Баррикадная, 42/1',
2503
+ openDate: '2000-12-05',
2504
+ closeDate: null,
2505
+ bik: '040349536',
2506
+ corAcc: '30101810700000000536',
2507
+ registrationNumber: '3349/3/05',
2508
+ phone: '+7(XXX)XXX-XX-XX',
2509
+ fax: '+7(XXX)XXX-XX-XY',
2510
+ okpo: '55105921',
2511
+ ogrn: '1027700342890',
2512
+ kpp: '231002002',
2513
+ inn: '7725114488',
2514
+ branchCode: '0305',
2515
+ upperBranchCode: '0300',
2516
+ timeZone: '+03:00',
2517
+ exchangeRate: {
2518
+ currencies: [
2519
+ {
2520
+ buyExchangeRate: 0.0,
2521
+ saleExchangeRate: 0.0,
2522
+ currency: {
2523
+ id: 3,
2524
+ code: '156',
2525
+ currency: 'CNY',
2526
+ name: 'Китайский юань',
2527
+ },
2528
+ },
2529
+ {
2530
+ buyExchangeRate: 59.15,
2531
+ saleExchangeRate: 69.25,
2532
+ currency: {
2533
+ id: 2,
2534
+ code: '978',
2535
+ currency: 'EUR',
2536
+ name: 'Евро',
2537
+ },
2538
+ },
2539
+ {
2540
+ buyExchangeRate: 58.4,
2541
+ saleExchangeRate: 70.05,
2542
+ currency: {
2543
+ id: 1,
2544
+ code: '840',
2545
+ currency: 'USD',
2546
+ name: 'Американский доллар',
2547
+ },
2548
+ },
2549
+ ],
2550
+ lastUpdate: '2022-11-11 03:56:17',
2551
+ },
2552
+ workSchedule: {
2553
+ id: 413,
2554
+ workTime: '09.00–16.30',
2555
+ lunchHour: 'без перерыва',
2556
+ workTimeSaturday: '09.00–15.00',
2557
+ lunchHourSaturday: 'без перерыва',
2558
+ workingMonday: false,
2559
+ workingTuesday: false,
2560
+ workingWednesday: true,
2561
+ workingThursday: true,
2562
+ workingFriday: true,
2563
+ workingSaturday: true,
2564
+ workingSunday: false,
2565
+ },
2566
+ gpsLatitude: 46.709744,
2567
+ gpsLongitude: 38.260703,
2568
+ range: null,
2569
+ safeBoxCaseVolumes: null,
2570
+ };
2571
+
2606
2572
  // Добавлено для проверки
2607
2573
  const nearbyOffices = [
2608
2574
  { title: 'Деловой центр', time: '1 мин', distance: '~30 м.', icon: 'MetroIcon' },
@@ -2610,6 +2576,32 @@
2610
2576
  { title: 'Деловой центр', time: '8 мин', distance: '~350 м.', icon: 'MetroIcon' },
2611
2577
  ];
2612
2578
 
2579
+ const renderCurrentDaySchedule = ({ lunchHour, status, workTime }) => {
2580
+ const hasTime = /\d+/gi.test(lunchHour);
2581
+ const lunchHourText = hasTime ? `Перерыв ${lunchHour}` : lunchHour;
2582
+ return status ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-primary-main border-green-light mr-4", children: workTime ? workTime : null }), jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-golden border-golden", children: lunchHour ? lunchHourText : null })] })) : (jsx("div", { className: "flex", children: jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-error border-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }) }));
2583
+ };
2584
+ const renderNearbyOffice = ({ icon, title, distance, time }, index) => (jsxs("div", { className: "flex mr-4", children: [jsx(Icon, { name: icon, width: "16", height: "16", asSVG: true, className: "mr-1" }), title ? jsxs("span", { className: "text-m", children: [title, "\u00A0"] }) : null, jsxs("span", { className: "text-m-light", children: [distance ? ` (${distance})` : null, time ? `, ${time}` : null] })] }, `nearbyOffice${index}`));
2585
+ const renderDay = ({ title, status, workTime, lunchHour, description }, inx) => (jsxs("div", { className: "flex flex-col pb-3 border-b border-solid border-main-divider mb-3 last:border-0", children: [jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-l text-primary-text", children: [jsx("div", { children: title }), status ? null : jsx("div", { className: "text-m-light text-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }), status && workTime ? jsx("div", { children: workTime }) : null] }), status && lunchHour ? renderLunchHour(lunchHour) : null, description ? (jsx("div", { className: "pb-1 text-s-light text-secondary-text", children: description })) : null] }, `day${inx}`));
2586
+ const renderLunchHour = (lunchHour) => {
2587
+ const hasTime = /\d+/gi.test(lunchHour);
2588
+ return hasTime ? (jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-error", children: [jsx("div", { children: "\u041F\u0435\u0440\u0435\u0440\u044B\u0432" }), jsx("div", { children: lunchHour })] })) : (jsx("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-primary-main", children: jsx("div", { children: lunchHour }) }));
2589
+ };
2590
+
2591
+ const OFFICE_MAP_URL = '/api/v1/branches';
2592
+ // TODO: regionCode - внутренний идентификатор банка. Не соответствует государственной нумерации регионов РФ
2593
+ // TODO: Список регионов можно получить через api/v1/regions
2594
+ function useOfficeMap(regionCode) {
2595
+ const { data } = useAsyncData(regionCode ? `${OFFICE_MAP_URL}?regionCode=${regionCode}` : undefined, fetchOfficeMap);
2596
+ return data;
2597
+ }
2598
+ const fetchOfficeMap = (url) => {
2599
+ if (!url) {
2600
+ return {};
2601
+ }
2602
+ return fetchJSON(url, { method: 'GET' });
2603
+ };
2604
+
2613
2605
  const OfficeMap = JSX(({ className = '' }) => {
2614
2606
  const resultOfficeMap = useOfficeMap('063') || OFFICE_MAP;
2615
2607
  const { name, address, gpsLatitude, gpsLongitude, workSchedule } = resultOfficeMap;
@@ -2642,9 +2634,9 @@
2642
2634
  });
2643
2635
 
2644
2636
  const OfficeServicesBlock = JSX(({ className = '', context, title, servicesList, anchor = '', ...rest }) => {
2645
- return (jsxs(BlockWrapper, { context: context, id: anchor, className: `font-sans bg-white p-8 flex flex-col ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h5", className: "mb-5", title: title }) : null, servicesList?.length ? servicesList.map(renderListItems) : null] }));
2637
+ return (jsxs(BlockWrapper, { context: context, id: anchor, className: `font-sans bg-white p-8 flex flex-col ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h5", className: "mb-5", title: title }) : null, servicesList?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: servicesList.map(renderListItems) })) : null] }));
2646
2638
  });
2647
- const renderListItems = (itemList, i) => (jsxs("li", { className: "flex mb-5 last:mb-0 list-none", children: [itemList.icon ? (jsx(ImgInner, { className: "mr-3 min-w-6 min-h-6 w-6 h-6", width: "24", height: "24", asSVG: true, image: itemList.icon })) : null, itemList.label ? jsx("span", { className: "text-l-light", children: itemList.label }) : null] }, `list_item_${String(i)}`));
2639
+ const renderListItems = (itemList, i) => (jsxs("li", { className: "flex mb-5 last:mb-0 list-none", children: [itemList.icon ? (jsx(ImgInner, { className: "mr-3 min-w-6 min-h-6 w-6 h-6", width: "24", height: "24", asSVG: true, image: getIconWithVersion(itemList.icon) })) : null, itemList.label ? jsx("span", { className: "text-l-light", children: itemList.label }) : null] }, `list_item_${String(i)}`));
2648
2640
 
2649
2641
  const OtherProducts = JSX(({ context, className = '', children, ...rest }) => (jsx(BlockWrapper, { context: context, className: `font-sans text-primary-text ${className}`, ...rest, children: children })));
2650
2642
  OtherProducts.childrenTypes = ['OtherProductsItem'];
@@ -2698,10 +2690,9 @@
2698
2690
  };
2699
2691
  const BenefitItem = JSX((props) => {
2700
2692
  const { className = '', icon, label, description, version = 'primary', benefitsVersion = 'normal', } = props;
2701
- const isIconWhite = benefitsVersion === 'white' || version === 'secondary';
2702
2693
  const listItemAlign = description ? 'items-start' : 'items-center';
2703
- const iconVersion = getIconVersion(isIconWhite, icon);
2704
- return (jsxs("div", { className: `flex gap-5 ${listItemAlign} ${className}`, children: [icon ? (jsx("div", { className: renderBenefitIconBgStyle(version, benefitsVersion), children: jsx(ImgInner, { className: "w-6 h-6", image: { ...icon, iconVersion }, asSVG: true }) })) : null, jsxs("div", { className: "gap-0.5", children: [label ? jsx("div", { className: `text-h6 ${titleStyleMap[version]}`, children: label }) : null, description ? (jsx("div", { className: `text-m-light ${descStyleMap[version]}`, children: description })) : null] })] }));
2694
+ const calcVersion = benefitsVersion === 'white' ? 'secondary' : 'primary';
2695
+ return (jsxs("div", { className: `flex gap-5 ${listItemAlign} ${className}`, children: [icon ? (jsx("div", { className: renderBenefitIconBgStyle(version, benefitsVersion), children: jsx(ImgInner, { className: "w-6 h-6", image: getIconWithVersion(icon, calcVersion), asSVG: true }) })) : null, jsxs("div", { className: "gap-0.5", children: [label ? jsx("div", { className: `text-h6 ${titleStyleMap[version]}`, children: label }) : null, description ? (jsx("div", { className: `text-m-light ${descStyleMap[version]}`, children: description })) : null] })] }));
2705
2696
  });
2706
2697
  function renderBenefitIconBgStyle(version, benefitsVersion) {
2707
2698
  let bgColorStyle = 'bg-primary-main text-black';
@@ -2713,7 +2704,6 @@
2713
2704
  }
2714
2705
  return `w-[50px] h-[50px] min-w-[50px] rounded-full p-2.5 box-border flex items-center justify-center ${bgColorStyle}`;
2715
2706
  }
2716
- const getIconVersion = (isIconWhite, icon) => icon?.iconVersion || isIconWhite ? 'white' : 'normal';
2717
2707
 
2718
2708
  const PictureText = JSX(({ className = '', context, title, description, image, benefits, version = 'primary', sum, monthLimit, directionRight = false, ...rest }) => {
2719
2709
  return (jsxs(BlockWrapper, { className: `relative font-sans py-12 px-24 ${VersionStyleMap[version]} ${className}`, context: context, ...rest, children: [jsx(Headline, { context: context, className: "!p-0", title: title, description: description, headlineVersion: "M", bgColorHeadline: version, align: "center" }), jsxs("div", { className: 'flex justify-center gap-[122px] mt-[30px]', children: [image?.src ? jsx(ImgInner, { className: directionRight ? 'order-2' : '', image: image }) : null, jsxs("div", { className: "w-[558px] m-auto", children: [benefits?.length ? (jsx("div", { className: "flex flex-col gap-4", children: benefits.map(renderBenefit$2(version)) })) : null, renderInsuranceSumMonth(Number(sum), Number(monthLimit))] })] })] }));
@@ -2774,11 +2764,9 @@
2774
2764
  }
2775
2765
  });
2776
2766
 
2777
- const renderBenefit$1 = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => {
2778
- return (jsx(BenefitItem, { icon: icon, label: label, description: description, version: version, benefitsVersion: benefitsVersion }, String(i)));
2779
- };
2767
+ const renderBenefit$1 = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => (jsx(BenefitItem, { icon: icon, label: label, description: description, version: version, benefitsVersion: benefitsVersion }, String(i)));
2780
2768
 
2781
- const ProductBlockInner = JSX(({ className = '', context, title, headlineVersion = 'L', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', }) => {
2769
+ const ProductBlockInner = JSX(({ className = '', context, title, headlineVersion = 'L', description, benefits, benefitsVersion, buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', }) => {
2782
2770
  const benefitsCount = benefits?.filter((_) => _.label)?.length;
2783
2771
  const benefitsContainerStyles = getBenefitsContainerStyles(benefitsCount);
2784
2772
  return (jsxs("div", { className: `flex grow justify-between items-stretch h-full ${className}`, children: [jsxs("div", { className: `flex flex-col ${textBlockClassName}`, children: [jsx(Headline, { context: context, title: title, description: description, className: `!p-0 max-w-[600px]`, bgColorHeadline: version, headlineVersion: headlineVersion, align: "left" }), jsxs(BaseTile, { context: context, buttons: getButtons(context, buttons), children: [benefitsCount ? (jsx("div", { className: benefitsContainerStyles, children: benefits.map(renderBenefit$1(version, benefitsVersion)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-h6", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] })] }), image?.src && jsx(ImgInner, { className: "mt-[-50px]", image: image })] }));
@@ -3132,7 +3120,7 @@
3132
3120
  styleMap.background,
3133
3121
  styleMap.title,
3134
3122
  className,
3135
- ].join(' '), context: context, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", className: "max-w-[752px] text-center", title: title })) : null, steps?.length ? (jsxs("div", { className: `box-border ${titleMargin}`, children: [jsx("div", { className: `flex items-center ${paddingX}`, children: joinList(jsx("div", { className: `h-0.5 w-full bg-secondary-light ${lineOpacity}` }))(steps.map(renderStepIcon(styleMap))) }), jsx("div", { className: `flex justify-between mt-4 ${shortGaps ? 'gap-x-3' : 'gap-x-[101px]'}`, children: steps.map(renderStepContent({
3123
+ ].join(' '), context: context, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", className: "max-w-[752px] text-center", title: title })) : null, steps?.length ? (jsxs("div", { className: `box-border ${titleMargin}`, children: [jsx("div", { className: `flex items-center ${paddingX}`, children: joinList(jsx("div", { className: `h-0.5 w-full bg-secondary-light ${lineOpacity}` }))(steps.map(renderStepIcon(styleMap, version))) }), jsx("div", { className: `flex justify-between mt-4 ${shortGaps ? 'gap-x-3' : 'gap-x-[101px]'}`, children: steps.map(renderStepContent({
3136
3124
  styleMap,
3137
3125
  isMainButton: Boolean(button?.text),
3138
3126
  version,
@@ -3140,9 +3128,9 @@
3140
3128
  handlerDecorator,
3141
3129
  })) })] })) : null, button?.text ? (jsx(Button, { className: "mt-8 min-w-[240px]", version: "primary", ...useLink({ router, handlerDecorator }, button) })) : null] }));
3142
3130
  });
3143
- const renderStepIcon = (styleMap) => ({ icon }, i) => {
3131
+ const renderStepIcon = (styleMap, version) => ({ icon }, i) => {
3144
3132
  return (jsx("div", { className: "flex flex-col items-center text-center", children: jsx("div", { className: `h-[100px] w-[100px] min-w-[100px] min-h-[100px] rounded-full p-[26px] box-border z-10 flex justify-center items-center
3145
- ${styleMap.iconBackground} ${styleMap.title}`, children: checkIsIconRenderable(icon) ? (jsx(ImgInner, { image: icon, width: "48", height: "48", asSVG: true })) : (jsx("span", { className: `text-h4 ${styleMap.iconText}`, children: i + 1 })) }) }, String(i)));
3133
+ ${styleMap.iconBackground} ${styleMap.title}`, children: checkIsIconRenderable(icon) ? (jsx(ImgInner, { image: getIconWithVersion(icon || {}, version), width: "48", height: "48", asSVG: true })) : (jsx("span", { className: `text-h4 ${styleMap.iconText}`, children: i + 1 })) }) }, String(i)));
3146
3134
  };
3147
3135
 
3148
3136
  function assertUnreachable(x) {
@@ -3171,7 +3159,7 @@
3171
3159
 
3172
3160
  const renderLinkTab = ({ text, currentTab, onClick, href, target = '_self', i, }) => {
3173
3161
  const active = currentTab?.type === 'link' && currentTab.href === href;
3174
- return (jsx("a", { className: `${LINK_CLASSES} ${active ? ACTIVE_LINK_CLASSES : INACTIVE_LINK_CLASSES}`, target: target, href: href, onClick: onClick, children: jsx("span", { className: `${TEXT_CLASSES} ${active ? ACTIVE_TEXT_CLASSES : INACTIVE_TEXT_CLASSES}`, children: text }) }, String(i)));
3162
+ return (jsx("a", { role: "tab", className: `${LINK_CLASSES} ${active ? ACTIVE_LINK_CLASSES : INACTIVE_LINK_CLASSES}`, target: target, href: href, onClick: onClick, children: jsx("span", { className: `${TEXT_CLASSES} ${active ? ACTIVE_TEXT_CLASSES : INACTIVE_TEXT_CLASSES}`, children: text }) }, String(i)));
3175
3163
  };
3176
3164
 
3177
3165
  const renderTab = ({ onClick, currentTab, showCounter, page, context }) =>
@@ -3389,7 +3377,7 @@
3389
3377
  const [tableInner, setTableInner] = useState(undefined);
3390
3378
  const [openTableInnerIdx, setOpenTableInnerIdx] = useState(undefined);
3391
3379
  const onHideContentClick = () => setTableInner(undefined);
3392
- return (jsxs(TariffsTableRowContainer, { context: context, onHideContentClick: onHideContentClick, tableInner: tableInner, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(ImgInner, { className: "mr-[14px] max-w-6 max-h-6", image: header.icon, width: "24px", height: "24px", asSVG: true })) : null, header?.title ? jsx("div", { className: "text-m-light", children: header?.title }) : null] }) }), data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, rowIdx: rowIdx, cellIdx: i, context: context, setTableInner: setTableInner, tableInner: tableInner, openTableInnerIdx: openTableInnerIdx, setOpenTableInnerIdx: setOpenTableInnerIdx }, String(i)))) })) : null] }));
3380
+ return (jsxs(TariffsTableRowContainer, { context: context, onHideContentClick: onHideContentClick, tableInner: tableInner, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(ImgInner, { className: "mr-[14px] max-w-6 max-h-6", image: getIconWithVersion(header.icon), width: "24px", height: "24px", asSVG: true })) : null, header?.title ? jsx("div", { className: "text-m-light", children: header?.title }) : null] }) }), data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, rowIdx: rowIdx, cellIdx: i, context: context, setTableInner: setTableInner, tableInner: tableInner, openTableInnerIdx: openTableInnerIdx, setOpenTableInnerIdx: setOpenTableInnerIdx }, String(i)))) })) : null] }));
3393
3381
  });
3394
3382
 
3395
3383
  const TariffsTable = JSX(({ className = '', context, title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
@@ -3452,10 +3440,16 @@
3452
3440
  return image?.src ? jsx(ImgInner, { className: "pt-0.5 pr-3", image: image }) : null;
3453
3441
  }
3454
3442
 
3443
+ const Tags = JSX((props) => {
3444
+ const { tags, className = '' } = props;
3445
+ return tags?.length ? (jsx("div", { className: `flex flex-wrap gap-2 ${className}`, children: tags.map((_, i) => renderTag(_, String(i))) })) : null;
3446
+ });
3447
+ const renderTag = (tag, key) => (jsx("span", { className: "text-m-light py-2 px-2.5 border-solid border rounded-md border-color-stroke", children: tag }, key));
3448
+
3455
3449
  const Tile = JSX((props) => {
3456
- const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, listItemSize = 'M', className = '', version = 'primary', ...rest } = props;
3450
+ const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, listItemSize = 'M', className = '', version = 'primary', tags, ...rest } = props;
3457
3451
  const headingClassName = version === 'primary' ? 'text-primary-text' : '';
3458
- return (jsx(BlockWrapper, { context: context, className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h2", title: title, className: `whitespace-pre-wrap max-w-[600px] ${headingClassName}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'min-w-[158px]' })), className: "flex mt-8 gap-3" })) : null, image: image?.src ? jsx(ImgInner, { className: "mt-auto ml-7", image: image }) : null, children: [description ? (jsx(Description, { className: "max-w-[600px] text-xl-light mt-2.5", description: description })) : null, children, renderList({ version, isDotted, listItemSize }, items)] }) }));
3452
+ return (jsx(BlockWrapper, { context: context, className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h2", title: title, className: `whitespace-pre-wrap max-w-[600px] ${headingClassName}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'min-w-[158px]' })), className: "flex mt-8 gap-3" })) : null, image: image?.src ? jsx(ImgInner, { className: "mt-auto ml-7", image: image }) : null, children: [description ? (jsx(Description, { className: "max-w-[600px] text-xl-light mt-2.5", description: description })) : null, children, renderList({ version, isDotted, listItemSize }, items), tags?.length ? jsx(Tags, { tags: tags, className: "mt-5" }) : null] }) }));
3459
3453
  });
3460
3454
  function renderList({ version, isDotted, listItemSize }, items) {
3461
3455
  return items?.length ? (jsx(List, { items: items, isDotted: isDotted, className: "mt-2.5", listItemSize: listItemSize, itemClassName: "mb-1.5", version: version })) : null;
@@ -3619,7 +3613,7 @@
3619
3613
  return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto", context: context }, "LikeControl") }));
3620
3614
  }
3621
3615
 
3622
- const packageVersion = "0.6.22";
3616
+ const packageVersion = "0.6.24";
3623
3617
 
3624
3618
  exports.Blocks = Blocks;
3625
3619
  exports.ContentPage = ContentPage;