@redneckz/wildless-cms-uni-blocks 0.6.49 → 0.7.1

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 (209) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +71 -19
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  5. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  6. package/bundle/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  7. package/bundle/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  8. package/bundle/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  9. package/bundle/icons/IconName.d.ts +4 -2
  10. package/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  11. package/bundle/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  12. package/bundle/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  13. package/bundle/utils/style.d.ts +1 -0
  14. package/cosmos-static/icons/ArrowRightIcon.svg +1 -1
  15. package/cosmos-static/icons/ArrowTopRightIcon.svg +1 -0
  16. package/dist/components/Blocks.js +2 -0
  17. package/dist/components/Blocks.js.map +1 -1
  18. package/dist/components/CarouselCard/CarouselCard.js +2 -2
  19. package/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  20. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  21. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  22. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  23. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  24. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  25. package/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  26. package/dist/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  27. package/dist/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  28. package/dist/components/SwipeListControlBlock/SwipeListControlBlock.js +14 -0
  29. package/dist/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  30. package/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  31. package/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  32. package/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  33. package/dist/icons/IconName.d.ts +4 -2
  34. package/dist/icons/IconName.js +2 -0
  35. package/dist/icons/IconName.js.map +1 -1
  36. package/dist/ui-kit/BlockWrapper.js +1 -1
  37. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  38. package/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  39. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  40. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  41. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  42. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  43. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  44. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  45. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  46. package/dist/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  47. package/dist/utils/style.d.ts +1 -0
  48. package/dist/utils/style.js +5 -0
  49. package/dist/utils/style.js.map +1 -0
  50. package/lib/common.css +1 -1
  51. package/lib/components/Blocks.js +2 -0
  52. package/lib/components/Blocks.js.map +1 -1
  53. package/lib/components/CarouselCard/CarouselCard.js +2 -2
  54. package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  55. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  56. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  57. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  58. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  59. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  60. package/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  61. package/lib/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  62. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  63. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.fixture.d.ts +5 -0
  64. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.js +12 -0
  65. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  66. package/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  67. package/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  68. package/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  69. package/lib/icons/IconName.d.ts +4 -2
  70. package/lib/icons/IconName.js +2 -0
  71. package/lib/icons/IconName.js.map +1 -1
  72. package/lib/ui-kit/BlockWrapper.js +1 -1
  73. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  74. package/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  75. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  76. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  77. package/lib/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.d.ts +1 -0
  78. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  79. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  80. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  81. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  82. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  83. package/lib/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  84. package/lib/utils/style.d.ts +1 -0
  85. package/lib/utils/style.js +2 -0
  86. package/lib/utils/style.js.map +1 -0
  87. package/mobile/bundle/bundle.umd.js +25 -12
  88. package/mobile/bundle/bundle.umd.min.js +1 -1
  89. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  90. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  91. package/mobile/bundle/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  92. package/mobile/bundle/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  93. package/mobile/bundle/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  94. package/mobile/bundle/icons/IconName.d.ts +4 -2
  95. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  96. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  97. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  98. package/mobile/bundle/utils/style.d.ts +1 -0
  99. package/mobile/dist/components/CarouselCard/CarouselCard.js +2 -2
  100. package/mobile/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  101. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  102. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  103. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  104. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  105. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  106. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  107. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  108. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  109. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlock.js +14 -0
  110. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  111. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  112. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  113. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  114. package/mobile/dist/icons/IconName.d.ts +4 -2
  115. package/mobile/dist/icons/IconName.js +2 -0
  116. package/mobile/dist/icons/IconName.js.map +1 -1
  117. package/mobile/dist/ui-kit/BlockWrapper.js +1 -1
  118. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  119. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  120. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  121. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  122. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  123. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  124. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  125. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  126. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  127. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  128. package/mobile/dist/utils/style.d.ts +1 -0
  129. package/mobile/dist/utils/style.js +5 -0
  130. package/mobile/dist/utils/style.js.map +1 -0
  131. package/mobile/lib/components/CarouselCard/CarouselCard.js +2 -2
  132. package/mobile/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  133. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  134. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  135. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  136. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  137. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  138. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  139. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  140. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  141. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlock.js +12 -0
  142. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  143. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  144. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  145. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  146. package/mobile/lib/icons/IconName.d.ts +4 -2
  147. package/mobile/lib/icons/IconName.js +2 -0
  148. package/mobile/lib/icons/IconName.js.map +1 -1
  149. package/mobile/lib/ui-kit/BlockWrapper.js +1 -1
  150. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  151. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  152. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  153. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  154. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  155. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  156. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  157. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  158. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  159. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  160. package/mobile/lib/utils/style.d.ts +1 -0
  161. package/mobile/lib/utils/style.js +2 -0
  162. package/mobile/lib/utils/style.js.map +1 -0
  163. package/mobile/src/common.css +11 -0
  164. package/mobile/src/components/Carousel/Carousel.ui.json +8 -0
  165. package/mobile/src/components/CarouselCard/CarouselCard.tsx +11 -5
  166. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +1 -1
  167. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.example.json +11 -3
  168. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +29 -17
  169. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +1 -1
  170. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +4 -0
  171. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlock.example.json +18 -0
  172. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlock.tsx +23 -0
  173. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlock.ui.json +1 -0
  174. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlockContent.ts +6 -0
  175. package/mobile/src/icons/ArrowRightIcon.svg +1 -1
  176. package/mobile/src/icons/ArrowTopRightIcon.svg +1 -0
  177. package/mobile/src/icons/IconName.ts +4 -4
  178. package/mobile/src/ui-kit/BlockWrapper.tsx +1 -1
  179. package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +19 -10
  180. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +6 -2
  181. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +20 -4
  182. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlProps.ts +8 -0
  183. package/mobile/src/utils/style.ts +2 -0
  184. package/package.json +2 -2
  185. package/src/common.css +11 -0
  186. package/src/components/Blocks.ts +2 -0
  187. package/src/components/Carousel/Carousel.ui.json +8 -0
  188. package/src/components/CarouselCard/CarouselCard.tsx +11 -5
  189. package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +1 -1
  190. package/src/components/CarouselTariffsCard/CarouselTariffsCard.example.json +11 -3
  191. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.tsx +3 -3
  192. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +29 -17
  193. package/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +1 -1
  194. package/src/components/LinkDocs/LinkDocsContent.ts +4 -0
  195. package/src/components/SwipeListControlBlock/SwipeListControlBlock.example.json +18 -0
  196. package/src/components/SwipeListControlBlock/SwipeListControlBlock.fixture.tsx +27 -0
  197. package/src/components/SwipeListControlBlock/SwipeListControlBlock.tsx +23 -0
  198. package/src/components/SwipeListControlBlock/SwipeListControlBlock.ui.json +1 -0
  199. package/src/components/SwipeListControlBlock/SwipeListControlBlockContent.ts +6 -0
  200. package/src/icons/ArrowRightIcon.svg +1 -1
  201. package/src/icons/ArrowTopRightIcon.svg +1 -0
  202. package/src/icons/IconName.ts +333 -6
  203. package/src/ui-kit/BlockWrapper.tsx +1 -1
  204. package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +19 -10
  205. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +6 -1
  206. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +6 -2
  207. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +20 -4
  208. package/src/ui-kit/SwipeListControl/SwipeListControlProps.ts +8 -0
  209. package/src/utils/style.ts +2 -0
@@ -1,49 +1,52 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { HeadlineCommonProps } from '../../model/HeadlineType';
3
- import type { UniBlockProps } from '../../model/JSXBlock';
4
- import { VNode } from '../../model/VNode';
5
2
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
6
3
  import { Button } from '../../ui-kit/Button/Button';
7
4
  import { Foldable } from '../../ui-kit/Foldable/Foldable';
8
5
  import { FoldablePartProps } from '../../ui-kit/Foldable/FoldablePartProps';
9
6
  import { FoldableSection } from '../../ui-kit/Foldable/FoldableSection';
7
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
10
8
  import { Heading } from '../../ui-kit/Heading/Heading';
11
9
  import { Icon } from '../../ui-kit/Icon/Icon';
12
10
  import { Img } from '../../ui-kit/Img/Img';
11
+ import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
13
12
  import type { CarouselTariffsCardContent } from './CarouselTariffsCardContent';
13
+ import type { HeadlineCommonProps } from '../../model/HeadlineType';
14
+ import type { Picture } from '../../model/Picture';
15
+ import type { UniBlockProps } from '../../model/JSXBlock';
16
+ import type { VNode } from '../../model/VNode';
14
17
 
15
18
  export interface CarouselTariffsCardProps extends CarouselTariffsCardContent, UniBlockProps {}
16
19
 
17
- const VISIBLE_ROWS_COUNT = 1;
20
+ const VISIBLE_CELLS_COUNT = 1;
18
21
 
19
22
  export const CarouselTariffsCard = JSX<CarouselTariffsCardProps>(
20
- ({ className = '', title, icon, isHighlighting, button, rows = [], ...rest }) => {
21
- const rowsNode = rows.map(renderCardInfo);
22
- const visibleRows = rowsNode.slice(0, VISIBLE_ROWS_COUNT);
23
- const hiddenRows = rowsNode.slice(VISIBLE_ROWS_COUNT);
23
+ ({ className = '', title, icon, isHighlighting, button, cardCells = [], ...rest }) => {
24
+ const cellsNode = cardCells.map(renderCardInfo);
25
+ const visibleCells = cellsNode.slice(0, VISIBLE_CELLS_COUNT);
26
+ const hiddenCells = cellsNode.slice(VISIBLE_CELLS_COUNT);
24
27
 
25
28
  return (
26
29
  <BlockWrapper
27
- className={`font-sans relative bg-white border border-gray min-w-[322px] p-8
30
+ className={`font-sans relative bg-white border border-gray min-w-[322px] p-8 flex flex-col
28
31
  ${getHitStyle(isHighlighting)}
29
32
  ${className}`}
30
33
  {...rest}
31
34
  >
32
35
  {isHighlighting ? renderHitIcon() : null}
33
- {icon?.src ? <Img image={icon} /> : null}
36
+ {renderIconBlock(icon)}
34
37
  {title ? (
35
38
  <Heading className="text-primary-text text-center pt-2" headingType="h5" title={title} />
36
39
  ) : null}
37
40
  {button ? <Button className="w-full mt-4" {...button} /> : null}
38
- {rows.length ? (
41
+ {cardCells.length ? (
39
42
  <Foldable
40
43
  renderFoldableSection={({ isUnfolded }) => (
41
44
  <div>
42
- {visibleRows}
43
- <FoldableSection isUnfolded={isUnfolded}>{hiddenRows}</FoldableSection>
45
+ {visibleCells}
46
+ <FoldableSection isUnfolded={isUnfolded}>{hiddenCells}</FoldableSection>
44
47
  </div>
45
48
  )}
46
- renderFoldButton={rows.length > 1 ? renderFoldButton : null}
49
+ renderFoldButton={cardCells.length > 1 ? renderFoldButton : null}
47
50
  />
48
51
  ) : null}
49
52
  </BlockWrapper>
@@ -51,8 +54,15 @@ export const CarouselTariffsCard = JSX<CarouselTariffsCardProps>(
51
54
  },
52
55
  );
53
56
 
57
+ const renderIconBlock = (icon?: Picture) => (
58
+ <div className="w-[267px] min-w-[267px] self-center">
59
+ {icon?.src ? <Img image={icon} /> : null}
60
+ {icon?.icon ? <Img image={getIconWithVersion(icon)} asSVG /> : null}
61
+ </div>
62
+ );
63
+
54
64
  const getHitStyle = (isHighlighting?: boolean): string =>
55
- isHighlighting ? 'mt-9 pt-[70px]' : 'mt-[70px] pt-9';
65
+ isHighlighting ? 'mt-9 pt-[70px]' : 'mt-[70px] pt-7';
56
66
 
57
67
  const renderFoldButton = ({ isUnfolded, onToggle }: FoldablePartProps): VNode => (
58
68
  <button
@@ -82,8 +92,10 @@ const renderCardInfo = (cell: HeadlineCommonProps, i: number): VNode => (
82
92
  );
83
93
 
84
94
  const renderHitIcon = (): VNode => (
85
- <div className="absolute -top-7 -right-4 h-[60px] w-[60px] bg-white flex flex-col items-center justify-center shadow-[0_4px_25px_rgba(0,0,0,0.07)]">
95
+ <div className="absolute -top-7 -right-4 h-[60px] w-[60px] bg-white flex flex-col items-center justify-center rounded-md shadow-[0_4px_25px_rgba(0,0,0,0.07)]">
86
96
  <Icon iconVersion="black" name="HeartIcon" width="23" height="22" asSVG />
87
- <div className="text-center">Хит</div>
97
+ <Paragraph size="text-s" font="font-normal" align="text-center" color="text-primary-text">
98
+ ХИТ
99
+ </Paragraph>
88
100
  </div>
89
101
  );
@@ -12,5 +12,5 @@ export type CarouselTariffsCardContent = TitleProps & {
12
12
  /** @title Кнопка */
13
13
  button?: ButtonProps;
14
14
  /** @title Ячейка */
15
- rows?: HeadlineCommonProps[];
15
+ cardCells?: HeadlineCommonProps[];
16
16
  };
@@ -43,5 +43,9 @@ export type LinkDocsContent = HeadlineCommonProps & {
43
43
  orientation?: ListOrientation; // TODO: мобильный проп
44
44
  /** @title Рамка элементов (моб.) */ // TODO: мобильный проп
45
45
  hasBorder?: boolean;
46
+ /**
47
+ * @title Выравнивание
48
+ * @default text-center
49
+ */
46
50
  align?: TextAlign;
47
51
  };
@@ -0,0 +1,18 @@
1
+ {
2
+ "content": {
3
+ "listType": "vertical-list"
4
+ },
5
+ "style": ["col-span-12", "h-96"],
6
+ "type": "SwipeListControlBlock",
7
+ "blocks": [
8
+ {
9
+ "type": "Headline",
10
+ "content": {
11
+ "title": "Заголовок блока",
12
+ "description": "Описание блока",
13
+ "headlineVersion": "M"
14
+ },
15
+ "style": ["col-span-12"]
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,23 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { renderChildren } from '../../BlockRenderer/renderChildren';
3
+ import type { JSXBlock, UniBlockProps } from '../../model/JSXBlock';
4
+ import { BlockWrapper } from '../../ui-kit/BlockWrapper';
5
+ import { SwipeListControl } from '../../ui-kit/SwipeListControl/SwipeListControl';
6
+ import type { SwipeListControlBlockContent } from './SwipeListControlBlockContent';
7
+
8
+ interface SwipeListControlBlockProps extends SwipeListControlBlockContent, UniBlockProps {}
9
+
10
+ export const SwipeListControlBlock: JSXBlock<SwipeListControlBlockProps> =
11
+ JSX<SwipeListControlBlockProps>(({ gap, listType, padding, showDots, options, ...rest }) => {
12
+ return (
13
+ <BlockWrapper {...rest}>
14
+ <SwipeListControl gap={gap} listType={listType} padding={padding} showDots={showDots}>
15
+ {renderChildren({ ...rest, options })}
16
+ </SwipeListControl>
17
+ </BlockWrapper>
18
+ );
19
+ });
20
+
21
+ SwipeListControlBlock.childrenTypes = {
22
+ exclude: ['SwipeListControlBlock'],
23
+ };
@@ -0,0 +1,6 @@
1
+ import type { SwipeListControlProps } from '../../ui-kit/SwipeListControl/SwipeListControlProps';
2
+
3
+ /**
4
+ * @title Swipe-контроллер
5
+ */
6
+ export type SwipeListControlBlockContent = SwipeListControlProps;
@@ -1 +1 @@
1
- <svg title="Стрелка 'Вправо'" isInverse="true" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M14.43 5.93 20.5 12l-6.07 6.07M11.01 12h9.32M3.5 12h3.47" stroke="#42AB44" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/></svg>
1
+ <svg title="Стрелка 'Вправо'" isInverse="true" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M14.43 5.93 20.5 12l-6.07 6.07M11.01 12h9.32M3.5 12h3.47" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/></svg>
@@ -0,0 +1 @@
1
+ <svg title="Стрелка 'Вверх-право'" isInverse="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6.734 4.11h5.657v5.656M3.855 12.645l5-5"/></svg>
@@ -7,11 +7,11 @@ export const IconsWithoutInversion = new Set([
7
7
  ]);
8
8
 
9
9
  export enum IconMap {
10
- ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon'
10
+ ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon'
11
11
  }
12
12
 
13
13
  export enum IconTitleMap {
14
- ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowUpIcon = 'Стрелка \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт'
14
+ ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт'
15
15
  }
16
16
 
17
17
  /**
@@ -19,7 +19,7 @@ export enum IconTitleMap {
19
19
  * @title Иконка
20
20
  * @enumNames [
21
21
  * "",
22
- * 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх\'', 'Банкомат', 'Банк', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт'
22
+ * 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Банкомат', 'Банк', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт'
23
23
  * ]
24
24
  */
25
- export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon';
25
+ export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon';
@@ -10,7 +10,7 @@ interface BlockWrapperProps extends UniBlockProps {
10
10
  }
11
11
 
12
12
  export const BlockWrapper = JSX<BlockWrapperProps>(
13
- ({ className, block, tag = 'section', role, children }) => {
13
+ ({ className = '', block, tag = 'section', role, children }) => {
14
14
  const Tag: any = tag;
15
15
 
16
16
  const ref = useBlockIntersectionObserver(block);
@@ -2,7 +2,8 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useCallback, useRef } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import type { IntersectionObserverOptions } from '../../hooks/useIntersectionObserver';
4
4
  import { mapChildren } from '../../utils/mapChildren';
5
- import type { SwipeContainerProps } from './SwipeListControlProps';
5
+ import { style } from '../../utils/style';
6
+ import type { SwipeContainerProps, SwipeListControlType } from './SwipeListControlProps';
6
7
  import { SwipeListItem } from './SwipeListItem';
7
8
 
8
9
  type ItemsVisibilityList = Array<IntersectionObserverEntry | undefined>;
@@ -20,6 +21,7 @@ interface SwipeListContainerProps extends SwipeContainerProps {
20
21
  snapAlign?: 'snap-start' | 'snap-center' | 'snap-end';
21
22
  onVisibleItemsChange?: (itemsVisibilityList: ItemsVisibilityList) => void;
22
23
  onVisibleIndicesChange?: (indices: number[]) => void;
24
+ listType?: SwipeListControlType;
23
25
  }
24
26
 
25
27
  const childStyleMap = ['min-w-[100%]', 'min-w-[50%]', 'min-w-[33.33%]', 'min-w-[25%]'];
@@ -32,6 +34,7 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
32
34
  visibleItemCount = 0,
33
35
  gap = 0,
34
36
  padding = 0,
37
+ listType = 'horizontal-list',
35
38
  snapAlign = 'snap-center',
36
39
  children,
37
40
  onVisibleItemsChange,
@@ -54,25 +57,31 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
54
57
  },
55
58
  [onVisibleItemsChange, onVisibleIndicesChange],
56
59
  );
60
+
57
61
  const additionPadding = visibleItemCount > 0 ? gap * Number(visibleItemCount) - 1 : 0;
58
62
 
63
+ const isHorizontalList = listType === 'horizontal-list';
64
+ const containerStyle = {
65
+ ...(isHorizontalList ? getContainerStyle(padding, additionPadding) : {}),
66
+ gap: `${gap}px`,
67
+ };
68
+
59
69
  return (
60
70
  <div
61
- className={`box-border overflow-auto flex horizontal-list no-scrollbar ${className}`}
62
- style={{
63
- ...getContainerStyle(padding, additionPadding),
64
- gap: `${gap}px`,
65
- }}
71
+ className={style('box-border overflow-auto no-scrollbar', listType, className)}
72
+ style={containerStyle}
66
73
  role="list"
67
74
  ref={containerRef}
68
75
  >
69
76
  {mapChildren((child, idx) => (
70
77
  <SwipeListItem
71
78
  key={String(idx)}
72
- className={`${snapAlign} ${
73
- visibleItemCount ? childStyleMap[visibleItemCount - 1] : ''
74
- }`}
75
- style={getContainerStyle(padding / 4)}
79
+ className={style(
80
+ snapAlign,
81
+ visibleItemCount ? childStyleMap[visibleItemCount - 1] : '',
82
+ listType === 'vertical-list' ? 'h-full' : '',
83
+ )}
84
+ style={isHorizontalList ? getContainerStyle(padding / 4) : {}}
76
85
  activeIndex={activeIndex}
77
86
  idx={idx}
78
87
  observerOptions={observerOptions}
@@ -1,4 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { style } from '../../utils/style';
2
3
  import { SwipeListContainer } from './SwipeListContainer';
3
4
  import { SwipeListControlDots } from './SwipeListControlDots';
4
5
  import type { SwipeListControlProps } from './SwipeListControlProps';
@@ -15,12 +16,13 @@ const DEFAULT_PADDING = 16;
15
16
 
16
17
  export const SwipeListControl = JSX<SwipeListControlProps>(
17
18
  ({
18
- className,
19
+ className = '',
19
20
  gap = DEFAULT_GAP,
20
21
  padding = DEFAULT_PADDING,
21
22
  showDots = true,
22
23
  children,
23
24
  onVisibleIndicesChange,
25
+ listType = 'horizontal-list',
24
26
  }) => {
25
27
  const itemCount = Array.isArray(children) ? children.length : 0;
26
28
 
@@ -31,7 +33,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
31
33
  const [activeIndex] = scroll.visibleIndicesRange;
32
34
 
33
35
  return (
34
- <div className={className}>
36
+ <div className={style(className, listType === 'vertical-list' ? 'relative h-full' : '')}>
35
37
  <SwipeListContainer
36
38
  containerRef={containerRef}
37
39
  activeIndex={activeIndex}
@@ -39,6 +41,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
39
41
  gap={gap}
40
42
  padding={padding}
41
43
  onVisibleIndicesChange={scroll.handleVisibleIndicesChange}
44
+ listType={listType}
42
45
  >
43
46
  {children}
44
47
  </SwipeListContainer>
@@ -47,6 +50,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
47
50
  containerRef={containerRef}
48
51
  activeIndex={activeIndex}
49
52
  dotCount={itemCount}
53
+ listType={listType}
50
54
  />
51
55
  ) : null}
52
56
  </div>
@@ -1,15 +1,29 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import type { SwipeListControlType } from './SwipeListControlProps';
2
3
 
3
- const dotStyle = 'cursor-pointer bg-primary-main h-2 rounded-full transition-width duration-300';
4
+ const containerStyles: Record<SwipeListControlType, string> = {
5
+ 'horizontal-list': 'mx-auto mt-5 w-fit',
6
+ 'vertical-list': 'absolute flex-col justify-center h-full top-0 left-4',
7
+ };
8
+
9
+ const activeDotStyles: Record<SwipeListControlType, string> = {
10
+ 'horizontal-list': 'w-6',
11
+ 'vertical-list': 'h-6',
12
+ };
13
+
14
+ const dotStyle = 'cursor-pointer bg-primary-main rounded-full transition-width duration-300';
15
+
16
+ const inactiveDotStyle = 'w-2 h-2 opacity-30';
4
17
 
5
18
  interface SwipeListControlDotsProps {
6
19
  containerRef?: { current: HTMLDivElement | null };
7
20
  activeIndex?: number;
8
21
  dotCount?: number;
22
+ listType?: SwipeListControlType;
9
23
  }
10
24
 
11
25
  export const SwipeListControlDots = JSX<SwipeListControlDotsProps>(
12
- ({ containerRef, activeIndex, dotCount = 0 }) => {
26
+ ({ containerRef, activeIndex, dotCount = 0, listType = 'horizontal-list' }) => {
13
27
  const handleClick = (idx: number) => {
14
28
  if (idx !== activeIndex && containerRef?.current) {
15
29
  containerRef.current.children[idx]?.scrollIntoView({
@@ -20,11 +34,13 @@ export const SwipeListControlDots = JSX<SwipeListControlDotsProps>(
20
34
  };
21
35
 
22
36
  return dotCount ? (
23
- <div className="flex gap-2 mx-auto mt-5 w-fit">
37
+ <div className={`flex gap-2 ${containerStyles[listType]}`}>
24
38
  {new Array(dotCount).fill(null).map((_, idx: number) => (
25
39
  <div
26
40
  key={String(idx)}
27
- className={`${dotStyle} ${idx === activeIndex ? 'w-6' : 'w-2 opacity-30'}`}
41
+ className={`${dotStyle} ${
42
+ idx === activeIndex ? activeDotStyles[listType] : inactiveDotStyle
43
+ }`}
28
44
  role="button"
29
45
  aria-hidden
30
46
  onClick={() => handleClick(idx)}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @title Вид
3
+ * @enumNames ["Горизонтальный", "Вертикальный"]
4
+ */
5
+ export type SwipeListControlType = 'horizontal-list' | 'vertical-list';
6
+
1
7
  /**
2
8
  * @title Контейнер
3
9
  */
@@ -15,5 +21,7 @@ export interface SwipeListControlProps extends SwipeContainerProps {
15
21
  className?: string;
16
22
  /** @title Точки-индикаторы */
17
23
  showDots?: boolean;
24
+ /** @hidden */
18
25
  onVisibleIndicesChange?: (indices: number[]) => void;
26
+ listType?: SwipeListControlType;
19
27
  }
@@ -0,0 +1,2 @@
1
+ export const style = (...atoms: (string | null | undefined)[]): string =>
2
+ atoms.filter(Boolean).join(' ');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.6.49",
3
+ "version": "0.7.1",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -188,7 +188,7 @@
188
188
  "path": "lib/common.css"
189
189
  },
190
190
  {
191
- "limit": "45 kB",
191
+ "limit": "47 kB",
192
192
  "path": "bundle/bundle.umd.min.js"
193
193
  }
194
194
  ],
package/src/common.css CHANGED
@@ -71,9 +71,20 @@ html {
71
71
  display: flex;
72
72
  overflow-x: scroll;
73
73
  -webkit-overflow-scrolling: touch;
74
+ -webkit-scroll-snap-type: x mandatory;
75
+ -ms-scroll-snap-type: x mandatory;
74
76
  scroll-snap-type: x mandatory;
75
77
  }
76
78
 
79
+ .vertical-list {
80
+ height: 100%;
81
+ overflow-y: scroll;
82
+ -webkit-overflow-scrolling: touch;
83
+ -webkit-scroll-snap-type: y mandatory;
84
+ -ms-scroll-snap-type: y mandatory;
85
+ scroll-snap-type: y mandatory;
86
+ }
87
+
77
88
  .gradient-color-text {
78
89
  background: linear-gradient(180deg, #42ab44 0%, #f6db7d 100%);
79
90
  -webkit-background-clip: text;
@@ -50,6 +50,7 @@ import { RichTextBlock } from './RichTextBlock/RichTextBlock';
50
50
  import { RollupItem } from './RollupItem/RollupItem';
51
51
  import { SafeDepositRental } from './SafeDepositRental/SafeDepositRental';
52
52
  import { StepsBlock } from './StepsBlock/StepsBlock';
53
+ import { SwipeListControlBlock } from './SwipeListControlBlock/SwipeListControlBlock';
53
54
  import { Tabs } from './Tabs/Tabs';
54
55
  import { TariffsTable } from './TariffsTable/TariffsTable';
55
56
  import { TextBlock } from './TextBlock/TextBlock';
@@ -109,6 +110,7 @@ export const Blocks: BlocksRegistry = {
109
110
  RollupItem,
110
111
  SafeDepositRental,
111
112
  StepsBlock,
113
+ SwipeListControlBlock,
112
114
  Tabs,
113
115
  TariffsTable,
114
116
  TextBlock,
@@ -0,0 +1,8 @@
1
+ {
2
+ "content": {},
3
+ "style": {
4
+ "ui:options": {
5
+ "minCols": 12
6
+ }
7
+ }
8
+ }
@@ -10,20 +10,26 @@ export interface CarouselCardProps extends CarouselCardContent, UniBlockProps {}
10
10
  const BLOCK_CLASSES = 'absolute border border-solid border-gray w-full h-full';
11
11
 
12
12
  const CARD_WIDTH_MAP: Record<CarouselCardVersion, string> = {
13
- normal: 'min-w-[1007px]',
13
+ normal: 'min-w-[970px]',
14
14
  mini: 'min-w-[355px]',
15
15
  };
16
16
 
17
17
  export const CarouselCard = JSX<CarouselCardProps>(
18
18
  ({ className = '', button, description, title, version = 'normal' }) => (
19
- <section className={`flex pb-9 pl-12 ${CARD_WIDTH_MAP[version]} ${className}`}>
19
+ <section className={`flex pb-9 pl-12 border-box ${CARD_WIDTH_MAP[version]} ${className}`}>
20
20
  <div className="relative w-full">
21
21
  <div className={`${BLOCK_CLASSES} z-10 top-9 right-12 bg-green-dark`} />
22
22
  <div className={`${BLOCK_CLASSES} z-10 top-6 right-8 bg-green`} />
23
23
  <div className={`${BLOCK_CLASSES} z-10 top-3 right-4 bg-green-light`} />
24
- <div className="relative bg-white z-10 py-6 px-10 border border-solid border-green-light">
25
- <Headline className="!p-0" title={title} description={description} headlineVersion="M" />
26
- {button ? <div className="mt-6">{renderButton({ button })}</div> : null}
24
+ <div className="relative bg-white z-10 p-10 border border-solid border-green-light">
25
+ <Headline
26
+ className="!p-0"
27
+ title={title}
28
+ description={description}
29
+ headlineVersion="L"
30
+ align="text-left"
31
+ />
32
+ {button ? <div className="mt-14">{renderButton({ button })}</div> : null}
27
33
  </div>
28
34
  </div>
29
35
  </section>
@@ -16,7 +16,7 @@ export const CarouselProgramsCard = JSX<CarouselTariffsCardProps>(
16
16
  className={`font-sans border border-gray flex min-w-[536px] ${VersionStyleMap[version]} ${className}`}
17
17
  {...rest}
18
18
  >
19
- <div className="w-[200px] min-w-[200px] self-end">
19
+ <div className="w-[200px] min-w-[200px] self-center">
20
20
  {icon?.icon ? <Img image={getIconWithVersion(icon)} asSVG /> : null}
21
21
  {icon?.src ? <Img image={icon} /> : null}
22
22
  </div>
@@ -1,13 +1,21 @@
1
1
  {
2
- "title": "Заголовок",
2
+ "title": "Заголовок карточки",
3
3
  "button": {
4
4
  "href": "",
5
5
  "text": "Кнопка",
6
6
  "target": "_self",
7
- "version": "primary"
7
+ "version": "secondary"
8
+ },
9
+ "icon": {
10
+ "icon": "",
11
+ "format": "webp",
12
+ "size": {
13
+ "width": 267,
14
+ "height": 73
15
+ }
8
16
  },
9
17
  "isHighlighting": false,
10
- "rows": [
18
+ "cardCells": [
11
19
  {
12
20
  "title": "Ячейка 1-1",
13
21
  "description": "Описание 1-1"
@@ -27,7 +27,7 @@ const buttonSecondary: ButtonProps = {
27
27
  version: 'secondary',
28
28
  };
29
29
 
30
- const rows = [
30
+ const cardCells = [
31
31
  { title: 'Открытие расчетного счета', description: 'Бесплатно' },
32
32
  { title: 'Внутрибанковские платежи', description: '0 ₽' },
33
33
  { title: 'Внешние платежи, до 10 шт.', description: '0 ₽' },
@@ -43,14 +43,14 @@ export const TARIFFS_CARD: CarouselTariffsCardContent = {
43
43
  title: 'Расчётный эконом',
44
44
  icon: imageMonth,
45
45
  button: buttonSecondary,
46
- rows,
46
+ cardCells,
47
47
  };
48
48
 
49
49
  export const TARIFFS_CARD_HIT: CarouselTariffsCardContent = {
50
50
  icon: imageMonth,
51
51
  title: 'Расчётный эконом',
52
52
  button,
53
- rows,
53
+ cardCells,
54
54
  isHighlighting: true,
55
55
  };
56
56