@redneckz/wildless-cms-uni-blocks 0.9.8 → 0.9.9
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.
- package/bin/migration-scripts/0.9.8.js +29 -0
- package/bin/migration-scripts/0.9.9.js +110 -0
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +11 -34
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
- package/bundle/components/StepsBlock/StepsBlockContent.d.ts +10 -1
- package/dist/components/Blocks.js +0 -2
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -6
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
- package/dist/components/StepsBlock/StepsBlock.js +5 -3
- package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
- package/dist/components/StepsBlock/StepsBlockContent.d.ts +10 -1
- package/dist/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
- package/dist/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Blocks.js +0 -2
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/Carousel/Carousel.fixture.d.ts +1 -0
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.d.ts +2 -0
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -6
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
- package/lib/components/StepsBlock/StepsBlock.js +5 -3
- package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
- package/lib/components/StepsBlock/StepsBlockContent.d.ts +10 -1
- package/lib/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
- package/lib/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +3 -3
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
- package/mobile/bundle/components/StepsBlock/StepsBlockContent.d.ts +10 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -6
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
- package/mobile/dist/components/StepsBlock/StepsBlockContent.d.ts +10 -1
- package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
- package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -6
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
- package/mobile/lib/components/StepsBlock/StepsBlockContent.d.ts +10 -1
- package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
- package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +1 -0
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +18 -34
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -0
- package/mobile/src/components/StepsBlock/StepsBlock.example.json +7 -5
- package/mobile/src/components/StepsBlock/StepsBlock.ui.json +10 -0
- package/mobile/src/components/StepsBlock/StepsBlockContent.ts +10 -2
- package/mobile/src/components/StepsBlock/StepsBlockStyleMaps.ts +3 -2
- package/package.json +1 -1
- package/src/components/Blocks.ts +0 -2
- package/src/components/Carousel/Carousel.fixture.tsx +25 -2
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +1 -0
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +28 -1
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +18 -34
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -0
- package/src/components/StepsBlock/StepsBlock.example.json +7 -5
- package/src/components/StepsBlock/StepsBlock.fixture.tsx +14 -8
- package/src/components/StepsBlock/StepsBlock.tsx +13 -4
- package/src/components/StepsBlock/StepsBlock.ui.json +10 -0
- package/src/components/StepsBlock/StepsBlockContent.ts +10 -2
- package/src/components/StepsBlock/StepsBlockStyleMaps.ts +3 -2
- package/bundle/components/Recommendation/Recommendation.d.ts +0 -5
- package/bundle/components/Recommendation/RecommendationCard.d.ts +0 -5
- package/bundle/components/Recommendation/RecommendationContent.d.ts +0 -24
- package/dist/components/Recommendation/Recommendation.d.ts +0 -5
- package/dist/components/Recommendation/Recommendation.js +0 -26
- package/dist/components/Recommendation/Recommendation.js.map +0 -1
- package/dist/components/Recommendation/RecommendationCard.d.ts +0 -5
- package/dist/components/Recommendation/RecommendationCard.js +0 -17
- package/dist/components/Recommendation/RecommendationCard.js.map +0 -1
- package/dist/components/Recommendation/RecommendationContent.d.ts +0 -24
- package/dist/components/Recommendation/RecommendationContent.js +0 -2
- package/dist/components/Recommendation/RecommendationContent.js.map +0 -1
- package/lib/components/Recommendation/Recommendation.d.ts +0 -5
- package/lib/components/Recommendation/Recommendation.fixture.d.ts +0 -15
- package/lib/components/Recommendation/Recommendation.js +0 -24
- package/lib/components/Recommendation/Recommendation.js.map +0 -1
- package/lib/components/Recommendation/RecommendationCard.d.ts +0 -5
- package/lib/components/Recommendation/RecommendationCard.js +0 -15
- package/lib/components/Recommendation/RecommendationCard.js.map +0 -1
- package/lib/components/Recommendation/RecommendationContent.d.ts +0 -24
- package/lib/components/Recommendation/RecommendationContent.js +0 -2
- package/lib/components/Recommendation/RecommendationContent.js.map +0 -1
- package/mobile/bundle/components/Recommendation/Recommendation.d.ts +0 -5
- package/mobile/bundle/components/Recommendation/RecommendationCard.d.ts +0 -5
- package/mobile/bundle/components/Recommendation/RecommendationContent.d.ts +0 -24
- package/mobile/dist/components/Recommendation/Recommendation.d.ts +0 -5
- package/mobile/dist/components/Recommendation/Recommendation.js +0 -26
- package/mobile/dist/components/Recommendation/Recommendation.js.map +0 -1
- package/mobile/dist/components/Recommendation/RecommendationCard.d.ts +0 -5
- package/mobile/dist/components/Recommendation/RecommendationCard.js +0 -17
- package/mobile/dist/components/Recommendation/RecommendationCard.js.map +0 -1
- package/mobile/dist/components/Recommendation/RecommendationContent.d.ts +0 -24
- package/mobile/dist/components/Recommendation/RecommendationContent.js +0 -2
- package/mobile/dist/components/Recommendation/RecommendationContent.js.map +0 -1
- package/mobile/lib/components/Recommendation/Recommendation.d.ts +0 -5
- package/mobile/lib/components/Recommendation/Recommendation.js +0 -24
- package/mobile/lib/components/Recommendation/Recommendation.js.map +0 -1
- package/mobile/lib/components/Recommendation/RecommendationCard.d.ts +0 -5
- package/mobile/lib/components/Recommendation/RecommendationCard.js +0 -15
- package/mobile/lib/components/Recommendation/RecommendationCard.js.map +0 -1
- package/mobile/lib/components/Recommendation/RecommendationContent.d.ts +0 -24
- package/mobile/lib/components/Recommendation/RecommendationContent.js +0 -2
- package/mobile/lib/components/Recommendation/RecommendationContent.js.map +0 -1
- package/mobile/src/components/Catalog/Catalog.ui.json +0 -1
- package/mobile/src/components/Recommendation/Recommendation.example.json +0 -61
- package/mobile/src/components/Recommendation/Recommendation.tsx +0 -66
- package/mobile/src/components/Recommendation/Recommendation.ui.json +0 -19
- package/mobile/src/components/Recommendation/RecommendationCard.tsx +0 -49
- package/mobile/src/components/Recommendation/RecommendationContent.ts +0 -27
- package/src/components/Catalog/Catalog.ui.json +0 -1
- package/src/components/Recommendation/Recommendation.example.json +0 -61
- package/src/components/Recommendation/Recommendation.fixture.tsx +0 -176
- package/src/components/Recommendation/Recommendation.tsx +0 -66
- package/src/components/Recommendation/Recommendation.ui.json +0 -19
- package/src/components/Recommendation/RecommendationCard.tsx +0 -49
- package/src/components/Recommendation/RecommendationContent.ts +0 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselRecommendationCard.js","sourceRoot":"","sources":["../../../src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CarouselRecommendationCard.js","sourceRoot":"","sources":["../../../src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,YAAY,GAChB,0GAA0G,CAAC;AAI7G,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAC3C,CAAC,EACC,SAAS,GAAG,EAAE,EACd,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,EAAE,EAChB,MAAM,EACN,KAAK,EACL,KAAK,GAAG,WAAW,EACnB,OAAO,GAAG,SAAS,EACnB,GAAG,IAAI,EACR,EAAE,EAAE;IACH,OAAO,CACL,KAAC,YAAY,IACX,SAAS,EAAE,KAAK,CACd,+FAA+F,EAC/F,YAAY,EACZ,SAAS,CACV,EACD,OAAO,EAAE,OAAO,KACZ,IAAI,YAER,MAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aACrC,KAAC,QAAQ,IACP,SAAS,EAAC,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,eAAe,EAAC,GAAG,EACnB,SAAS,EAAE,KAAK,EAChB,KAAK,EAAE,KAAK,GACZ,EACF,eAAK,SAAS,EAAC,+CAA+C,aAC3D,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,KAAC,IAAI,IAAC,SAAS,EAAC,qBAAqB,EAAC,aAAa,EAAC,cAAc,EAAC,KAAK,EAAE,KAAK,GAAI,CACpF,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,WAAW,GAAI,CAAC,CAAC,CAAC,IAAI,IAC9E,EACL,eAAe,CAAC,IAAI,CAAC,IACV,GACD,CAChB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAyB,EAAE,EAAE,CAAC,CACrD,eAAK,SAAS,EAAC,2BAA2B,aACvC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,KAAK,SAAG,CAAC,CAAC,CAAC,IAAI,EAClE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,KAAK,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,IAAI,IACpC,CACP,CAAC"}
|
package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { LinkCommonProps } from '../../model/LinkProps';
|
|
|
5
5
|
import type { IconProps } from '../../model/Picture';
|
|
6
6
|
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
7
7
|
import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
8
|
+
import type { TextAlign } from '../../ui-kit/Text/TextProps';
|
|
8
9
|
export declare type RecommendationSocialMedia = LinkCommonProps & IconProps & ButtonWithIconProps & {
|
|
9
10
|
version: ButtonVersion;
|
|
10
11
|
rounded?: boolean;
|
|
@@ -15,4 +16,5 @@ export declare type RecommendationSocialMedia = LinkCommonProps & IconProps & Bu
|
|
|
15
16
|
export declare type CarouselRecommendationCardContent = UniBlockContent & HeadlineCommonProps & ListContent & IconProps & LinkCommonProps & {
|
|
16
17
|
/** @title Соц сети */
|
|
17
18
|
socialMedia?: RecommendationSocialMedia[];
|
|
19
|
+
align?: TextAlign;
|
|
18
20
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
2
2
|
import type { BulletsProps } from '../../model/Bullets';
|
|
3
3
|
import type { ButtonCommonIconProps } from '../../model/Button';
|
|
4
|
+
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
5
|
import type { DefaultListItemType } from '../../model/DefaultListItemType';
|
|
5
6
|
import type { DescriptionProps, HeadlineCommonProps, LabelProps } from '../../model/HeadlineType';
|
|
6
7
|
import type { UniBlockContent } from '../../model/JSXBlock';
|
|
@@ -27,7 +28,7 @@ export declare type Step = DefaultStep | RichTextStep;
|
|
|
27
28
|
/**
|
|
28
29
|
* @title Блок шаги
|
|
29
30
|
*/
|
|
30
|
-
export declare type StepsBlockContent = UniBlockContent & HeadlineCommonProps &
|
|
31
|
+
export declare type StepsBlockContent = UniBlockContent & HeadlineCommonProps & {
|
|
31
32
|
/** @title Линии */
|
|
32
33
|
showLines?: boolean;
|
|
33
34
|
/**
|
|
@@ -36,8 +37,16 @@ export declare type StepsBlockContent = UniBlockContent & HeadlineCommonProps &
|
|
|
36
37
|
* @maxItems 5
|
|
37
38
|
*/
|
|
38
39
|
steps?: Step[];
|
|
40
|
+
/**
|
|
41
|
+
* @title Тема шагов
|
|
42
|
+
*/
|
|
39
43
|
stepVersion?: BlockVersion;
|
|
40
44
|
/** @title Размер шагов */
|
|
41
45
|
size?: SizeVersion;
|
|
46
|
+
/**
|
|
47
|
+
* @title Кнопки
|
|
48
|
+
* @maxItems 2
|
|
49
|
+
*/
|
|
50
|
+
buttons?: ButtonWithIconProps[];
|
|
42
51
|
};
|
|
43
52
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const STEPS_BLOCK_STYLE = {
|
|
2
|
-
description: 'text-white/80 text-l-light group-data-primary:text-secondary-text',
|
|
3
|
-
iconText: 'text-white group-data-primary:text-secondary-text',
|
|
2
|
+
description: 'text-white/80 text-l-light group-data-primary:text-secondary-text group-data-gray:text-secondary-text',
|
|
3
|
+
iconText: 'text-white group-data-primary:text-secondary-text group-data-gray:text-secondary-text',
|
|
4
4
|
iconBackground: 'bg-white/30 group-data-primary:bg-main-divider',
|
|
5
5
|
iconConnector: 'bg-white group-data-primary:bg-secondary-light',
|
|
6
6
|
dot: 'bg-white/80 group-data-primary:bg-secondary-text',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepsBlockStyleMaps.js","sourceRoot":"","sources":["../../../src/components/StepsBlock/StepsBlockStyleMaps.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,WAAW,
|
|
1
|
+
{"version":3,"file":"StepsBlockStyleMaps.js","sourceRoot":"","sources":["../../../src/components/StepsBlock/StepsBlockStyleMaps.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,WAAW,EACT,uGAAuG;IACzG,QAAQ,EAAE,uFAAuF;IACjG,cAAc,EAAE,gDAAgD;IAChE,aAAa,EAAE,gDAAgD;IAC/D,GAAG,EAAE,kDAAkD;CACxD,CAAC"}
|
|
@@ -2,22 +2,18 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
2
2
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
3
3
|
import type { Picture } from '../../model/Picture';
|
|
4
4
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
5
|
-
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
6
5
|
import { Img } from '../../ui-kit/Img/Img';
|
|
7
6
|
import { LinkWrapper } from '../../ui-kit/LinkWrapper/LinkWrapper';
|
|
8
7
|
import { List } from '../../ui-kit/List/List';
|
|
9
|
-
import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
|
|
10
8
|
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
11
9
|
import { style } from '../../utils/style';
|
|
12
10
|
import { SocialMedia } from '../Footer/SocialMedia';
|
|
11
|
+
import { Headline } from '../Headline/Headline';
|
|
13
12
|
import type { CarouselRecommendationCardContent } from './CarouselRecommendationCardContent';
|
|
14
13
|
|
|
15
14
|
const BORDER_STYLE =
|
|
16
15
|
'border border-solid border-gray group-data-secondary:border-white/50 group-data-gray:border-main-divider';
|
|
17
16
|
|
|
18
|
-
const setAdditionalIconStyles = (items: string[]) =>
|
|
19
|
-
items.length ? 'w-1/2 flex-1 justify-center' : 'w-full justify-end';
|
|
20
|
-
|
|
21
17
|
export interface RecommendationCardProps extends CarouselRecommendationCardContent, UniBlockProps {}
|
|
22
18
|
|
|
23
19
|
export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
@@ -30,13 +26,14 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
30
26
|
socialMedia = [],
|
|
31
27
|
target,
|
|
32
28
|
title,
|
|
29
|
+
align = 'text-left',
|
|
33
30
|
version = 'primary',
|
|
34
31
|
...rest
|
|
35
32
|
}) => {
|
|
36
33
|
return (
|
|
37
34
|
<BlockWrapper
|
|
38
35
|
className={style(
|
|
39
|
-
'relative p-
|
|
36
|
+
'relative p-7 min-w-[524px] min-h-[218px] h-full box-border group-data-gray:bg-main-divider/50',
|
|
40
37
|
BORDER_STYLE,
|
|
41
38
|
className,
|
|
42
39
|
)}
|
|
@@ -44,42 +41,29 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
44
41
|
{...rest}
|
|
45
42
|
>
|
|
46
43
|
<LinkWrapper href={href} target={target}>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</Paragraph>
|
|
44
|
+
<Headline
|
|
45
|
+
className="mb-4"
|
|
46
|
+
title={title}
|
|
47
|
+
description={description}
|
|
48
|
+
headlineVersion="S"
|
|
49
|
+
isPadding={false}
|
|
50
|
+
align={align}
|
|
51
|
+
/>
|
|
52
|
+
<div className="w-1/2 h-full flex flex-col flex-1 justify-end">
|
|
53
|
+
{items.length ? (
|
|
54
|
+
<List className="flex flex-col gap-2" itemClassName="text-l-light" items={items} />
|
|
59
55
|
) : null}
|
|
56
|
+
{socialMedia.length ? <SocialMedia className="pt-10" media={socialMedia} /> : null}
|
|
60
57
|
</div>
|
|
61
|
-
|
|
62
|
-
<div
|
|
63
|
-
className={style(
|
|
64
|
-
'flex flex-col w-1/2',
|
|
65
|
-
items?.length ? 'justify-between' : 'justify-end',
|
|
66
|
-
)}
|
|
67
|
-
>
|
|
68
|
-
{items.length ? (
|
|
69
|
-
<List className="text-xl-light flex flex-col gap-2 mt-14" items={items} />
|
|
70
|
-
) : null}
|
|
71
|
-
{socialMedia.length ? <SocialMedia className="pb-0" media={socialMedia} /> : null}
|
|
72
|
-
</div>
|
|
73
|
-
{renderIconBlock(icon, items)}
|
|
74
|
-
</div>
|
|
58
|
+
{renderIconBlock(icon)}
|
|
75
59
|
</LinkWrapper>
|
|
76
60
|
</BlockWrapper>
|
|
77
61
|
);
|
|
78
62
|
},
|
|
79
63
|
);
|
|
80
64
|
|
|
81
|
-
const renderIconBlock = (icon: Picture | undefined
|
|
82
|
-
<div className=
|
|
65
|
+
const renderIconBlock = (icon: Picture | undefined) => (
|
|
66
|
+
<div className="absolute bottom-0 right-0">
|
|
83
67
|
{icon?.icon ? <Img image={getIconWithVersion(icon)} asSVG /> : null}
|
|
84
68
|
{icon?.src ? <Img image={icon} /> : null}
|
|
85
69
|
</div>
|
package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { LinkCommonProps } from '../../model/LinkProps';
|
|
|
5
5
|
import type { IconProps } from '../../model/Picture';
|
|
6
6
|
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
7
7
|
import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
8
|
+
import type { TextAlign } from '../../ui-kit/Text/TextProps';
|
|
8
9
|
|
|
9
10
|
export type RecommendationSocialMedia = LinkCommonProps &
|
|
10
11
|
IconProps &
|
|
@@ -23,4 +24,5 @@ export type CarouselRecommendationCardContent = UniBlockContent &
|
|
|
23
24
|
LinkCommonProps & {
|
|
24
25
|
/** @title Соц сети */
|
|
25
26
|
socialMedia?: RecommendationSocialMedia[];
|
|
27
|
+
align?: TextAlign;
|
|
26
28
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
2
2
|
import type { BulletsProps } from '../../model/Bullets';
|
|
3
3
|
import type { ButtonCommonIconProps } from '../../model/Button';
|
|
4
|
+
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
5
|
import type { DefaultListItemType } from '../../model/DefaultListItemType';
|
|
5
6
|
import type { DescriptionProps, HeadlineCommonProps, LabelProps } from '../../model/HeadlineType';
|
|
6
7
|
import type { UniBlockContent } from '../../model/JSXBlock';
|
|
@@ -33,8 +34,7 @@ export type Step = DefaultStep | RichTextStep;
|
|
|
33
34
|
* @title Блок шаги
|
|
34
35
|
*/
|
|
35
36
|
export type StepsBlockContent = UniBlockContent &
|
|
36
|
-
HeadlineCommonProps &
|
|
37
|
-
ButtonCommonIconProps & {
|
|
37
|
+
HeadlineCommonProps & {
|
|
38
38
|
/** @title Линии */
|
|
39
39
|
showLines?: boolean;
|
|
40
40
|
/**
|
|
@@ -43,7 +43,15 @@ export type StepsBlockContent = UniBlockContent &
|
|
|
43
43
|
* @maxItems 5
|
|
44
44
|
*/
|
|
45
45
|
steps?: Step[];
|
|
46
|
+
/**
|
|
47
|
+
* @title Тема шагов
|
|
48
|
+
*/
|
|
46
49
|
stepVersion?: BlockVersion;
|
|
47
50
|
/** @title Размер шагов */
|
|
48
51
|
size?: SizeVersion; // TODO: mobile content
|
|
52
|
+
/**
|
|
53
|
+
* @title Кнопки
|
|
54
|
+
* @maxItems 2
|
|
55
|
+
*/
|
|
56
|
+
buttons?: ButtonWithIconProps[];
|
|
49
57
|
};
|
|
@@ -7,8 +7,9 @@ export type StyleType = {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export const STEPS_BLOCK_STYLE: StyleType = {
|
|
10
|
-
description:
|
|
11
|
-
|
|
10
|
+
description:
|
|
11
|
+
'text-white/80 text-l-light group-data-primary:text-secondary-text group-data-gray:text-secondary-text',
|
|
12
|
+
iconText: 'text-white group-data-primary:text-secondary-text group-data-gray:text-secondary-text',
|
|
12
13
|
iconBackground: 'bg-white/30 group-data-primary:bg-main-divider',
|
|
13
14
|
iconConnector: 'bg-white group-data-primary:bg-secondary-light',
|
|
14
15
|
dot: 'bg-white/80 group-data-primary:bg-secondary-text',
|
package/package.json
CHANGED
package/src/components/Blocks.ts
CHANGED
|
@@ -42,7 +42,6 @@ import { ProductBlock } from './ProductBlock/ProductBlock';
|
|
|
42
42
|
import { ProductGallery } from './ProductGallery/ProductGallery';
|
|
43
43
|
import { ProductTile } from './ProductTile/ProductTile';
|
|
44
44
|
import { PromoTile } from './PromoTile/PromoTile';
|
|
45
|
-
import { Recommendation } from './Recommendation/Recommendation';
|
|
46
45
|
import { RichTextBlock } from './RichTextBlock/RichTextBlock';
|
|
47
46
|
import { RollupItem } from './RollupItem/RollupItem';
|
|
48
47
|
import { SafeDepositRental } from './SafeDepositRental/SafeDepositRental';
|
|
@@ -99,7 +98,6 @@ export const Blocks: BlocksRegistry = {
|
|
|
99
98
|
ProductGallery,
|
|
100
99
|
ProductTile,
|
|
101
100
|
PromoTile,
|
|
102
|
-
Recommendation,
|
|
103
101
|
RichTextBlock,
|
|
104
102
|
RollupItem,
|
|
105
103
|
SafeDepositRental,
|
|
@@ -8,7 +8,10 @@ import { CAROUSEL_EVENT_CARD } from '../CarouselEventCard/CarouselEventCard.fixt
|
|
|
8
8
|
import { INVESTMENT_CARD_WITH_SINGLE_COLUMN } from '../CarouselInvestmentCard/CarouselInvestmentCard.fixture';
|
|
9
9
|
import { PRODUCT_CARD } from '../CarouselProductCard/CarouselProductCard.fixture';
|
|
10
10
|
import { BUSINESS_CARD } from '../CarouselProgramsCard/CarouselProgramsCard.fixture';
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
CAROUSEL_RECOMMENDATION_CARD_SECONDARY,
|
|
13
|
+
CAROUSEL_RECOMMENDATION_CARD_WITHOUT_LIST,
|
|
14
|
+
} from '../CarouselRecommendationCard/CarouselRecommendationCard.fixture';
|
|
12
15
|
import { TARIFFS_CARD, TARIFFS_CARD_HIT } from '../CarouselTariffsCard/CarouselTariffsCard.fixture';
|
|
13
16
|
import { Carousel } from './Carousel';
|
|
14
17
|
|
|
@@ -165,7 +168,7 @@ export default {
|
|
|
165
168
|
className="col-span-12"
|
|
166
169
|
isBlur={false}
|
|
167
170
|
isCyclic={false}
|
|
168
|
-
visibleItemCount={
|
|
171
|
+
visibleItemCount={0}
|
|
169
172
|
block={{
|
|
170
173
|
type: 'Carousel',
|
|
171
174
|
blocks: new Array(6).fill({
|
|
@@ -178,6 +181,26 @@ export default {
|
|
|
178
181
|
/>
|
|
179
182
|
</div>
|
|
180
183
|
),
|
|
184
|
+
recommendationsSecondary: (
|
|
185
|
+
<div className="container grid grid-cols-12">
|
|
186
|
+
<Carousel
|
|
187
|
+
className="col-span-12"
|
|
188
|
+
isBlur={false}
|
|
189
|
+
isCyclic={false}
|
|
190
|
+
visibleItemCount={0}
|
|
191
|
+
block={{
|
|
192
|
+
type: 'Carousel',
|
|
193
|
+
blocks: new Array(6).fill({
|
|
194
|
+
type: 'CarouselRecommendationCard',
|
|
195
|
+
content: CAROUSEL_RECOMMENDATION_CARD_SECONDARY,
|
|
196
|
+
style: ['col-span-2'],
|
|
197
|
+
}),
|
|
198
|
+
}}
|
|
199
|
+
options={options}
|
|
200
|
+
/>
|
|
201
|
+
</div>
|
|
202
|
+
),
|
|
203
|
+
|
|
181
204
|
events: (
|
|
182
205
|
<div className="container grid grid-cols-12">
|
|
183
206
|
<Carousel
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Picture } from '../../model/Picture';
|
|
2
2
|
import '../../setup-fixture';
|
|
3
|
+
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
3
4
|
import { CarouselRecommendationCard } from './CarouselRecommendationCard';
|
|
4
5
|
import type {
|
|
5
6
|
CarouselRecommendationCardContent,
|
|
6
7
|
RecommendationSocialMedia,
|
|
7
8
|
} from './CarouselRecommendationCardContent';
|
|
8
|
-
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
9
9
|
|
|
10
10
|
const icon: Picture = {
|
|
11
11
|
src: 'product-basket.png',
|
|
@@ -92,6 +92,23 @@ export const CAROUSEL_RECOMMENDATION_CARD_WITHOUT_LIST: CarouselRecommendationCa
|
|
|
92
92
|
socialMedia: socialMediaWithoutText,
|
|
93
93
|
};
|
|
94
94
|
|
|
95
|
+
export const CAROUSEL_RECOMMENDATION_CARD_SECONDARY: CarouselRecommendationCardContent = {
|
|
96
|
+
title: 'Россельхозбанк',
|
|
97
|
+
description: 'Описание',
|
|
98
|
+
align: 'text-left',
|
|
99
|
+
icon: {
|
|
100
|
+
src: 'cow-card.png',
|
|
101
|
+
format: 'webp',
|
|
102
|
+
size: {
|
|
103
|
+
width: 290,
|
|
104
|
+
height: 290,
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
items: ['Свежие новости', 'Акции и предложенияа', 'Ставки и катировки'],
|
|
108
|
+
version: 'secondary',
|
|
109
|
+
socialMedia: socialMediaWithoutText,
|
|
110
|
+
};
|
|
111
|
+
|
|
95
112
|
export default {
|
|
96
113
|
default: (
|
|
97
114
|
<div className="container grid grid-cols-12 mb-1">
|
|
@@ -107,6 +124,16 @@ export default {
|
|
|
107
124
|
/>
|
|
108
125
|
</div>
|
|
109
126
|
),
|
|
127
|
+
secondaryCenter: (
|
|
128
|
+
<div className="container grid grid-cols-12 mb-1">
|
|
129
|
+
<CarouselRecommendationCard
|
|
130
|
+
className="col-span-12"
|
|
131
|
+
version="secondary"
|
|
132
|
+
align="text-center"
|
|
133
|
+
{...CAROUSEL_RECOMMENDATION_CARD_SECONDARY}
|
|
134
|
+
/>
|
|
135
|
+
</div>
|
|
136
|
+
),
|
|
110
137
|
gray: (
|
|
111
138
|
<div className="container grid grid-cols-12 mb-1">
|
|
112
139
|
<CarouselRecommendationCard
|
|
@@ -2,22 +2,18 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
2
2
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
3
3
|
import type { Picture } from '../../model/Picture';
|
|
4
4
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
5
|
-
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
6
5
|
import { Img } from '../../ui-kit/Img/Img';
|
|
7
6
|
import { LinkWrapper } from '../../ui-kit/LinkWrapper/LinkWrapper';
|
|
8
7
|
import { List } from '../../ui-kit/List/List';
|
|
9
|
-
import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
|
|
10
8
|
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
11
9
|
import { style } from '../../utils/style';
|
|
12
10
|
import { SocialMedia } from '../Footer/SocialMedia';
|
|
11
|
+
import { Headline } from '../Headline/Headline';
|
|
13
12
|
import type { CarouselRecommendationCardContent } from './CarouselRecommendationCardContent';
|
|
14
13
|
|
|
15
14
|
const BORDER_STYLE =
|
|
16
15
|
'border border-solid border-gray group-data-secondary:border-white/50 group-data-gray:border-main-divider';
|
|
17
16
|
|
|
18
|
-
const setAdditionalIconStyles = (items: string[]) =>
|
|
19
|
-
items.length ? 'w-1/2 flex-1 justify-center' : 'w-full justify-end';
|
|
20
|
-
|
|
21
17
|
export interface RecommendationCardProps extends CarouselRecommendationCardContent, UniBlockProps {}
|
|
22
18
|
|
|
23
19
|
export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
@@ -30,13 +26,14 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
30
26
|
socialMedia = [],
|
|
31
27
|
target,
|
|
32
28
|
title,
|
|
29
|
+
align = 'text-left',
|
|
33
30
|
version = 'primary',
|
|
34
31
|
...rest
|
|
35
32
|
}) => {
|
|
36
33
|
return (
|
|
37
34
|
<BlockWrapper
|
|
38
35
|
className={style(
|
|
39
|
-
'relative p-
|
|
36
|
+
'relative p-7 min-w-[524px] min-h-[218px] h-full box-border group-data-gray:bg-main-divider/50',
|
|
40
37
|
BORDER_STYLE,
|
|
41
38
|
className,
|
|
42
39
|
)}
|
|
@@ -44,42 +41,29 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
44
41
|
{...rest}
|
|
45
42
|
>
|
|
46
43
|
<LinkWrapper href={href} target={target}>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</Paragraph>
|
|
44
|
+
<Headline
|
|
45
|
+
className="mb-4"
|
|
46
|
+
title={title}
|
|
47
|
+
description={description}
|
|
48
|
+
headlineVersion="S"
|
|
49
|
+
isPadding={false}
|
|
50
|
+
align={align}
|
|
51
|
+
/>
|
|
52
|
+
<div className="w-1/2 h-full flex flex-col flex-1 justify-end">
|
|
53
|
+
{items.length ? (
|
|
54
|
+
<List className="flex flex-col gap-2" itemClassName="text-l-light" items={items} />
|
|
59
55
|
) : null}
|
|
56
|
+
{socialMedia.length ? <SocialMedia className="pt-10" media={socialMedia} /> : null}
|
|
60
57
|
</div>
|
|
61
|
-
|
|
62
|
-
<div
|
|
63
|
-
className={style(
|
|
64
|
-
'flex flex-col w-1/2',
|
|
65
|
-
items?.length ? 'justify-between' : 'justify-end',
|
|
66
|
-
)}
|
|
67
|
-
>
|
|
68
|
-
{items.length ? (
|
|
69
|
-
<List className="text-xl-light flex flex-col gap-2 mt-14" items={items} />
|
|
70
|
-
) : null}
|
|
71
|
-
{socialMedia.length ? <SocialMedia className="pb-0" media={socialMedia} /> : null}
|
|
72
|
-
</div>
|
|
73
|
-
{renderIconBlock(icon, items)}
|
|
74
|
-
</div>
|
|
58
|
+
{renderIconBlock(icon)}
|
|
75
59
|
</LinkWrapper>
|
|
76
60
|
</BlockWrapper>
|
|
77
61
|
);
|
|
78
62
|
},
|
|
79
63
|
);
|
|
80
64
|
|
|
81
|
-
const renderIconBlock = (icon: Picture | undefined
|
|
82
|
-
<div className=
|
|
65
|
+
const renderIconBlock = (icon: Picture | undefined) => (
|
|
66
|
+
<div className="absolute bottom-0 right-0">
|
|
83
67
|
{icon?.icon ? <Img image={getIconWithVersion(icon)} asSVG /> : null}
|
|
84
68
|
{icon?.src ? <Img image={icon} /> : null}
|
|
85
69
|
</div>
|
|
@@ -5,6 +5,7 @@ import type { LinkCommonProps } from '../../model/LinkProps';
|
|
|
5
5
|
import type { IconProps } from '../../model/Picture';
|
|
6
6
|
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
7
7
|
import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
8
|
+
import type { TextAlign } from '../../ui-kit/Text/TextProps';
|
|
8
9
|
|
|
9
10
|
export type RecommendationSocialMedia = LinkCommonProps &
|
|
10
11
|
IconProps &
|
|
@@ -23,4 +24,5 @@ export type CarouselRecommendationCardContent = UniBlockContent &
|
|
|
23
24
|
LinkCommonProps & {
|
|
24
25
|
/** @title Соц сети */
|
|
25
26
|
socialMedia?: RecommendationSocialMedia[];
|
|
27
|
+
align?: TextAlign;
|
|
26
28
|
};
|
|
@@ -83,11 +83,14 @@ const STEPS_WITH_BUTTON_PROPS: StepsBlockProps = {
|
|
|
83
83
|
...COMMON_PROPS,
|
|
84
84
|
steps: STEPS.map((step) => ({
|
|
85
85
|
...step,
|
|
86
|
-
button: { text: 'Оформить' },
|
|
87
86
|
})),
|
|
88
87
|
title: TITLE,
|
|
89
88
|
stepVersion: 'primary',
|
|
90
89
|
size: 'small',
|
|
90
|
+
buttons: [
|
|
91
|
+
{ text: 'Оформить', version: 'primary' },
|
|
92
|
+
{ text: 'Оформить', version: 'primary' },
|
|
93
|
+
],
|
|
91
94
|
};
|
|
92
95
|
|
|
93
96
|
export default {
|
|
@@ -108,13 +111,16 @@ export default {
|
|
|
108
111
|
showLines={false}
|
|
109
112
|
steps={STEPS_WITH_ICONS}
|
|
110
113
|
version="secondary"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
buttons={[
|
|
115
|
+
{
|
|
116
|
+
text: 'Отправить заявку',
|
|
117
|
+
href: 'https://www.rshb.ru/',
|
|
118
|
+
target: '_blank',
|
|
119
|
+
icon: { icon: 'ComfortableCompIcon' },
|
|
120
|
+
iconRight: { icon: 'ComfortableCompIcon' },
|
|
121
|
+
version: 'secondary',
|
|
122
|
+
},
|
|
123
|
+
]}
|
|
118
124
|
/>
|
|
119
125
|
</div>
|
|
120
126
|
),
|
|
@@ -25,7 +25,7 @@ export const StepsBlock = JSX<StepsBlockProps>(
|
|
|
25
25
|
className = '',
|
|
26
26
|
showLines = true,
|
|
27
27
|
steps = [],
|
|
28
|
-
|
|
28
|
+
buttons,
|
|
29
29
|
size = 'normal',
|
|
30
30
|
version = 'primary',
|
|
31
31
|
stepVersion = 'gray',
|
|
@@ -39,6 +39,8 @@ export const StepsBlock = JSX<StepsBlockProps>(
|
|
|
39
39
|
const lineOpacity = getLineOpacity(showLines);
|
|
40
40
|
const paddingX = getPaddingX(steps.length);
|
|
41
41
|
|
|
42
|
+
const isMainButton = Boolean(buttons?.every((b) => b?.text));
|
|
43
|
+
|
|
42
44
|
return (
|
|
43
45
|
<BlockWrapper
|
|
44
46
|
className={style(
|
|
@@ -66,11 +68,11 @@ export const StepsBlock = JSX<StepsBlockProps>(
|
|
|
66
68
|
shortGaps ? 'gap-x-3' : 'gap-x-[101px]',
|
|
67
69
|
)}
|
|
68
70
|
>
|
|
69
|
-
{steps.map(renderStep({ styleMap, isMainButton
|
|
71
|
+
{steps.map(renderStep({ styleMap, isMainButton, version }))}
|
|
70
72
|
</div>
|
|
71
73
|
</div>
|
|
72
74
|
) : null}
|
|
73
|
-
{
|
|
75
|
+
{renderButtonsSection(buttons, { className: 'mt-8' })}
|
|
74
76
|
</BlockWrapper>
|
|
75
77
|
);
|
|
76
78
|
},
|
|
@@ -80,6 +82,8 @@ const renderStepIcon =
|
|
|
80
82
|
(styleMap: StyleType, size: string, stepVersion: BlockVersion) =>
|
|
81
83
|
({ icon }: Step, i: number) => {
|
|
82
84
|
const styleStepIconSize = size === 'normal' ? 'h-[100px] w-[100px]' : 'h-[63px] w-[63px]';
|
|
85
|
+
const stepVersionIconTextStyles =
|
|
86
|
+
stepVersion === 'secondary' ? 'group-data-primary:text-white' : 'text-secondary-text';
|
|
83
87
|
|
|
84
88
|
return (
|
|
85
89
|
<BlockWrapper
|
|
@@ -90,7 +94,12 @@ const renderStepIcon =
|
|
|
90
94
|
{checkCanRenderIcon(icon) ? (
|
|
91
95
|
<Img image={getIconWithVersion(icon || {}, stepVersion)} width="48" height="48" asSVG />
|
|
92
96
|
) : (
|
|
93
|
-
<span
|
|
97
|
+
<span
|
|
98
|
+
className={style(
|
|
99
|
+
'text-h4',
|
|
100
|
+
stepVersion === 'transparent' ? styleMap.iconText : stepVersionIconTextStyles,
|
|
101
|
+
)}
|
|
102
|
+
>
|
|
94
103
|
{i + 1}
|
|
95
104
|
</span>
|
|
96
105
|
)}
|