@redneckz/wildless-cms-uni-blocks 0.2.89 → 0.2.93

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 (262) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +119 -57
  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 -20
  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/ContentPageHead.d.ts +1 -1
  26. package/dist/components/CreditCalculator/CreditCalculator.js +1 -1
  27. package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  28. package/dist/components/Footer/Contacts.js +1 -1
  29. package/dist/components/Footer/Contacts.js.map +1 -1
  30. package/dist/components/Footer/FooterContent.d.ts +1 -2
  31. package/dist/components/Footer/HorizontalNavigation.js +1 -1
  32. package/dist/components/Footer/SocialMedia.js +1 -2
  33. package/dist/components/Footer/SocialMedia.js.map +1 -1
  34. package/dist/components/Gallery/GalleryInner.js +2 -2
  35. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  36. package/dist/components/LinkDocs/LinkDocs.js +5 -5
  37. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  38. package/dist/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
  39. package/dist/components/MobileBlocks.js +0 -3
  40. package/dist/components/MobileBlocks.js.map +1 -1
  41. package/dist/components/PictureText/PictureText.js +1 -1
  42. package/dist/components/PictureText/PictureText.js.map +1 -1
  43. package/dist/components/PictureText/PictureTextContent.d.ts +2 -4
  44. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  45. package/dist/components/ProductBlock/ProductBlock.mobile.js +3 -1
  46. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  47. package/dist/components/ProductBlock/ProductBlockInner.js +1 -4
  48. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  49. package/dist/components/ProductGallery/ProductGallery.js +2 -2
  50. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  51. package/dist/components/PromoTile/PromoTile.d.ts +1 -1
  52. package/dist/components/PromoTile/PromoTile.js +1 -1
  53. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  54. package/dist/components/TariffsTable/TariffsTable.d.ts +5 -0
  55. package/dist/components/TariffsTable/TariffsTable.js +25 -0
  56. package/dist/components/TariffsTable/TariffsTable.js.map +1 -0
  57. package/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -0
  58. package/dist/components/TariffsTable/TariffsTableCell.js +18 -0
  59. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -0
  60. package/dist/components/TariffsTable/TariffsTableContent.d.ts +55 -0
  61. package/dist/components/TariffsTable/TariffsTableContent.js +2 -0
  62. package/dist/components/TariffsTable/TariffsTableContent.js.map +1 -0
  63. package/dist/components/TariffsTable/TariffsTableRow.d.ts +8 -0
  64. package/dist/components/TariffsTable/TariffsTableRow.js +13 -0
  65. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -0
  66. package/dist/components/TariffsTable/constants.d.ts +4 -0
  67. package/dist/components/TariffsTable/constants.js +7 -0
  68. package/dist/components/TariffsTable/constants.js.map +1 -0
  69. package/dist/components/TextBlock/TextBlock.d.ts +1 -1
  70. package/dist/components/TextBlock/TextBlock.js +1 -1
  71. package/dist/components/TextBlock/TextBlock.js.map +1 -1
  72. package/dist/components/TextBlock/TextBlockContent.d.ts +1 -2
  73. package/dist/components/Tile/Tile.d.ts +1 -1
  74. package/dist/components/Tile/Tile.js +14 -2
  75. package/dist/components/Tile/Tile.js.map +1 -1
  76. package/dist/content-page-repository/ContentPageRepository.js +1 -0
  77. package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  78. package/dist/hooks/useComparisonTableScroll.d.ts +12 -0
  79. package/dist/hooks/useComparisonTableScroll.js +12 -0
  80. package/dist/hooks/useComparisonTableScroll.js.map +1 -0
  81. package/dist/hooks/useLink.js +1 -1
  82. package/dist/hooks/useLink.js.map +1 -1
  83. package/dist/model/TableVersion.d.ts +1 -0
  84. package/dist/model/TableVersion.js +2 -0
  85. package/dist/model/TableVersion.js.map +1 -0
  86. package/dist/ui-kit/BlockItem/BlockItem.d.ts +1 -9
  87. package/dist/ui-kit/BlockItem/BlockItem.js +5 -5
  88. package/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
  89. package/dist/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
  90. package/dist/ui-kit/BlockItem/BlockItemProps.js +2 -0
  91. package/dist/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
  92. package/dist/ui-kit/Icon/IconProps.d.ts +57 -25
  93. package/dist/ui-kit/Icon/IconProps.js +39 -23
  94. package/dist/ui-kit/Icon/IconProps.js.map +1 -1
  95. package/dist/ui-kit/InputRange/InputRange.js +1 -1
  96. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  97. package/dist/ui-kit/SearchBar.js +2 -1
  98. package/dist/ui-kit/SearchBar.js.map +1 -1
  99. package/lib/api/LikeAPI.js +1 -0
  100. package/lib/api/LikeAPI.js.map +1 -1
  101. package/lib/common.css +1 -1
  102. package/lib/components/Accordion/Accordion.fixture.d.ts +1 -4
  103. package/lib/components/Accordion/AccordionContent.d.ts +38 -14
  104. package/lib/components/Accordion/AccordionItem.js +8 -6
  105. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  106. package/lib/components/BaseTile/BaseTile.js +1 -1
  107. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  108. package/lib/components/BlockContent.d.ts +2 -1
  109. package/lib/components/Blocks.d.ts +1 -0
  110. package/lib/components/Blocks.js +2 -0
  111. package/lib/components/Blocks.js.map +1 -1
  112. package/lib/components/ComparisonTable/ComparisonTable.js +12 -10
  113. package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  114. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +0 -20
  115. package/lib/components/ComparisonTable/HeaderCell.js +1 -1
  116. package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  117. package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
  118. package/lib/components/ComparisonTable/TableCarouselContainer.js +5 -2
  119. package/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
  120. package/lib/components/ComparisonTable/TableRow.js +2 -2
  121. package/lib/components/ComparisonTable/TableRow.js.map +1 -1
  122. package/lib/components/ContentPage/ContentPageHead.d.ts +1 -1
  123. package/lib/components/CreditCalculator/CreditCalculator.js +1 -1
  124. package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  125. package/lib/components/Footer/Contacts.js +1 -1
  126. package/lib/components/Footer/Contacts.js.map +1 -1
  127. package/lib/components/Footer/FooterContent.d.ts +1 -2
  128. package/lib/components/Footer/HorizontalNavigation.js +1 -1
  129. package/lib/components/Footer/SocialMedia.js +1 -2
  130. package/lib/components/Footer/SocialMedia.js.map +1 -1
  131. package/lib/components/Gallery/GalleryInner.js +2 -2
  132. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  133. package/lib/components/Headline/Headline.fixture.d.ts +3 -2
  134. package/lib/components/LinkDocs/LinkDocs.fixture.d.ts +6 -6
  135. package/lib/components/LinkDocs/LinkDocs.js +5 -5
  136. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  137. package/lib/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
  138. package/lib/components/MobileBlocks.js +0 -3
  139. package/lib/components/MobileBlocks.js.map +1 -1
  140. package/lib/components/PictureText/PictureText.fixture.d.ts +2 -0
  141. package/lib/components/PictureText/PictureText.js +1 -1
  142. package/lib/components/PictureText/PictureText.js.map +1 -1
  143. package/lib/components/PictureText/PictureTextContent.d.ts +2 -4
  144. package/lib/components/Placeholder/Placeholder.js.map +1 -1
  145. package/lib/components/ProductBlock/ProductBlock.mobile.js +3 -1
  146. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  147. package/lib/components/ProductBlock/ProductBlockInner.js +1 -4
  148. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  149. package/lib/components/ProductGallery/ProductGallery.js +2 -2
  150. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  151. package/lib/components/PromoTile/PromoTile.d.ts +1 -1
  152. package/lib/components/PromoTile/PromoTile.js +1 -1
  153. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  154. package/lib/components/TariffsTable/TariffsTable.d.ts +5 -0
  155. package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +7 -0
  156. package/lib/components/TariffsTable/TariffsTable.js +23 -0
  157. package/lib/components/TariffsTable/TariffsTable.js.map +1 -0
  158. package/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -0
  159. package/lib/components/TariffsTable/TariffsTableCell.js +16 -0
  160. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -0
  161. package/lib/components/TariffsTable/TariffsTableContent.d.ts +55 -0
  162. package/lib/components/TariffsTable/TariffsTableContent.js +2 -0
  163. package/lib/components/TariffsTable/TariffsTableContent.js.map +1 -0
  164. package/lib/components/TariffsTable/TariffsTableRow.d.ts +8 -0
  165. package/lib/components/TariffsTable/TariffsTableRow.js +11 -0
  166. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -0
  167. package/lib/components/TariffsTable/constants.d.ts +4 -0
  168. package/lib/components/TariffsTable/constants.js +5 -0
  169. package/lib/components/TariffsTable/constants.js.map +1 -0
  170. package/lib/components/TextBlock/TextBlock.d.ts +1 -1
  171. package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
  172. package/lib/components/TextBlock/TextBlock.js +1 -1
  173. package/lib/components/TextBlock/TextBlock.js.map +1 -1
  174. package/lib/components/TextBlock/TextBlockContent.d.ts +1 -2
  175. package/lib/components/Tile/Tile.d.ts +1 -1
  176. package/lib/components/Tile/Tile.js +14 -2
  177. package/lib/components/Tile/Tile.js.map +1 -1
  178. package/lib/content-page-repository/ContentPageRepository.js +1 -0
  179. package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  180. package/lib/hooks/useComparisonTableScroll.d.ts +12 -0
  181. package/lib/hooks/useComparisonTableScroll.js +9 -0
  182. package/lib/hooks/useComparisonTableScroll.js.map +1 -0
  183. package/lib/hooks/useLink.js +1 -1
  184. package/lib/hooks/useLink.js.map +1 -1
  185. package/lib/model/TableVersion.d.ts +1 -0
  186. package/lib/model/TableVersion.js +2 -0
  187. package/lib/model/TableVersion.js.map +1 -0
  188. package/lib/ui-kit/BlockItem/BlockItem.d.ts +1 -9
  189. package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +6 -1
  190. package/lib/ui-kit/BlockItem/BlockItem.js +5 -5
  191. package/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
  192. package/lib/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
  193. package/lib/ui-kit/BlockItem/BlockItemProps.js +2 -0
  194. package/lib/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
  195. package/lib/ui-kit/Icon/IconProps.d.ts +57 -25
  196. package/lib/ui-kit/Icon/IconProps.js +39 -23
  197. package/lib/ui-kit/Icon/IconProps.js.map +1 -1
  198. package/lib/ui-kit/InputRange/InputRange.js +1 -1
  199. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  200. package/lib/ui-kit/SearchBar.js +2 -1
  201. package/lib/ui-kit/SearchBar.js.map +1 -1
  202. package/package.json +19 -9
  203. package/src/api/LikeAPI.ts +1 -0
  204. package/src/components/Accordion/Accordion.example.json +18 -42
  205. package/src/components/Accordion/Accordion.fixture.tsx +29 -119
  206. package/src/components/Accordion/AccordionContent.ts +47 -18
  207. package/src/components/Accordion/AccordionItem.tsx +13 -9
  208. package/src/components/BaseTile/BaseTile.tsx +6 -3
  209. package/src/components/BlockContent.ts +2 -0
  210. package/src/components/Blocks.ts +2 -0
  211. package/src/components/ComparisonTable/ComparisonTable.tsx +17 -14
  212. package/src/components/ComparisonTable/ComparisonTableContent.ts +0 -21
  213. package/src/components/ComparisonTable/HeaderCell.tsx +3 -3
  214. package/src/components/ComparisonTable/TableCarouselContainer.tsx +11 -4
  215. package/src/components/ComparisonTable/TableRow.tsx +2 -2
  216. package/src/components/ContentPage/ContentPage.fixture.tsx +3 -3
  217. package/src/components/ContentPage/ContentPage.page.json +425 -3
  218. package/src/components/ContentPage/ContentPageHead.tsx +1 -1
  219. package/src/components/CreditCalculator/CreditCalculator.tsx +1 -1
  220. package/src/components/Footer/Contacts.tsx +1 -1
  221. package/src/components/Footer/FooterContent.ts +1 -1
  222. package/src/components/Footer/HorizontalNavigation.tsx +1 -1
  223. package/src/components/Footer/SocialMedia.tsx +5 -6
  224. package/src/components/Gallery/GalleryInner.tsx +2 -1
  225. package/src/components/Headline/Headline.fixture.tsx +11 -34
  226. package/src/components/LinkDocs/LinkDocs.fixture.tsx +14 -14
  227. package/src/components/LinkDocs/LinkDocs.tsx +8 -7
  228. package/src/components/MiniGallery/MiniGalleryContent.ts +1 -1
  229. package/src/components/MobileBlocks.ts +0 -3
  230. package/src/components/PictureText/PictureText.fixture.tsx +20 -20
  231. package/src/components/PictureText/PictureText.tsx +3 -1
  232. package/src/components/PictureText/PictureTextContent.ts +2 -5
  233. package/src/components/Placeholder/Placeholder.tsx +2 -2
  234. package/src/components/ProductBlock/ProductBlock.mobile.tsx +1 -0
  235. package/src/components/ProductBlock/ProductBlockInner.tsx +8 -11
  236. package/src/components/ProductGallery/ProductGallery.example.json +1 -1
  237. package/src/components/ProductGallery/ProductGallery.fixture.tsx +7 -13
  238. package/src/components/ProductGallery/ProductGallery.tsx +7 -5
  239. package/src/components/PromoTile/PromoTile.tsx +3 -3
  240. package/src/components/TariffsTable/TariffsTable.example.json +87 -0
  241. package/src/components/TariffsTable/TariffsTable.fixture.tsx +195 -0
  242. package/src/components/TariffsTable/TariffsTable.tsx +74 -0
  243. package/src/components/TariffsTable/TariffsTableCell.tsx +64 -0
  244. package/src/components/TariffsTable/TariffsTableContent.ts +61 -0
  245. package/src/components/TariffsTable/TariffsTableRow.tsx +46 -0
  246. package/src/components/TariffsTable/constants.ts +4 -0
  247. package/src/components/TextBlock/TextBlock.example.json +9 -2
  248. package/src/components/TextBlock/TextBlock.fixture.tsx +20 -64
  249. package/src/components/TextBlock/TextBlock.tsx +2 -2
  250. package/src/components/TextBlock/TextBlockContent.ts +1 -2
  251. package/src/components/Tile/Tile.example.json +5 -2
  252. package/src/components/Tile/Tile.tsx +16 -5
  253. package/src/content-page-repository/ContentPageRepository.ts +1 -0
  254. package/src/hooks/useComparisonTableScroll.ts +21 -0
  255. package/src/hooks/useLink.ts +1 -1
  256. package/src/model/TableVersion.ts +1 -0
  257. package/src/ui-kit/BlockItem/BlockItem.fixture.tsx +8 -1
  258. package/src/ui-kit/BlockItem/BlockItem.tsx +7 -18
  259. package/src/ui-kit/BlockItem/BlockItemProps.ts +22 -0
  260. package/src/ui-kit/Icon/IconProps.ts +34 -2
  261. package/src/ui-kit/InputRange/InputRange.tsx +2 -2
  262. package/src/ui-kit/SearchBar.tsx +16 -6
@@ -5,22 +5,14 @@
5
5
  "label": "Accordion label 1",
6
6
  "blocks": [
7
7
  {
8
- "type": "TextBlock",
9
- "data": {
10
- "title": "Title",
11
- "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
12
- "blockVersion": "secondary-light",
13
- "iconVersion": "small"
14
- }
8
+ "accordionBlockType": "TextBlock",
9
+ "title": "Текстовый блок",
10
+ "description": "Описание текстового блока"
15
11
  },
16
12
  {
17
- "type": "TextBlock",
18
- "data": {
19
- "title": "Title",
20
- "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
21
- "blockVersion": "secondary-light",
22
- "iconVersion": "small"
23
- }
13
+ "accordionBlockType": "TextBlock",
14
+ "title": "Текстовый блок №2",
15
+ "description": "Описание текстового блока №2"
24
16
  }
25
17
  ]
26
18
  },
@@ -28,22 +20,14 @@
28
20
  "label": "Accordion label 2",
29
21
  "blocks": [
30
22
  {
31
- "type": "TextBlock",
32
- "data": {
33
- "title": "Title",
34
- "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
35
- "blockVersion": "secondary-light",
36
- "iconVersion": "small"
37
- }
23
+ "accordionBlockType": "TextBlock",
24
+ "title": "Текстовый блок",
25
+ "description": "Описание текстового блока"
38
26
  },
39
27
  {
40
- "type": "TextBlock",
41
- "data": {
42
- "title": "Title",
43
- "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
44
- "blockVersion": "secondary-light",
45
- "iconVersion": "small"
46
- }
28
+ "accordionBlockType": "TextBlock",
29
+ "title": "Текстовый блок №2",
30
+ "description": "Описание текстового блока №2"
47
31
  }
48
32
  ]
49
33
  },
@@ -51,22 +35,14 @@
51
35
  "label": "Accordion label 3",
52
36
  "blocks": [
53
37
  {
54
- "type": "TextBlock",
55
- "data": {
56
- "title": "Title",
57
- "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
58
- "blockVersion": "secondary-light",
59
- "iconVersion": "small"
60
- }
38
+ "accordionBlockType": "TextBlock",
39
+ "title": "Текстовый блок",
40
+ "description": "Описание текстового блока"
61
41
  },
62
42
  {
63
- "type": "TextBlock",
64
- "data": {
65
- "title": "Title",
66
- "description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
67
- "blockVersion": "secondary-light",
68
- "iconVersion": "small"
69
- }
43
+ "accordionBlockType": "TextBlock",
44
+ "title": "Текстовый блок №2",
45
+ "description": "Описание текстового блока №2"
70
46
  }
71
47
  ]
72
48
  }
@@ -1,52 +1,35 @@
1
1
  import { context } from '../../setup-fixture';
2
+ import { HEADLINE } from '../Headline/Headline.fixture';
3
+ import { LINK_DOCS } from '../LinkDocs/LinkDocs.fixture';
4
+ import { PICTURE_TEXT } from '../PictureText/PictureText.fixture';
5
+ import { TEXT_BLOCK } from '../TextBlock/TextBlock.fixture';
2
6
  import type { AccordionProps } from './Accordion';
3
- import type { HeadlineProps } from '../Headline/Headline';
4
- import type { PictureTextContent } from '../PictureText/PictureTextContent';
5
- import type { TextBlockContent } from '../TextBlock/TextBlockContent';
6
-
7
7
  import { Accordion } from './Accordion';
8
- import {
9
- LinkDocsFixtureSetOne,
10
- LinkDocsFixtureSetThree,
11
- LinkDocsFixtureSetTwo,
12
- } from '../LinkDocs/LinkDocs.fixture';
8
+ import type {
9
+ HeadlineAccordionBlock,
10
+ LinkDocsAccordionBlock,
11
+ PictureTextAccordionBlock,
12
+ TextBlockAccordionBlock,
13
+ } from './AccordionContent';
13
14
 
14
- const TEXT_BLOCK: TextBlockContent = {
15
- description:
16
- 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?',
15
+ const TEXT_BLOCK_ACCORDION_BLOCK: TextBlockAccordionBlock = {
16
+ accordionBlockType: 'TextBlock',
17
+ ...TEXT_BLOCK,
17
18
  };
18
19
 
19
- const HEADLINE: HeadlineProps = {
20
- context,
21
- title: 'Своя кредитная карта',
22
- description: 'Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах.',
23
- align: 'left',
24
- bgColor: 'bg-white',
20
+ const HEADLINE_ACCORDION_BLOCK: HeadlineAccordionBlock = {
21
+ accordionBlockType: 'Headline',
22
+ ...HEADLINE,
25
23
  };
26
24
 
27
- const PICTURE_TEXT: PictureTextContent = {
28
- title: 'Варианты потребительского кредита',
29
- benefits: [
30
- {
31
- label: 'Кредит по одному документу',
32
- description: 'До 300 тыс ₽ по упрощённой процедуре получения кредита',
33
- icon: 'DocumentText',
34
- },
35
- {
36
- label: 'Кредит на общих условиях',
37
- description: 'До 5 млн ₽ на общих условиях получения кредита',
38
- icon: 'DiscountShape',
39
- },
40
- ],
41
- image: {
42
- src: 'legal-support-business.png',
43
- alt: 'Варианты потребительского кредита',
44
- format: 'webp',
45
- size: {
46
- width: 200,
47
- height: 200,
48
- },
49
- },
25
+ const PICTURE_TEXT_ACCORDION_BLOCK: PictureTextAccordionBlock = {
26
+ accordionBlockType: 'PictureText',
27
+ ...PICTURE_TEXT,
28
+ };
29
+
30
+ const LINK_DOCS_ACCORDION_BLOCK: LinkDocsAccordionBlock = {
31
+ accordionBlockType: 'LinkDocs',
32
+ ...LINK_DOCS,
50
33
  };
51
34
 
52
35
  const propsTextBlock: AccordionProps = {
@@ -55,94 +38,21 @@ const propsTextBlock: AccordionProps = {
55
38
  accordionItems: [
56
39
  {
57
40
  label: 'Accordion label 1',
58
- blocks: [
59
- {
60
- type: 'TextBlock',
61
- data: TEXT_BLOCK,
62
- },
63
- {
64
- type: 'TextBlock',
65
- data: TEXT_BLOCK,
66
- },
67
- ],
41
+ blocks: [TEXT_BLOCK_ACCORDION_BLOCK, TEXT_BLOCK_ACCORDION_BLOCK],
68
42
  },
69
43
  {
70
44
  label: 'Accordion label 2',
71
- blocks: [
72
- {
73
- type: 'TextBlock',
74
- data: TEXT_BLOCK,
75
- },
76
- {
77
- type: 'TextBlock',
78
- data: TEXT_BLOCK,
79
- },
80
- ],
45
+ blocks: [PICTURE_TEXT_ACCORDION_BLOCK],
81
46
  },
82
47
  {
83
48
  label: 'Accordion label 3',
84
- blocks: [
85
- {
86
- type: 'PictureText',
87
- data: PICTURE_TEXT,
88
- },
89
- {
90
- type: 'PictureText',
91
- data: PICTURE_TEXT,
92
- },
93
- ],
49
+ blocks: [HEADLINE_ACCORDION_BLOCK],
94
50
  },
95
51
  {
96
52
  label: 'Accordion label 4',
97
- blocks: [
98
- {
99
- type: 'Headline',
100
- data: HEADLINE,
101
- },
102
- {
103
- type: 'Headline',
104
- data: HEADLINE,
105
- },
106
- ],
53
+ blocks: [LINK_DOCS_ACCORDION_BLOCK],
107
54
  },
108
55
  ],
109
56
  };
110
57
 
111
- const propsLinkDocs: AccordionProps = {
112
- title: 'Accordion title',
113
- context,
114
- accordionItems: [
115
- {
116
- label: 'Список документов в 2 колонки',
117
- blocks: [
118
- {
119
- type: 'LinkDocs',
120
- data: { ...LinkDocsFixtureSetOne, title: '' },
121
- },
122
- ],
123
- },
124
- {
125
- label: 'Список документов в одну колонку',
126
- blocks: [
127
- {
128
- type: 'LinkDocs',
129
- data: { ...LinkDocsFixtureSetTwo, title: '' },
130
- },
131
- ],
132
- },
133
- {
134
- label: 'Немного кастомизированный список',
135
- blocks: [
136
- {
137
- type: 'LinkDocs',
138
- data: LinkDocsFixtureSetThree,
139
- },
140
- ],
141
- },
142
- ],
143
- };
144
-
145
- export default {
146
- 'with text block': <Accordion {...propsTextBlock} />,
147
- 'with link docs block': <Accordion {...propsLinkDocs} />,
148
- };
58
+ export default <Accordion {...propsTextBlock} />;
@@ -2,41 +2,70 @@ import type { HeadlineContent } from '../Headline/HeadlineContent';
2
2
  import type { LinkDocsContent } from '../LinkDocs/LinkDocsContent';
3
3
  import type { PictureTextContent } from '../PictureText/PictureTextContent';
4
4
  import type { TextBlockContent } from '../TextBlock/TextBlockContent';
5
- import AccordionBlocks from './AccordionBlocks';
6
5
 
7
6
  /**
8
- * @hidden
9
- * @title Содержимое блока
7
+ * @title Тип блока
10
8
  */
11
- export type AccordionData =
12
- | HeadlineContent
13
- | LinkDocsContent
14
- | TextBlockContent
15
- | PictureTextContent;
9
+ export type AccordionTypeBlock = 'Headline' | 'LinkDocs' | 'TextBlock' | 'PictureText';
16
10
 
17
11
  /**
18
- * @hidden
19
- * @title Тип блока
20
- * @enumNames ["Заголовок", "Блок документов", Текстовый блок", "Картинка с текстом"]
12
+ * @title Заголовок
21
13
  */
22
- export type AccordionTypeBlock = keyof typeof AccordionBlocks;
14
+ export interface HeadlineAccordionBlock extends HeadlineContent {
15
+ /** @default Headline */
16
+ accordionBlockType: AccordionTypeBlock;
17
+ }
23
18
 
24
19
  /**
25
- * Блок
20
+ * @title Список документов
26
21
  */
27
- export interface AccordionBlock {
28
- type?: AccordionTypeBlock;
29
- data?: AccordionData;
22
+ export interface LinkDocsAccordionBlock extends LinkDocsContent {
23
+ /** @default LinkDocs */
24
+ accordionBlockType: AccordionTypeBlock;
30
25
  }
31
26
 
27
+ /**
28
+ * @title Текстовый блок
29
+ */
30
+ export interface TextBlockAccordionBlock extends TextBlockContent {
31
+ /** @default TextBlock */
32
+ accordionBlockType: AccordionTypeBlock;
33
+ }
34
+
35
+ /**
36
+ * @title Картинка с текстом
37
+ */
38
+ export interface PictureTextAccordionBlock extends PictureTextContent {
39
+ /** @default PictureText */
40
+ accordionBlockType: AccordionTypeBlock;
41
+ }
42
+
43
+ /**
44
+ * @title Выберите блок
45
+ */
46
+ export type EmptyOption = null;
47
+
48
+ /**
49
+ * @title Содержимое аккордеона
50
+ */
51
+ export type AccordionBlockProps =
52
+ | EmptyOption
53
+ | HeadlineAccordionBlock
54
+ | LinkDocsAccordionBlock
55
+ | TextBlockAccordionBlock
56
+ | PictureTextAccordionBlock;
57
+
32
58
  /**
33
59
  * @title Элемент списка
34
60
  */
35
61
  export interface AccordionItemCommonProps {
36
- /** @title Название */
62
+ /**
63
+ * @title Название
64
+ * @default Список
65
+ */
37
66
  label?: string;
38
67
  /** @title Блоки */
39
- blocks?: AccordionBlock[];
68
+ blocks?: AccordionBlockProps[];
40
69
  }
41
70
 
42
71
  /**
@@ -4,7 +4,7 @@ import { Icon } from '../../ui-kit/Icon/Icon';
4
4
  import type { JSXBlock } from '../ContentPage/ContentPage';
5
5
  import { ContentPageContext } from '../ContentPage/ContentPageContext';
6
6
  import AccordionBlocks from './AccordionBlocks';
7
- import type { AccordionBlock, AccordionItemCommonProps } from './AccordionContent';
7
+ import type { AccordionBlockProps, AccordionItemCommonProps } from './AccordionContent';
8
8
 
9
9
  export interface AccordionItemProps extends AccordionItemCommonProps, UniBlockProps {}
10
10
 
@@ -13,8 +13,11 @@ export const AccordionItem = JSX<AccordionItemProps>(({ label, blocks, context }
13
13
  const hasContent = blocks?.length;
14
14
  const icon = isActive ? 'MinusIcon' : 'PlusIcon';
15
15
 
16
- const handleToggle = (e) => {
17
- if (!hasContent) return null;
16
+ const handleToggle = (e: MouseEvent) => {
17
+ if (!hasContent) {
18
+ return;
19
+ }
20
+
18
21
  setIsActive(!isActive);
19
22
  const contentBlock = getContentBlock(e);
20
23
  contentBlock.style.maxHeight = contentBlock.style.maxHeight
@@ -51,18 +54,19 @@ export const AccordionItem = JSX<AccordionItemProps>(({ label, blocks, context }
51
54
  );
52
55
  });
53
56
 
54
- const renderBlock = (block: AccordionBlock, i: number, context: ContentPageContext) => {
55
- if (!block.type || !block.data || !AccordionBlocks.hasOwnProperty(block.type)) {
57
+ const renderBlock = (block: AccordionBlockProps, i: number, context: ContentPageContext) => {
58
+ const type = block?.accordionBlockType;
59
+ if (!type || !(type in AccordionBlocks)) {
56
60
  return null;
57
61
  }
58
62
 
59
- const AccordionBlock: JSXBlock = AccordionBlocks[block.type];
63
+ const AccordionBlock: JSXBlock = AccordionBlocks[type];
60
64
  return (
61
65
  <div className="mb-5 last:mb-0" key={`block_${i}`}>
62
- <AccordionBlock context={context} {...block.data} />
66
+ <AccordionBlock context={context} {...block} />
63
67
  </div>
64
68
  );
65
69
  };
66
70
 
67
- const getContentBlock = (e) =>
68
- e.target.tagName === 'BUTTON' ? e.target.nextSibling : e.target.parentNode.nextSibling;
71
+ const getContentBlock = ({ target }) =>
72
+ target.tagName === 'BUTTON' ? target.nextSibling : target.parentNode.nextSibling;
@@ -44,11 +44,14 @@ export const BaseTile = JSX<BaseTileProps>(
44
44
  return (
45
45
  <div className={`font-sans flex flex-col grow h-full ${alignBlock[align]}`}>
46
46
  {title && (
47
- <Title size={titleSize || getTitleSizeByClassName(className)} className={TITLE_CLASSES}>
47
+ <Title
48
+ size={titleSize || getTitleSizeByClassName(className)}
49
+ className={`${TITLE_CLASSES} ${version === 'primary' ? 'text-primary-text' : ''}`}
50
+ >
48
51
  {title}
49
52
  </Title>
50
53
  )}
51
- <div className="flex grow justify-between">
54
+ <div className="flex grow justify-between w-full">
52
55
  <div className={`flex flex-col justify-between ${alignBlock[align]}`}>
53
56
  <div>
54
57
  {description ? (
@@ -74,7 +77,7 @@ export const BaseTile = JSX<BaseTileProps>(
74
77
  },
75
78
  );
76
79
 
77
- function getTitleSizeByClassName(className: string = '') {
80
+ function getTitleSizeByClassName(className = '') {
78
81
  const colSpan = getColSpan(className);
79
82
  if (colSpan <= 4) {
80
83
  return 'S';
@@ -15,6 +15,7 @@ import type { PromoTileContent } from './PromoTile/PromoTileContent';
15
15
  import type { StepsBlockContent } from './StepsBlock/StepsBlockContent';
16
16
  import type { TextBlockContent } from './TextBlock/TextBlockContent';
17
17
  import type { TileContent } from './Tile/TileContent';
18
+ import { TariffsTableContent } from './TariffsTable/TariffsTableContent';
18
19
 
19
20
  /**
20
21
  * @hidden
@@ -35,5 +36,6 @@ export type BlockContent =
35
36
  | ProductTileContent
36
37
  | PromoTileContent
37
38
  | StepsBlockContent
39
+ | TariffsTableContent
38
40
  | TextBlockContent
39
41
  | TileContent;
@@ -17,6 +17,7 @@ import { ProductGallery } from './ProductGallery/ProductGallery';
17
17
  import { ProductTile } from './ProductTile/ProductTile';
18
18
  import { PromoTile } from './PromoTile/PromoTile';
19
19
  import { StepsBlock } from './StepsBlock/StepsBlock';
20
+ import { TariffsTable } from './TariffsTable/TariffsTable';
20
21
  import { TextBlock } from './TextBlock/TextBlock';
21
22
  import { Tile } from './Tile/Tile';
22
23
 
@@ -40,6 +41,7 @@ export const Blocks = {
40
41
  ProductTile,
41
42
  PromoTile,
42
43
  StepsBlock,
44
+ TariffsTable,
43
45
  TextBlock,
44
46
  Tile,
45
47
  };
@@ -1,14 +1,15 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useComparisonTableScroll } from '../../hooks/useComparisonTableScroll';
3
+ import { useLink } from '../../hooks/useLink';
2
4
  import type { UniBlockProps } from '../../types';
3
5
  import { ArrowButton } from '../../ui-kit/Button/ArrowButton';
4
6
  import { Title } from '../../ui-kit/Title/Title';
5
- import { TableRowContainer } from './TableRowContainer';
6
- import { TableCarouselContainer } from './TableCarouselContainer';
7
- import { useLink } from '../../hooks/useLink';
8
- import type { ComparisonTableContent, RowData } from './ComparisonTableContent';
7
+ import type { ComparisonTableContent } from './ComparisonTableContent';
8
+ import { COLS_LENGTH_FOR_SCROLL, COLUMN_WIDTH, FIRST_CELL_CLASSES } from './constants';
9
9
  import { HeaderCell } from './HeaderCell';
10
+ import { TableCarouselContainer } from './TableCarouselContainer';
10
11
  import { TableRow } from './TableRow';
11
- import { COLS_LENGTH_FOR_SCROLL, FIRST_CELL_CLASSES } from './constants';
12
+ import { TableRowContainer } from './TableRowContainer';
12
13
 
13
14
  export interface ComparisonTableProps extends ComparisonTableContent, UniBlockProps {}
14
15
 
@@ -24,26 +25,28 @@ export const ComparisonTable = JSX<ComparisonTableProps>(
24
25
  }) => {
25
26
  const router = context.useRouter();
26
27
  const { handlerDecorator } = context;
28
+
27
29
  const [activeCardIndex, setActiveCardIndex] = context.useState(0);
28
30
  const [isShowAllRow, setIsShowAllRow] = context.useState(!visibleRowLength);
29
31
 
30
32
  const colHeaders = columns?.map(({ header }) => header || {});
31
33
  const colData = columns?.map(({ data }) => data) || [];
32
- const rowData: RowData = rowHeaders
34
+ const rowData = rowHeaders
33
35
  ?.map((header, i) => ({
34
36
  header,
35
37
  data: colData.map((col) => col?.[i] || [{}]),
36
38
  }))
37
39
  .slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
38
40
 
39
- const nextClick = () => setActiveCardIndex(activeCardIndex + 1);
40
- const prevClick = () => setActiveCardIndex(activeCardIndex - 1);
41
- const showToggle = () => setIsShowAllRow(!isShowAllRow);
41
+ const { nextClick, prevClick, isScrollAvailable, showNextButton, showPrevButton } =
42
+ useComparisonTableScroll({
43
+ colData,
44
+ colsLengthForScroll: COLS_LENGTH_FOR_SCROLL,
45
+ activeCardIndex,
46
+ setActiveCardIndex,
47
+ });
42
48
 
43
- const isScrollAvailable = colData?.length && colData.length > COLS_LENGTH_FOR_SCROLL;
44
- const showNextButton =
45
- isScrollAvailable && colData?.length - activeCardIndex > COLS_LENGTH_FOR_SCROLL;
46
- const showPrevButton = isScrollAvailable && activeCardIndex > 0;
49
+ const showToggle = () => setIsShowAllRow(!isShowAllRow);
47
50
 
48
51
  return (
49
52
  <section
@@ -56,7 +59,7 @@ export const ComparisonTable = JSX<ComparisonTableProps>(
56
59
  {colHeaders?.length ? (
57
60
  <TableRowContainer>
58
61
  <div className={FIRST_CELL_CLASSES} role="columnheader" scope="col" />
59
- <TableCarouselContainer activeCardIndex={activeCardIndex}>
62
+ <TableCarouselContainer activeCardIndex={activeCardIndex} columnWidth={COLUMN_WIDTH}>
60
63
  {colHeaders.map((header, i) => (
61
64
  <HeaderCell
62
65
  key={String(i)}
@@ -1,6 +1,5 @@
1
1
  import type { LinkProps } from '../../model/LinkProps';
2
2
  import type { Picture } from '../../model/Picture';
3
- import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
4
3
  import type { IconName } from '../../ui-kit/Icon/IconProps';
5
4
 
6
5
  /**
@@ -11,11 +10,6 @@ export type Row = {
11
10
  data: CellData[][];
12
11
  };
13
12
 
14
- /**
15
- * @hidden
16
- */
17
- export type RowData = Row[] | undefined;
18
-
19
13
  /**
20
14
  * @title Ячейка
21
15
  */
@@ -24,18 +18,6 @@ export interface CellData {
24
18
  label?: string;
25
19
  /** @title Описание */
26
20
  description?: string;
27
- /**
28
- * @title Иконки
29
- * @hidden
30
- */
31
- icons?: IconName[];
32
- /** @hidden */
33
- image?: Picture;
34
- /**
35
- * @title Кнопки
36
- * @hidden
37
- */
38
- buttons?: ButtonProps[];
39
21
  }
40
22
 
41
23
  /**
@@ -44,11 +26,9 @@ export interface CellData {
44
26
  export interface ColumnHeader {
45
27
  /** @title Заголовок */
46
28
  title?: string;
47
- /** @hidden */
48
29
  icon?: IconName;
49
30
  /** @hidden */
50
31
  image?: Picture;
51
- /** @hidden */
52
32
  link?: LinkProps;
53
33
  }
54
34
 
@@ -67,7 +47,6 @@ export interface Column {
67
47
  export interface RowHeader {
68
48
  /** @title Заголовок */
69
49
  title?: string;
70
- icon?: IconName;
71
50
  }
72
51
  /**
73
52
  * @title Сравнительная таблица
@@ -17,7 +17,7 @@ export interface HeaderCellProps {
17
17
 
18
18
  export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) => (
19
19
  <div
20
- className={`w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-12 ${BORDER_CLASSES} ${GRADIENT}`}
20
+ className={`w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-[46px] ${BORDER_CLASSES} ${GRADIENT}`}
21
21
  role="columnheader"
22
22
  scope="col"
23
23
  >
@@ -29,7 +29,7 @@ export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) =>
29
29
  height="63"
30
30
  />
31
31
  )}
32
- {image?.src && <Img className="mb-4" image={image} />}
32
+ {image?.src && <Img className="mb-[18px]" image={image} />}
33
33
  {title && (
34
34
  <Title size="S" className="font-medium m-0 text-center text-white">
35
35
  {title}
@@ -42,7 +42,7 @@ export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) =>
42
42
  target={link.target}
43
43
  className="mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active"
44
44
  >
45
- <div className="text-xs py-[11px]">{link.text}</div>
45
+ <div className="font-medium text-xs py-[11px]">{link.text}</div>
46
46
  </Button>
47
47
  </div>
48
48
  )}
@@ -1,16 +1,23 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { COLUMN_WIDTH } from './constants';
2
+ import { TableVersion } from '../../model/TableVersion';
3
3
 
4
4
  export interface TableCarouselContainerProps {
5
5
  activeCardIndex: number;
6
+ columnWidth: number;
7
+ version?: TableVersion;
6
8
  }
7
9
 
10
+ const carouselContainerClassesMap: Record<TableVersion, string> = {
11
+ comparison: 'flex gap-4 duration-1000',
12
+ tariff: 'flex flex-grow duration-1000',
13
+ };
14
+
8
15
  export const TableCarouselContainer = JSX<TableCarouselContainerProps>(
9
- ({ children, activeCardIndex }) => (
16
+ ({ children, activeCardIndex, columnWidth, version = 'comparison' }) => (
10
17
  <div className="flex flex-1 overflow-hidden">
11
18
  <div
12
- className="flex gap-4 duration-1000"
13
- style={{ transform: `translateX(-${activeCardIndex * COLUMN_WIDTH}px)` }}
19
+ className={carouselContainerClassesMap[version]}
20
+ style={{ transform: `translateX(-${activeCardIndex * columnWidth}px)` }}
14
21
  >
15
22
  {children}
16
23
  </div>
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { Row } from './ComparisonTableContent';
3
- import { DIVIDER_CLASSES, FIRST_CELL_CLASSES } from './constants';
3
+ import { COLUMN_WIDTH, DIVIDER_CLASSES, FIRST_CELL_CLASSES } from './constants';
4
4
  import { TableCarouselContainer } from './TableCarouselContainer';
5
5
  import { TableCell } from './TableCell';
6
6
  import { TableRowContainer } from './TableRowContainer';
@@ -27,7 +27,7 @@ export const TableRow = JSX<TableRowProps>(
27
27
  </div>
28
28
  ) : null}
29
29
  {data?.length ? (
30
- <TableCarouselContainer activeCardIndex={activeCardIndex}>
30
+ <TableCarouselContainer activeCardIndex={activeCardIndex} columnWidth={COLUMN_WIDTH}>
31
31
  {data.map((cell, i) => (
32
32
  <TableCell
33
33
  key={String(i)}