@redneckz/wildless-cms-uni-blocks 0.3.23 → 0.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +28 -49
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/ComparisonTable/ComparisonTable.mobile.js +17 -5
  5. package/dist/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  6. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  7. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  8. package/dist/components/Gallery/Gallery.mobile.js +4 -4
  9. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  10. package/dist/components/Gallery/GalleryCardInner.js +3 -8
  11. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  12. package/dist/components/Gallery/GalleryContent.d.ts +3 -2
  13. package/dist/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  14. package/dist/components/ProductBlock/ProductBlock.mobile.js +7 -5
  15. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  16. package/dist/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  17. package/dist/components/ProductBlock/ProductBlockInner.js +2 -2
  18. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  19. package/dist/components/ProductBlock/ProductBlockInner.mobile.js +8 -3
  20. package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  21. package/dist/components/ProductBlock/renderBenefit.mobile.d.ts +2 -1
  22. package/dist/components/ProductBlock/renderBenefit.mobile.js +1 -1
  23. package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  24. package/dist/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  25. package/dist/components/TariffsTable/TariffsTableCell.js +4 -4
  26. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  27. package/dist/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  28. package/dist/components/TariffsTable/TariffsTableTileCell.js +4 -2
  29. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  30. package/dist/components/TextBlock/TextBlock.mobile.js +1 -1
  31. package/dist/components/TextBlock/TextBlock.mobile.js.map +1 -1
  32. package/dist/components/Tile/Tile.js +1 -1
  33. package/dist/components/Tile/Tile.js.map +1 -1
  34. package/dist/icons/IconName.d.ts +1 -1
  35. package/dist/icons/IconName.js.map +1 -1
  36. package/dist/ui-kit/Icon/Icon.js +2 -1
  37. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  38. package/dist/ui-kit/Icon/IconProps.d.ts +2 -2
  39. package/dist/ui-kit/Img/Img.js +3 -1
  40. package/dist/ui-kit/Img/Img.js.map +1 -1
  41. package/dist/ui-kit/List/List.d.ts +1 -1
  42. package/dist/ui-kit/List/List.js +7 -2
  43. package/dist/ui-kit/List/List.js.map +1 -1
  44. package/dist/ui-kit/List/ListItem.d.ts +1 -1
  45. package/dist/ui-kit/List/ListItem.js +4 -9
  46. package/dist/ui-kit/List/ListItem.js.map +1 -1
  47. package/dist/ui-kit/List/ListProps.d.ts +2 -0
  48. package/lib/common.css +1 -1
  49. package/lib/components/ComparisonTable/ComparisonTable.mobile.js +17 -5
  50. package/lib/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  51. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  52. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  53. package/lib/components/Gallery/Gallery.mobile.js +4 -4
  54. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  55. package/lib/components/Gallery/GalleryCardInner.js +3 -8
  56. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  57. package/lib/components/Gallery/GalleryContent.d.ts +3 -2
  58. package/lib/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  59. package/lib/components/ProductBlock/ProductBlock.fixture.mobile.d.ts +4 -0
  60. package/lib/components/ProductBlock/ProductBlock.mobile.js +7 -5
  61. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  62. package/lib/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  63. package/lib/components/ProductBlock/ProductBlockInner.js +2 -2
  64. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  65. package/lib/components/ProductBlock/ProductBlockInner.mobile.js +8 -3
  66. package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  67. package/lib/components/ProductBlock/renderBenefit.mobile.d.ts +2 -1
  68. package/lib/components/ProductBlock/renderBenefit.mobile.js +1 -1
  69. package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  70. package/lib/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  71. package/lib/components/TariffsTable/TariffsTableCell.js +4 -4
  72. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  73. package/lib/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  74. package/lib/components/TariffsTable/TariffsTableTileCell.js +4 -2
  75. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  76. package/lib/components/TextBlock/TextBlock.mobile.js +1 -1
  77. package/lib/components/TextBlock/TextBlock.mobile.js.map +1 -1
  78. package/lib/components/Tile/Tile.js +1 -1
  79. package/lib/components/Tile/Tile.js.map +1 -1
  80. package/lib/icons/IconName.js.map +1 -1
  81. package/lib/ui-kit/Icon/Icon.js +2 -1
  82. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  83. package/lib/ui-kit/Icon/IconProps.d.ts +2 -2
  84. package/lib/ui-kit/Img/Img.js +3 -1
  85. package/lib/ui-kit/Img/Img.js.map +1 -1
  86. package/lib/ui-kit/List/List.d.ts +1 -1
  87. package/lib/ui-kit/List/List.fixture.d.ts +10 -0
  88. package/lib/ui-kit/List/List.js +7 -2
  89. package/lib/ui-kit/List/List.js.map +1 -1
  90. package/lib/ui-kit/List/ListItem.d.ts +1 -1
  91. package/lib/ui-kit/List/ListItem.js +4 -9
  92. package/lib/ui-kit/List/ListItem.js.map +1 -1
  93. package/lib/ui-kit/List/ListProps.d.ts +2 -0
  94. package/mobile/bundle/bundle.umd.js +61 -63
  95. package/mobile/bundle/bundle.umd.min.js +1 -1
  96. package/mobile/dist/components/ComparisonTable/ComparisonTable.js +17 -5
  97. package/mobile/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  98. package/mobile/dist/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  99. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  100. package/mobile/dist/components/Gallery/Gallery.js +4 -4
  101. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  102. package/mobile/dist/components/Gallery/GalleryCardInner.js +3 -8
  103. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  104. package/mobile/dist/components/Gallery/GalleryContent.d.ts +3 -2
  105. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  106. package/mobile/dist/components/ProductBlock/ProductBlock.js +7 -5
  107. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  108. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  109. package/mobile/dist/components/ProductBlock/ProductBlockInner.js +8 -3
  110. package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  111. package/mobile/dist/components/ProductBlock/renderBenefit.d.ts +2 -1
  112. package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -1
  113. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  114. package/mobile/dist/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  115. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +4 -4
  116. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  117. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  118. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +4 -2
  119. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  120. package/mobile/dist/components/TextBlock/TextBlock.js +1 -1
  121. package/mobile/dist/components/TextBlock/TextBlock.js.map +1 -1
  122. package/mobile/dist/components/Tile/Tile.js +1 -1
  123. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  124. package/mobile/dist/ui-kit/Icon/Icon.js +2 -1
  125. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  126. package/mobile/dist/ui-kit/Icon/IconProps.d.ts +2 -2
  127. package/mobile/dist/ui-kit/List/List.d.ts +1 -1
  128. package/mobile/dist/ui-kit/List/List.js +7 -2
  129. package/mobile/dist/ui-kit/List/List.js.map +1 -1
  130. package/mobile/dist/ui-kit/List/ListItem.d.ts +1 -1
  131. package/mobile/dist/ui-kit/List/ListItem.js +4 -9
  132. package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
  133. package/mobile/dist/ui-kit/List/ListProps.d.ts +2 -0
  134. package/mobile/lib/components/ComparisonTable/ComparisonTable.js +17 -5
  135. package/mobile/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  136. package/mobile/lib/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  137. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  138. package/mobile/lib/components/Gallery/Gallery.js +4 -4
  139. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  140. package/mobile/lib/components/Gallery/GalleryCardInner.js +3 -8
  141. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  142. package/mobile/lib/components/Gallery/GalleryContent.d.ts +3 -2
  143. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  144. package/mobile/lib/components/ProductBlock/ProductBlock.js +7 -5
  145. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  146. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  147. package/mobile/lib/components/ProductBlock/ProductBlockInner.js +8 -3
  148. package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  149. package/mobile/lib/components/ProductBlock/renderBenefit.d.ts +2 -1
  150. package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -1
  151. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  152. package/mobile/lib/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  153. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +4 -4
  154. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  155. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  156. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +4 -2
  157. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  158. package/mobile/lib/components/TextBlock/TextBlock.js +1 -1
  159. package/mobile/lib/components/TextBlock/TextBlock.js.map +1 -1
  160. package/mobile/lib/components/Tile/Tile.js +1 -1
  161. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  162. package/mobile/lib/ui-kit/Icon/Icon.js +2 -1
  163. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  164. package/mobile/lib/ui-kit/Icon/IconProps.d.ts +2 -2
  165. package/mobile/lib/ui-kit/List/List.d.ts +1 -1
  166. package/mobile/lib/ui-kit/List/List.js +7 -2
  167. package/mobile/lib/ui-kit/List/List.js.map +1 -1
  168. package/mobile/lib/ui-kit/List/ListItem.d.ts +1 -1
  169. package/mobile/lib/ui-kit/List/ListItem.js +4 -9
  170. package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
  171. package/mobile/lib/ui-kit/List/ListProps.d.ts +2 -0
  172. package/mobile/src/components/ComparisonTable/ComparisonTable.tsx +51 -30
  173. package/mobile/src/components/ComparisonTable/ComparisonTableContent.ts +3 -2
  174. package/mobile/src/components/ContentPage/ContentPage.tsx +0 -1
  175. package/mobile/src/components/Gallery/Gallery.tsx +5 -4
  176. package/mobile/src/components/Gallery/GalleryCardInner.tsx +12 -17
  177. package/mobile/src/components/Gallery/GalleryContent.ts +3 -2
  178. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +3 -10
  179. package/mobile/src/components/ProductBlock/ProductBlock.example.json +1 -0
  180. package/mobile/src/components/ProductBlock/ProductBlock.tsx +17 -12
  181. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +4 -0
  182. package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +25 -5
  183. package/mobile/src/components/ProductBlock/renderBenefit.tsx +2 -1
  184. package/mobile/src/components/ProductGallery/ProductGalleryContent.ts +4 -1
  185. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +28 -27
  186. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +1 -1
  187. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +33 -31
  188. package/mobile/src/components/TextBlock/TextBlock.example.json +2 -1
  189. package/mobile/src/components/TextBlock/TextBlock.tsx +2 -2
  190. package/mobile/src/components/Tile/Tile.tsx +3 -1
  191. package/mobile/src/ui-kit/Icon/Icon.tsx +7 -1
  192. package/mobile/src/ui-kit/Icon/IconProps.ts +2 -2
  193. package/mobile/src/ui-kit/List/List.tsx +9 -3
  194. package/mobile/src/ui-kit/List/ListItem.tsx +5 -12
  195. package/mobile/src/ui-kit/List/ListProps.ts +2 -0
  196. package/package.json +1 -1
  197. package/src/components/ComparisonTable/ComparisonTable.fixture.mobile.tsx +1 -1
  198. package/src/components/ComparisonTable/ComparisonTable.mobile.tsx +51 -30
  199. package/src/components/ComparisonTable/ComparisonTableContent.ts +3 -2
  200. package/src/components/ContentPage/ContentPage.tsx +0 -1
  201. package/src/components/Gallery/Gallery.fixture.mobile.tsx +3 -2
  202. package/src/components/Gallery/Gallery.mobile.tsx +5 -4
  203. package/src/components/Gallery/GalleryCardInner.tsx +12 -17
  204. package/src/components/Gallery/GalleryContent.ts +3 -2
  205. package/src/components/LinkDocs/LinkDocsContent.ts +3 -10
  206. package/src/components/ProductBlock/ProductBlock.example.json +1 -0
  207. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +49 -13
  208. package/src/components/ProductBlock/ProductBlock.mobile.tsx +17 -12
  209. package/src/components/ProductBlock/ProductBlockContent.ts +4 -0
  210. package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +25 -5
  211. package/src/components/ProductBlock/ProductBlockInner.tsx +8 -1
  212. package/src/components/ProductBlock/renderBenefit.mobile.tsx +2 -1
  213. package/src/components/ProductGallery/ProductGalleryContent.ts +4 -1
  214. package/src/components/TariffsTable/TariffsTableCell.tsx +28 -27
  215. package/src/components/TariffsTable/TariffsTableContent.ts +1 -1
  216. package/src/components/TariffsTable/TariffsTableTileCell.tsx +33 -31
  217. package/src/components/TextBlock/TextBlock.example.json +2 -1
  218. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +8 -0
  219. package/src/components/TextBlock/TextBlock.mobile.tsx +2 -2
  220. package/src/components/Tile/Tile.tsx +3 -1
  221. package/src/icons/IconName.ts +152 -3
  222. package/src/ui-kit/Icon/Icon.tsx +7 -1
  223. package/src/ui-kit/Icon/IconProps.ts +2 -2
  224. package/src/ui-kit/Img/Img.tsx +5 -2
  225. package/src/ui-kit/List/List.fixture.tsx +37 -0
  226. package/src/ui-kit/List/List.tsx +9 -3
  227. package/src/ui-kit/List/ListItem.tsx +5 -12
  228. package/src/ui-kit/List/ListProps.ts +2 -0
  229. package/dist/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  230. package/dist/ui-kit/BlockItem/BlockItem.js +0 -23
  231. package/dist/ui-kit/BlockItem/BlockItem.js.map +0 -1
  232. package/dist/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  233. package/dist/ui-kit/BlockItem/BlockItemProps.js +0 -2
  234. package/dist/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  235. package/lib/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  236. package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +0 -8
  237. package/lib/ui-kit/BlockItem/BlockItem.js +0 -21
  238. package/lib/ui-kit/BlockItem/BlockItem.js.map +0 -1
  239. package/lib/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  240. package/lib/ui-kit/BlockItem/BlockItemProps.js +0 -2
  241. package/lib/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  242. package/mobile/dist/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  243. package/mobile/dist/ui-kit/BlockItem/BlockItem.js +0 -23
  244. package/mobile/dist/ui-kit/BlockItem/BlockItem.js.map +0 -1
  245. package/mobile/dist/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  246. package/mobile/dist/ui-kit/BlockItem/BlockItemProps.js +0 -2
  247. package/mobile/dist/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  248. package/mobile/lib/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  249. package/mobile/lib/ui-kit/BlockItem/BlockItem.js +0 -21
  250. package/mobile/lib/ui-kit/BlockItem/BlockItem.js.map +0 -1
  251. package/mobile/lib/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  252. package/mobile/lib/ui-kit/BlockItem/BlockItemProps.js +0 -2
  253. package/mobile/lib/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  254. package/mobile/src/ui-kit/BlockItem/BlockItem.tsx +0 -33
  255. package/mobile/src/ui-kit/BlockItem/BlockItemProps.ts +0 -23
  256. package/src/ui-kit/BlockItem/BlockItem.fixture.tsx +0 -12
  257. package/src/ui-kit/BlockItem/BlockItem.tsx +0 -33
  258. package/src/ui-kit/BlockItem/BlockItemProps.ts +0 -23
@@ -16,7 +16,7 @@ export const ComparisonTable = JSX<ComparisonTableProps>(
16
16
  columns,
17
17
  visibleRowLength = 0,
18
18
  isColoredFirstColumn = false,
19
- useSwiper = false,
19
+ useSwiper = 'horizontal',
20
20
  }) => {
21
21
  const tableData =
22
22
  columns?.map(({ data, header }) => ({
@@ -65,41 +65,62 @@ const renderColumns = ({
65
65
  isColoredFirstColumn,
66
66
  columnsViewState,
67
67
  handleToggleColumn,
68
- useSwiper,
68
+ useSwiper = 'horizontal',
69
69
  setColumnsViewState,
70
70
  }) => (
71
71
  <div role="table">
72
- {tableData?.length ? (
73
- useSwiper ? (
74
- <SwipeListControl
75
- context={context}
76
- onSlideChange={onSlideChange(columnsViewState, setColumnsViewState)}
77
- >
78
- {tableData.map(
79
- renderColumn({
80
- context,
81
- visibleRowLength,
82
- isColoredFirstColumn,
83
- columnsViewState,
84
- handleToggleColumn,
85
- }),
86
- )}
87
- </SwipeListControl>
88
- ) : (
89
- tableData.map(
90
- renderColumn({
91
- context,
92
- visibleRowLength,
93
- isColoredFirstColumn,
94
- columnsViewState,
95
- handleToggleColumn,
96
- }),
97
- )
98
- )
99
- ) : null}
72
+ {tableData?.length
73
+ ? renderInnerTable({
74
+ useSwiper,
75
+ context,
76
+ columnsViewState,
77
+ setColumnsViewState,
78
+ tableData,
79
+ visibleRowLength,
80
+ isColoredFirstColumn,
81
+ handleToggleColumn,
82
+ })
83
+ : null}
100
84
  </div>
101
85
  );
102
86
 
87
+ const renderInnerTable = ({
88
+ useSwiper,
89
+ context,
90
+ columnsViewState,
91
+ setColumnsViewState,
92
+ tableData,
93
+ visibleRowLength,
94
+ isColoredFirstColumn,
95
+ handleToggleColumn,
96
+ }) =>
97
+ useSwiper === 'horizontal' ? (
98
+ tableData.map(
99
+ renderColumn({
100
+ context,
101
+ visibleRowLength,
102
+ isColoredFirstColumn,
103
+ columnsViewState,
104
+ handleToggleColumn,
105
+ }),
106
+ )
107
+ ) : (
108
+ <SwipeListControl
109
+ context={context}
110
+ onSlideChange={onSlideChange(columnsViewState, setColumnsViewState)}
111
+ >
112
+ {tableData.map(
113
+ renderColumn({
114
+ context,
115
+ visibleRowLength,
116
+ isColoredFirstColumn,
117
+ columnsViewState,
118
+ handleToggleColumn,
119
+ }),
120
+ )}
121
+ </SwipeListControl>
122
+ );
123
+
103
124
  const renderColumn =
104
125
  ({ context, visibleRowLength, isColoredFirstColumn, columnsViewState, handleToggleColumn }) =>
105
126
  (columnData, i) =>
@@ -1,6 +1,7 @@
1
1
  import type { LinkProps } from '../../model/LinkProps';
2
2
  import type { Picture } from '../../model/Picture';
3
3
  import type { IconName } from '../../ui-kit/Icon/IconProps';
4
+ import type { ListOrientation } from '../../model/ListOrientation';
4
5
 
5
6
  /**
6
7
  * @hidden
@@ -81,6 +82,6 @@ export interface ComparisonTableContent {
81
82
  isColoredFirstColumn?: boolean;
82
83
  /** @title Отображать заданное количество строк */
83
84
  visibleRowLength?: number;
84
- /** @title Использовать свайпер (моб.) */
85
- useSwiper?: boolean;
85
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
86
+ useSwiper?: ListOrientation;
86
87
  }
@@ -91,7 +91,6 @@ function renderBlock(
91
91
  if (!(type && type in blocksRegistry)) {
92
92
  console.warn(`No block with "${type}" is registered`);
93
93
  }
94
-
95
94
  const BlockComponent = blocksRegistry[type || 'Placeholder'] || Placeholder;
96
95
  return blockDecorator(
97
96
  {
@@ -3,6 +3,7 @@ import { context } from '../../setup-fixture';
3
3
  import type { ButtonCommonProps } from '../../ui-kit/Button/Button';
4
4
  import { Gallery } from './Gallery';
5
5
  import { GalleryCard } from './GalleryContent';
6
+ import { ListOrientation } from '../../model/ListOrientation';
6
7
 
7
8
  const image: Picture = {
8
9
  src: 'money-1.png',
@@ -82,7 +83,7 @@ const cards: GalleryCard[] = [
82
83
  const defaultProps = {
83
84
  title: 'Вы можете оплатить бонусными баллами',
84
85
  description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
85
- isScroll: false,
86
+ useSwiper: 'horizontal' as ListOrientation,
86
87
  context,
87
88
  cards: cards,
88
89
  };
@@ -90,7 +91,7 @@ const defaultProps = {
90
91
  const scrollProps = {
91
92
  title: 'Вы можете оплатить бонусными баллами',
92
93
  description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
93
- isScroll: true,
94
+ useSwiper: 'horizontal' as ListOrientation,
94
95
  context,
95
96
  cards: cards,
96
97
  };
@@ -8,6 +8,7 @@ import { SwipeListControl } from '../../ui-kit/SwipeListControl/SwipeListControl
8
8
  import type { GalleryCard } from './GalleryContent';
9
9
  import { GalleryItem } from './GalleryContent';
10
10
  import type { GalleryProps } from './GalleryProps';
11
+ import type { ListOrientation } from '../../model/ListOrientation';
11
12
 
12
13
  const blockStyle: Record<BlockVersion, string> = {
13
14
  primary: 'bg-white',
@@ -15,7 +16,7 @@ const blockStyle: Record<BlockVersion, string> = {
15
16
  };
16
17
 
17
18
  export const Gallery = JSX<GalleryProps>(
18
- ({ context, title, description, cards = [], className, isScroll = true }) => {
19
+ ({ context, title, description, cards = [], className, useSwiper = 'horizontal' }) => {
19
20
  return (
20
21
  <section
21
22
  className={`relative font-sans text-primary-text bg-white px-4 py-6 overflow-hidden ${className}`}
@@ -34,14 +35,14 @@ export const Gallery = JSX<GalleryProps>(
34
35
  </div>
35
36
  ) : null}
36
37
  </div>
37
- {renderCardsLayout(isScroll, cards, context)}
38
+ {renderCardsLayout(useSwiper, cards, context)}
38
39
  </section>
39
40
  );
40
41
  },
41
42
  );
42
43
 
43
- function renderCardsLayout(isScroll: boolean, cards: GalleryCard[], context) {
44
- return isScroll ? (
44
+ function renderCardsLayout(useSwiper: ListOrientation, cards: GalleryCard[], context) {
45
+ return useSwiper === 'horizontal' ? (
45
46
  <SwipeListControl context={context}>{cards?.map(renderCard)}</SwipeListControl>
46
47
  ) : (
47
48
  <div className="grid gap-[14px]">{cards?.map(renderCard)}</div>
@@ -1,10 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BlockVersion } from '../../model/BlockVersion';
3
- import { BlockItem } from '../../ui-kit/BlockItem/BlockItem';
4
2
  import { Button } from '../../ui-kit/Button/Button';
5
3
  import { Icon } from '../../ui-kit/Icon/Icon';
6
4
  import { Img } from '../../ui-kit/Img/Img';
7
- import type { GalleryCard } from './GalleryContent';
5
+ import { List } from '../../ui-kit/List/List';
6
+ import type { GalleryCard, GalleryItem } from './GalleryContent';
7
+ import type { BlockVersion } from '../../model/BlockVersion';
8
8
 
9
9
  export const GalleryCardInner = JSX<GalleryCard>(
10
10
  ({ title, description, image, items, button, version }) => {
@@ -43,21 +43,16 @@ function renderCardTitle(title: string, className: string) {
43
43
  return <div className={`font-medium text-xl m-0 ${className}`}>{title}</div>;
44
44
  }
45
45
 
46
- function renderItems(items, version) {
46
+ function renderItems(items: GalleryItem[], version: BlockVersion = 'primary') {
47
47
  return (
48
- <section className={`max-w-[308px] mt-2`} role="list">
49
- {items
50
- .filter((item) => item?.text)
51
- .map((item, i) => renderItem(item.text as string, i, version))}
52
- </section>
53
- );
54
- }
55
-
56
- function renderItem(item: string, i: number, version?: BlockVersion) {
57
- return (
58
- <BlockItem key={String(i)} version={version ?? 'primary'}>
59
- <span className="text-sm">{item}</span>
60
- </BlockItem>
48
+ <List
49
+ className={`max-w-[308px] mt-2 text-sm ${
50
+ version === 'primary' ? '!text-secondary-text' : ''
51
+ }`}
52
+ itemClassName="mt-1 first:mt-0"
53
+ items={items.filter((item) => item?.text).map((item) => item.text as string)}
54
+ version={version}
55
+ />
61
56
  );
62
57
  }
63
58
 
@@ -1,6 +1,7 @@
1
1
  import type { BlockVersion } from '../../model/BlockVersion';
2
2
  import type { Picture } from '../../model/Picture';
3
3
  import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
4
+ import type { ListOrientation } from '../../model/ListOrientation';
4
5
 
5
6
  /**
6
7
  * @title Элемент списка
@@ -41,6 +42,6 @@ export interface GalleryContent {
41
42
  * @minItems 3
42
43
  */
43
44
  cards?: GalleryCard[];
44
- /** @title Горизонтальная прокрутка (для мобильных прокрутка shift+mouseScroll) */
45
- isScroll?: boolean; //TODO: for mobile
45
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
46
+ useSwiper?: ListOrientation; //TODO: for mobile
46
47
  }
@@ -1,6 +1,7 @@
1
1
  import type { LinkProps } from '../../model/LinkProps';
2
2
  import type { IconName } from '../../ui-kit/Icon/IconProps';
3
3
  import type { AlignType } from '../BaseTile/BaseTileProps';
4
+ import type { ListOrientation } from '../../model/ListOrientation';
4
5
 
5
6
  /**
6
7
  * @title Отображение списка
@@ -11,15 +12,6 @@ import type { AlignType } from '../BaseTile/BaseTileProps';
11
12
  */
12
13
  export type LinkColumnsMode = 'single' | 'double';
13
14
 
14
- /**
15
- * @title Отображение списка (моб.)
16
- * @enumNames [
17
- * "Вертикально",
18
- * "Горизонтально",
19
- * ]
20
- */
21
- export type LinkListMode = 'vertical' | 'horizontal';
22
-
23
15
  /**
24
16
  * @title Элемент списка
25
17
  */
@@ -41,7 +33,8 @@ export interface LinkDocsContent {
41
33
  /** @title Список */
42
34
  documents?: LinkDocsItem[];
43
35
  columnsMode?: LinkColumnsMode;
44
- listMode?: LinkListMode; // TODO: мобильный проп
36
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
37
+ listMode?: ListOrientation; // TODO: мобильный проп
45
38
  /** @title Рамка элементов (моб.) */ // TODO: мобильный проп
46
39
  hasBorder?: boolean;
47
40
  align?: AlignType;
@@ -9,6 +9,7 @@
9
9
  }
10
10
  },
11
11
  "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"],
12
+ "isDotted": true,
12
13
  "buttons": [
13
14
  {
14
15
  "text": "Кнопка",
@@ -4,6 +4,11 @@ import { ProductBlock } from './ProductBlock';
4
4
  import { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
5
5
  import { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
6
6
 
7
+ const title = 'Кредит до 5 000 000 Р\nбез залога и поручителей';
8
+ const description =
9
+ 'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.';
10
+ const label = 'Самое лучшее предложение';
11
+
7
12
  const image: Picture = {
8
13
  src: 'money-1.png',
9
14
  format: 'webp',
@@ -20,7 +25,7 @@ const image: Picture = {
20
25
  ],
21
26
  };
22
27
 
23
- const benefits = [
28
+ const benefits: Benefit[] = [
24
29
  {
25
30
  label: 'До 5 млн ₽',
26
31
  description: 'Кредитный лимит',
@@ -38,7 +43,7 @@ const benefits = [
38
43
  },
39
44
  ];
40
45
 
41
- const buttons = [
46
+ const buttons: ButtonWithIconProps[] = [
42
47
  {
43
48
  href: 'https://rshb.ru',
44
49
  text: 'Оформить карту',
@@ -51,7 +56,7 @@ const buttons = [
51
56
  target: '_blank',
52
57
  version: 'secondary',
53
58
  },
54
- ] as ButtonWithIconProps;
59
+ ];
55
60
 
56
61
  const items = [
57
62
  'Совершайте любые личные покупки',
@@ -59,30 +64,61 @@ const items = [
59
64
  'Расходы для бизнеса на УСН 15% позволят снизить налоговую базу',
60
65
  ];
61
66
 
67
+ const props = { title, description, image, buttons };
68
+
62
69
  export default {
63
70
  default: (
71
+ <div className="container grid grid-cols-12">
72
+ <ProductBlock className="col-span-12" context={context} {...props} benefits={benefits} />
73
+ </div>
74
+ ),
75
+ items: (
76
+ <div className="container grid grid-cols-12">
77
+ <ProductBlock className="col-span-12" context={context} {...props} items={items} />
78
+ </div>
79
+ ),
80
+ 'primary with label': (
64
81
  <div className="container grid grid-cols-12">
65
82
  <ProductBlock
66
83
  className="col-span-12"
67
84
  context={context}
68
- title={'Кредит до 5 000 000 Р\nбез залога и поручителей'}
69
- description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
70
- benefits={benefits as Benefit[]}
71
- buttons={buttons as ButtonWithIconProps[]}
72
- image={image}
85
+ {...props}
86
+ benefits={benefits}
87
+ label={label}
73
88
  />
74
89
  </div>
75
90
  ),
76
- items: (
91
+ secondary: (
77
92
  <div className="container grid grid-cols-12">
78
93
  <ProductBlock
79
94
  className="col-span-12"
80
95
  context={context}
81
- title={'Кредит до 5 000 000 Р\nбез залога и поручителей'}
82
- description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
96
+ {...props}
97
+ benefits={benefits}
98
+ version="secondary"
99
+ />
100
+ </div>
101
+ ),
102
+ 'secondary with items': (
103
+ <div className="container grid grid-cols-12">
104
+ <ProductBlock
105
+ className="col-span-12"
106
+ context={context}
107
+ {...props}
83
108
  items={items}
84
- buttons={buttons as ButtonWithIconProps[]}
85
- image={image}
109
+ version="secondary"
110
+ />
111
+ </div>
112
+ ),
113
+ 'secondary with label': (
114
+ <div className="container grid grid-cols-12">
115
+ <ProductBlock
116
+ className="col-span-12"
117
+ context={context}
118
+ {...props}
119
+ benefits={benefits}
120
+ label={label}
121
+ version="secondary"
86
122
  />
87
123
  </div>
88
124
  ),
@@ -1,18 +1,23 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { ProductBlockInner } from './ProductBlockInner';
2
3
  import type { UniBlockProps } from '../../types';
3
4
  import type { ProductBlockContent } from './ProductBlockContent';
4
- import { ProductBlockInner } from './ProductBlockInner';
5
+ import type { BlockVersion } from '../../model/BlockVersion';
6
+
7
+ const productBlockStyleMap: Record<BlockVersion, string> = {
8
+ primary: 'bg-white text-primary-text',
9
+ secondary: 'bg-primary-main text-white',
10
+ };
5
11
 
6
12
  export interface ProductBlockProps extends ProductBlockContent, UniBlockProps {}
7
13
 
8
- export const ProductBlock = JSX<ProductBlockProps>(
9
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
- (props /* Get rid of image and benefits */) => {
11
- const { className } = props;
12
- return (
13
- <section className={`font-sans bg-white px-4 py-6 ${className || ''}`}>
14
- <ProductBlockInner {...props} />
15
- </section>
16
- );
17
- },
18
- );
14
+ export const ProductBlock = JSX<ProductBlockProps>((props /* Get rid of image and benefits */) => {
15
+ const { className = '', version = 'primary' } = props;
16
+ return (
17
+ <section
18
+ className={`font-sans bg-white px-4 py-6 ${productBlockStyleMap[version]} ${className}`}
19
+ >
20
+ <ProductBlockInner {...props} />
21
+ </section>
22
+ );
23
+ });
@@ -20,6 +20,10 @@ export type ProductBlockInnerContent = HeadingContent &
20
20
  */
21
21
  benefits?: Benefit[];
22
22
  version?: BlockVersion;
23
+ /** @title Буллиты */
24
+ isDotted?: boolean;
25
+ /** @title Лейбл (моб.) */
26
+ label?: string;
23
27
  /**
24
28
  * @title Стиль для текстовой части
25
29
  * @hidden
@@ -7,6 +7,7 @@ import { Img } from '../../ui-kit/Img/Img';
7
7
  import { List } from '../../ui-kit/List/List';
8
8
  import { BaseTile } from '../BaseTile/BaseTile';
9
9
  import type { ProductBlockInnerContent } from './ProductBlockContent';
10
+ import type { BlockVersion } from '../../model/BlockVersion';
10
11
  import { renderBenefit } from './renderBenefit';
11
12
 
12
13
  export type ProductBlockInnerProps = ProductBlockInnerContent & UniBlockProps;
@@ -23,10 +24,13 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
23
24
  image,
24
25
  items,
25
26
  version = 'primary',
27
+ isDotted = true,
28
+ label,
26
29
  }) => {
27
30
  return (
28
- <div className={`w-full text-primary-text ${className}`}>
31
+ <div className={`w-full ${className}`}>
29
32
  <div>
33
+ {label ? renderLabel(label, version) : null}
30
34
  <BaseTile
31
35
  context={context}
32
36
  title={
@@ -54,7 +58,14 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
54
58
  {benefits?.filter((items) => items.label)?.length ? (
55
59
  <div className="mt-3">{benefits.map((_, i) => renderBenefit(_, i, version))}</div>
56
60
  ) : null}
57
- {items?.length ? <List className="mt-3" items={items} /> : null}
61
+ {items?.length ? (
62
+ <List
63
+ className="mt-3 text-m-md"
64
+ items={items}
65
+ version={version}
66
+ isDotted={isDotted}
67
+ />
68
+ ) : null}
58
69
  </BaseTile>
59
70
  </div>
60
71
  {renderImage(image)}
@@ -65,8 +76,17 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
65
76
 
66
77
  function renderImage(image) {
67
78
  return image?.src ? (
68
- <div className="mt-5">
69
- <Img image={{ className: 'block', ...image }} />
70
- </div>
79
+ <Img imageClassName="mt-5 mx-auto block" image={{ className: 'block', ...image }} />
71
80
  ) : null;
72
81
  }
82
+
83
+ const labelStyleMap: Record<BlockVersion, string> = {
84
+ primary: 'text-primary-main border-secondary-hover',
85
+ secondary: 'text-white/80',
86
+ };
87
+
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]}`}>
90
+ {label}
91
+ </div>
92
+ );
@@ -23,6 +23,7 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
23
23
  image,
24
24
  items,
25
25
  version = 'primary',
26
+ isDotted = true,
26
27
  textBlockClassName = '',
27
28
  }) => {
28
29
  const textColor = version === 'secondary' ? 'text-white' : '';
@@ -43,7 +44,13 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
43
44
  </div>
44
45
  ) : null}
45
46
  {items?.length ? (
46
- <List className="mt-5" items={items} itemClassName="mb-[10px]" version={version} />
47
+ <List
48
+ className="mt-5"
49
+ items={items}
50
+ itemClassName="mb-[10px]"
51
+ version={version}
52
+ isDotted={isDotted}
53
+ />
47
54
  ) : null}
48
55
  </BaseTile>
49
56
  </div>
@@ -11,7 +11,7 @@ const benefitDescStyleMap: Record<BlockVersion, string> = {
11
11
  secondary: 'text-white',
12
12
  };
13
13
 
14
- export function renderBenefit(benefit: Benefit, i: number, version: string) {
14
+ export function renderBenefit(benefit: Benefit, i: number, version: BlockVersion) {
15
15
  return (
16
16
  <div key={String(i)} className="flex gap-3 items-center mb-2.5 last:mb-0">
17
17
  {benefit.icon && (
@@ -21,6 +21,7 @@ export function renderBenefit(benefit: Benefit, i: number, version: string) {
21
21
  width="24"
22
22
  height="24"
23
23
  asSVG
24
+ color={version}
24
25
  />
25
26
  )}
26
27
  <div className={`font-medium text-m-title-xs m-0 ${benefitTitleStyleMap[version]}`}>
@@ -27,6 +27,9 @@ export interface ProductGalleryContent {
27
27
  * @hidden //! temporary not used
28
28
  */
29
29
  duration?: number;
30
- /** @title Слайды */
30
+ /**
31
+ * @title Слайды
32
+ * @minItems 2
33
+ */
31
34
  slides?: ProductSlide[];
32
35
  }
@@ -1,9 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { BlockItem } from '../../ui-kit/BlockItem/BlockItem';
3
2
  import { Button } from '../../ui-kit/Button/Button';
4
3
  import { Icon } from '../../ui-kit/Icon/Icon';
5
4
  import { Img } from '../../ui-kit/Img/Img';
6
- import type { TariffsTableCellData } from './TariffsTableContent';
5
+ import { List } from '../../ui-kit/List/List';
6
+ import type { TariffsTableCellData, TariffsTableList } from './TariffsTableContent';
7
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
7
8
 
8
9
  export interface TariffsTableCellProps {
9
10
  cell: TariffsTableCellData[];
@@ -32,31 +33,31 @@ const renderCellInner = (
32
33
  )}
33
34
  {label ? <div className="text-xl font-medium m-0">{label}</div> : null}
34
35
  {description ? <div className="text-sm text-secondary-text">{description}</div> : null}
35
- {list?.items?.length ? (
36
- <div className="flex flex-col justify-between items-start">
37
- <div role="list">
38
- {list.items.map((text, idx) => (
39
- <BlockItem
40
- className="text-sm"
41
- key={String(idx)}
42
- text={text}
43
- version="gray"
44
- isDotted={list.isDotted ?? true}
45
- />
46
- ))}
47
- </div>
48
- </div>
49
- ) : null}
36
+ {list?.items?.length ? renderList(list) : null}
50
37
  {image && <Img image={image} />}
51
- {buttons?.length
52
- ? buttons.map(({ icon, ...buttonProps }, idx) => (
53
- <Button
54
- className={`${idx > 0 ? 'ml-3' : ''} w-12 h-12`}
55
- key={String(idx)}
56
- appendLeft={icon && <Icon name={icon} width="24px" height="24px" asSVG />}
57
- {...buttonProps}
58
- />
59
- ))
60
- : null}
38
+ {buttons?.length ? renderButtons(buttons) : null}
39
+ </div>
40
+ );
41
+
42
+ const renderList = (list: TariffsTableList) => (
43
+ <List
44
+ className="flex flex-col justify-between items-start text-sm"
45
+ version="gray"
46
+ items={list.items}
47
+ isDotted={list.isDotted ?? true}
48
+ />
49
+ );
50
+
51
+ const renderButtons = (buttons: ButtonWithIconProps[]) => (
52
+ <div>
53
+ {buttons.map(({ icon, rounded, ...buttonProps }, idx) => (
54
+ <Button
55
+ className={`${idx > 0 && rounded ? 'ml-3' : ''} w-12 h-12`}
56
+ key={String(idx)}
57
+ rounded={rounded}
58
+ appendLeft={icon && <Icon name={icon} width="24px" height="24px" asSVG />}
59
+ {...buttonProps}
60
+ />
61
+ ))}
61
62
  </div>
62
63
  );
@@ -56,7 +56,7 @@ export type TariffsTableContent = HeadingContent &
56
56
  columns?: TariffsTableColumn[];
57
57
  /** @title Параметры */
58
58
  rowHeaders?: TariffsTableRowHeader[];
59
- /** @title Направление таблицы (моб.) */
59
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
60
60
  orientation?: ListOrientation;
61
61
  };
62
62