@redneckz/wildless-cms-uni-blocks 0.2.59 → 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 (298) hide show
  1. package/dist/BaseTile.d.ts +2 -1
  2. package/dist/BaseTile.js +2 -15
  3. package/dist/BaseTile.js.map +1 -1
  4. package/dist/BenefitsBlock.d.ts +7 -1
  5. package/dist/BenefitsBlock.js +2 -3
  6. package/dist/BenefitsBlock.js.map +1 -1
  7. package/dist/Blocks.d.ts +3 -1
  8. package/dist/Blocks.js +2 -0
  9. package/dist/Blocks.js.map +1 -1
  10. package/dist/ContentPage.js +1 -1
  11. package/dist/ContentPage.js.map +1 -1
  12. package/dist/ExchangeRateTile.js +4 -4
  13. package/dist/ExchangeRateTile.js.map +1 -1
  14. package/dist/Footer/Footer.js +1 -1
  15. package/dist/Footer/Footer.js.map +1 -1
  16. package/dist/Footer/HorizontalNavigation.js +1 -1
  17. package/dist/Footer/HorizontalNavigation.js.map +1 -1
  18. package/dist/Footer/Sitemap.js +1 -1
  19. package/dist/Footer/SocialMedia.js +7 -7
  20. package/dist/Footer/SocialMedia.js.map +1 -1
  21. package/dist/Footer/TextInformation.js +1 -1
  22. package/dist/Footer/TextInformation.js.map +1 -1
  23. package/dist/Header/HeaderSecondaryMenu.js +2 -2
  24. package/dist/Header/HeaderSecondaryMenu.js.map +1 -1
  25. package/dist/MobileBlocks.d.ts +1 -0
  26. package/dist/MobileBlocks.js +2 -0
  27. package/dist/MobileBlocks.js.map +1 -1
  28. package/dist/ProductBlockInner.d.ts +2 -1
  29. package/dist/ProductBlockInner.js +4 -4
  30. package/dist/ProductBlockInner.js.map +1 -1
  31. package/dist/ProductTile.d.ts +2 -1
  32. package/dist/ProductTile.js.map +1 -1
  33. package/dist/ProjectSettings.d.ts +2 -0
  34. package/dist/ProjectSettings.js +3 -0
  35. package/dist/ProjectSettings.js.map +1 -1
  36. package/dist/StepsBlock.d.ts +2 -7
  37. package/dist/StepsBlock.js +4 -4
  38. package/dist/StepsBlock.js.map +1 -1
  39. package/dist/TextBlock.d.ts +14 -0
  40. package/dist/TextBlock.js +36 -0
  41. package/dist/TextBlock.js.map +1 -0
  42. package/dist/types.d.ts +0 -6
  43. package/dist/ui-kit/Button.js +1 -1
  44. package/dist/ui-kit/Icon.d.ts +11 -0
  45. package/dist/ui-kit/Icon.js +7 -0
  46. package/dist/ui-kit/Icon.js.map +1 -0
  47. package/dist/ui-kit/IconButton.d.ts +2 -1
  48. package/dist/ui-kit/IconButton.js +2 -3
  49. package/dist/ui-kit/IconButton.js.map +1 -1
  50. package/dist/ui-kit/SearchBar.js +4 -4
  51. package/dist/ui-kit/SearchBar.js.map +1 -1
  52. package/dist/ui-kit/Title.d.ts +11 -0
  53. package/dist/ui-kit/Title.js +17 -0
  54. package/dist/ui-kit/Title.js.map +1 -0
  55. package/lib/BaseTile.d.ts +2 -1
  56. package/lib/BaseTile.js +2 -15
  57. package/lib/BaseTile.js.map +1 -1
  58. package/lib/BenefitsBlock.d.ts +7 -1
  59. package/lib/BenefitsBlock.js +2 -3
  60. package/lib/BenefitsBlock.js.map +1 -1
  61. package/lib/Blocks.d.ts +3 -1
  62. package/lib/Blocks.js +2 -0
  63. package/lib/Blocks.js.map +1 -1
  64. package/lib/ContentPage.js +1 -1
  65. package/lib/ContentPage.js.map +1 -1
  66. package/lib/ExchangeRateTile.js +4 -4
  67. package/lib/ExchangeRateTile.js.map +1 -1
  68. package/lib/Footer/Footer.js +1 -1
  69. package/lib/Footer/Footer.js.map +1 -1
  70. package/lib/Footer/HorizontalNavigation.js +1 -1
  71. package/lib/Footer/HorizontalNavigation.js.map +1 -1
  72. package/lib/Footer/Sitemap.js +1 -1
  73. package/lib/Footer/SocialMedia.js +7 -7
  74. package/lib/Footer/SocialMedia.js.map +1 -1
  75. package/lib/Footer/TextInformation.js +1 -1
  76. package/lib/Footer/TextInformation.js.map +1 -1
  77. package/lib/Header/HeaderSecondaryMenu.js +2 -2
  78. package/lib/Header/HeaderSecondaryMenu.js.map +1 -1
  79. package/lib/MobileBlocks.d.ts +1 -0
  80. package/lib/MobileBlocks.js +2 -0
  81. package/lib/MobileBlocks.js.map +1 -1
  82. package/lib/ProductBlockInner.d.ts +2 -1
  83. package/lib/ProductBlockInner.js +4 -4
  84. package/lib/ProductBlockInner.js.map +1 -1
  85. package/lib/ProductTile.d.ts +2 -1
  86. package/lib/ProductTile.js.map +1 -1
  87. package/lib/ProjectSettings.d.ts +2 -0
  88. package/lib/ProjectSettings.js +3 -0
  89. package/lib/ProjectSettings.js.map +1 -1
  90. package/lib/StepsBlock.d.ts +2 -7
  91. package/lib/StepsBlock.js +4 -4
  92. package/lib/StepsBlock.js.map +1 -1
  93. package/lib/TextBlock.d.ts +14 -0
  94. package/lib/TextBlock.js +34 -0
  95. package/lib/TextBlock.js.map +1 -0
  96. package/lib/common.css +1 -1
  97. package/lib/types.d.ts +0 -6
  98. package/lib/ui-kit/Button.js +1 -1
  99. package/lib/ui-kit/Icon.d.ts +11 -0
  100. package/lib/ui-kit/Icon.js +5 -0
  101. package/lib/ui-kit/Icon.js.map +1 -0
  102. package/lib/ui-kit/IconButton.d.ts +2 -1
  103. package/lib/ui-kit/IconButton.js +2 -3
  104. package/lib/ui-kit/IconButton.js.map +1 -1
  105. package/lib/ui-kit/SearchBar.js +4 -4
  106. package/lib/ui-kit/SearchBar.js.map +1 -1
  107. package/lib/ui-kit/Title.d.ts +11 -0
  108. package/lib/ui-kit/Title.js +15 -0
  109. package/lib/ui-kit/Title.js.map +1 -0
  110. package/package.json +7 -2
  111. package/src/BaseTile.tsx +8 -17
  112. package/src/BenefitsBlock.tsx +13 -6
  113. package/src/Blocks.ts +3 -0
  114. package/src/ContentPage.page.json +29 -1
  115. package/src/ContentPage.tsx +1 -1
  116. package/src/ExchangeRateTile.tsx +4 -4
  117. package/src/Footer/Footer.tsx +2 -2
  118. package/src/Footer/HorizontalNavigation.tsx +1 -1
  119. package/src/Footer/Sitemap.tsx +1 -1
  120. package/src/Footer/SocialMedia.tsx +9 -9
  121. package/src/Footer/TextInformation.tsx +2 -2
  122. package/src/Header/HeaderSecondaryMenu.tsx +5 -5
  123. package/src/MobileAppTile.fixture.tsx +16 -0
  124. package/src/MobileBlocks.ts +2 -0
  125. package/src/ProductBlockInner.tsx +13 -10
  126. package/src/ProductTile.tsx +4 -3
  127. package/src/ProjectSettings.ts +4 -0
  128. package/src/StepsBlock.tsx +5 -5
  129. package/src/TextBlock.fixture.tsx +116 -0
  130. package/src/TextBlock.tsx +72 -0
  131. package/src/Tile.tsx +1 -1
  132. package/src/common.css +15 -15
  133. package/src/icons/ActualBalanceIcon.svg +186 -0
  134. package/src/icons/AppleIcon.svg +13 -0
  135. package/src/icons/CalendarIcon.svg +17 -0
  136. package/src/icons/ClockIcon.svg +208 -0
  137. package/src/icons/ComfortableCompIcon.svg +373 -0
  138. package/src/icons/DollarIcon.svg +10 -0
  139. package/src/icons/EmptyWalletIcon.svg +17 -0
  140. package/src/icons/EuroIcon.svg +10 -0
  141. package/src/icons/GridIcon.svg +7 -0
  142. package/src/icons/LoupeIcon.svg +9 -0
  143. package/src/icons/NewDocIcon.svg +250 -0
  144. package/src/icons/OkIcon.svg +6 -0
  145. package/src/icons/PassSendIcon.svg +237 -0
  146. package/src/icons/PercentageSquareIcon.svg +16 -0
  147. package/src/icons/PlayMarketIcon.svg +6 -0
  148. package/src/icons/ProfileIcon.svg +16 -0
  149. package/src/icons/SignDocsIcon.svg +287 -0
  150. package/src/icons/TelegramIcon.svg +6 -0
  151. package/{dist/Icons/VKIcon.js → src/icons/VKIcon.svg} +8 -6
  152. package/src/setup-fixture.ts +15 -7
  153. package/src/types.ts +0 -8
  154. package/src/ui-kit/Button.fixture.tsx +1 -1
  155. package/src/ui-kit/Button.tsx +1 -1
  156. package/src/ui-kit/Icon.tsx +45 -0
  157. package/src/ui-kit/IconButton.tsx +5 -5
  158. package/src/ui-kit/SearchBar.tsx +26 -19
  159. package/src/ui-kit/Title.tsx +25 -0
  160. package/dist/Icons/ActualBalanceIcon.d.ts +0 -1
  161. package/dist/Icons/ActualBalanceIcon.js +0 -12
  162. package/dist/Icons/ActualBalanceIcon.js.map +0 -1
  163. package/dist/Icons/AppleIcon.d.ts +0 -1
  164. package/dist/Icons/AppleIcon.js +0 -6
  165. package/dist/Icons/AppleIcon.js.map +0 -1
  166. package/dist/Icons/CalendarIcon.d.ts +0 -1
  167. package/dist/Icons/CalendarIcon.js +0 -6
  168. package/dist/Icons/CalendarIcon.js.map +0 -1
  169. package/dist/Icons/ClockIcon.d.ts +0 -1
  170. package/dist/Icons/ClockIcon.js +0 -6
  171. package/dist/Icons/ClockIcon.js.map +0 -1
  172. package/dist/Icons/ComfortableCompIcon.d.ts +0 -1
  173. package/dist/Icons/ComfortableCompIcon.js +0 -8
  174. package/dist/Icons/ComfortableCompIcon.js.map +0 -1
  175. package/dist/Icons/DollarIcon.d.ts +0 -1
  176. package/dist/Icons/DollarIcon.js +0 -6
  177. package/dist/Icons/DollarIcon.js.map +0 -1
  178. package/dist/Icons/EmptyWalletIcon.d.ts +0 -1
  179. package/dist/Icons/EmptyWalletIcon.js +0 -6
  180. package/dist/Icons/EmptyWalletIcon.js.map +0 -1
  181. package/dist/Icons/EuroIcon.d.ts +0 -1
  182. package/dist/Icons/EuroIcon.js +0 -6
  183. package/dist/Icons/EuroIcon.js.map +0 -1
  184. package/dist/Icons/GridIcon.d.ts +0 -1
  185. package/dist/Icons/GridIcon.js +0 -6
  186. package/dist/Icons/GridIcon.js.map +0 -1
  187. package/dist/Icons/LoupeIcon.d.ts +0 -1
  188. package/dist/Icons/LoupeIcon.js +0 -6
  189. package/dist/Icons/LoupeIcon.js.map +0 -1
  190. package/dist/Icons/NewDocIcon.d.ts +0 -1
  191. package/dist/Icons/NewDocIcon.js +0 -8
  192. package/dist/Icons/NewDocIcon.js.map +0 -1
  193. package/dist/Icons/OkIcon.d.ts +0 -1
  194. package/dist/Icons/OkIcon.js +0 -6
  195. package/dist/Icons/OkIcon.js.map +0 -1
  196. package/dist/Icons/PassSendIcon.d.ts +0 -1
  197. package/dist/Icons/PassSendIcon.js +0 -12
  198. package/dist/Icons/PassSendIcon.js.map +0 -1
  199. package/dist/Icons/PercentageSquareIcon.d.ts +0 -1
  200. package/dist/Icons/PercentageSquareIcon.js +0 -6
  201. package/dist/Icons/PercentageSquareIcon.js.map +0 -1
  202. package/dist/Icons/PlayMarket.d.ts +0 -1
  203. package/dist/Icons/PlayMarket.js +0 -6
  204. package/dist/Icons/PlayMarket.js.map +0 -1
  205. package/dist/Icons/ProfileIcon.d.ts +0 -1
  206. package/dist/Icons/ProfileIcon.js +0 -6
  207. package/dist/Icons/ProfileIcon.js.map +0 -1
  208. package/dist/Icons/SignDocsIcon.d.ts +0 -1
  209. package/dist/Icons/SignDocsIcon.js +0 -10
  210. package/dist/Icons/SignDocsIcon.js.map +0 -1
  211. package/dist/Icons/TelegramIcon.d.ts +0 -1
  212. package/dist/Icons/TelegramIcon.js +0 -6
  213. package/dist/Icons/TelegramIcon.js.map +0 -1
  214. package/dist/Icons/VKIcon.d.ts +0 -1
  215. package/dist/Icons/VKIcon.js.map +0 -1
  216. package/dist/Icons/index.d.ts +0 -19
  217. package/dist/Icons/index.js +0 -41
  218. package/dist/Icons/index.js.map +0 -1
  219. package/lib/Icons/ActualBalanceIcon.d.ts +0 -1
  220. package/lib/Icons/ActualBalanceIcon.js +0 -9
  221. package/lib/Icons/ActualBalanceIcon.js.map +0 -1
  222. package/lib/Icons/AppleIcon.d.ts +0 -1
  223. package/lib/Icons/AppleIcon.js +0 -3
  224. package/lib/Icons/AppleIcon.js.map +0 -1
  225. package/lib/Icons/CalendarIcon.d.ts +0 -1
  226. package/lib/Icons/CalendarIcon.js +0 -3
  227. package/lib/Icons/CalendarIcon.js.map +0 -1
  228. package/lib/Icons/ClockIcon.d.ts +0 -1
  229. package/lib/Icons/ClockIcon.js +0 -3
  230. package/lib/Icons/ClockIcon.js.map +0 -1
  231. package/lib/Icons/ComfortableCompIcon.d.ts +0 -1
  232. package/lib/Icons/ComfortableCompIcon.js +0 -5
  233. package/lib/Icons/ComfortableCompIcon.js.map +0 -1
  234. package/lib/Icons/DollarIcon.d.ts +0 -1
  235. package/lib/Icons/DollarIcon.js +0 -3
  236. package/lib/Icons/DollarIcon.js.map +0 -1
  237. package/lib/Icons/EmptyWalletIcon.d.ts +0 -1
  238. package/lib/Icons/EmptyWalletIcon.js +0 -3
  239. package/lib/Icons/EmptyWalletIcon.js.map +0 -1
  240. package/lib/Icons/EuroIcon.d.ts +0 -1
  241. package/lib/Icons/EuroIcon.js +0 -3
  242. package/lib/Icons/EuroIcon.js.map +0 -1
  243. package/lib/Icons/GridIcon.d.ts +0 -1
  244. package/lib/Icons/GridIcon.js +0 -3
  245. package/lib/Icons/GridIcon.js.map +0 -1
  246. package/lib/Icons/LoupeIcon.d.ts +0 -1
  247. package/lib/Icons/LoupeIcon.js +0 -3
  248. package/lib/Icons/LoupeIcon.js.map +0 -1
  249. package/lib/Icons/NewDocIcon.d.ts +0 -1
  250. package/lib/Icons/NewDocIcon.js +0 -5
  251. package/lib/Icons/NewDocIcon.js.map +0 -1
  252. package/lib/Icons/OkIcon.d.ts +0 -1
  253. package/lib/Icons/OkIcon.js +0 -3
  254. package/lib/Icons/OkIcon.js.map +0 -1
  255. package/lib/Icons/PassSendIcon.d.ts +0 -1
  256. package/lib/Icons/PassSendIcon.js +0 -9
  257. package/lib/Icons/PassSendIcon.js.map +0 -1
  258. package/lib/Icons/PercentageSquareIcon.d.ts +0 -1
  259. package/lib/Icons/PercentageSquareIcon.js +0 -3
  260. package/lib/Icons/PercentageSquareIcon.js.map +0 -1
  261. package/lib/Icons/PlayMarket.d.ts +0 -1
  262. package/lib/Icons/PlayMarket.js +0 -3
  263. package/lib/Icons/PlayMarket.js.map +0 -1
  264. package/lib/Icons/ProfileIcon.d.ts +0 -1
  265. package/lib/Icons/ProfileIcon.js +0 -3
  266. package/lib/Icons/ProfileIcon.js.map +0 -1
  267. package/lib/Icons/SignDocsIcon.d.ts +0 -1
  268. package/lib/Icons/SignDocsIcon.js +0 -7
  269. package/lib/Icons/SignDocsIcon.js.map +0 -1
  270. package/lib/Icons/TelegramIcon.d.ts +0 -1
  271. package/lib/Icons/TelegramIcon.js +0 -3
  272. package/lib/Icons/TelegramIcon.js.map +0 -1
  273. package/lib/Icons/VKIcon.d.ts +0 -1
  274. package/lib/Icons/VKIcon.js +0 -3
  275. package/lib/Icons/VKIcon.js.map +0 -1
  276. package/lib/Icons/index.d.ts +0 -19
  277. package/lib/Icons/index.js +0 -20
  278. package/lib/Icons/index.js.map +0 -1
  279. package/src/Icons/ActualBalanceIcon.tsx +0 -202
  280. package/src/Icons/AppleIcon.tsx +0 -15
  281. package/src/Icons/CalendarIcon.tsx +0 -19
  282. package/src/Icons/ClockIcon.tsx +0 -212
  283. package/src/Icons/ComfortableCompIcon.tsx +0 -379
  284. package/src/Icons/DollarIcon.tsx +0 -12
  285. package/src/Icons/EmptyWalletIcon.tsx +0 -25
  286. package/src/Icons/EuroIcon.tsx +0 -12
  287. package/src/Icons/GridIcon.tsx +0 -9
  288. package/src/Icons/LoupeIcon.tsx +0 -11
  289. package/src/Icons/NewDocIcon.tsx +0 -262
  290. package/src/Icons/OkIcon.tsx +0 -8
  291. package/src/Icons/PassSendIcon.tsx +0 -250
  292. package/src/Icons/PercentageSquareIcon.tsx +0 -18
  293. package/src/Icons/PlayMarket.tsx +0 -8
  294. package/src/Icons/ProfileIcon.tsx +0 -18
  295. package/src/Icons/SignDocsIcon.tsx +0 -295
  296. package/src/Icons/TelegramIcon.tsx +0 -8
  297. package/src/Icons/VKIcon.tsx +0 -10
  298. package/src/Icons/index.ts +0 -19
@@ -16,6 +16,7 @@
16
16
  "type": "Header",
17
17
  "style": ["col-span-12", "-mx-20", "mb-5", "shadow-[0_8px_32px_0px_#00000014]"],
18
18
  "content": {
19
+ "defaultLocation": "Москва",
19
20
  "topItems": [
20
21
  {
21
22
  "href": "https://rshb.ru/",
@@ -387,7 +388,23 @@
387
388
  "qr": {
388
389
  "href": "https://rshbnaturaldbo.onelink.me/qhkF/f182074f?af_qr=true",
389
390
  "src": "data:image/png;base64,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"
390
- }
391
+ },
392
+ "buttons": [
393
+ {
394
+ "aboveText": "Загрузите в",
395
+ "text": "App Store",
396
+ "icon": "AppleIcon",
397
+ "href": "#",
398
+ "version": "secondary"
399
+ },
400
+ {
401
+ "aboveText": "Доступно в",
402
+ "text": "Google Play",
403
+ "icon": "PlayMarketIcon",
404
+ "href": "#",
405
+ "version": "secondary"
406
+ }
407
+ ]
391
408
  },
392
409
  "mobile": {
393
410
  "style": ["col-span-12"]
@@ -687,6 +704,17 @@
687
704
  ]
688
705
  }
689
706
  },
707
+ {
708
+ "type": "TextBlock",
709
+ "style": ["col-span-12"],
710
+ "content": {
711
+ "title": "Все карты Россельхозбанка работают",
712
+ "description": "Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка",
713
+ "blockVersion": "primary",
714
+ "iconVersion": "small"
715
+ }
716
+ },
717
+
690
718
  {
691
719
  "type": "Footer",
692
720
  "style": ["col-span-12"],
@@ -37,7 +37,7 @@ export const ContentPage = JSX<ContentPageProps>(
37
37
  }) => {
38
38
  return (
39
39
  <section className="relative" data-theme={colorPalette}>
40
- <div className={`grid grid-cols-12 gap-1 ${style2className(pageStyle)} ${className}`}>
40
+ <div className={`grid grid-cols-12 gap-1 ${style2className(pageStyle)} ${className || ''}`}>
41
41
  {blocks?.length ? blocks.map(renderBlock) : null}
42
42
  </div>
43
43
  {likeControl && (
@@ -1,8 +1,8 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { DollarIcon, EuroIcon } from './Icons/index';
3
2
  import { Tile } from './Tile';
4
3
  import type { UniBlockProps } from './types';
5
4
  import { ButtonProps } from './ui-kit/Button';
5
+ import { Icon } from './ui-kit/Icon';
6
6
 
7
7
  export interface ExchangeRateTileContent {
8
8
  title?: string;
@@ -14,8 +14,8 @@ const CBR_EXCHANGE_RATE_URL = 'https://www.cbr-xml-daily.ru/daily_json.js';
14
14
 
15
15
  const CURRENCY_CODES = ['USD', 'EUR'];
16
16
  const CURRENCY_ICONS_MAP = {
17
- USD: DollarIcon,
18
- EUR: EuroIcon,
17
+ USD: 'DollarIcon',
18
+ EUR: 'EuroIcon',
19
19
  };
20
20
 
21
21
  const buttons: ButtonProps[] = [
@@ -48,7 +48,7 @@ export const ExchangeRateTile = JSX<ExchangeRateTileProps>(({ className, context
48
48
  <tr key={code}>
49
49
  <CurrencyTD className="pt-4">
50
50
  <div className="flex items-center">
51
- {CURRENCY_ICONS_MAP[code] ? CURRENCY_ICONS_MAP[code]() : null}
51
+ <Icon name={CURRENCY_ICONS_MAP[code]} width="24" height="24" />
52
52
  <span className="ml-2">{code}</span>
53
53
  </div>
54
54
  </CurrencyTD>
@@ -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
  ),
@@ -8,6 +8,7 @@ import { ProductBlock } from './ProductBlock';
8
8
  import { ProductGallery } from './ProductGallery';
9
9
  import { ProductTile } from './ProductTile';
10
10
  import { StepsBlock } from './StepsBlock';
11
+ import { TextBlock } from './TextBlock';
11
12
  import { Tile } from './Tile';
12
13
 
13
14
  export const MobileBlocks = {
@@ -18,6 +19,7 @@ export const MobileBlocks = {
18
19
  ProductTile,
19
20
  ProductBlock,
20
21
  StepsBlock,
22
+ TextBlock,
21
23
  BenefitsBlock,
22
24
  ProductGallery,
23
25
  ExchangeRateTile,
@@ -1,11 +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
2
  import type { BaseTileContent } from './BaseTile';
3
+ import { BaseTile } from './BaseTile';
4
+ import type { Benefit } from './BenefitsBlock';
6
5
  import { Img } from './Img';
7
-
8
- 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';
9
9
 
10
10
  export interface ProductBlockInnerContent extends BaseTileContent {
11
11
  benefits?: Benefit[];
@@ -19,9 +19,9 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
19
19
  <div className={`flex grow justify-between items-stretch ${className || ''}`}>
20
20
  <div className={'flex flex-col'}>
21
21
  {title && (
22
- <h1 className="font-medium text-title-lg m-0 mb-4 whitespace-pre-wrap max-w-[600px]">
22
+ <Title size="XL" className="font-medium m-0 mb-4 whitespace-pre-wrap max-w-[600px]">
23
23
  {title}
24
- </h1>
24
+ </Title>
25
25
  )}
26
26
  <BaseTile context={context} description={description} items={items} buttons={buttons}>
27
27
  {benefits?.length ? (
@@ -39,9 +39,12 @@ function renderBenefit(benefit: Benefit, i: number) {
39
39
  return (
40
40
  <div key={String(i)} className="flex gap-4 items-center">
41
41
  {benefit.icon && (
42
- <div className="w-[50px] h-[50px] min-w-[50px] min-h-[50px] bg-main rounded-full p-[10px] box-border">
43
- {ICONS[benefit.icon as keyof typeof ICONS]?.()}
44
- </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
+ />
45
48
  )}
46
49
  <div className="flex gap-1 flex-col h-full">
47
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,13 +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
+ import { Title } from './ui-kit/Title';
4
5
  import { joinList } from './utils/joinList';
5
6
 
6
- const ICONS = { NewDocIcon, PassSendIcon, ActualBalanceIcon };
7
7
  export interface Step {
8
8
  label: string;
9
9
  description?: string;
10
- icon?: keyof typeof ICONS;
10
+ icon?: IconName;
11
11
  }
12
12
 
13
13
  export interface StepsBlockContent {
@@ -24,7 +24,7 @@ export const StepsBlock = JSX<StepsBlockProps>(({ className, title, steps }) =>
24
24
  className || ''
25
25
  }`}
26
26
  >
27
- <h2 className="font-medium text-title m-0 max-w-[47rem] text-center">{title}</h2>
27
+ <Title className="font-medium m-0 max-w-[47rem] text-center">{title}</Title>
28
28
  {steps?.length ? (
29
29
  <div>
30
30
  <div className="flex mt-9 items-center px-[88px]">
@@ -43,7 +43,7 @@ const renderStepIcon = (step: Step, i: number) => {
43
43
  return (
44
44
  <div key={String(i)} className="flex flex-col items-center text-center relative">
45
45
  <div className="h-[100px] w-[100px] min-w-[100px] min-h-[100px] bg-secondary-light rounded-full p-[26px] box-border z-10">
46
- {(step.icon && ICONS[step.icon]?.({ width: 48, height: 48 })) || (
46
+ {(step.icon && <Icon name={step.icon} width="48" height="48" />) || (
47
47
  <span className="font-medium text-title-sm text-secondary-text">{i + 1}</span>
48
48
  )}
49
49
  </div>
@@ -0,0 +1,116 @@
1
+ import { context } from './setup-fixture';
2
+ import { TextBlock } from './TextBlock';
3
+ import { Picture } from './types';
4
+
5
+ const image: Picture = {
6
+ src: 'bank-card.png',
7
+ format: 'webp',
8
+ size: {
9
+ width: 48,
10
+ height: 48,
11
+ },
12
+ };
13
+
14
+ export default (
15
+ <div className="font-sans overflow-hidden">
16
+ <div>
17
+ <p>Private clients</p>
18
+ <div className="flex flex-col gap-6" data-theme="pc">
19
+ <TextBlock
20
+ context={context}
21
+ title="Все карты Россельхозбанка работают"
22
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
23
+ blockVersion="primary"
24
+ iconVersion="small"
25
+ />
26
+ <TextBlock
27
+ context={context}
28
+ title="Все карты Россельхозбанка работают"
29
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
30
+ blockVersion="primary"
31
+ iconVersion="big"
32
+ image={image}
33
+ />
34
+ <TextBlock
35
+ context={context}
36
+ title="Все карты Россельхозбанка работают"
37
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
38
+ blockVersion="primary"
39
+ iconVersion="none"
40
+ />
41
+ <TextBlock
42
+ context={context}
43
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
44
+ blockVersion="primary"
45
+ iconVersion="small"
46
+ />
47
+ <TextBlock
48
+ context={context}
49
+ title="Все карты Россельхозбанка работают"
50
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
51
+ blockVersion="secondary"
52
+ iconVersion="small"
53
+ />
54
+ <TextBlock
55
+ context={context}
56
+ title="Все карты Россельхозбанка работают"
57
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
58
+ blockVersion="secondary-light"
59
+ iconVersion="small"
60
+ />
61
+ </div>
62
+ </div>
63
+ <div>
64
+ <p>Business clients</p>
65
+ <div className="flex flex-col gap-6" data-theme="bc">
66
+ <TextBlock
67
+ context={context}
68
+ title="Все карты Россельхозбанка работают"
69
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
70
+ blockVersion="primary"
71
+ iconVersion="small"
72
+ />
73
+ <TextBlock
74
+ context={context}
75
+ title="Все карты Россельхозбанка работают"
76
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
77
+ blockVersion="secondary"
78
+ iconVersion="small"
79
+ />
80
+ <TextBlock
81
+ context={context}
82
+ title="Все карты Россельхозбанка работают"
83
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
84
+ blockVersion="secondary-light"
85
+ iconVersion="small"
86
+ />
87
+ </div>
88
+ </div>
89
+ <div>
90
+ <p>Ecosystem own</p>
91
+ <div className="flex flex-col gap-6" data-theme="eo">
92
+ <TextBlock
93
+ context={context}
94
+ title="Все карты Россельхозбанка работают"
95
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
96
+ blockVersion="primary"
97
+ iconVersion="small"
98
+ />
99
+ <TextBlock
100
+ context={context}
101
+ title="Все карты Россельхозбанка работают"
102
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
103
+ blockVersion="secondary"
104
+ iconVersion="small"
105
+ />
106
+ <TextBlock
107
+ context={context}
108
+ title="Все карты Россельхозбанка работают"
109
+ description="Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка"
110
+ blockVersion="secondary-light"
111
+ iconVersion="small"
112
+ />
113
+ </div>
114
+ </div>
115
+ </div>
116
+ );
@@ -0,0 +1,72 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps, Picture } from './types';
3
+ import { Img } from './Img';
4
+
5
+ type TextBlockVersion = 'primary' | 'secondary' | 'secondary-light';
6
+ type TextBlockIconVersion = 'none' | 'small' | 'big';
7
+
8
+ export interface TextBlockContent {
9
+ title?: string;
10
+ description?: string;
11
+ blockVersion?: TextBlockVersion;
12
+ iconVersion?: TextBlockIconVersion;
13
+ image?: Picture;
14
+ }
15
+
16
+ export interface TextBlockProps extends TextBlockContent, UniBlockProps {}
17
+
18
+ const textBlockStyleMaps: Record<
19
+ TextBlockVersion,
20
+ { background: string; icon: string; title: string; description: string }
21
+ > = {
22
+ primary: {
23
+ background: 'bg-white',
24
+ icon: 'bg-primary-main text-white',
25
+ title: 'text-base',
26
+ description: 'text-secondary-text',
27
+ },
28
+ secondary: {
29
+ background: 'bg-primary-main',
30
+ icon: 'bg-white text-primary-main',
31
+ title: 'text-white',
32
+ description: 'text-white',
33
+ },
34
+ 'secondary-light': {
35
+ background: 'bg-primary-main/10',
36
+ icon: 'bg-primary-main text-white',
37
+ title: 'text-base',
38
+ description: 'text-secondary-text',
39
+ },
40
+ };
41
+
42
+ export const TextBlock = JSX<TextBlockProps>(
43
+ ({ title, description, blockVersion = 'primary', iconVersion, image, className }) => {
44
+ const textBlockStyleMap = textBlockStyleMaps[blockVersion];
45
+ return (
46
+ <section
47
+ className={`font-sans px-9 py-4 flex ${textBlockStyleMap.background} ${className || ''}`}
48
+ >
49
+ {iconVersion && iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null}
50
+ {iconVersion && iconVersion === 'big' ? renderImage(image) : null}
51
+ <div className="py-0.5">
52
+ {title && <div className={`font-medium mb-1 ${textBlockStyleMap.title}`}>{title}</div>}
53
+ {description && (
54
+ <div className={`text-sm ${textBlockStyleMap.description}`}>{description}</div>
55
+ )}
56
+ </div>
57
+ </section>
58
+ );
59
+ },
60
+ );
61
+
62
+ function renderIcon(className: string) {
63
+ return (
64
+ <div className={`pt-1.5 pr-4`}>
65
+ <div className={`rounded-full h-4 w-4 text-center text-xs ${className}`}>i</div>
66
+ </div>
67
+ );
68
+ }
69
+
70
+ function renderImage(image?: Picture) {
71
+ return image?.src ? <Img className="pt-0.5 pr-3" image={image} /> : null;
72
+ }
package/src/Tile.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BlockVersion, Picture, UniBlockProps } from './types';
2
+ import type { BlockVersion, UniBlockProps } from './types';
3
3
  import { BaseTile } from './BaseTile';
4
4
  import type { BaseTileContent } from './BaseTile';
5
5
  import { getColSpan } from './utils/getColSpan';
package/src/common.css CHANGED
@@ -2,27 +2,27 @@
2
2
 
3
3
  /* Private clients | Green */
4
4
  [data-theme='pc'] {
5
- --color-primary-main: #42ab44;
6
- --color-primary-hover: #248341;
7
- --color-primary-active: #245f34;
8
- --color-secondary-hover: #c5e2c6;
9
- --color-secondary-active: #d8f2d9;
5
+ --color-primary-main: 66, 171, 68;
6
+ --color-primary-hover: 36, 131, 65;
7
+ --color-primary-active: 36, 95, 52;
8
+ --color-secondary-hover: 216, 242, 217;
9
+ --color-secondary-active: 197, 226, 198;
10
10
  }
11
11
  /* Business clients | Light-Green */
12
12
  [data-theme='bc'] {
13
- --color-primary-main: #83b83e;
14
- --color-primary-hover: #5c921d;
15
- --color-primary-active: #3c5e10;
16
- --color-secondary-hover: #e8f4d9;
17
- --color-secondary-active: #d8e3ca;
13
+ --color-primary-main: 131, 184, 62;
14
+ --color-primary-hover: 92, 146, 29;
15
+ --color-primary-active: 60, 94, 16;
16
+ --color-secondary-hover: 232, 244, 217;
17
+ --color-secondary-active: 216, 227, 202;
18
18
  }
19
19
  /* Ecosystem own | Yellow */
20
20
  [data-theme='eo'] {
21
- --color-primary-main: #ddb63d;
22
- --color-primary-hover: #bb9727;
23
- --color-primary-active: #7e630c;
24
- --color-secondary-hover: #f1ecdd;
25
- --color-secondary-active: #e5dec7;
21
+ --color-primary-main: 221, 182, 61;
22
+ --color-primary-hover: 187, 151, 39;
23
+ --color-primary-active: 126, 99, 12;
24
+ --color-secondary-hover: 241, 236, 221;
25
+ --color-secondary-active: 229, 222, 199;
26
26
  }
27
27
 
28
28
  @tailwind components;