@redneckz/wildless-cms-uni-blocks 0.2.83 → 0.2.86

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 (284) hide show
  1. package/bundle/blocks.schema.json +1 -945
  2. package/bundle/bundle.umd.js +203 -198
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/Accordion/Accordion.js +1 -1
  5. package/dist/components/Accordion/Accordion.js.map +1 -1
  6. package/dist/components/Accordion/AccordionContent.d.ts +29 -10
  7. package/dist/components/Accordion/AccordionItem.d.ts +2 -2
  8. package/dist/components/Accordion/AccordionItem.js +5 -6
  9. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  10. package/dist/components/BaseTile/BaseTile.d.ts +2 -2
  11. package/dist/components/BaseTile/BaseTile.js +1 -1
  12. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  13. package/dist/components/BaseTile/BaseTileProps.d.ts +31 -0
  14. package/dist/{model/SitemapContent.js → components/BaseTile/BaseTileProps.js} +1 -1
  15. package/dist/components/BaseTile/BaseTileProps.js.map +1 -0
  16. package/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  17. package/dist/components/BenefitsBlock/BenefitsBlock.js +2 -1
  18. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  19. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +14 -1
  20. package/dist/components/BlockContent.d.ts +4 -1
  21. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +45 -2
  22. package/dist/components/ComparisonTable/HeaderCell.d.ts +2 -2
  23. package/dist/components/ContentPage/ContentPage.d.ts +3 -2
  24. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  25. package/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +4 -0
  26. package/dist/components/ExchangeRateTile/ExchangeRateTile.d.ts +1 -1
  27. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  28. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  29. package/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +4 -0
  30. package/dist/components/Footer/Contacts.js +2 -2
  31. package/dist/components/Footer/Contacts.js.map +1 -1
  32. package/dist/components/Footer/FooterContent.d.ts +35 -9
  33. package/dist/components/Footer/FooterLink.d.ts +2 -2
  34. package/dist/components/Footer/HorizontalNavigation.js.map +1 -1
  35. package/dist/components/Footer/Sitemap.d.ts +1 -1
  36. package/dist/components/Footer/Sitemap.js +1 -1
  37. package/dist/components/Footer/Sitemap.js.map +1 -1
  38. package/dist/components/Footer/SocialMedia.d.ts +2 -2
  39. package/dist/components/Footer/SocialMedia.js +2 -2
  40. package/dist/components/Footer/SocialMedia.js.map +1 -1
  41. package/dist/components/Footer/TextInformation.js.map +1 -1
  42. package/dist/components/Gallery/GalleryContent.d.ts +13 -0
  43. package/dist/components/Header/HeaderContent.d.ts +10 -2
  44. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  45. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  46. package/dist/components/Header/HeaderSecondaryMenuButton.js +1 -1
  47. package/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  48. package/dist/components/Header/isSubItemActive.d.ts +2 -2
  49. package/dist/components/Header/isSubItemActive.js.map +1 -1
  50. package/dist/components/Header/isTopItemActive.d.ts +2 -2
  51. package/dist/components/Header/isTopItemActive.js.map +1 -1
  52. package/dist/components/MiniGallery/MiniGallery.d.ts +3 -3
  53. package/dist/components/MiniGallery/MiniGalleryContent.d.ts +6 -0
  54. package/dist/components/MiniGallery/MiniGalleryContent.js +2 -0
  55. package/dist/components/MiniGallery/MiniGalleryContent.js.map +1 -0
  56. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +11 -2
  57. package/dist/components/Placeholder/PlaceholderContent.d.ts +3 -0
  58. package/dist/components/ProductBlock/ProductBlock.mobile.d.ts +2 -2
  59. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  60. package/dist/components/ProductBlock/ProductBlockContent.d.ts +10 -5
  61. package/dist/components/ProductBlock/ProductBlockInner.d.ts +2 -2
  62. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  63. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  64. package/dist/components/ProductGallery/ProductGallery.d.ts +1 -1
  65. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  66. package/dist/components/ProductGallery/ProductGalleryContent.d.ts +17 -2
  67. package/dist/components/ProductTile/ProductTileContent.d.ts +6 -2
  68. package/dist/components/PromoTile/PromoTileContent.d.ts +6 -2
  69. package/dist/components/StepsBlock/StepsBlockContent.d.ts +13 -0
  70. package/dist/components/TextBlock/TextBlockContent.d.ts +13 -0
  71. package/dist/components/Tile/TileContent.d.ts +5 -2
  72. package/dist/hooks/useLink.d.ts +3 -3
  73. package/dist/hooks/useLink.js.map +1 -1
  74. package/dist/index.d.ts +12 -12
  75. package/dist/index.js +10 -10
  76. package/dist/index.js.map +1 -1
  77. package/dist/mergeTopItems.d.ts +2 -2
  78. package/dist/mergeTopItems.js.map +1 -1
  79. package/dist/model/BlockVersion.d.ts +4 -0
  80. package/dist/model/ButtonVersion.d.ts +4 -0
  81. package/dist/model/LinkProps.d.ts +21 -0
  82. package/dist/model/{LinkContent.js → LinkProps.js} +1 -1
  83. package/dist/model/LinkProps.js.map +1 -0
  84. package/dist/model/Picture.d.ts +11 -0
  85. package/dist/model/SitemapProps.d.ts +13 -0
  86. package/dist/{components/BaseTile/BaseTileContent.js → model/SitemapProps.js} +1 -1
  87. package/dist/model/SitemapProps.js.map +1 -0
  88. package/dist/types.d.ts +2 -2
  89. package/dist/ui-kit/Breadcrumb.d.ts +2 -2
  90. package/dist/ui-kit/Button/Button.d.ts +6 -3
  91. package/dist/ui-kit/Button/Button.js.map +1 -1
  92. package/dist/ui-kit/Button/ButtonProps.d.ts +15 -12
  93. package/dist/ui-kit/Icon/Icon.js +7 -1
  94. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  95. package/dist/ui-kit/Icon/IconProps.d.ts +50 -19
  96. package/dist/ui-kit/Icon/IconProps.js +21 -18
  97. package/dist/ui-kit/Icon/IconProps.js.map +1 -1
  98. package/dist/ui-kit/TopItem/TopItem.d.ts +2 -2
  99. package/lib/common.css +1 -1
  100. package/lib/components/Accordion/Accordion.js +1 -1
  101. package/lib/components/Accordion/Accordion.js.map +1 -1
  102. package/lib/components/Accordion/AccordionContent.d.ts +29 -10
  103. package/lib/components/Accordion/AccordionItem.d.ts +2 -2
  104. package/lib/components/Accordion/AccordionItem.js +5 -6
  105. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  106. package/lib/components/BaseTile/BaseTile.d.ts +2 -2
  107. package/lib/components/BaseTile/BaseTile.js +1 -1
  108. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  109. package/lib/components/BaseTile/BaseTileProps.d.ts +31 -0
  110. package/lib/components/BaseTile/BaseTileProps.js +2 -0
  111. package/lib/components/BaseTile/BaseTileProps.js.map +1 -0
  112. package/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  113. package/lib/components/BenefitsBlock/BenefitsBlock.js +2 -1
  114. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  115. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +14 -1
  116. package/lib/components/BlockContent.d.ts +4 -1
  117. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +45 -2
  118. package/lib/components/ComparisonTable/HeaderCell.d.ts +2 -2
  119. package/lib/components/ContentPage/ContentPage.d.ts +3 -2
  120. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  121. package/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +4 -0
  122. package/lib/components/ExchangeRateTile/ExchangeRateTile.d.ts +1 -1
  123. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  124. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  125. package/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +4 -0
  126. package/lib/components/Footer/Contacts.js +2 -2
  127. package/lib/components/Footer/Contacts.js.map +1 -1
  128. package/lib/components/Footer/FooterContent.d.ts +35 -9
  129. package/lib/components/Footer/FooterLink.d.ts +2 -2
  130. package/lib/components/Footer/HorizontalNavigation.js.map +1 -1
  131. package/lib/components/Footer/Sitemap.d.ts +1 -1
  132. package/lib/components/Footer/Sitemap.js +1 -1
  133. package/lib/components/Footer/Sitemap.js.map +1 -1
  134. package/lib/components/Footer/SocialMedia.d.ts +2 -2
  135. package/lib/components/Footer/SocialMedia.js +2 -2
  136. package/lib/components/Footer/SocialMedia.js.map +1 -1
  137. package/lib/components/Footer/TextInformation.js.map +1 -1
  138. package/lib/components/Gallery/GalleryContent.d.ts +13 -0
  139. package/lib/components/Header/HeaderContent.d.ts +10 -2
  140. package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  141. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  142. package/lib/components/Header/HeaderSecondaryMenuButton.js +1 -1
  143. package/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  144. package/lib/components/Header/isSubItemActive.d.ts +2 -2
  145. package/lib/components/Header/isSubItemActive.js.map +1 -1
  146. package/lib/components/Header/isTopItemActive.d.ts +2 -2
  147. package/lib/components/Header/isTopItemActive.js.map +1 -1
  148. package/lib/components/MiniGallery/MiniGallery.d.ts +3 -3
  149. package/lib/components/MiniGallery/MiniGalleryContent.d.ts +6 -0
  150. package/lib/components/MiniGallery/MiniGalleryContent.js +2 -0
  151. package/lib/components/MiniGallery/MiniGalleryContent.js.map +1 -0
  152. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +11 -2
  153. package/lib/components/Placeholder/PlaceholderContent.d.ts +3 -0
  154. package/lib/components/ProductBlock/ProductBlock.mobile.d.ts +2 -2
  155. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  156. package/lib/components/ProductBlock/ProductBlockContent.d.ts +10 -5
  157. package/lib/components/ProductBlock/ProductBlockInner.d.ts +2 -2
  158. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  159. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  160. package/lib/components/ProductGallery/ProductGallery.d.ts +1 -1
  161. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  162. package/lib/components/ProductGallery/ProductGalleryContent.d.ts +17 -2
  163. package/lib/components/ProductTile/ProductTileContent.d.ts +6 -2
  164. package/lib/components/PromoTile/PromoTileContent.d.ts +6 -2
  165. package/lib/components/StepsBlock/StepsBlockContent.d.ts +13 -0
  166. package/lib/components/TextBlock/TextBlockContent.d.ts +13 -0
  167. package/lib/components/Tile/TileContent.d.ts +5 -2
  168. package/lib/hooks/useLink.d.ts +3 -3
  169. package/lib/hooks/useLink.js.map +1 -1
  170. package/lib/index.d.ts +12 -12
  171. package/lib/index.js +5 -5
  172. package/lib/index.js.map +1 -1
  173. package/lib/mergeTopItems.d.ts +2 -2
  174. package/lib/mergeTopItems.js.map +1 -1
  175. package/lib/model/BlockVersion.d.ts +4 -0
  176. package/lib/model/ButtonVersion.d.ts +4 -0
  177. package/lib/model/LinkProps.d.ts +21 -0
  178. package/lib/model/LinkProps.js +2 -0
  179. package/lib/model/LinkProps.js.map +1 -0
  180. package/lib/model/Picture.d.ts +11 -0
  181. package/lib/model/SitemapProps.d.ts +13 -0
  182. package/lib/model/SitemapProps.js +2 -0
  183. package/lib/model/SitemapProps.js.map +1 -0
  184. package/lib/types.d.ts +2 -2
  185. package/lib/ui-kit/Breadcrumb.d.ts +2 -2
  186. package/lib/ui-kit/Button/Button.d.ts +6 -3
  187. package/lib/ui-kit/Button/Button.js.map +1 -1
  188. package/lib/ui-kit/Button/ButtonProps.d.ts +15 -12
  189. package/lib/ui-kit/Icon/Icon.js +7 -1
  190. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  191. package/lib/ui-kit/Icon/IconProps.d.ts +50 -19
  192. package/lib/ui-kit/Icon/IconProps.js +21 -18
  193. package/lib/ui-kit/Icon/IconProps.js.map +1 -1
  194. package/lib/ui-kit/TopItem/TopItem.d.ts +2 -2
  195. package/package.json +17 -36
  196. package/src/components/Accordion/Accordion.example.json +74 -0
  197. package/src/components/Accordion/Accordion.fixture.tsx +1 -16
  198. package/src/components/Accordion/Accordion.tsx +1 -1
  199. package/src/components/Accordion/AccordionContent.ts +31 -11
  200. package/src/components/Accordion/AccordionItem.tsx +10 -10
  201. package/src/components/BaseTile/BaseTile.tsx +4 -5
  202. package/src/components/BaseTile/BaseTileProps.ts +33 -0
  203. package/src/components/BenefitsBlock/BenefitsBlock.example.json +13 -0
  204. package/src/components/BenefitsBlock/BenefitsBlock.tsx +3 -2
  205. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +14 -1
  206. package/src/components/BlockContent.ts +4 -1
  207. package/src/components/ComparisonTable/ComparisonTable.example.json +84 -0
  208. package/src/components/ComparisonTable/ComparisonTableContent.ts +46 -3
  209. package/src/components/ComparisonTable/HeaderCell.tsx +2 -2
  210. package/src/components/ContentPage/ContentPage.tsx +7 -5
  211. package/src/components/CreditCalculator/CreditCalculatorContent.ts +4 -0
  212. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +2 -2
  213. package/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +4 -0
  214. package/src/components/Footer/Contacts.tsx +2 -2
  215. package/src/components/Footer/FooterContent.ts +36 -9
  216. package/src/components/Footer/FooterLink.ts +2 -2
  217. package/src/components/Footer/HorizontalNavigation.tsx +2 -2
  218. package/src/components/Footer/Sitemap.tsx +5 -5
  219. package/src/components/Footer/SocialMedia.tsx +5 -12
  220. package/src/components/Footer/TextInformation.tsx +2 -2
  221. package/src/components/Gallery/Gallery.example.json +71 -0
  222. package/src/components/Gallery/GalleryContent.ts +13 -0
  223. package/src/components/Header/HeaderContent.ts +10 -2
  224. package/src/components/Header/HeaderSecondaryMenu.tsx +4 -8
  225. package/src/components/Header/HeaderSecondaryMenuButton.tsx +1 -1
  226. package/src/components/Header/isSubItemActive.ts +3 -3
  227. package/src/components/Header/isTopItemActive.ts +3 -3
  228. package/src/components/MiniGallery/MiniGallery.example.json +61 -0
  229. package/src/components/MiniGallery/MiniGallery.tsx +3 -3
  230. package/src/components/MiniGallery/MiniGalleryContent.ts +6 -0
  231. package/src/components/MobileAppTile/MobileAppTile.example.json +20 -0
  232. package/src/components/MobileAppTile/MobileAppTileContent.ts +11 -2
  233. package/src/components/Placeholder/PlaceholderContent.ts +3 -0
  234. package/src/components/ProductBlock/ProductBlock.example.json +17 -0
  235. package/src/components/ProductBlock/ProductBlock.mobile.tsx +3 -3
  236. package/src/components/ProductBlock/ProductBlockContent.ts +10 -5
  237. package/src/components/ProductBlock/ProductBlockInner.tsx +4 -4
  238. package/src/components/ProductGallery/ProductGallery.example.json +21 -0
  239. package/src/components/ProductGallery/ProductGallery.tsx +3 -3
  240. package/src/components/ProductGallery/ProductGalleryContent.ts +17 -2
  241. package/src/components/ProductTile/ProductTile.example.json +30 -0
  242. package/src/components/ProductTile/ProductTileContent.ts +6 -2
  243. package/src/components/PromoTile/PromoTile.example.json +13 -0
  244. package/src/components/PromoTile/PromoTileContent.ts +6 -2
  245. package/src/components/StepsBlock/StepsBlock.example.json +17 -0
  246. package/src/components/StepsBlock/StepsBlockContent.ts +13 -0
  247. package/src/components/TextBlock/TextBlock.example.json +6 -0
  248. package/src/components/TextBlock/TextBlockContent.ts +14 -0
  249. package/src/components/Tile/Tile.example.json +18 -0
  250. package/src/components/Tile/TileContent.ts +5 -2
  251. package/src/hooks/useLink.ts +2 -2
  252. package/src/icons/GridIcon.svg +4 -7
  253. package/src/index.ts +14 -21
  254. package/src/mergeTopItems.ts +5 -5
  255. package/src/model/BlockVersion.ts +4 -0
  256. package/src/model/ButtonVersion.ts +4 -0
  257. package/src/model/LinkProps.ts +22 -0
  258. package/src/model/Picture.ts +11 -0
  259. package/src/model/SitemapProps.ts +15 -0
  260. package/src/types.ts +2 -2
  261. package/src/ui-kit/Breadcrumb.tsx +2 -2
  262. package/src/ui-kit/Button/Button.tsx +7 -3
  263. package/src/ui-kit/Button/ButtonProps.ts +16 -13
  264. package/src/ui-kit/Icon/Icon.tsx +23 -9
  265. package/src/ui-kit/Icon/IconProps.ts +36 -5
  266. package/src/ui-kit/TopItem/TopItem.tsx +2 -2
  267. package/dist/components/BaseTile/BaseTileContent.d.ts +0 -13
  268. package/dist/components/BaseTile/BaseTileContent.js.map +0 -1
  269. package/dist/model/LinkContent.d.ts +0 -5
  270. package/dist/model/LinkContent.js.map +0 -1
  271. package/dist/model/SitemapContent.d.ts +0 -7
  272. package/dist/model/SitemapContent.js.map +0 -1
  273. package/lib/components/BaseTile/BaseTileContent.d.ts +0 -13
  274. package/lib/components/BaseTile/BaseTileContent.js +0 -2
  275. package/lib/components/BaseTile/BaseTileContent.js.map +0 -1
  276. package/lib/model/LinkContent.d.ts +0 -5
  277. package/lib/model/LinkContent.js +0 -2
  278. package/lib/model/LinkContent.js.map +0 -1
  279. package/lib/model/SitemapContent.d.ts +0 -7
  280. package/lib/model/SitemapContent.js +0 -2
  281. package/lib/model/SitemapContent.js.map +0 -1
  282. package/src/components/BaseTile/BaseTileContent.ts +0 -14
  283. package/src/model/LinkContent.ts +0 -5
  284. package/src/model/SitemapContent.ts +0 -9
@@ -1,17 +1,16 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BaseTileContent } from './BaseTileContent';
2
+ import { useLink } from '../../hooks/useLink';
3
3
  import type { BlockVersion } from '../../model/BlockVersion';
4
4
  import type { UniBlockProps } from '../../types';
5
5
  import { BlockItem } from '../../ui-kit/BlockItem/BlockItem';
6
6
  import { Button } from '../../ui-kit/Button/Button';
7
- import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
8
7
  import { Icon } from '../../ui-kit/Icon/Icon';
9
8
  import { Img } from '../../ui-kit/Img';
10
9
  import { Title } from '../../ui-kit/Title/Title';
11
- import { useLink } from '../../hooks/useLink';
12
10
  import { getColSpan } from '../../utils/getColSpan';
11
+ import type { BaseTileCommonProps, BaseTileIconButton } from './BaseTileProps';
13
12
 
14
- export interface BaseTileProps extends BaseTileContent, UniBlockProps {}
13
+ export interface BaseTileProps extends BaseTileCommonProps, UniBlockProps {}
15
14
 
16
15
  const TITLE_CLASSES = 'font-medium m-0 mb-4 whitespace-pre-wrap max-w-[600px]';
17
16
 
@@ -82,7 +81,7 @@ function renderItems(items: string[] = [], version?: BlockVersion) {
82
81
  );
83
82
  }
84
83
 
85
- function renderButton({ icon, ...button }: ButtonWithIconProps, i: number) {
84
+ function renderButton({ icon, ...button }: BaseTileIconButton, i: number) {
86
85
  if (!button?.text) return;
87
86
 
88
87
  if (icon)
@@ -0,0 +1,33 @@
1
+ import type { BlockVersion } from '../../model/BlockVersion';
2
+ import type { Picture } from '../../model/Picture';
3
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
4
+ import type { IconName } from '../../ui-kit/Icon/IconProps';
5
+ import type { TitleSize } from '../../ui-kit/Title/TitleProps';
6
+
7
+ export interface BaseTileIconButton extends ButtonWithIconProps {
8
+ icon?: IconName;
9
+ }
10
+
11
+ /**
12
+ * @title Плитка
13
+ */
14
+ export interface BaseTileCommonProps {
15
+ /** @title Заголовок */
16
+ title?: string;
17
+ /**
18
+ * @title Размер заголовка
19
+ * @default M
20
+ */
21
+ titleSize?: TitleSize;
22
+ /** @title Описание */
23
+ description?: string;
24
+ image?: Picture;
25
+ /** @title Список */
26
+ items?: string[];
27
+ /**
28
+ * @title Кнопки
29
+ * @maxItems 4
30
+ */
31
+ buttons?: BaseTileIconButton[];
32
+ version?: BlockVersion;
33
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "title": "Преимущества",
3
+ "benefits": [
4
+ {
5
+ "label": "Преимущество №1",
6
+ "icon": "ClockIcon"
7
+ },
8
+ {
9
+ "label": "Преимущество №2",
10
+ "icon": "SignDocsIcon"
11
+ }
12
+ ]
13
+ }
@@ -1,7 +1,8 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { Benefit, BenefitsBlockContent } from './BenefitsBlockContent';
3
2
  import type { UniBlockProps } from '../../types';
4
3
  import { Icon } from '../../ui-kit/Icon/Icon';
4
+ import { Title } from '../../ui-kit/Title/Title';
5
+ import type { Benefit, BenefitsBlockContent } from './BenefitsBlockContent';
5
6
 
6
7
  export interface BenefitsBlockProps extends BenefitsBlockContent, UniBlockProps {}
7
8
 
@@ -12,7 +13,7 @@ export const BenefitsBlock = JSX<BenefitsBlockProps>(({ className, title, benefi
12
13
  className || ''
13
14
  }`}
14
15
  >
15
- <h2 className="font-medium text-title m-0 max-w-[47rem] text-center">{title}</h2>
16
+ {title ? <Title className="font-medium m-0 max-w-[47rem] text-center">{title}</Title> : null}
16
17
  {benefits?.length ? (
17
18
  <div className="grid grid-cols-2 gap-5 mt-9">{benefits.map(renderStep)}</div>
18
19
  ) : null}
@@ -1,12 +1,25 @@
1
1
  import type { IconName } from '../../ui-kit/Icon/IconProps';
2
2
 
3
+ /**
4
+ * @title Преимущество
5
+ */
3
6
  export interface Benefit {
4
- label: string;
7
+ /** @title Название */
8
+ label?: string;
9
+ /** @title Описание */
5
10
  description?: string;
6
11
  icon?: IconName;
7
12
  }
8
13
 
14
+ /**
15
+ * @title Блок преимущества
16
+ */
9
17
  export interface BenefitsBlockContent {
18
+ /** @title Заголовок */
10
19
  title?: string;
20
+ /**
21
+ * @title Список преимущества
22
+ * @maxItems 6
23
+ */
11
24
  benefits?: Benefit[];
12
25
  }
@@ -1,4 +1,5 @@
1
1
  import type { BenefitsBlockContent } from './BenefitsBlock/BenefitsBlockContent';
2
+ import type { ComparisonTableContent } from './ComparisonTable/ComparisonTableContent';
2
3
  import type { ExchangeRateTileContent } from './ExchangeRateTile/ExchangeRateTileContent';
3
4
  import type { FooterContent } from './Footer/FooterContent';
4
5
  import type { GalleryContent } from './Gallery/GalleryContent';
@@ -12,8 +13,10 @@ import type { PromoTileContent } from './PromoTile/PromoTileContent';
12
13
  import type { StepsBlockContent } from './StepsBlock/StepsBlockContent';
13
14
  import type { TextBlockContent } from './TextBlock/TextBlockContent';
14
15
  import type { TileContent } from './Tile/TileContent';
15
- import type { ComparisonTableContent } from './ComparisonTable/ComparisonTableContent';
16
16
 
17
+ /**
18
+ * @hidden
19
+ */
17
20
  export type BlockContent =
18
21
  | HeaderContent
19
22
  | FooterContent
@@ -0,0 +1,84 @@
1
+ {
2
+ "title": "Заголовок",
3
+ "rowHeaders": [
4
+ {
5
+ "title": "Параметр 1"
6
+ },
7
+ {
8
+ "title": "Параметр 2"
9
+ },
10
+ {
11
+ "title": "Параметр 3"
12
+ }
13
+ ],
14
+ "columns": [
15
+ {
16
+ "header": {
17
+ "title": "Продукт 1",
18
+ "image": {
19
+ "format": "webp",
20
+ "size": {
21
+ "width": 100,
22
+ "height": 63
23
+ }
24
+ }
25
+ },
26
+ "data": [
27
+ [
28
+ {
29
+ "label": "Ячейка 1"
30
+ }
31
+ ],
32
+ [
33
+ {
34
+ "label": "Ячейка 2-1",
35
+ "description": "Описание для ячейки 2-1"
36
+ },
37
+ {
38
+ "label": "Ячейка 2-2",
39
+ "description": "Описание для ячейки 2-2"
40
+ }
41
+ ],
42
+ [
43
+ {
44
+ "label": "Ячейка 3"
45
+ }
46
+ ]
47
+ ]
48
+ },
49
+ {
50
+ "header": {
51
+ "title": "Продукт 2",
52
+ "image": {
53
+ "format": "webp",
54
+ "size": {
55
+ "width": 100,
56
+ "height": 63
57
+ }
58
+ }
59
+ },
60
+ "data": [
61
+ [
62
+ {
63
+ "label": "Ячейка 1"
64
+ }
65
+ ],
66
+ [
67
+ {
68
+ "label": "Ячейка 2-1",
69
+ "description": "Описание для ячейки 2-1"
70
+ },
71
+ {
72
+ "label": "Ячейка 2-2",
73
+ "description": "Описание для ячейки 2-2"
74
+ }
75
+ ],
76
+ [
77
+ {
78
+ "label": "Ячейка 3"
79
+ }
80
+ ]
81
+ ]
82
+ }
83
+ ]
84
+ }
@@ -1,43 +1,86 @@
1
- import type { LinkContent } from '../../model/LinkContent';
1
+ import type { LinkProps } from '../../model/LinkProps';
2
2
  import type { Picture } from '../../model/Picture';
3
3
  import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
4
4
  import type { IconName } from '../../ui-kit/Icon/IconProps';
5
5
 
6
+ /**
7
+ * @hidden
8
+ */
6
9
  export type Row = {
7
10
  header: RowHeader;
8
11
  data: CellData[][];
9
12
  };
10
13
 
14
+ /**
15
+ * @hidden
16
+ */
11
17
  export type RowData = Row[] | undefined;
12
18
 
19
+ /**
20
+ * @title Ячейка
21
+ */
13
22
  export interface CellData {
23
+ /** @title Заголовок */
14
24
  label?: string;
25
+ /** @title Описание */
15
26
  description?: string;
27
+ /**
28
+ * @title Иконки
29
+ * @hidden
30
+ */
16
31
  icons?: IconName[];
32
+ /** @hidden */
17
33
  image?: Picture;
34
+ /**
35
+ * @title Кнопки
36
+ * @hidden
37
+ */
18
38
  buttons?: ButtonProps[];
19
39
  }
20
40
 
41
+ /**
42
+ * @title Шапка колонки
43
+ */
21
44
  export interface ColumnHeader {
45
+ /** @title Заголовок */
22
46
  title?: string;
47
+ /** @hidden */
23
48
  icon?: IconName;
49
+ /** @hidden */
24
50
  image?: Picture;
25
- link?: LinkContent;
51
+ /** @hidden */
52
+ link?: LinkProps;
26
53
  }
54
+
55
+ /**
56
+ * @title Продукт
57
+ */
27
58
  export interface Column {
28
59
  header?: ColumnHeader;
60
+ /** @title Данные */
29
61
  data?: CellData[][];
30
62
  }
31
63
 
64
+ /**
65
+ * @title Параметр
66
+ */
32
67
  export interface RowHeader {
68
+ /** @title Заголовок */
33
69
  title?: string;
34
70
  icon?: IconName;
35
71
  }
36
-
72
+ /**
73
+ * @title Сравнительная таблица
74
+ */
37
75
  export interface ComparisonTableContent {
76
+ /** @title Заголовок */
38
77
  title?: string;
78
+ /** @title Параметры */
39
79
  rowHeaders?: RowHeader[];
80
+ /** @title Продукты */
40
81
  columns?: Column[];
82
+ /** @title Отображать заданное количество строк */
41
83
  visibleRowLength?: number;
84
+ /** @title Закрасить первую колонку */
42
85
  isColoredFirstColumn?: boolean;
43
86
  }
@@ -1,5 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { LinkContent } from '../../model/LinkContent';
2
+ import type { LinkProps } from '../../model/LinkProps';
3
3
  import type { Picture } from '../../model/Picture';
4
4
  import { Button } from '../../ui-kit/Button/Button';
5
5
  import { Icon } from '../../ui-kit/Icon/Icon';
@@ -12,7 +12,7 @@ export interface HeaderCellProps {
12
12
  icon?: IconName;
13
13
  image?: Picture;
14
14
  title?: string;
15
- link?: LinkContent;
15
+ link?: LinkProps;
16
16
  }
17
17
 
18
18
  export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) => (
@@ -1,8 +1,8 @@
1
1
  import { JSX, PropsWithChildren } from '@redneckz/uni-jsx';
2
+ import type { BlockDef, ContentPageDef, UniBlockProps } from '../../types';
2
3
  import type { BlockContent } from '../BlockContent';
3
4
  import { LikeControl } from '../LikeControl/LikeControl';
4
5
  import { Placeholder } from '../Placeholder/Placeholder';
5
- import type { BlockDef, ContentPageDef, UniBlockProps } from '../../types';
6
6
 
7
7
  interface BlockDecoratorProps<VNode> {
8
8
  blockClassName: string;
@@ -15,11 +15,13 @@ export type BlockDecorator<VNode = any> = (
15
15
  index?: number | string,
16
16
  ) => any;
17
17
 
18
+ export type JSXBlock = (
19
+ props: PropsWithChildren<UniBlockProps & BlockContent, any>,
20
+ context?: any,
21
+ ) => any;
22
+
18
23
  export interface ContentPageProps extends UniBlockProps {
19
- blocksRegistry: Record<
20
- string,
21
- (props: PropsWithChildren<UniBlockProps & BlockContent, any>, context?: any) => any
22
- >;
24
+ blocksRegistry: Record<string, JSXBlock>;
23
25
  data: ContentPageDef;
24
26
  blockDecorator?: BlockDecorator;
25
27
  }
@@ -12,6 +12,10 @@ export interface CreditCalculatorData {
12
12
  rows?: CalculatorParams[];
13
13
  }
14
14
 
15
+ /**
16
+ * @title Кредитный калькулятор
17
+ */
15
18
  export interface CreditCalculatorContent {
19
+ /** @title Справочник */
16
20
  directoryName?: string;
17
21
  }
@@ -1,9 +1,9 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { ExchangeRateTileContent } from './ExchangeRateTileContent';
3
- import { Tile } from '../Tile/Tile';
4
2
  import type { UniBlockProps } from '../../types';
5
3
  import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
6
4
  import { Icon } from '../../ui-kit/Icon/Icon';
5
+ import { Tile } from '../Tile/Tile';
6
+ import type { ExchangeRateTileContent } from './ExchangeRateTileContent';
7
7
 
8
8
  export interface ExchangeRateTileProps extends ExchangeRateTileContent, UniBlockProps {}
9
9
 
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @title Курсы валют
3
+ */
1
4
  export interface ExchangeRateTileContent {
5
+ /** @title Заголовок */
2
6
  title?: string;
3
7
  }
@@ -1,7 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useLink } from '../../hooks/useLink';
2
3
  import type { UniBlockProps } from '../../types';
3
4
  import { Button } from '../../ui-kit/Button/Button';
4
- import { useLink } from '../../hooks/useLink';
5
5
  import type { ContactInfo } from './FooterContent';
6
6
 
7
7
  export interface ContactsProps extends UniBlockProps {
@@ -45,7 +45,7 @@ const renderContact = (item: ContactInfo, index: number) => {
45
45
  );
46
46
  };
47
47
 
48
- const renderText = (type: ContactInfo['type'], text: string) => {
48
+ const renderText = (type: ContactInfo['type'], text = '') => {
49
49
  switch (type) {
50
50
  case 'tel':
51
51
  return (
@@ -1,15 +1,42 @@
1
- import type { LinkContent } from '../../model/LinkContent';
2
- import type { SitemapContent } from '../../model/SitemapContent';
1
+ import type { LinkProps } from '../../model/LinkProps';
2
+ import type { SitemapProps } from '../../model/SitemapProps';
3
3
 
4
+ /**
5
+ * @title Тип контакта
6
+ * @enumNames [
7
+ * "Телефон",
8
+ * "Почта"
9
+ * ]
10
+ */
11
+ export type ContactType = 'tel' | 'email';
12
+
13
+ /**
14
+ * @title Контакт
15
+ */
4
16
  export interface ContactInfo {
5
- text: string;
6
- type: 'tel' | 'email';
7
- description: string;
17
+ /** @title Текст */
18
+ text?: string;
19
+ type?: ContactType;
20
+ /** @title Описание */
21
+ description?: string;
8
22
  }
9
23
 
10
- export interface FooterContent extends SitemapContent {
11
- documents?: LinkContent[];
12
- relatedEnterprises?: LinkContent[];
24
+ /**
25
+ * @required ["href"]
26
+ */
27
+ export interface SocialMedia extends Omit<LinkProps, 'text'> {}
28
+
29
+ /**
30
+ * @title Подвал
31
+ * @required ["topItems"]
32
+ */
33
+ export interface FooterContent extends SitemapProps {
34
+ /** @title Обязательные документы */
35
+ documents?: LinkProps[];
36
+ /** @title Другие предприятия */
37
+ relatedEnterprises?: LinkProps[];
38
+ /** @title Контакты */
13
39
  contacts?: ContactInfo[];
14
- socialMedia?: Omit<LinkContent, 'text'>[];
40
+ /** @title Социальные сети */
41
+ socialMedia?: SocialMedia[];
15
42
  }
@@ -1,6 +1,6 @@
1
- import type { LinkContent } from '../../model/LinkContent';
1
+ import type { LinkProps } from '../../model/LinkProps';
2
2
  import type { UniBlockProps } from '../../types';
3
3
 
4
4
  export interface FooterLink extends UniBlockProps {
5
- links?: LinkContent[];
5
+ links?: LinkProps[];
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { LinkContent } from '../../model/LinkContent';
3
2
  import { useLink } from '../../hooks/useLink';
3
+ import { LinkProps } from '../../model/LinkProps';
4
4
  import type { FooterLink } from './FooterLink';
5
5
 
6
6
  export const HorizontalNavigation = JSX<FooterLink>(({ className, links, context }) => {
@@ -24,7 +24,7 @@ export const HorizontalNavigation = JSX<FooterLink>(({ className, links, context
24
24
  );
25
25
  });
26
26
 
27
- interface HorizontalNavigationLinkProps extends LinkContent {
27
+ interface HorizontalNavigationLinkProps extends LinkProps {
28
28
  className: string;
29
29
  index: number;
30
30
  onClick: (ev: MouseEvent) => any;
@@ -1,10 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { mergeTopItems } from '../../mergeTopItems';
3
- import type { LinkContent } from '../../model/LinkContent';
4
- import type { TopMenuItem } from '../../model/SitemapContent';
5
- import type { UniBlockProps } from '../../types';
6
2
  import { useLink } from '../../hooks/useLink';
7
3
  import { useSitemap } from '../../hooks/useSitemap';
4
+ import { mergeTopItems } from '../../mergeTopItems';
5
+ import type { LinkProps } from '../../model/LinkProps';
6
+ import type { TopMenuItem } from '../../model/SitemapProps';
7
+ import type { UniBlockProps } from '../../types';
8
8
  export interface SitemapProps extends UniBlockProps {
9
9
  items?: TopMenuItem[];
10
10
  }
@@ -43,7 +43,7 @@ const renderColumn = (c: TopMenuItem, index: number, { router, handlerDecorator
43
43
  );
44
44
  };
45
45
 
46
- interface ColumnItemProps extends LinkContent {
46
+ interface ColumnItemProps extends LinkProps {
47
47
  index?: number;
48
48
  }
49
49
 
@@ -1,10 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { LinkContent } from '../../model/LinkContent';
2
+ import { useLink } from '../../hooks/useLink';
3
+ import type { LinkProps } from '../../model/LinkProps';
3
4
  import type { UniBlockProps } from '../../types';
5
+ import { Button } from '../../ui-kit/Button/Button';
4
6
  import { Icon } from '../../ui-kit/Icon/Icon';
5
7
  import type { IconName } from '../../ui-kit/Icon/IconProps';
6
- import { useLink } from '../../hooks/useLink';
7
- import { Button } from '../../ui-kit/Button/Button';
8
8
 
9
9
  const ICONS_MAP: Array<{
10
10
  origins: string[];
@@ -25,7 +25,7 @@ const ICONS_MAP: Array<{
25
25
  ];
26
26
 
27
27
  export interface SocialMediaProps extends UniBlockProps {
28
- media?: Omit<LinkContent, 'text'>[];
28
+ media?: Omit<LinkProps, 'text'>[];
29
29
  }
30
30
 
31
31
  export const SocialMedia = JSX<SocialMediaProps>(({ className, media, context }) => {
@@ -58,14 +58,7 @@ const MediaButton = JSX<MediaButtonProps>(({ href }) => {
58
58
  rel="noopener noreferrer"
59
59
  aria-label={label}
60
60
  className="border-solid border border-main-divider w-9 h-9 flex items-center justify-center hover:fill-primary-main"
61
- appendLeft={
62
- <Icon
63
- name={icon}
64
- width={width}
65
- height={height}
66
- className="[&>*]:fill-primary-text [&>*]:hover:fill-primary-main"
67
- />
68
- }
61
+ appendLeft={<Icon name={icon} width={width} height={height} asSVG />}
69
62
  />
70
63
  );
71
64
  });
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { LinkContent } from '../../model/LinkContent';
3
2
  import { useLink } from '../../hooks/useLink';
3
+ import type { LinkProps } from '../../model/LinkProps';
4
4
  import { FooterLink } from './FooterLink';
5
5
 
6
6
  export const TextInformation = JSX<FooterLink>(({ className, links, context }) => {
@@ -28,7 +28,7 @@ export const TextInformation = JSX<FooterLink>(({ className, links, context }) =
28
28
  );
29
29
  });
30
30
 
31
- interface TextInformationLinkProps extends LinkContent {
31
+ interface TextInformationLinkProps extends LinkProps {
32
32
  className: string;
33
33
  index: number;
34
34
  onClick: (ev: MouseEvent) => any;
@@ -0,0 +1,71 @@
1
+ {
2
+ "title": "Галерея",
3
+ "description": "Описание",
4
+ "cards": [
5
+ {
6
+ "image": {
7
+ "format": "webp",
8
+ "size": {
9
+ "width": 140,
10
+ "height": 140
11
+ }
12
+ },
13
+ "title": "Заголовок 1",
14
+ "description": "Описание 1",
15
+ "href": "/credit-cards",
16
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"]
17
+ },
18
+ {
19
+ "image": {
20
+ "format": "webp",
21
+ "size": {
22
+ "width": 140,
23
+ "height": 140
24
+ }
25
+ },
26
+ "title": "Заголовок 2",
27
+ "description": "Описание 2",
28
+ "href": "/credit-cards",
29
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"]
30
+ },
31
+ {
32
+ "image": {
33
+ "format": "webp",
34
+ "size": {
35
+ "width": 140,
36
+ "height": 140
37
+ }
38
+ },
39
+ "title": "Заголовок 3",
40
+ "description": "Описание 3",
41
+ "href": "/credit-cards",
42
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"]
43
+ },
44
+ {
45
+ "image": {
46
+ "format": "webp",
47
+ "size": {
48
+ "width": 140,
49
+ "height": 140
50
+ }
51
+ },
52
+ "title": "Заголовок 4",
53
+ "description": "Описание 4",
54
+ "href": "/credit-cards",
55
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"]
56
+ },
57
+ {
58
+ "image": {
59
+ "format": "webp",
60
+ "size": {
61
+ "width": 140,
62
+ "height": 140
63
+ }
64
+ },
65
+ "title": "Заголовок 5",
66
+ "description": "Описание 5",
67
+ "href": "/credit-cards",
68
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"]
69
+ }
70
+ ]
71
+ }