@redneckz/wildless-cms-uni-blocks 0.2.60 → 0.2.63

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 (313) 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 +5 -1
  8. package/dist/Blocks.js +4 -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/Gallery.d.ts +16 -0
  24. package/dist/Gallery.js +37 -0
  25. package/dist/Gallery.js.map +1 -0
  26. package/dist/Header/HeaderSecondaryMenu.js +2 -2
  27. package/dist/Header/HeaderSecondaryMenu.js.map +1 -1
  28. package/dist/MobileBlocks.d.ts +1 -0
  29. package/dist/MobileBlocks.js +2 -0
  30. package/dist/MobileBlocks.js.map +1 -1
  31. package/dist/ProductBlockInner.d.ts +2 -1
  32. package/dist/ProductBlockInner.js +4 -4
  33. package/dist/ProductBlockInner.js.map +1 -1
  34. package/dist/ProductTile.d.ts +2 -1
  35. package/dist/ProductTile.js.map +1 -1
  36. package/dist/ProjectSettings.d.ts +2 -0
  37. package/dist/ProjectSettings.js +3 -0
  38. package/dist/ProjectSettings.js.map +1 -1
  39. package/dist/StepsBlock.d.ts +2 -7
  40. package/dist/StepsBlock.js +4 -4
  41. package/dist/StepsBlock.js.map +1 -1
  42. package/dist/TextBlock.d.ts +14 -0
  43. package/dist/TextBlock.js +36 -0
  44. package/dist/TextBlock.js.map +1 -0
  45. package/dist/types.d.ts +0 -6
  46. package/dist/ui-kit/ArrowButton.d.ts +6 -0
  47. package/dist/ui-kit/ArrowButton.js +8 -0
  48. package/dist/ui-kit/ArrowButton.js.map +1 -0
  49. package/dist/ui-kit/Button.js +1 -1
  50. package/dist/ui-kit/Icon.d.ts +11 -0
  51. package/dist/ui-kit/Icon.js +7 -0
  52. package/dist/ui-kit/Icon.js.map +1 -0
  53. package/dist/ui-kit/IconButton.d.ts +2 -1
  54. package/dist/ui-kit/IconButton.js +2 -3
  55. package/dist/ui-kit/IconButton.js.map +1 -1
  56. package/dist/ui-kit/SearchBar.js +4 -4
  57. package/dist/ui-kit/SearchBar.js.map +1 -1
  58. package/dist/ui-kit/Title.d.ts +11 -0
  59. package/dist/ui-kit/Title.js +17 -0
  60. package/dist/ui-kit/Title.js.map +1 -0
  61. package/lib/BaseTile.d.ts +2 -1
  62. package/lib/BaseTile.js +2 -15
  63. package/lib/BaseTile.js.map +1 -1
  64. package/lib/BenefitsBlock.d.ts +7 -1
  65. package/lib/BenefitsBlock.js +2 -3
  66. package/lib/BenefitsBlock.js.map +1 -1
  67. package/lib/Blocks.d.ts +5 -1
  68. package/lib/Blocks.js +4 -0
  69. package/lib/Blocks.js.map +1 -1
  70. package/lib/ContentPage.js +1 -1
  71. package/lib/ContentPage.js.map +1 -1
  72. package/lib/ExchangeRateTile.js +4 -4
  73. package/lib/ExchangeRateTile.js.map +1 -1
  74. package/lib/Footer/Footer.js +1 -1
  75. package/lib/Footer/Footer.js.map +1 -1
  76. package/lib/Footer/HorizontalNavigation.js +1 -1
  77. package/lib/Footer/HorizontalNavigation.js.map +1 -1
  78. package/lib/Footer/Sitemap.js +1 -1
  79. package/lib/Footer/SocialMedia.js +7 -7
  80. package/lib/Footer/SocialMedia.js.map +1 -1
  81. package/lib/Footer/TextInformation.js +1 -1
  82. package/lib/Footer/TextInformation.js.map +1 -1
  83. package/lib/Gallery.d.ts +16 -0
  84. package/lib/Gallery.js +35 -0
  85. package/lib/Gallery.js.map +1 -0
  86. package/lib/Header/HeaderSecondaryMenu.js +2 -2
  87. package/lib/Header/HeaderSecondaryMenu.js.map +1 -1
  88. package/lib/MobileBlocks.d.ts +1 -0
  89. package/lib/MobileBlocks.js +2 -0
  90. package/lib/MobileBlocks.js.map +1 -1
  91. package/lib/ProductBlockInner.d.ts +2 -1
  92. package/lib/ProductBlockInner.js +4 -4
  93. package/lib/ProductBlockInner.js.map +1 -1
  94. package/lib/ProductTile.d.ts +2 -1
  95. package/lib/ProductTile.js.map +1 -1
  96. package/lib/ProjectSettings.d.ts +2 -0
  97. package/lib/ProjectSettings.js +3 -0
  98. package/lib/ProjectSettings.js.map +1 -1
  99. package/lib/StepsBlock.d.ts +2 -7
  100. package/lib/StepsBlock.js +4 -4
  101. package/lib/StepsBlock.js.map +1 -1
  102. package/lib/TextBlock.d.ts +14 -0
  103. package/lib/TextBlock.js +34 -0
  104. package/lib/TextBlock.js.map +1 -0
  105. package/lib/common.css +1 -1
  106. package/lib/types.d.ts +0 -6
  107. package/lib/ui-kit/ArrowButton.d.ts +6 -0
  108. package/lib/ui-kit/ArrowButton.js +6 -0
  109. package/lib/ui-kit/ArrowButton.js.map +1 -0
  110. package/lib/ui-kit/Button.js +1 -1
  111. package/lib/ui-kit/Icon.d.ts +11 -0
  112. package/lib/ui-kit/Icon.js +5 -0
  113. package/lib/ui-kit/Icon.js.map +1 -0
  114. package/lib/ui-kit/IconButton.d.ts +2 -1
  115. package/lib/ui-kit/IconButton.js +2 -3
  116. package/lib/ui-kit/IconButton.js.map +1 -1
  117. package/lib/ui-kit/SearchBar.js +4 -4
  118. package/lib/ui-kit/SearchBar.js.map +1 -1
  119. package/lib/ui-kit/Title.d.ts +11 -0
  120. package/lib/ui-kit/Title.js +15 -0
  121. package/lib/ui-kit/Title.js.map +1 -0
  122. package/package.json +9 -4
  123. package/src/BaseTile.tsx +8 -17
  124. package/src/BenefitsBlock.tsx +13 -6
  125. package/src/Blocks.ts +7 -1
  126. package/src/ContentPage.page.json +29 -1
  127. package/src/ContentPage.tsx +1 -1
  128. package/src/ExchangeRateTile.tsx +4 -4
  129. package/src/Footer/Footer.tsx +2 -2
  130. package/src/Footer/HorizontalNavigation.tsx +1 -1
  131. package/src/Footer/Sitemap.tsx +1 -1
  132. package/src/Footer/SocialMedia.tsx +9 -9
  133. package/src/Footer/TextInformation.tsx +2 -2
  134. package/src/Gallery.fixture.tsx +213 -0
  135. package/src/Gallery.tsx +132 -0
  136. package/src/Header/HeaderSecondaryMenu.tsx +5 -5
  137. package/src/MobileAppTile.fixture.tsx +16 -0
  138. package/src/MobileBlocks.ts +2 -0
  139. package/src/ProductBlockInner.tsx +13 -10
  140. package/src/ProductTile.tsx +4 -3
  141. package/src/ProjectSettings.ts +4 -0
  142. package/src/StepsBlock.tsx +5 -5
  143. package/src/TextBlock.fixture.tsx +116 -0
  144. package/src/TextBlock.tsx +72 -0
  145. package/src/Tile.tsx +1 -1
  146. package/src/common.css +15 -15
  147. package/src/icons/ActualBalanceIcon.svg +186 -0
  148. package/src/icons/AppleIcon.svg +13 -0
  149. package/src/icons/CalendarIcon.svg +17 -0
  150. package/src/icons/ClockIcon.svg +208 -0
  151. package/src/icons/ComfortableCompIcon.svg +373 -0
  152. package/src/icons/DollarIcon.svg +10 -0
  153. package/src/icons/EmptyWalletIcon.svg +17 -0
  154. package/src/icons/EuroIcon.svg +10 -0
  155. package/src/icons/GridIcon.svg +7 -0
  156. package/src/icons/LoupeIcon.svg +9 -0
  157. package/src/icons/NewDocIcon.svg +250 -0
  158. package/src/icons/OkIcon.svg +6 -0
  159. package/src/icons/PassSendIcon.svg +237 -0
  160. package/src/icons/PercentageSquareIcon.svg +16 -0
  161. package/src/icons/PlayMarketIcon.svg +6 -0
  162. package/src/icons/ProfileIcon.svg +16 -0
  163. package/src/icons/SignDocsIcon.svg +287 -0
  164. package/src/icons/TelegramIcon.svg +6 -0
  165. package/{dist/Icons/VKIcon.js → src/icons/VKIcon.svg} +8 -6
  166. package/src/setup-fixture.ts +15 -7
  167. package/src/types.ts +0 -8
  168. package/src/ui-kit/ArrowButton.tsx +34 -0
  169. package/src/ui-kit/Button.fixture.tsx +1 -1
  170. package/src/ui-kit/Button.tsx +1 -1
  171. package/src/ui-kit/Icon.tsx +46 -0
  172. package/src/ui-kit/IconButton.tsx +5 -5
  173. package/src/ui-kit/SearchBar.tsx +26 -19
  174. package/src/ui-kit/Title.tsx +25 -0
  175. package/dist/Icons/ActualBalanceIcon.d.ts +0 -1
  176. package/dist/Icons/ActualBalanceIcon.js +0 -12
  177. package/dist/Icons/ActualBalanceIcon.js.map +0 -1
  178. package/dist/Icons/AppleIcon.d.ts +0 -1
  179. package/dist/Icons/AppleIcon.js +0 -6
  180. package/dist/Icons/AppleIcon.js.map +0 -1
  181. package/dist/Icons/CalendarIcon.d.ts +0 -1
  182. package/dist/Icons/CalendarIcon.js +0 -6
  183. package/dist/Icons/CalendarIcon.js.map +0 -1
  184. package/dist/Icons/ClockIcon.d.ts +0 -1
  185. package/dist/Icons/ClockIcon.js +0 -6
  186. package/dist/Icons/ClockIcon.js.map +0 -1
  187. package/dist/Icons/ComfortableCompIcon.d.ts +0 -1
  188. package/dist/Icons/ComfortableCompIcon.js +0 -8
  189. package/dist/Icons/ComfortableCompIcon.js.map +0 -1
  190. package/dist/Icons/DollarIcon.d.ts +0 -1
  191. package/dist/Icons/DollarIcon.js +0 -6
  192. package/dist/Icons/DollarIcon.js.map +0 -1
  193. package/dist/Icons/EmptyWalletIcon.d.ts +0 -1
  194. package/dist/Icons/EmptyWalletIcon.js +0 -6
  195. package/dist/Icons/EmptyWalletIcon.js.map +0 -1
  196. package/dist/Icons/EuroIcon.d.ts +0 -1
  197. package/dist/Icons/EuroIcon.js +0 -6
  198. package/dist/Icons/EuroIcon.js.map +0 -1
  199. package/dist/Icons/GridIcon.d.ts +0 -1
  200. package/dist/Icons/GridIcon.js +0 -6
  201. package/dist/Icons/GridIcon.js.map +0 -1
  202. package/dist/Icons/LoupeIcon.d.ts +0 -1
  203. package/dist/Icons/LoupeIcon.js +0 -6
  204. package/dist/Icons/LoupeIcon.js.map +0 -1
  205. package/dist/Icons/NewDocIcon.d.ts +0 -1
  206. package/dist/Icons/NewDocIcon.js +0 -8
  207. package/dist/Icons/NewDocIcon.js.map +0 -1
  208. package/dist/Icons/OkIcon.d.ts +0 -1
  209. package/dist/Icons/OkIcon.js +0 -6
  210. package/dist/Icons/OkIcon.js.map +0 -1
  211. package/dist/Icons/PassSendIcon.d.ts +0 -1
  212. package/dist/Icons/PassSendIcon.js +0 -12
  213. package/dist/Icons/PassSendIcon.js.map +0 -1
  214. package/dist/Icons/PercentageSquareIcon.d.ts +0 -1
  215. package/dist/Icons/PercentageSquareIcon.js +0 -6
  216. package/dist/Icons/PercentageSquareIcon.js.map +0 -1
  217. package/dist/Icons/PlayMarket.d.ts +0 -1
  218. package/dist/Icons/PlayMarket.js +0 -6
  219. package/dist/Icons/PlayMarket.js.map +0 -1
  220. package/dist/Icons/ProfileIcon.d.ts +0 -1
  221. package/dist/Icons/ProfileIcon.js +0 -6
  222. package/dist/Icons/ProfileIcon.js.map +0 -1
  223. package/dist/Icons/SignDocsIcon.d.ts +0 -1
  224. package/dist/Icons/SignDocsIcon.js +0 -10
  225. package/dist/Icons/SignDocsIcon.js.map +0 -1
  226. package/dist/Icons/TelegramIcon.d.ts +0 -1
  227. package/dist/Icons/TelegramIcon.js +0 -6
  228. package/dist/Icons/TelegramIcon.js.map +0 -1
  229. package/dist/Icons/VKIcon.d.ts +0 -1
  230. package/dist/Icons/VKIcon.js.map +0 -1
  231. package/dist/Icons/index.d.ts +0 -19
  232. package/dist/Icons/index.js +0 -41
  233. package/dist/Icons/index.js.map +0 -1
  234. package/lib/Icons/ActualBalanceIcon.d.ts +0 -1
  235. package/lib/Icons/ActualBalanceIcon.js +0 -9
  236. package/lib/Icons/ActualBalanceIcon.js.map +0 -1
  237. package/lib/Icons/AppleIcon.d.ts +0 -1
  238. package/lib/Icons/AppleIcon.js +0 -3
  239. package/lib/Icons/AppleIcon.js.map +0 -1
  240. package/lib/Icons/CalendarIcon.d.ts +0 -1
  241. package/lib/Icons/CalendarIcon.js +0 -3
  242. package/lib/Icons/CalendarIcon.js.map +0 -1
  243. package/lib/Icons/ClockIcon.d.ts +0 -1
  244. package/lib/Icons/ClockIcon.js +0 -3
  245. package/lib/Icons/ClockIcon.js.map +0 -1
  246. package/lib/Icons/ComfortableCompIcon.d.ts +0 -1
  247. package/lib/Icons/ComfortableCompIcon.js +0 -5
  248. package/lib/Icons/ComfortableCompIcon.js.map +0 -1
  249. package/lib/Icons/DollarIcon.d.ts +0 -1
  250. package/lib/Icons/DollarIcon.js +0 -3
  251. package/lib/Icons/DollarIcon.js.map +0 -1
  252. package/lib/Icons/EmptyWalletIcon.d.ts +0 -1
  253. package/lib/Icons/EmptyWalletIcon.js +0 -3
  254. package/lib/Icons/EmptyWalletIcon.js.map +0 -1
  255. package/lib/Icons/EuroIcon.d.ts +0 -1
  256. package/lib/Icons/EuroIcon.js +0 -3
  257. package/lib/Icons/EuroIcon.js.map +0 -1
  258. package/lib/Icons/GridIcon.d.ts +0 -1
  259. package/lib/Icons/GridIcon.js +0 -3
  260. package/lib/Icons/GridIcon.js.map +0 -1
  261. package/lib/Icons/LoupeIcon.d.ts +0 -1
  262. package/lib/Icons/LoupeIcon.js +0 -3
  263. package/lib/Icons/LoupeIcon.js.map +0 -1
  264. package/lib/Icons/NewDocIcon.d.ts +0 -1
  265. package/lib/Icons/NewDocIcon.js +0 -5
  266. package/lib/Icons/NewDocIcon.js.map +0 -1
  267. package/lib/Icons/OkIcon.d.ts +0 -1
  268. package/lib/Icons/OkIcon.js +0 -3
  269. package/lib/Icons/OkIcon.js.map +0 -1
  270. package/lib/Icons/PassSendIcon.d.ts +0 -1
  271. package/lib/Icons/PassSendIcon.js +0 -9
  272. package/lib/Icons/PassSendIcon.js.map +0 -1
  273. package/lib/Icons/PercentageSquareIcon.d.ts +0 -1
  274. package/lib/Icons/PercentageSquareIcon.js +0 -3
  275. package/lib/Icons/PercentageSquareIcon.js.map +0 -1
  276. package/lib/Icons/PlayMarket.d.ts +0 -1
  277. package/lib/Icons/PlayMarket.js +0 -3
  278. package/lib/Icons/PlayMarket.js.map +0 -1
  279. package/lib/Icons/ProfileIcon.d.ts +0 -1
  280. package/lib/Icons/ProfileIcon.js +0 -3
  281. package/lib/Icons/ProfileIcon.js.map +0 -1
  282. package/lib/Icons/SignDocsIcon.d.ts +0 -1
  283. package/lib/Icons/SignDocsIcon.js +0 -7
  284. package/lib/Icons/SignDocsIcon.js.map +0 -1
  285. package/lib/Icons/TelegramIcon.d.ts +0 -1
  286. package/lib/Icons/TelegramIcon.js +0 -3
  287. package/lib/Icons/TelegramIcon.js.map +0 -1
  288. package/lib/Icons/VKIcon.d.ts +0 -1
  289. package/lib/Icons/VKIcon.js +0 -3
  290. package/lib/Icons/VKIcon.js.map +0 -1
  291. package/lib/Icons/index.d.ts +0 -19
  292. package/lib/Icons/index.js +0 -20
  293. package/lib/Icons/index.js.map +0 -1
  294. package/src/Icons/ActualBalanceIcon.tsx +0 -202
  295. package/src/Icons/AppleIcon.tsx +0 -15
  296. package/src/Icons/CalendarIcon.tsx +0 -19
  297. package/src/Icons/ClockIcon.tsx +0 -212
  298. package/src/Icons/ComfortableCompIcon.tsx +0 -379
  299. package/src/Icons/DollarIcon.tsx +0 -12
  300. package/src/Icons/EmptyWalletIcon.tsx +0 -25
  301. package/src/Icons/EuroIcon.tsx +0 -12
  302. package/src/Icons/GridIcon.tsx +0 -9
  303. package/src/Icons/LoupeIcon.tsx +0 -11
  304. package/src/Icons/NewDocIcon.tsx +0 -262
  305. package/src/Icons/OkIcon.tsx +0 -8
  306. package/src/Icons/PassSendIcon.tsx +0 -250
  307. package/src/Icons/PercentageSquareIcon.tsx +0 -18
  308. package/src/Icons/PlayMarket.tsx +0 -8
  309. package/src/Icons/ProfileIcon.tsx +0 -18
  310. package/src/Icons/SignDocsIcon.tsx +0 -295
  311. package/src/Icons/TelegramIcon.tsx +0 -8
  312. package/src/Icons/VKIcon.tsx +0 -10
  313. package/src/Icons/index.ts +0 -19
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- import { LoupeIcon } from '../Icons/index.js';
3
+ import { Icon } from './Icon.js';
4
4
  export const SearchBar = JSX(({ className, context }) => {
5
- const search = context.useSearch();
6
- return (_jsxs("form", { className: `relative ${className || ''}`, children: [_jsxs("div", { className: "absolute rounded-l-full h-full flex items-center justify-center pl-4 max-w-[170px] gap-3.5", children: [_jsx("div", { className: "w-[24px] h-[24px]", children: LoupeIcon() }), _jsx("span", { className: "font-sans font-normal text-sm text-secondary-text", children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443" })] }), _jsx("input", { className: "pl-[170px] w-full font-sans font-normal text-sm border border-solid border-main-divider rounded-full h-full box-border outline-none", value: search.term, onChange: (e) => search.setTerm(e.target.value), type: "text", placeholder: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", name: "s" }), _jsx("button", { type: "submit", className: "absolute font-sans font-normal text-sm cursor-pointer bg-transparent hover:bg-primary-hover active:bg-primary-active text-primary-main hover:text-white border-none px-5 rounded-r-full h-full top-0 right-0 outline-none", onClick: (e) => {
5
+ const { term, setTerm } = context.useSearch();
6
+ return (_jsxs("form", { className: `relative ${className || ''}`, children: [_jsxs("div", { className: "absolute rounded h-full flex items-center justify-center pl-4 max-w-[170px] gap-3.5 pointer-events-none", children: [_jsx("div", { className: "w-[24px] h-[24px]", children: _jsx(Icon, { name: "LoupeIcon", width: "24", height: "24" }) }), !term && (_jsx("span", { className: "font-sans font-normal text-base text-secondary-text", children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443" }))] }), _jsx("input", { className: "pl-12 w-full font-sans font-normal text-base text-black border border-solid border-main-divider rounded h-full box-border outline-none pr-[6%]", value: term, onChange: (e) => setTerm(e.target.value), type: "text", name: "s" }), term && (_jsx("button", { type: "submit", className: "absolute font-sans font-normal text-sm cursor-pointer bg-transparent hover:bg-primary-hover active:bg-primary-active text-primary-main hover:text-white border-none px-5 py-2 rounded top-1 right-1 outline-none", onClick: (e) => {
7
7
  e.preventDefault();
8
8
  console.log('click');
9
- }, children: "\u041D\u0430\u0439\u0442\u0438" })] }));
9
+ }, children: "\u041D\u0430\u0439\u0442\u0438" }))] }));
10
10
  });
11
11
  //# sourceMappingURL=SearchBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../src/ui-kit/SearchBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,OAAO,CACL,gBAAM,SAAS,EAAE,YAAY,SAAS,IAAI,EAAE,EAAE,aAC5C,eAAK,SAAS,EAAC,4FAA4F,aACzG,cAAK,SAAS,EAAC,mBAAmB,YAAE,SAAS,EAAE,GAAO,EACtD,eAAM,SAAS,EAAC,mDAAmD,2FAAsB,IACrF,EACN,gBACE,SAAS,EAAC,qIAAqI,EAC/I,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,4EAAgB,EAC5B,IAAI,EAAC,GAAG,GACR,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,2NAA2N,EACrO,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC,+CAGM,IACJ,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../src/ui-kit/SearchBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAC9C,OAAO,CACL,gBAAM,SAAS,EAAE,YAAY,SAAS,IAAI,EAAE,EAAE,aAC5C,eAAK,SAAS,EAAC,yGAAyG,aACtH,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,GAC5C,EACL,CAAC,IAAI,IAAI,CACR,eAAM,SAAS,EAAC,qDAAqD,2FAE9D,CACR,IACG,EACN,gBACE,SAAS,EAAC,gJAAgJ,EAC1J,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,GAAG,GACR,EACD,IAAI,IAAI,CACP,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kNAAkN,EAC5N,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC,+CAGM,CACV,IACI,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare enum SizeTableClass {
2
+ 'XL' = "text-title-lg",
3
+ 'L' = "text-title",
4
+ 'M' = "text-title-sm",
5
+ 'S' = "text-title-xs"
6
+ }
7
+ export declare type TitleSize = keyof typeof SizeTableClass;
8
+ export interface TitleProps extends Partial<HTMLHeadingElement> {
9
+ size?: TitleSize;
10
+ }
11
+ export declare const Title: (props: import("@redneckz/uni-jsx").PropsWithChildren<TitleProps, any>, context?: any) => any;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ export var SizeTableClass;
4
+ (function (SizeTableClass) {
5
+ SizeTableClass["XL"] = "text-title-lg";
6
+ SizeTableClass["L"] = "text-title";
7
+ SizeTableClass["M"] = "text-title-sm";
8
+ SizeTableClass["S"] = "text-title-xs";
9
+ })(SizeTableClass || (SizeTableClass = {}));
10
+ export const Title = JSX(({ size = 'L', className, children, ...rest }) => {
11
+ const Tag = size === 'XL' ? 'h1' : 'h2';
12
+ return (_jsx(Tag, { className: getClasses(SizeTableClass[size], className), ...rest, children: children }));
13
+ });
14
+ const getClasses = (...classes) => classes.filter(Boolean).join(' ');
15
+ //# sourceMappingURL=Title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Title.js","sourceRoot":"","sources":["../../src/ui-kit/Title.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,sCAAsB,CAAA;IACtB,kCAAkB,CAAA;IAClB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;AACvB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAQD,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAa,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACpF,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAM,IAAI,YAClE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,GAAG,OAA+B,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.2.60",
3
+ "version": "0.2.63",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -74,16 +74,20 @@
74
74
  "url": "https://github.com/redneckz/wildless-cms-uni-blocks/issues"
75
75
  },
76
76
  "scripts": {
77
- "build": "npm run build:lib && npm run build:commonjs && npm run build:style",
77
+ "start": "npm run cosmos",
78
+ "build": "npm run build:lib && npm run build:commonjs && npm run build:style && npm run build:icons",
78
79
  "build:lib": "rimraf ./lib && tsc --build --verbose",
79
80
  "postbuild:lib": "replace-in-file --configFile=replace-config.lib.cjs --verbose",
80
81
  "build:commonjs": "rimraf ./dist && tsc --module commonjs --noImplicitUseStrict --outDir dist",
81
82
  "bundle": "rimraf ./bundle && rollup -c",
82
83
  "build:style": "postcss './src/**/*.css' --env production --dir ./lib",
83
84
  "postbuild:style": "npm run size",
85
+ "build:icons": "svgo -f ./src/icons -o ./cosmos-static/icons",
84
86
  "size": "size-limit",
85
87
  "test": "jest --coverage",
88
+ "precosmos": "npm run build:icons",
86
89
  "cosmos": "cosmos",
90
+ "precosmos:export": "npm run build:icons",
87
91
  "cosmos:export": "cosmos-export",
88
92
  "prepare": "husky install || exit 0"
89
93
  },
@@ -130,6 +134,7 @@
130
134
  "rollup-plugin-terser": "^7.0.2",
131
135
  "size-limit": "^7.0.8",
132
136
  "style-loader": "^3.3.1",
137
+ "svgo": "^2.8.0",
133
138
  "tailwindcss": "^3.1.1",
134
139
  "ts-jest": "^28.0.4",
135
140
  "ts-loader": "^9.3.0",
@@ -145,8 +150,8 @@
145
150
  ],
146
151
  "lint-staged": {
147
152
  "src/**/*.{js,jsx,ts,tsx,css}": "prettier --write",
148
- "src/**/*.{js,jsx,ts,tsx,css,json}": [
149
- "cosmos-export",
153
+ "*.{js,jsx,ts,tsx,css,json}": [
154
+ "npm run cosmos:export",
150
155
  "git add ./docs"
151
156
  ]
152
157
  }
package/src/BaseTile.tsx CHANGED
@@ -1,9 +1,11 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { Img } from './Img';
3
- import type { BlockVersion, Picture, UniBlockProps, TitleSize } from './types';
3
+ import type { BlockVersion, Picture, UniBlockProps } from './types';
4
4
  import { BlockItem } from './ui-kit/BlockItem';
5
5
  import type { IconButtonProps } from './ui-kit/IconButton';
6
6
  import { IconButton } from './ui-kit/IconButton';
7
+ import { Title } from './ui-kit/Title';
8
+ import type { TitleSize } from './ui-kit/Title';
7
9
  import { useLink } from './useLink';
8
10
  import { getColSpan } from './utils/getColSpan';
9
11
 
@@ -37,7 +39,11 @@ export const BaseTile = JSX<BaseTileProps>(
37
39
  const { handlerDecorator } = context;
38
40
  return (
39
41
  <div className={`font-sans flex flex-col grow h-full`}>
40
- {title && renderTitle(title, titleSize || getTitleSizeByClassName(className))}
42
+ {title && (
43
+ <Title size={titleSize || getTitleSizeByClassName(className)} className={TITLE_CLASSES}>
44
+ {title}
45
+ </Title>
46
+ )}
41
47
  <div className="flex grow justify-between">
42
48
  <div className="flex flex-col justify-between items-start">
43
49
  <div>
@@ -62,21 +68,6 @@ export const BaseTile = JSX<BaseTileProps>(
62
68
  },
63
69
  );
64
70
 
65
- function renderTitle(title: string, titleSize: TitleSize) {
66
- switch (titleSize) {
67
- case 'XL':
68
- return <h1 className={`${TITLE_CLASSES} text-title-lg`}>{title}</h1>;
69
- case 'L':
70
- return <h2 className={`${TITLE_CLASSES} text-title`}>{title}</h2>;
71
- case 'M':
72
- return <h2 className={`${TITLE_CLASSES} text-title-sm`}>{title}</h2>;
73
- case 'S':
74
- return <h2 className={`${TITLE_CLASSES} text-title-xs`}>{title}</h2>;
75
- default:
76
- return <h2 className={`${TITLE_CLASSES} text-title`}>{title}</h2>;
77
- }
78
- }
79
-
80
71
  function getTitleSizeByClassName(className: string = '') {
81
72
  const colSpan = getColSpan(className);
82
73
  if (colSpan <= 4) {
@@ -1,8 +1,12 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { ClockIcon, SignDocsIcon, ComfortableCompIcon, ActualBalanceIcon } from './Icons/index';
3
- import type { UniBlockProps, Benefit } from './types';
2
+ import type { UniBlockProps } from './types';
3
+ import { Icon, IconName } from './ui-kit/Icon';
4
4
 
5
- const ICONS = { ClockIcon, SignDocsIcon, ComfortableCompIcon, ActualBalanceIcon };
5
+ export interface Benefit {
6
+ label: string;
7
+ description?: string;
8
+ icon?: IconName;
9
+ }
6
10
 
7
11
  export interface BenefitsBlockContent {
8
12
  title?: string;
@@ -30,9 +34,12 @@ const renderStep = (benefit: Benefit, i: number) => {
30
34
  return (
31
35
  <div key={String(i)} className="flex items-center p-10 gap-5 max-w-[580px]">
32
36
  {benefit.icon && (
33
- <div className="h-[70px] w-[70px] min-w-[70px] min-h-[70px]">
34
- {ICONS[benefit.icon as keyof typeof ICONS]?.()}
35
- </div>
37
+ <Icon
38
+ className="h-[70px] w-[70px] min-w-[70px] min-h-[70px]"
39
+ name={benefit.icon}
40
+ width="70"
41
+ height="70"
42
+ />
36
43
  )}
37
44
  <div>
38
45
  <h3 className="font-medium text-xl m-0">{benefit.label}</h3>
package/src/Blocks.ts CHANGED
@@ -12,6 +12,8 @@ import { ProductTile, ProductTileContent } from './ProductTile';
12
12
  import { BaseTileContent } from './BaseTile';
13
13
  import { PromoTile, PromoTileContent } from './PromoTile';
14
14
  import { Tile } from './Tile';
15
+ import { TextBlock, TextBlockContent } from './TextBlock';
16
+ import { Gallery, GalleryContent } from './Gallery';
15
17
 
16
18
  export const Blocks = {
17
19
  Header,
@@ -19,6 +21,7 @@ export const Blocks = {
19
21
  Placeholder,
20
22
  Tile,
21
23
  PromoTile,
24
+ TextBlock,
22
25
  ProductTile,
23
26
  ProductBlock,
24
27
  StepsBlock,
@@ -26,6 +29,7 @@ export const Blocks = {
26
29
  ProductGallery,
27
30
  ExchangeRateTile,
28
31
  MobileAppTile,
32
+ Gallery,
29
33
  };
30
34
 
31
35
  export type BlockContent =
@@ -33,6 +37,7 @@ export type BlockContent =
33
37
  | FooterContent
34
38
  | PlaceholderContent
35
39
  | BaseTileContent
40
+ | TextBlockContent
36
41
  | ProductTileContent
37
42
  | PromoTileContent
38
43
  | ProductBlockInnerContent
@@ -40,4 +45,5 @@ export type BlockContent =
40
45
  | BenefitsBlockContent
41
46
  | ProductGalleryContent
42
47
  | ExchangeRateTileContent
43
- | MobileAppTileContent;
48
+ | MobileAppTileContent
49
+ | GalleryContent;
@@ -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 ? (
@@ -0,0 +1,213 @@
1
+ import { context } from './setup-fixture';
2
+
3
+ import { Gallery, GalleryProps } from './Gallery';
4
+ import { Picture } from './types';
5
+
6
+ const image: Picture = {
7
+ src: 'money-1.png',
8
+ format: 'webp',
9
+ size: {
10
+ width: 140,
11
+ height: 140,
12
+ },
13
+ };
14
+
15
+ const defaultItems = [
16
+ 'Качественные фермерские продукты напрямую от производителей',
17
+ 'Самая большая база сельских туров по России',
18
+ 'Площадки для создания комфортной жизни за городом',
19
+ ];
20
+
21
+ const defaultProps: GalleryProps = {
22
+ title: 'Вы можете оплатить бонусными баллами',
23
+ description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
24
+ context,
25
+ cards: [
26
+ {
27
+ title: 'Более 5000 товаров',
28
+ description:
29
+ 'Время копить: ставка растет в зависимости от срока нахождения средств на Счете!',
30
+ image,
31
+ href: '/credit-cards',
32
+ items: defaultItems,
33
+ },
34
+ {
35
+ title: 'Более 1000 развлечений',
36
+ description: 'Порядок и условия предоставления в соответствии с 106 ФЗ',
37
+ image,
38
+ href: '/credit-cards',
39
+ items: defaultItems,
40
+ },
41
+ {
42
+ title: 'Фермерские продукты',
43
+ description: 'Высокий процент даже при небольшой сумме денежных средств',
44
+ image,
45
+ href: '/credit-cards',
46
+ items: defaultItems,
47
+ },
48
+ {
49
+ title: '«Моя выгода»',
50
+ description:
51
+ 'Время копить: ставка растет в зависимости от срока нахождения средств на Счете!',
52
+ image,
53
+ href: '/credit-cards',
54
+ items: defaultItems,
55
+ },
56
+ {
57
+ title: 'Фермерские продукты',
58
+ description: 'Высокий процент даже при небольшой сумме денежных средств',
59
+ image,
60
+ href: '/credit-cards',
61
+ items: defaultItems,
62
+ },
63
+ ],
64
+ };
65
+
66
+ const textAndButtonProps: GalleryProps = {
67
+ title: 'Вы можете оплатить бонусными баллами',
68
+ description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
69
+ context,
70
+ cards: [
71
+ {
72
+ title: 'Более 5000 товаров',
73
+ description:
74
+ 'Время копить: ставка растет в зависимости от срока нахождения средств на Счете!',
75
+ image,
76
+ href: '/credit-cards',
77
+ },
78
+ {
79
+ title: 'Более 1000 развлечений',
80
+ description: 'Порядок и условия предоставления в соответствии с 106 ФЗ',
81
+ image,
82
+ href: '/credit-cards',
83
+ },
84
+ {
85
+ title: 'Фермерские продукты',
86
+ description: 'Высокий процент даже при небольшой сумме денежных средств',
87
+ image,
88
+ href: '/credit-cards',
89
+ },
90
+ {
91
+ title: '«Моя выгода»',
92
+ description:
93
+ 'Время копить: ставка растет в зависимости от срока нахождения средств на Счете!',
94
+ image,
95
+ href: '/credit-cards',
96
+ },
97
+ {
98
+ title: 'Фермерские продукты',
99
+ description: 'Высокий процент даже при небольшой сумме денежных средств',
100
+ image,
101
+ href: '/credit-cards',
102
+ },
103
+ ],
104
+ };
105
+
106
+ const listAndButtonProps: GalleryProps = {
107
+ title: 'Вы можете оплатить бонусными баллами',
108
+ description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
109
+ context,
110
+ cards: [
111
+ {
112
+ title: 'Более 5000 товаров',
113
+ image,
114
+ href: '/credit-cards',
115
+ items: defaultItems,
116
+ },
117
+ {
118
+ title: 'Более 1000 развлечений',
119
+ image,
120
+ href: '/credit-cards',
121
+ items: defaultItems,
122
+ },
123
+ {
124
+ title: 'Фермерские продукты',
125
+ image,
126
+ href: '/credit-cards',
127
+ items: defaultItems,
128
+ },
129
+ {
130
+ title: '«Моя выгода»',
131
+ image,
132
+ href: '/credit-cards',
133
+ items: defaultItems,
134
+ },
135
+ {
136
+ title: 'Фермерские продукты',
137
+ image,
138
+ href: '/credit-cards',
139
+ items: defaultItems,
140
+ },
141
+ ],
142
+ };
143
+
144
+ const textAndNoButtonProps: GalleryProps = {
145
+ title: 'Вы можете оплатить бонусными баллами',
146
+ description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
147
+ context,
148
+ cards: [
149
+ {
150
+ title: 'Более 5000 товаров',
151
+ description:
152
+ 'Время копить: ставка растет в зависимости от срока нахождения средств на Счете!',
153
+ image,
154
+ },
155
+ {
156
+ title: 'Более 1000 развлечений',
157
+ description: 'Порядок и условия предоставления в соответствии с 106 ФЗ',
158
+ image,
159
+ },
160
+ {
161
+ title: 'Фермерские продукты',
162
+ description: 'Высокий процент даже при небольшой сумме денежных средств',
163
+ image,
164
+ },
165
+ {
166
+ title: '«Моя выгода»',
167
+ description:
168
+ 'Время копить: ставка растет в зависимости от срока нахождения средств на Счете!',
169
+ image,
170
+ },
171
+ {
172
+ title: 'Фермерские продукты',
173
+ description: 'Высокий процент даже при небольшой сумме денежных средств',
174
+ image,
175
+ },
176
+ ],
177
+ };
178
+
179
+ const onlyTitleProps: GalleryProps = {
180
+ title: 'Вы можете оплатить бонусными баллами',
181
+ description: 'Удобный каталог с большим ассортиментом товаров и сервисов',
182
+ context,
183
+ cards: [
184
+ {
185
+ title: 'Более 5000 товаров',
186
+ image,
187
+ },
188
+ {
189
+ title: 'Более 1000 развлечений',
190
+ image,
191
+ },
192
+ {
193
+ title: 'Фермерские продукты',
194
+ image,
195
+ },
196
+ {
197
+ title: '«Моя выгода»',
198
+ image,
199
+ },
200
+ {
201
+ title: 'Фермерские продукты',
202
+ image,
203
+ },
204
+ ],
205
+ };
206
+
207
+ export default {
208
+ default: <Gallery {...defaultProps} />,
209
+ 'text and button': <Gallery {...textAndButtonProps} />,
210
+ 'list and button': <Gallery {...listAndButtonProps} />,
211
+ 'text and no button': <Gallery {...textAndNoButtonProps} />,
212
+ 'only title': <Gallery {...onlyTitleProps} />,
213
+ };