@redneckz/wildless-cms-uni-blocks 0.3.76 → 0.3.78

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 (192) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +12 -14
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/Accordion/AccordionContent.d.ts +6 -3
  5. package/dist/components/Bonus/Bonus.js +1 -1
  6. package/dist/components/Bonus/Bonus.js.map +1 -1
  7. package/dist/components/Bonus/BonusContent.d.ts +1 -1
  8. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +5 -5
  9. package/dist/components/Calculator/Calculator.js +1 -1
  10. package/dist/components/Calculator/Calculator.js.map +1 -1
  11. package/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +5 -3
  12. package/dist/components/GracePeriod/GracePeriod.js +2 -2
  13. package/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  14. package/dist/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  15. package/dist/components/GroupBlock/GroupBlockContent.d.ts +2 -2
  16. package/dist/components/GroupBlock/GroupBlockTabs.js +1 -1
  17. package/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  18. package/dist/components/LinkDocs/LinkDocsContent.d.ts +10 -1
  19. package/dist/components/PictureText/PictureTextContent.d.ts +1 -0
  20. package/dist/components/StepsBlock/StepsBlock.js +3 -2
  21. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  22. package/dist/components/StepsBlock/StepsBlock.mobile.js +2 -1
  23. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  24. package/dist/components/StepsBlock/StepsBlockContent.d.ts +11 -0
  25. package/dist/model/Picture.d.ts +6 -0
  26. package/dist/ui-kit/BlocksList/BlocksListProps.d.ts +10 -10
  27. package/dist/ui-kit/Button/ButtonProps.d.ts +2 -0
  28. package/dist/ui-kit/Button/ButtonSection.js +2 -2
  29. package/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  30. package/dist/ui-kit/Img/Img.js +2 -6
  31. package/dist/ui-kit/Img/Img.js.map +1 -1
  32. package/dist/utils/checkIsIconRenderable.d.ts +2 -0
  33. package/dist/utils/checkIsIconRenderable.js +5 -0
  34. package/dist/utils/checkIsIconRenderable.js.map +1 -0
  35. package/lib/common.css +1 -1
  36. package/lib/components/Accordion/AccordionContent.d.ts +6 -3
  37. package/lib/components/Bonus/Bonus.js +1 -1
  38. package/lib/components/Bonus/Bonus.js.map +1 -1
  39. package/lib/components/Bonus/BonusContent.d.ts +1 -1
  40. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +5 -5
  41. package/lib/components/Calculator/Calculator.js +1 -1
  42. package/lib/components/Calculator/Calculator.js.map +1 -1
  43. package/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +5 -3
  44. package/lib/components/GracePeriod/GracePeriod.js +2 -2
  45. package/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  46. package/lib/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  47. package/lib/components/GroupBlock/GroupBlockContent.d.ts +2 -2
  48. package/lib/components/GroupBlock/GroupBlockTabs.js +1 -1
  49. package/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  50. package/lib/components/LinkDocs/LinkDocsContent.d.ts +10 -1
  51. package/lib/components/PictureText/PictureTextContent.d.ts +1 -0
  52. package/lib/components/StepsBlock/StepsBlock.js +3 -2
  53. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  54. package/lib/components/StepsBlock/StepsBlock.mobile.js +2 -1
  55. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  56. package/lib/components/StepsBlock/StepsBlockContent.d.ts +11 -0
  57. package/lib/model/Picture.d.ts +6 -0
  58. package/lib/ui-kit/BlocksList/BlocksListProps.d.ts +10 -10
  59. package/lib/ui-kit/Button/ButtonProps.d.ts +2 -0
  60. package/lib/ui-kit/Button/ButtonSection.js +2 -2
  61. package/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  62. package/lib/ui-kit/Img/Img.js +2 -6
  63. package/lib/ui-kit/Img/Img.js.map +1 -1
  64. package/lib/utils/checkIsIconRenderable.d.ts +2 -0
  65. package/lib/utils/checkIsIconRenderable.js +2 -0
  66. package/lib/utils/checkIsIconRenderable.js.map +1 -0
  67. package/mobile/bundle/bundle.umd.js +5 -3
  68. package/mobile/bundle/bundle.umd.min.js +1 -1
  69. package/mobile/dist/components/Accordion/AccordionContent.d.ts +6 -3
  70. package/mobile/dist/components/Bonus/Bonus.js +1 -1
  71. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  72. package/mobile/dist/components/Bonus/BonusContent.d.ts +1 -1
  73. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +5 -5
  74. package/mobile/dist/components/Calculator/Calculator.js +1 -1
  75. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  76. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +5 -3
  77. package/mobile/dist/components/GracePeriod/GracePeriod.js +2 -2
  78. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  79. package/mobile/dist/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  80. package/mobile/dist/components/GroupBlock/GroupBlockContent.d.ts +2 -2
  81. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +1 -1
  82. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  83. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +10 -1
  84. package/mobile/dist/components/PictureText/PictureTextContent.d.ts +1 -0
  85. package/mobile/dist/components/StepsBlock/StepsBlock.js +2 -1
  86. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  87. package/mobile/dist/components/StepsBlock/StepsBlockContent.d.ts +11 -0
  88. package/mobile/dist/model/Picture.d.ts +6 -0
  89. package/mobile/dist/ui-kit/BlocksList/BlocksListProps.d.ts +10 -10
  90. package/mobile/dist/ui-kit/Button/ButtonProps.d.ts +2 -0
  91. package/mobile/dist/ui-kit/Button/ButtonSection.js +2 -2
  92. package/mobile/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  93. package/mobile/dist/utils/checkIsIconRenderable.d.ts +2 -0
  94. package/mobile/dist/utils/checkIsIconRenderable.js +5 -0
  95. package/mobile/dist/utils/checkIsIconRenderable.js.map +1 -0
  96. package/mobile/lib/components/Accordion/AccordionContent.d.ts +6 -3
  97. package/mobile/lib/components/Bonus/Bonus.js +1 -1
  98. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  99. package/mobile/lib/components/Bonus/BonusContent.d.ts +1 -1
  100. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +5 -5
  101. package/mobile/lib/components/Calculator/Calculator.js +1 -1
  102. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  103. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +5 -3
  104. package/mobile/lib/components/GracePeriod/GracePeriod.js +2 -2
  105. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  106. package/mobile/lib/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  107. package/mobile/lib/components/GroupBlock/GroupBlockContent.d.ts +2 -2
  108. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +1 -1
  109. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  110. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +10 -1
  111. package/mobile/lib/components/PictureText/PictureTextContent.d.ts +1 -0
  112. package/mobile/lib/components/StepsBlock/StepsBlock.js +2 -1
  113. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  114. package/mobile/lib/components/StepsBlock/StepsBlockContent.d.ts +11 -0
  115. package/mobile/lib/model/Picture.d.ts +6 -0
  116. package/mobile/lib/ui-kit/BlocksList/BlocksListProps.d.ts +10 -10
  117. package/mobile/lib/ui-kit/Button/ButtonProps.d.ts +2 -0
  118. package/mobile/lib/ui-kit/Button/ButtonSection.js +2 -2
  119. package/mobile/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  120. package/mobile/lib/utils/checkIsIconRenderable.d.ts +2 -0
  121. package/mobile/lib/utils/checkIsIconRenderable.js +2 -0
  122. package/mobile/lib/utils/checkIsIconRenderable.js.map +1 -0
  123. package/mobile/src/components/Accordion/Accordion.example.json +13 -6
  124. package/mobile/src/components/Accordion/AccordionContent.ts +6 -3
  125. package/mobile/src/components/Bonus/Bonus.example.json +1 -1
  126. package/mobile/src/components/Bonus/Bonus.tsx +2 -2
  127. package/mobile/src/components/Bonus/BonusContent.ts +1 -1
  128. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +40 -0
  129. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +5 -5
  130. package/mobile/src/components/Calculator/Calculator.tsx +1 -1
  131. package/mobile/src/components/ContentPage/ContentPage.page.json +5 -5
  132. package/mobile/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +5 -4
  133. package/mobile/src/components/GracePeriod/GracePeriod.example.json +4 -4
  134. package/mobile/src/components/GracePeriod/GracePeriod.tsx +4 -4
  135. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +2 -2
  136. package/mobile/src/components/GroupBlock/GroupBlock.example.json +72 -3
  137. package/mobile/src/components/GroupBlock/GroupBlockContent.ts +2 -2
  138. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +3 -1
  139. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +10 -1
  140. package/mobile/src/components/MobileAppTile/MobileAppTile.example.json +12 -2
  141. package/mobile/src/components/OtherProducts/OtherProducts.example.json +12 -6
  142. package/mobile/src/components/PictureText/PictureTextContent.ts +1 -0
  143. package/mobile/src/components/ProductBlock/ProductBlock.example.json +3 -10
  144. package/mobile/src/components/ProductTile/ProductTile.example.json +1 -2
  145. package/mobile/src/components/PromoTile/PromoTile.example.json +1 -2
  146. package/mobile/src/components/StepsBlock/StepsBlock.example.json +18 -3
  147. package/mobile/src/components/StepsBlock/StepsBlock.tsx +6 -1
  148. package/mobile/src/components/StepsBlock/StepsBlockContent.ts +11 -0
  149. package/mobile/src/components/Tile/Tile.example.json +2 -9
  150. package/mobile/src/model/Picture.ts +7 -0
  151. package/mobile/src/ui-kit/BlocksList/BlocksListProps.ts +42 -20
  152. package/mobile/src/ui-kit/Button/ButtonProps.ts +2 -0
  153. package/mobile/src/ui-kit/Button/ButtonSection.tsx +2 -1
  154. package/mobile/src/utils/checkIsIconRenderable.tsx +3 -0
  155. package/package.json +1 -1
  156. package/src/components/Accordion/Accordion.example.json +13 -6
  157. package/src/components/Accordion/AccordionContent.ts +6 -3
  158. package/src/components/Bonus/Bonus.example.json +1 -1
  159. package/src/components/Bonus/Bonus.fixture.tsx +3 -3
  160. package/src/components/Bonus/Bonus.tsx +2 -2
  161. package/src/components/Bonus/BonusContent.ts +1 -1
  162. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +40 -0
  163. package/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +5 -5
  164. package/src/components/Calculator/Calculator.tsx +1 -1
  165. package/src/components/ContentPage/ContentPage.page.json +5 -5
  166. package/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +5 -4
  167. package/src/components/GracePeriod/GracePeriod.example.json +4 -4
  168. package/src/components/GracePeriod/GracePeriod.fixture.tsx +9 -9
  169. package/src/components/GracePeriod/GracePeriod.tsx +4 -4
  170. package/src/components/GracePeriod/GracePeriodContent.ts +2 -2
  171. package/src/components/GroupBlock/GroupBlock.example.json +72 -3
  172. package/src/components/GroupBlock/GroupBlockContent.ts +2 -2
  173. package/src/components/GroupBlock/GroupBlockTabs.tsx +3 -1
  174. package/src/components/LinkDocs/LinkDocsContent.ts +10 -1
  175. package/src/components/MobileAppTile/MobileAppTile.example.json +12 -2
  176. package/src/components/OtherProducts/OtherProducts.example.json +12 -6
  177. package/src/components/PictureText/PictureTextContent.ts +1 -0
  178. package/src/components/ProductBlock/ProductBlock.example.json +3 -10
  179. package/src/components/ProductBlock/ProductBlock.fixture.tsx +2 -2
  180. package/src/components/ProductTile/ProductTile.example.json +1 -2
  181. package/src/components/PromoTile/PromoTile.example.json +1 -2
  182. package/src/components/StepsBlock/StepsBlock.example.json +18 -3
  183. package/src/components/StepsBlock/StepsBlock.mobile.tsx +6 -1
  184. package/src/components/StepsBlock/StepsBlock.tsx +19 -13
  185. package/src/components/StepsBlock/StepsBlockContent.ts +11 -0
  186. package/src/components/Tile/Tile.example.json +2 -9
  187. package/src/model/Picture.ts +7 -0
  188. package/src/ui-kit/BlocksList/BlocksListProps.ts +42 -20
  189. package/src/ui-kit/Button/ButtonProps.ts +2 -0
  190. package/src/ui-kit/Button/ButtonSection.tsx +2 -1
  191. package/src/ui-kit/Img/Img.tsx +9 -16
  192. package/src/utils/checkIsIconRenderable.tsx +3 -0
@@ -1,9 +1,12 @@
1
1
  import type { Picture } from '../../model/Picture';
2
2
 
3
+ /**
4
+ * @title Бонус и преимущество
5
+ */
3
6
  export interface BonusBenefit {
4
7
  /** @title Название */
5
8
  label?: string;
6
- /** @title Бонус и преимущество */
9
+ /** @title Изображение */
7
10
  icon?: Picture;
8
11
  }
9
12
 
@@ -15,9 +18,6 @@ export interface BonusBenefitsBlockContent {
15
18
  title?: string;
16
19
  /** @title Подзаголовок */
17
20
  subtitle?: string;
18
- /**
19
- * @title Список бонусов
20
- * @maxItems 8
21
- */
21
+ /** @title Список бонусов */
22
22
  bonusBenefits?: BonusBenefit[];
23
23
  }
@@ -1,9 +1,9 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { FuncReturnVoid, UniBlockProps } from '../../types';
3
+ import { renderArrows } from '../../ui-kit/Button/renderArrows';
3
4
  import { Img } from '../../ui-kit/Img/Img';
4
5
  import type { CalculatorBlockDef, CalculatorContent, CalculatorNav } from './CalculatorContent';
5
6
  import { renderCalculatorBlock } from './renderCalculatorBlock';
6
- import { renderArrows } from '../../ui-kit/Button/renderArrows';
7
7
 
8
8
  export interface CalculatorProps extends CalculatorContent, UniBlockProps {}
9
9
 
@@ -2035,7 +2035,7 @@
2035
2035
  "description": "Необязательное описание",
2036
2036
  "calendar": [
2037
2037
  {
2038
- "blackText": "1 декабря — беспроцентный период",
2038
+ "text": "1 декабря — беспроцентный период",
2039
2039
  "greenText": "начинается с первого числа каждого месяца",
2040
2040
  "month": [
2041
2041
  {
@@ -2052,7 +2052,7 @@
2052
2052
  ]
2053
2053
  },
2054
2054
  {
2055
- "blackText": "25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев",
2055
+ "text": "25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев",
2056
2056
  "greenText": "(минимальный платеж, 3% от суммы задолженности)",
2057
2057
  "month": [
2058
2058
  {
@@ -2080,7 +2080,7 @@
2080
2080
  ]
2081
2081
  },
2082
2082
  {
2083
- "blackText": "25 ноября — последний день беспроцентного 3-х месячного периода",
2083
+ "text": "25 ноября — последний день беспроцентного 3-х месячного периода",
2084
2084
  "greenText": "",
2085
2085
  "month": [
2086
2086
  {
@@ -2097,7 +2097,7 @@
2097
2097
  ]
2098
2098
  },
2099
2099
  {
2100
- "blackText": "",
2100
+ "text": "",
2101
2101
  "greenText": "25 декабря — обязательный платеж в соответствии с тарифом",
2102
2102
  "month": [
2103
2103
  {
@@ -2355,4 +2355,4 @@
2355
2355
  }
2356
2356
  }
2357
2357
  ]
2358
- }
2358
+ }
@@ -1,6 +1,7 @@
1
- import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
2
-
3
1
  /**
4
- * @title Курсы валют
2
+ * @title Курсы обмена валют
5
3
  */
6
- export type ExchangeRateTileContent = HeadingContent;
4
+ export interface ExchangeRateTileContent {
5
+ /** @title Заголовок */
6
+ title?: string;
7
+ }
@@ -3,7 +3,7 @@
3
3
  "description": "Необязательное описание блока",
4
4
  "calendar": [
5
5
  {
6
- "blackText": "1 декабря — беспроцентный период",
6
+ "text": "1 декабря — беспроцентный период",
7
7
  "greenText": "начинается с первого числа каждого месяца",
8
8
  "month": [
9
9
  {
@@ -21,7 +21,7 @@
21
21
  ]
22
22
  },
23
23
  {
24
- "blackText": "25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев",
24
+ "text": "25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев",
25
25
  "greenText": "(минимальный платеж, 3% от суммы задолженности)",
26
26
  "month": [
27
27
  {
@@ -51,7 +51,7 @@
51
51
  ]
52
52
  },
53
53
  {
54
- "blackText": "25 ноября — последний день беспроцентного 3-х месячного периода",
54
+ "text": "25 ноября — последний день беспроцентного 3-х месячного периода",
55
55
  "greenText": "",
56
56
  "month": [
57
57
  {
@@ -69,7 +69,7 @@
69
69
  ]
70
70
  },
71
71
  {
72
- "blackText": "",
72
+ "text": "",
73
73
  "greenText": "25 декабря — обязательный платеж в соответствии с тарифом",
74
74
  "month": [
75
75
  {
@@ -54,45 +54,45 @@ export const GRACE_PERIOD: GracePeriodContent = {
54
54
  description: 'Необязательное описание блока',
55
55
  calendar: [
56
56
  {
57
- blackText: '1 декабря — беспроцентный период',
57
+ text: '1 декабря — беспроцентный период',
58
58
  greenText: 'начинается с первого числа каждого месяца',
59
59
  month: [
60
60
  {
61
- name: 'Август',
61
+ text: 'Август',
62
62
  image: august,
63
63
  },
64
64
  ],
65
65
  },
66
66
  {
67
- blackText: '25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев',
67
+ text: '25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев',
68
68
  greenText: '(минимальный платеж, 3% от суммы задолженности)',
69
69
  month: [
70
70
  {
71
- name: 'Сентябрь',
71
+ text: 'Сентябрь',
72
72
  image: september,
73
73
  },
74
74
  {
75
- name: 'Октябрь',
75
+ text: 'Октябрь',
76
76
  image: october,
77
77
  },
78
78
  ],
79
79
  },
80
80
  {
81
- blackText: '25 ноября — последний день',
81
+ text: '25 ноября — последний день',
82
82
  greenText: 'беспроцентного 3-х месячного периода',
83
83
  month: [
84
84
  {
85
- name: 'Ноябрь',
85
+ text: 'Ноябрь',
86
86
  image: november,
87
87
  },
88
88
  ],
89
89
  },
90
90
  {
91
- blackText: '25 декабря — обязательный платеж в соответствии с тарифом',
91
+ text: '25 декабря — обязательный платеж в соответствии с тарифом',
92
92
  greenText: '',
93
93
  month: [
94
94
  {
95
- name: 'Декабрь',
95
+ text: 'Декабрь',
96
96
  image: december,
97
97
  },
98
98
  ],
@@ -49,7 +49,7 @@ const renderCalendar = (calendar) => {
49
49
  >
50
50
  <div className="flex">{renderMonthImages(_)}</div>
51
51
  <div className="font-light text-sm text-primary-text mt-3">
52
- <span>{_.blackText}</span>&thinsp;
52
+ <span>{_.text}</span>&thinsp;
53
53
  <span className="text-primary-main">{_.greenText}</span>
54
54
  </div>
55
55
  </div>
@@ -60,9 +60,9 @@ const renderCalendar = (calendar) => {
60
60
  };
61
61
 
62
62
  const renderMonthNames = (item, colSize) =>
63
- item.month.map((_) => (
64
- <div key={`monthName-${_.name}`} style={{ flexBasis: `${colSize}%` }}>
65
- {_.name}
63
+ item.month.map((_, i) => (
64
+ <div key={`monthName-${i}`} style={{ flexBasis: `${colSize}%` }}>
65
+ {_.text}
66
66
  </div>
67
67
  ));
68
68
  const renderMonthImages = (item) =>
@@ -3,7 +3,7 @@ import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
3
3
 
4
4
  interface Month {
5
5
  /** @title Название месяца */
6
- name?: string;
6
+ text?: string;
7
7
  /**
8
8
  * @title Изображение календарного месяца
9
9
  * @default
@@ -22,7 +22,7 @@ interface CalendarItem {
22
22
  /** @title Месяц */
23
23
  month?: Month[];
24
24
  /** @title Основной текст */
25
- blackText?: string;
25
+ text?: string;
26
26
  /** @title Вспомогательный текст */
27
27
  greenText?: string;
28
28
  }
@@ -10,19 +10,88 @@
10
10
  "blockType": "ProductBlock",
11
11
  "title": "Продуктовый блок",
12
12
  "description": "Описание текстового блока",
13
- "tags": ["tag2"]
13
+ "tags": ["tag2"],
14
+ "backwardButton": {
15
+ "text": "Кнопка возврата",
16
+ "icon": { "icon": "ArrowLeftIcon" }
17
+ },
18
+ "image": {
19
+ "format": "webp",
20
+ "size": {
21
+ "width": 234,
22
+ "height": 234
23
+ }
24
+ }
14
25
  },
15
26
  {
16
27
  "blockType": "ProductTile",
17
28
  "title": "Продуктовая плитка",
18
29
  "description": "Описание текстового блока",
19
- "tags": ["tag1"]
30
+ "tags": ["tag1"],
31
+ "image": {
32
+ "format": "webp",
33
+ "size": {
34
+ "width": 300
35
+ }
36
+ },
37
+ "version": "primary",
38
+ "benefits": [
39
+ {
40
+ "label": "Преимущество 1",
41
+ "description": "Описание"
42
+ },
43
+ {
44
+ "label": "Преимущество 2",
45
+ "description": "Описание"
46
+ },
47
+ {
48
+ "label": "Преимущество 3",
49
+ "description": "Описание"
50
+ }
51
+ ],
52
+ "buttons": [
53
+ {
54
+ "text": "Кнопка",
55
+ "version": "primary"
56
+ }
57
+ ]
20
58
  },
21
59
  {
22
60
  "blockType": "ProductBlock",
23
61
  "title": "Продуктовый блок",
24
62
  "description": "Описание текстового блока",
25
- "tags": ["tag2"]
63
+ "tags": ["tag2"],
64
+ "headingType": "h2",
65
+ "backwardButton": {
66
+ "text": "Кнопка возврата",
67
+ "icon": { "icon": "ArrowLeftIcon" }
68
+ },
69
+ "image": {
70
+ "format": "webp",
71
+ "size": {
72
+ "width": 234,
73
+ "height": 234
74
+ }
75
+ },
76
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"],
77
+ "isDotted": true,
78
+ "buttons": [
79
+ {
80
+ "text": "Кнопка",
81
+ "version": "secondary"
82
+ }
83
+ ],
84
+ "version": "primary",
85
+ "benefits": [
86
+ {
87
+ "label": "Преимущество №1",
88
+ "icon": {"icon": "ClockIcon"}
89
+ },
90
+ {
91
+ "label": "Преимущество №2",
92
+ "icon": {"icon": "SignDocsIcon"}
93
+ }
94
+ ]
26
95
  }
27
96
  ]
28
97
  }
@@ -4,10 +4,10 @@ import type { GroupBlockDef } from './BlocksTypeProps';
4
4
  * @title Таб
5
5
  */
6
6
  export interface GroupBlockTab {
7
- /** @title Название */
8
- title?: string;
9
7
  /** @title Tег */
10
8
  tag?: string;
9
+ /** @title Название */
10
+ title?: string;
11
11
  }
12
12
 
13
13
  /**
@@ -44,7 +44,9 @@ const renderTab =
44
44
  <div className="flex flex-1 items-center justify-center">
45
45
  {tab?.title ? <h3 className={tabText}>{tab?.title}</h3> : null}
46
46
  {isShowCounter ? (
47
- <div className={`flex items-center justify-center ml-8 ${counterBlockStyle}`}>
47
+ <div
48
+ className={`flex items-center justify-center ml-8 text-s-bold ${counterBlockStyle}`}
49
+ >
48
50
  <span>{tab.count}</span>
49
51
  </div>
50
52
  ) : null}
@@ -28,7 +28,16 @@ export interface LinkDocsContent {
28
28
  title?: string;
29
29
  /** @title Описание */
30
30
  description?: string;
31
- /** @title Название иконки */
31
+ /**
32
+ * @title Иконка
33
+ * @default {
34
+ * "size": {
35
+ * "width": 24,
36
+ * "height": 24
37
+ * },
38
+ * "format": "webp"
39
+ * }
40
+ */
32
41
  icon?: Picture;
33
42
  /** @title Список */
34
43
  documents?: LinkDocsItem[];
@@ -1,4 +1,13 @@
1
- {
1
+ {
2
+ "items": ["Пункт 1", "Пункт 2", "Пункт 3"],
3
+ "image": {
4
+ "src": "icon-phone.png",
5
+ "format": "webp",
6
+ "size": {
7
+ "width": 529,
8
+ "height": 345
9
+ }
10
+ },
2
11
  "qr": {
3
12
  "href": "https://rshbnaturaldbo.onelink.me/qhkF/f182074f?af_qr=true",
4
13
  "src": "data:image/png;base64,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"
@@ -22,5 +31,6 @@
22
31
  }
23
32
  ],
24
33
  "title": "Мобильное приложение",
25
- "description": "Загрузить для IOS и Android"
34
+ "description": "Загрузить для IOS и Android",
35
+ "version": "primary"
26
36
  }
@@ -7,12 +7,14 @@
7
7
  {
8
8
  "blockListType": "TextBlock",
9
9
  "title": "Текстовый блок",
10
- "description": "Описание текстового блока"
10
+ "description": "Описание текстового блока",
11
+ "style": ["col-span-12"]
11
12
  },
12
13
  {
13
14
  "blockListType": "TextBlock",
14
15
  "title": "Текстовый блок №2",
15
- "description": "Описание текстового блока №2"
16
+ "description": "Описание текстового блока №2",
17
+ "style": ["col-span-12"]
16
18
  }
17
19
  ]
18
20
  },
@@ -22,12 +24,14 @@
22
24
  {
23
25
  "blockListType": "TextBlock",
24
26
  "title": "Текстовый блок",
25
- "description": "Описание текстового блока"
27
+ "description": "Описание текстового блока",
28
+ "style": ["col-span-12"]
26
29
  },
27
30
  {
28
31
  "blockListType": "TextBlock",
29
32
  "title": "Текстовый блок №2",
30
- "description": "Описание текстового блока №2"
33
+ "description": "Описание текстового блока №2",
34
+ "style": ["col-span-12"]
31
35
  }
32
36
  ]
33
37
  },
@@ -37,12 +41,14 @@
37
41
  {
38
42
  "blockListType": "TextBlock",
39
43
  "title": "Текстовый блок",
40
- "description": "Описание текстового блока"
44
+ "description": "Описание текстового блока",
45
+ "style": ["col-span-12"]
41
46
  },
42
47
  {
43
48
  "blockListType": "TextBlock",
44
49
  "title": "Текстовый блок №2",
45
- "description": "Описание текстового блока №2"
50
+ "description": "Описание текстового блока №2",
51
+ "style": ["col-span-12"]
46
52
  }
47
53
  ]
48
54
  }
@@ -6,6 +6,7 @@ import type { Picture } from '../../model/Picture';
6
6
  export type TitleWithImageContent = HeadingContent & ImageContent;
7
7
 
8
8
  export interface PictureTextBenefit {
9
+ /** @title Иконка */
9
10
  icon?: Picture;
10
11
  /** @title Название */
11
12
  label?: string;
@@ -3,7 +3,6 @@
3
3
  "description": "Описание",
4
4
  "headingType": "h2",
5
5
  "backwardButton": {
6
- "href": "https://rshb.ru",
7
6
  "text": "Кнопка возврата",
8
7
  "icon": { "icon": "ArrowLeftIcon" }
9
8
  },
@@ -12,24 +11,18 @@
12
11
  "size": {
13
12
  "width": 234,
14
13
  "height": 234
15
- },
16
- "alt": "",
17
- "title": ""
14
+ }
18
15
  },
19
16
  "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"],
20
17
  "isDotted": true,
21
18
  "buttons": [
22
19
  {
23
20
  "text": "Кнопка",
24
- "version": "secondary",
25
- "target": "",
26
- "icon": {
27
- "alt": "",
28
- "title": ""
29
- }
21
+ "version": "secondary"
30
22
  }
31
23
  ],
32
24
  "version": "primary",
25
+ "benefitsVersion": "normal",
33
26
  "benefits": [
34
27
  {
35
28
  "label": "Преимущество №1",
@@ -2,7 +2,7 @@ import type { Picture } from '../../model/Picture';
2
2
  import { context } from '../../react/setup-fixture';
3
3
  import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
4
4
  import { ProductBlock } from './ProductBlock';
5
- import type { ProductBlockContent, ProductBlockBenefit } from './ProductBlockContent';
5
+ import type { ProductBlockBenefit, ProductBlockContent } from './ProductBlockContent';
6
6
 
7
7
  const image: Picture = {
8
8
  src: 'money-1.png',
@@ -18,7 +18,7 @@ const benefits: ProductBlockBenefit[] = [
18
18
  {
19
19
  label: 'До 5 млн ₽',
20
20
  description: 'Кредитный лимит',
21
- icon: { icon: 'EmptyWalletIcon', iconVersion: 'white' },
21
+ icon: { icon: 'CalendarTickIcon', iconVersion: 'white' },
22
22
  },
23
23
  {
24
24
  label: 'От 16,9%',
@@ -26,8 +26,7 @@
26
26
  "buttons": [
27
27
  {
28
28
  "text": "Кнопка",
29
- "version": "primary",
30
- "target": ""
29
+ "version": "primary"
31
30
  }
32
31
  ]
33
32
  }
@@ -6,8 +6,7 @@
6
6
  {
7
7
  "text": "Все акции",
8
8
  "href": "/credits",
9
- "version": "secondary",
10
- "target": ""
9
+ "version": "secondary"
11
10
  }
12
11
  ],
13
12
  "version": "secondary"
@@ -8,19 +8,34 @@
8
8
  "label": "Шаг №1",
9
9
  "description": "Описание шага №1",
10
10
  "icon": {
11
- "icon": "NewDocIcon"
11
+ "icon": "NewDocIcon",
12
+ "size": {
13
+ "width": 48,
14
+ "height": 48
15
+ },
16
+ "format": "webp"
12
17
  }
13
18
  },
14
19
  {
15
20
  "label": "Шаг №2",
16
21
  "icon": {
17
- "icon": "PassSendIcon"
22
+ "icon": "PassSendIcon",
23
+ "size": {
24
+ "width": 48,
25
+ "height": 48
26
+ },
27
+ "format": "webp"
18
28
  }
19
29
  },
20
30
  {
21
31
  "description": "Шаг №3 без заголовка",
22
32
  "icon": {
23
- "icon": "ActualBalanceIcon"
33
+ "icon": "ActualBalanceIcon",
34
+ "size": {
35
+ "width": 48,
36
+ "height": 48
37
+ },
38
+ "format": "webp"
24
39
  }
25
40
  }
26
41
  ]
@@ -5,6 +5,7 @@ import type { UniBlockProps } from '../../types';
5
5
  import { Heading } from '../../ui-kit/Heading/Heading';
6
6
  import { Img } from '../../ui-kit/Img/Img';
7
7
  import type { Step, StepsBlockContent } from './StepsBlockContent';
8
+ import { checkIsIconRenderable } from '../../utils/checkIsIconRenderable';
8
9
  import { getStyleMap } from './StepsBlockStyleMaps';
9
10
 
10
11
  export interface StepsBlockProps extends StepsBlockContent, UniBlockProps {}
@@ -109,7 +110,11 @@ const renderIconArea = (size: SizeVersion, version: BlockVersion) => (step: Step
109
110
  className={`${iconAreaSize} ${styleMap.iconBackground} rounded-full z-10 mr-3 flex justify-center content-center`}
110
111
  >
111
112
  <span className={`font-medium flex self-center ${styleMap.title} ${iconTextSize}`}>
112
- {(step.icon?.icon && <Img image={step.icon} width={iconSize} height={iconSize} />) || i + 1}
113
+ {checkIsIconRenderable(step?.icon) ? (
114
+ <Img image={step.icon} width={iconSize} height={iconSize} asSVG />
115
+ ) : (
116
+ <span>{i + 1}</span>
117
+ )}
113
118
  </span>
114
119
  </div>
115
120
  );
@@ -5,7 +5,9 @@ import { Heading } from '../../ui-kit/Heading/Heading';
5
5
  import { Img } from '../../ui-kit/Img/Img';
6
6
  import { joinList } from '../../utils/joinList';
7
7
  import type { Step, StepsBlockContent } from './StepsBlockContent';
8
- import { getStyleMap, StyleType } from './StepsBlockStyleMaps';
8
+ import type { StyleType } from './StepsBlockStyleMaps';
9
+ import { getStyleMap } from './StepsBlockStyleMaps';
10
+ import { checkIsIconRenderable } from '../../utils/checkIsIconRenderable';
9
11
 
10
12
  export interface StepsBlockProps extends StepsBlockContent, UniBlockProps {}
11
13
 
@@ -63,19 +65,23 @@ export const StepsBlock = JSX<StepsBlockProps>(
63
65
  },
64
66
  );
65
67
 
66
- const renderStepIcon = (styleMap: StyleType) => (step: Step, i: number) => {
67
- return (
68
- <div key={String(i)} className="flex flex-col items-center text-center relative">
69
- <div
70
- className={`h-[100px] w-[100px] min-w-[100px] min-h-[100px] rounded-full p-[26px] box-border z-10 ${styleMap.iconBackground}`}
71
- >
72
- {(step.icon?.icon && <Img image={step.icon} width="48" height="48" />) || (
73
- <span className={`font-normal text-title-sm ${styleMap.title}`}>{i + 1}</span>
74
- )}
68
+ const renderStepIcon =
69
+ (styleMap: StyleType) =>
70
+ ({ icon }: Step, i: number) => {
71
+ return (
72
+ <div key={String(i)} className="flex flex-col items-center text-center relative">
73
+ <div
74
+ className={`h-[100px] w-[100px] min-w-[100px] min-h-[100px] rounded-full p-[26px] box-border z-10 ${styleMap.iconBackground}`}
75
+ >
76
+ {checkIsIconRenderable(icon) ? (
77
+ <Img image={icon} width="48" height="48" asSVG />
78
+ ) : (
79
+ <span className={`font-normal text-title-sm ${styleMap.title}`}>{i + 1}</span>
80
+ )}
81
+ </div>
75
82
  </div>
76
- </div>
77
- );
78
- };
83
+ );
84
+ };
79
85
 
80
86
  const renderStepTitle = (styleMap: StyleType, isMainButton: boolean) => (step: Step, i: number) => {
81
87
  return (
@@ -11,6 +11,17 @@ export interface Step {
11
11
  label?: string;
12
12
  /** @title Описание */
13
13
  description?: string;
14
+ /**
15
+ * @title Иконка
16
+ * @default
17
+ * {
18
+ * "size": {
19
+ * "width": 48,
20
+ * "height": 48
21
+ * },
22
+ * "format": "webp"
23
+ * }
24
+ */
14
25
  icon?: Picture;
15
26
  button?: ButtonProps;
16
27
  }