@redneckz/wildless-cms-uni-blocks 0.7.6 → 0.7.8

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 (277) hide show
  1. package/bin/migration-scripts/0.7.8.js +29 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +115 -71
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
  6. package/bundle/components/Footer/MediaButton.d.ts +3 -4
  7. package/bundle/components/Footer/SocialMedia.d.ts +2 -3
  8. package/bundle/components/Header/HeaderChatBotButton.d.ts +11 -0
  9. package/bundle/components/Header/HeaderContent.d.ts +6 -1
  10. package/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  11. package/bundle/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
  12. package/bundle/components/Header/useChatBot.d.ts +2 -0
  13. package/bundle/components/PictureText/renderBenefit.d.ts +4 -0
  14. package/bundle/hooks/useBool.d.ts +9 -0
  15. package/bundle/icons/IconName.d.ts +4 -2
  16. package/bundle/model/ButtonVersion.d.ts +2 -2
  17. package/bundle/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
  18. package/cosmos-static/icons/HeadphonesIcon.svg +1 -0
  19. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  20. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  21. package/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
  22. package/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  23. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
  24. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  25. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
  26. package/dist/components/Footer/Footer.js +2 -2
  27. package/dist/components/Footer/Footer.js.map +1 -1
  28. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  29. package/dist/components/Footer/MediaButton.d.ts +3 -4
  30. package/dist/components/Footer/MediaButton.js +4 -5
  31. package/dist/components/Footer/MediaButton.js.map +1 -1
  32. package/dist/components/Footer/SocialMedia.d.ts +2 -3
  33. package/dist/components/Footer/SocialMedia.js +1 -1
  34. package/dist/components/Footer/SocialMedia.js.map +1 -1
  35. package/dist/components/Header/DropdownMenu.js +3 -2
  36. package/dist/components/Header/DropdownMenu.js.map +1 -1
  37. package/dist/components/Header/Header.js +3 -2
  38. package/dist/components/Header/Header.js.map +1 -1
  39. package/dist/components/Header/HeaderChatBotButton.d.ts +11 -0
  40. package/dist/components/Header/HeaderChatBotButton.js +19 -0
  41. package/dist/components/Header/HeaderChatBotButton.js.map +1 -0
  42. package/dist/components/Header/HeaderContent.d.ts +6 -1
  43. package/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  44. package/dist/components/Header/HeaderSecondaryMenu.js +6 -11
  45. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  46. package/dist/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
  47. package/dist/components/Header/HeaderSecondaryMenuButton.js +5 -1
  48. package/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  49. package/dist/components/Header/useChatBot.d.ts +2 -0
  50. package/dist/components/Header/useChatBot.js +15 -0
  51. package/dist/components/Header/useChatBot.js.map +1 -0
  52. package/dist/components/PictureText/PictureText.js +2 -3
  53. package/dist/components/PictureText/PictureText.js.map +1 -1
  54. package/dist/components/PictureText/renderBenefit.d.ts +4 -0
  55. package/dist/components/PictureText/renderBenefit.js +25 -0
  56. package/dist/components/PictureText/renderBenefit.js.map +1 -0
  57. package/dist/components/ProductTile/renderBenefit.js +1 -1
  58. package/dist/components/ProductTile/renderBenefit.js.map +1 -1
  59. package/dist/hooks/useBool.d.ts +9 -0
  60. package/dist/hooks/useBool.js +12 -0
  61. package/dist/hooks/useBool.js.map +1 -0
  62. package/dist/icons/IconName.d.ts +4 -2
  63. package/dist/icons/IconName.js +3 -1
  64. package/dist/icons/IconName.js.map +1 -1
  65. package/dist/model/ButtonVersion.d.ts +2 -2
  66. package/dist/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
  67. package/dist/ui-kit/Button/buttonClassNameConstants.js +3 -0
  68. package/dist/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
  69. package/lib/common.css +1 -1
  70. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  71. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  72. package/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
  73. package/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  74. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
  75. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  76. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
  77. package/lib/components/Footer/Footer.js +2 -2
  78. package/lib/components/Footer/Footer.js.map +1 -1
  79. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  80. package/lib/components/Footer/MediaButton.d.ts +3 -4
  81. package/lib/components/Footer/MediaButton.js +4 -5
  82. package/lib/components/Footer/MediaButton.js.map +1 -1
  83. package/lib/components/Footer/SocialMedia.d.ts +2 -3
  84. package/lib/components/Footer/SocialMedia.js +1 -1
  85. package/lib/components/Footer/SocialMedia.js.map +1 -1
  86. package/lib/components/Header/DropdownMenu.js +3 -2
  87. package/lib/components/Header/DropdownMenu.js.map +1 -1
  88. package/lib/components/Header/Header.js +3 -2
  89. package/lib/components/Header/Header.js.map +1 -1
  90. package/lib/components/Header/HeaderChatBotButton.d.ts +11 -0
  91. package/lib/components/Header/HeaderChatBotButton.js +17 -0
  92. package/lib/components/Header/HeaderChatBotButton.js.map +1 -0
  93. package/lib/components/Header/HeaderContent.d.ts +6 -1
  94. package/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  95. package/lib/components/Header/HeaderSecondaryMenu.js +6 -11
  96. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  97. package/lib/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
  98. package/lib/components/Header/HeaderSecondaryMenuButton.js +5 -1
  99. package/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  100. package/lib/components/Header/useChatBot.d.ts +2 -0
  101. package/lib/components/Header/useChatBot.js +12 -0
  102. package/lib/components/Header/useChatBot.js.map +1 -0
  103. package/lib/components/PictureText/PictureText.fixture.d.ts +2 -0
  104. package/lib/components/PictureText/PictureText.js +1 -2
  105. package/lib/components/PictureText/PictureText.js.map +1 -1
  106. package/lib/components/PictureText/renderBenefit.d.ts +4 -0
  107. package/lib/components/PictureText/renderBenefit.js +22 -0
  108. package/lib/components/PictureText/renderBenefit.js.map +1 -0
  109. package/lib/components/ProductTile/renderBenefit.js +1 -1
  110. package/lib/components/ProductTile/renderBenefit.js.map +1 -1
  111. package/lib/hooks/useBool.d.ts +9 -0
  112. package/lib/hooks/useBool.js +9 -0
  113. package/lib/hooks/useBool.js.map +1 -0
  114. package/lib/icons/IconName.d.ts +4 -2
  115. package/lib/icons/IconName.js +3 -1
  116. package/lib/icons/IconName.js.map +1 -1
  117. package/lib/model/ButtonVersion.d.ts +2 -2
  118. package/lib/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
  119. package/lib/ui-kit/Button/buttonClassNameConstants.js +3 -0
  120. package/lib/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
  121. package/mobile/bundle/bundle.umd.js +7 -5
  122. package/mobile/bundle/bundle.umd.min.js +1 -1
  123. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
  124. package/mobile/bundle/components/Footer/MediaButton.d.ts +3 -4
  125. package/mobile/bundle/components/Header/HeaderChatBotButton.d.ts +11 -0
  126. package/mobile/bundle/components/Header/HeaderContent.d.ts +6 -1
  127. package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  128. package/mobile/bundle/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
  129. package/mobile/bundle/components/Header/useChatBot.d.ts +2 -0
  130. package/mobile/bundle/components/PictureText/renderBenefit.d.ts +4 -0
  131. package/mobile/bundle/hooks/useBool.d.ts +9 -0
  132. package/mobile/bundle/icons/IconName.d.ts +4 -2
  133. package/mobile/bundle/model/ButtonVersion.d.ts +2 -2
  134. package/mobile/bundle/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
  135. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  136. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  137. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
  138. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  139. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
  140. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  141. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
  142. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  143. package/mobile/dist/components/Footer/MediaButton.d.ts +3 -4
  144. package/mobile/dist/components/Footer/MediaButton.js +4 -5
  145. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  146. package/mobile/dist/components/Header/DropdownMenu.js +3 -2
  147. package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
  148. package/mobile/dist/components/Header/HeaderChatBotButton.d.ts +11 -0
  149. package/mobile/dist/components/Header/HeaderChatBotButton.js +19 -0
  150. package/mobile/dist/components/Header/HeaderChatBotButton.js.map +1 -0
  151. package/mobile/dist/components/Header/HeaderContent.d.ts +6 -1
  152. package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  153. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +6 -11
  154. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  155. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
  156. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js +5 -1
  157. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  158. package/mobile/dist/components/Header/useChatBot.d.ts +2 -0
  159. package/mobile/dist/components/Header/useChatBot.js +15 -0
  160. package/mobile/dist/components/Header/useChatBot.js.map +1 -0
  161. package/mobile/dist/components/PictureText/PictureText.js +2 -3
  162. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  163. package/mobile/dist/components/PictureText/renderBenefit.d.ts +4 -0
  164. package/mobile/dist/components/PictureText/renderBenefit.js +25 -0
  165. package/mobile/dist/components/PictureText/renderBenefit.js.map +1 -0
  166. package/mobile/dist/components/ProductTile/renderBenefit.js +1 -1
  167. package/mobile/dist/components/ProductTile/renderBenefit.js.map +1 -1
  168. package/mobile/dist/hooks/useBool.d.ts +9 -0
  169. package/mobile/dist/hooks/useBool.js +12 -0
  170. package/mobile/dist/hooks/useBool.js.map +1 -0
  171. package/mobile/dist/icons/IconName.d.ts +4 -2
  172. package/mobile/dist/icons/IconName.js +3 -1
  173. package/mobile/dist/icons/IconName.js.map +1 -1
  174. package/mobile/dist/model/ButtonVersion.d.ts +2 -2
  175. package/mobile/dist/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
  176. package/mobile/dist/ui-kit/Button/buttonClassNameConstants.js +3 -0
  177. package/mobile/dist/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
  178. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  179. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  180. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
  181. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  182. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
  183. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  184. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
  185. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  186. package/mobile/lib/components/Footer/MediaButton.d.ts +3 -4
  187. package/mobile/lib/components/Footer/MediaButton.js +4 -5
  188. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  189. package/mobile/lib/components/Header/DropdownMenu.js +3 -2
  190. package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
  191. package/mobile/lib/components/Header/HeaderChatBotButton.d.ts +11 -0
  192. package/mobile/lib/components/Header/HeaderChatBotButton.js +17 -0
  193. package/mobile/lib/components/Header/HeaderChatBotButton.js.map +1 -0
  194. package/mobile/lib/components/Header/HeaderContent.d.ts +6 -1
  195. package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  196. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +6 -11
  197. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  198. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
  199. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js +5 -1
  200. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  201. package/mobile/lib/components/Header/useChatBot.d.ts +2 -0
  202. package/mobile/lib/components/Header/useChatBot.js +12 -0
  203. package/mobile/lib/components/Header/useChatBot.js.map +1 -0
  204. package/mobile/lib/components/PictureText/PictureText.js +1 -2
  205. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  206. package/mobile/lib/components/PictureText/renderBenefit.d.ts +4 -0
  207. package/mobile/lib/components/PictureText/renderBenefit.js +22 -0
  208. package/mobile/lib/components/PictureText/renderBenefit.js.map +1 -0
  209. package/mobile/lib/components/ProductTile/renderBenefit.js +1 -1
  210. package/mobile/lib/components/ProductTile/renderBenefit.js.map +1 -1
  211. package/mobile/lib/hooks/useBool.d.ts +9 -0
  212. package/mobile/lib/hooks/useBool.js +9 -0
  213. package/mobile/lib/hooks/useBool.js.map +1 -0
  214. package/mobile/lib/icons/IconName.d.ts +4 -2
  215. package/mobile/lib/icons/IconName.js +3 -1
  216. package/mobile/lib/icons/IconName.js.map +1 -1
  217. package/mobile/lib/model/ButtonVersion.d.ts +2 -2
  218. package/mobile/lib/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
  219. package/mobile/lib/ui-kit/Button/buttonClassNameConstants.js +3 -0
  220. package/mobile/lib/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
  221. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +0 -1
  222. package/mobile/src/components/CarouselProductCard/CarouselProductCard.tsx +0 -1
  223. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +6 -3
  224. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +2 -0
  225. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +7 -0
  226. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +5 -9
  227. package/mobile/src/components/Footer/Footer.tsx +1 -1
  228. package/mobile/src/components/Footer/MediaButton.tsx +19 -17
  229. package/mobile/src/components/Header/DropdownMenu.tsx +7 -5
  230. package/mobile/src/components/Header/HeaderChatBotButton.tsx +45 -0
  231. package/mobile/src/components/Header/HeaderContent.ts +7 -1
  232. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +20 -30
  233. package/mobile/src/components/Header/HeaderSecondaryMenuButton.tsx +24 -5
  234. package/mobile/src/components/Header/useChatBot.ts +16 -0
  235. package/mobile/src/components/PictureText/PictureText.tsx +1 -14
  236. package/mobile/src/components/PictureText/PictureText.ui.json +10 -0
  237. package/mobile/src/components/PictureText/renderBenefit.tsx +33 -0
  238. package/mobile/src/components/ProductTile/renderBenefit.tsx +5 -1
  239. package/mobile/src/hooks/useBool.ts +19 -0
  240. package/mobile/src/icons/HeadphonesIcon.svg +5 -0
  241. package/mobile/src/icons/IconName.ts +5 -5
  242. package/mobile/src/model/ButtonVersion.ts +9 -2
  243. package/mobile/src/ui-kit/BenefitItem/BenefitItemProps.ts +28 -3
  244. package/mobile/src/ui-kit/Button/buttonClassNameConstants.ts +3 -0
  245. package/mobile/src/ui-kit/Img/ImgProps.ts +1 -0
  246. package/package.json +1 -1
  247. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +0 -1
  248. package/src/components/CarouselProductCard/CarouselProductCard.tsx +0 -1
  249. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +6 -3
  250. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +20 -5
  251. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +2 -0
  252. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +7 -0
  253. package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +5 -9
  254. package/src/components/Footer/Footer.mobile.tsx +1 -1
  255. package/src/components/Footer/Footer.tsx +2 -2
  256. package/src/components/Footer/MediaButton.tsx +19 -17
  257. package/src/components/Footer/SocialMedia.tsx +4 -5
  258. package/src/components/Header/DropdownMenu.tsx +7 -5
  259. package/src/components/Header/Header.fixture.tsx +3 -3
  260. package/src/components/Header/Header.tsx +13 -5
  261. package/src/components/Header/HeaderChatBotButton.tsx +45 -0
  262. package/src/components/Header/HeaderContent.ts +7 -1
  263. package/src/components/Header/HeaderSecondaryMenu.tsx +20 -30
  264. package/src/components/Header/HeaderSecondaryMenuButton.tsx +24 -5
  265. package/src/components/Header/useChatBot.ts +16 -0
  266. package/src/components/PictureText/PictureText.fixture.tsx +37 -0
  267. package/src/components/PictureText/PictureText.tsx +1 -14
  268. package/src/components/PictureText/PictureText.ui.json +10 -0
  269. package/src/components/PictureText/renderBenefit.tsx +33 -0
  270. package/src/components/ProductTile/renderBenefit.tsx +5 -1
  271. package/src/hooks/useBool.ts +19 -0
  272. package/src/icons/HeadphonesIcon.svg +5 -0
  273. package/src/icons/IconName.ts +6 -340
  274. package/src/model/ButtonVersion.ts +9 -2
  275. package/src/ui-kit/BenefitItem/BenefitItemProps.ts +28 -3
  276. package/src/ui-kit/Button/buttonClassNameConstants.ts +3 -0
  277. package/src/ui-kit/Img/ImgProps.ts +1 -0
@@ -0,0 +1,16 @@
1
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useExternalNS } from '../../hooks/useExternalNS';
3
+ import { ChatBot } from './HeaderChatBotButton';
4
+
5
+ const CHATBOT_NAMESPACE = 'chatbot';
6
+
7
+ const CHATBOT_URL: Record<ChatBot, string> = {
8
+ personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
9
+ business: '', //TODO: add url business chat
10
+ };
11
+
12
+ export const useChatBot = (chat: ChatBot) => {
13
+ useEffect(() => globalThis.localStorage?.setItem('webchat-keep-open', String(Date.now())), []);
14
+
15
+ return useExternalNS(CHATBOT_NAMESPACE, CHATBOT_URL[chat]);
16
+ };
@@ -1,13 +1,11 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BlockVersion } from '../../model/BlockVersion';
3
2
  import type { UniBlockProps } from '../../model/JSXBlock';
4
- import { BenefitItem } from '../../ui-kit/BenefitItem/BenefitItem';
5
- import type { BenefitItemProps } from '../../ui-kit/BenefitItem/BenefitItemProps';
6
3
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
7
4
  import { Img } from '../../ui-kit/Img/Img';
8
5
  import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers';
9
6
  import { Headline } from '../Headline/Headline';
10
7
  import type { PictureTextContent } from './PictureTextContent';
8
+ import { renderBenefit } from './renderBenefit';
11
9
 
12
10
  export interface PictureTextProps extends PictureTextContent, UniBlockProps {}
13
11
 
@@ -39,17 +37,6 @@ export const PictureText = JSX<PictureTextProps>(
39
37
  ),
40
38
  );
41
39
 
42
- const renderBenefit = (version: BlockVersion) => (benefit: BenefitItemProps, i: number) =>
43
- (
44
- <BenefitItem
45
- key={String(i)}
46
- icon={benefit.icon}
47
- label={benefit.label}
48
- description={benefit.description}
49
- version={version}
50
- />
51
- );
52
-
53
40
  function renderInsuranceSumMonth(sum?: number, monthLimit?: number) {
54
41
  return sum || monthLimit ? (
55
42
  <div className="bg-main-divider rounded-md flex mt-7 gap-6 px-5 py-4">
@@ -5,6 +5,16 @@
5
5
  },
6
6
  "monthLimit": {
7
7
  "ui:field": "number"
8
+ },
9
+ "benefits": {
10
+ "items": {
11
+ "__html": {
12
+ "ui:widget": "html"
13
+ },
14
+ "type": {
15
+ "ui:widget": "hidden"
16
+ }
17
+ }
8
18
  }
9
19
  }
10
20
  }
@@ -0,0 +1,33 @@
1
+ import { BlockVersion } from '../../model/BlockVersion';
2
+ import { BenefitItem } from '../../ui-kit/BenefitItem/BenefitItem';
3
+ import type { ComplexBenefitProps } from '../../ui-kit/BenefitItem/BenefitItemProps';
4
+ import { RichText } from '../../ui-kit/RichText/RichText';
5
+ import { assertUnreachable } from '../../utils/assertUnreachable';
6
+
7
+ export const renderBenefit =
8
+ // Linter doesn't understand that switch processes all cases
9
+ // eslint-disable-next-line consistent-return
10
+ (version: BlockVersion) => (benefit: ComplexBenefitProps, i: number) => {
11
+ const { type } = benefit;
12
+
13
+ if (!(type === 'default' || type === 'rte')) {
14
+ return null;
15
+ }
16
+
17
+ switch (type) {
18
+ case 'default':
19
+ return (
20
+ <BenefitItem
21
+ key={String(i)}
22
+ icon={benefit.icon}
23
+ label={benefit.label}
24
+ description={benefit.description}
25
+ version={version}
26
+ />
27
+ );
28
+ case 'rte':
29
+ return <RichText __html={benefit.__html} />;
30
+ default:
31
+ assertUnreachable(benefit);
32
+ }
33
+ };
@@ -29,7 +29,11 @@ export const renderBenefit =
29
29
  </Text>,
30
30
  ];
31
31
  case 'rte':
32
- return <RichText __html={benefit.__html} />;
32
+ return (
33
+ <div className="col-span-2">
34
+ <RichText __html={benefit.__html} />
35
+ </div>
36
+ );
33
37
  default:
34
38
  assertUnreachable(benefit);
35
39
  }
@@ -0,0 +1,19 @@
1
+ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+
3
+ export function useBool(defaultValue = false): [
4
+ boolean,
5
+ {
6
+ setValue: (_: boolean) => void;
7
+ setTrue: () => void;
8
+ setFalse: () => void;
9
+ toggle: () => void;
10
+ },
11
+ ] {
12
+ const [value, setValue] = useState<boolean>(defaultValue);
13
+
14
+ const setTrue = useCallback(() => setValue(true), []);
15
+ const setFalse = useCallback(() => setValue(false), []);
16
+ const toggle = useCallback(() => setValue((_) => !_), []);
17
+
18
+ return [value, { setValue, setTrue, setFalse, toggle }];
19
+ }
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" name="Наушники" fill="none" viewBox="0 0 24 23">
2
+ <path fill="currentColor" fill-rule="evenodd"
3
+ d="M2.002 19.612a3.025 3.025 0 0 1-2-2.965V13.48a2.948 2.948 0 0 1 1.53-2.561v-.272C1.504 5.437 5.237.98 10.334.14c5.098-.841 10.044 2.182 11.664 7.128.124.34.058.718-.17.995a.997.997 0 0 1-1.71-.299 8.484 8.484 0 0 0-3.999-4.85 8.505 8.505 0 0 0-8.417.215 8.657 8.657 0 0 0-4.17 7.378v1.009c0 .557-.448 1.008-1 1.008-.17 0-.5.393-.5.767v3.267c0 .557.447 1.008 1 1.008.552 0 1-.451 1-1.008v-2.26c0-.556.447-1.007 1-1.007.551 0 .999.45.999 1.008v2.259c.004.99-.472 1.92-1.276 2.488a2.978 2.978 0 0 1-2.753.366Zm19.876.222a3.022 3.022 0 0 0 2.12-2.885v-2.924a3.025 3.025 0 0 0-2-2.965 2.978 2.978 0 0 0-2.74.388 3.034 3.034 0 0 0-1.259 2.486v2.017c0 .557.448 1.008 1 1.008s1-.451 1-1.008v-2.017c0-.557.447-1.008 1-1.008.552 0 1 .451 1 1.008v3.025c0 .557-.448 1.009-1 1.009a.996.996 0 0 0-.73.316c-.189.203-.287.475-.27.753a2.008 2.008 0 0 1-2 1.956h-4v-.716c0-.557-.447-1.008-1-1.008-.551 0-.999.451-.999 1.008v1.715c0 .556.448 1.008 1 1.008h4.999a4.007 4.007 0 0 0 3.91-3.166h-.03Z"
4
+ clip-rule="evenodd" />
5
+ </svg>
@@ -3,15 +3,15 @@
3
3
  /* eslint-disable max-len, max-lines */
4
4
 
5
5
  export const IconsWithoutInversion = new Set([
6
- 'ActualBalanceIcon', 'AirPlaneIcon', 'CardWithGemIcon', 'CarIcon', 'CinemaIcon', 'ClockIcon', 'ComfortableCompIcon', 'CreditCardsIcon', 'DocsIcon', 'DollarIcon', 'DoneIcon', 'EarthIcon', 'EuroIcon', 'FullScreenIcon', 'GlassIcon', 'HeartIcon', 'HuaweiIcon', 'InterestGrowthIcon', 'JCBIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MasterCardIcon', 'MirIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'OfficeIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'PowerIcon', 'PumpkinIcon', 'SignDocsIcon', 'SoundIcon', 'UnionPayIcon', 'UserGeoLocationIcon', 'VisaIcon', 'WateringCanIcon'
6
+ 'ActualBalanceIcon', 'AirPlaneIcon', 'CardWithGemIcon', 'CarIcon', 'CinemaIcon', 'ClockIcon', 'ComfortableCompIcon', 'CreditCardsIcon', 'DocsIcon', 'DollarIcon', 'DoneIcon', 'EarthIcon', 'EuroIcon', 'FullScreenIcon', 'GlassIcon', 'HeadphonesIcon', 'HeartIcon', 'HuaweiIcon', 'InterestGrowthIcon', 'JCBIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MasterCardIcon', 'MirIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'OfficeIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'PowerIcon', 'PumpkinIcon', 'SignDocsIcon', 'SoundIcon', 'UnionPayIcon', 'UserGeoLocationIcon', 'VisaIcon', 'WateringCanIcon'
7
7
  ]);
8
8
 
9
9
  export enum IconMap {
10
- ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon', YoutubeIcon = 'YoutubeIcon'
10
+ ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon', YoutubeIcon = 'YoutubeIcon'
11
11
  }
12
12
 
13
13
  export enum IconTitleMap {
14
- ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
14
+ ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
15
15
  }
16
16
 
17
17
  /**
@@ -19,7 +19,7 @@ export enum IconTitleMap {
19
19
  * @title Иконка
20
20
  * @enumNames [
21
21
  * "",
22
- * 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Банкомат', 'Банк', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
22
+ * 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Банкомат', 'Банк', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
23
23
  * ]
24
24
  */
25
- export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
25
+ export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
@@ -1,6 +1,13 @@
1
1
  /**
2
2
  * @title Тема кнопки
3
- * @enumNames ["Основная", "Второстепенная", "Белая", "Ссылка", "Прозрачная", "Наследуемая"]
3
+ * @enumNames ["Основная", "Второстепенная", "Белая", "Ссылка", "Прозрачная", "Серая", "Наследуемая"]
4
4
  * @default primary
5
5
  */
6
- export type ButtonVersion = 'primary' | 'secondary' | 'white' | 'link' | 'transparent' | '';
6
+ export type ButtonVersion =
7
+ | 'primary'
8
+ | 'secondary'
9
+ | 'white'
10
+ | 'link'
11
+ | 'transparent'
12
+ | 'gray'
13
+ | '';
@@ -1,7 +1,8 @@
1
- import type { IconProps } from '../../model/Picture';
2
1
  import type { BlockVersion } from '../../model/BlockVersion';
3
- import type { IconVersion } from '../../model/IconVersion';
4
2
  import type { DescriptionProps, LabelProps } from '../../model/HeadlineType';
3
+ import type { IconVersion } from '../../model/IconVersion';
4
+ import type { IconProps } from '../../model/Picture';
5
+ import { RichTextProps } from '../RichText/RichTextProps';
5
6
 
6
7
  export interface BenefitItemCommonProps {
7
8
  /** @hidden */
@@ -14,10 +15,34 @@ export interface BenefitItemCommonProps {
14
15
 
15
16
  export type BenefitItemProps = DescriptionProps & LabelProps & IconProps;
16
17
 
18
+ /**
19
+ * @title Стандартный бенефит
20
+ */
21
+ type DefaultBenefit = BenefitItemProps & {
22
+ /** @default default */
23
+ type: 'default';
24
+ };
25
+
26
+ /**
27
+ * @title Форматированный текст
28
+ */
29
+ type RichText = RichTextProps & {
30
+ /** @default rte */
31
+ type: 'rte';
32
+ };
33
+
34
+ /**
35
+ * @title Преимущество
36
+ * @default{
37
+ * "type": "default"
38
+ * }
39
+ */
40
+ export type ComplexBenefitProps = DefaultBenefit | RichText;
41
+
17
42
  /**
18
43
  * @title Преимущество
19
44
  */
20
45
  export type BenefitsProps = BenefitItemCommonProps & {
21
46
  /** @title Список преимуществ */
22
- benefits?: BenefitItemProps[];
47
+ benefits?: ComplexBenefitProps[];
23
48
  };
@@ -8,6 +8,7 @@ export const buttonStyleMap: Record<ButtonVersion, string> = {
8
8
  'text-primary-main bg-white hover:text-white hover:bg-primary-hover active:bg-white active:text-primary-main',
9
9
  link: '',
10
10
  transparent: '',
11
+ gray: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
11
12
  '': '',
12
13
  };
13
14
 
@@ -19,6 +20,7 @@ export const buttonDisabledStyleMap: Record<ButtonVersion, string> = {
19
20
  white: DisabledStyle,
20
21
  link: '',
21
22
  transparent: '',
23
+ gray: DisabledStyle,
22
24
  '': '',
23
25
  };
24
26
 
@@ -30,5 +32,6 @@ export const iconStyleMap: Record<ButtonVersion, string> = {
30
32
  white: 'group-hover/btn:brightness-0 group-hover/btn:invert',
31
33
  link: '',
32
34
  transparent: '',
35
+ gray: 'group-hover/btn:brightness-0 group-hover/btn:invert',
33
36
  '': '',
34
37
  };
@@ -4,6 +4,7 @@ import type { IconCompatibilityFields } from '../Icon/IconProps';
4
4
  export interface ImageContent {
5
5
  image?: Picture;
6
6
  }
7
+
7
8
  export interface ImageProps extends ImageContent, IconCompatibilityFields {
8
9
  className?: string;
9
10
  imageClassName?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.7.6",
3
+ "version": "0.7.8",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -20,7 +20,6 @@ export const CarouselCatalogCard = JSX<CarouselCatalogCardProps>(
20
20
  ({ className = '', title, description, image, price, button, colors, ...rest }) => (
21
21
  <BlockWrapper
22
22
  className={`border box-border border-gray p-7 min-w-[392px] flex flex-col justify-left ${className}`}
23
- role="listitem"
24
23
  {...rest}
25
24
  >
26
25
  {image?.src ? <Img className="mb-5 flex justify-center" image={image} /> : null}
@@ -37,7 +37,6 @@ export const CarouselProductCard = JSX<CarouselProductCardProps>(
37
37
  align,
38
38
  className,
39
39
  )}
40
- role="listitem"
41
40
  version={version}
42
41
  {...rest}
43
42
  >
@@ -10,9 +10,12 @@
10
10
  "title": "Заголовок 1",
11
11
  "description": "Описание 1",
12
12
  "socialMedia": [
13
- { "href": "https://t.me" },
14
- { "href": "https://vk.com" },
15
- { "href": "https://ok.ru" }
13
+ {
14
+ "href": "https://t.me",
15
+ "target": "_blank",
16
+ "version": "gray",
17
+ "rounded": false
18
+ }
16
19
  ],
17
20
  "version": "primary"
18
21
  }
@@ -1,4 +1,4 @@
1
- import type { LinkProps } from '../../model/LinkProps';
1
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
2
2
  import type { Picture } from '../../model/Picture';
3
3
  import '../../setup-fixture';
4
4
  import { CarouselRecommendationCard } from './CarouselRecommendationCard';
@@ -14,10 +14,25 @@ const image: Picture = {
14
14
  title: 'product-basket',
15
15
  };
16
16
 
17
- const socialMedia: LinkProps[] = [
18
- { href: 'https://t.me' },
19
- { href: 'https://vk.com' },
20
- { href: 'https://ok.ru' },
17
+ const socialMedia: ButtonWithIconProps[] = [
18
+ {
19
+ href: 'https://t.me',
20
+ target: '_blank',
21
+ version: 'gray',
22
+ rounded: false,
23
+ },
24
+ {
25
+ href: 'https://vk.com',
26
+ target: '_blank',
27
+ version: 'gray',
28
+ rounded: false,
29
+ },
30
+ {
31
+ href: 'https://ok.ru',
32
+ target: '_blank',
33
+ version: 'gray',
34
+ rounded: false,
35
+ },
21
36
  ];
22
37
 
23
38
  const items = ['Свежие новости', 'Акции и предложения', 'Ставки и котировки'];
@@ -21,6 +21,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
21
21
  items = [],
22
22
  socialMedia = [],
23
23
  title,
24
+ version = 'primary',
24
25
  ...rest
25
26
  }) => {
26
27
  const tileTitle = title ? (
@@ -39,6 +40,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
39
40
  BORDER_STYLE,
40
41
  className,
41
42
  )}
43
+ version={version}
42
44
  {...rest}
43
45
  >
44
46
  <BaseTile className="flex justify-between" title={tileTitle} image={tileImage}>
@@ -3,6 +3,13 @@
3
3
  "items": {
4
4
  "image": {
5
5
  "ui:field": "picture"
6
+ },
7
+ "socialMedia": {
8
+ "items": {
9
+ "icon": {
10
+ "ui:field": "picture"
11
+ }
12
+ }
6
13
  }
7
14
  }
8
15
  }
@@ -1,7 +1,7 @@
1
+ import type { BlockVersion } from '../../model/BlockVersion';
1
2
  import type { HeadlineCommonProps } from '../../model/HeadlineType';
2
- import type { LinkCommonProps } from '../../model/LinkProps';
3
3
  import type { Picture } from '../../model/Picture';
4
- import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
4
+ import type { ButtonWithIconProps, ButtonProps } from '../../ui-kit/Button/ButtonProps';
5
5
  import type { ListContent } from '../../ui-kit/List/ListContent';
6
6
 
7
7
  /**
@@ -10,14 +10,9 @@ import type { ListContent } from '../../ui-kit/List/ListContent';
10
10
  export interface CarouselRecommendationCardContent extends HeadlineCommonProps, ListContent {
11
11
  /**
12
12
  * @title Соц сети
13
- * @minItems 3
14
- * @default [
15
- * { "href": "https://t.me" },
16
- * { "href": "https://vk.com" },
17
- * { "href": "https://ok.ru" },
18
- * ]
13
+ * @minItems 1
19
14
  */
20
- socialMedia?: LinkCommonProps[];
15
+ socialMedia?: ButtonWithIconProps[];
21
16
  /**
22
17
  * @default {
23
18
  * "format": "webp",
@@ -40,4 +35,5 @@ export interface CarouselRecommendationCardContent extends HeadlineCommonProps,
40
35
  * }
41
36
  */
42
37
  button?: ButtonProps;
38
+ version?: BlockVersion;
43
39
  }
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { UniBlockProps } from '../../model/JSXBlock';
3
2
  import { projectSettings } from '../../ProjectSettings';
3
+ import type { UniBlockProps } from '../../model/JSXBlock';
4
4
  import type { SitemapDataProps } from '../../services/sitemap/SitemapProps';
5
5
  import { useSWRResource } from '../../services/sitemap/useSWRResource';
6
6
  import { Button } from '../../ui-kit/Button/Button';
@@ -20,7 +20,7 @@ export interface FooterProps extends FooterContent, UniBlockProps {}
20
20
  export const Footer = JSX<FooterProps>(({ className = '', ...rest }) => {
21
21
  const fallback = rest.options?.page?.fallback;
22
22
 
23
- const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems, logo } =
23
+ const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, logo } =
24
24
  useSWRResource<FooterDataProps>(projectSettings.FOOTER || 'footer', fallback);
25
25
 
26
26
  return (
@@ -37,7 +37,7 @@ export const Footer = JSX<FooterProps>(({ className = '', ...rest }) => {
37
37
  Мобильное приложение
38
38
  </SocialMedia>
39
39
  </div>
40
- <Sitemap className="pt-[3px]" items={topItems} fallback={fallback} />
40
+ <Sitemap className="pt-[3px]" fallback={fallback} />
41
41
  </div>
42
42
  <HorizontalNavigation className="mt-[98px]" links={relatedEnterprises} />
43
43
  <TextInformation links={documents} />
@@ -1,10 +1,11 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useLink } from '../../hooks/useLink';
3
2
  import { Img } from '../../ui-kit/Img/Img';
4
3
  import { getIconWithVersion } from '../../utils/getIconWithVersion';
5
4
  import { style } from '../../utils/style';
6
5
  import type { Picture } from '../../model/Picture';
7
6
  import type { IconVersion } from '../../model/IconVersion';
7
+ import { Button } from '../../ui-kit/Button/Button';
8
+ import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
8
9
 
9
10
  const ICONS_MAP: Array<{
10
11
  origins: string[];
@@ -45,11 +46,9 @@ const ICONS_MAP: Array<{
45
46
 
46
47
  export type ButtonSize = 'default' | 'small';
47
48
 
48
- interface MediaButtonProps {
49
- href?: string;
50
- isRounded?: boolean;
51
- buttonSize?: ButtonSize;
49
+ interface MediaButtonProps extends ButtonProps {
52
50
  iconVersion?: IconVersion;
51
+ buttonSize?: ButtonSize;
53
52
  }
54
53
 
55
54
  const buttonSizeStyles = {
@@ -58,29 +57,32 @@ const buttonSizeStyles = {
58
57
  };
59
58
 
60
59
  export const MediaButton = JSX<MediaButtonProps>(
61
- ({ isRounded = false, buttonSize = 'default', iconVersion = 'color', ...rest }) => {
62
- const link = useLink();
63
- const { href, onClick } = link(rest);
60
+ ({ iconVersion = 'color', buttonSize = 'default', rounded = false, ...rest }) => {
61
+ const { href, version } = rest;
64
62
 
65
63
  const { icon, label } =
66
64
  ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
67
65
  const iconWithVersion = icon ? { ...getIconWithVersion(icon), iconVersion } : null;
68
66
 
69
- return icon ? (
70
- <a
67
+ return (
68
+ <Button
71
69
  className={style(
72
70
  'group/media flex items-center justify-center box-border',
73
71
  buttonSizeStyles[buttonSize],
74
- isRounded ? 'rounded-full' : 'rounded-md',
75
- 'border-solid border border-main-divider hover:border-transparent',
72
+ rounded ? 'rounded-full' : 'rounded-md',
73
+ 'border border-solid hover:border-transparent',
74
+ 'group-data-primary:border-main-divider',
76
75
  'hover:bg-primary-main hover:text-black',
77
- 'group-data-secondary:bg-white group-data-secondary:hover:bg-secondary-hover',
76
+ 'group-data-secondary:bg-white border-main-divider group-data-secondary:hover:bg-secondary-hover',
77
+ 'group-data-gray:border-green',
78
+
79
+ buttonSizeStyles[buttonSize],
78
80
  )}
79
- href={href}
80
81
  aria-label={label}
81
82
  target="_blank"
82
83
  rel="noopener noreferrer"
83
- onClick={onClick}
84
+ version={version}
85
+ {...rest}
84
86
  >
85
87
  {iconWithVersion ? (
86
88
  <Img
@@ -91,7 +93,7 @@ export const MediaButton = JSX<MediaButtonProps>(
91
93
  asSVG
92
94
  />
93
95
  ) : null}
94
- </a>
95
- ) : null;
96
+ </Button>
97
+ );
96
98
  },
97
99
  );
@@ -1,20 +1,19 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { LinkProps } from '../../model/LinkProps';
2
+ import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
3
3
  import { MediaButton, type ButtonSize } from './MediaButton';
4
4
 
5
5
  export interface SocialMediaProps {
6
6
  className?: string;
7
- media?: LinkProps[];
8
- isRounded?: boolean;
7
+ media?: ButtonProps[];
9
8
  buttonSize?: ButtonSize;
10
9
  }
11
10
 
12
11
  export const SocialMedia = JSX<SocialMediaProps>(
13
- ({ className = '', media, isRounded = false, buttonSize, children }) => (
12
+ ({ className = '', media, children, buttonSize }) => (
14
13
  <div className="font-sans">
15
14
  <div className={`flex gap-2.5 ${className}`}>
16
15
  {media?.map((_, index) => (
17
- <MediaButton key={String(index)} isRounded={isRounded} buttonSize={buttonSize} {..._} />
16
+ <MediaButton key={String(index)} buttonSize={buttonSize} version={_.version} {..._} />
18
17
  ))}
19
18
  </div>
20
19
  <span className="text-s-light text-secondary-text">{children}</span>