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

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 (252) 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/ExchangeRateTile.js +4 -4
  5. package/dist/ExchangeRateTile.js.map +1 -1
  6. package/dist/Footer/Footer.js +1 -1
  7. package/dist/Footer/Footer.js.map +1 -1
  8. package/dist/Footer/HorizontalNavigation.js +1 -1
  9. package/dist/Footer/HorizontalNavigation.js.map +1 -1
  10. package/dist/Footer/Sitemap.js +1 -1
  11. package/dist/Footer/SocialMedia.js +7 -7
  12. package/dist/Footer/SocialMedia.js.map +1 -1
  13. package/dist/Footer/TextInformation.js +1 -1
  14. package/dist/Footer/TextInformation.js.map +1 -1
  15. package/dist/Header/HeaderSecondaryMenu.js +2 -2
  16. package/dist/Header/HeaderSecondaryMenu.js.map +1 -1
  17. package/dist/ProductBlockInner.d.ts +2 -1
  18. package/dist/ProductBlockInner.js +3 -4
  19. package/dist/ProductBlockInner.js.map +1 -1
  20. package/dist/ProductTile.d.ts +2 -1
  21. package/dist/ProductTile.js.map +1 -1
  22. package/dist/ProjectSettings.d.ts +2 -0
  23. package/dist/ProjectSettings.js +3 -0
  24. package/dist/ProjectSettings.js.map +1 -1
  25. package/dist/StepsBlock.d.ts +2 -7
  26. package/dist/StepsBlock.js +2 -3
  27. package/dist/StepsBlock.js.map +1 -1
  28. package/dist/types.d.ts +0 -5
  29. package/dist/ui-kit/Icon.d.ts +11 -0
  30. package/dist/ui-kit/Icon.js +7 -0
  31. package/dist/ui-kit/Icon.js.map +1 -0
  32. package/dist/ui-kit/IconButton.d.ts +2 -1
  33. package/dist/ui-kit/IconButton.js +2 -3
  34. package/dist/ui-kit/IconButton.js.map +1 -1
  35. package/dist/ui-kit/SearchBar.js +4 -4
  36. package/dist/ui-kit/SearchBar.js.map +1 -1
  37. package/lib/BenefitsBlock.d.ts +7 -1
  38. package/lib/BenefitsBlock.js +2 -3
  39. package/lib/BenefitsBlock.js.map +1 -1
  40. package/lib/ExchangeRateTile.js +4 -4
  41. package/lib/ExchangeRateTile.js.map +1 -1
  42. package/lib/Footer/Footer.js +1 -1
  43. package/lib/Footer/Footer.js.map +1 -1
  44. package/lib/Footer/HorizontalNavigation.js +1 -1
  45. package/lib/Footer/HorizontalNavigation.js.map +1 -1
  46. package/lib/Footer/Sitemap.js +1 -1
  47. package/lib/Footer/SocialMedia.js +7 -7
  48. package/lib/Footer/SocialMedia.js.map +1 -1
  49. package/lib/Footer/TextInformation.js +1 -1
  50. package/lib/Footer/TextInformation.js.map +1 -1
  51. package/lib/Header/HeaderSecondaryMenu.js +2 -2
  52. package/lib/Header/HeaderSecondaryMenu.js.map +1 -1
  53. package/lib/ProductBlockInner.d.ts +2 -1
  54. package/lib/ProductBlockInner.js +3 -4
  55. package/lib/ProductBlockInner.js.map +1 -1
  56. package/lib/ProductTile.d.ts +2 -1
  57. package/lib/ProductTile.js.map +1 -1
  58. package/lib/ProjectSettings.d.ts +2 -0
  59. package/lib/ProjectSettings.js +3 -0
  60. package/lib/ProjectSettings.js.map +1 -1
  61. package/lib/StepsBlock.d.ts +2 -7
  62. package/lib/StepsBlock.js +2 -3
  63. package/lib/StepsBlock.js.map +1 -1
  64. package/lib/common.css +1 -1
  65. package/lib/types.d.ts +0 -5
  66. package/lib/ui-kit/Icon.d.ts +11 -0
  67. package/lib/ui-kit/Icon.js +5 -0
  68. package/lib/ui-kit/Icon.js.map +1 -0
  69. package/lib/ui-kit/IconButton.d.ts +2 -1
  70. package/lib/ui-kit/IconButton.js +2 -3
  71. package/lib/ui-kit/IconButton.js.map +1 -1
  72. package/lib/ui-kit/SearchBar.js +4 -4
  73. package/lib/ui-kit/SearchBar.js.map +1 -1
  74. package/package.json +7 -2
  75. package/src/BenefitsBlock.tsx +13 -6
  76. package/src/ContentPage.page.json +17 -1
  77. package/src/ExchangeRateTile.tsx +4 -4
  78. package/src/Footer/Footer.tsx +2 -2
  79. package/src/Footer/HorizontalNavigation.tsx +1 -1
  80. package/src/Footer/Sitemap.tsx +1 -1
  81. package/src/Footer/SocialMedia.tsx +9 -9
  82. package/src/Footer/TextInformation.tsx +2 -2
  83. package/src/Header/HeaderSecondaryMenu.tsx +5 -5
  84. package/src/MobileAppTile.fixture.tsx +16 -0
  85. package/src/ProductBlockInner.tsx +11 -9
  86. package/src/ProductTile.tsx +4 -3
  87. package/src/ProjectSettings.ts +4 -0
  88. package/src/StepsBlock.tsx +3 -4
  89. package/src/icons/ActualBalanceIcon.svg +186 -0
  90. package/src/icons/AppleIcon.svg +13 -0
  91. package/src/icons/CalendarIcon.svg +17 -0
  92. package/src/icons/ClockIcon.svg +208 -0
  93. package/src/icons/ComfortableCompIcon.svg +373 -0
  94. package/src/icons/DollarIcon.svg +10 -0
  95. package/src/icons/EmptyWalletIcon.svg +17 -0
  96. package/src/icons/EuroIcon.svg +10 -0
  97. package/src/icons/GridIcon.svg +7 -0
  98. package/src/icons/LoupeIcon.svg +9 -0
  99. package/src/icons/NewDocIcon.svg +250 -0
  100. package/src/icons/OkIcon.svg +6 -0
  101. package/src/icons/PassSendIcon.svg +237 -0
  102. package/src/icons/PercentageSquareIcon.svg +16 -0
  103. package/src/icons/PlayMarketIcon.svg +6 -0
  104. package/src/icons/ProfileIcon.svg +16 -0
  105. package/src/icons/SignDocsIcon.svg +287 -0
  106. package/src/icons/TelegramIcon.svg +6 -0
  107. package/{dist/Icons/VKIcon.js → src/icons/VKIcon.svg} +8 -6
  108. package/src/setup-fixture.ts +9 -5
  109. package/src/types.ts +0 -6
  110. package/src/ui-kit/Button.fixture.tsx +1 -1
  111. package/src/ui-kit/Icon.tsx +45 -0
  112. package/src/ui-kit/IconButton.tsx +5 -5
  113. package/src/ui-kit/SearchBar.tsx +26 -19
  114. package/dist/Icons/ActualBalanceIcon.d.ts +0 -1
  115. package/dist/Icons/ActualBalanceIcon.js +0 -12
  116. package/dist/Icons/ActualBalanceIcon.js.map +0 -1
  117. package/dist/Icons/AppleIcon.d.ts +0 -1
  118. package/dist/Icons/AppleIcon.js +0 -6
  119. package/dist/Icons/AppleIcon.js.map +0 -1
  120. package/dist/Icons/CalendarIcon.d.ts +0 -1
  121. package/dist/Icons/CalendarIcon.js +0 -6
  122. package/dist/Icons/CalendarIcon.js.map +0 -1
  123. package/dist/Icons/ClockIcon.d.ts +0 -1
  124. package/dist/Icons/ClockIcon.js +0 -6
  125. package/dist/Icons/ClockIcon.js.map +0 -1
  126. package/dist/Icons/ComfortableCompIcon.d.ts +0 -1
  127. package/dist/Icons/ComfortableCompIcon.js +0 -8
  128. package/dist/Icons/ComfortableCompIcon.js.map +0 -1
  129. package/dist/Icons/DollarIcon.d.ts +0 -1
  130. package/dist/Icons/DollarIcon.js +0 -6
  131. package/dist/Icons/DollarIcon.js.map +0 -1
  132. package/dist/Icons/EmptyWalletIcon.d.ts +0 -1
  133. package/dist/Icons/EmptyWalletIcon.js +0 -6
  134. package/dist/Icons/EmptyWalletIcon.js.map +0 -1
  135. package/dist/Icons/EuroIcon.d.ts +0 -1
  136. package/dist/Icons/EuroIcon.js +0 -6
  137. package/dist/Icons/EuroIcon.js.map +0 -1
  138. package/dist/Icons/GridIcon.d.ts +0 -1
  139. package/dist/Icons/GridIcon.js +0 -6
  140. package/dist/Icons/GridIcon.js.map +0 -1
  141. package/dist/Icons/LoupeIcon.d.ts +0 -1
  142. package/dist/Icons/LoupeIcon.js +0 -6
  143. package/dist/Icons/LoupeIcon.js.map +0 -1
  144. package/dist/Icons/NewDocIcon.d.ts +0 -1
  145. package/dist/Icons/NewDocIcon.js +0 -8
  146. package/dist/Icons/NewDocIcon.js.map +0 -1
  147. package/dist/Icons/OkIcon.d.ts +0 -1
  148. package/dist/Icons/OkIcon.js +0 -6
  149. package/dist/Icons/OkIcon.js.map +0 -1
  150. package/dist/Icons/PassSendIcon.d.ts +0 -1
  151. package/dist/Icons/PassSendIcon.js +0 -12
  152. package/dist/Icons/PassSendIcon.js.map +0 -1
  153. package/dist/Icons/PercentageSquareIcon.d.ts +0 -1
  154. package/dist/Icons/PercentageSquareIcon.js +0 -6
  155. package/dist/Icons/PercentageSquareIcon.js.map +0 -1
  156. package/dist/Icons/PlayMarket.d.ts +0 -1
  157. package/dist/Icons/PlayMarket.js +0 -6
  158. package/dist/Icons/PlayMarket.js.map +0 -1
  159. package/dist/Icons/ProfileIcon.d.ts +0 -1
  160. package/dist/Icons/ProfileIcon.js +0 -6
  161. package/dist/Icons/ProfileIcon.js.map +0 -1
  162. package/dist/Icons/SignDocsIcon.d.ts +0 -1
  163. package/dist/Icons/SignDocsIcon.js +0 -10
  164. package/dist/Icons/SignDocsIcon.js.map +0 -1
  165. package/dist/Icons/TelegramIcon.d.ts +0 -1
  166. package/dist/Icons/TelegramIcon.js +0 -6
  167. package/dist/Icons/TelegramIcon.js.map +0 -1
  168. package/dist/Icons/VKIcon.d.ts +0 -1
  169. package/dist/Icons/VKIcon.js.map +0 -1
  170. package/dist/Icons/index.d.ts +0 -19
  171. package/dist/Icons/index.js +0 -41
  172. package/dist/Icons/index.js.map +0 -1
  173. package/lib/Icons/ActualBalanceIcon.d.ts +0 -1
  174. package/lib/Icons/ActualBalanceIcon.js +0 -9
  175. package/lib/Icons/ActualBalanceIcon.js.map +0 -1
  176. package/lib/Icons/AppleIcon.d.ts +0 -1
  177. package/lib/Icons/AppleIcon.js +0 -3
  178. package/lib/Icons/AppleIcon.js.map +0 -1
  179. package/lib/Icons/CalendarIcon.d.ts +0 -1
  180. package/lib/Icons/CalendarIcon.js +0 -3
  181. package/lib/Icons/CalendarIcon.js.map +0 -1
  182. package/lib/Icons/ClockIcon.d.ts +0 -1
  183. package/lib/Icons/ClockIcon.js +0 -3
  184. package/lib/Icons/ClockIcon.js.map +0 -1
  185. package/lib/Icons/ComfortableCompIcon.d.ts +0 -1
  186. package/lib/Icons/ComfortableCompIcon.js +0 -5
  187. package/lib/Icons/ComfortableCompIcon.js.map +0 -1
  188. package/lib/Icons/DollarIcon.d.ts +0 -1
  189. package/lib/Icons/DollarIcon.js +0 -3
  190. package/lib/Icons/DollarIcon.js.map +0 -1
  191. package/lib/Icons/EmptyWalletIcon.d.ts +0 -1
  192. package/lib/Icons/EmptyWalletIcon.js +0 -3
  193. package/lib/Icons/EmptyWalletIcon.js.map +0 -1
  194. package/lib/Icons/EuroIcon.d.ts +0 -1
  195. package/lib/Icons/EuroIcon.js +0 -3
  196. package/lib/Icons/EuroIcon.js.map +0 -1
  197. package/lib/Icons/GridIcon.d.ts +0 -1
  198. package/lib/Icons/GridIcon.js +0 -3
  199. package/lib/Icons/GridIcon.js.map +0 -1
  200. package/lib/Icons/LoupeIcon.d.ts +0 -1
  201. package/lib/Icons/LoupeIcon.js +0 -3
  202. package/lib/Icons/LoupeIcon.js.map +0 -1
  203. package/lib/Icons/NewDocIcon.d.ts +0 -1
  204. package/lib/Icons/NewDocIcon.js +0 -5
  205. package/lib/Icons/NewDocIcon.js.map +0 -1
  206. package/lib/Icons/OkIcon.d.ts +0 -1
  207. package/lib/Icons/OkIcon.js +0 -3
  208. package/lib/Icons/OkIcon.js.map +0 -1
  209. package/lib/Icons/PassSendIcon.d.ts +0 -1
  210. package/lib/Icons/PassSendIcon.js +0 -9
  211. package/lib/Icons/PassSendIcon.js.map +0 -1
  212. package/lib/Icons/PercentageSquareIcon.d.ts +0 -1
  213. package/lib/Icons/PercentageSquareIcon.js +0 -3
  214. package/lib/Icons/PercentageSquareIcon.js.map +0 -1
  215. package/lib/Icons/PlayMarket.d.ts +0 -1
  216. package/lib/Icons/PlayMarket.js +0 -3
  217. package/lib/Icons/PlayMarket.js.map +0 -1
  218. package/lib/Icons/ProfileIcon.d.ts +0 -1
  219. package/lib/Icons/ProfileIcon.js +0 -3
  220. package/lib/Icons/ProfileIcon.js.map +0 -1
  221. package/lib/Icons/SignDocsIcon.d.ts +0 -1
  222. package/lib/Icons/SignDocsIcon.js +0 -7
  223. package/lib/Icons/SignDocsIcon.js.map +0 -1
  224. package/lib/Icons/TelegramIcon.d.ts +0 -1
  225. package/lib/Icons/TelegramIcon.js +0 -3
  226. package/lib/Icons/TelegramIcon.js.map +0 -1
  227. package/lib/Icons/VKIcon.d.ts +0 -1
  228. package/lib/Icons/VKIcon.js +0 -3
  229. package/lib/Icons/VKIcon.js.map +0 -1
  230. package/lib/Icons/index.d.ts +0 -19
  231. package/lib/Icons/index.js +0 -20
  232. package/lib/Icons/index.js.map +0 -1
  233. package/src/Icons/ActualBalanceIcon.tsx +0 -202
  234. package/src/Icons/AppleIcon.tsx +0 -15
  235. package/src/Icons/CalendarIcon.tsx +0 -19
  236. package/src/Icons/ClockIcon.tsx +0 -212
  237. package/src/Icons/ComfortableCompIcon.tsx +0 -379
  238. package/src/Icons/DollarIcon.tsx +0 -12
  239. package/src/Icons/EmptyWalletIcon.tsx +0 -25
  240. package/src/Icons/EuroIcon.tsx +0 -12
  241. package/src/Icons/GridIcon.tsx +0 -9
  242. package/src/Icons/LoupeIcon.tsx +0 -11
  243. package/src/Icons/NewDocIcon.tsx +0 -262
  244. package/src/Icons/OkIcon.tsx +0 -8
  245. package/src/Icons/PassSendIcon.tsx +0 -250
  246. package/src/Icons/PercentageSquareIcon.tsx +0 -18
  247. package/src/Icons/PlayMarket.tsx +0 -8
  248. package/src/Icons/ProfileIcon.tsx +0 -18
  249. package/src/Icons/SignDocsIcon.tsx +0 -295
  250. package/src/Icons/TelegramIcon.tsx +0 -8
  251. package/src/Icons/VKIcon.tsx +0 -10
  252. package/src/Icons/index.ts +0 -19
@@ -24,8 +24,8 @@ export interface FooterProps extends FooterContent, UniBlockProps {}
24
24
  export const Footer = JSX<FooterProps>(
25
25
  ({ className, documents, relatedEnterprises, contacts, socialMedia, topItems, context }) => {
26
26
  return (
27
- <footer className={`${className} px-9 py-2 bg-white rounded-bl-3xl rounded-br-3xl`}>
28
- <div className="flex items-stretch gap-32 py-8 xl:gap-8">
27
+ <footer className={`${className} px-9 py-10 bg-white`}>
28
+ <div className="flex items-stretch gap-32 pb-8 xl:gap-8">
29
29
  <Logo className={`${LEFT_COL_WIDTH_FULL_HD} ${LEFT_COL_WIDTH_SMALL_DESKTOP}`} />
30
30
  <SearchBar context={context} className="grow" />
31
31
  </div>
@@ -10,7 +10,7 @@ export const HorizontalNavigation = JSX<FooterLink>(({ className, links, context
10
10
  return (
11
11
  <div className={`${className || ''}`}>
12
12
  {links?.length ? (
13
- <div className="flex justify-between items-center gap-5 py-5 border-solid border-x-0 border-y-1 border-y-main-divider">
13
+ <div className="flex justify-between items-center gap-5 py-5 border-solid border-x-0 border-y border-y-main-divider">
14
14
  {links.map((_, i) => (
15
15
  <HorizontalNavigationLink
16
16
  key={String(i)}
@@ -48,7 +48,7 @@ interface ColumnItemProps extends LinkContent {
48
48
 
49
49
  const ColumnItem = JSX<ColumnItemProps>(({ text, href, target, index }) => (
50
50
  <a
51
- className="block font-sans font-normal text-base text-secondary-text hover:text-primary-text no-underline"
51
+ className="block font-sans font-normal text-base text-secondary-text hover:text-primary-main no-underline"
52
52
  href={href}
53
53
  target={target || '_self'}
54
54
  >
@@ -1,12 +1,12 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { LinkContent, UniBlockProps } from '../types';
3
- import { TelegramIcon, VKIcon, OkIcon } from '../Icons/index';
3
+ import { Icon, IconName } from '../ui-kit/Icon';
4
4
  import { useLink } from '../useLink';
5
5
 
6
- const ICONS_MAP = [
7
- { origins: ['t.me', 'telegram.org'], icon: TelegramIcon, label: 'Телеграм' },
8
- { origins: ['vk.com'], icon: VKIcon, label: 'ВКонтакте' },
9
- { origins: ['ok.ru'], icon: OkIcon, label: 'Одноклассники' },
6
+ const ICONS_MAP: Array<{ origins: string[]; icon: IconName; label: string }> = [
7
+ { origins: ['t.me', 'telegram.org'], icon: 'TelegramIcon', label: 'Телеграм' },
8
+ { origins: ['vk.com'], icon: 'VKIcon', label: 'ВКонтакте' },
9
+ { origins: ['ok.ru'], icon: 'OkIcon', label: 'Одноклассники' },
10
10
  ];
11
11
 
12
12
  export interface SocialMediaProps extends UniBlockProps {
@@ -17,7 +17,7 @@ export const SocialMedia = JSX<SocialMediaProps>(({ className, media, context })
17
17
  const router = context.useRouter();
18
18
  const { handlerDecorator } = context;
19
19
  return (
20
- <div className={`flex items-end justify-end gap-2 py-6 ${className || ''}`}>
20
+ <div className={`flex items-end justify-end gap-2 pt-[30px] pb-7 ${className || ''}`}>
21
21
  {media?.map((_, index) => (
22
22
  <MediaButton key={String(index)} {...useLink({ router, handlerDecorator }, _)} />
23
23
  ))}
@@ -30,17 +30,17 @@ interface MediaButtonProps {
30
30
  }
31
31
 
32
32
  const MediaButton = JSX<MediaButtonProps>(({ href }) => {
33
- const { icon: Icon, label } =
33
+ const { icon, label } =
34
34
  ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
35
35
  return (
36
36
  <a
37
- className="flex items-center justify-center border-solid border-1 border-main-divider rounded-full no-underline outline-none w-8 h-8"
37
+ className="flex items-center justify-center border-solid border border-main-divider rounded-full no-underline outline-none w-9 h-9"
38
38
  href={href}
39
39
  target="_blank"
40
40
  rel="noopener noreferrer"
41
41
  aria-label={label}
42
42
  >
43
- {Icon && <Icon className="block" />}
43
+ {icon && <Icon className="block" name={icon} /> /* TODO width & height */}
44
44
  </a>
45
45
  );
46
46
  });
@@ -8,9 +8,9 @@ export const TextInformation = JSX<FooterLink>(({ className, links, context }) =
8
8
  const { handlerDecorator } = context;
9
9
  return (
10
10
  <div className={`${className || ''}`}>
11
- <div className="py-[5px]">
11
+ <div className="pt-5 pb-[5px]">
12
12
  <span className="font-sans font-normal text-xs text-secondary-text">
13
- {`\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00AB;Россельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.`}
13
+ {`\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.`}
14
14
  </span>
15
15
  </div>
16
16
  {links?.length ? (
@@ -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>