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

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 (384) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +180 -84
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/cosmos-static/icons/ArrowLeftIcon.svg +1 -0
  5. package/cosmos-static/icons/BurgerIcon.svg +1 -1
  6. package/cosmos-static/icons/Calendar2Icon.svg +1 -1
  7. package/cosmos-static/icons/CalendarCircleIcon.svg +1 -1
  8. package/cosmos-static/icons/CalendarIcon.svg +1 -1
  9. package/cosmos-static/icons/CalendarTickIcon.svg +1 -1
  10. package/cosmos-static/icons/CalendarWhiteIcon.svg +1 -1
  11. package/cosmos-static/icons/CardIcon.svg +1 -1
  12. package/cosmos-static/icons/CardPosIcon.svg +1 -1
  13. package/cosmos-static/icons/CardTickIcon.svg +1 -1
  14. package/cosmos-static/icons/ChartSquareIcon.svg +1 -1
  15. package/cosmos-static/icons/CloseIcon.svg +1 -1
  16. package/cosmos-static/icons/DiscountShapeIcon.svg +1 -1
  17. package/cosmos-static/icons/DocIcon.svg +1 -1
  18. package/cosmos-static/icons/DocumentTextIcon.svg +1 -1
  19. package/cosmos-static/icons/EmptyWalletChangeIcon.svg +1 -1
  20. package/cosmos-static/icons/EmptyWalletIcon.svg +1 -1
  21. package/cosmos-static/icons/GlobalIcon.svg +1 -1
  22. package/cosmos-static/icons/GpsIcon.svg +1 -1
  23. package/cosmos-static/icons/InterestIcon.svg +1 -1
  24. package/cosmos-static/icons/MoneyIcon.svg +1 -1
  25. package/cosmos-static/icons/MonitorMobileIcon.svg +1 -1
  26. package/cosmos-static/icons/PercentageRoundIcon.svg +1 -1
  27. package/cosmos-static/icons/PercentageSquareIcon.svg +1 -1
  28. package/cosmos-static/icons/PersonalCardIcon.svg +1 -1
  29. package/cosmos-static/icons/Profile2UserIcon.svg +1 -1
  30. package/cosmos-static/icons/RoundRubleIcon.svg +1 -1
  31. package/cosmos-static/icons/SafeIcon.svg +1 -1
  32. package/cosmos-static/icons/ShieldTickIcon.svg +1 -1
  33. package/cosmos-static/icons/SmallClockIcon.svg +1 -1
  34. package/cosmos-static/icons/UserTickIcon.svg +1 -1
  35. package/cosmos-static/icons/WalletAdd2Icon.svg +1 -1
  36. package/cosmos-static/icons/WalletAddIcon.svg +1 -1
  37. package/cosmos-static/icons/WalletIcon.svg +1 -1
  38. package/cosmos-static/icons/WalletWithMoneyIcon.svg +1 -1
  39. package/dist/components/Footer/Contacts.js +5 -5
  40. package/dist/components/Footer/Contacts.js.map +1 -1
  41. package/dist/components/Footer/Footer.js +3 -4
  42. package/dist/components/Footer/Footer.js.map +1 -1
  43. package/dist/components/Footer/FooterContent.d.ts +2 -0
  44. package/dist/components/Footer/HorizontalNavigation.js +1 -1
  45. package/dist/components/Footer/HorizontalNavigation.js.map +1 -1
  46. package/dist/components/Footer/MediaButton.js +15 -1
  47. package/dist/components/Footer/MediaButton.js.map +1 -1
  48. package/dist/components/Footer/Sitemap.js +4 -4
  49. package/dist/components/Footer/Sitemap.js.map +1 -1
  50. package/dist/components/Footer/SocialMedia.js +2 -2
  51. package/dist/components/Footer/SocialMedia.js.map +1 -1
  52. package/dist/components/Footer/TextInformation.js +2 -2
  53. package/dist/components/Footer/TextInformation.js.map +1 -1
  54. package/dist/components/Header/Header.js +3 -7
  55. package/dist/components/Header/Header.js.map +1 -1
  56. package/dist/components/Header/HeaderSecondaryMenu.js +3 -3
  57. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  58. package/dist/components/Header/HeaderSubMenu.d.ts +9 -0
  59. package/dist/components/Header/HeaderSubMenu.js +34 -0
  60. package/dist/components/Header/HeaderSubMenu.js.map +1 -0
  61. package/dist/components/Header/HeaderSubMenuObserver.d.ts +1 -0
  62. package/dist/components/Header/HeaderSubMenuObserver.js +32 -0
  63. package/dist/components/Header/HeaderSubMenuObserver.js.map +1 -0
  64. package/dist/components/ProductBlock/ProductBlock.js +2 -1
  65. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  66. package/dist/components/ProductBlock/ProductBlockContent.d.ts +3 -1
  67. package/dist/components/ProductBlock/ProductBlockInner.js +5 -5
  68. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  69. package/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -0
  70. package/dist/components/ProductBlock/renderBackwardButton.js +18 -0
  71. package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -0
  72. package/dist/components/ProductBlock/renderBenefit.js +2 -2
  73. package/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  74. package/dist/components/Tile/Tile.js +3 -3
  75. package/dist/components/Tile/Tile.js.map +1 -1
  76. package/dist/icons/IconName.d.ts +5 -3
  77. package/dist/icons/IconName.js +3 -1
  78. package/dist/icons/IconName.js.map +1 -1
  79. package/dist/ui-kit/Button/ButtonInner.js +2 -2
  80. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  81. package/dist/ui-kit/HeaderItem/HeaderItem.js +2 -2
  82. package/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  83. package/dist/ui-kit/Heading/Heading.js +2 -2
  84. package/dist/ui-kit/Heading/Heading.js.map +1 -1
  85. package/dist/ui-kit/Icon/Icon.js +2 -2
  86. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  87. package/dist/ui-kit/List/List.js +2 -0
  88. package/dist/ui-kit/List/List.js.map +1 -1
  89. package/dist/ui-kit/List/ListItem.js +19 -5
  90. package/dist/ui-kit/List/ListItem.js.map +1 -1
  91. package/dist/ui-kit/List/ListProps.d.ts +1 -1
  92. package/dist/ui-kit/Logo/Logo.js +1 -1
  93. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  94. package/dist/ui-kit/SearchBar/SearchBar.js +1 -1
  95. package/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  96. package/dist/ui-kit/TopItem/TopItem.d.ts +1 -0
  97. package/dist/ui-kit/TopItem/TopItem.js +1 -1
  98. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  99. package/dist/utils/isSSR.d.ts +1 -0
  100. package/dist/utils/isSSR.js +5 -0
  101. package/dist/utils/isSSR.js.map +1 -0
  102. package/lib/common.css +1 -1
  103. package/lib/components/Footer/Contacts.js +5 -5
  104. package/lib/components/Footer/Contacts.js.map +1 -1
  105. package/lib/components/Footer/Footer.js +3 -4
  106. package/lib/components/Footer/Footer.js.map +1 -1
  107. package/lib/components/Footer/FooterContent.d.ts +2 -0
  108. package/lib/components/Footer/HorizontalNavigation.js +1 -1
  109. package/lib/components/Footer/HorizontalNavigation.js.map +1 -1
  110. package/lib/components/Footer/MediaButton.js +15 -1
  111. package/lib/components/Footer/MediaButton.js.map +1 -1
  112. package/lib/components/Footer/Sitemap.js +4 -4
  113. package/lib/components/Footer/Sitemap.js.map +1 -1
  114. package/lib/components/Footer/SocialMedia.js +3 -3
  115. package/lib/components/Footer/SocialMedia.js.map +1 -1
  116. package/lib/components/Footer/TextInformation.js +2 -2
  117. package/lib/components/Footer/TextInformation.js.map +1 -1
  118. package/lib/components/Header/Header.js +3 -7
  119. package/lib/components/Header/Header.js.map +1 -1
  120. package/lib/components/Header/HeaderSecondaryMenu.js +3 -3
  121. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  122. package/lib/components/Header/HeaderSubMenu.d.ts +9 -0
  123. package/lib/components/Header/HeaderSubMenu.js +32 -0
  124. package/lib/components/Header/HeaderSubMenu.js.map +1 -0
  125. package/lib/components/Header/HeaderSubMenuObserver.d.ts +1 -0
  126. package/lib/components/Header/HeaderSubMenuObserver.js +30 -0
  127. package/lib/components/Header/HeaderSubMenuObserver.js.map +1 -0
  128. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +1 -0
  129. package/lib/components/ProductBlock/ProductBlock.js +2 -1
  130. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  131. package/lib/components/ProductBlock/ProductBlockContent.d.ts +3 -1
  132. package/lib/components/ProductBlock/ProductBlockInner.js +5 -5
  133. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  134. package/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -0
  135. package/lib/components/ProductBlock/renderBackwardButton.js +15 -0
  136. package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -0
  137. package/lib/components/ProductBlock/renderBenefit.js +2 -2
  138. package/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  139. package/lib/components/Tile/Tile.js +3 -3
  140. package/lib/components/Tile/Tile.js.map +1 -1
  141. package/lib/icons/IconName.d.ts +5 -3
  142. package/lib/icons/IconName.js +3 -1
  143. package/lib/icons/IconName.js.map +1 -1
  144. package/lib/ui-kit/Button/ButtonInner.js +2 -2
  145. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  146. package/lib/ui-kit/HeaderItem/HeaderItem.js +2 -2
  147. package/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  148. package/lib/ui-kit/Heading/Heading.js +2 -2
  149. package/lib/ui-kit/Heading/Heading.js.map +1 -1
  150. package/lib/ui-kit/Icon/Icon.js +2 -2
  151. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  152. package/lib/ui-kit/List/List.js +2 -0
  153. package/lib/ui-kit/List/List.js.map +1 -1
  154. package/lib/ui-kit/List/ListItem.js +19 -5
  155. package/lib/ui-kit/List/ListItem.js.map +1 -1
  156. package/lib/ui-kit/List/ListProps.d.ts +1 -1
  157. package/lib/ui-kit/Logo/Logo.js +1 -1
  158. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  159. package/lib/ui-kit/SearchBar/SearchBar.js +1 -1
  160. package/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  161. package/lib/ui-kit/TopItem/TopItem.d.ts +1 -0
  162. package/lib/ui-kit/TopItem/TopItem.js +1 -1
  163. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  164. package/lib/utils/isSSR.d.ts +1 -0
  165. package/lib/utils/isSSR.js +2 -0
  166. package/lib/utils/isSSR.js.map +1 -0
  167. package/mobile/bundle/bundle.umd.js +48 -16
  168. package/mobile/bundle/bundle.umd.min.js +1 -1
  169. package/mobile/dist/components/Footer/Contacts.js +5 -5
  170. package/mobile/dist/components/Footer/Contacts.js.map +1 -1
  171. package/mobile/dist/components/Footer/FooterContent.d.ts +2 -0
  172. package/mobile/dist/components/Footer/MediaButton.js +15 -1
  173. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  174. package/mobile/dist/components/Footer/Sitemap.js +4 -4
  175. package/mobile/dist/components/Footer/Sitemap.js.map +1 -1
  176. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +3 -3
  177. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  178. package/mobile/dist/components/Header/HeaderSubMenu.d.ts +9 -0
  179. package/mobile/dist/components/Header/HeaderSubMenu.js +34 -0
  180. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -0
  181. package/mobile/dist/components/Header/HeaderSubMenuObserver.d.ts +1 -0
  182. package/mobile/dist/components/Header/HeaderSubMenuObserver.js +32 -0
  183. package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +1 -0
  184. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +3 -1
  185. package/mobile/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -0
  186. package/mobile/dist/components/ProductBlock/renderBackwardButton.js +18 -0
  187. package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -0
  188. package/mobile/dist/components/Tile/Tile.js +3 -3
  189. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  190. package/mobile/dist/icons/IconName.d.ts +5 -3
  191. package/mobile/dist/icons/IconName.js +3 -1
  192. package/mobile/dist/icons/IconName.js.map +1 -1
  193. package/mobile/dist/ui-kit/Button/ButtonInner.js +2 -2
  194. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  195. package/mobile/dist/ui-kit/Icon/Icon.js +2 -2
  196. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  197. package/mobile/dist/ui-kit/List/List.js +2 -0
  198. package/mobile/dist/ui-kit/List/List.js.map +1 -1
  199. package/mobile/dist/ui-kit/List/ListItem.js +19 -5
  200. package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
  201. package/mobile/dist/ui-kit/List/ListProps.d.ts +1 -1
  202. package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -0
  203. package/mobile/dist/ui-kit/TopItem/TopItem.js +1 -1
  204. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  205. package/mobile/dist/utils/isSSR.d.ts +1 -0
  206. package/mobile/dist/utils/isSSR.js +5 -0
  207. package/mobile/dist/utils/isSSR.js.map +1 -0
  208. package/mobile/lib/components/Footer/Contacts.js +5 -5
  209. package/mobile/lib/components/Footer/Contacts.js.map +1 -1
  210. package/mobile/lib/components/Footer/FooterContent.d.ts +2 -0
  211. package/mobile/lib/components/Footer/MediaButton.js +15 -1
  212. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  213. package/mobile/lib/components/Footer/Sitemap.js +4 -4
  214. package/mobile/lib/components/Footer/Sitemap.js.map +1 -1
  215. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +3 -3
  216. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  217. package/mobile/lib/components/Header/HeaderSubMenu.d.ts +9 -0
  218. package/mobile/lib/components/Header/HeaderSubMenu.js +32 -0
  219. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -0
  220. package/mobile/lib/components/Header/HeaderSubMenuObserver.d.ts +1 -0
  221. package/mobile/lib/components/Header/HeaderSubMenuObserver.js +30 -0
  222. package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +1 -0
  223. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +3 -1
  224. package/mobile/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -0
  225. package/mobile/lib/components/ProductBlock/renderBackwardButton.js +15 -0
  226. package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -0
  227. package/mobile/lib/components/Tile/Tile.js +3 -3
  228. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  229. package/mobile/lib/icons/IconName.d.ts +5 -3
  230. package/mobile/lib/icons/IconName.js +3 -1
  231. package/mobile/lib/icons/IconName.js.map +1 -1
  232. package/mobile/lib/ui-kit/Button/ButtonInner.js +2 -2
  233. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  234. package/mobile/lib/ui-kit/Icon/Icon.js +2 -2
  235. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  236. package/mobile/lib/ui-kit/List/List.js +2 -0
  237. package/mobile/lib/ui-kit/List/List.js.map +1 -1
  238. package/mobile/lib/ui-kit/List/ListItem.js +19 -5
  239. package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
  240. package/mobile/lib/ui-kit/List/ListProps.d.ts +1 -1
  241. package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -0
  242. package/mobile/lib/ui-kit/TopItem/TopItem.js +1 -1
  243. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  244. package/mobile/lib/utils/isSSR.d.ts +1 -0
  245. package/mobile/lib/utils/isSSR.js +2 -0
  246. package/mobile/lib/utils/isSSR.js.map +1 -0
  247. package/mobile/src/components/ContentPage/ContentPage.page.json +4 -4
  248. package/mobile/src/components/Footer/Contacts.tsx +7 -10
  249. package/mobile/src/components/Footer/FooterContent.ts +3 -0
  250. package/mobile/src/components/Footer/MediaButton.tsx +15 -1
  251. package/mobile/src/components/Footer/Sitemap.tsx +5 -5
  252. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +4 -7
  253. package/mobile/src/components/Header/HeaderSubMenu.tsx +93 -0
  254. package/mobile/src/components/Header/HeaderSubMenuObserver.ts +44 -0
  255. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  256. package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +34 -0
  257. package/mobile/src/components/Tile/Tile.example.json +1 -1
  258. package/mobile/src/components/Tile/Tile.tsx +12 -3
  259. package/mobile/src/icons/ArrowDownIcon.svg +1 -1
  260. package/mobile/src/icons/ArrowLeftIcon.svg +4 -0
  261. package/mobile/src/icons/BurgerIcon.svg +4 -4
  262. package/mobile/src/icons/Calendar2Icon.svg +1 -1
  263. package/mobile/src/icons/CalendarCircleIcon.svg +4 -1
  264. package/mobile/src/icons/CalendarIcon.svg +1 -1
  265. package/mobile/src/icons/CalendarTickIcon.svg +6 -1
  266. package/mobile/src/icons/CalendarWhiteIcon.svg +2 -2
  267. package/mobile/src/icons/CardIcon.svg +5 -1
  268. package/mobile/src/icons/CardPosIcon.svg +5 -1
  269. package/mobile/src/icons/CardTickIcon.svg +5 -1
  270. package/mobile/src/icons/ChartSquareIcon.svg +6 -1
  271. package/mobile/src/icons/CloseIcon.svg +4 -4
  272. package/mobile/src/icons/DiscountShapeIcon.svg +4 -1
  273. package/mobile/src/icons/DocIcon.svg +1 -1
  274. package/mobile/src/icons/DocumentTextIcon.svg +2 -2
  275. package/mobile/src/icons/EmptyWalletChangeIcon.svg +8 -1
  276. package/mobile/src/icons/EmptyWalletIcon.svg +2 -2
  277. package/mobile/src/icons/GlobalIcon.svg +5 -1
  278. package/mobile/src/icons/GpsIcon.svg +6 -6
  279. package/mobile/src/icons/IconName.ts +4 -4
  280. package/mobile/src/icons/InterestIcon.svg +6 -1
  281. package/mobile/src/icons/MasterCardIcon.svg +5 -1
  282. package/mobile/src/icons/MinusIcon.svg +3 -1
  283. package/mobile/src/icons/MoneyIcon.svg +5 -1
  284. package/mobile/src/icons/MonitorMobileIcon.svg +4 -1
  285. package/mobile/src/icons/PercentageRoundIcon.svg +4 -1
  286. package/mobile/src/icons/PercentageSquareIcon.svg +1 -1
  287. package/mobile/src/icons/PersonalCardIcon.svg +4 -1
  288. package/mobile/src/icons/PlayMarketIcon.svg +3 -1
  289. package/mobile/src/icons/PlusIcon.svg +3 -1
  290. package/mobile/src/icons/Profile2UserIcon.svg +6 -1
  291. package/mobile/src/icons/RoundRubleIcon.svg +5 -1
  292. package/mobile/src/icons/SafeIcon.svg +7 -1
  293. package/mobile/src/icons/ShieldTickIcon.svg +4 -1
  294. package/mobile/src/icons/SmallClockIcon.svg +4 -1
  295. package/mobile/src/icons/UserTickIcon.svg +5 -1
  296. package/mobile/src/icons/WalletAdd2Icon.svg +6 -1
  297. package/mobile/src/icons/WalletAddIcon.svg +7 -1
  298. package/mobile/src/icons/WalletIcon.svg +7 -1
  299. package/mobile/src/icons/WalletWithMoneyIcon.svg +5 -1
  300. package/mobile/src/ui-kit/Button/ButtonInner.tsx +2 -2
  301. package/mobile/src/ui-kit/Icon/Icon.tsx +2 -2
  302. package/mobile/src/ui-kit/List/List.tsx +2 -0
  303. package/mobile/src/ui-kit/List/ListItem.tsx +19 -5
  304. package/mobile/src/ui-kit/List/ListProps.ts +1 -1
  305. package/mobile/src/ui-kit/TopItem/TopItem.tsx +2 -1
  306. package/mobile/src/utils/isSSR.ts +2 -0
  307. package/package.json +1 -1
  308. package/src/components/ContentPage/ContentPage.page.json +4 -4
  309. package/src/components/Footer/Contacts.tsx +7 -10
  310. package/src/components/Footer/Footer.fixture.mobile.tsx +3 -3
  311. package/src/components/Footer/Footer.fixture.tsx +4 -3
  312. package/src/components/Footer/Footer.tsx +15 -13
  313. package/src/components/Footer/FooterContent.ts +3 -0
  314. package/src/components/Footer/HorizontalNavigation.tsx +1 -1
  315. package/src/components/Footer/MediaButton.tsx +15 -1
  316. package/src/components/Footer/Sitemap.tsx +5 -5
  317. package/src/components/Footer/SocialMedia.tsx +8 -5
  318. package/src/components/Footer/TextInformation.tsx +2 -2
  319. package/src/components/Header/Header.tsx +5 -18
  320. package/src/components/Header/HeaderSecondaryMenu.tsx +4 -7
  321. package/src/components/Header/HeaderSubMenu.tsx +93 -0
  322. package/src/components/Header/HeaderSubMenuObserver.ts +44 -0
  323. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +2 -2
  324. package/src/components/ProductBlock/ProductBlock.fixture.tsx +35 -34
  325. package/src/components/ProductBlock/ProductBlock.tsx +2 -0
  326. package/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  327. package/src/components/ProductBlock/ProductBlockInner.tsx +14 -8
  328. package/src/components/ProductBlock/renderBackwardButton.tsx +34 -0
  329. package/src/components/ProductBlock/renderBenefit.tsx +4 -4
  330. package/src/components/Tile/Tile.example.json +1 -1
  331. package/src/components/Tile/Tile.fixture.tsx +6 -6
  332. package/src/components/Tile/Tile.tsx +12 -3
  333. package/src/icons/ArrowDownIcon.svg +1 -1
  334. package/src/icons/ArrowLeftIcon.svg +4 -0
  335. package/src/icons/BurgerIcon.svg +4 -4
  336. package/src/icons/Calendar2Icon.svg +1 -1
  337. package/src/icons/CalendarCircleIcon.svg +4 -1
  338. package/src/icons/CalendarIcon.svg +1 -1
  339. package/src/icons/CalendarTickIcon.svg +6 -1
  340. package/src/icons/CalendarWhiteIcon.svg +2 -2
  341. package/src/icons/CardIcon.svg +5 -1
  342. package/src/icons/CardPosIcon.svg +5 -1
  343. package/src/icons/CardTickIcon.svg +5 -1
  344. package/src/icons/ChartSquareIcon.svg +6 -1
  345. package/src/icons/CloseIcon.svg +4 -4
  346. package/src/icons/DiscountShapeIcon.svg +4 -1
  347. package/src/icons/DocIcon.svg +1 -1
  348. package/src/icons/DocumentTextIcon.svg +2 -2
  349. package/src/icons/EmptyWalletChangeIcon.svg +8 -1
  350. package/src/icons/EmptyWalletIcon.svg +2 -2
  351. package/src/icons/GlobalIcon.svg +5 -1
  352. package/src/icons/GpsIcon.svg +6 -6
  353. package/src/icons/IconName.ts +5 -2
  354. package/src/icons/InterestIcon.svg +6 -1
  355. package/src/icons/MasterCardIcon.svg +5 -1
  356. package/src/icons/MinusIcon.svg +3 -1
  357. package/src/icons/MoneyIcon.svg +5 -1
  358. package/src/icons/MonitorMobileIcon.svg +4 -1
  359. package/src/icons/PercentageRoundIcon.svg +4 -1
  360. package/src/icons/PercentageSquareIcon.svg +1 -1
  361. package/src/icons/PersonalCardIcon.svg +4 -1
  362. package/src/icons/PlayMarketIcon.svg +3 -1
  363. package/src/icons/PlusIcon.svg +3 -1
  364. package/src/icons/Profile2UserIcon.svg +6 -1
  365. package/src/icons/RoundRubleIcon.svg +5 -1
  366. package/src/icons/SafeIcon.svg +7 -1
  367. package/src/icons/ShieldTickIcon.svg +4 -1
  368. package/src/icons/SmallClockIcon.svg +4 -1
  369. package/src/icons/UserTickIcon.svg +5 -1
  370. package/src/icons/WalletAdd2Icon.svg +6 -1
  371. package/src/icons/WalletAddIcon.svg +7 -1
  372. package/src/icons/WalletIcon.svg +7 -1
  373. package/src/icons/WalletWithMoneyIcon.svg +5 -1
  374. package/src/ui-kit/Button/ButtonInner.tsx +2 -2
  375. package/src/ui-kit/HeaderItem/HeaderItem.tsx +14 -3
  376. package/src/ui-kit/Heading/Heading.tsx +2 -2
  377. package/src/ui-kit/Icon/Icon.tsx +2 -2
  378. package/src/ui-kit/List/List.tsx +2 -0
  379. package/src/ui-kit/List/ListItem.tsx +19 -5
  380. package/src/ui-kit/List/ListProps.ts +1 -1
  381. package/src/ui-kit/Logo/Logo.tsx +1 -1
  382. package/src/ui-kit/SearchBar/SearchBar.tsx +2 -2
  383. package/src/ui-kit/TopItem/TopItem.tsx +2 -1
  384. package/src/utils/isSSR.ts +2 -0
@@ -30,6 +30,20 @@ const ICONS_MAP: Array<{
30
30
  width: '12px',
31
31
  height: '20px',
32
32
  },
33
+ {
34
+ origins: ['apps.apple.com'],
35
+ icon: { icon: 'AppleIcon' },
36
+ label: 'App Store',
37
+ width: '20px',
38
+ height: '22px',
39
+ },
40
+ {
41
+ origins: ['play.google.com'],
42
+ icon: { icon: 'PlayMarketIcon' },
43
+ label: 'Google Play',
44
+ width: '21px',
45
+ height: '21px',
46
+ },
33
47
  ];
34
48
 
35
49
  interface MediaButtonProps {
@@ -44,7 +58,7 @@ export const MediaButton = JSX<MediaButtonProps>(({ href }) => {
44
58
 
45
59
  return (
46
60
  <a
47
- className="flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[40px] h-[40px] box-border hover:text-primary-main"
61
+ className="flex items-center justify-center border border-solid rounded-md border-main-divider no-underline outline-none w-14 h-14 box-border text-primary-main hover:text-white hover:bg-primary-main hover:border-primary-main"
48
62
  href={href}
49
63
  aria-label={label}
50
64
  target="_blank"
@@ -10,7 +10,7 @@ export interface SitemapProps extends UniBlockProps {
10
10
  items?: TopMenuItem[];
11
11
  }
12
12
 
13
- export const Sitemap = JSX<SitemapProps>(({ className, items, context }) => {
13
+ export const Sitemap = JSX<SitemapProps>(({ className = '', items, context }) => {
14
14
  const sitemap = useSitemap(context.useAsyncData);
15
15
  const mergedItems = mergeTopItems(sitemap.topItems, items);
16
16
  const linkParams = {
@@ -19,7 +19,7 @@ export const Sitemap = JSX<SitemapProps>(({ className, items, context }) => {
19
19
  };
20
20
 
21
21
  return (
22
- <div className={`flex items-start justify-start gap-11 xl:gap-5 ${className || ''}`}>
22
+ <div className={`flex items-start justify-between gap-11 xl:gap-5 ${className}`}>
23
23
  {mergedItems?.map((_, i) => renderColumn(_, i, linkParams))}
24
24
  </div>
25
25
  );
@@ -29,9 +29,9 @@ const renderColumn = (c: TopMenuItem, index: number, { router, handlerDecorator
29
29
  const { text, href, items, target } = c;
30
30
 
31
31
  return (
32
- <div key={String(index)} className="flex flex-col gap-[14px]">
32
+ <div key={String(index)} className="flex flex-col w-1/5 last:w-1/4 gap-[14px]">
33
33
  <a
34
- className="block font-sans font-medium text-base text-primary-text no-underline"
34
+ className="block font-sans leading-5 text-base text-primary-text no-underline"
35
35
  href={href}
36
36
  target={target || '_self'}
37
37
  >
@@ -50,7 +50,7 @@ interface ColumnItemProps extends LinkProps {
50
50
 
51
51
  const ColumnItem = JSX<ColumnItemProps>(({ text, href, target, index }) => (
52
52
  <a
53
- className="block font-sans font-normal text-base text-secondary-text hover:text-primary-main no-underline"
53
+ className="block font-sans font-light text-base text-secondary-text hover:text-primary-main no-underline"
54
54
  href={href}
55
55
  target={target || '_self'}
56
56
  >
@@ -8,14 +8,17 @@ export interface SocialMediaProps extends UniBlockProps {
8
8
  media?: Omit<LinkProps, 'text'>[];
9
9
  }
10
10
 
11
- export const SocialMedia = JSX<SocialMediaProps>(({ className, media, context }) => {
11
+ export const SocialMedia = JSX<SocialMediaProps>(({ className = '', media, context, children }) => {
12
12
  const router = context.useRouter();
13
13
  const { handlerDecorator } = context;
14
14
  return (
15
- <div className={`flex items-end gap-2 pt-[30px] pb-7 ${className || ''}`}>
16
- {media?.map((_, index) => (
17
- <MediaButton key={String(index)} {...useLink({ router, handlerDecorator }, _)} />
18
- ))}
15
+ <div>
16
+ <div className={`flex gap-2.5 mb-1.5 ${className}`}>
17
+ {media?.map((_, index) => (
18
+ <MediaButton key={String(index)} {...useLink({ router, handlerDecorator }, _)} />
19
+ ))}
20
+ </div>
21
+ <span className="font-light text-sm text-secondary-text">{children}</span>
19
22
  </div>
20
23
  );
21
24
  });
@@ -9,7 +9,7 @@ export const TextInformation = JSX<FooterLink>(({ className, links, context }) =
9
9
  return (
10
10
  <div className={`${className || ''}`}>
11
11
  <div className="pt-5 pb-[5px]">
12
- <span className="font-sans font-normal text-xs text-secondary-text">
12
+ <span className="font-sans font-light text-xs text-secondary-text">
13
13
  {`\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.`}
14
14
  </span>
15
15
  </div>
@@ -37,7 +37,7 @@ interface TextInformationLinkProps extends LinkProps {
37
37
  const TextInformationLink = JSX<Partial<TextInformationLinkProps>>(
38
38
  ({ className, index, text, href, target, onClick }) => (
39
39
  <a
40
- className={`font-sans font-normal text-xs text-secondary-text visited:text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${
40
+ className={`font-sans font-light text-xs text-secondary-text visited:text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${
41
41
  className || ''
42
42
  }`}
43
43
  href={href}
@@ -1,16 +1,15 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useLink } from '../../hooks/useLink';
3
3
  import type { BgColorVersion } from '../../model/BgColorVersion';
4
- import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
5
4
  import { isTopItemActive } from '../../services/sitemap/isTopItemActive';
6
5
  import { mergeTopItems } from '../../services/sitemap/mergeTopItems';
7
6
  import { useSitemap } from '../../services/sitemap/useSitemap';
8
7
  import type { UniBlockProps } from '../../types';
9
- import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
10
8
  import { Logo } from '../../ui-kit/Logo/Logo';
11
9
  import { TopItem } from '../../ui-kit/TopItem/TopItem';
12
10
  import type { HeaderContent } from './HeaderContent';
13
11
  import { HeaderSecondaryMenu } from './HeaderSecondaryMenu';
12
+ import { HeaderSubMenu } from './HeaderSubMenu';
14
13
 
15
14
  const BORDER_COLORS: Record<BgColorVersion, string> = {
16
15
  'bg-white': 'bg-main-divider',
@@ -21,7 +20,7 @@ export interface HeaderProps extends HeaderContent, UniBlockProps {}
21
20
 
22
21
  export const Header = JSX<HeaderProps>(
23
22
  ({
24
- className,
23
+ className = '',
25
24
  defaultLocation = 'Москва',
26
25
  bgColor = 'bg-white',
27
26
  context,
@@ -34,8 +33,6 @@ export const Header = JSX<HeaderProps>(
34
33
 
35
34
  const mergedItems = mergeTopItems(sitemap.topItems, topItems);
36
35
  const activeTopItem = mergedItems.find(isTopItemActive(router));
37
- const subItems = activeTopItem?.items;
38
- const activeSubItem = findActiveSubItem(router)(subItems);
39
36
 
40
37
  const topMenu = mergedItems.map((_, i) => (
41
38
  <TopItem
@@ -47,18 +44,8 @@ export const Header = JSX<HeaderProps>(
47
44
  />
48
45
  ));
49
46
 
50
- const subMenu = subItems?.map((_) => (
51
- <HeaderItem
52
- key={_.href}
53
- className="mr-8"
54
- active={_ === activeSubItem}
55
- {...useLink({ router, handlerDecorator }, _)}
56
- bgColor={bgColor}
57
- />
58
- ));
59
-
60
47
  return (
61
- <header className={`pt-5 pb-8 px-20 ${bgColor} ${className || ''}`} id={anchor}>
48
+ <header className={`pt-6 pb-8 px-20 ${bgColor} ${className}`} id={anchor}>
62
49
  <div className="container">
63
50
  <div className="flex items-center">
64
51
  <Logo className="mr-8" bgColor={bgColor} />
@@ -70,8 +57,8 @@ export const Header = JSX<HeaderProps>(
70
57
  bgColor={bgColor}
71
58
  />
72
59
  </div>
73
- <div className={`mt-5 h-[1px] ${BORDER_COLORS[bgColor]}`} />
74
- <nav className="mt-5">{subMenu}</nav>
60
+ <div className={`mt-6 h-[1px] ${BORDER_COLORS[bgColor]}`} />
61
+ <HeaderSubMenu context={context} subItems={activeTopItem?.items} bgColor={bgColor} />
75
62
  </div>
76
63
  </header>
77
64
  );
@@ -17,11 +17,11 @@ const COLORS_MAP: Record<BgColorVersion, string> = {
17
17
  'bg-white': 'text-primary-text hover:text-primary-main',
18
18
  transparent: 'text-white',
19
19
  };
20
- const DOP_LINKS_COLORS_MAP: Record<BgColorVersion, string> = {
20
+ const LINKS_COLORS_MAP: Record<BgColorVersion, string> = {
21
21
  'bg-white': 'text-secondary-light hover:text-secondary-hover',
22
22
  transparent: 'text-white',
23
23
  };
24
- const DOP_LINKS_ICON_NAME_MAP: Record<BgColorVersion, IconName> = {
24
+ const LINKS_ICON_NAME_MAP: Record<BgColorVersion, IconName> = {
25
25
  'bg-white': 'GridIcon',
26
26
  transparent: 'GridIconWhite',
27
27
  };
@@ -54,14 +54,11 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
54
54
  >
55
55
  <Img image="LoupeIcon" className="h-full" asSVG color="none" />
56
56
  </HeaderSecondaryMenuButton>
57
- <HeaderSecondaryMenuButton className={`mr-5 ${COLORS_MAP[bgColor]}`} ariaLabel="Профиль">
58
- <Img image="ProfileIcon" className="h-full" asSVG color="none" />
59
- </HeaderSecondaryMenuButton>
60
57
  <HeaderSecondaryMenuButton
61
- className={`${DOP_LINKS_COLORS_MAP[bgColor]} min-w-[32px] min-h-[32px]`}
58
+ className={`${LINKS_COLORS_MAP[bgColor]} min-w-[32px] min-h-[32px]`}
62
59
  ariaLabel="Дополнительные ссылки"
63
60
  >
64
- <Img image={DOP_LINKS_ICON_NAME_MAP[bgColor]} className="h-full" asSVG color="none" />
61
+ <Img image={LINKS_ICON_NAME_MAP[bgColor]} className="h-full" asSVG color="none" />
65
62
  </HeaderSecondaryMenuButton>
66
63
  </div>
67
64
  );
@@ -0,0 +1,93 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useLink } from '../../hooks/useLink';
3
+ import type { BgColorVersion } from '../../model/BgColorVersion';
4
+ import type { LinkProps } from '../../model/LinkProps';
5
+ import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
6
+ import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
7
+ import type { ContentPageContext } from '../ContentPage/ContentPageContext';
8
+ import { headerSubMenuObserver } from './HeaderSubMenuObserver';
9
+
10
+ export interface HeaderSubMenuProps {
11
+ context: ContentPageContext;
12
+ subItems?: LinkProps[];
13
+ bgColor?: BgColorVersion;
14
+ }
15
+
16
+ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(({ context, subItems, bgColor }) => {
17
+ const [subMenuIsShow, setHiddenMenuIsShow] = context.useState(false);
18
+ const router = context.useRouter();
19
+ const { handlerDecorator } = context;
20
+
21
+ setTimeout(() => {
22
+ const headerSubMenu = globalThis.document.querySelectorAll('[data-item-name=header-submenu]');
23
+ headerSubMenu.forEach((_) => {
24
+ headerSubMenuObserver?.observe(_);
25
+ });
26
+ }, 200);
27
+
28
+ const activeSubItem = findActiveSubItem(router)(subItems);
29
+ const toggleSubMenu = () => setHiddenMenuIsShow(!subMenuIsShow);
30
+
31
+ const subMenu = subItems?.map((_) => (
32
+ <HeaderItem
33
+ key={_.href}
34
+ className="mr-8"
35
+ active={_ === activeSubItem}
36
+ {...useLink({ router, handlerDecorator }, _)}
37
+ dataItemName="header-submenu"
38
+ bgColor={bgColor}
39
+ />
40
+ ));
41
+
42
+ return (
43
+ <nav className="relative mt-5">
44
+ <div className="overflow-hidden whitespace-nowrap mr-52">{subMenu}</div>
45
+ {renderDotsSubMenu({
46
+ subMenuIsShow,
47
+ toggleSubMenu,
48
+ subItems,
49
+ router,
50
+ handlerDecorator,
51
+ })}
52
+ </nav>
53
+ );
54
+ });
55
+
56
+ // TODO: add types
57
+ const renderDotsSubMenu = ({
58
+ subMenuIsShow,
59
+ toggleSubMenu,
60
+ subItems,
61
+ router,
62
+ handlerDecorator,
63
+ }) => (
64
+ <div
65
+ className={`absolute w-52 -top-4 right-0 pt-4 z-40 ${
66
+ subMenuIsShow ? 'bg-white rounded-md shadow-blue-gray/24' : ''
67
+ }`}
68
+ data-header-submenu-visible="toggled"
69
+ >
70
+ <button
71
+ className="flex justify-between items-center cursor-pointer h-6 ml-6"
72
+ onClick={toggleSubMenu}
73
+ >
74
+ {Array(3).fill(<div className="w-[3px] h-[3px] rounded bg-black mr-1" />)}
75
+ </button>
76
+ <div className={`flex flex-col rounded-md bg-white p-6 pb-2 ${subMenuIsShow ? '' : 'hidden'}`}>
77
+ {renderDotsSubMenuItems(subItems, router, handlerDecorator)}
78
+ </div>
79
+ </div>
80
+ );
81
+
82
+ // TODO: add types
83
+ const renderDotsSubMenuItems = (subItems, router, handlerDecorator) =>
84
+ subItems?.map((_) => (
85
+ <a
86
+ key={_.href}
87
+ {...useLink({ router, handlerDecorator }, _)}
88
+ data-item-name="dots-header-submenu"
89
+ className="text-base font-light pb-4 hover:text-primary-main"
90
+ >
91
+ {_.text}
92
+ </a>
93
+ ));
@@ -0,0 +1,44 @@
1
+ import { isSSR } from '../../utils/isSSR';
2
+
3
+ export const headerSubMenuObserver = isSSR()
4
+ ? undefined
5
+ : new IntersectionObserver(
6
+ (entries) => {
7
+ const headerSubMenuButtonElement = window.document.querySelector(
8
+ '[data-header-submenu-visible=toggled]',
9
+ );
10
+ const headerSubMenuItems = Array.from(
11
+ window.document.querySelectorAll('[data-item-name=header-submenu]'),
12
+ );
13
+ const dotsHeaderSubMenuItems = Array.from(
14
+ window.document.querySelectorAll('[data-item-name=dots-header-submenu]'),
15
+ );
16
+ const visibilityList = {};
17
+ entries.forEach((j) => {
18
+ visibilityList[String(j.target.toString())] = j.isIntersecting;
19
+ });
20
+ const isHeaderSubMenuButtonShow = toggleVisibilityInItems(
21
+ visibilityList,
22
+ dotsHeaderSubMenuItems,
23
+ 'hidden',
24
+ );
25
+ toggleVisibilityInItems(visibilityList, headerSubMenuItems, 'invisible');
26
+ if (headerSubMenuButtonElement) {
27
+ isHeaderSubMenuButtonShow
28
+ ? headerSubMenuButtonElement.classList.remove('hidden')
29
+ : headerSubMenuButtonElement.classList.add('hidden');
30
+ }
31
+ },
32
+ { root: window.document, threshold: 1.0 },
33
+ );
34
+
35
+ // TODO: add types
36
+ const toggleVisibilityInItems = (visibilityList, items, className) => {
37
+ const isReversed = className !== 'hidden';
38
+ return items.some((item) => {
39
+ const key = item.toString();
40
+ const option = isReversed ? !visibilityList[key] : visibilityList[key];
41
+ key in visibilityList ? item.classList.toggle(className, option) : null;
42
+ return isReversed ? item.classList.contains('hidden') : !item.classList.contains('hidden');
43
+ });
44
+ };
@@ -17,7 +17,7 @@ export default {
17
17
  aboveText: 'Загрузите в',
18
18
  text: 'App Store',
19
19
  icon: { icon: 'AppleIcon' },
20
- href: '#',
20
+ href: 'apps.apple.com',
21
21
  asSVG: true,
22
22
  version: 'secondary',
23
23
  },
@@ -25,7 +25,7 @@ export default {
25
25
  aboveText: 'Доступно в',
26
26
  text: 'Google Play',
27
27
  icon: { icon: 'PlayMarketIcon' },
28
- href: '#',
28
+ href: 'play.google.com',
29
29
  asSVG: true,
30
30
  version: 'secondary',
31
31
  },
@@ -2,7 +2,7 @@ import type { Picture } from '../../model/Picture';
2
2
  import { context } from '../../setup-fixture';
3
3
  import { ProductBlock } from './ProductBlock';
4
4
  import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
5
- import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
5
+ import type { ButtonWithIconProps, ButtonProps } from '../../ui-kit/Button/ButtonProps';
6
6
  import type { ProductBlockContent } from './ProductBlockContent';
7
7
 
8
8
  const image: Picture = {
@@ -15,20 +15,6 @@ const image: Picture = {
15
15
  },
16
16
  };
17
17
 
18
- const breadcrumbs = [
19
- {
20
- text: 'Главная',
21
- href: '/',
22
- },
23
- {
24
- text: 'Кредитные карты',
25
- href: '/credit',
26
- },
27
- {
28
- text: 'Кредитная карта Своя Union Pay',
29
- },
30
- ];
31
-
32
18
  const benefits: Benefit[] = [
33
19
  {
34
20
  label: 'До 5 млн ₽',
@@ -62,16 +48,21 @@ const buttons: ButtonWithIconProps[] = [
62
48
  },
63
49
  ];
64
50
 
51
+ const items = [
52
+ 'Совершайте любые личные покупки',
53
+ 'Используйте корпоративную карту как обычную дебетовую, если вы ИП',
54
+ 'Расходы для бизнеса на УСН 15% позволят снизить налоговую базу',
55
+ ];
56
+
57
+ const backwardButton: ButtonProps = {
58
+ href: 'https://rshb.ru',
59
+ text: 'Все кредитные карты',
60
+ };
61
+
65
62
  export const PRODUCT_BLOCK: ProductBlockContent = {
66
63
  title: 'Оплата проходит в 180 странах мира',
67
64
  headingType: 'h2',
68
- description:
69
- 'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
70
- items: [
71
- 'Совершайте любые личные покупки',
72
- 'Используйте корпоративную карту как обычную дебетовую, если вы ИП',
73
- 'Расходы для бизнеса на УСН 15% позволят снизить налоговую базу',
74
- ],
65
+ items,
75
66
  buttons: buttons,
76
67
  };
77
68
 
@@ -84,7 +75,6 @@ export default {
84
75
  title={'Потребительский кредит наличными'}
85
76
  headingType="h2"
86
77
  description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
87
- breadcrumbs={breadcrumbs}
88
78
  benefits={benefits}
89
79
  buttons={buttons}
90
80
  image={image}
@@ -100,31 +90,42 @@ export default {
100
90
  headingType="h2"
101
91
  version={'secondary'}
102
92
  description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
103
- breadcrumbs={breadcrumbs}
104
93
  benefits={benefits}
105
- buttons={buttons}
94
+ buttons={[
95
+ {
96
+ href: 'https://rshb.ru',
97
+ text: 'Подробнее',
98
+ target: '_blank',
99
+ version: 'secondary',
100
+ },
101
+ ]}
102
+ items={items}
106
103
  image={image}
107
104
  />
108
105
  </div>
109
106
  ),
110
107
  'with items': (
111
108
  <div className="container grid grid-cols-12">
112
- <ProductBlock
113
- className="col-span-12"
114
- context={context}
115
- breadcrumbs={breadcrumbs}
116
- {...PRODUCT_BLOCK}
117
- image={image}
118
- />
109
+ <ProductBlock className="col-span-12" context={context} {...PRODUCT_BLOCK} image={image} />
119
110
  </div>
120
111
  ),
121
112
  'without image': (
113
+ <div className="container grid grid-cols-12">
114
+ <ProductBlock className="col-span-12" context={context} {...PRODUCT_BLOCK} />
115
+ </div>
116
+ ),
117
+ 'default-h1': (
122
118
  <div className="container grid grid-cols-12">
123
119
  <ProductBlock
124
120
  className="col-span-12"
125
121
  context={context}
126
- breadcrumbs={breadcrumbs}
127
- {...PRODUCT_BLOCK}
122
+ title={'Потребительский кредит наличными'}
123
+ headingType="h1"
124
+ description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
125
+ benefits={benefits}
126
+ buttons={buttons}
127
+ image={image}
128
+ backwardButton={backwardButton}
128
129
  />
129
130
  </div>
130
131
  ),
@@ -6,6 +6,7 @@ import { Breadcrumb } from '../../ui-kit/Breadcrumb';
6
6
  import { joinList } from '../../utils/joinList';
7
7
  import type { ProductBlockContent } from './ProductBlockContent';
8
8
  import { ProductBlockInner } from './ProductBlockInner';
9
+ import { renderBackwardButton } from './renderBackwardButton';
9
10
 
10
11
  export interface ProductBlockProps extends ProductBlockContent, UniBlockProps {}
11
12
 
@@ -36,6 +37,7 @@ export const ProductBlock = JSX<ProductBlockProps>((props) => {
36
37
  className={`font-sans pt-10 pl-[50px] pb-[50px] pr-[7.5rem] box-border min-h-[420px] ${productBlockStyleMap[version]} ${className}`}
37
38
  id={anchor}
38
39
  >
40
+ {renderBackwardButton('Все дебетовые карты', version, 'mb-10')}
39
41
  {breadcrumbs?.length ? (
40
42
  <div className="text-xs mb-6">
41
43
  {joinList(<span className={`mx-2 ${breadcrumbsStyleMap[version]}`}>/</span>)(
@@ -1,6 +1,6 @@
1
1
  import type { BlockVersion } from '../../model/BlockVersion';
2
2
  import type { LinkProps } from '../../model/LinkProps';
3
- import type { ButtonContent } from '../../ui-kit/Button/ButtonProps';
3
+ import type { ButtonContent, ButtonProps } from '../../ui-kit/Button/ButtonProps';
4
4
  import type { DescriptionContent } from '../../ui-kit/Description/DescriptionContent';
5
5
  import type { HeadingContent, HeadingTypeContent } from '../../ui-kit/Heading/HeadingContent';
6
6
  import type { ImageContent } from '../../ui-kit/Img/ImgProps';
@@ -32,6 +32,8 @@ export type ProductBlockInnerContent = HeadingContent &
32
32
  * @hidden
33
33
  */
34
34
  textBlockClassName?: string;
35
+ /** @title Текст кнопки возврата */
36
+ backwardButton?: ButtonProps;
35
37
  };
36
38
 
37
39
  /**
@@ -4,6 +4,7 @@ import { ButtonSection } from '../../ui-kit/Button/ButtonSection';
4
4
  import { Description } from '../../ui-kit/Description/Description';
5
5
  import { Img } from '../../ui-kit/Img/Img';
6
6
  import { List } from '../../ui-kit/List/List';
7
+ import { Heading } from '../../ui-kit/Heading/Heading';
7
8
  import { BaseTile } from '../BaseTile/BaseTile';
8
9
  import type { ProductBlockInnerContent } from './ProductBlockContent';
9
10
  import { renderBenefit } from './renderBenefit';
@@ -31,12 +32,12 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
31
32
  <div className={`flex flex-col ${textBlockClassName}`}>
32
33
  <BaseTile
33
34
  context={context}
34
- title={getTitle(title, headingType, textColor)}
35
+ title={getTitle(title, headingType)}
35
36
  buttons={getButtons(context, buttons)}
36
37
  >
37
38
  {description && (
38
39
  <Description
39
- className={`mt-[18px] max-w-[600px] text-title-new-sm font-light ${textColor}`}
40
+ className={`mt-4 max-w-[600px] text-md font-light ${textColor}`}
40
41
  description={description}
41
42
  />
42
43
  )}
@@ -47,9 +48,9 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
47
48
  ) : null}
48
49
  {items?.length ? (
49
50
  <List
50
- className="mt-5 text-title-new-sm font-light"
51
+ className="mt-5 text-title-2xs font-light"
51
52
  items={items}
52
- itemClassName="mb-[10px]"
53
+ itemClassName="mb-[7px]"
53
54
  version={version}
54
55
  isDotted={isDotted}
55
56
  />
@@ -62,15 +63,20 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
62
63
  },
63
64
  );
64
65
 
65
- const getTitle = (title, headingType, textColor) => {
66
- const Tag = headingType;
66
+ const getTitle = (title, headingType) => {
67
67
  return (
68
- title && <Tag className={`font-sans font-medium m-0 text-title-xl ${textColor}`}>{title}</Tag>
68
+ title && (
69
+ <Heading
70
+ headingType={headingType}
71
+ title={title}
72
+ className="whitespace-pre-wrap max-w-[600px]"
73
+ />
74
+ )
69
75
  );
70
76
  };
71
77
 
72
78
  const getButtons = (context, buttons) => {
73
79
  return buttons?.length ? (
74
- <ButtonSection context={context} buttons={buttons} className="flex mt-9 gap-3" />
80
+ <ButtonSection context={context} buttons={buttons} className="flex mt-9 gap-4" />
75
81
  ) : null;
76
82
  };
@@ -0,0 +1,34 @@
1
+ import { Img } from '../../ui-kit/Img/Img';
2
+ import { Button } from '../../ui-kit/Button/Button';
3
+ import type { BlockVersion } from '../../model/BlockVersion';
4
+
5
+ const backwardBgStyleMap: Record<BlockVersion, string> = {
6
+ primary: 'bg-primary-main',
7
+ secondary: 'bg-white',
8
+ };
9
+
10
+ const backwardIconStyleMap: Record<BlockVersion, string> = {
11
+ primary: 'text-white',
12
+ secondary: 'text-primary-text',
13
+ };
14
+
15
+ export function renderBackwardButton(text: string, version: BlockVersion, className: string) {
16
+ return (
17
+ <div className={`flex items-center ${className}`}>
18
+ <Button
19
+ rounded
20
+ className={`w-12 h-12 min-h-12 max-h-12 flex items-center justify-center mr-3 ${backwardBgStyleMap[version]}`}
21
+ >
22
+ <Img
23
+ className={`w-4 h-4 min-w-4 min-h-4 rounded-full box-border ${backwardIconStyleMap[version]}`}
24
+ image={{ icon: 'ArrowLeftIcon' }}
25
+ color="none"
26
+ width="24"
27
+ height="24"
28
+ asSVG
29
+ />
30
+ </Button>
31
+ {text ? <span className="text-m-md">{text}</span> : null}
32
+ </div>
33
+ );
34
+ }
@@ -3,7 +3,7 @@ import { Img } from '../../ui-kit/Img/Img';
3
3
  import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
4
4
 
5
5
  const benefitIconBgStyleMap: Record<BlockVersion, string> = {
6
- primary: 'bg-main',
6
+ primary: 'bg-primary-main',
7
7
  secondary: 'bg-white/30',
8
8
  };
9
9
  const benefitTitleStyleMap: Record<BlockVersion, string> = {
@@ -20,19 +20,19 @@ export function renderBenefit(benefit: Benefit, i: number, version: string) {
20
20
  <div key={String(i)} className="flex gap-4 items-center">
21
21
  {benefit.icon ? (
22
22
  <Img
23
- className={`w-[50px] h-[50px] min-w-[50px] min-h-[50px] rounded-full p-[10px] box-border ${benefitIconBgStyleMap[version]}`}
23
+ className={`w-[50px] h-[50px] min-w-[50px] min-h-[50px] rounded-full p-[10px] box-border text-white ${benefitIconBgStyleMap[version]}`}
24
24
  image={benefit.icon}
25
25
  width="24"
26
26
  height="24"
27
27
  asSVG
28
28
  />
29
29
  ) : null}
30
- <div className="flex gap-1 flex-col h-full max-w-[149px]">
30
+ <div className="flex gap-0.5 flex-col h-full max-w-[149px]">
31
31
  <div className={`font-medium text-xl m-0 ${benefitTitleStyleMap[version]}`}>
32
32
  {benefit.label}
33
33
  </div>
34
34
  {benefit.description && (
35
- <div className={`font-normal text-sm ${benefitDescStyleMap[version]}`}>
35
+ <div className={`font-normal text-m-md ${benefitDescStyleMap[version]}`}>
36
36
  {benefit.description}
37
37
  </div>
38
38
  )}
@@ -5,7 +5,7 @@
5
5
  "image": {
6
6
  "format": "webp",
7
7
  "size": {
8
- "width": 300
8
+ "width": 445
9
9
  }
10
10
  },
11
11
  "items": ["Пункт 1", "Пункт 2", "Пункт 3"],