@redneckz/wildless-cms-uni-blocks 0.2.61 → 0.2.64

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 (274) hide show
  1. package/dist/BenefitsBlock.d.ts +7 -1
  2. package/dist/BenefitsBlock.js +2 -3
  3. package/dist/BenefitsBlock.js.map +1 -1
  4. package/dist/Blocks.d.ts +3 -1
  5. package/dist/Blocks.js +2 -0
  6. package/dist/Blocks.js.map +1 -1
  7. package/dist/ExchangeRateTile.js +4 -4
  8. package/dist/ExchangeRateTile.js.map +1 -1
  9. package/dist/Footer/Footer.js +1 -1
  10. package/dist/Footer/Footer.js.map +1 -1
  11. package/dist/Footer/HorizontalNavigation.js +1 -1
  12. package/dist/Footer/HorizontalNavigation.js.map +1 -1
  13. package/dist/Footer/Sitemap.js +1 -1
  14. package/dist/Footer/SocialMedia.js +7 -7
  15. package/dist/Footer/SocialMedia.js.map +1 -1
  16. package/dist/Footer/TextInformation.js +1 -1
  17. package/dist/Footer/TextInformation.js.map +1 -1
  18. package/dist/Gallery.d.ts +16 -0
  19. package/dist/Gallery.js +37 -0
  20. package/dist/Gallery.js.map +1 -0
  21. package/dist/Header/HeaderSecondaryMenu.js +2 -2
  22. package/dist/Header/HeaderSecondaryMenu.js.map +1 -1
  23. package/dist/ProductBlockInner.d.ts +2 -1
  24. package/dist/ProductBlockInner.js +3 -4
  25. package/dist/ProductBlockInner.js.map +1 -1
  26. package/dist/ProductTile.d.ts +2 -1
  27. package/dist/ProductTile.js.map +1 -1
  28. package/dist/ProjectSettings.d.ts +2 -0
  29. package/dist/ProjectSettings.js +3 -0
  30. package/dist/ProjectSettings.js.map +1 -1
  31. package/dist/StepsBlock.d.ts +2 -7
  32. package/dist/StepsBlock.js +2 -3
  33. package/dist/StepsBlock.js.map +1 -1
  34. package/dist/types.d.ts +0 -5
  35. package/dist/ui-kit/ArrowButton.d.ts +6 -0
  36. package/dist/ui-kit/ArrowButton.js +8 -0
  37. package/dist/ui-kit/ArrowButton.js.map +1 -0
  38. package/dist/ui-kit/Icon.d.ts +11 -0
  39. package/dist/ui-kit/Icon.js +7 -0
  40. package/dist/ui-kit/Icon.js.map +1 -0
  41. package/dist/ui-kit/IconButton.d.ts +2 -1
  42. package/dist/ui-kit/IconButton.js +2 -3
  43. package/dist/ui-kit/IconButton.js.map +1 -1
  44. package/dist/ui-kit/SearchBar.js +4 -4
  45. package/dist/ui-kit/SearchBar.js.map +1 -1
  46. package/lib/BenefitsBlock.d.ts +7 -1
  47. package/lib/BenefitsBlock.js +2 -3
  48. package/lib/BenefitsBlock.js.map +1 -1
  49. package/lib/Blocks.d.ts +3 -1
  50. package/lib/Blocks.js +2 -0
  51. package/lib/Blocks.js.map +1 -1
  52. package/lib/ExchangeRateTile.js +4 -4
  53. package/lib/ExchangeRateTile.js.map +1 -1
  54. package/lib/Footer/Footer.js +1 -1
  55. package/lib/Footer/Footer.js.map +1 -1
  56. package/lib/Footer/HorizontalNavigation.js +1 -1
  57. package/lib/Footer/HorizontalNavigation.js.map +1 -1
  58. package/lib/Footer/Sitemap.js +1 -1
  59. package/lib/Footer/SocialMedia.js +7 -7
  60. package/lib/Footer/SocialMedia.js.map +1 -1
  61. package/lib/Footer/TextInformation.js +1 -1
  62. package/lib/Footer/TextInformation.js.map +1 -1
  63. package/lib/Gallery.d.ts +16 -0
  64. package/lib/Gallery.js +35 -0
  65. package/lib/Gallery.js.map +1 -0
  66. package/lib/Header/HeaderSecondaryMenu.js +2 -2
  67. package/lib/Header/HeaderSecondaryMenu.js.map +1 -1
  68. package/lib/ProductBlockInner.d.ts +2 -1
  69. package/lib/ProductBlockInner.js +3 -4
  70. package/lib/ProductBlockInner.js.map +1 -1
  71. package/lib/ProductTile.d.ts +2 -1
  72. package/lib/ProductTile.js.map +1 -1
  73. package/lib/ProjectSettings.d.ts +2 -0
  74. package/lib/ProjectSettings.js +3 -0
  75. package/lib/ProjectSettings.js.map +1 -1
  76. package/lib/StepsBlock.d.ts +2 -7
  77. package/lib/StepsBlock.js +2 -3
  78. package/lib/StepsBlock.js.map +1 -1
  79. package/lib/common.css +1 -1
  80. package/lib/types.d.ts +0 -5
  81. package/lib/ui-kit/ArrowButton.d.ts +6 -0
  82. package/lib/ui-kit/ArrowButton.js +6 -0
  83. package/lib/ui-kit/ArrowButton.js.map +1 -0
  84. package/lib/ui-kit/Icon.d.ts +11 -0
  85. package/lib/ui-kit/Icon.js +5 -0
  86. package/lib/ui-kit/Icon.js.map +1 -0
  87. package/lib/ui-kit/IconButton.d.ts +2 -1
  88. package/lib/ui-kit/IconButton.js +2 -3
  89. package/lib/ui-kit/IconButton.js.map +1 -1
  90. package/lib/ui-kit/SearchBar.js +4 -4
  91. package/lib/ui-kit/SearchBar.js.map +1 -1
  92. package/package.json +9 -4
  93. package/src/BenefitsBlock.tsx +13 -6
  94. package/src/Blocks.ts +4 -1
  95. package/src/ContentPage.page.json +17 -1
  96. package/src/ExchangeRateTile.tsx +4 -4
  97. package/src/Footer/Footer.tsx +2 -2
  98. package/src/Footer/HorizontalNavigation.tsx +1 -1
  99. package/src/Footer/Sitemap.tsx +1 -1
  100. package/src/Footer/SocialMedia.tsx +9 -9
  101. package/src/Footer/TextInformation.tsx +2 -2
  102. package/src/Gallery.fixture.tsx +213 -0
  103. package/src/Gallery.tsx +132 -0
  104. package/src/Header/HeaderSecondaryMenu.tsx +5 -5
  105. package/src/MobileAppTile.fixture.tsx +16 -0
  106. package/src/ProductBlockInner.tsx +11 -9
  107. package/src/ProductTile.tsx +4 -3
  108. package/src/ProjectSettings.ts +4 -0
  109. package/src/StepsBlock.tsx +3 -4
  110. package/src/icons/ActualBalanceIcon.svg +186 -0
  111. package/src/icons/AppleIcon.svg +13 -0
  112. package/src/icons/CalendarIcon.svg +17 -0
  113. package/src/icons/ClockIcon.svg +208 -0
  114. package/src/icons/ComfortableCompIcon.svg +373 -0
  115. package/src/icons/DollarIcon.svg +10 -0
  116. package/src/icons/EmptyWalletIcon.svg +17 -0
  117. package/src/icons/EuroIcon.svg +10 -0
  118. package/src/icons/GridIcon.svg +7 -0
  119. package/src/icons/LoupeIcon.svg +9 -0
  120. package/src/icons/NewDocIcon.svg +250 -0
  121. package/src/icons/OkIcon.svg +6 -0
  122. package/src/icons/PassSendIcon.svg +237 -0
  123. package/src/icons/PercentageSquareIcon.svg +16 -0
  124. package/src/icons/PlayMarketIcon.svg +6 -0
  125. package/src/icons/ProfileIcon.svg +16 -0
  126. package/src/icons/SignDocsIcon.svg +287 -0
  127. package/src/icons/TelegramIcon.svg +6 -0
  128. package/{dist/Icons/VKIcon.js → src/icons/VKIcon.svg} +8 -6
  129. package/src/setup-fixture.ts +9 -5
  130. package/src/types.ts +0 -6
  131. package/src/ui-kit/ArrowButton.tsx +34 -0
  132. package/src/ui-kit/Button.fixture.tsx +1 -1
  133. package/src/ui-kit/Icon.tsx +46 -0
  134. package/src/ui-kit/IconButton.tsx +5 -5
  135. package/src/ui-kit/SearchBar.tsx +26 -19
  136. package/dist/Icons/ActualBalanceIcon.d.ts +0 -1
  137. package/dist/Icons/ActualBalanceIcon.js +0 -12
  138. package/dist/Icons/ActualBalanceIcon.js.map +0 -1
  139. package/dist/Icons/AppleIcon.d.ts +0 -1
  140. package/dist/Icons/AppleIcon.js +0 -6
  141. package/dist/Icons/AppleIcon.js.map +0 -1
  142. package/dist/Icons/CalendarIcon.d.ts +0 -1
  143. package/dist/Icons/CalendarIcon.js +0 -6
  144. package/dist/Icons/CalendarIcon.js.map +0 -1
  145. package/dist/Icons/ClockIcon.d.ts +0 -1
  146. package/dist/Icons/ClockIcon.js +0 -6
  147. package/dist/Icons/ClockIcon.js.map +0 -1
  148. package/dist/Icons/ComfortableCompIcon.d.ts +0 -1
  149. package/dist/Icons/ComfortableCompIcon.js +0 -8
  150. package/dist/Icons/ComfortableCompIcon.js.map +0 -1
  151. package/dist/Icons/DollarIcon.d.ts +0 -1
  152. package/dist/Icons/DollarIcon.js +0 -6
  153. package/dist/Icons/DollarIcon.js.map +0 -1
  154. package/dist/Icons/EmptyWalletIcon.d.ts +0 -1
  155. package/dist/Icons/EmptyWalletIcon.js +0 -6
  156. package/dist/Icons/EmptyWalletIcon.js.map +0 -1
  157. package/dist/Icons/EuroIcon.d.ts +0 -1
  158. package/dist/Icons/EuroIcon.js +0 -6
  159. package/dist/Icons/EuroIcon.js.map +0 -1
  160. package/dist/Icons/GridIcon.d.ts +0 -1
  161. package/dist/Icons/GridIcon.js +0 -6
  162. package/dist/Icons/GridIcon.js.map +0 -1
  163. package/dist/Icons/LoupeIcon.d.ts +0 -1
  164. package/dist/Icons/LoupeIcon.js +0 -6
  165. package/dist/Icons/LoupeIcon.js.map +0 -1
  166. package/dist/Icons/NewDocIcon.d.ts +0 -1
  167. package/dist/Icons/NewDocIcon.js +0 -8
  168. package/dist/Icons/NewDocIcon.js.map +0 -1
  169. package/dist/Icons/OkIcon.d.ts +0 -1
  170. package/dist/Icons/OkIcon.js +0 -6
  171. package/dist/Icons/OkIcon.js.map +0 -1
  172. package/dist/Icons/PassSendIcon.d.ts +0 -1
  173. package/dist/Icons/PassSendIcon.js +0 -12
  174. package/dist/Icons/PassSendIcon.js.map +0 -1
  175. package/dist/Icons/PercentageSquareIcon.d.ts +0 -1
  176. package/dist/Icons/PercentageSquareIcon.js +0 -6
  177. package/dist/Icons/PercentageSquareIcon.js.map +0 -1
  178. package/dist/Icons/PlayMarket.d.ts +0 -1
  179. package/dist/Icons/PlayMarket.js +0 -6
  180. package/dist/Icons/PlayMarket.js.map +0 -1
  181. package/dist/Icons/ProfileIcon.d.ts +0 -1
  182. package/dist/Icons/ProfileIcon.js +0 -6
  183. package/dist/Icons/ProfileIcon.js.map +0 -1
  184. package/dist/Icons/SignDocsIcon.d.ts +0 -1
  185. package/dist/Icons/SignDocsIcon.js +0 -10
  186. package/dist/Icons/SignDocsIcon.js.map +0 -1
  187. package/dist/Icons/TelegramIcon.d.ts +0 -1
  188. package/dist/Icons/TelegramIcon.js +0 -6
  189. package/dist/Icons/TelegramIcon.js.map +0 -1
  190. package/dist/Icons/VKIcon.d.ts +0 -1
  191. package/dist/Icons/VKIcon.js.map +0 -1
  192. package/dist/Icons/index.d.ts +0 -19
  193. package/dist/Icons/index.js +0 -41
  194. package/dist/Icons/index.js.map +0 -1
  195. package/lib/Icons/ActualBalanceIcon.d.ts +0 -1
  196. package/lib/Icons/ActualBalanceIcon.js +0 -9
  197. package/lib/Icons/ActualBalanceIcon.js.map +0 -1
  198. package/lib/Icons/AppleIcon.d.ts +0 -1
  199. package/lib/Icons/AppleIcon.js +0 -3
  200. package/lib/Icons/AppleIcon.js.map +0 -1
  201. package/lib/Icons/CalendarIcon.d.ts +0 -1
  202. package/lib/Icons/CalendarIcon.js +0 -3
  203. package/lib/Icons/CalendarIcon.js.map +0 -1
  204. package/lib/Icons/ClockIcon.d.ts +0 -1
  205. package/lib/Icons/ClockIcon.js +0 -3
  206. package/lib/Icons/ClockIcon.js.map +0 -1
  207. package/lib/Icons/ComfortableCompIcon.d.ts +0 -1
  208. package/lib/Icons/ComfortableCompIcon.js +0 -5
  209. package/lib/Icons/ComfortableCompIcon.js.map +0 -1
  210. package/lib/Icons/DollarIcon.d.ts +0 -1
  211. package/lib/Icons/DollarIcon.js +0 -3
  212. package/lib/Icons/DollarIcon.js.map +0 -1
  213. package/lib/Icons/EmptyWalletIcon.d.ts +0 -1
  214. package/lib/Icons/EmptyWalletIcon.js +0 -3
  215. package/lib/Icons/EmptyWalletIcon.js.map +0 -1
  216. package/lib/Icons/EuroIcon.d.ts +0 -1
  217. package/lib/Icons/EuroIcon.js +0 -3
  218. package/lib/Icons/EuroIcon.js.map +0 -1
  219. package/lib/Icons/GridIcon.d.ts +0 -1
  220. package/lib/Icons/GridIcon.js +0 -3
  221. package/lib/Icons/GridIcon.js.map +0 -1
  222. package/lib/Icons/LoupeIcon.d.ts +0 -1
  223. package/lib/Icons/LoupeIcon.js +0 -3
  224. package/lib/Icons/LoupeIcon.js.map +0 -1
  225. package/lib/Icons/NewDocIcon.d.ts +0 -1
  226. package/lib/Icons/NewDocIcon.js +0 -5
  227. package/lib/Icons/NewDocIcon.js.map +0 -1
  228. package/lib/Icons/OkIcon.d.ts +0 -1
  229. package/lib/Icons/OkIcon.js +0 -3
  230. package/lib/Icons/OkIcon.js.map +0 -1
  231. package/lib/Icons/PassSendIcon.d.ts +0 -1
  232. package/lib/Icons/PassSendIcon.js +0 -9
  233. package/lib/Icons/PassSendIcon.js.map +0 -1
  234. package/lib/Icons/PercentageSquareIcon.d.ts +0 -1
  235. package/lib/Icons/PercentageSquareIcon.js +0 -3
  236. package/lib/Icons/PercentageSquareIcon.js.map +0 -1
  237. package/lib/Icons/PlayMarket.d.ts +0 -1
  238. package/lib/Icons/PlayMarket.js +0 -3
  239. package/lib/Icons/PlayMarket.js.map +0 -1
  240. package/lib/Icons/ProfileIcon.d.ts +0 -1
  241. package/lib/Icons/ProfileIcon.js +0 -3
  242. package/lib/Icons/ProfileIcon.js.map +0 -1
  243. package/lib/Icons/SignDocsIcon.d.ts +0 -1
  244. package/lib/Icons/SignDocsIcon.js +0 -7
  245. package/lib/Icons/SignDocsIcon.js.map +0 -1
  246. package/lib/Icons/TelegramIcon.d.ts +0 -1
  247. package/lib/Icons/TelegramIcon.js +0 -3
  248. package/lib/Icons/TelegramIcon.js.map +0 -1
  249. package/lib/Icons/VKIcon.d.ts +0 -1
  250. package/lib/Icons/VKIcon.js +0 -3
  251. package/lib/Icons/VKIcon.js.map +0 -1
  252. package/lib/Icons/index.d.ts +0 -19
  253. package/lib/Icons/index.js +0 -20
  254. package/lib/Icons/index.js.map +0 -1
  255. package/src/Icons/ActualBalanceIcon.tsx +0 -202
  256. package/src/Icons/AppleIcon.tsx +0 -15
  257. package/src/Icons/CalendarIcon.tsx +0 -19
  258. package/src/Icons/ClockIcon.tsx +0 -212
  259. package/src/Icons/ComfortableCompIcon.tsx +0 -379
  260. package/src/Icons/DollarIcon.tsx +0 -12
  261. package/src/Icons/EmptyWalletIcon.tsx +0 -25
  262. package/src/Icons/EuroIcon.tsx +0 -12
  263. package/src/Icons/GridIcon.tsx +0 -9
  264. package/src/Icons/LoupeIcon.tsx +0 -11
  265. package/src/Icons/NewDocIcon.tsx +0 -262
  266. package/src/Icons/OkIcon.tsx +0 -8
  267. package/src/Icons/PassSendIcon.tsx +0 -250
  268. package/src/Icons/PercentageSquareIcon.tsx +0 -18
  269. package/src/Icons/PlayMarket.tsx +0 -8
  270. package/src/Icons/ProfileIcon.tsx +0 -18
  271. package/src/Icons/SignDocsIcon.tsx +0 -295
  272. package/src/Icons/TelegramIcon.tsx +0 -8
  273. package/src/Icons/VKIcon.tsx +0 -10
  274. package/src/Icons/index.ts +0 -19
@@ -0,0 +1,132 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { Img } from './Img';
3
+ import { Picture, UniBlockProps } from './types';
4
+ import { ArrowButton } from './ui-kit/ArrowButton';
5
+ import { BlockItem } from './ui-kit/BlockItem';
6
+ import { Button } from './ui-kit/Button';
7
+ import { Title } from './ui-kit/Title';
8
+
9
+ export interface GalleryCard {
10
+ title?: string;
11
+ description?: string;
12
+ image?: Picture;
13
+ href?: string;
14
+ items?: string[];
15
+ }
16
+
17
+ export interface GalleryContent {
18
+ title?: string;
19
+ description?: string;
20
+ cards?: GalleryCard[];
21
+ }
22
+
23
+ export interface GalleryProps extends GalleryContent, UniBlockProps {}
24
+
25
+ const CARD_WIDTH = 384;
26
+ const GALLERY_LENGTH_FOR_SCROLL = 3;
27
+
28
+ export const Gallery = JSX<GalleryProps>(
29
+ ({ title, description, context, cards = [], className }) => {
30
+ const [activeCardIndex, setActiveCardIndex] = context.useState(0);
31
+
32
+ function handleNextClick() {
33
+ setActiveCardIndex(activeCardIndex + 1);
34
+ }
35
+
36
+ function handlePrevClick() {
37
+ setActiveCardIndex(activeCardIndex - 1);
38
+ }
39
+
40
+ const isGalleryScrollAvailable = cards?.length > GALLERY_LENGTH_FOR_SCROLL;
41
+
42
+ const showNextButton =
43
+ isGalleryScrollAvailable && cards?.length - activeCardIndex > GALLERY_LENGTH_FOR_SCROLL;
44
+
45
+ const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
46
+
47
+ return (
48
+ <section
49
+ className={`relative font-sans text-primary-text bg-white p-12 overflow-hidden ${className}`}
50
+ >
51
+ <div className="flex flex-col items-center mb-8">
52
+ <Title className="font-medium m-0 text-centers">{title}</Title>
53
+ {description ? (
54
+ <div className="font-normal text-base max-w-[600px] mt-3">{description}</div>
55
+ ) : null}
56
+ </div>
57
+ <div
58
+ // Need to place all cards at the center if count of cards less than 4
59
+ className={`flex ${
60
+ cards?.length <= GALLERY_LENGTH_FOR_SCROLL ? 'justify-center' : ''
61
+ } duration-1000`}
62
+ // All cards has same width
63
+ style={{ transform: `translateX(-${activeCardIndex * CARD_WIDTH}px)` }}
64
+ role="list"
65
+ >
66
+ {cards?.map(renderCard)}
67
+ </div>
68
+ {showPrevButton && (
69
+ <ArrowButton className="absolute top-1/2 left-8" onClick={handlePrevClick} />
70
+ )}
71
+ {showNextButton && (
72
+ <ArrowButton
73
+ className="absolute top-1/2 right-1 z-20 rotate-180"
74
+ onClick={handleNextClick}
75
+ />
76
+ )}
77
+ <div
78
+ className="absolute top-0 right-0 bottom-0 w-[84px]"
79
+ style={{
80
+ background: 'linear-gradient(270deg, #FFFFFF 34.89%, rgba(255, 255, 255, 0) 92.52%)',
81
+ }}
82
+ ></div>
83
+ </section>
84
+ );
85
+ },
86
+ );
87
+
88
+ function renderCard(card: GalleryCard, key: number) {
89
+ return (
90
+ <div
91
+ className="border-solid border rounded-md border-main-divider p-7 mx-2 flex flex-col justify-between items-stretch min-w-[308px] w-[308px] w-full"
92
+ role="listitem"
93
+ key={key}
94
+ >
95
+ <div>
96
+ {card.image?.src ? (
97
+ <div className="flex justify-center">
98
+ <Img className="mb-6" image={card.image} />
99
+ </div>
100
+ ) : null}
101
+ {card.title ? (
102
+ <h4
103
+ className={`font-medium text-xl m-0 ${
104
+ !card.description && !card.items?.length ? 'text-center' : ''
105
+ }`}
106
+ >
107
+ {card.title}
108
+ </h4>
109
+ ) : null}
110
+ {card.description ? (
111
+ <div className="font-normal text-sm text-secondary-text mt-2">{card.description}</div>
112
+ ) : null}
113
+ {card.items?.length ? renderItems(card.items) : null}
114
+ </div>
115
+ {card.href ? (
116
+ <Button className="mt-6" text="Подробнее" version="secondary" href={card.href} />
117
+ ) : null}
118
+ </div>
119
+ );
120
+ }
121
+
122
+ function renderItems(items: string[] = []) {
123
+ return (
124
+ <section className="max-w-[308px] mt-2" role="list">
125
+ {items.map((item, i) => (
126
+ <BlockItem key={String(i)}>
127
+ <span className="text-sm text-secondary-text">{item}</span>
128
+ </BlockItem>
129
+ ))}
130
+ </section>
131
+ );
132
+ }
@@ -1,8 +1,8 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { GridIcon, LoupeIcon, ProfileIcon } from '../Icons/index';
2
+ import type { UniBlockProps } from '../types';
3
+ import { Icon } from '../ui-kit/Icon';
3
4
  import { TopItem } from '../ui-kit/TopItem';
4
5
  import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
5
- import type { UniBlockProps } from '../types';
6
6
 
7
7
  interface HeaderSecondaryMenuContent {
8
8
  defaultLocation?: string;
@@ -36,19 +36,19 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
36
36
  className="mr-5 text-primary-text hover:text-primary-main"
37
37
  ariaLabel="Поиск по сайту"
38
38
  >
39
- {LoupeIcon({ 'aria-hidden': true })}
39
+ <Icon name="LoupeIcon" aria-hidden="true" />
40
40
  </HeaderSecondaryMenuButton>
41
41
  <HeaderSecondaryMenuButton
42
42
  className="mr-5 text-primary-text hover:text-primary-main"
43
43
  ariaLabel="Профиль"
44
44
  >
45
- {ProfileIcon({ 'aria-hidden': true })}
45
+ <Icon name="ProfileIcon" aria-hidden="true" />
46
46
  </HeaderSecondaryMenuButton>
47
47
  <HeaderSecondaryMenuButton
48
48
  className="mr-5 text-secondary-light hover:text-secondary-active min-w-[32px] min-h-[32px]"
49
49
  ariaLabel="Дополнительные ссылки"
50
50
  >
51
- {GridIcon({ 'aria-hidden': true })}
51
+ <Icon name="GridIcon" aria-hidden="true" />
52
52
  </HeaderSecondaryMenuButton>
53
53
  </div>
54
54
  );
@@ -12,6 +12,22 @@ export default {
12
12
  href: 'https://rshbnaturaldbo.onelink.me/qhkF/f182074f?af_qr=true',
13
13
  src: 'data:image/png;base64,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',
14
14
  }}
15
+ buttons={[
16
+ {
17
+ aboveText: 'Загрузите в',
18
+ text: 'App Store',
19
+ icon: 'AppleIcon',
20
+ href: '#',
21
+ version: 'secondary',
22
+ },
23
+ {
24
+ aboveText: 'Доступно в',
25
+ text: 'Google Play',
26
+ icon: 'PlayMarketIcon',
27
+ href: '#',
28
+ version: 'secondary',
29
+ },
30
+ ]}
15
31
  />
16
32
  </div>
17
33
  ),
@@ -1,12 +1,11 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { EmptyWalletIcon, PercentageSquareIcon, CalendarIcon } from './Icons/index';
3
- import type { UniBlockProps, Benefit } from './types';
4
- import { BaseTile } from './BaseTile';
5
- import { Title } from './ui-kit/Title';
6
2
  import type { BaseTileContent } from './BaseTile';
3
+ import { BaseTile } from './BaseTile';
4
+ import type { Benefit } from './BenefitsBlock';
7
5
  import { Img } from './Img';
8
-
9
- const ICONS = { EmptyWalletIcon, PercentageSquareIcon, CalendarIcon };
6
+ import type { UniBlockProps } from './types';
7
+ import { Icon } from './ui-kit/Icon';
8
+ import { Title } from './ui-kit/Title';
10
9
 
11
10
  export interface ProductBlockInnerContent extends BaseTileContent {
12
11
  benefits?: Benefit[];
@@ -40,9 +39,12 @@ function renderBenefit(benefit: Benefit, i: number) {
40
39
  return (
41
40
  <div key={String(i)} className="flex gap-4 items-center">
42
41
  {benefit.icon && (
43
- <div className="w-[50px] h-[50px] min-w-[50px] min-h-[50px] bg-main rounded-full p-[10px] box-border">
44
- {ICONS[benefit.icon as keyof typeof ICONS]?.()}
45
- </div>
42
+ <Icon
43
+ className="w-[50px] h-[50px] min-w-[50px] min-h-[50px] bg-main rounded-full p-[10px] box-border"
44
+ name={benefit.icon}
45
+ width="24"
46
+ height="24"
47
+ />
46
48
  )}
47
49
  <div className="flex gap-1 flex-col h-full">
48
50
  <h4 className="font-medium text-xl m-0">{benefit.label}</h4>
@@ -1,8 +1,9 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { UniBlockProps, Benefit } from './types';
3
- import { BlockVersion } from './types';
4
- import { Tile } from './Tile';
5
2
  import type { BaseTileContent } from './BaseTile';
3
+ import type { Benefit } from './BenefitsBlock';
4
+ import { Tile } from './Tile';
5
+ import type { UniBlockProps } from './types';
6
+ import { BlockVersion } from './types';
6
7
 
7
8
  export interface ProductTileContent extends BaseTileContent {
8
9
  benefits?: Benefit[];
@@ -5,6 +5,7 @@ export interface ProjectSettings {
5
5
  FORCED_DRAFT_FLOW: boolean;
6
6
  ENABLE_ASSIST?: boolean;
7
7
  SITEMAP?: string;
8
+ CDN?: string; // Should ends with "/"
8
9
  }
9
10
 
10
11
  export const projectSettings = new (class implements ProjectSettings {
@@ -35,4 +36,7 @@ export const projectSettings = new (class implements ProjectSettings {
35
36
  get SITEMAP() {
36
37
  return this._.SITEMAP;
37
38
  }
39
+ get CDN() {
40
+ return this._.CDN;
41
+ }
38
42
  })();
@@ -1,14 +1,13 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { NewDocIcon, PassSendIcon, ActualBalanceIcon } from './Icons/index';
3
2
  import type { UniBlockProps } from './types';
3
+ import { Icon, IconName } from './ui-kit/Icon';
4
4
  import { Title } from './ui-kit/Title';
5
5
  import { joinList } from './utils/joinList';
6
6
 
7
- const ICONS = { NewDocIcon, PassSendIcon, ActualBalanceIcon };
8
7
  export interface Step {
9
8
  label: string;
10
9
  description?: string;
11
- icon?: keyof typeof ICONS;
10
+ icon?: IconName;
12
11
  }
13
12
 
14
13
  export interface StepsBlockContent {
@@ -44,7 +43,7 @@ const renderStepIcon = (step: Step, i: number) => {
44
43
  return (
45
44
  <div key={String(i)} className="flex flex-col items-center text-center relative">
46
45
  <div className="h-[100px] w-[100px] min-w-[100px] min-h-[100px] bg-secondary-light rounded-full p-[26px] box-border z-10">
47
- {(step.icon && ICONS[step.icon]?.({ width: 48, height: 48 })) || (
46
+ {(step.icon && <Icon name={step.icon} width="48" height="48" />) || (
48
47
  <span className="font-medium text-title-sm text-secondary-text">{i + 1}</span>
49
48
  )}
50
49
  </div>
@@ -0,0 +1,186 @@
1
+ <svg
2
+ width="48"
3
+ height="48"
4
+ viewBox="0 0 70 70"
5
+ fill="none"
6
+ xmlns="http://www.w3.org/2000/svg">
7
+ <mask
8
+ id="mask0_2530_3510"
9
+ style="mask-type: alpha"
10
+ maskUnits="userSpaceOnUse"
11
+ x="2"
12
+ y="4"
13
+ width="55"
14
+ height="61"
15
+ >
16
+ <path d="M35.058 4.24L2.116 48.392l21.841 16.296L56.9 20.536 35.058 4.24z" fill="#fff" />
17
+ </mask>
18
+ <g mask="url(#mask0_2530_3510)">
19
+ <path
20
+ d="M35.058 4.24L2.116 48.392l21.841 16.296L56.9 20.536 35.058 4.24z"
21
+ fill="url(#paint0_linear_2530_3510)"
22
+ />
23
+ <path
24
+ d="M35.058 4.24L2.116 48.392l21.841 16.296L56.9 20.536 35.058 4.24z"
25
+ fill="url(#paint1_linear_2530_3510)"
26
+ />
27
+ <path d="M49.367 12.968l-33.47 21.717 2.132 1.616 38.285-18.808-6.947-4.525z" fill="#FA552D" />
28
+ <path
29
+ d="M49.367 12.968l-33.47 21.717 2.132 1.616 38.285-18.808-6.947-4.525z"
30
+ fill="url(#paint2_linear_2530_3510)"
31
+ />
32
+ <path
33
+ d="M49.367 12.968l-33.47 21.717 2.132 1.616 38.285-18.808-6.947-4.525z"
34
+ fill="url(#paint3_linear_2530_3510)"
35
+ />
36
+ <path fill="#42AB44" d="M0.908203 41.4221H12.851203V56.5531H0.908203z" />
37
+ </g>
38
+ <mask
39
+ id="mask1_2530_3510"
40
+ style="mask-type: alpha"
41
+ maskUnits="userSpaceOnUse"
42
+ x="6"
43
+ y="14"
44
+ width="62"
45
+ height="50"
46
+ >
47
+ <path d="M55.187 14.567L6.004 39.377l12.274 24.33 49.183-24.81-12.274-24.33z" fill="#fff" />
48
+ </mask>
49
+ <g mask="url(#mask1_2530_3510)">
50
+ <path d="M55.187 14.567L6.004 39.377l12.274 24.33 49.183-24.81-12.274-24.33z" fill="#FFCDBD" />
51
+ <path
52
+ d="M55.187 14.567L6.004 39.377l12.274 24.33 49.183-24.81-12.274-24.33z"
53
+ fill="url(#paint4_linear_2530_3510)"
54
+ />
55
+ <path d="M67.462 33.264l-54.495 8.05 3.982 26.958 54.495-8.05-3.982-26.958z" fill="#42AB44" />
56
+ </g>
57
+ <mask
58
+ id="mask2_2530_3510"
59
+ style="mask-type: alpha"
60
+ maskUnits="userSpaceOnUse"
61
+ x="4"
62
+ y="30"
63
+ width="59"
64
+ height="36"
65
+ >
66
+ <path d="M58.603 30.767l-54.496 8.05L8.09 65.775l54.496-8.05-3.982-26.958z" fill="#fff" />
67
+ </mask>
68
+ <g mask="url(#mask2_2530_3510)">
69
+ <path
70
+ d="M58.603 30.767l-54.496 8.05L8.09 65.775l54.496-8.05-3.982-26.958z"
71
+ fill="url(#paint5_linear_2530_3510)"
72
+ />
73
+ <path
74
+ fill-rule="evenodd"
75
+ clip-rule="evenodd"
76
+ d="M58.603 30.765L4.107 38.814l.54 3.652 13.994-2.067 2.902 19.65-13.99 2.066.54 3.652 13.99-2.066v.007l22.709-3.355-.001-.006 17.798-2.63-.54-3.651-17.797 2.629-2.903-19.65 17.793-2.629-.539-3.651z"
77
+ fill="url(#paint6_linear_2530_3510)"
78
+ />
79
+ <path
80
+ fill-rule="evenodd"
81
+ clip-rule="evenodd"
82
+ d="M58.603 30.765L4.107 38.814l.54 3.652 13.994-2.067 2.902 19.65-13.99 2.066.54 3.652 13.99-2.066v.007l22.709-3.355-.001-.006 17.798-2.63-.54-3.651-17.797 2.629-2.903-19.65 17.793-2.629-.539-3.651z"
83
+ fill="url(#paint7_linear_2530_3510)"
84
+ />
85
+ <path
86
+ d="M48.36 32.281l-7.541 1.114L44.8 60.353l7.543-1.114-3.982-26.958zM56.743 38.907l-4.241.627a1.308 1.308 0 01-.382-2.587l4.241-.627a1.308 1.308 0 01.382 2.587z"
87
+ fill="#42AB44"
88
+ />
89
+ <path
90
+ d="M31.702 55.28l-2.33.344-.802-5.428-1.724.254-.166-1.128 1.724-.255-1.101-7.45 4.67-.69c.965-.142 1.822-.085 2.572.17.751.256 1.362.681 1.836 1.276.471.596.773 1.329.903 2.206.131.89.048 1.681-.252 2.376-.3.695-.787 1.26-1.462 1.7-.675.44-1.5.73-2.47.874l-2.196.324.802 5.427h-.004zm2.631-3.974l.167 1.128-7.204 1.064-.166-1.128 7.203-1.064zm-2.205-3.512a6.002 6.002 0 001.552-.43c.452-.2.795-.492 1.023-.88.229-.386.296-.905.2-1.556-.082-.554-.264-.993-.545-1.314a2.099 2.099 0 00-1.092-.651c-.446-.114-.965-.125-1.553-.038l-1.805.267.712 4.823 1.508-.223v.002z"
91
+ fill="#fff"
92
+ />
93
+ </g>
94
+ <defs>
95
+ <linearGradient
96
+ id="paint0_linear_2530_3510"
97
+ x1="14.7502"
98
+ y1="4.23757"
99
+ x2="26.9602"
100
+ y2="26.3432"
101
+ gradientUnits="userSpaceOnUse"
102
+ >
103
+ <stop stop-color="#FEFFCF" />
104
+ <stop offset="1" stop-color="#FFE7DA" />
105
+ </linearGradient>
106
+ <linearGradient
107
+ id="paint1_linear_2530_3510"
108
+ x1="18.587"
109
+ y1="26.316"
110
+ x2="32.8984"
111
+ y2="36.8759"
112
+ gradientUnits="userSpaceOnUse"
113
+ >
114
+ <stop stop-color="#DCFFE5" />
115
+ <stop offset="1" stop-color="#EBE78C" />
116
+ </linearGradient>
117
+ <linearGradient
118
+ id="paint2_linear_2530_3510"
119
+ x1="50.4489"
120
+ y1="15.511"
121
+ x2="26.7341"
122
+ y2="29.0153"
123
+ gradientUnits="userSpaceOnUse"
124
+ >
125
+ <stop stop-color="#FFA183" />
126
+ <stop offset="1" stop-color="#FFA183" stop-opacity="0" />
127
+ </linearGradient>
128
+ <linearGradient
129
+ id="paint3_linear_2530_3510"
130
+ x1="49.3436"
131
+ y1="-56.8124"
132
+ x2="-1.00392"
133
+ y2="-52.0477"
134
+ gradientUnits="userSpaceOnUse"
135
+ >
136
+ <stop stop-color="#42AB44" />
137
+ <stop offset="1" stop-color="#201B37" />
138
+ </linearGradient>
139
+ <linearGradient
140
+ id="paint4_linear_2530_3510"
141
+ x1="30.5957"
142
+ y1="26.9721"
143
+ x2="38.6904"
144
+ y2="42.8088"
145
+ gradientUnits="userSpaceOnUse"
146
+ >
147
+ <stop stop-color="#DCFFE5" />
148
+ <stop offset="1" stop-color="#EBE78C" />
149
+ </linearGradient>
150
+ <linearGradient
151
+ id="paint5_linear_2530_3510"
152
+ x1="4.59823"
153
+ y1="42.1396"
154
+ x2="53.0558"
155
+ y2="55.1262"
156
+ gradientUnits="userSpaceOnUse"
157
+ >
158
+ <stop stop-color="#FFF7F4" />
159
+ <stop offset="0.34234" stop-color="#FEFFCF" />
160
+ <stop offset="1" stop-color="#FFE7DA" />
161
+ <stop offset="1" stop-color="#FFE7DA" />
162
+ </linearGradient>
163
+ <linearGradient
164
+ id="paint6_linear_2530_3510"
165
+ x1="19.1708"
166
+ y1="32.1466"
167
+ x2="29.8454"
168
+ y2="57.3534"
169
+ gradientUnits="userSpaceOnUse"
170
+ >
171
+ <stop stop-color="#FFCA42" />
172
+ <stop offset="1" stop-color="#FFA183" />
173
+ </linearGradient>
174
+ <linearGradient
175
+ id="paint7_linear_2530_3510"
176
+ x1="20.2683"
177
+ y1="42.9389"
178
+ x2="26.6235"
179
+ y2="64.3382"
180
+ gradientUnits="userSpaceOnUse"
181
+ >
182
+ <stop stop-color="#7DC15D" />
183
+ <stop offset="1" stop-color="#FEE54F" />
184
+ </linearGradient>
185
+ </defs>
186
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#a)">
3
+ <path
4
+ d="M19.406 12.761c-.023-3.028 2.793-4.511 2.93-4.572-1.603-2.073-4.075-2.357-4.968-2.377-2.083-.204-4.098 1.117-5.174 1.117-1.076 0-2.725-1.097-4.488-1.056-2.266.04-4.395 1.198-5.563 3.007-2.404 3.698-.618 9.124 1.694 12.09 1.145 1.464 2.496 3.09 4.259 3.028 1.717-.06 2.358-.975 4.441-.975 2.06 0 2.656.975 4.465.935 1.854-.02 3.022-1.463 4.12-2.947 1.329-1.666 1.855-3.332 1.878-3.413 0 0-3.549-1.2-3.594-4.837Zm-3.389-8.92c.916-1.037 1.557-2.419 1.374-3.841-1.35.061-3.022.833-3.984 1.829-.847.894-1.625 2.337-1.42 3.698 1.512.102 3.069-.67 4.03-1.686Z"
5
+ fill="#42AB44"
6
+ />
7
+ </g>
8
+ <defs>
9
+ <clipPath id="a">
10
+ <rect width="24" height="24" rx="6" fill="#fff" />
11
+ </clipPath>
12
+ </defs>
13
+ </svg>
@@ -0,0 +1,17 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
2
+ <path
3
+ stroke="#1C1C1C"
4
+ stroke-linecap="round"
5
+ stroke-linejoin="round"
6
+ stroke-miterlimit="10"
7
+ stroke-width="2"
8
+ d="M8 2v3M16 2v3M3.5 9.09h17M3 13.01V8.5c0-3 1.5-5 5-5h8c3.5 0 5 2 5 5V17c0 3-1.5 5-5 5H8c-3.5 0-5-2-5-5"
9
+ />
10
+ <path
11
+ stroke="#42AB44"
12
+ stroke-linecap="round"
13
+ stroke-linejoin="round"
14
+ stroke-width="3"
15
+ d="M15.991 13h.018M15.991 17.006h.018M11.991 13h.018M11.991 17.006h.018M7.991 13h.018M7.991 17.006h.018"
16
+ />
17
+ </svg>