@redneckz/wildless-cms-uni-blocks 0.3.28 → 0.3.31

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 (504) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +132 -107
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/Accordion/Accordion.js +2 -6
  5. package/dist/components/Accordion/Accordion.js.map +1 -1
  6. package/dist/components/Accordion/AccordionContent.d.ts +3 -3
  7. package/dist/components/Accordion/AccordionItem.js +4 -11
  8. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  9. package/dist/components/Accordion/AccordionItem.mobile.js +6 -3
  10. package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
  11. package/dist/components/Accordion/AccordionItemInner.js +2 -2
  12. package/dist/components/Accordion/AccordionItemInner.js.map +1 -1
  13. package/dist/components/Accordion/AccordionItemInner.mobile.js +2 -3
  14. package/dist/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
  15. package/dist/components/BaseTile/BaseTile.js +2 -2
  16. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  17. package/dist/components/BenefitsBlock/BenefitsBlock.js +2 -2
  18. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  19. package/dist/components/BlockContent.d.ts +3 -2
  20. package/dist/components/Blocks.d.ts +1 -0
  21. package/dist/components/Blocks.js +2 -0
  22. package/dist/components/Blocks.js.map +1 -1
  23. package/dist/components/ComparisonTable/ComparisonTable.js +3 -3
  24. package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  25. package/dist/components/ContentPage/ContentPage.js +3 -3
  26. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  27. package/dist/components/ContentPage/ContentPageContext.d.ts +2 -1
  28. package/dist/components/ContentPage/normalizeBlock.d.ts +1 -0
  29. package/dist/components/CreditCalculator/CreditCalculator.js +2 -2
  30. package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  31. package/dist/components/ExchangeRateTile/CurrencyTable.js +2 -2
  32. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  33. package/dist/components/ExchangeRateTile/CurrentLocation.js +1 -1
  34. package/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  35. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
  36. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  37. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  38. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  39. package/dist/components/Footer/Footer.js +2 -2
  40. package/dist/components/Footer/Footer.js.map +1 -1
  41. package/dist/components/Footer/MediaButton.js +1 -1
  42. package/dist/components/Footer/MediaButton.js.map +1 -1
  43. package/dist/components/Gallery/GalleryInner.js +2 -2
  44. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  45. package/dist/components/Header/Header.js +2 -2
  46. package/dist/components/Header/Header.js.map +1 -1
  47. package/dist/components/Headline/Headline.js +2 -2
  48. package/dist/components/Headline/Headline.js.map +1 -1
  49. package/dist/components/LikeControl/LikeControl.js +2 -2
  50. package/dist/components/LikeControl/LikeControl.js.map +1 -1
  51. package/dist/components/LinkDocs/LinkDocs.js +2 -2
  52. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  53. package/dist/components/LinkList/LinkList.js +2 -2
  54. package/dist/components/LinkList/LinkList.js.map +1 -1
  55. package/dist/components/MobileAppTile/MobileAppTile.js +2 -2
  56. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  57. package/dist/components/Navigation/Navigation.js +2 -2
  58. package/dist/components/Navigation/Navigation.js.map +1 -1
  59. package/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
  60. package/dist/components/NavigatorTabs/NavigatorTabItem.js +16 -0
  61. package/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
  62. package/dist/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
  63. package/dist/components/NavigatorTabs/NavigatorTabs.js +17 -0
  64. package/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
  65. package/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
  66. package/dist/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
  67. package/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
  68. package/dist/components/OtherProducts/OtherProductsContent.d.ts +3 -12
  69. package/dist/components/PictureText/PictureText.js +2 -2
  70. package/dist/components/PictureText/PictureText.js.map +1 -1
  71. package/dist/components/Placeholder/Placeholder.js +2 -2
  72. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  73. package/dist/components/ProductBlock/ProductBlock.js +2 -2
  74. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  75. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  76. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  77. package/dist/components/ProductBlock/ProductBlockInner.mobile.js +1 -1
  78. package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  79. package/dist/components/ProductGallery/ProductGallery.js +2 -2
  80. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  81. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
  82. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  83. package/dist/components/ProductTile/ProductTile.js +2 -2
  84. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  85. package/dist/components/PromoTile/PromoTile.js +2 -2
  86. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  87. package/dist/components/Recommendation/Recommendation.js +2 -2
  88. package/dist/components/Recommendation/Recommendation.js.map +1 -1
  89. package/dist/components/StepsBlock/StepsBlock.js +2 -2
  90. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  91. package/dist/components/TariffsTable/TariffsTable.js +2 -2
  92. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  93. package/dist/components/TextBlock/TextBlock.js +2 -2
  94. package/dist/components/TextBlock/TextBlock.js.map +1 -1
  95. package/dist/components/TextBlock/TextBlockContent.d.ts +1 -1
  96. package/dist/components/Tile/Tile.js +2 -2
  97. package/dist/components/Tile/Tile.js.map +1 -1
  98. package/dist/setup-fixture.js +22 -6
  99. package/dist/setup-fixture.js.map +1 -1
  100. package/dist/types.d.ts +2 -0
  101. package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.d.ts +8 -0
  102. package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.js +17 -0
  103. package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.js.map +1 -0
  104. package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
  105. package/dist/ui-kit/BlocksList/renderBlocksList.js +3 -3
  106. package/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  107. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  108. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  109. package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
  110. package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
  111. package/dist/ui-kit/Tabs/Tabs.js +1 -1
  112. package/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  113. package/dist/utils/url.d.ts +1 -0
  114. package/dist/utils/url.js +9 -1
  115. package/dist/utils/url.js.map +1 -1
  116. package/lib/common.css +1 -1
  117. package/lib/components/Accordion/Accordion.js +2 -6
  118. package/lib/components/Accordion/Accordion.js.map +1 -1
  119. package/lib/components/Accordion/AccordionContent.d.ts +3 -3
  120. package/lib/components/Accordion/AccordionItem.js +4 -11
  121. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  122. package/lib/components/Accordion/AccordionItem.mobile.js +6 -3
  123. package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
  124. package/lib/components/Accordion/AccordionItemInner.js +2 -2
  125. package/lib/components/Accordion/AccordionItemInner.js.map +1 -1
  126. package/lib/components/Accordion/AccordionItemInner.mobile.js +2 -3
  127. package/lib/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
  128. package/lib/components/BaseTile/BaseTile.js +2 -2
  129. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  130. package/lib/components/BenefitsBlock/BenefitsBlock.js +2 -2
  131. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  132. package/lib/components/BlockContent.d.ts +3 -2
  133. package/lib/components/Blocks.d.ts +1 -0
  134. package/lib/components/Blocks.js +2 -0
  135. package/lib/components/Blocks.js.map +1 -1
  136. package/lib/components/ComparisonTable/ComparisonTable.js +3 -3
  137. package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  138. package/lib/components/ContentPage/ContentPage.js +3 -3
  139. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  140. package/lib/components/ContentPage/ContentPageContext.d.ts +2 -1
  141. package/lib/components/ContentPage/normalizeBlock.d.ts +1 -0
  142. package/lib/components/CreditCalculator/CreditCalculator.js +2 -2
  143. package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  144. package/lib/components/ExchangeRateTile/CurrencyTable.js +2 -2
  145. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  146. package/lib/components/ExchangeRateTile/CurrentLocation.js +1 -1
  147. package/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  148. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
  149. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  150. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  151. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  152. package/lib/components/Footer/Footer.js +2 -2
  153. package/lib/components/Footer/Footer.js.map +1 -1
  154. package/lib/components/Footer/MediaButton.js +1 -1
  155. package/lib/components/Footer/MediaButton.js.map +1 -1
  156. package/lib/components/Gallery/GalleryInner.js +2 -2
  157. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  158. package/lib/components/Header/Header.js +2 -2
  159. package/lib/components/Header/Header.js.map +1 -1
  160. package/lib/components/Headline/Headline.js +2 -2
  161. package/lib/components/Headline/Headline.js.map +1 -1
  162. package/lib/components/LikeControl/LikeControl.js +2 -2
  163. package/lib/components/LikeControl/LikeControl.js.map +1 -1
  164. package/lib/components/LinkDocs/LinkDocs.js +2 -2
  165. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  166. package/lib/components/LinkList/LinkList.js +2 -2
  167. package/lib/components/LinkList/LinkList.js.map +1 -1
  168. package/lib/components/MobileAppTile/MobileAppTile.js +2 -2
  169. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  170. package/lib/components/Navigation/Navigation.js +2 -2
  171. package/lib/components/Navigation/Navigation.js.map +1 -1
  172. package/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
  173. package/lib/components/NavigatorTabs/NavigatorTabItem.js +14 -0
  174. package/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
  175. package/lib/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
  176. package/lib/components/NavigatorTabs/NavigatorTabs.fixture.d.ts +4 -0
  177. package/lib/components/NavigatorTabs/NavigatorTabs.js +15 -0
  178. package/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
  179. package/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
  180. package/lib/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
  181. package/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
  182. package/lib/components/OtherProducts/OtherProductsContent.d.ts +3 -12
  183. package/lib/components/PictureText/PictureText.js +2 -2
  184. package/lib/components/PictureText/PictureText.js.map +1 -1
  185. package/lib/components/Placeholder/Placeholder.js +2 -2
  186. package/lib/components/Placeholder/Placeholder.js.map +1 -1
  187. package/lib/components/ProductBlock/ProductBlock.js +2 -2
  188. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  189. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  190. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  191. package/lib/components/ProductBlock/ProductBlockInner.mobile.js +1 -1
  192. package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  193. package/lib/components/ProductGallery/ProductGallery.js +2 -2
  194. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  195. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
  196. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  197. package/lib/components/ProductTile/ProductTile.js +2 -2
  198. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  199. package/lib/components/PromoTile/PromoTile.js +2 -2
  200. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  201. package/lib/components/Recommendation/Recommendation.js +2 -2
  202. package/lib/components/Recommendation/Recommendation.js.map +1 -1
  203. package/lib/components/StepsBlock/StepsBlock.js +2 -2
  204. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  205. package/lib/components/TariffsTable/TariffsTable.js +2 -2
  206. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  207. package/lib/components/TextBlock/TextBlock.js +2 -2
  208. package/lib/components/TextBlock/TextBlock.js.map +1 -1
  209. package/lib/components/TextBlock/TextBlockContent.d.ts +1 -1
  210. package/lib/components/Tile/Tile.js +2 -2
  211. package/lib/components/Tile/Tile.js.map +1 -1
  212. package/lib/setup-fixture.js +22 -6
  213. package/lib/setup-fixture.js.map +1 -1
  214. package/lib/types.d.ts +2 -0
  215. package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.d.ts +8 -0
  216. package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.js +15 -0
  217. package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.js.map +1 -0
  218. package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
  219. package/lib/ui-kit/BlocksList/renderBlocksList.js +3 -3
  220. package/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  221. package/lib/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.d.ts +3 -0
  222. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  223. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  224. package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +4 -1
  225. package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
  226. package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
  227. package/lib/ui-kit/Tabs/Tabs.js +1 -1
  228. package/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  229. package/lib/utils/url.d.ts +1 -0
  230. package/lib/utils/url.js +7 -0
  231. package/lib/utils/url.js.map +1 -1
  232. package/mobile/bundle/bundle.umd.js +104 -204
  233. package/mobile/bundle/bundle.umd.min.js +1 -1
  234. package/mobile/dist/components/Accordion/AccordionContent.d.ts +3 -3
  235. package/mobile/dist/components/Accordion/AccordionItem.js +6 -3
  236. package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
  237. package/mobile/dist/components/Accordion/AccordionItemInner.js +2 -3
  238. package/mobile/dist/components/Accordion/AccordionItemInner.js.map +1 -1
  239. package/mobile/dist/components/BaseTile/BaseTile.js +2 -2
  240. package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
  241. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +2 -2
  242. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  243. package/mobile/dist/components/BlockContent.d.ts +3 -2
  244. package/mobile/dist/components/ContentPage/ContentPage.js +3 -3
  245. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  246. package/mobile/dist/components/ContentPage/ContentPageContext.d.ts +2 -1
  247. package/mobile/dist/components/CreditCalculator/CreditCalculator.js +2 -2
  248. package/mobile/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  249. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +2 -2
  250. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  251. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js +1 -1
  252. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  253. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
  254. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  255. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  256. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  257. package/mobile/dist/components/Footer/MediaButton.js +1 -1
  258. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  259. package/mobile/dist/components/Gallery/GalleryInner.js +2 -2
  260. package/mobile/dist/components/Gallery/GalleryInner.js.map +1 -1
  261. package/mobile/dist/components/LikeControl/LikeControl.js +2 -2
  262. package/mobile/dist/components/LikeControl/LikeControl.js.map +1 -1
  263. package/mobile/dist/components/LinkList/LinkList.js +2 -2
  264. package/mobile/dist/components/LinkList/LinkList.js.map +1 -1
  265. package/mobile/dist/components/Navigation/Navigation.js +2 -2
  266. package/mobile/dist/components/Navigation/Navigation.js.map +1 -1
  267. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
  268. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js +16 -0
  269. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
  270. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
  271. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js +17 -0
  272. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
  273. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
  274. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
  275. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
  276. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +3 -12
  277. package/mobile/dist/components/PictureText/PictureText.js +2 -2
  278. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  279. package/mobile/dist/components/Placeholder/Placeholder.js +2 -2
  280. package/mobile/dist/components/Placeholder/Placeholder.js.map +1 -1
  281. package/mobile/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  282. package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  283. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
  284. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  285. package/mobile/dist/components/ProductTile/ProductTile.js +2 -2
  286. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  287. package/mobile/dist/components/PromoTile/PromoTile.js +2 -2
  288. package/mobile/dist/components/PromoTile/PromoTile.js.map +1 -1
  289. package/mobile/dist/components/Recommendation/Recommendation.js +2 -2
  290. package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
  291. package/mobile/dist/components/TextBlock/TextBlockContent.d.ts +1 -1
  292. package/mobile/dist/components/Tile/Tile.js +2 -2
  293. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  294. package/mobile/dist/setup-fixture.js +22 -6
  295. package/mobile/dist/setup-fixture.js.map +1 -1
  296. package/mobile/dist/types.d.ts +2 -0
  297. package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.d.ts +0 -4
  298. package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.js +0 -8
  299. package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -1
  300. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
  301. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js +3 -3
  302. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  303. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  304. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  305. package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
  306. package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
  307. package/mobile/dist/ui-kit/Tabs/Tabs.js +1 -1
  308. package/mobile/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  309. package/mobile/dist/utils/url.d.ts +1 -0
  310. package/mobile/dist/utils/url.js +9 -1
  311. package/mobile/dist/utils/url.js.map +1 -1
  312. package/mobile/lib/components/Accordion/AccordionContent.d.ts +3 -3
  313. package/mobile/lib/components/Accordion/AccordionItem.js +6 -3
  314. package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
  315. package/mobile/lib/components/Accordion/AccordionItemInner.js +2 -3
  316. package/mobile/lib/components/Accordion/AccordionItemInner.js.map +1 -1
  317. package/mobile/lib/components/BaseTile/BaseTile.js +2 -2
  318. package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
  319. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +2 -2
  320. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  321. package/mobile/lib/components/BlockContent.d.ts +3 -2
  322. package/mobile/lib/components/ContentPage/ContentPage.js +3 -3
  323. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  324. package/mobile/lib/components/ContentPage/ContentPageContext.d.ts +2 -1
  325. package/mobile/lib/components/CreditCalculator/CreditCalculator.js +2 -2
  326. package/mobile/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  327. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +2 -2
  328. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  329. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js +1 -1
  330. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
  331. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
  332. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  333. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  334. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  335. package/mobile/lib/components/Footer/MediaButton.js +1 -1
  336. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  337. package/mobile/lib/components/Gallery/GalleryInner.js +2 -2
  338. package/mobile/lib/components/Gallery/GalleryInner.js.map +1 -1
  339. package/mobile/lib/components/LikeControl/LikeControl.js +2 -2
  340. package/mobile/lib/components/LikeControl/LikeControl.js.map +1 -1
  341. package/mobile/lib/components/LinkList/LinkList.js +2 -2
  342. package/mobile/lib/components/LinkList/LinkList.js.map +1 -1
  343. package/mobile/lib/components/Navigation/Navigation.js +2 -2
  344. package/mobile/lib/components/Navigation/Navigation.js.map +1 -1
  345. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
  346. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js +14 -0
  347. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
  348. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
  349. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js +15 -0
  350. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
  351. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
  352. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
  353. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
  354. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +3 -12
  355. package/mobile/lib/components/PictureText/PictureText.js +2 -2
  356. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  357. package/mobile/lib/components/Placeholder/Placeholder.js +2 -2
  358. package/mobile/lib/components/Placeholder/Placeholder.js.map +1 -1
  359. package/mobile/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  360. package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  361. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
  362. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  363. package/mobile/lib/components/ProductTile/ProductTile.js +2 -2
  364. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  365. package/mobile/lib/components/PromoTile/PromoTile.js +2 -2
  366. package/mobile/lib/components/PromoTile/PromoTile.js.map +1 -1
  367. package/mobile/lib/components/Recommendation/Recommendation.js +2 -2
  368. package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
  369. package/mobile/lib/components/TextBlock/TextBlockContent.d.ts +1 -1
  370. package/mobile/lib/components/Tile/Tile.js +2 -2
  371. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  372. package/mobile/lib/setup-fixture.js +22 -6
  373. package/mobile/lib/setup-fixture.js.map +1 -1
  374. package/mobile/lib/types.d.ts +2 -0
  375. package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.d.ts +0 -4
  376. package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.js +0 -8
  377. package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -1
  378. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
  379. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js +3 -3
  380. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  381. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  382. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  383. package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
  384. package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
  385. package/mobile/lib/ui-kit/Tabs/Tabs.js +1 -1
  386. package/mobile/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  387. package/mobile/lib/utils/url.d.ts +1 -0
  388. package/mobile/lib/utils/url.js +7 -0
  389. package/mobile/lib/utils/url.js.map +1 -1
  390. package/mobile/src/common.css +4 -0
  391. package/mobile/src/components/Accordion/Accordion.example.json +3 -0
  392. package/mobile/src/components/Accordion/AccordionContent.ts +4 -5
  393. package/mobile/src/components/Accordion/AccordionItem.tsx +32 -27
  394. package/mobile/src/components/Accordion/AccordionItemInner.tsx +8 -11
  395. package/mobile/src/components/BaseTile/BaseTile.tsx +2 -2
  396. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +19 -16
  397. package/mobile/src/components/BlockContent.ts +3 -1
  398. package/mobile/src/components/ContentPage/ContentPage.page.json +30 -0
  399. package/mobile/src/components/ContentPage/ContentPage.tsx +3 -3
  400. package/mobile/src/components/ContentPage/ContentPageContext.tsx +2 -1
  401. package/mobile/src/components/CreditCalculator/CreditCalculator.tsx +2 -2
  402. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +9 -5
  403. package/mobile/src/components/ExchangeRateTile/CurrentLocation.tsx +2 -2
  404. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -4
  405. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +11 -5
  406. package/mobile/src/components/Footer/MediaButton.tsx +1 -1
  407. package/mobile/src/components/Gallery/GalleryInner.tsx +2 -1
  408. package/mobile/src/components/Header/Header.example.json +3 -0
  409. package/mobile/src/components/LikeControl/LikeControl.tsx +3 -2
  410. package/mobile/src/components/LinkList/LinkList.tsx +2 -2
  411. package/mobile/src/components/Navigation/Navigation.tsx +31 -28
  412. package/mobile/src/components/NavigatorTabs/NavigatorTabItem.tsx +29 -0
  413. package/mobile/src/components/NavigatorTabs/NavigatorTabs.example.json +7 -0
  414. package/mobile/src/components/NavigatorTabs/NavigatorTabs.tsx +36 -0
  415. package/mobile/src/components/NavigatorTabs/NavigatorTabsContent.ts +20 -0
  416. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +3 -12
  417. package/mobile/src/components/PictureText/PictureText.tsx +18 -13
  418. package/mobile/src/components/Placeholder/Placeholder.tsx +2 -1
  419. package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +3 -1
  420. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +11 -6
  421. package/mobile/src/components/ProductTile/ProductTile.tsx +2 -0
  422. package/mobile/src/components/PromoTile/PromoTile.tsx +2 -0
  423. package/mobile/src/components/Recommendation/Recommendation.tsx +2 -1
  424. package/mobile/src/components/TextBlock/TextBlockContent.ts +1 -1
  425. package/mobile/src/components/Tile/Tile.tsx +2 -0
  426. package/mobile/src/services/sitemap/isTopItemActive.spec.ts +1 -0
  427. package/mobile/src/setup-fixture.ts +23 -8
  428. package/mobile/src/types.ts +2 -0
  429. package/mobile/src/ui-kit/BlocksList/EmbeddableBlocks.tsx +0 -8
  430. package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +4 -12
  431. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  432. package/mobile/src/ui-kit/SwipeListControl/utils/getScrollPoints.spec.ts +18 -0
  433. package/mobile/src/ui-kit/SwipeListControl/utils/getScrollPoints.ts +10 -2
  434. package/mobile/src/ui-kit/Tabs/Tabs.tsx +1 -1
  435. package/mobile/src/utils/url.ts +9 -0
  436. package/package.json +1 -1
  437. package/src/common.css +4 -0
  438. package/src/components/Accordion/Accordion.example.json +3 -0
  439. package/src/components/Accordion/Accordion.fixture.mobile.tsx +1 -0
  440. package/src/components/Accordion/Accordion.fixture.tsx +2 -0
  441. package/src/components/Accordion/Accordion.tsx +4 -14
  442. package/src/components/Accordion/AccordionContent.ts +4 -5
  443. package/src/components/Accordion/AccordionItem.mobile.tsx +32 -27
  444. package/src/components/Accordion/AccordionItem.tsx +23 -49
  445. package/src/components/Accordion/AccordionItemInner.mobile.tsx +8 -11
  446. package/src/components/Accordion/AccordionItemInner.tsx +8 -10
  447. package/src/components/BaseTile/BaseTile.tsx +2 -2
  448. package/src/components/BenefitsBlock/BenefitsBlock.tsx +19 -16
  449. package/src/components/BlockContent.ts +3 -1
  450. package/src/components/Blocks.ts +2 -0
  451. package/src/components/ComparisonTable/ComparisonTable.tsx +4 -2
  452. package/src/components/ContentPage/ContentPage.page.json +30 -0
  453. package/src/components/ContentPage/ContentPage.tsx +3 -3
  454. package/src/components/ContentPage/ContentPageContext.tsx +2 -1
  455. package/src/components/CreditCalculator/CreditCalculator.tsx +2 -2
  456. package/src/components/ExchangeRateTile/CurrencyTable.tsx +9 -5
  457. package/src/components/ExchangeRateTile/CurrentLocation.tsx +2 -2
  458. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -4
  459. package/src/components/ExchangeRateTile/ExchangeRateTile.fixture.tsx +1 -1
  460. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +11 -5
  461. package/src/components/Footer/Footer.tsx +11 -2
  462. package/src/components/Footer/MediaButton.tsx +1 -1
  463. package/src/components/Gallery/GalleryInner.tsx +2 -1
  464. package/src/components/Header/Header.example.json +3 -0
  465. package/src/components/Header/Header.tsx +9 -2
  466. package/src/components/Headline/Headline.tsx +9 -2
  467. package/src/components/LikeControl/LikeControl.tsx +3 -2
  468. package/src/components/LinkDocs/LinkDocs.tsx +2 -1
  469. package/src/components/LinkList/LinkList.tsx +2 -2
  470. package/src/components/MobileAppTile/MobileAppTile.tsx +9 -1
  471. package/src/components/Navigation/Navigation.tsx +31 -28
  472. package/src/components/NavigatorTabs/NavigatorTabItem.tsx +29 -0
  473. package/src/components/NavigatorTabs/NavigatorTabs.example.json +7 -0
  474. package/src/components/NavigatorTabs/NavigatorTabs.fixture.tsx +11 -0
  475. package/src/components/NavigatorTabs/NavigatorTabs.tsx +36 -0
  476. package/src/components/NavigatorTabs/NavigatorTabsContent.ts +20 -0
  477. package/src/components/OtherProducts/OtherProducts.fixture.tsx +61 -6
  478. package/src/components/OtherProducts/OtherProductsContent.ts +3 -12
  479. package/src/components/PictureText/PictureText.tsx +18 -13
  480. package/src/components/Placeholder/Placeholder.tsx +2 -1
  481. package/src/components/ProductBlock/ProductBlock.tsx +10 -1
  482. package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +3 -1
  483. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  484. package/src/components/ProductGallery/ProductGallery.tsx +5 -2
  485. package/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +11 -6
  486. package/src/components/ProductTile/ProductTile.tsx +2 -0
  487. package/src/components/PromoTile/PromoTile.tsx +2 -0
  488. package/src/components/Recommendation/Recommendation.tsx +2 -1
  489. package/src/components/StepsBlock/StepsBlock.tsx +25 -22
  490. package/src/components/TariffsTable/TariffsTable.tsx +2 -1
  491. package/src/components/TextBlock/TextBlock.tsx +10 -1
  492. package/src/components/TextBlock/TextBlockContent.ts +1 -1
  493. package/src/components/Tile/Tile.tsx +2 -0
  494. package/src/services/sitemap/isTopItemActive.spec.ts +1 -0
  495. package/src/setup-fixture.ts +23 -8
  496. package/src/types.ts +2 -0
  497. package/src/ui-kit/BlocksList/EmbeddableBlocks.mobile.tsx +15 -0
  498. package/src/ui-kit/BlocksList/renderBlocksList.tsx +4 -12
  499. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +24 -6
  500. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  501. package/src/ui-kit/SwipeListControl/utils/getScrollPoints.spec.ts +18 -0
  502. package/src/ui-kit/SwipeListControl/utils/getScrollPoints.ts +10 -2
  503. package/src/ui-kit/Tabs/Tabs.tsx +1 -1
  504. package/src/utils/url.ts +9 -0
@@ -32,7 +32,7 @@ export const MediaButton = JSX<MediaButtonProps>(({ href }) => {
32
32
 
33
33
  return (
34
34
  <a
35
- className="flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[38px] h-[38px] hover:text-primary-main"
35
+ 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"
36
36
  href={href}
37
37
  aria-label={label}
38
38
  target="_blank"
@@ -11,7 +11,7 @@ export interface GalleryInnerProps extends GalleryContent, UniBlockProps {
11
11
  }
12
12
 
13
13
  export const GalleryInner = JSX<GalleryInnerProps>(
14
- ({ context, cards = [], className = '', version = 'normal', ...rest }) => {
14
+ ({ context, cards = [], className = '', version = 'normal', anchor = null, ...rest }) => {
15
15
  const [activeCardIndex, setActiveCardIndex] = context.useState(0);
16
16
 
17
17
  const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
@@ -28,6 +28,7 @@ export const GalleryInner = JSX<GalleryInnerProps>(
28
28
  return (
29
29
  <section
30
30
  className={`relative font-sans text-primary-text bg-white p-[50px] overflow-hidden ${className}`}
31
+ id={anchor}
31
32
  >
32
33
  <GalleryContainer
33
34
  context={context}
@@ -0,0 +1,3 @@
1
+ {
2
+ "defaultLocation": "Москва"
3
+ }
@@ -1,8 +1,8 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { LikeButton } from '../../ui-kit/Button/LikeButton';
3
2
  import type { UniBlockProps } from '../../types';
3
+ import { LikeButton } from '../../ui-kit/Button/LikeButton';
4
4
 
5
- export const LikeControl = JSX<UniBlockProps>(({ className, context }) => {
5
+ export const LikeControl = JSX<UniBlockProps>(({ className, context, anchor = null }) => {
6
6
  const likeService = context.useLikeService();
7
7
 
8
8
  return (
@@ -10,6 +10,7 @@ export const LikeControl = JSX<UniBlockProps>(({ className, context }) => {
10
10
  className={`border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${
11
11
  className || ''
12
12
  }`}
13
+ id={anchor}
13
14
  >
14
15
  <LikeButton onClick={likeService.like} ariaLabel="Поставить отметку «лайк»" />
15
16
  <LikeButton
@@ -4,9 +4,9 @@ import type { LinkListContent } from './LinkListContent';
4
4
 
5
5
  export interface LinkListProps extends LinkListContent, UniBlockProps {}
6
6
 
7
- export const LinkList = JSX<LinkListProps>(({ className = '', documents }) => {
7
+ export const LinkList = JSX<LinkListProps>(({ className = '', documents, anchor = null }) => {
8
8
  return (
9
- <section className={`font-sans bg-white mt-[10px] ${className}`}>
9
+ <section className={`font-sans bg-white mt-[10px] ${className}`} id={anchor}>
10
10
  <ul className="flex flex-col text-sm text-secondary-text p-0">
11
11
  {documents?.length ? renderLinkListItem(documents) : null}
12
12
  </ul>
@@ -7,33 +7,36 @@ import { NavigationItem } from './NavigationItem';
7
7
 
8
8
  export interface NavigationProps extends NavigationContent, UniBlockProps {}
9
9
 
10
- export const Navigation = JSX<NavigationProps>(({ className, context, title, buttons }) => {
11
- const router = context.useRouter();
12
- const { handlerDecorator } = context;
10
+ export const Navigation = JSX<NavigationProps>(
11
+ ({ className, context, title, buttons, anchor = null }) => {
12
+ const router = context.useRouter();
13
+ const { handlerDecorator } = context;
13
14
 
14
- const activeButton = findActiveSubItem(router)(buttons);
15
+ const activeButton = findActiveSubItem(router)(buttons);
15
16
 
16
- return (
17
- <section
18
- className={`font-sans text-primary-text rounded-[40px] flex items-center justify-between ${
19
- className || ''
20
- }`}
21
- >
22
- <h2 className="font-medium text-xl m-0">{title}</h2>
23
- {buttons?.length ? (
24
- <div className="flex rounded-md overflow-hidden bg-white">
25
- {buttons
26
- .filter(({ text }) => text)
27
- .map((button, i) => (
28
- <NavigationItem
29
- key={String(i)}
30
- className="first:rounded-tl-md first:rounded-bl-md last:rounded-tr-md last:rounded-br-md"
31
- isActive={button === activeButton}
32
- {...useLink({ router, handlerDecorator }, button)}
33
- />
34
- ))}
35
- </div>
36
- ) : null}
37
- </section>
38
- );
39
- });
17
+ return (
18
+ <section
19
+ className={`font-sans text-primary-text rounded-[40px] flex items-center justify-between ${
20
+ className || ''
21
+ }`}
22
+ id={anchor}
23
+ >
24
+ <h2 className="font-medium text-xl m-0">{title}</h2>
25
+ {buttons?.length ? (
26
+ <div className="flex rounded-md overflow-hidden bg-white">
27
+ {buttons
28
+ .filter(({ text }) => text)
29
+ .map((button, i) => (
30
+ <NavigationItem
31
+ key={String(i)}
32
+ className="first:rounded-tl-md first:rounded-bl-md last:rounded-tr-md last:rounded-br-md"
33
+ isActive={button === activeButton}
34
+ {...useLink({ router, handlerDecorator }, button)}
35
+ />
36
+ ))}
37
+ </div>
38
+ ) : null}
39
+ </section>
40
+ );
41
+ },
42
+ );
@@ -0,0 +1,29 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { NavigatorTab } from './NavigatorTabsContent';
3
+
4
+ export interface NavigatorTabItemProps extends NavigatorTab {
5
+ active?: boolean;
6
+ className?: string;
7
+ onClick?: (ev: MouseEvent) => void;
8
+ }
9
+
10
+ const TEXT_CLASSES = 'font-sans font-normal text-sm';
11
+ const LINK_CLASSES = 'flex-1 flex items-center justify-center';
12
+
13
+ export const NavigatorTabItem = JSX<NavigatorTabItemProps>(
14
+ ({ className = '', label, active, children, onClick, anchor }) => (
15
+ <a className={getLinkClasses(className, active)} href={`#${anchor}`} onClick={onClick}>
16
+ <span className={getTextClasses(active)}>{label || children}</span>
17
+ </a>
18
+ ),
19
+ );
20
+
21
+ const getLinkClasses = (className: string, active?: boolean) => {
22
+ const classes = active ? 'bg-primary-main' : 'bg-white';
23
+ return `${classes} ${LINK_CLASSES} ${className}`;
24
+ };
25
+
26
+ const getTextClasses = (active?: boolean) => {
27
+ const classes = active ? 'text-white' : 'text-secondary-text hover:text-primary-main';
28
+ return `${classes} ${TEXT_CLASSES}`;
29
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "navigatorTabs": [
3
+ { "label": "Tab1", "anchor": "tab1" },
4
+ { "label": "Tab2", "anchor": "tab2" },
5
+ { "label": "Tab3", "anchor": "tab3" }
6
+ ]
7
+ }
@@ -0,0 +1,36 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../types';
3
+ import { getHash } from '../../utils/url';
4
+ import type { Router } from '../ContentPage/ContentPageContext';
5
+ import { NavigatorTabItem } from './NavigatorTabItem';
6
+ import type { NavigatorTab, NavigatorTabsContent } from './NavigatorTabsContent';
7
+
8
+ export interface TabsBlockProps extends NavigatorTabsContent, UniBlockProps {}
9
+
10
+ export const NavigatorTabs = JSX<TabsBlockProps>(
11
+ ({ className = '', navigatorTabs, context, anchor = null }) => {
12
+ const router = context.useRouter();
13
+ const hash = getHash(router.href);
14
+ return (
15
+ <section
16
+ className={`sticky top-0 z-20 box-border flex gap-x-1 h-12 ${className}`}
17
+ id={anchor}
18
+ >
19
+ {navigatorTabs ? navigatorTabs.map(renderTab(hash, router)) : null}
20
+ </section>
21
+ );
22
+ },
23
+ );
24
+
25
+ const renderTab = (hash?: string, router?: Router) => (tab: NavigatorTab, i: number) => {
26
+ const anchorHash = `#${tab.anchor}`;
27
+ const active = hash ? anchorHash === hash : i === 0;
28
+ return (
29
+ <NavigatorTabItem
30
+ key={tab.anchor}
31
+ active={active}
32
+ onClick={() => router?.replace(anchorHash)}
33
+ {...tab}
34
+ />
35
+ );
36
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @title Таб
3
+ */
4
+ export interface NavigatorTab {
5
+ /** @title Название */
6
+ label?: string;
7
+ /** @title Якорь */
8
+ anchor?: string;
9
+ }
10
+
11
+ /**
12
+ * @title Блок табов
13
+ */
14
+ export interface NavigatorTabsContent {
15
+ /**
16
+ * @title Список табов
17
+ * @minItems 3
18
+ */
19
+ navigatorTabs?: NavigatorTab[];
20
+ }
@@ -15,11 +15,6 @@ export interface blockItemCommonProps {
15
15
  isExpanded?: boolean;
16
16
  /** @title Блоки */
17
17
  blocks?: BlockDef[];
18
- /**
19
- * @title Отображать/скрывать обводку элемента
20
- * @default false
21
- */
22
- bordered?: boolean; // TODO: только для мобильной версии
23
18
  columns?: ColumnsCount;
24
19
  }
25
20
 
@@ -29,13 +24,9 @@ export interface blockItemCommonProps {
29
24
  export interface OtherProductsContent {
30
25
  /** @title Заголовок */
31
26
  title?: string;
32
- /** @title Список */
33
- blockItems?: blockItemCommonProps[];
34
- /** @title Подзаголовок */
35
- description?: string; // TODO: только для мобильной версии
36
27
  /**
37
- * @title Отображать/скрывать обводку у элемента списка
38
- * @default false
28
+ * @title Список
29
+ * @maxItems 10
39
30
  */
40
- bordered?: boolean; // TODO: только для мобильной версии
31
+ blockItems?: blockItemCommonProps[];
41
32
  }
@@ -9,19 +9,24 @@ import { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
9
9
 
10
10
  export interface PictureTextProps extends PictureTextContent, UniBlockProps {}
11
11
 
12
- export const PictureText = JSX<PictureTextProps>(({ className = '', title, image, benefits }) => {
13
- return (
14
- <section className={`relative font-sans text-primary-text bg-white p-14 ${className}`}>
15
- <Heading headingType="h2" className="text-center" title={title} />
16
- <div className={'flex justify-center mt-9'}>
17
- {image?.src && <Img className="mr-6" image={image} />}
18
- {benefits?.length ? (
19
- <div className="flex flex-col">{benefits.map(renderBenefit)}</div>
20
- ) : null}
21
- </div>
22
- </section>
23
- );
24
- });
12
+ export const PictureText = JSX<PictureTextProps>(
13
+ ({ className = '', title, image, benefits, anchor = null }) => {
14
+ return (
15
+ <section
16
+ className={`relative font-sans text-primary-text bg-white p-14 ${className}`}
17
+ id={anchor}
18
+ >
19
+ <Heading headingType="h2" className="text-center" title={title} />
20
+ <div className={'flex justify-center mt-9'}>
21
+ {image?.src && <Img className="mr-6" image={image} />}
22
+ {benefits?.length ? (
23
+ <div className="flex flex-col">{benefits.map(renderBenefit)}</div>
24
+ ) : null}
25
+ </div>
26
+ </section>
27
+ );
28
+ },
29
+ );
25
30
 
26
31
  function renderBenefit(benefit: Benefit, i: number) {
27
32
  return (
@@ -15,12 +15,13 @@ export interface PlaceholderProps extends PlaceholderContent, UniBlockProps {
15
15
  const GOLDEN_RATIO = 1.618;
16
16
 
17
17
  export const Placeholder = JSX<PlaceholderProps>(
18
- ({ className, context, title, description = 'Блок в разработке...' }) => {
18
+ ({ className, context, title, description = 'Блок в разработке...', anchor = null }) => {
19
19
  return (
20
20
  <section
21
21
  className={`bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(
22
22
  className,
23
23
  )} ${getTileMinHeight(className)} `}
24
+ id={anchor}
24
25
  >
25
26
  <BaseTile
26
27
  context={context}
@@ -86,7 +86,9 @@ const labelStyleMap: Record<BlockVersion, string> = {
86
86
  };
87
87
 
88
88
  const renderLabel = (label: string, version: BlockVersion) => (
89
- <div className={`m-xs px-2.5 py-1.5 mb-5 rounded-md border-2 w-fit ${labelStyleMap[version]}`}>
89
+ <div
90
+ className={`m-xs px-2.5 py-1.5 mb-5 rounded-md border-2 border-solid w-fit ${labelStyleMap[version]}`}
91
+ >
90
92
  {label}
91
93
  </div>
92
94
  );
@@ -8,7 +8,7 @@ import type { ProductGalleryGreenContent } from './ProductGalleryGreenContent';
8
8
  export interface ProductGalleryProps extends ProductGalleryGreenContent, UniBlockProps {}
9
9
 
10
10
  export const ProductGalleryGreen = JSX<ProductGalleryProps>(
11
- ({ className = '', context, slides = [] }) => {
11
+ ({ className = '', context, slides = [], anchor = null }) => {
12
12
  const galleryNav = slides.map((s) => s.nav);
13
13
  const galleryBlocks = slides.map((s) => s.productBlock);
14
14
  const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
@@ -16,6 +16,7 @@ export const ProductGalleryGreen = JSX<ProductGalleryProps>(
16
16
  return (
17
17
  <section
18
18
  className={`box-border pt-[70px] relative font-sans overflow-hidden bg-primary-main w-100 ${className}`}
19
+ id={anchor}
19
20
  >
20
21
  <div
21
22
  className="flex duration-1000 pb-14"
@@ -75,9 +76,13 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick }) {
75
76
  const isActiveBtn = i === activeSlideIndex;
76
77
  const btnClassName = isActiveBtn
77
78
  ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] max-w-[354px] p-0'
78
- : 'bg-white/10 min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300';
79
- const btnTitleClassName = isActiveBtn ? 'text-primary-text' : 'text-white';
80
- const btnDescClassName = isActiveBtn ? 'text-secondary-text' : 'text-white';
79
+ : 'bg-white/10 min-w-[277px] px-0 pt-4 pb-[23px] hover:pt-[21px] hover:pb-7 ease-in duration-300';
80
+ const btnTitleClassName = isActiveBtn
81
+ ? 'text-[18px] text-primary-text pb-[10px]'
82
+ : 'text-m-base text-white pb-[3px]';
83
+ const btnDescClassName = isActiveBtn
84
+ ? 'text-[18px] text-secondary-text'
85
+ : 'text-m-base text-white';
81
86
 
82
87
  return (
83
88
  <button
@@ -90,8 +95,8 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick }) {
90
95
  `}
91
96
  >
92
97
  <div className="border-0 px-6">
93
- <div className={`text-sm font-medium pb-[3px] ${btnTitleClassName}`}>{slide?.title}</div>
94
- <div className={`text-xs text-secondary-text ${btnDescClassName}`}>{slide.description}</div>
98
+ <div className={`font-medium ${btnTitleClassName}`}>{slide?.title}</div>
99
+ <div className={`text-secondary-text ${btnDescClassName}`}>{slide.description}</div>
95
100
  </div>
96
101
  </button>
97
102
  );
@@ -29,12 +29,14 @@ export const ProductTile = JSX<ProductTileProps>(
29
29
  buttons,
30
30
  image,
31
31
  version = 'primary',
32
+ anchor = null,
32
33
  }) => {
33
34
  return (
34
35
  <section
35
36
  className={`bg-white text-primary-text font-sans p-9 box-border ${className} ${
36
37
  productTileStyleMap[version]
37
38
  } ${getTileRightPadding(className)} ${getTileMinHeight(className)} `}
39
+ id={anchor}
38
40
  >
39
41
  <BaseTile
40
42
  context={context}
@@ -25,12 +25,14 @@ export const PromoTile = JSX<PromoTileProps>(
25
25
  description,
26
26
  buttons = [],
27
27
  version = 'primary',
28
+ anchor = null,
28
29
  }) => {
29
30
  return (
30
31
  <section
31
32
  className={`bg-white text-primary-text font-sans p-9 box-border ${className} ${
32
33
  promoTileStyleMap[version]
33
34
  } ${getTileRightPadding(className)} ${getTileMinHeight(className)} `}
35
+ id={anchor}
34
36
  >
35
37
  <BaseTile
36
38
  context={context}
@@ -12,7 +12,7 @@ const CARD_SHIFT = 525;
12
12
  export interface RecommendationProps extends RecommendationContent, UniBlockProps {}
13
13
 
14
14
  export const Recommendation = JSX<RecommendationProps>(
15
- ({ context, recommendations = [], className = '', title, version }) => {
15
+ ({ context, recommendations = [], className = '', title, version, anchor = null }) => {
16
16
  const [activeCardIndex, setActiveCardIndex] = context.useState(0);
17
17
 
18
18
  const blockClassName =
@@ -22,6 +22,7 @@ export const Recommendation = JSX<RecommendationProps>(
22
22
  return (
23
23
  <section
24
24
  className={`relative font-sans p-[50px] overflow-hidden ${blockClassName} ${className}`}
25
+ id={anchor}
25
26
  >
26
27
  {title ? <Heading headingType="h3" className="mb-8" title={title} /> : null}
27
28
  <div
@@ -23,7 +23,7 @@ export interface TextBlockContent {
23
23
  iconVersion?: TextBlockIconVersion;
24
24
  image?: Picture;
25
25
  blockVersion?: TextBlockVersion;
26
- /** @title Маркеры списка (моб.) */ // TODO: mobile prop
26
+ /** @title Буллиты */ // TODO: mobile prop
27
27
  isDotted?: boolean;
28
28
  /** @title Список (моб.) */ // TODO: mobile prop
29
29
  items?: string[];
@@ -33,6 +33,7 @@ export const Tile = JSX<TileProps>((props) => {
33
33
  className = '',
34
34
  version = 'primary',
35
35
  role,
36
+ anchor = null,
36
37
  } = props;
37
38
 
38
39
  return (
@@ -41,6 +42,7 @@ export const Tile = JSX<TileProps>((props) => {
41
42
  tileStyleMap[version]
42
43
  } ${getTileRightPadding(className)} ${getTileMinHeight(className)} `}
43
44
  role={role}
45
+ id={anchor}
44
46
  >
45
47
  <BaseTile
46
48
  context={context}
@@ -5,6 +5,7 @@ const router: Router = {
5
5
  href: 'https://foo.ru/natural/credits',
6
6
  pathname: '/natural',
7
7
  push: () => undefined,
8
+ replace: () => undefined,
8
9
  query: {},
9
10
  };
10
11
 
@@ -11,16 +11,28 @@ const TEST_ORIGIN = 'http://localhost:5001';
11
11
 
12
12
  const DaData = DaDataAPI('https://10.80.4.9');
13
13
 
14
- export const context: ContentPageContext = {
15
- useState,
16
- useRouter: () => ({
17
- href: `${TEST_ORIGIN}/credits`,
14
+ const Router = () => {
15
+ const [href, setHref] = useState<string>(globalThis.location.href);
16
+
17
+ return {
18
+ href: href,
18
19
  pathname: '/credits',
19
20
  query: {},
20
- push: (url: string) => {
21
- console.log(url);
21
+ push: (url?: string) => {
22
+ if (!url) return;
23
+ globalThis.history.pushState(null, '', url);
24
+ setHref(globalThis.location.href);
22
25
  },
23
- }),
26
+ replace: (url?: string) => {
27
+ if (!url) return;
28
+ globalThis.history.replaceState(null, '', url);
29
+ setHref(globalThis.location.href);
30
+ },
31
+ };
32
+ };
33
+ export const context: ContentPageContext = {
34
+ useState,
35
+ useRouter: Router,
24
36
  useAsyncData: (key, fetcher) => {
25
37
  const [data, setData] = useState();
26
38
  useEffect(() => {
@@ -76,7 +88,10 @@ export const mobileContext: ContentPageContext = {
76
88
  href: `${TEST_ORIGIN}/mobile/credits`,
77
89
  pathname: '/mobile/credits',
78
90
  query: {},
79
- push: (url: string) => {
91
+ push: (url?: string) => {
92
+ console.log(url);
93
+ },
94
+ replace: (url?: string) => {
80
95
  console.log(url);
81
96
  },
82
97
  }),
@@ -10,6 +10,7 @@ export interface BaseBlockDef {
10
10
  content?: BlockContent;
11
11
  version?: BlockVersion;
12
12
  hidden?: boolean;
13
+ anchor?: string;
13
14
  }
14
15
 
15
16
  export interface BlockDef extends BaseBlockDef {
@@ -50,6 +51,7 @@ export interface ContentPageDef extends ContentPageMeta {
50
51
  export interface UniBlockProps {
51
52
  className?: string;
52
53
  context: ContentPageContext;
54
+ anchor?: string;
53
55
  }
54
56
 
55
57
  export interface DaDataResult {
@@ -1,23 +1,15 @@
1
1
  import { Headline } from '../../components/Headline/Headline';
2
2
  import { LinkDocs } from '../../components/LinkDocs/LinkDocs';
3
- import { PictureText } from '../../components/PictureText/PictureText';
4
3
  import { ProductBlock } from '../../components/ProductBlock/ProductBlock';
5
4
  import { TextBlock } from '../../components/TextBlock/TextBlock';
6
- import { Tile } from '../../components/Tile/Tile';
7
- import { ProductTile } from '../../components/ProductTile/ProductTile';
8
5
  import { Gallery } from '../../components/Gallery/Gallery';
9
- import { MiniGallery } from '../../components/MiniGallery/MiniGallery';
10
6
  import { LinkList } from '../../components/LinkList/LinkList';
11
7
 
12
8
  export const EmbeddableBlocks = {
13
9
  Headline,
14
10
  LinkDocs,
15
11
  TextBlock,
16
- PictureText,
17
12
  ProductBlock,
18
- Tile,
19
- ProductTile,
20
13
  Gallery,
21
- MiniGallery,
22
14
  LinkList,
23
15
  };
@@ -2,27 +2,19 @@ import type { JSXBlock } from '../../components/ContentPage/ContentPage';
2
2
  import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
3
3
  import type { BlockDef, ColumnsCount } from './BlocksListProps';
4
4
  import { EmbeddableBlocks } from './EmbeddableBlocks';
5
- import { BlockVersion } from '../../model/BlockVersion';
6
5
 
7
6
  type EmbeddableBlocksProps = {
8
7
  blocks?: BlockDef[];
9
8
  context: ContentPageContext;
10
9
  columns?: ColumnsCount;
11
10
  className?: string;
12
- version?: BlockVersion;
13
11
  };
14
12
 
15
- export const renderBlocksList = ({
16
- blocks,
17
- context,
18
- className,
19
- columns,
20
- version,
21
- }: EmbeddableBlocksProps) =>
22
- blocks?.length ? blocks.map(renderBlock({ context, className, columns, version })) : null;
13
+ export const renderBlocksList = ({ blocks, context, className, columns }: EmbeddableBlocksProps) =>
14
+ blocks?.length ? blocks.map(renderBlock({ context, className, columns })) : null;
23
15
 
24
16
  export const renderBlock =
25
- ({ context, columns, className, version }: EmbeddableBlocksProps) =>
17
+ ({ context, columns, className }: EmbeddableBlocksProps) =>
26
18
  (block: BlockDef, i: number) => {
27
19
  const type = block?.blockListType;
28
20
  if (!type || !(type in EmbeddableBlocks)) {
@@ -32,7 +24,7 @@ export const renderBlock =
32
24
  const EmbeddedBlock: JSXBlock = EmbeddableBlocks[type];
33
25
  return (
34
26
  <div className={`${className} ${columnsCountClass}`} key={`block_${i}`}>
35
- <EmbeddedBlock context={context} {...block} blockVersion={version} className="!p-0" />
27
+ <EmbeddedBlock context={context} {...block} className="!p-0" />
36
28
  </div>
37
29
  );
38
30
  };
@@ -22,7 +22,7 @@ export const SwipeListControlDots = JSX<SwipeListControlDotsProps>(
22
22
  const contentContainer = (e.currentTarget as HTMLElement).parentElement
23
23
  ?.previousElementSibling;
24
24
 
25
- contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth' });
25
+ contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
26
26
  };
27
27
 
28
28
  return showDots && children?.length ? (
@@ -17,8 +17,26 @@ const scrollPoints: [number, number][] = [
17
17
  [1414, 1914],
18
18
  ];
19
19
 
20
+ const twoItemsScrollPointsProps = {
21
+ gap: 14,
22
+ padding: 16,
23
+ clientWidth: 414,
24
+ scrollWidth: 794,
25
+ childElementCount: 2,
26
+ itemWidth: 380,
27
+ };
28
+
29
+ const twoItemsScrollPoints: [number, number][] = [
30
+ [0, 380],
31
+ [380, 794],
32
+ ];
33
+
20
34
  describe('getScrollPoints', () => {
21
35
  it('should return array containing scroll breakpoints delimiting each child', () => {
22
36
  expect(getScrollPoints(props)).toEqual(scrollPoints);
23
37
  });
38
+
39
+ it('should correctly handle case with 2 items in container', () => {
40
+ expect(getScrollPoints(twoItemsScrollPointsProps)).toEqual(twoItemsScrollPoints);
41
+ });
24
42
  });
@@ -16,9 +16,17 @@ export const getScrollPoints = ({
16
16
  scrollWidth: number;
17
17
  childElementCount: number;
18
18
  itemWidth: number;
19
- }) => {
20
- const scrollItemWidth = itemWidth + gap;
19
+ }): [number, number][] => {
21
20
  const scrollableDistance = scrollWidth - clientWidth;
21
+
22
+ if (childElementCount === 2) {
23
+ return [
24
+ [0, scrollableDistance],
25
+ [scrollableDistance, scrollWidth],
26
+ ];
27
+ }
28
+
29
+ const scrollItemWidth = itemWidth + gap;
22
30
  const edgeScrollDistance = clientWidth - gap - padding;
23
31
 
24
32
  const lastScrollableIdx = childElementCount - 2;