@redneckz/wildless-cms-uni-blocks 0.2.91 → 0.2.94

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 (284) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +156 -80
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/api/LikeAPI.js +1 -0
  5. package/dist/api/LikeAPI.js.map +1 -1
  6. package/dist/components/Accordion/AccordionContent.d.ts +38 -14
  7. package/dist/components/Accordion/AccordionItem.js +8 -6
  8. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  9. package/dist/components/BaseTile/BaseTile.js +1 -1
  10. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  11. package/dist/components/BlockContent.d.ts +2 -1
  12. package/dist/components/Blocks.d.ts +1 -0
  13. package/dist/components/Blocks.js +2 -0
  14. package/dist/components/Blocks.js.map +1 -1
  15. package/dist/components/ComparisonTable/ComparisonTable.js +12 -10
  16. package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  17. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +0 -18
  18. package/dist/components/ComparisonTable/HeaderCell.js +1 -1
  19. package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  20. package/dist/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
  21. package/dist/components/ComparisonTable/TableCarouselContainer.js +5 -2
  22. package/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  23. package/dist/components/ComparisonTable/TableRow.js +1 -1
  24. package/dist/components/ComparisonTable/TableRow.js.map +1 -1
  25. package/dist/components/ContentPage/ContentPage.d.ts +9 -1
  26. package/dist/components/ContentPage/ContentPage.js +20 -17
  27. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  28. package/dist/components/ContentPage/ContentPageHead.d.ts +1 -1
  29. package/dist/components/ContentPage/toMobilePage.js +13 -2
  30. package/dist/components/ContentPage/toMobilePage.js.map +1 -1
  31. package/dist/components/CreditCalculator/CreditCalculator.js +1 -1
  32. package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  33. package/dist/components/Footer/Contacts.js +1 -1
  34. package/dist/components/Footer/Contacts.js.map +1 -1
  35. package/dist/components/Footer/FooterContent.d.ts +1 -2
  36. package/dist/components/Footer/HorizontalNavigation.js +1 -1
  37. package/dist/components/Footer/SocialMedia.js +1 -2
  38. package/dist/components/Footer/SocialMedia.js.map +1 -1
  39. package/dist/components/Gallery/GalleryInner.js +2 -2
  40. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  41. package/dist/components/Header/Header.js +3 -3
  42. package/dist/components/Header/Header.js.map +1 -1
  43. package/dist/components/LinkDocs/LinkDocs.js +5 -5
  44. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  45. package/dist/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
  46. package/dist/components/MobileBlocks.js +0 -3
  47. package/dist/components/MobileBlocks.js.map +1 -1
  48. package/dist/components/PictureText/PictureTextContent.d.ts +1 -3
  49. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  50. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  51. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  52. package/dist/components/ProductBlock/ProductBlock.mobile.js +3 -1
  53. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  54. package/dist/components/ProductBlock/ProductBlockInner.js +2 -5
  55. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  56. package/dist/components/ProductGallery/ProductGallery.js +2 -2
  57. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  58. package/dist/components/PromoTile/PromoTile.d.ts +1 -1
  59. package/dist/components/PromoTile/PromoTile.js +1 -1
  60. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  61. package/dist/components/TariffsTable/TariffsTable.d.ts +5 -0
  62. package/dist/components/TariffsTable/TariffsTable.js +25 -0
  63. package/dist/components/TariffsTable/TariffsTable.js.map +1 -0
  64. package/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -0
  65. package/dist/components/TariffsTable/TariffsTableCell.js +18 -0
  66. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -0
  67. package/dist/components/TariffsTable/TariffsTableContent.d.ts +55 -0
  68. package/dist/components/TariffsTable/TariffsTableContent.js +2 -0
  69. package/dist/components/TariffsTable/TariffsTableContent.js.map +1 -0
  70. package/dist/components/TariffsTable/TariffsTableRow.d.ts +8 -0
  71. package/dist/components/TariffsTable/TariffsTableRow.js +13 -0
  72. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -0
  73. package/dist/components/TariffsTable/constants.d.ts +4 -0
  74. package/dist/components/TariffsTable/constants.js +7 -0
  75. package/dist/components/TariffsTable/constants.js.map +1 -0
  76. package/dist/components/TextBlock/TextBlock.d.ts +1 -1
  77. package/dist/components/TextBlock/TextBlock.js +1 -1
  78. package/dist/components/TextBlock/TextBlock.js.map +1 -1
  79. package/dist/components/TextBlock/TextBlockContent.d.ts +1 -2
  80. package/dist/components/Tile/Tile.d.ts +1 -1
  81. package/dist/components/Tile/Tile.js +14 -2
  82. package/dist/components/Tile/Tile.js.map +1 -1
  83. package/dist/content-page-repository/ContentPageRepository.js +1 -0
  84. package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  85. package/dist/hooks/useComparisonTableScroll.d.ts +12 -0
  86. package/dist/hooks/useComparisonTableScroll.js +12 -0
  87. package/dist/hooks/useComparisonTableScroll.js.map +1 -0
  88. package/dist/hooks/useLink.js +1 -1
  89. package/dist/hooks/useLink.js.map +1 -1
  90. package/dist/model/TableVersion.d.ts +1 -0
  91. package/dist/model/TableVersion.js +2 -0
  92. package/dist/model/TableVersion.js.map +1 -0
  93. package/dist/types.d.ts +8 -0
  94. package/dist/ui-kit/BlockItem/BlockItem.d.ts +1 -9
  95. package/dist/ui-kit/BlockItem/BlockItem.js +5 -5
  96. package/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
  97. package/dist/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
  98. package/dist/ui-kit/BlockItem/BlockItemProps.js +2 -0
  99. package/dist/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
  100. package/dist/ui-kit/Icon/IconProps.d.ts +57 -25
  101. package/dist/ui-kit/Icon/IconProps.js +39 -23
  102. package/dist/ui-kit/Icon/IconProps.js.map +1 -1
  103. package/dist/ui-kit/InputRange/InputRange.js +1 -1
  104. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  105. package/dist/ui-kit/SearchBar.js +2 -1
  106. package/dist/ui-kit/SearchBar.js.map +1 -1
  107. package/lib/api/LikeAPI.js +1 -0
  108. package/lib/api/LikeAPI.js.map +1 -1
  109. package/lib/common.css +1 -1
  110. package/lib/components/Accordion/Accordion.fixture.d.ts +1 -4
  111. package/lib/components/Accordion/AccordionContent.d.ts +38 -14
  112. package/lib/components/Accordion/AccordionItem.js +8 -6
  113. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  114. package/lib/components/BaseTile/BaseTile.js +1 -1
  115. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  116. package/lib/components/BlockContent.d.ts +2 -1
  117. package/lib/components/Blocks.d.ts +1 -0
  118. package/lib/components/Blocks.js +2 -0
  119. package/lib/components/Blocks.js.map +1 -1
  120. package/lib/components/ComparisonTable/ComparisonTable.js +12 -10
  121. package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  122. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +0 -18
  123. package/lib/components/ComparisonTable/HeaderCell.js +1 -1
  124. package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  125. package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
  126. package/lib/components/ComparisonTable/TableCarouselContainer.js +5 -2
  127. package/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  128. package/lib/components/ComparisonTable/TableRow.js +2 -2
  129. package/lib/components/ComparisonTable/TableRow.js.map +1 -1
  130. package/lib/components/ContentPage/ContentPage.d.ts +9 -1
  131. package/lib/components/ContentPage/ContentPage.js +20 -17
  132. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  133. package/lib/components/ContentPage/ContentPageHead.d.ts +1 -1
  134. package/lib/components/ContentPage/toMobilePage.js +13 -2
  135. package/lib/components/ContentPage/toMobilePage.js.map +1 -1
  136. package/lib/components/CreditCalculator/CreditCalculator.js +1 -1
  137. package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  138. package/lib/components/Footer/Contacts.js +1 -1
  139. package/lib/components/Footer/Contacts.js.map +1 -1
  140. package/lib/components/Footer/FooterContent.d.ts +1 -2
  141. package/lib/components/Footer/HorizontalNavigation.js +1 -1
  142. package/lib/components/Footer/SocialMedia.js +1 -2
  143. package/lib/components/Footer/SocialMedia.js.map +1 -1
  144. package/lib/components/Gallery/GalleryInner.js +2 -2
  145. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  146. package/lib/components/Header/Header.js +3 -3
  147. package/lib/components/Header/Header.js.map +1 -1
  148. package/lib/components/Headline/Headline.fixture.d.ts +3 -2
  149. package/lib/components/LinkDocs/LinkDocs.fixture.d.ts +7 -7
  150. package/lib/components/LinkDocs/LinkDocs.js +5 -5
  151. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  152. package/lib/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
  153. package/lib/components/MobileBlocks.js +0 -3
  154. package/lib/components/MobileBlocks.js.map +1 -1
  155. package/lib/components/PictureText/PictureText.fixture.d.ts +2 -0
  156. package/lib/components/PictureText/PictureTextContent.d.ts +1 -3
  157. package/lib/components/Placeholder/Placeholder.js.map +1 -1
  158. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  159. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  160. package/lib/components/ProductBlock/ProductBlock.mobile.js +3 -1
  161. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  162. package/lib/components/ProductBlock/ProductBlockInner.js +2 -5
  163. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  164. package/lib/components/ProductGallery/ProductGallery.js +2 -2
  165. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  166. package/lib/components/PromoTile/PromoTile.d.ts +1 -1
  167. package/lib/components/PromoTile/PromoTile.js +1 -1
  168. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  169. package/lib/components/TariffsTable/TariffsTable.d.ts +5 -0
  170. package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +7 -0
  171. package/lib/components/TariffsTable/TariffsTable.js +23 -0
  172. package/lib/components/TariffsTable/TariffsTable.js.map +1 -0
  173. package/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -0
  174. package/lib/components/TariffsTable/TariffsTableCell.js +16 -0
  175. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -0
  176. package/lib/components/TariffsTable/TariffsTableContent.d.ts +55 -0
  177. package/lib/components/TariffsTable/TariffsTableContent.js +2 -0
  178. package/lib/components/TariffsTable/TariffsTableContent.js.map +1 -0
  179. package/lib/components/TariffsTable/TariffsTableRow.d.ts +8 -0
  180. package/lib/components/TariffsTable/TariffsTableRow.js +11 -0
  181. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -0
  182. package/lib/components/TariffsTable/constants.d.ts +4 -0
  183. package/lib/components/TariffsTable/constants.js +5 -0
  184. package/lib/components/TariffsTable/constants.js.map +1 -0
  185. package/lib/components/TextBlock/TextBlock.d.ts +1 -1
  186. package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
  187. package/lib/components/TextBlock/TextBlock.js +1 -1
  188. package/lib/components/TextBlock/TextBlock.js.map +1 -1
  189. package/lib/components/TextBlock/TextBlockContent.d.ts +1 -2
  190. package/lib/components/Tile/Tile.d.ts +1 -1
  191. package/lib/components/Tile/Tile.js +14 -2
  192. package/lib/components/Tile/Tile.js.map +1 -1
  193. package/lib/content-page-repository/ContentPageRepository.js +1 -0
  194. package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  195. package/lib/hooks/useComparisonTableScroll.d.ts +12 -0
  196. package/lib/hooks/useComparisonTableScroll.js +9 -0
  197. package/lib/hooks/useComparisonTableScroll.js.map +1 -0
  198. package/lib/hooks/useLink.js +1 -1
  199. package/lib/hooks/useLink.js.map +1 -1
  200. package/lib/model/TableVersion.d.ts +1 -0
  201. package/lib/model/TableVersion.js +2 -0
  202. package/lib/model/TableVersion.js.map +1 -0
  203. package/lib/types.d.ts +8 -0
  204. package/lib/ui-kit/BlockItem/BlockItem.d.ts +1 -9
  205. package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +6 -1
  206. package/lib/ui-kit/BlockItem/BlockItem.js +5 -5
  207. package/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
  208. package/lib/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
  209. package/lib/ui-kit/BlockItem/BlockItemProps.js +2 -0
  210. package/lib/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
  211. package/lib/ui-kit/Icon/IconProps.d.ts +57 -25
  212. package/lib/ui-kit/Icon/IconProps.js +39 -23
  213. package/lib/ui-kit/Icon/IconProps.js.map +1 -1
  214. package/lib/ui-kit/InputRange/InputRange.js +1 -1
  215. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  216. package/lib/ui-kit/SearchBar.js +2 -1
  217. package/lib/ui-kit/SearchBar.js.map +1 -1
  218. package/package.json +19 -9
  219. package/src/api/LikeAPI.ts +1 -0
  220. package/src/components/Accordion/Accordion.example.json +18 -42
  221. package/src/components/Accordion/Accordion.fixture.tsx +29 -119
  222. package/src/components/Accordion/AccordionContent.ts +47 -18
  223. package/src/components/Accordion/AccordionItem.tsx +13 -9
  224. package/src/components/BaseTile/BaseTile.tsx +6 -3
  225. package/src/components/BlockContent.ts +2 -0
  226. package/src/components/Blocks.ts +2 -0
  227. package/src/components/ComparisonTable/ComparisonTable.tsx +17 -14
  228. package/src/components/ComparisonTable/ComparisonTableContent.ts +0 -19
  229. package/src/components/ComparisonTable/HeaderCell.tsx +3 -3
  230. package/src/components/ComparisonTable/TableCarouselContainer.tsx +11 -4
  231. package/src/components/ComparisonTable/TableRow.tsx +2 -2
  232. package/src/components/ContentPage/ContentPage.fixture.tsx +3 -3
  233. package/src/components/ContentPage/ContentPage.page.json +426 -22
  234. package/src/components/ContentPage/ContentPage.tsx +71 -36
  235. package/src/components/ContentPage/ContentPageHead.tsx +1 -1
  236. package/src/components/ContentPage/toMobilePage.ts +19 -2
  237. package/src/components/CreditCalculator/CreditCalculator.tsx +1 -1
  238. package/src/components/Footer/Contacts.tsx +1 -1
  239. package/src/components/Footer/FooterContent.ts +1 -1
  240. package/src/components/Footer/HorizontalNavigation.tsx +1 -1
  241. package/src/components/Footer/SocialMedia.tsx +5 -6
  242. package/src/components/Gallery/GalleryInner.tsx +2 -1
  243. package/src/components/Header/Header.tsx +14 -12
  244. package/src/components/Headline/Headline.fixture.tsx +11 -34
  245. package/src/components/LinkDocs/LinkDocs.example.json +26 -0
  246. package/src/components/LinkDocs/LinkDocs.fixture.tsx +13 -13
  247. package/src/components/LinkDocs/LinkDocs.tsx +9 -8
  248. package/src/components/MiniGallery/MiniGalleryContent.ts +1 -1
  249. package/src/components/MobileBlocks.ts +0 -3
  250. package/src/components/PictureText/PictureText.fixture.tsx +20 -20
  251. package/src/components/PictureText/PictureTextContent.ts +1 -3
  252. package/src/components/Placeholder/Placeholder.tsx +2 -2
  253. package/src/components/ProductBlock/ProductBlock.fixture.tsx +1 -0
  254. package/src/components/ProductBlock/ProductBlock.mobile.tsx +1 -0
  255. package/src/components/ProductBlock/ProductBlock.tsx +3 -1
  256. package/src/components/ProductBlock/ProductBlockInner.tsx +9 -12
  257. package/src/components/ProductGallery/ProductGallery.example.json +1 -1
  258. package/src/components/ProductGallery/ProductGallery.fixture.tsx +7 -13
  259. package/src/components/ProductGallery/ProductGallery.tsx +7 -5
  260. package/src/components/PromoTile/PromoTile.tsx +3 -3
  261. package/src/components/TariffsTable/TariffsTable.example.json +87 -0
  262. package/src/components/TariffsTable/TariffsTable.fixture.tsx +195 -0
  263. package/src/components/TariffsTable/TariffsTable.tsx +74 -0
  264. package/src/components/TariffsTable/TariffsTableCell.tsx +64 -0
  265. package/src/components/TariffsTable/TariffsTableContent.ts +61 -0
  266. package/src/components/TariffsTable/TariffsTableRow.tsx +46 -0
  267. package/src/components/TariffsTable/constants.ts +4 -0
  268. package/src/components/TextBlock/TextBlock.example.json +9 -2
  269. package/src/components/TextBlock/TextBlock.fixture.tsx +20 -64
  270. package/src/components/TextBlock/TextBlock.tsx +2 -2
  271. package/src/components/TextBlock/TextBlockContent.ts +1 -2
  272. package/src/components/Tile/Tile.example.json +5 -2
  273. package/src/components/Tile/Tile.tsx +16 -5
  274. package/src/content-page-repository/ContentPageRepository.ts +1 -0
  275. package/src/hooks/useComparisonTableScroll.ts +21 -0
  276. package/src/hooks/useLink.ts +1 -1
  277. package/src/model/TableVersion.ts +1 -0
  278. package/src/types.ts +11 -1
  279. package/src/ui-kit/BlockItem/BlockItem.fixture.tsx +8 -1
  280. package/src/ui-kit/BlockItem/BlockItem.tsx +7 -18
  281. package/src/ui-kit/BlockItem/BlockItemProps.ts +22 -0
  282. package/src/ui-kit/Icon/IconProps.ts +34 -2
  283. package/src/ui-kit/InputRange/InputRange.tsx +2 -2
  284. package/src/ui-kit/SearchBar.tsx +16 -6
@@ -70,4 +70,4 @@ const renderText = (type: ContactInfo['type'], text = '') => {
70
70
  }
71
71
  };
72
72
 
73
- const formatTel = (s: string) => s.replaceAll(/(\-|\s|\(|\)|\D+)/g, '');
73
+ const formatTel = (s: string) => s.replaceAll(/\D/g, '');
@@ -24,7 +24,7 @@ export interface ContactInfo {
24
24
  /**
25
25
  * @required ["href"]
26
26
  */
27
- export interface SocialMedia extends Omit<LinkProps, 'text'> {}
27
+ export type SocialMedia = Omit<LinkProps, 'text'>;
28
28
 
29
29
  /**
30
30
  * @title Подвал
@@ -33,7 +33,7 @@ interface HorizontalNavigationLinkProps extends LinkProps {
33
33
  const HorizontalNavigationLink = JSX<Partial<HorizontalNavigationLinkProps>>(
34
34
  ({ className, index, text, href, target, onClick }) => (
35
35
  <a
36
- className={`font-sans font-normal text-sm text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${
36
+ className={`font-sans font-normal text-sm text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${
37
37
  className || ''
38
38
  }`}
39
39
  href={href}
@@ -51,14 +51,13 @@ const MediaButton = JSX<MediaButtonProps>(({ href }) => {
51
51
  if (!icon) return null;
52
52
 
53
53
  return (
54
- <Button
55
- rounded
54
+ <a
55
+ className="flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[38px] h-[38px] hover:fill-primary-main"
56
56
  href={href}
57
57
  target="_blank"
58
58
  rel="noopener noreferrer"
59
- aria-label={label}
60
- className="border-solid border border-main-divider w-9 h-9 flex items-center justify-center hover:fill-primary-main"
61
- appendLeft={<Icon name={icon} width={width} height={height} asSVG />}
62
- />
59
+ >
60
+ {Icon && <Icon name={icon} width={width} height={height} asSVG className="block" />}
61
+ </a>
63
62
  );
64
63
  });
@@ -49,7 +49,7 @@ export const GalleryInner = JSX<GalleryInnerProps>(
49
49
 
50
50
  return (
51
51
  <section
52
- className={`relative font-sans text-primary-text bg-white p-12 overflow-hidden ${className}`}
52
+ className={`relative font-sans text-primary-text bg-white p-12 py-[50px] overflow-hidden ${className}`}
53
53
  >
54
54
  <div className="flex flex-col items-center mb-8">
55
55
  {title ? <Title className="font-medium m-0 text-center">{title}</Title> : null}
@@ -68,6 +68,7 @@ export const GalleryInner = JSX<GalleryInnerProps>(
68
68
  >
69
69
  {cards?.map((card, i) => renderCard(card, i, version))}
70
70
  </div>
71
+ <div className="absolute top-0 left-0 bottom-0 w-[84px] bg-gradient-to-r from-white to-transparent"></div>
71
72
  {showPrevButton && (
72
73
  <ArrowButton
73
74
  className="absolute top-1/2 left-8 rotate-180"
@@ -1,11 +1,11 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useLink } from '../../hooks/useLink';
3
+ import { useSitemap } from '../../hooks/useSitemap';
2
4
  import { mergeTopItems } from '../../mergeTopItems';
3
5
  import type { UniBlockProps } from '../../types';
4
6
  import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
5
7
  import { Logo } from '../../ui-kit/Logo/Logo';
6
8
  import { TopItem } from '../../ui-kit/TopItem/TopItem';
7
- import { useLink } from '../../hooks/useLink';
8
- import { useSitemap } from '../../hooks/useSitemap';
9
9
  import type { HeaderContent } from './HeaderContent';
10
10
  import { HeaderSecondaryMenu } from './HeaderSecondaryMenu';
11
11
  import { isSubItemActive } from './isSubItemActive';
@@ -43,17 +43,19 @@ export const Header = JSX<HeaderProps>(({ className, defaultLocation, context, t
43
43
 
44
44
  return (
45
45
  <header className={`pt-5 pb-8 px-20 bg-white ${className || ''}`}>
46
- <div className="flex items-center">
47
- <Logo className="mr-8" />
48
- {topMenu}
49
- <HeaderSecondaryMenu
50
- context={context}
51
- className="ml-auto"
52
- defaultLocation={defaultLocation}
53
- />
46
+ <div className="container">
47
+ <div className="flex items-center">
48
+ <Logo className="mr-8" />
49
+ {topMenu}
50
+ <HeaderSecondaryMenu
51
+ context={context}
52
+ className="ml-auto"
53
+ defaultLocation={defaultLocation}
54
+ />
55
+ </div>
56
+ <div className="mt-5 h-[1px] bg-main-divider" />
57
+ <nav className="mt-5">{subMenu}</nav>
54
58
  </div>
55
- <div className="mt-5 h-[1px] bg-main-divider" />
56
- <nav className="mt-5">{subMenu}</nav>
57
59
  </header>
58
60
  );
59
61
  });
@@ -1,42 +1,19 @@
1
1
  import { context } from '../../setup-fixture';
2
2
 
3
3
  import { Headline } from './Headline';
4
+ import { HeadlineContent } from './HeadlineContent';
5
+
6
+ export const HEADLINE: HeadlineContent = {
7
+ title: 'Своя кредитная карта',
8
+ description: 'Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах.',
9
+ align: 'center',
10
+ bgColor: 'transparent',
11
+ };
4
12
 
5
13
  export default {
6
- default: (
7
- <Headline
8
- title="Своя кредитная карта"
9
- description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
10
- align="left"
11
- bgColor="bg-white"
12
- context={context}
13
- />
14
- ),
15
- 'center transparent': (
16
- <Headline
17
- title="Своя кредитная карта"
18
- description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
19
- align="center"
20
- bgColor="transparent"
21
- context={context}
22
- />
23
- ),
14
+ default: <Headline context={context} {...HEADLINE} />,
15
+ 'left white': <Headline context={context} {...HEADLINE} align="left" bgColor="bg-white" />,
24
16
  'right transparent': (
25
- <Headline
26
- title="Своя кредитная карта"
27
- description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
28
- align="right"
29
- bgColor="transparent"
30
- context={context}
31
- />
32
- ),
33
- 'right white': (
34
- <Headline
35
- title="Своя кредитная карта"
36
- description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
37
- align="right"
38
- bgColor="bg-white"
39
- context={context}
40
- />
17
+ <Headline context={context} {...HEADLINE} align="right" bgColor="transparent" />
41
18
  ),
42
19
  };
@@ -0,0 +1,26 @@
1
+ {
2
+ "title": "Дополнительные документы",
3
+ "icon": "DocIcon",
4
+ "documents": [
5
+ {
6
+ "text": "Документ №1",
7
+ "href": "/documents/document1.doc",
8
+ "fileSize": "123КБ"
9
+ },
10
+ {
11
+ "text": "Документ №2",
12
+ "href": "/documents/document2.rtf",
13
+ "target": "_blank"
14
+ },
15
+ {
16
+ "text": "Документ №3",
17
+ "href": "/abc3/map.jpeg",
18
+ "fileSize": "2МБ"
19
+ },
20
+ {
21
+ "text": "Документ №4",
22
+ "href": "/abc/map.rar"
23
+ }
24
+ ],
25
+ "columnsMode": "double"
26
+ }
@@ -1,8 +1,8 @@
1
- import { LinkDocs } from './LinkDocs';
2
1
  import { context } from '../../setup-fixture';
2
+ import { LinkDocs } from './LinkDocs';
3
3
  import type { LinkDocsContent } from './LinkDocsContent';
4
4
 
5
- export const LinkDocsFixtureSetOne: LinkDocsContent = {
5
+ export const LINK_DOCS: LinkDocsContent = {
6
6
  title: 'Дополнительные документы',
7
7
  icon: 'DocIcon',
8
8
  documents: [
@@ -14,7 +14,7 @@ export const LinkDocsFixtureSetOne: LinkDocsContent = {
14
14
  { text: 'документ 6', href: '/abc6/abc.pdf' },
15
15
  { text: 'Text text text', href: '/abc7/yolo.png' },
16
16
  {
17
- text: 'Some more generic text, and even more, more text',
17
+ text: 'Some more generic text to stretch item, and even more, more text, and more generic text, and even more, more text, and even more',
18
18
  href: '/abc8/archive.zip',
19
19
  fileSize: '2.3МБ',
20
20
  },
@@ -27,25 +27,25 @@ export const LinkDocsFixtureSetOne: LinkDocsContent = {
27
27
  ],
28
28
  };
29
29
 
30
- export const LinkDocsFixtureSetTwo: LinkDocsContent = {
31
- ...LinkDocsFixtureSetOne,
30
+ export const LINK_DOCS_ONE_COLUMN: LinkDocsContent = {
31
+ ...LINK_DOCS,
32
32
  columnsMode: 'single',
33
33
  };
34
34
 
35
- export const LinkDocsFixtureSetThree: LinkDocsContent = {
36
- ...LinkDocsFixtureSetOne,
35
+ export const LINK_DOCS_ANOTHER_ICON: LinkDocsContent = {
36
+ ...LINK_DOCS,
37
37
  icon: 'GlassIcon',
38
38
  title: '',
39
39
  };
40
40
 
41
- export const LinkDocsFixtureSetFour: LinkDocsContent = {
42
- ...LinkDocsFixtureSetOne,
41
+ export const LINK_DOCS_NO_ICON: LinkDocsContent = {
42
+ ...LINK_DOCS,
43
43
  icon: undefined,
44
44
  };
45
45
 
46
46
  export default {
47
- 'default, 2 columns': <LinkDocs context={context} {...LinkDocsFixtureSetOne} />,
48
- 'one column': <LinkDocs context={context} {...LinkDocsFixtureSetTwo} />,
49
- 'another icon, no extensions': <LinkDocs context={context} {...LinkDocsFixtureSetThree} />,
50
- 'no icon': <LinkDocs context={context} {...LinkDocsFixtureSetFour} />,
47
+ 'two columns (default)': <LinkDocs context={context} {...LINK_DOCS} />,
48
+ 'one column': <LinkDocs context={context} {...LINK_DOCS_ONE_COLUMN} />,
49
+ 'another icon': <LinkDocs context={context} {...LINK_DOCS_ANOTHER_ICON} />,
50
+ 'no icon and title': <LinkDocs context={context} {...LINK_DOCS_NO_ICON} />,
51
51
  };
@@ -13,7 +13,7 @@ const titleAlignStyleMap: Record<AlignType, string> = {
13
13
 
14
14
  const titleMarginsStyleMap: Record<LinkColumnsMode, string> = {
15
15
  double: 'mb-8',
16
- single: '',
16
+ single: 'mb-[26px]',
17
17
  };
18
18
 
19
19
  const linkColumnsModeStyleMap: Record<LinkColumnsMode, string> = {
@@ -31,7 +31,7 @@ export const LinkDocs = JSX<LinkDocsProps>(
31
31
  <section className={`font-sans p-[50px] bg-white ${className}`}>
32
32
  {title && (
33
33
  <Title
34
- className={`font-medium m-0 ${titleMarginsStyleMap[columnsMode]} ${
34
+ className={`font-medium mt-0 ${titleMarginsStyleMap[columnsMode]} ${
35
35
  titleAlignStyleMap[align ?? 'center']
36
36
  }`}
37
37
  >
@@ -40,16 +40,17 @@ export const LinkDocs = JSX<LinkDocsProps>(
40
40
  )}
41
41
  <div className={`flex ${containerClasses}`} role="list">
42
42
  {documents?.length
43
- ? documents.map(({ text, fileSize, ...linkProps }) => (
43
+ ? documents.map(({ text, fileSize, ...linkProps }, i) => (
44
44
  <a
45
- className={`group flex items-center text-sm
46
- text-sm font-sans align-middle items-center text-primary-text no-underline group hover:text-primary-main
47
- ${columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : ''}`}
45
+ key={String(i)}
46
+ className={`group flex text-sm align-middle h-fit
47
+ text-primary-text no-underline hover:text-primary-main
48
+ ${columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : ''}`}
48
49
  role="listitem"
49
50
  {...linkProps}
50
51
  >
51
- {icon && <Icon className="mr-3.5" name={icon} width="24px" height="24px" />}
52
- <span>
52
+ {icon && <Icon className="mr-2.5" name={icon} width="24px" height="24px" />}
53
+ <span className="self-center">
53
54
  {text}
54
55
  <span className="text-secondary-text group-hover:text-primary-main">
55
56
  {linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize)}
@@ -3,4 +3,4 @@ import type { GalleryContent } from '../Gallery/GalleryContent';
3
3
  /**
4
4
  * @title Мини-галерея
5
5
  */
6
- export interface MiniGalleryContent extends GalleryContent {}
6
+ export type MiniGalleryContent = GalleryContent;
@@ -24,7 +24,4 @@ export const MobileBlocks = {
24
24
  ProductTile,
25
25
  TextBlock,
26
26
  Tile,
27
- // TODO StepsBlock,
28
- // TODO BenefitsBlock,
29
- // TODO ProductGallery
30
27
  };
@@ -1,7 +1,8 @@
1
1
  import { context } from '../../setup-fixture';
2
2
 
3
- import { PictureText } from './PictureText';
4
3
  import type { Picture } from '../../model/Picture';
4
+ import { PictureText } from './PictureText';
5
+ import type { PictureTextContent } from './PictureTextContent';
5
6
 
6
7
  const image: Picture = {
7
8
  src: 'legal-support-business.png',
@@ -13,24 +14,23 @@ const image: Picture = {
13
14
  alt: 'Варианты потребительского кредита',
14
15
  };
15
16
 
17
+ export const PICTURE_TEXT: PictureTextContent = {
18
+ title: 'Варианты потребительского кредита',
19
+ benefits: [
20
+ {
21
+ label: 'Кредит по одному документу',
22
+ description: 'До 300 тыс ₽ по упрощённой процедуре получения кредита',
23
+ icon: 'DocumentText',
24
+ },
25
+ {
26
+ label: 'Кредит на общих условиях',
27
+ description: 'До 5 млн ₽ на общих условиях получения кредита',
28
+ icon: 'DiscountShape',
29
+ },
30
+ ],
31
+ image,
32
+ };
33
+
16
34
  export default {
17
- default: (
18
- <PictureText
19
- context={context}
20
- title={'Варианты потребительского кредита'}
21
- benefits={[
22
- {
23
- label: 'Кредит по одному документу',
24
- description: 'До 300 тыс ₽ по упрощённой процедуре получения кредита',
25
- icon: 'DocumentText',
26
- },
27
- {
28
- label: 'Кредит на общих условиях',
29
- description: 'До 5 млн ₽ на общих условиях получения кредита',
30
- icon: 'DiscountShape',
31
- },
32
- ]}
33
- image={image}
34
- />
35
- ),
35
+ default: <PictureText context={context} {...PICTURE_TEXT} />,
36
36
  };
@@ -5,8 +5,6 @@ import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
5
5
  * @title Картинка с текстом
6
6
  */
7
7
  export interface PictureTextContent extends Pick<BaseTileCommonProps, 'title' | 'image'> {
8
- /**
9
- * @title Список преимуществ
10
- */
8
+ /** @title Список преимуществ */
11
9
  benefits?: Benefit[];
12
10
  }
@@ -17,12 +17,12 @@ export const Placeholder = JSX<PlaceholderProps>(({ className, context, title })
17
17
  );
18
18
  });
19
19
 
20
- const renderShimmer = (size: number = 3) =>
20
+ const renderShimmer = (size = 3) =>
21
21
  goldenSequence(100, size)
22
22
  .map((_) => Math.floor(_))
23
23
  .map(renderShimmerItem);
24
24
 
25
- const renderShimmerItem = (width: number = 100, index: number) => (
25
+ const renderShimmerItem = (width = 100, index: number) => (
26
26
  <div key={String(index)} style={{ width: `${width}%` }} className="h-4 mt-2 bg-secondary-light" />
27
27
  );
28
28
 
@@ -6,6 +6,7 @@ import type { Picture } from '../../model/Picture';
6
6
  const image: Picture = {
7
7
  src: 'money-1.png',
8
8
  format: 'webp',
9
+ alt: 'Потребительский кредит наличными',
9
10
  size: {
10
11
  width: 280,
11
12
  height: 280,
@@ -6,6 +6,7 @@ import { ProductBlockInner } from './ProductBlockInner';
6
6
  export interface ProductBlockProps extends ProductBlockInnerCommonProps, UniBlockProps {}
7
7
 
8
8
  export const ProductBlock = JSX<ProductBlockProps>(
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
10
  ({ titleSize, image, benefits, ...props } /* Get rid of image and benefits */) => {
10
11
  const { className } = props;
11
12
  return (
@@ -14,7 +14,9 @@ export const ProductBlock = JSX<ProductBlockProps>((props) => {
14
14
  const { handlerDecorator } = context;
15
15
  return (
16
16
  <section
17
- className={`font-sans bg-white pt-10 pl-[50px] pb-[50px] pr-[7.5rem] ${className || ''}`}
17
+ className={`font-sans bg-white pt-10 pl-[50px] pb-[50px] pr-[7.5rem] box-border min-h-[420px] ${
18
+ className || ''
19
+ }`}
18
20
  >
19
21
  {breadcrumbs?.length ? (
20
22
  <div className="text-xs mb-6">
@@ -2,7 +2,6 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { UniBlockProps } from '../../types';
3
3
  import { Icon } from '../../ui-kit/Icon/Icon';
4
4
  import { Img } from '../../ui-kit/Img';
5
- import { Title } from '../../ui-kit/Title/Title';
6
5
  import { BaseTile } from '../BaseTile/BaseTile';
7
6
  import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
8
7
  import type { ProductBlockInnerCommonProps } from './ProductBlockContent';
@@ -14,16 +13,14 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
14
13
  return (
15
14
  <div className={`flex grow justify-between items-stretch ${className || ''}`}>
16
15
  <div className={'flex flex-col'}>
17
- {title && (
18
- /* TODO Why <Title> is duplicated here? */
19
- <Title
20
- size={titleSize || 'XL'}
21
- className="font-medium m-0 mb-4 whitespace-pre-wrap max-w-[600px] text-primary-text"
22
- >
23
- {title}
24
- </Title>
25
- )}
26
- <BaseTile context={context} description={description} items={items} buttons={buttons}>
16
+ <BaseTile
17
+ context={context}
18
+ title={title}
19
+ titleSize={titleSize || 'XL'}
20
+ description={description}
21
+ items={items}
22
+ buttons={buttons}
23
+ >
27
24
  {benefits?.length ? (
28
25
  <div className="flex gap-6 mt-6 mb-3.5">{benefits.map(renderBenefit)}</div>
29
26
  ) : null}
@@ -46,7 +43,7 @@ function renderBenefit(benefit: Benefit, i: number) {
46
43
  height="24"
47
44
  />
48
45
  )}
49
- <div className="flex gap-1 flex-col h-full">
46
+ <div className="flex gap-1 flex-col h-full max-w-[149px]">
50
47
  <h4 className="font-medium text-primary-text text-xl m-0">{benefit.label}</h4>
51
48
  {benefit.description && (
52
49
  <div className="font-normal text-sm text-secondary-text">{benefit.description}</div>
@@ -10,7 +10,7 @@
10
10
  "image": {
11
11
  "format": "webp",
12
12
  "size": {
13
- "width": 300
13
+ "width": 280
14
14
  }
15
15
  },
16
16
  "description": "Описание",
@@ -7,17 +7,18 @@ const moneyImage: Picture = {
7
7
  src: 'money-1.png',
8
8
  format: 'webp',
9
9
  size: {
10
- width: 300,
11
- height: 300,
10
+ width: 280,
11
+ height: 280,
12
12
  },
13
+ alt: 'Варианты потребительского кредита',
13
14
  };
14
15
 
15
16
  const worker: Picture = {
16
17
  src: 'worker.png',
17
18
  format: 'webp',
18
19
  size: {
19
- width: 300,
20
- height: 300,
20
+ width: 280,
21
+ height: 280,
21
22
  },
22
23
  };
23
24
 
@@ -25,8 +26,8 @@ const creditCard: Picture = {
25
26
  src: 'credit-card-1.png',
26
27
  format: 'webp',
27
28
  size: {
28
- width: 300,
29
- height: 300,
29
+ width: 280,
30
+ height: 280,
30
31
  },
31
32
  };
32
33
 
@@ -41,8 +42,6 @@ export default (
41
42
  },
42
43
  productBlock: {
43
44
  title: 'Ставка от 12,5% годовых на срок до 5 лет!»',
44
- description:
45
- 'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
46
45
  items: [
47
46
  'Потребительский кредит по специальной процентной ставке',
48
47
  'Получите деньги без залога и поручительства',
@@ -66,8 +65,6 @@ export default (
66
65
  },
67
66
  productBlock: {
68
67
  title: 'Ставка от 12,5% годовых на срок до 3 лет!»',
69
- description:
70
- 'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
71
68
  items: [
72
69
  'Потребительский кредит по специальной процентной ставке',
73
70
  'Получите деньги без залога и поручительства',
@@ -91,8 +88,6 @@ export default (
91
88
  },
92
89
  productBlock: {
93
90
  title: 'Дополнительные бонусные баллы за покупки!»',
94
- description:
95
- 'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
96
91
  items: [
97
92
  'Потребительский кредит по специальной процентной ставке',
98
93
  'Получите деньги без залога и поручительства',
@@ -116,7 +111,6 @@ export default (
116
111
  },
117
112
  productBlock: {
118
113
  title: 'Карты Unionpay»',
119
- description: 'Кэшбэк до 20% у партнеров',
120
114
  items: [
121
115
  'Потребительский кредит по специальной процентной ставке',
122
116
  'Получите деньги без залога и поручительства',
@@ -22,7 +22,7 @@ export const ProductGallery = JSX<ProductGalleryProps>(
22
22
  {galleryBlocks.map((_, i) => renderProductBlock(_, i, context))}
23
23
  </div>
24
24
 
25
- <div className={`border-t border-solid border-main-divider flex`}>
25
+ <div className="flex">
26
26
  {galleryNav.map((slide, i) =>
27
27
  renderNavButton({
28
28
  slide,
@@ -61,17 +61,19 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick, duration }) {
61
61
  type="button"
62
62
  key={String(i)}
63
63
  onClick={onClick}
64
- className={`group relative overflow-hidden border-0 bg-inherit cursor-pointer text-left px-0 py-4 grow basis-0`}
64
+ className={`font-sans group relative overflow-hidden border-0 bg-inherit cursor-pointer text-left px-0 pt-4 pb-5 grow basis-0`}
65
65
  >
66
66
  <div className="border-0 border-r border-solid border-main-divider px-6">
67
- <div className={`text-sm font-medium group-hover:text-primary-text ${btnTitleClassName}`}>
67
+ <div
68
+ className={`text-sm font-medium pb-1 group-hover:text-primary-text ${btnTitleClassName}`}
69
+ >
68
70
  {slide?.title}
69
71
  </div>
70
- <div className="text-xs text-secondary-text">{slide.desc}</div>
72
+ <div className="text-xs text-secondary-text pb-[2px]">{slide.desc}</div>
71
73
  </div>
72
74
  <div
73
75
  className={`absolute bottom-0 left-0 w-full h-[3px] bg-primary-main -translate-x-full ${progressBarClassName}`}
74
- style={{ animationDuration: `${duration}s` }}
76
+ style={{ animationDuration: `${duration}s`, animationFillMode: 'forwards' }}
75
77
  ></div>
76
78
  </button>
77
79
  );
@@ -1,7 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { PromoTileContent } from './PromoTileContent';
3
- import { Tile } from '../Tile/Tile';
4
2
  import type { UniBlockProps } from '../../types';
3
+ import { Tile } from '../Tile/Tile';
4
+ import type { PromoTileContent } from './PromoTileContent';
5
5
 
6
6
  export interface PromoTileProps extends PromoTileContent, UniBlockProps {}
7
7
 
@@ -23,7 +23,7 @@ export const PromoTile = JSX<PromoTileProps>(
23
23
  buttons={buttons}
24
24
  version={version}
25
25
  >
26
- <div>
26
+ <div className="mt-1.5">
27
27
  {date && <div className="text-sm mb-2">{formatDate(date)}</div>}
28
28
  <div className="text-base">{description}</div>
29
29
  </div>