@redneckz/wildless-cms-uni-blocks 0.3.41 → 0.3.44

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 (247) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +73 -62
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/BlockContent.d.ts +2 -1
  5. package/dist/components/Blocks.d.ts +1 -0
  6. package/dist/components/Blocks.js +2 -0
  7. package/dist/components/Blocks.js.map +1 -1
  8. package/dist/components/Bonus/Bonus.d.ts +5 -0
  9. package/dist/components/Bonus/Bonus.js +14 -0
  10. package/dist/components/Bonus/Bonus.js.map +1 -0
  11. package/dist/components/Bonus/BonusContent.d.ts +20 -0
  12. package/dist/components/Bonus/BonusContent.js +2 -0
  13. package/dist/components/Bonus/BonusContent.js.map +1 -0
  14. package/dist/components/Footer/Footer.js +1 -1
  15. package/dist/components/Footer/Footer.js.map +1 -1
  16. package/dist/components/Footer/MediaButton.d.ts +2 -0
  17. package/dist/components/Footer/MediaButton.js +5 -2
  18. package/dist/components/Footer/MediaButton.js.map +1 -1
  19. package/dist/components/Footer/SocialMedia.d.ts +2 -0
  20. package/dist/components/Footer/SocialMedia.js +2 -2
  21. package/dist/components/Footer/SocialMedia.js.map +1 -1
  22. package/dist/components/Footer/SocialMedia.mobile.d.ts +2 -0
  23. package/dist/components/Footer/SocialMedia.mobile.js +2 -2
  24. package/dist/components/Footer/SocialMedia.mobile.js.map +1 -1
  25. package/dist/components/Header/Header.mobile.js.map +1 -1
  26. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  27. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  28. package/dist/components/Header/HeaderSubMenuObserver.js +11 -8
  29. package/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
  30. package/dist/components/Header/HeaderTop.js +1 -1
  31. package/dist/components/Header/HeaderTop.js.map +1 -1
  32. package/dist/components/LinkDocs/LinkDocs.js +1 -1
  33. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  34. package/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
  35. package/dist/components/OtherProducts/OtherProducts.js +2 -2
  36. package/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  37. package/dist/components/OtherProducts/OtherProductsContent.d.ts +2 -0
  38. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  39. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  40. package/dist/components/ProductBlock/renderBackwardButton.js +2 -2
  41. package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  42. package/dist/components/ProductBlock/renderBenefit.mobile.js +1 -1
  43. package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  44. package/dist/components/ProductTile/ProductTile.js +1 -1
  45. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  46. package/dist/components/Recommendation/RecommendationCard.js +2 -2
  47. package/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  48. package/dist/content-page-repository/transformPicture.js +4 -1
  49. package/dist/content-page-repository/transformPicture.js.map +1 -1
  50. package/dist/ui-kit/Icon/Icon.js +3 -8
  51. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  52. package/dist/ui-kit/Icon/IconProps.d.ts +0 -7
  53. package/dist/ui-kit/Logo/Logo.js +1 -1
  54. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  55. package/dist/ui-kit/Tabs/Tabs.js +1 -1
  56. package/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  57. package/fonts/mohave/Mohave-Regular.ttf +0 -0
  58. package/fonts/mohave/mohave.css +7 -0
  59. package/lib/common.css +1 -1
  60. package/lib/components/BlockContent.d.ts +2 -1
  61. package/lib/components/Blocks.d.ts +1 -0
  62. package/lib/components/Blocks.js +2 -0
  63. package/lib/components/Blocks.js.map +1 -1
  64. package/lib/components/Bonus/Bonus.d.ts +5 -0
  65. package/lib/components/Bonus/Bonus.fixture.d.ts +6 -0
  66. package/lib/components/Bonus/Bonus.js +12 -0
  67. package/lib/components/Bonus/Bonus.js.map +1 -0
  68. package/lib/components/Bonus/BonusContent.d.ts +20 -0
  69. package/lib/components/Bonus/BonusContent.js +2 -0
  70. package/lib/components/Bonus/BonusContent.js.map +1 -0
  71. package/lib/components/Footer/Footer.js +1 -1
  72. package/lib/components/Footer/Footer.js.map +1 -1
  73. package/lib/components/Footer/MediaButton.d.ts +2 -0
  74. package/lib/components/Footer/MediaButton.js +5 -2
  75. package/lib/components/Footer/MediaButton.js.map +1 -1
  76. package/lib/components/Footer/SocialMedia.d.ts +2 -0
  77. package/lib/components/Footer/SocialMedia.js +2 -2
  78. package/lib/components/Footer/SocialMedia.js.map +1 -1
  79. package/lib/components/Footer/SocialMedia.mobile.d.ts +2 -0
  80. package/lib/components/Footer/SocialMedia.mobile.js +2 -2
  81. package/lib/components/Footer/SocialMedia.mobile.js.map +1 -1
  82. package/lib/components/Header/Header.mobile.js.map +1 -1
  83. package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  84. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  85. package/lib/components/Header/HeaderSubMenuObserver.js +11 -8
  86. package/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
  87. package/lib/components/Header/HeaderTop.js +1 -1
  88. package/lib/components/Header/HeaderTop.js.map +1 -1
  89. package/lib/components/LinkDocs/LinkDocs.js +1 -1
  90. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  91. package/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
  92. package/lib/components/OtherProducts/OtherProducts.js +2 -2
  93. package/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  94. package/lib/components/OtherProducts/OtherProductsContent.d.ts +2 -0
  95. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  96. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  97. package/lib/components/ProductBlock/renderBackwardButton.js +2 -2
  98. package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  99. package/lib/components/ProductBlock/renderBenefit.mobile.js +1 -1
  100. package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  101. package/lib/components/ProductTile/ProductTile.js +1 -1
  102. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  103. package/lib/components/Recommendation/RecommendationCard.js +2 -2
  104. package/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  105. package/lib/content-page-repository/transformPicture.js +4 -1
  106. package/lib/content-page-repository/transformPicture.js.map +1 -1
  107. package/lib/ui-kit/Icon/Icon.js +3 -8
  108. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  109. package/lib/ui-kit/Icon/IconProps.d.ts +0 -7
  110. package/lib/ui-kit/Logo/Logo.js +1 -1
  111. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  112. package/lib/ui-kit/Tabs/Tabs.js +1 -1
  113. package/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  114. package/mobile/bundle/bundle.umd.js +42 -44
  115. package/mobile/bundle/bundle.umd.min.js +1 -1
  116. package/mobile/dist/components/BlockContent.d.ts +2 -1
  117. package/mobile/dist/components/Bonus/Bonus.d.ts +5 -0
  118. package/mobile/dist/components/Bonus/Bonus.js +14 -0
  119. package/mobile/dist/components/Bonus/Bonus.js.map +1 -0
  120. package/mobile/dist/components/Bonus/BonusContent.d.ts +20 -0
  121. package/mobile/dist/components/Bonus/BonusContent.js +2 -0
  122. package/mobile/dist/components/Bonus/BonusContent.js.map +1 -0
  123. package/mobile/dist/components/Footer/MediaButton.d.ts +2 -0
  124. package/mobile/dist/components/Footer/MediaButton.js +5 -2
  125. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  126. package/mobile/dist/components/Footer/SocialMedia.d.ts +2 -0
  127. package/mobile/dist/components/Footer/SocialMedia.js +2 -2
  128. package/mobile/dist/components/Footer/SocialMedia.js.map +1 -1
  129. package/mobile/dist/components/Header/Header.js.map +1 -1
  130. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  131. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  132. package/mobile/dist/components/Header/HeaderSubMenuObserver.js +11 -8
  133. package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
  134. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  135. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  136. package/mobile/dist/components/OtherProducts/OtherProducts.js +2 -2
  137. package/mobile/dist/components/OtherProducts/OtherProducts.js.map +1 -1
  138. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +2 -0
  139. package/mobile/dist/components/ProductBlock/renderBackwardButton.js +2 -2
  140. package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  141. package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -1
  142. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  143. package/mobile/dist/components/ProductTile/ProductTile.js +1 -1
  144. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  145. package/mobile/dist/components/Recommendation/RecommendationCard.js +2 -2
  146. package/mobile/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  147. package/mobile/dist/content-page-repository/transformPicture.js +4 -1
  148. package/mobile/dist/content-page-repository/transformPicture.js.map +1 -1
  149. package/mobile/dist/ui-kit/Icon/Icon.js +3 -8
  150. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  151. package/mobile/dist/ui-kit/Icon/IconProps.d.ts +0 -7
  152. package/mobile/dist/ui-kit/Tabs/Tabs.js +1 -1
  153. package/mobile/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  154. package/mobile/lib/components/BlockContent.d.ts +2 -1
  155. package/mobile/lib/components/Bonus/Bonus.d.ts +5 -0
  156. package/mobile/lib/components/Bonus/Bonus.js +12 -0
  157. package/mobile/lib/components/Bonus/Bonus.js.map +1 -0
  158. package/mobile/lib/components/Bonus/BonusContent.d.ts +20 -0
  159. package/mobile/lib/components/Bonus/BonusContent.js +2 -0
  160. package/mobile/lib/components/Bonus/BonusContent.js.map +1 -0
  161. package/mobile/lib/components/Footer/MediaButton.d.ts +2 -0
  162. package/mobile/lib/components/Footer/MediaButton.js +5 -2
  163. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  164. package/mobile/lib/components/Footer/SocialMedia.d.ts +2 -0
  165. package/mobile/lib/components/Footer/SocialMedia.js +2 -2
  166. package/mobile/lib/components/Footer/SocialMedia.js.map +1 -1
  167. package/mobile/lib/components/Header/Header.js.map +1 -1
  168. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  169. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  170. package/mobile/lib/components/Header/HeaderSubMenuObserver.js +11 -8
  171. package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
  172. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  173. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  174. package/mobile/lib/components/OtherProducts/OtherProducts.js +2 -2
  175. package/mobile/lib/components/OtherProducts/OtherProducts.js.map +1 -1
  176. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +2 -0
  177. package/mobile/lib/components/ProductBlock/renderBackwardButton.js +2 -2
  178. package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  179. package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -1
  180. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  181. package/mobile/lib/components/ProductTile/ProductTile.js +1 -1
  182. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  183. package/mobile/lib/components/Recommendation/RecommendationCard.js +2 -2
  184. package/mobile/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  185. package/mobile/lib/content-page-repository/transformPicture.js +4 -1
  186. package/mobile/lib/content-page-repository/transformPicture.js.map +1 -1
  187. package/mobile/lib/ui-kit/Icon/Icon.js +3 -8
  188. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  189. package/mobile/lib/ui-kit/Icon/IconProps.d.ts +0 -7
  190. package/mobile/lib/ui-kit/Tabs/Tabs.js +1 -1
  191. package/mobile/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  192. package/mobile/src/common.css +5 -0
  193. package/mobile/src/components/BlockContent.ts +2 -0
  194. package/mobile/src/components/Bonus/Bonus.example.json +12 -0
  195. package/mobile/src/components/Bonus/Bonus.tsx +50 -0
  196. package/mobile/src/components/Bonus/BonusContent.ts +22 -0
  197. package/mobile/src/components/ContentPage/ContentPage.page.json +33 -10
  198. package/mobile/src/components/Footer/MediaButton.tsx +11 -6
  199. package/mobile/src/components/Footer/SocialMedia.tsx +8 -2
  200. package/mobile/src/components/Header/Header.tsx +1 -1
  201. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
  202. package/mobile/src/components/Header/HeaderSubMenuObserver.ts +14 -12
  203. package/mobile/src/components/Header/HeaderTop.tsx +1 -1
  204. package/mobile/src/components/OtherProducts/OtherProducts.tsx +18 -13
  205. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +2 -0
  206. package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +2 -3
  207. package/mobile/src/components/ProductBlock/renderBenefit.tsx +0 -1
  208. package/mobile/src/components/ProductTile/ProductTile.tsx +1 -1
  209. package/mobile/src/components/Recommendation/RecommendationCard.tsx +8 -3
  210. package/mobile/src/content-page-repository/transformPicture.ts +5 -1
  211. package/mobile/src/ui-kit/Icon/Icon.tsx +3 -15
  212. package/mobile/src/ui-kit/Icon/IconProps.ts +0 -8
  213. package/mobile/src/ui-kit/List/List.tsx +1 -1
  214. package/mobile/src/ui-kit/Tabs/Tabs.tsx +6 -2
  215. package/package.json +1 -1
  216. package/src/common.css +5 -0
  217. package/src/components/BlockContent.ts +2 -0
  218. package/src/components/Blocks.ts +2 -0
  219. package/src/components/Bonus/Bonus.example.json +12 -0
  220. package/src/components/Bonus/Bonus.fixture.tsx +39 -0
  221. package/src/components/Bonus/Bonus.tsx +50 -0
  222. package/src/components/Bonus/BonusContent.ts +22 -0
  223. package/src/components/ContentPage/ContentPage.page.json +33 -10
  224. package/src/components/Footer/Footer.tsx +2 -2
  225. package/src/components/Footer/MediaButton.tsx +11 -6
  226. package/src/components/Footer/SocialMedia.mobile.tsx +8 -2
  227. package/src/components/Footer/SocialMedia.tsx +21 -13
  228. package/src/components/Header/Header.mobile.tsx +1 -1
  229. package/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
  230. package/src/components/Header/HeaderSubMenuObserver.ts +14 -12
  231. package/src/components/Header/HeaderTop.tsx +1 -1
  232. package/src/components/LinkDocs/LinkDocs.tsx +1 -1
  233. package/src/components/LinkDocs/LinkDocsListItem.tsx +1 -1
  234. package/src/components/OtherProducts/OtherProducts.fixture.tsx +12 -11
  235. package/src/components/OtherProducts/OtherProducts.tsx +18 -13
  236. package/src/components/OtherProducts/OtherProductsContent.ts +2 -0
  237. package/src/components/ProductBlock/ProductBlock.tsx +1 -1
  238. package/src/components/ProductBlock/renderBackwardButton.tsx +2 -3
  239. package/src/components/ProductBlock/renderBenefit.mobile.tsx +0 -1
  240. package/src/components/ProductTile/ProductTile.tsx +1 -1
  241. package/src/components/Recommendation/RecommendationCard.tsx +8 -3
  242. package/src/content-page-repository/transformPicture.ts +5 -1
  243. package/src/ui-kit/Icon/Icon.tsx +3 -15
  244. package/src/ui-kit/Icon/IconProps.ts +0 -8
  245. package/src/ui-kit/List/List.tsx +1 -1
  246. package/src/ui-kit/Logo/Logo.tsx +1 -1
  247. package/src/ui-kit/Tabs/Tabs.tsx +6 -2
@@ -1,12 +1,12 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../types';
2
3
  import { Description } from '../../ui-kit/Description/Description';
4
+ import { Heading } from '../../ui-kit/Heading/Heading';
3
5
  import { Img } from '../../ui-kit/Img/Img';
4
6
  import { List } from '../../ui-kit/List/List';
5
7
  import { BaseTile } from '../BaseTile/BaseTile';
6
8
  import { SocialMedia } from '../Footer/SocialMedia';
7
- import type { UniBlockProps } from '../../types';
8
9
  import type { RecommendationCardTypes } from './RecommendationContent';
9
- import { Heading } from '../../ui-kit/Heading/Heading';
10
10
 
11
11
  export interface RecommendationCardProps extends RecommendationCardTypes, UniBlockProps {}
12
12
 
@@ -35,7 +35,12 @@ export const RecommendationCard = JSX<RecommendationCardProps>(
35
35
  version={version}
36
36
  />
37
37
  ) : null}
38
- <SocialMedia className="pt-[42px] pb-0" media={socialMedia} context={context} />
38
+ <SocialMedia
39
+ className="pt-[42px] pb-0"
40
+ media={socialMedia}
41
+ version={version}
42
+ context={context}
43
+ />
39
44
  </BaseTile>
40
45
  </section>
41
46
  );
@@ -36,7 +36,11 @@ async function transformImg(
36
36
 
37
37
  const imgPath = `${path.dirname(pagePath)}/${src}`;
38
38
  let chain = sharp(imgPath);
39
- if (size) chain = chain.resize(size);
39
+ if (size)
40
+ chain = chain.resize(size?.width, size?.height, {
41
+ fit: sharp.fit.contain,
42
+ background: [0, 0, 0, 0],
43
+ });
40
44
  if (format) chain = chain.toFormat(format, options);
41
45
 
42
46
  const transformedSrc = transformSrc(src, transformationOptions);
@@ -1,13 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { projectSettings } from '../../ProjectSettings';
3
- import type { IconColor, IconProps } from './IconProps';
4
2
  import { IconTitleMap } from '../../icons/IconName';
5
-
6
- const svgColorsMap: Record<IconColor, string> = {
7
- none: '',
8
- primary: 'text-white',
9
- secondary: 'text-white',
10
- };
3
+ import { projectSettings } from '../../ProjectSettings';
4
+ import type { IconProps } from './IconProps';
11
5
 
12
6
  export const Icon = JSX<IconProps>(
13
7
  ({
@@ -16,19 +10,13 @@ export const Icon = JSX<IconProps>(
16
10
  alt = `Иконка ${IconTitleMap[name] || name}`,
17
11
  title = alt,
18
12
  asSVG,
19
- color = 'primary',
20
13
  ...imgProps
21
14
  }) => {
22
15
  const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
23
16
 
24
17
  if (asSVG) {
25
18
  return (
26
- <svg
27
- className={`${svgColorsMap[color]} ${className}`}
28
- {...imgProps}
29
- aria-hidden="true"
30
- style={color === 'secondary' ? { filter: 'invert(1)' } : null}
31
- >
19
+ <svg className={className} {...imgProps} aria-hidden="true">
32
20
  {title ? <title>{title}</title> : null}
33
21
  {alt ? <desc>{alt}</desc> : null}
34
22
  <use href={`${href}#icon`} xlinkHref={`${href}#icon`} />
@@ -2,12 +2,6 @@ import type { IconName } from '../../icons/IconName';
2
2
 
3
3
  export type { IconName };
4
4
 
5
- /**
6
- * @title Цвет иконки (svg)
7
- * @enumNames ["Нет", "Основной", "Второстепенный"]
8
- */
9
- export type IconColor = 'none' | 'primary' | 'secondary';
10
-
11
5
  export interface IconCompatibilityFields {
12
6
  /** @title Альтернативный текст (alt) */
13
7
  alt?: string;
@@ -19,8 +13,6 @@ export interface IconCompatibilityFields {
19
13
  height?: string;
20
14
  /** @hidden */
21
15
  asSVG?: boolean;
22
- /** @hidden */
23
- color?: IconColor;
24
16
  }
25
17
 
26
18
  export type IconProps = IconCompatibilityFields & {
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { ListItem } from './ListItem';
3
- import type { ListProps, ListItemVersion } from './ListProps';
3
+ import type { ListItemVersion, ListProps } from './ListProps';
4
4
 
5
5
  const TEXT_STYLE_MAP: Record<ListItemVersion, string> = {
6
6
  primary: 'text-primary-text',
@@ -40,7 +40,11 @@ const renderTab =
40
40
  };
41
41
 
42
42
  const renderIcon = (tab: Tab, isActive: boolean) => (
43
- <div className="h-full mt-1" style={isActive ? { filter: 'invert(1)' } : null}>
44
- <Img className="w-5 h-5 mr-3" image={tab?.icon || 'CardIcon'} asSVG={!isActive} />
43
+ <div className="h-full mt-1">
44
+ <Img
45
+ className={`w-5 h-5 mr-3 ${isActive ? 'invert-full' : ''}`}
46
+ image={tab?.icon || 'CardIcon'}
47
+ asSVG={!isActive}
48
+ />
45
49
  </div>
46
50
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.3.41",
3
+ "version": "0.3.44",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
package/src/common.css CHANGED
@@ -1,4 +1,5 @@
1
1
  @import '../fonts/ubuntu/ubuntu.css';
2
+ @import '../fonts/mohave/mohave.css';
2
3
 
3
4
  html {
4
5
  scroll-behavior: smooth;
@@ -39,6 +40,10 @@ html {
39
40
  @tailwind utilities;
40
41
 
41
42
  @layer utilities {
43
+ .invert-full {
44
+ filter: invert(1);
45
+ }
46
+
42
47
  .rotate-180 {
43
48
  transform: rotate(180deg);
44
49
  }
@@ -1,4 +1,5 @@
1
1
  import type { BenefitsBlockContent } from './BenefitsBlock/BenefitsBlockContent';
2
+ import type { BonusContent } from './Bonus/BonusContent';
2
3
  import type { ComparisonTableContent } from './ComparisonTable/ComparisonTableContent';
3
4
  import type { ExchangeRateTileContent } from './ExchangeRateTile/ExchangeRateTileContent';
4
5
  import type { FooterContent } from './Footer/FooterContent';
@@ -26,6 +27,7 @@ import type { TileContent } from './Tile/TileContent';
26
27
  */
27
28
  export type BlockContent =
28
29
  | BenefitsBlockContent
30
+ | BonusContent
29
31
  | ComparisonTableContent
30
32
  | ExchangeRateTileContent
31
33
  | FooterContent
@@ -1,5 +1,6 @@
1
1
  import { Accordion } from './Accordion/Accordion';
2
2
  import { BenefitsBlock } from './BenefitsBlock/BenefitsBlock';
3
+ import { Bonus } from './Bonus/Bonus';
3
4
  import { ComparisonTable } from './ComparisonTable/ComparisonTable';
4
5
  import { CreditCalculator } from './CreditCalculator/CreditCalculator';
5
6
  import { ExchangeRateTile } from './ExchangeRateTile/ExchangeRateTile';
@@ -30,6 +31,7 @@ import { Tile } from './Tile/Tile';
30
31
  export const Blocks = {
31
32
  Accordion,
32
33
  BenefitsBlock,
34
+ Bonus,
33
35
  ComparisonTable,
34
36
  CreditCalculator,
35
37
  ExchangeRateTile,
@@ -0,0 +1,12 @@
1
+ {
2
+ "title": "Начисление баллов",
3
+ "description": "Описание",
4
+ "bonusItems": [
5
+ {
6
+ "name": "Плитка 1",
7
+ "description": "Описание плитки 1",
8
+ "bonusCount": 1,
9
+ "bonusName": "балл"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,39 @@
1
+ import { context } from '../../setup-fixture';
2
+ import { Bonus } from './Bonus';
3
+ import type { BonusContent } from './BonusContent';
4
+
5
+ export const BONUS: BonusContent = {
6
+ title: 'Начисление баллов',
7
+ description:
8
+ 'Получайте 1% бонусными баллами с любых покупок и 1,5% баллами с покупок в категории «Путешествия». Обменивайте бонусные баллы на авиа и ж/д билеты, бронирование отелей и прокат автомобилей.',
9
+ bonusItems: [
10
+ {
11
+ name: '5 баллов за каждые 100 ₽',
12
+ description:
13
+ 'Повышенное начисление баллов за операции оплаты товаров и услуг в сети АЗС Роснефть',
14
+ bonusCount: 5,
15
+ bonusName: 'баллов',
16
+ },
17
+ {
18
+ name: '1 балл за каждые 100 ₽',
19
+ description: 'За остальные операции оплаты товаров и услуг',
20
+ bonusCount: 1,
21
+ bonusName: 'балл',
22
+ },
23
+ {
24
+ name: '300 приветственных баллов',
25
+ description:
26
+ 'За операции оплаты товаров и услуг на общую сумму 1 000 рублей и более в течение первых двух месяцев после получения карты',
27
+ bonusCount: 300,
28
+ bonusName: 'баллов',
29
+ },
30
+ ],
31
+ };
32
+
33
+ export default {
34
+ default: (
35
+ <div className="container grid grid-cols-12">
36
+ <Bonus className="col-span-12" context={context} {...BONUS} />
37
+ </div>
38
+ ),
39
+ };
@@ -0,0 +1,50 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../types';
3
+ import type { BonusContent } from './BonusContent';
4
+ import { Heading } from '../../ui-kit/Heading/Heading';
5
+
6
+ export interface BonusProps extends BonusContent, UniBlockProps {}
7
+
8
+ export const Bonus = JSX<BonusProps>((props) => {
9
+ const { className = '', title, description, bonusItems, anchor = null } = props;
10
+
11
+ return (
12
+ <section className={`bg-white p-12 ${className}`} id={anchor}>
13
+ <div className="container">
14
+ {title ? <Heading headingType="h2" className="text-center" title={title} /> : null}
15
+ {description ? (
16
+ <div className="text-md font-light text-center mt-2">{description}</div>
17
+ ) : null}
18
+ <div className="flex flex-wrap w-full mt-9">
19
+ {bonusItems
20
+ ? bonusItems.map((_, i) => {
21
+ return (
22
+ <div
23
+ key={String(i)}
24
+ className="flex-grow w-[49%] border border-gray pl-9 pt-9 pr-6 pb-6 mb-4 mx-2 even:mr-0 odd:ml-0 last:odd:w-full last:odd:mx-0"
25
+ >
26
+ <div className="flex justify-between w-full">
27
+ <div className="mr-4">
28
+ <div className="text-title-sm">{_.name}</div>
29
+ <div className="text-md font-light mt-3 max-w-[488px]">{_.description}</div>
30
+ </div>
31
+ {_.bonusCount ? (
32
+ <div className="relative -bottom-3 h-auto flex items-end mt-14 shrink-0">
33
+ <span className="font-serif -tracking-wider text-title-extra bg-clip-text text-transparent bg-green-to-yellow -mb-7">
34
+ {_.bonusCount}
35
+ </span>
36
+ <span className="text-[44px] bg-clip-text text-transparent bg-green-to-yellow">
37
+ {_.bonusName}
38
+ </span>
39
+ </div>
40
+ ) : null}
41
+ </div>
42
+ </div>
43
+ );
44
+ })
45
+ : null}
46
+ </div>
47
+ </div>
48
+ </section>
49
+ );
50
+ });
@@ -0,0 +1,22 @@
1
+ import type { DescriptionContent } from '../../ui-kit/Description/DescriptionContent';
2
+ import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
3
+
4
+ /** @title Список плиток */
5
+ interface BonusItems {
6
+ /** @title Заголовок плитки */
7
+ name?: string;
8
+ /** @title Описание плитки */
9
+ description?: string;
10
+ /** @title Количество баллов */
11
+ bonusCount?: number;
12
+ /** @title Наименование */
13
+ bonusName?: string;
14
+ }
15
+
16
+ /**
17
+ * @title Плитка
18
+ */
19
+ export type BonusContent = HeadingContent &
20
+ DescriptionContent & {
21
+ bonusItems?: BonusItems[];
22
+ };
@@ -2042,8 +2042,7 @@
2042
2042
  "src": "calendar/august.png",
2043
2043
  "format": "webp",
2044
2044
  "size": {
2045
- "width": 210,
2046
- "height": "auto"
2045
+ "width": 210
2047
2046
  },
2048
2047
  "alt": "Пример использования «Карты для покупок в рассрочку»"
2049
2048
  }
@@ -2060,8 +2059,7 @@
2060
2059
  "src": "calendar/september.png",
2061
2060
  "format": "webp",
2062
2061
  "size": {
2063
- "width": 210,
2064
- "height": "auto"
2062
+ "width": 210
2065
2063
  },
2066
2064
  "alt": "Пример использования «Карты для покупок в рассрочку»"
2067
2065
  }
@@ -2072,8 +2070,7 @@
2072
2070
  "src": "calendar/october.png",
2073
2071
  "format": "webp",
2074
2072
  "size": {
2075
- "width": 210,
2076
- "height": "auto"
2073
+ "width": 210
2077
2074
  },
2078
2075
  "alt": "Пример использования «Карты для покупок в рассрочку»"
2079
2076
  }
@@ -2090,8 +2087,7 @@
2090
2087
  "src": "calendar/november.png",
2091
2088
  "format": "webp",
2092
2089
  "size": {
2093
- "width": 210,
2094
- "height": "auto"
2090
+ "width": 210
2095
2091
  },
2096
2092
  "alt": "Пример использования «Карты для покупок в рассрочку»"
2097
2093
  }
@@ -2108,8 +2104,7 @@
2108
2104
  "src": "calendar/december.png",
2109
2105
  "format": "webp",
2110
2106
  "size": {
2111
- "width": 210,
2112
- "height": "auto"
2107
+ "width": 210
2113
2108
  },
2114
2109
  "alt": "Пример использования «Карты для покупок в рассрочку»"
2115
2110
  }
@@ -2119,6 +2114,34 @@
2119
2114
  ]
2120
2115
  }
2121
2116
  },
2117
+ {
2118
+ "type": "Bonus",
2119
+ "style": ["col-span-12"],
2120
+ "content": {
2121
+ "title": "Начисление баллов",
2122
+ "description": "Получайте 1% бонусными баллами с любых покупок и 1,5% баллами с покупок в категории «Путешествия». Обменивайте бонусные баллы на авиа и ж/д билеты, бронирование отелей и прокат автомобилей.",
2123
+ "bonusItems": [
2124
+ {
2125
+ "name": "5 баллов за каждые 100 ₽",
2126
+ "description": "Повышенное начисление баллов за операции оплаты товаров и услуг в сети АЗС Роснефть",
2127
+ "bonusCount": 5,
2128
+ "bonusName": "баллов"
2129
+ },
2130
+ {
2131
+ "name": "1 балл за каждые 100 ₽",
2132
+ "description": "За остальные операции оплаты товаров и услуг",
2133
+ "bonusCount": 1,
2134
+ "bonusName": "балл"
2135
+ },
2136
+ {
2137
+ "name": "300 приветственных баллов",
2138
+ "description": "Повышенное начисление баллов за операции оплаты товаров и услуг в сети АЗС Роснефть",
2139
+ "bonusCount": 300,
2140
+ "bonusName": "баллов"
2141
+ }
2142
+ ]
2143
+ }
2144
+ },
2122
2145
  {
2123
2146
  "type": "Footer",
2124
2147
  "style": ["col-span-12"],
@@ -26,7 +26,7 @@ export const Footer = JSX<FooterProps>(
26
26
  anchor = null,
27
27
  }) => {
28
28
  return (
29
- <footer className={`px-9 pt-9 pb-8 bg-white ${className || ''}`} id={anchor}>
29
+ <footer className={`px-9 pt-9 pb-10 bg-white ${className || ''}`} id={anchor}>
30
30
  <div className="flex items-stretch gap-[54px] pb-[30px] xl:gap-8">
31
31
  <Logo className={LEFT_COL_WIDTH_FULL_HD} />
32
32
  <SearchBar context={context} className="grow" />
@@ -43,7 +43,7 @@ export const Footer = JSX<FooterProps>(
43
43
  </div>
44
44
  <Sitemap className="pt-[3px]" context={context} items={topItems} />
45
45
  </div>
46
- <HorizontalNavigation className="mt-24" links={relatedEnterprises} context={context} />
46
+ <HorizontalNavigation className="mt-[98px]" links={relatedEnterprises} context={context} />
47
47
  <TextInformation links={documents} context={context} />
48
48
  </footer>
49
49
  );
@@ -1,6 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { Img } from '../../ui-kit/Img/Img';
2
+ import { BlockVersion } from '../../model/BlockVersion';
3
3
  import type { Picture } from '../../model/Picture';
4
+ import { Img } from '../../ui-kit/Img/Img';
4
5
 
5
6
  const ICONS_MAP: Array<{
6
7
  origins: string[];
@@ -48,25 +49,29 @@ const ICONS_MAP: Array<{
48
49
 
49
50
  interface MediaButtonProps {
50
51
  href?: string;
52
+ version?: BlockVersion;
51
53
  }
52
54
 
53
- export const MediaButton = JSX<MediaButtonProps>(({ href }) => {
55
+ export const MediaButton = JSX<MediaButtonProps>(({ href, version }) => {
54
56
  const { icon, width, height, label } =
55
57
  ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
56
58
 
57
59
  if (!icon) return null;
58
60
 
61
+ const classes =
62
+ version === 'secondary'
63
+ ? 'text-white hover:text-primary-main hover:bg-white'
64
+ : 'text-primary-main hover:text-white hover:bg-primary-main hover:border-primary-main';
65
+
59
66
  return (
60
67
  <a
61
- className="flex items-center justify-center border border-solid rounded-md border-main-divider no-underline outline-none w-14 h-14 box-border text-primary-main hover:text-white hover:bg-primary-main hover:border-primary-main"
68
+ className={` flex items-center justify-center border border-solid rounded-md border-main-divider no-underline outline-none w-14 h-14 box-border ${classes}`}
62
69
  href={href}
63
70
  aria-label={label}
64
71
  target="_blank"
65
72
  rel="noopener noreferrer"
66
73
  >
67
- {icon ? (
68
- <Img image={icon} width={width} height={height} asSVG className="block" color="none" />
69
- ) : null}
74
+ {icon ? <Img image={icon} width={width} height={height} asSVG className="block" /> : null}
70
75
  </a>
71
76
  );
72
77
  });
@@ -1,20 +1,26 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useLink } from '../../hooks/useLink';
3
+ import { BlockVersion } from '../../model/BlockVersion';
3
4
  import type { LinkProps } from '../../model/LinkProps';
4
5
  import type { UniBlockProps } from '../../types';
5
6
  import { MediaButton } from './MediaButton';
6
7
 
7
8
  export interface SocialMediaProps extends UniBlockProps {
8
9
  media?: Omit<LinkProps, 'text'>[];
10
+ version?: BlockVersion;
9
11
  }
10
12
 
11
- export const SocialMedia = JSX<SocialMediaProps>(({ className, media, context }) => {
13
+ export const SocialMedia = JSX<SocialMediaProps>(({ className, media, version, context }) => {
12
14
  const router = context.useRouter();
13
15
  const { handlerDecorator } = context;
14
16
  return (
15
17
  <div className={`flex gap-2 items-start justify-start pt-6 pb-6 ${className || ''}`}>
16
18
  {media?.map((_, index) => (
17
- <MediaButton key={String(index)} {...useLink({ router, handlerDecorator }, _)} />
19
+ <MediaButton
20
+ key={String(index)}
21
+ version={version}
22
+ {...useLink({ router, handlerDecorator }, _)}
23
+ />
18
24
  ))}
19
25
  </div>
20
26
  );
@@ -1,24 +1,32 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useLink } from '../../hooks/useLink';
3
+ import { BlockVersion } from '../../model/BlockVersion';
3
4
  import type { LinkProps } from '../../model/LinkProps';
4
5
  import type { UniBlockProps } from '../../types';
5
6
  import { MediaButton } from './MediaButton';
6
7
 
7
8
  export interface SocialMediaProps extends UniBlockProps {
8
9
  media?: Omit<LinkProps, 'text'>[];
10
+ version?: BlockVersion;
9
11
  }
10
12
 
11
- export const SocialMedia = JSX<SocialMediaProps>(({ className = '', media, context, children }) => {
12
- const router = context.useRouter();
13
- const { handlerDecorator } = context;
14
- return (
15
- <div>
16
- <div className={`flex gap-2.5 mb-1.5 ${className}`}>
17
- {media?.map((_, index) => (
18
- <MediaButton key={String(index)} {...useLink({ router, handlerDecorator }, _)} />
19
- ))}
13
+ export const SocialMedia = JSX<SocialMediaProps>(
14
+ ({ className = '', media, version, context, children }) => {
15
+ const router = context.useRouter();
16
+ const { handlerDecorator } = context;
17
+ return (
18
+ <div>
19
+ <div className={`flex gap-2.5 mb-1.5 ${className}`}>
20
+ {media?.map((_, index) => (
21
+ <MediaButton
22
+ key={String(index)}
23
+ version={version}
24
+ {...useLink({ router, handlerDecorator }, _)}
25
+ />
26
+ ))}
27
+ </div>
28
+ <span className="font-light text-sm text-secondary-text">{children}</span>
20
29
  </div>
21
- <span className="font-light text-sm text-secondary-text">{children}</span>
22
- </div>
23
- );
24
- });
30
+ );
31
+ },
32
+ );
@@ -19,7 +19,7 @@ export const Header = JSX<HeaderProps>(
19
19
  ({ className = '', defaultLocation, bgColor = 'bg-white', context, topItems }) => {
20
20
  const router = context.useRouter();
21
21
  const sitemap = useSitemap(context.useAsyncData);
22
- const dispositions = sitemap?.dispositions
22
+ const dispositions = sitemap?.dispositions;
23
23
  const { handlerDecorator } = context;
24
24
 
25
25
  const mergedItems = mergeTopItems(sitemap.topItems, topItems);
@@ -52,13 +52,13 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
52
52
  className={`mr-5 ${COLORS_MAP[bgColor]}`}
53
53
  ariaLabel="Поиск по сайту"
54
54
  >
55
- <Img image="LoupeIcon" className="h-full" asSVG color="none" />
55
+ <Img image="LoupeIcon" className="h-full" asSVG />
56
56
  </HeaderSecondaryMenuButton>
57
57
  <HeaderSecondaryMenuButton
58
58
  className={`${LINKS_COLORS_MAP[bgColor]} min-w-[32px] min-h-[32px]`}
59
59
  ariaLabel="Дополнительные ссылки"
60
60
  >
61
- <Img image={LINKS_ICON_NAME_MAP[bgColor]} className="h-full" asSVG color="none" />
61
+ <Img image={LINKS_ICON_NAME_MAP[bgColor]} className="h-full" asSVG />
62
62
  </HeaderSecondaryMenuButton>
63
63
  </div>
64
64
  );
@@ -5,18 +5,20 @@ const isClient = !isSSR();
5
5
  export const headerSubMenuObserver = isClient
6
6
  ? new IntersectionObserver(
7
7
  (entries) => {
8
+ const createArrays = (selectors) =>
9
+ selectors.map((_) => Array.from(window.document.querySelectorAll(_)));
10
+
8
11
  const headerSubMenuButtonElement = window.document.querySelector(
9
12
  '[data-header-submenu-visible=toggled]',
10
13
  );
11
- const headerSubMenuItems = Array.from(
12
- window.document.querySelectorAll('[data-item-name=header-submenu]'),
13
- );
14
- const dotsHeaderSubMenuItems = Array.from(
15
- window.document.querySelectorAll('[data-item-name=dots-header-submenu]'),
16
- );
14
+ const [headerSubMenuItems, dotsHeaderSubMenuItems] = createArrays([
15
+ '[data-item-name=header-submenu]',
16
+ '[data-item-name=dots-header-submenu]',
17
+ ]);
18
+
17
19
  const visibilityList = {};
18
- entries.forEach((j) => {
19
- visibilityList[String(j.target.toString())] = j.isIntersecting;
20
+ entries.forEach((_) => {
21
+ visibilityList[_.target.toString()] = _.isIntersecting;
20
22
  });
21
23
  const isHeaderSubMenuButtonShow = toggleVisibilityInItems(
22
24
  visibilityList,
@@ -37,10 +39,10 @@ export const headerSubMenuObserver = isClient
37
39
  // TODO: add types
38
40
  const toggleVisibilityInItems = (visibilityList, items, className) => {
39
41
  const isReversed = className !== 'hidden';
40
- return items.some((item) => {
41
- const key = item.toString();
42
+ return items.some((_) => {
43
+ const key = _.toString();
42
44
  const option = isReversed ? !visibilityList[key] : visibilityList[key];
43
- key in visibilityList ? item.classList.toggle(className, option) : null;
44
- return isReversed ? item.classList.contains('hidden') : !item.classList.contains('hidden');
45
+ key in visibilityList ? _.classList.toggle(className, option) : null;
46
+ return isReversed ? _.classList.contains('hidden') : !_.classList.contains('hidden');
45
47
  });
46
48
  };
@@ -7,7 +7,6 @@ export interface HeaderTopProps {
7
7
  onClick: () => void;
8
8
  bgColor?: BgColorVersion;
9
9
  }
10
-
11
10
  export const HeaderTop = JSX<HeaderTopProps>(({ onClick, bgColor }) => (
12
11
  <div className="flex items-center justify-between border-0 border-b border-main-divider h-[50px]">
13
12
  <div className="flex items-center">
@@ -18,6 +17,7 @@ export const HeaderTop = JSX<HeaderTopProps>(({ onClick, bgColor }) => (
18
17
  >
19
18
  <Img
20
19
  image={bgColor === 'bg-white' ? 'BurgerIcon' : 'BurgerIconWhite'}
20
+ className="text-primary-text"
21
21
  width="24"
22
22
  height="24"
23
23
  asSVG
@@ -35,7 +35,7 @@ export const LinkDocs = JSX<LinkDocsProps>(
35
35
  anchor = null,
36
36
  }) => {
37
37
  return (
38
- <section className={`font-sans text-primary-text p-12 bg-white ${className}`} id={anchor}>
38
+ <section className={`font-sans text-primary-text p-[50px] bg-white ${className}`} id={anchor}>
39
39
  {title ? (
40
40
  <Heading
41
41
  headingType="h2"
@@ -5,7 +5,7 @@ import { LinkDocsListItemBase } from './LinkDocsListItemBase';
5
5
  export const LinkDocsListItem = JSX<LinkDocsListItemProps>(({ className = '', doc, icon }) => (
6
6
  <LinkDocsListItemBase
7
7
  className={`flex h-full box-border ${className}`}
8
- iconClassName="mr-3.5 min-w-6 min-h-6 text-primary-text"
8
+ iconClassName="mr-2.5 min-w-6 min-h-6 text-primary-text"
9
9
  textClassName="self-center font-light"
10
10
  suffixClassName="text-secondary-text group-hover:text-primary-main"
11
11
  doc={doc}