@redneckz/wildless-cms-uni-blocks 0.6.23 → 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 (377) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +125 -137
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  5. package/bundle/components/Header/DropdownMenu.d.ts +5 -7
  6. package/bundle/components/Header/HeaderSubMenuItem.d.ts +12 -0
  7. package/bundle/hooks/useIntersectionObserver.d.ts +3 -0
  8. package/bundle/hooks/useOutsideClick.d.ts +3 -5
  9. package/bundle/model/IconVersion.d.ts +4 -2
  10. package/bundle/ui-kit/TopItem/TopItem.d.ts +1 -1
  11. package/bundle/utils/getIconWithVersion.d.ts +3 -0
  12. package/dist/components/AccordionItem/AccordionItem.mobile.js +2 -1
  13. package/dist/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  14. package/dist/components/BenefitsBlock/BenefitsBlock.js +7 -20
  15. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  16. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  17. package/dist/components/Calculator/Calculator.js +6 -1
  18. package/dist/components/Calculator/Calculator.js.map +1 -1
  19. package/dist/components/ComparisonTable/HeaderCell.js +2 -1
  20. package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  21. package/dist/components/Footer/Footer.mobile.js +3 -2
  22. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  23. package/dist/components/Footer/MediaButton.js +2 -1
  24. package/dist/components/Footer/MediaButton.js.map +1 -1
  25. package/dist/components/Gallery/GalleryCardInner.js +3 -2
  26. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  27. package/dist/components/Header/DropdownMenu.d.ts +5 -7
  28. package/dist/components/Header/DropdownMenu.js +8 -7
  29. package/dist/components/Header/DropdownMenu.js.map +1 -1
  30. package/dist/components/Header/HeaderSubMenu.js +8 -21
  31. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  32. package/dist/components/Header/HeaderSubMenuItem.d.ts +12 -0
  33. package/dist/components/Header/HeaderSubMenuItem.js +23 -0
  34. package/dist/components/Header/HeaderSubMenuItem.js.map +1 -0
  35. package/dist/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  36. package/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  37. package/dist/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  38. package/dist/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  39. package/dist/components/OfficeServicesBlock/OfficeServicesBlock.js +2 -1
  40. package/dist/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  41. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  42. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  43. package/dist/components/ProductBlock/renderBenefit.js +1 -3
  44. package/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  45. package/dist/components/StepsBlock/StepsBlock.js +4 -3
  46. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  47. package/dist/components/StepsBlock/StepsBlock.mobile.js +2 -1
  48. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  49. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js +1 -0
  50. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
  51. package/dist/components/TariffsTable/TariffsTableRow.js +2 -1
  52. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  53. package/dist/hooks/useIntersectionObserver.d.ts +3 -0
  54. package/dist/hooks/useIntersectionObserver.js +19 -0
  55. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  56. package/dist/hooks/useOutsideClick.d.ts +3 -5
  57. package/dist/hooks/useOutsideClick.js +11 -9
  58. package/dist/hooks/useOutsideClick.js.map +1 -1
  59. package/dist/index.js +1 -1
  60. package/dist/index.js.map +1 -1
  61. package/dist/model/IconVersion.d.ts +4 -2
  62. package/dist/model/IconVersion.js +10 -0
  63. package/dist/model/IconVersion.js.map +1 -1
  64. package/dist/ui-kit/BenefitItem/BenefitItem.js +3 -4
  65. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  66. package/dist/ui-kit/BlockWrapper.js +18 -26
  67. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  68. package/dist/ui-kit/Button/ButtonSection.js +5 -5
  69. package/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  70. package/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  71. package/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  72. package/dist/ui-kit/Icon/Icon.js +4 -3
  73. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  74. package/dist/ui-kit/Logo/Logo.js +1 -1
  75. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  76. package/dist/ui-kit/Logo/Logo.mobile.js +5 -1
  77. package/dist/ui-kit/Logo/Logo.mobile.js.map +1 -1
  78. package/dist/ui-kit/Select/Select.js +2 -2
  79. package/dist/ui-kit/Select/Select.js.map +1 -1
  80. package/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  81. package/dist/utils/getIconWithVersion.d.ts +3 -0
  82. package/dist/utils/getIconWithVersion.js +8 -0
  83. package/dist/utils/getIconWithVersion.js.map +1 -0
  84. package/lib/common.css +1 -1
  85. package/lib/components/AccordionItem/AccordionItem.mobile.js +2 -1
  86. package/lib/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  87. package/lib/components/BenefitsBlock/BenefitsBlock.js +7 -20
  88. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  89. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  90. package/lib/components/Calculator/Calculator.js +6 -1
  91. package/lib/components/Calculator/Calculator.js.map +1 -1
  92. package/lib/components/ComparisonTable/HeaderCell.js +2 -1
  93. package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  94. package/lib/components/Footer/Footer.mobile.js +3 -2
  95. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  96. package/lib/components/Footer/MediaButton.js +2 -1
  97. package/lib/components/Footer/MediaButton.js.map +1 -1
  98. package/lib/components/Gallery/GalleryCardInner.js +3 -2
  99. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  100. package/lib/components/Header/DropdownMenu.d.ts +5 -7
  101. package/lib/components/Header/DropdownMenu.js +8 -7
  102. package/lib/components/Header/DropdownMenu.js.map +1 -1
  103. package/lib/components/Header/HeaderSubMenu.js +8 -21
  104. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  105. package/lib/components/Header/HeaderSubMenuItem.d.ts +12 -0
  106. package/lib/components/Header/HeaderSubMenuItem.js +21 -0
  107. package/lib/components/Header/HeaderSubMenuItem.js.map +1 -0
  108. package/lib/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  109. package/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  110. package/lib/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  111. package/lib/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  112. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.js +2 -1
  113. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  114. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  115. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  116. package/lib/components/ProductBlock/renderBenefit.js +1 -3
  117. package/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  118. package/lib/components/StepsBlock/StepsBlock.js +4 -3
  119. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  120. package/lib/components/StepsBlock/StepsBlock.mobile.js +2 -1
  121. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  122. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js +1 -0
  123. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
  124. package/lib/components/TariffsTable/TariffsTableRow.js +2 -1
  125. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  126. package/lib/hooks/useIntersectionObserver.d.ts +3 -0
  127. package/lib/hooks/useIntersectionObserver.js +16 -0
  128. package/lib/hooks/useIntersectionObserver.js.map +1 -0
  129. package/lib/hooks/useOutsideClick.d.ts +3 -5
  130. package/lib/hooks/useOutsideClick.js +12 -10
  131. package/lib/hooks/useOutsideClick.js.map +1 -1
  132. package/lib/index.js +1 -1
  133. package/lib/index.js.map +1 -1
  134. package/lib/model/IconVersion.d.ts +4 -2
  135. package/lib/model/IconVersion.js +10 -0
  136. package/lib/model/IconVersion.js.map +1 -1
  137. package/lib/ui-kit/BenefitItem/BenefitItem.js +3 -4
  138. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  139. package/lib/ui-kit/BlockWrapper.js +18 -26
  140. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  141. package/lib/ui-kit/Button/ButtonSection.js +5 -5
  142. package/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  143. package/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  144. package/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  145. package/lib/ui-kit/Icon/Icon.js +4 -3
  146. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  147. package/lib/ui-kit/Logo/Logo.js +1 -1
  148. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  149. package/lib/ui-kit/Logo/Logo.mobile.js +5 -1
  150. package/lib/ui-kit/Logo/Logo.mobile.js.map +1 -1
  151. package/lib/ui-kit/Select/Select.js +3 -3
  152. package/lib/ui-kit/Select/Select.js.map +1 -1
  153. package/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  154. package/lib/utils/getIconWithVersion.d.ts +3 -0
  155. package/lib/utils/getIconWithVersion.js +5 -0
  156. package/lib/utils/getIconWithVersion.js.map +1 -0
  157. package/mobile/bundle/bundle.umd.js +64 -71
  158. package/mobile/bundle/bundle.umd.min.js +1 -1
  159. package/mobile/bundle/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  160. package/mobile/bundle/components/Header/DropdownMenu.d.ts +5 -7
  161. package/mobile/bundle/components/Header/HeaderSubMenuItem.d.ts +12 -0
  162. package/mobile/bundle/hooks/useIntersectionObserver.d.ts +3 -0
  163. package/mobile/bundle/hooks/useOutsideClick.d.ts +3 -5
  164. package/mobile/bundle/model/IconVersion.d.ts +4 -2
  165. package/mobile/bundle/ui-kit/TopItem/TopItem.d.ts +1 -1
  166. package/mobile/bundle/utils/getIconWithVersion.d.ts +3 -0
  167. package/mobile/dist/components/AccordionItem/AccordionItem.js +2 -1
  168. package/mobile/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  169. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +7 -20
  170. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  171. package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  172. package/mobile/dist/components/Calculator/Calculator.js +6 -1
  173. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  174. package/mobile/dist/components/Footer/Footer.js +3 -2
  175. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  176. package/mobile/dist/components/Footer/MediaButton.js +2 -1
  177. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  178. package/mobile/dist/components/Gallery/GalleryCardInner.js +3 -2
  179. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  180. package/mobile/dist/components/Header/DropdownMenu.d.ts +5 -7
  181. package/mobile/dist/components/Header/DropdownMenu.js +8 -7
  182. package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
  183. package/mobile/dist/components/Header/HeaderSubMenu.js +8 -21
  184. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  185. package/mobile/dist/components/Header/HeaderSubMenuItem.d.ts +12 -0
  186. package/mobile/dist/components/Header/HeaderSubMenuItem.js +23 -0
  187. package/mobile/dist/components/Header/HeaderSubMenuItem.js.map +1 -0
  188. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  189. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  190. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  191. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  192. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlock.js +2 -1
  193. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  194. package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -3
  195. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  196. package/mobile/dist/components/StepsBlock/StepsBlock.js +2 -1
  197. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  198. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js +1 -0
  199. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  200. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +2 -1
  201. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  202. package/mobile/dist/hooks/useIntersectionObserver.d.ts +3 -0
  203. package/mobile/dist/hooks/useIntersectionObserver.js +19 -0
  204. package/mobile/dist/hooks/useIntersectionObserver.js.map +1 -0
  205. package/mobile/dist/hooks/useOutsideClick.d.ts +3 -5
  206. package/mobile/dist/hooks/useOutsideClick.js +11 -9
  207. package/mobile/dist/hooks/useOutsideClick.js.map +1 -1
  208. package/mobile/dist/index.js +1 -1
  209. package/mobile/dist/index.js.map +1 -1
  210. package/mobile/dist/model/IconVersion.d.ts +4 -2
  211. package/mobile/dist/model/IconVersion.js +10 -0
  212. package/mobile/dist/model/IconVersion.js.map +1 -1
  213. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +3 -4
  214. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  215. package/mobile/dist/ui-kit/BlockWrapper.js +18 -26
  216. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  217. package/mobile/dist/ui-kit/Button/ButtonSection.js +5 -5
  218. package/mobile/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  219. package/mobile/dist/ui-kit/Icon/Icon.js +4 -3
  220. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  221. package/mobile/dist/ui-kit/Logo/Logo.js +5 -1
  222. package/mobile/dist/ui-kit/Logo/Logo.js.map +1 -1
  223. package/mobile/dist/ui-kit/Select/Select.js +2 -2
  224. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  225. package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  226. package/mobile/dist/utils/getIconWithVersion.d.ts +3 -0
  227. package/mobile/dist/utils/getIconWithVersion.js +8 -0
  228. package/mobile/dist/utils/getIconWithVersion.js.map +1 -0
  229. package/mobile/lib/components/AccordionItem/AccordionItem.js +2 -1
  230. package/mobile/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  231. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +7 -20
  232. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  233. package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +1 -1
  234. package/mobile/lib/components/Calculator/Calculator.js +6 -1
  235. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  236. package/mobile/lib/components/Footer/Footer.js +3 -2
  237. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  238. package/mobile/lib/components/Footer/MediaButton.js +2 -1
  239. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  240. package/mobile/lib/components/Gallery/GalleryCardInner.js +3 -2
  241. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  242. package/mobile/lib/components/Header/DropdownMenu.d.ts +5 -7
  243. package/mobile/lib/components/Header/DropdownMenu.js +8 -7
  244. package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
  245. package/mobile/lib/components/Header/HeaderSubMenu.js +8 -21
  246. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  247. package/mobile/lib/components/Header/HeaderSubMenuItem.d.ts +12 -0
  248. package/mobile/lib/components/Header/HeaderSubMenuItem.js +21 -0
  249. package/mobile/lib/components/Header/HeaderSubMenuItem.js.map +1 -0
  250. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  251. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  252. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  253. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  254. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlock.js +2 -1
  255. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  256. package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -3
  257. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  258. package/mobile/lib/components/StepsBlock/StepsBlock.js +2 -1
  259. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  260. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js +1 -0
  261. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  262. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +2 -1
  263. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  264. package/mobile/lib/hooks/useIntersectionObserver.d.ts +3 -0
  265. package/mobile/lib/hooks/useIntersectionObserver.js +16 -0
  266. package/mobile/lib/hooks/useIntersectionObserver.js.map +1 -0
  267. package/mobile/lib/hooks/useOutsideClick.d.ts +3 -5
  268. package/mobile/lib/hooks/useOutsideClick.js +12 -10
  269. package/mobile/lib/hooks/useOutsideClick.js.map +1 -1
  270. package/mobile/lib/index.js +1 -1
  271. package/mobile/lib/index.js.map +1 -1
  272. package/mobile/lib/model/IconVersion.d.ts +4 -2
  273. package/mobile/lib/model/IconVersion.js +10 -0
  274. package/mobile/lib/model/IconVersion.js.map +1 -1
  275. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +3 -4
  276. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  277. package/mobile/lib/ui-kit/BlockWrapper.js +18 -26
  278. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  279. package/mobile/lib/ui-kit/Button/ButtonSection.js +5 -5
  280. package/mobile/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  281. package/mobile/lib/ui-kit/Icon/Icon.js +4 -3
  282. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  283. package/mobile/lib/ui-kit/Logo/Logo.js +5 -1
  284. package/mobile/lib/ui-kit/Logo/Logo.js.map +1 -1
  285. package/mobile/lib/ui-kit/Select/Select.js +3 -3
  286. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  287. package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  288. package/mobile/lib/utils/getIconWithVersion.d.ts +3 -0
  289. package/mobile/lib/utils/getIconWithVersion.js +5 -0
  290. package/mobile/lib/utils/getIconWithVersion.js.map +1 -0
  291. package/mobile/src/components/AccordionItem/AccordionItem.tsx +15 -2
  292. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +44 -66
  293. package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +1 -1
  294. package/mobile/src/components/Calculator/Calculator.tsx +6 -1
  295. package/mobile/src/components/Footer/Footer.tsx +15 -5
  296. package/mobile/src/components/Footer/MediaButton.tsx +8 -1
  297. package/mobile/src/components/Gallery/Gallery.tsx +1 -1
  298. package/mobile/src/components/Gallery/GalleryCardInner.tsx +8 -3
  299. package/mobile/src/components/Header/DropdownMenu.tsx +46 -63
  300. package/mobile/src/components/Header/HeaderSubMenu.tsx +21 -40
  301. package/mobile/src/components/Header/HeaderSubMenuItem.tsx +61 -0
  302. package/mobile/src/components/LinkDocs/LinkDocsListItemBase.tsx +8 -1
  303. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  304. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlock.tsx +2 -1
  305. package/mobile/src/components/ProductBlock/renderBenefit.tsx +2 -3
  306. package/mobile/src/components/StepsBlock/StepsBlock.tsx +2 -1
  307. package/mobile/src/components/TariffsTable/EmbeddableCellData.tsx +1 -1
  308. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +2 -1
  309. package/mobile/src/hooks/useIntersectionObserver.ts +23 -0
  310. package/mobile/src/hooks/useOutsideClick.ts +13 -13
  311. package/mobile/src/index.ts +1 -1
  312. package/mobile/src/model/IconVersion.ts +5 -2
  313. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +3 -8
  314. package/mobile/src/ui-kit/BlockWrapper.tsx +27 -42
  315. package/mobile/src/ui-kit/Button/ButtonSection.tsx +5 -12
  316. package/mobile/src/ui-kit/Icon/Icon.tsx +4 -3
  317. package/mobile/src/ui-kit/Logo/Logo.tsx +10 -2
  318. package/mobile/src/ui-kit/Select/Select.tsx +3 -4
  319. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -1
  320. package/mobile/src/utils/getIconWithVersion.ts +7 -0
  321. package/package.json +1 -1
  322. package/src/components/AccordionItem/AccordionItem.mobile.tsx +15 -2
  323. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +6 -6
  324. package/src/components/BenefitsBlock/BenefitsBlock.tsx +44 -66
  325. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +1 -1
  326. package/src/components/Calculator/Calculator.tsx +6 -1
  327. package/src/components/ComparisonTable/HeaderCell.tsx +3 -1
  328. package/src/components/Footer/Footer.mobile.tsx +15 -5
  329. package/src/components/Footer/MediaButton.tsx +8 -1
  330. package/src/components/Gallery/Gallery.fixture.tsx +1 -0
  331. package/src/components/Gallery/Gallery.mobile.tsx +1 -1
  332. package/src/components/Gallery/GalleryCardInner.tsx +8 -3
  333. package/src/components/Header/DropdownMenu.tsx +46 -63
  334. package/src/components/Header/HeaderSubMenu.tsx +21 -40
  335. package/src/components/Header/HeaderSubMenuItem.tsx +61 -0
  336. package/src/components/LinkDocs/LinkDocsListItemBase.tsx +8 -1
  337. package/src/components/MobileAppTile/MobileAppTile.mobile.tsx +1 -1
  338. package/src/components/OfficeServicesBlock/OfficeServicesBlock.tsx +2 -1
  339. package/src/components/ProductBlock/ProductBlock.fixture.tsx +3 -1
  340. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  341. package/src/components/ProductBlock/renderBenefit.tsx +2 -3
  342. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +4 -4
  343. package/src/components/StepsBlock/StepsBlock.fixture.tsx +4 -3
  344. package/src/components/StepsBlock/StepsBlock.mobile.tsx +2 -1
  345. package/src/components/StepsBlock/StepsBlock.tsx +5 -3
  346. package/src/components/TariffsTable/EmbeddableCellData.mobile.tsx +1 -1
  347. package/src/components/TariffsTable/TariffsTableRow.tsx +2 -1
  348. package/src/hooks/useIntersectionObserver.ts +23 -0
  349. package/src/hooks/useOutsideClick.ts +13 -13
  350. package/src/index.ts +1 -1
  351. package/src/model/IconVersion.ts +5 -2
  352. package/src/ui-kit/BenefitItem/BenefitItem.tsx +3 -8
  353. package/src/ui-kit/BlockWrapper.tsx +27 -42
  354. package/src/ui-kit/Button/ButtonSection.tsx +5 -12
  355. package/src/ui-kit/HeaderItem/HeaderItem.tsx +3 -3
  356. package/src/ui-kit/Icon/Icon.tsx +4 -3
  357. package/src/ui-kit/Logo/Logo.mobile.tsx +10 -2
  358. package/src/ui-kit/Logo/Logo.tsx +1 -1
  359. package/src/ui-kit/Select/Select.tsx +3 -4
  360. package/src/ui-kit/TopItem/TopItem.tsx +1 -1
  361. package/src/utils/getIconWithVersion.ts +7 -0
  362. package/bundle/ui-kit/IntersectionObserverTag.d.ts +0 -12
  363. package/dist/ui-kit/IntersectionObserverTag.d.ts +0 -12
  364. package/dist/ui-kit/IntersectionObserverTag.js +0 -22
  365. package/dist/ui-kit/IntersectionObserverTag.js.map +0 -1
  366. package/lib/ui-kit/IntersectionObserverTag.d.ts +0 -12
  367. package/lib/ui-kit/IntersectionObserverTag.js +0 -20
  368. package/lib/ui-kit/IntersectionObserverTag.js.map +0 -1
  369. package/mobile/bundle/ui-kit/IntersectionObserverTag.d.ts +0 -12
  370. package/mobile/dist/ui-kit/IntersectionObserverTag.d.ts +0 -12
  371. package/mobile/dist/ui-kit/IntersectionObserverTag.js +0 -22
  372. package/mobile/dist/ui-kit/IntersectionObserverTag.js.map +0 -1
  373. package/mobile/lib/ui-kit/IntersectionObserverTag.d.ts +0 -12
  374. package/mobile/lib/ui-kit/IntersectionObserverTag.js +0 -20
  375. package/mobile/lib/ui-kit/IntersectionObserverTag.js.map +0 -1
  376. package/mobile/src/ui-kit/IntersectionObserverTag.tsx +0 -47
  377. package/src/ui-kit/IntersectionObserverTag.tsx +0 -47
@@ -1,6 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { Img } from '../Img/Img.js';
4
+ const ICON_VERSION_MAP = {
5
+ 'bg-white': 'color',
6
+ transparent: 'white',
7
+ };
4
8
  const SVG_COLOR = {
5
9
  'bg-white': 'text-primary-main',
6
10
  transparent: 'text-white',
@@ -10,6 +14,6 @@ const TEXT_COLOR = {
10
14
  transparent: 'text-white',
11
15
  };
12
16
  export const Logo = JSX(({ className = '', href, children, targetBlank, bgColor = 'bg-white', showTitle = true }) => {
13
- return (_jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || 'https://rshb.ru/', target: targetBlank ? '_blank' : '_self', "aria-label": "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A", children: [_jsx(Img, { image: { icon: 'LogoIcon', iconVersion: SVG_COLOR[bgColor] }, className: `${SVG_COLOR[bgColor]} w-10 h-[38px]`, asSVG: true }), showTitle ? (_jsx("span", { className: `${TEXT_COLOR[bgColor]} text-s font-medium ml-2.5`, children: children || 'Россельхозбанк' })) : null] }));
17
+ return (_jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || 'https://rshb.ru/', target: targetBlank ? '_blank' : '_self', "aria-label": "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A", children: [_jsx(Img, { image: { icon: 'LogoIcon', iconVersion: ICON_VERSION_MAP[bgColor] }, className: `${SVG_COLOR[bgColor]}`, width: "34", height: "34", asSVG: true }), showTitle ? (_jsx("span", { className: `${TEXT_COLOR[bgColor]} text-s font-medium ml-2.5`, children: children || 'Россельхозбанк' })) : null] }));
14
18
  });
15
19
  //# sourceMappingURL=Logo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/ui-kit/Logo/Logo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAUjC,MAAM,SAAS,GAAmC;IAChD,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE,YAAY;CAC1B,CAAC;AACF,MAAM,UAAU,GAAmC;IACjD,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAG,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE;IAC1F,OAAO,CACL,aACE,SAAS,EAAE,mDAAmD,SAAS,EAAE,EACzE,IAAI,EAAE,IAAI,IAAI,kBAAkB,EAChC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,gBAC7B,sFAAgB,aAE3B,KAAC,GAAG,IACF,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5D,SAAS,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAChD,KAAK,SACL,EACD,SAAS,CAAC,CAAC,CAAC,CACX,eAAM,SAAS,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,4BAA4B,YAChE,QAAQ,IAAI,gBAAgB,GACxB,CACR,CAAC,CAAC,CAAC,IAAI,IACN,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/ui-kit/Logo/Logo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAUjC,MAAM,gBAAgB,GAAmC;IACvD,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,OAAO;CACrB,CAAC;AAEF,MAAM,SAAS,GAAmC;IAChD,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,UAAU,GAAmC;IACjD,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAG,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE;IAC1F,OAAO,CACL,aACE,SAAS,EAAE,mDAAmD,SAAS,EAAE,EACzE,IAAI,EAAE,IAAI,IAAI,kBAAkB,EAChC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,gBAC7B,sFAAgB,aAE3B,KAAC,GAAG,IACF,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EACnE,SAAS,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,KAAK,SACL,EACD,SAAS,CAAC,CAAC,CAAC,CACX,eAAM,SAAS,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,4BAA4B,YAChE,QAAQ,IAAI,gBAAgB,GACxB,CACR,CAAC,CAAC,CAAC,IAAI,IACN,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- import { useEffect, useRef, useState } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useCallback, useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
4
4
  import { useOutsideClick } from '../../hooks/useOutsideClick.js';
5
5
  import { Icon } from '../Icon/Icon.js';
6
6
  export const Select = JSX(({ className = '', isBorder = true, label, options = [], value, onChange, placeholder = '' }) => {
7
7
  const [selectedItem, setSelectedItem] = useState(options[0] || { key: '', text: '' });
8
8
  const [isOpen, setIsOpen] = useState(false);
9
- const wrapperRef = useRef(null);
10
- useOutsideClick(wrapperRef, setIsOpen);
9
+ const handleClickOutside = useCallback(() => setIsOpen(false), []);
10
+ const wrapperRef = useOutsideClick(handleClickOutside);
11
11
  const choiceOption = (option) => {
12
12
  setSelectedItem(option);
13
13
  setIsOpen(false);
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/ui-kit/Select/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/ui-kit/Select/Select.tsx"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ export interface TopItemProps extends TopItemContent {
7
7
  className?: string;
8
8
  flat?: boolean;
9
9
  ariaLabel?: string;
10
- onClick?: () => void;
11
10
  bgColor?: BgColorVersion;
12
11
  dataItemName?: string;
12
+ onClick?: () => void;
13
13
  }
14
14
  export declare const TopItem: import("@redneckz/uni-jsx").UNIComponent<TopItemProps, any, any>;
@@ -0,0 +1,3 @@
1
+ import type { Picture } from '../model/Picture';
2
+ import type { BlockVersion } from '../model/BlockVersion';
3
+ export declare const getIconWithVersion: (icon: Picture, version?: BlockVersion) => Picture;
@@ -0,0 +1,5 @@
1
+ export const getIconWithVersion = (icon, version = 'primary') => ({
2
+ ...icon,
3
+ iconVersion: icon?.iconVersion ?? (version === 'secondary' ? 'white' : 'color'),
4
+ });
5
+ //# sourceMappingURL=getIconWithVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIconWithVersion.js","sourceRoot":"","sources":["../../src/utils/getIconWithVersion.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAE,UAAwB,SAAS,EAAW,EAAE,CAAC,CAAC;IAChG,GAAG,IAAI;IACP,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;CAChF,CAAC,CAAC"}
@@ -8,6 +8,7 @@ import type { IconName } from '../../ui-kit/Icon/IconProps';
8
8
  import { Img } from '../../ui-kit/Img/Img';
9
9
  import type { AccordionContent } from '../Accordion/AccordionContent';
10
10
  import type { AccordionItemProps } from './AccordionItemProps';
11
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
11
12
 
12
13
  const icons: IconName[] = ['PlusIcon', 'MinusIcon'];
13
14
 
@@ -64,10 +65,22 @@ const FoldButton = JSX<FoldButtonProps>(({ className, icon, label, primaryIcon,
64
65
  >
65
66
  <span className="text-m-title-xs font-medium pr-2.5 flex group-hover:text-primary-main">
66
67
  {primaryIcon ? (
67
- <Img image={primaryIcon} className="mr-3 flex-shrink-0" width="24" height="24" asSVG />
68
+ <Img
69
+ image={getIconWithVersion(primaryIcon)}
70
+ className="mr-3 flex-shrink-0"
71
+ width="24"
72
+ height="24"
73
+ asSVG
74
+ />
68
75
  ) : null}
69
76
  {label}
70
77
  </span>
71
- <Img className="flex-shrink-0" image={icon} width="24" height="24" asSVG />
78
+ <Img
79
+ className="flex-shrink-0"
80
+ image={getIconWithVersion({ icon: icon })}
81
+ width="24"
82
+ height="24"
83
+ asSVG
84
+ />
72
85
  </button>
73
86
  ));
@@ -1,12 +1,12 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { BlockVersion } from '../../model/BlockVersion';
3
3
  import type { UniBlockProps } from '../../model/JSXBlock';
4
- import type { Picture } from '../../model/Picture';
5
4
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
6
5
  import { Heading } from '../../ui-kit/Heading/Heading';
7
6
  import { Img } from '../../ui-kit/Img/Img';
8
7
  import type { BenefitsBlockContent, ListBenefitDef, TextBenefitDef } from './BenefitsBlockContent';
9
8
  import { BenefitBlockItemProps, DescriptionDef } from './BenefitsBlockContent';
9
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
10
10
 
11
11
  export interface BenefitsBlockProps extends BenefitsBlockContent, UniBlockProps {}
12
12
 
@@ -31,80 +31,58 @@ const benefitsIconStyleMap = {
31
31
  };
32
32
 
33
33
  export const BenefitsBlock = JSX<BenefitsBlockProps>(
34
- ({ className = '', title, benefitList, benefitsBlockVersion = 'primary', ...rest }) => {
35
- return (
36
- <BlockWrapper
37
- className={`font-sans text-primary-text p-12 flex flex-col items-center ${className} ${benefitsBlockStyleMap[benefitsBlockVersion]}`}
38
- {...rest}
39
- >
40
- {title ? (
41
- <Heading
42
- headingType="h3"
43
- as="h2"
44
- className={`max-w-[47rem] text-center ${benefitsTextStyleMap[benefitsBlockVersion]}`}
45
- title={title}
46
- />
47
- ) : null}
48
- {benefitList?.length ? renderBenefits(benefitList, benefitsBlockVersion) : null}
49
- </BlockWrapper>
50
- );
51
- },
34
+ ({ className = '', title, benefitList, version = 'primary', ...rest }) => (
35
+ <BlockWrapper
36
+ className={`font-sans text-primary-text p-12 flex flex-col items-center ${className} ${benefitsBlockStyleMap[version]}`}
37
+ {...rest}
38
+ >
39
+ {title ? (
40
+ <Heading
41
+ headingType="h3"
42
+ as="h2"
43
+ className={`max-w-[47rem] text-center ${benefitsTextStyleMap[version]}`}
44
+ title={title}
45
+ />
46
+ ) : null}
47
+ {benefitList?.length ? renderBenefits(benefitList, version) : null}
48
+ </BlockWrapper>
49
+ ),
52
50
  );
53
51
 
54
- const renderBenefits = (
55
- benefitList: BenefitBlockItemProps[],
56
- benefitsBlockVersion: BlockVersion,
57
- ) => {
58
- return (
59
- <div className="flex flex-wrap w-full justify-center gap-x-20 mt-8">
60
- {benefitList.map(renderStep(benefitsBlockVersion))}
61
- </div>
62
- );
63
- };
64
-
65
- const setIconVersion = (benefitIcon: Picture, benefitsBlockVersion: BlockVersion) => {
66
- if (!benefitIcon.icon || benefitIcon?.iconVersion) {
67
- return benefitIcon;
68
- }
69
- benefitIcon.iconVersion = benefitsBlockVersion === 'secondary' ? 'white' : 'normal';
70
-
71
- return benefitIcon;
72
- };
52
+ const renderBenefits = (benefitList: BenefitBlockItemProps[], version: BlockVersion) => (
53
+ <div className="flex flex-wrap w-full justify-center gap-x-20 mt-8">
54
+ {benefitList.map(renderStep(version))}
55
+ </div>
56
+ );
73
57
 
74
- const renderStep =
75
- (benefitsBlockVersion: BlockVersion) => (benefit: BenefitBlockItemProps, i: number) => {
76
- const description = (benefit?.description || undefined) as DescriptionDef;
58
+ const renderStep = (version: BlockVersion) => (benefit: BenefitBlockItemProps, i: number) => {
59
+ const description = (benefit?.description || undefined) as DescriptionDef;
77
60
 
78
- return (
79
- <div key={String(i)} className="flex items-center basis-1/2 max-w-[500px] mb-14">
80
- {benefit?.icon?.icon ? (
81
- <Img
82
- className={`w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[benefitsBlockVersion]}`}
83
- image={setIconVersion(benefit.icon, benefitsBlockVersion)}
84
- asSVG
85
- />
61
+ return (
62
+ <div key={String(i)} className="flex items-center basis-1/2 max-w-[500px] mb-14">
63
+ {benefit?.icon?.icon ? (
64
+ <Img
65
+ className={`w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[version]}`}
66
+ image={getIconWithVersion(benefit.icon, version)}
67
+ asSVG
68
+ />
69
+ ) : null}
70
+ {benefit?.icon?.src ? <Img image={benefit.icon} /> : null}
71
+ <div className="ml-5">
72
+ {benefit?.label ? (
73
+ <h3 className={`text-h6 m-0 ${benefitsTextStyleMap[version]}`}>{benefit.label}</h3>
86
74
  ) : null}
87
- {benefit?.icon?.src ? <Img image={benefit.icon} /> : null}
88
- <div className="ml-5">
89
- {benefit?.label ? (
90
- <h3 className={`text-h6 m-0 ${benefitsTextStyleMap[benefitsBlockVersion]}`}>
91
- {benefit.label}
92
- </h3>
93
- ) : null}
94
- {renderDescription(description, benefitsBlockVersion)}
95
- </div>
75
+ {renderDescription(description, version)}
96
76
  </div>
97
- );
98
- };
77
+ </div>
78
+ );
79
+ };
99
80
 
100
- const renderDescription = (description: DescriptionDef, benefitsBlockVersion: BlockVersion) => {
81
+ const renderDescription = (description: DescriptionDef, version: BlockVersion) => {
101
82
  const benefitType = description ? description?.benefitType : null;
102
- if (!benefitType) {
103
- return null;
104
- }
105
83
 
106
- return description ? (
107
- <div className={`text-l-light mt-2 ${benefitsDescriptionStyleMap[benefitsBlockVersion]}`}>
84
+ return description && benefitType ? (
85
+ <div className={`text-l-light mt-2 ${benefitsDescriptionStyleMap[version]}`}>
108
86
  {benefitType === 'list'
109
87
  ? renderListBenefit(description as ListBenefitDef)
110
88
  : renderTextBenefit(description as TextBenefitDef)}
@@ -54,5 +54,5 @@ export type BenefitsBlockContent = TitleProps & {
54
54
  */
55
55
  benefitList?: BenefitBlockItemProps[];
56
56
  /** @default primary */
57
- benefitsBlockVersion?: BlockVersion;
57
+ version?: BlockVersion;
58
58
  };
@@ -81,6 +81,8 @@ function renderNavButton({ tab, i, activeSlideIndex, onClick }: NavButtonProps)
81
81
  ? 'text-l-light text-white'
82
82
  : `text-m-light text-secondary-text`;
83
83
  const iconClassName = isActiveBtn ? '' : `text-primary-main`;
84
+ const iconVersion = tab?.icon?.iconVersion;
85
+ const activeIconStyle = isActiveBtn ? 'white' : 'normal';
84
86
 
85
87
  return (
86
88
  <button
@@ -93,7 +95,10 @@ function renderNavButton({ tab, i, activeSlideIndex, onClick }: NavButtonProps)
93
95
  >
94
96
  <Img
95
97
  className={`h-6 w-6 min-w-6 min-h-6 mr-4 ${iconClassName}`}
96
- image={{ ...tab?.icon, iconVersion: isActiveBtn ? 'white' : 'normal' }}
98
+ image={{
99
+ ...tab?.icon,
100
+ iconVersion: iconVersion ?? activeIconStyle,
101
+ }}
97
102
  width="24"
98
103
  height="24"
99
104
  asSVG
@@ -1,19 +1,21 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { Fallback } from '../../model/Fallback';
3
- import type { UniBlockProps } from '../../model/JSXBlock';
4
2
  import { useSitemap } from '../../services/sitemap/useSitemap';
5
3
  import { Button } from '../../ui-kit/Button/Button';
6
4
  import { Img } from '../../ui-kit/Img/Img';
7
5
  import { SearchBar } from '../../ui-kit/SearchBar/SearchBar';
8
6
  import { AccordionItemsList } from '../Accordion/AccordionItemsList';
9
- import { AccordionItem } from '../AccordionItem/AccordionItem';
10
7
  import { LinkList } from '../LinkList/LinkList';
11
8
  import { MobileAppTile } from '../MobileAppTile/MobileAppTile';
12
9
  import { Contacts } from './Contacts';
13
- import type { FooterContent, SubMenuItem } from './FooterContent';
14
10
  import { HorizontalNavigation } from './HorizontalNavigation';
15
11
  import { SocialMedia } from './SocialMedia';
16
12
  import { TextInformation } from './TextInformation';
13
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
14
+ import type { Fallback } from '../../model/Fallback';
15
+ import type { UniBlockProps } from '../../model/JSXBlock';
16
+ import type { FooterContent, SubMenuItem } from './FooterContent';
17
+ import type { Picture } from '../../model/Picture';
18
+ import { AccordionItem } from '../AccordionItem/AccordionItem';
17
19
 
18
20
  export interface FooterProps extends FooterContent, UniBlockProps {}
19
21
 
@@ -66,7 +68,15 @@ const renderSubMenuItem = (menu: SubMenuItem, i: number) => {
66
68
 
67
69
  return (
68
70
  <Button version="link" key={`footer-${i}`} href={href} className="flex text-s mb-4 w-6">
69
- {icon ? <Img className="pr-1" image={icon} width="24" height="24" asSVG /> : null}
71
+ {icon ? (
72
+ <Img
73
+ className="pr-1"
74
+ image={getIconWithVersion({ icon: icon } as Picture)}
75
+ width="24"
76
+ height="24"
77
+ asSVG
78
+ />
79
+ ) : null}
70
80
  <span className="pl-2.5 font-medium text-primary-text">{text}</span>
71
81
  </Button>
72
82
  );
@@ -2,6 +2,7 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { BlockVersion } from '../../model/BlockVersion';
3
3
  import type { Picture } from '../../model/Picture';
4
4
  import { Img } from '../../ui-kit/Img/Img';
5
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
5
6
 
6
7
  const ICONS_MAP: Array<{
7
8
  origins: string[];
@@ -66,7 +67,13 @@ export const MediaButton = JSX<MediaButtonProps>(({ href, version = 'primary' })
66
67
  rel="noopener noreferrer"
67
68
  >
68
69
  {icon ? (
69
- <Img image={icon} imageClassName="group-hover:text-white" width="24" height="24" asSVG />
70
+ <Img
71
+ image={getIconWithVersion(icon)}
72
+ imageClassName="group-hover:text-white"
73
+ width="24"
74
+ height="24"
75
+ asSVG
76
+ />
70
77
  ) : null}
71
78
  </a>
72
79
  );
@@ -11,7 +11,7 @@ import { SwipeListControl } from '../../ui-kit/SwipeListControl/SwipeListControl
11
11
  import type { ContentPageContext } from '../ContentPage/ContentPageContext';
12
12
  import type { GalleryCardProps, GalleryItemProps } from './GalleryContent';
13
13
  import type { GalleryProps } from './GalleryProps';
14
- import { Picture } from '../../model/Picture';
14
+ import type { Picture } from '../../model/Picture';
15
15
 
16
16
  export const Gallery = JSX<GalleryProps>(
17
17
  ({ context, title, description, cards = [], className, orientation = 'horizontal' }) => {
@@ -7,6 +7,7 @@ import { Img } from '../../ui-kit/Img/Img';
7
7
  import { List } from '../../ui-kit/List/List';
8
8
  import { HEADLINE_SMALL_VERSION } from '../Headline/constants';
9
9
  import type { GalleryCardProps, GalleryItemProps } from './GalleryContent';
10
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
10
11
 
11
12
  export const GalleryCardInner = JSX<GalleryCardProps>(
12
13
  ({
@@ -24,7 +25,7 @@ export const GalleryCardInner = JSX<GalleryCardProps>(
24
25
  return (
25
26
  <div className={`h-full flex flex-col justify-between ${AlignText[align]}`}>
26
27
  <div className="flex flex-col h-full">
27
- {renderImage(icon)}
28
+ {renderImage(icon, version)}
28
29
  {renderCardTitle(headlineSmallVersion, title)}
29
30
  {renderDescription(description, title)}
30
31
  {items?.length ? renderItems(items, isDotted, version) : null}
@@ -36,11 +37,15 @@ export const GalleryCardInner = JSX<GalleryCardProps>(
36
37
  },
37
38
  );
38
39
 
39
- const renderImage = (image?: Picture) => (
40
+ const renderImage = (image?: Picture, version?: BlockVersion) => (
40
41
  <div className="flex justify-center">
41
42
  {image?.src ? <Img className="mb-5" image={image} /> : null}
42
43
  {image?.icon ? (
43
- <Img className={`w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`} image={image} asSVG />
44
+ <Img
45
+ className={`w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`}
46
+ image={getIconWithVersion(image, version)}
47
+ asSVG
48
+ />
44
49
  ) : null}
45
50
  </div>
46
51
  );
@@ -1,84 +1,67 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
2
3
  import { useLink } from '../../hooks/useLink';
4
+ import { useOutsideClick } from '../../hooks/useOutsideClick';
3
5
  import type { BgColorVersion } from '../../model/BgColorVersion';
4
- import type { UniBlockProps } from '../../model/JSXBlock';
5
6
  import type { LinkProps } from '../../model/LinkProps';
6
- import type {
7
- ContentPageContext,
8
- HandlerDecorator,
9
- Router,
10
- } from '../ContentPage/ContentPageContext';
7
+ import type { ContentPageContext } from '../ContentPage/ContentPageContext';
11
8
 
12
9
  const DOT_BG_COLORS_MAP: Record<BgColorVersion, string> = {
13
10
  'bg-white': 'bg-primary-text',
14
11
  transparent: 'bg-white',
15
12
  };
16
13
 
17
- interface DropdownMenuProps extends UniBlockProps {
18
- menuVisible: boolean;
19
- toggleMenu: () => void;
20
- menuItems: LinkProps[];
21
- bgColor?: BgColorVersion;
14
+ interface DropdownMenuProps {
22
15
  context: ContentPageContext;
23
- activeSubItem?: LinkProps;
16
+ className?: string;
17
+ items: LinkProps[];
18
+ activeItem?: LinkProps;
19
+ bgColor?: BgColorVersion;
24
20
  }
25
21
 
26
- export const DropdownMenu = JSX<DropdownMenuProps>((props) => {
27
- const { menuVisible, toggleMenu, menuItems, bgColor, context, activeSubItem } = props;
22
+ export const DropdownMenu = JSX<DropdownMenuProps>(
23
+ ({ context, className, items, activeItem, bgColor }) => {
24
+ const { useRouter, handlerDecorator } = context;
25
+ const router = useRouter();
28
26
 
29
- const { useRouter, handlerDecorator } = context;
30
- const router = useRouter();
27
+ const [visible, setVisible] = useState(false);
28
+ const handleToggle = useCallback(() => setVisible((_) => !_), []);
31
29
 
32
- return (
33
- <div
34
- className={`absolute w-52 -top-4 right-0 pt-4 z-40 ${
35
- menuVisible ? 'bg-white rounded-md shadow-blue-gray/24' : ''
36
- }`}
37
- >
38
- <button
39
- className="flex justify-between items-center cursor-pointer h-6 ml-6"
40
- onClick={toggleMenu}
41
- aria-label={`${menuVisible ? 'Скрыть другие разделы' : 'Показать другие разделы'}`}
42
- >
43
- {Array(3).fill(bgColor).map(renderDot)}
44
- </button>
30
+ const handleClickOutside = useCallback(() => setVisible(false), []);
31
+ const ref = useOutsideClick<HTMLDivElement>(handleClickOutside);
32
+
33
+ return (
45
34
  <div
46
- className={`flex flex-col rounded-md bg-white p-6 pb-2 ${menuVisible ? '' : 'hidden'}`}
47
- aria-hidden={!menuVisible}
35
+ className={`${visible ? 'bg-white rounded-md shadow-blue-gray/24' : ''} ${className || ''}`}
36
+ ref={ref}
48
37
  >
49
- {renderDotsSubMenuItems({ menuItems, router, handlerDecorator, activeSubItem })}
38
+ <button
39
+ className="flex justify-between items-center cursor-pointer h-6 ml-6"
40
+ aria-label={`${visible ? 'Скрыть другие разделы' : 'Показать другие разделы'}`}
41
+ onClick={handleToggle}
42
+ >
43
+ {Array(3).fill(bgColor).map(renderDot)}
44
+ </button>
45
+ <div
46
+ className={`flex flex-col rounded-md bg-white p-6 pb-2 ${visible ? '' : 'hidden'}`}
47
+ aria-hidden={!visible}
48
+ >
49
+ {items?.map((item, i) => (
50
+ <a
51
+ key={item.href || String(i)}
52
+ className={`text-l-light pb-4 hover:text-primary-main ${
53
+ item === activeItem ? 'text-primary-main' : ''
54
+ }`}
55
+ {...useLink({ router, handlerDecorator }, item)}
56
+ >
57
+ {item.text}
58
+ </a>
59
+ ))}
60
+ </div>
50
61
  </div>
51
- </div>
52
- );
53
- });
54
-
55
- type DotsSubMenuItemsProps = {
56
- menuItems: LinkProps[];
57
- router: Router;
58
- handlerDecorator: HandlerDecorator | undefined;
59
- activeSubItem?: LinkProps;
60
- };
61
-
62
- const renderDotsSubMenuItems = ({
63
- menuItems,
64
- router,
65
- handlerDecorator,
66
- activeSubItem,
67
- }: DotsSubMenuItemsProps) => {
68
- const isActive = (item: LinkProps) => item === activeSubItem;
69
-
70
- return menuItems?.map(({ text, ...rest }) => (
71
- <a
72
- key={rest.href}
73
- {...useLink({ router, handlerDecorator }, rest)}
74
- className={`text-l-light pb-4 hover:text-primary-main ${
75
- isActive(rest) ? 'text-primary-main' : ''
76
- }`}
77
- >
78
- {text}
79
- </a>
80
- ));
81
- };
62
+ );
63
+ },
64
+ );
82
65
 
83
66
  const renderDot = (bgColor: BgColorVersion, i: number) => (
84
67
  <div key={String(i)} className={`w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}`} />
@@ -1,13 +1,11 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useMemo, useRef, useState } from '@redneckz/uni-jsx/lib/hooks';
3
- import { useLink } from '../../hooks/useLink';
4
3
  import type { BgColorVersion } from '../../model/BgColorVersion';
5
4
  import type { LinkProps } from '../../model/LinkProps';
6
5
  import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
7
- import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
8
- import { IntersectionObserverTag } from '../../ui-kit/IntersectionObserverTag';
9
6
  import type { ContentPageContext } from '../ContentPage/ContentPageContext';
10
7
  import { DropdownMenu } from './DropdownMenu';
8
+ import { HeaderSubMenuItem } from './HeaderSubMenuItem';
11
9
 
12
10
  export interface HeaderSubMenuProps {
13
11
  context: ContentPageContext;
@@ -16,69 +14,52 @@ export interface HeaderSubMenuProps {
16
14
  }
17
15
 
18
16
  export const HeaderSubMenu = JSX<HeaderSubMenuProps>(({ context, subItems = [], bgColor }) => {
19
- const { handlerDecorator } = context;
20
17
  const router = context.useRouter();
21
18
 
22
- const subItemsListRef = useRef<HTMLDivElement | null>(null);
23
-
24
- const [menuVisible, setMenuVisible] = useState(false);
19
+ const activeSubItem = findActiveSubItem(router)(subItems);
25
20
 
26
21
  const [visibleItemsCount, setVisibleItemsCount] = useState(subItems.length);
27
22
  const dropDownMenuItems = subItems.slice(visibleItemsCount);
28
23
 
24
+ const subItemsListRef = useRef<HTMLDivElement | null>(null);
29
25
  const observerOptions = useMemo(
30
26
  () => ({ threshold: 1, root: subItemsListRef.current }),
31
27
  [subItemsListRef.current],
32
28
  );
33
-
34
- const observerCallbacks = useMemo(
29
+ const subItemsVisibilityHandlers = useMemo(
35
30
  () =>
36
- subItems.map((_, index) => (entries: IntersectionObserverEntry[]) => {
37
- if (!entries.length) {
38
- return;
39
- }
40
-
41
- // Assumption about sorting entries by time
42
- const entry = entries[entries.length - 1];
43
-
44
- if (entry.isIntersecting) {
45
- setVisibleItemsCount(handleIntersectionActivation(index));
46
- } else {
47
- setVisibleItemsCount(handleIntersectionDeactivation(index));
48
- }
31
+ subItems.map((_, index) => (isIntersecting: boolean) => {
32
+ setVisibleItemsCount(
33
+ isIntersecting
34
+ ? handleIntersectionActivation(index)
35
+ : handleIntersectionDeactivation(index),
36
+ );
49
37
  }),
50
38
  [subItems],
51
39
  );
52
40
 
53
- const activeSubItem = findActiveSubItem(router)(subItems);
54
- const toggleMenu = () => setMenuVisible(!menuVisible);
55
-
56
41
  return (
57
42
  <nav className="relative mt-6">
58
43
  <div ref={subItemsListRef} className="overflow-hidden whitespace-nowrap mr-52 pb-3">
59
44
  {subItems.map((_, i) => (
60
- <IntersectionObserverTag
45
+ <HeaderSubMenuItem
61
46
  key={String(i)}
62
- tag="span"
63
- observerCallback={observerCallbacks[i]}
47
+ context={context}
48
+ className={`mr-8 ${visibleItemsCount - 1 < i ? 'invisible' : ''}`}
49
+ active={_ === activeSubItem}
50
+ bgColor={bgColor}
64
51
  observerOptions={observerOptions}
65
- >
66
- <HeaderItem
67
- className={`mr-8 ${visibleItemsCount - 1 < i ? 'invisible' : ''}`}
68
- active={_ === activeSubItem}
69
- {...useLink({ router, handlerDecorator }, _)}
70
- bgColor={bgColor}
71
- />
72
- </IntersectionObserverTag>
52
+ onVisibilityChange={subItemsVisibilityHandlers[i]}
53
+ {..._}
54
+ />
73
55
  ))}
74
56
  </div>
75
57
  {dropDownMenuItems.length ? (
76
58
  <DropdownMenu
77
59
  context={context}
78
- activeSubItem={activeSubItem}
79
- menuVisible={menuVisible}
80
- toggleMenu={toggleMenu}
81
- menuItems={dropDownMenuItems}
60
+ className="absolute w-52 -top-4 right-0 pt-4 z-40"
61
+ items={dropDownMenuItems}
62
+ activeItem={activeSubItem}
82
63
  bgColor={bgColor}
83
64
  />
84
65
  ) : null}