@redneckz/wildless-cms-uni-blocks 0.3.59 → 0.3.61
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/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +34 -14
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/components/Blocks.d.ts +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/GroupBlock/GroupBlock.js +1 -1
- package/dist/components/GroupBlock/GroupBlock.js.map +1 -1
- package/dist/components/GroupBlock/GroupBlockTabs.js +4 -4
- package/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
- package/dist/components/Header/Header.js +2 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/HeaderContent.d.ts +9 -0
- package/dist/components/Insurance/Insurance.d.ts +5 -0
- package/dist/components/Insurance/Insurance.js +22 -0
- package/dist/components/Insurance/Insurance.js.map +1 -0
- package/dist/components/Insurance/InsuranceContent.d.ts +13 -0
- package/dist/components/Insurance/InsuranceContent.js +2 -0
- package/dist/components/Insurance/InsuranceContent.js.map +1 -0
- package/dist/ui-kit/Icon/Icon.js +1 -1
- package/dist/ui-kit/Icon/Icon.js.map +1 -1
- package/dist/ui-kit/Logo/Logo.d.ts +5 -0
- package/dist/ui-kit/Logo/Logo.js +7 -2
- package/dist/ui-kit/Logo/Logo.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Blocks.d.ts +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/GroupBlock/GroupBlock.js +1 -1
- package/lib/components/GroupBlock/GroupBlock.js.map +1 -1
- package/lib/components/GroupBlock/GroupBlockTabs.js +4 -4
- package/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderContent.d.ts +9 -0
- package/lib/components/Insurance/Insurance.d.ts +5 -0
- package/lib/components/Insurance/Insurance.fixture.d.ts +4 -0
- package/lib/components/Insurance/Insurance.js +20 -0
- package/lib/components/Insurance/Insurance.js.map +1 -0
- package/lib/components/Insurance/InsuranceContent.d.ts +13 -0
- package/lib/components/Insurance/InsuranceContent.js +2 -0
- package/lib/components/Insurance/InsuranceContent.js.map +1 -0
- package/lib/ui-kit/Icon/Icon.js +1 -1
- package/lib/ui-kit/Icon/Icon.js.map +1 -1
- package/lib/ui-kit/Logo/Logo.d.ts +5 -0
- package/lib/ui-kit/Logo/Logo.js +7 -2
- package/lib/ui-kit/Logo/Logo.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +1 -1
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/GroupBlock/GroupBlock.js +1 -1
- package/mobile/dist/components/GroupBlock/GroupBlock.js.map +1 -1
- package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +4 -4
- package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
- package/mobile/dist/components/Header/HeaderContent.d.ts +9 -0
- package/mobile/dist/components/Insurance/Insurance.d.ts +5 -0
- package/mobile/dist/components/Insurance/Insurance.js +22 -0
- package/mobile/dist/components/Insurance/Insurance.js.map +1 -0
- package/mobile/dist/components/Insurance/InsuranceContent.d.ts +13 -0
- package/mobile/dist/components/Insurance/InsuranceContent.js +2 -0
- package/mobile/dist/components/Insurance/InsuranceContent.js.map +1 -0
- package/mobile/dist/ui-kit/Icon/Icon.js +1 -1
- package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
- package/mobile/lib/components/GroupBlock/GroupBlock.js +1 -1
- package/mobile/lib/components/GroupBlock/GroupBlock.js.map +1 -1
- package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +4 -4
- package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
- package/mobile/lib/components/Header/HeaderContent.d.ts +9 -0
- package/mobile/lib/components/Insurance/Insurance.d.ts +5 -0
- package/mobile/lib/components/Insurance/Insurance.js +20 -0
- package/mobile/lib/components/Insurance/Insurance.js.map +1 -0
- package/mobile/lib/components/Insurance/InsuranceContent.d.ts +13 -0
- package/mobile/lib/components/Insurance/InsuranceContent.js +2 -0
- package/mobile/lib/components/Insurance/InsuranceContent.js.map +1 -0
- package/mobile/lib/ui-kit/Icon/Icon.js +1 -1
- package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
- package/mobile/src/components/ContentPage/ContentPage.page.json +39 -0
- package/mobile/src/components/GroupBlock/GroupBlock.tsx +1 -3
- package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +4 -4
- package/mobile/src/components/Header/Header.example.json +5 -1
- package/mobile/src/components/Header/HeaderContent.ts +9 -0
- package/mobile/src/components/Insurance/Insurance.tsx +68 -0
- package/mobile/src/components/Insurance/InsuranceContent.ts +14 -0
- package/mobile/src/components/Insurance/Insuranse.example.json +36 -0
- package/mobile/src/ui-kit/Icon/Icon.tsx +1 -1
- package/package.json +1 -1
- package/src/components/Blocks.ts +2 -0
- package/src/components/ContentPage/ContentPage.page.json +39 -0
- package/src/components/GroupBlock/GroupBlock.tsx +1 -3
- package/src/components/GroupBlock/GroupBlockTabs.tsx +4 -4
- package/src/components/Header/Header.example.json +5 -1
- package/src/components/Header/Header.tsx +2 -1
- package/src/components/Header/HeaderContent.ts +9 -0
- package/src/components/Insurance/Insurance.fixture.tsx +65 -0
- package/src/components/Insurance/Insurance.tsx +68 -0
- package/src/components/Insurance/InsuranceContent.ts +14 -0
- package/src/components/Insurance/Insuranse.example.json +36 -0
- package/src/ui-kit/Icon/Icon.tsx +1 -1
- package/src/ui-kit/Logo/Logo.tsx +31 -12
|
@@ -2,15 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
export const GroupBlockTabs = JSX((props) => {
|
|
4
4
|
const { tabs, currentTag, onTabClick, className = '', isShowCounter = true } = props;
|
|
5
|
-
return (_jsx("div", { className: `mb-2 box-border flex gap-x-1
|
|
5
|
+
return (_jsx("div", { className: `mb-2 box-border flex gap-x-1 ${className}`, role: "tablist", children: tabs?.map(renderTab(onTabClick, isShowCounter, currentTag)) }));
|
|
6
6
|
});
|
|
7
|
-
const badgeStyle = 'w-[22px] h-[22px] rounded-full text-m-sm';
|
|
7
|
+
const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-m-sm';
|
|
8
8
|
const renderTab = (onTabClick, isShowCounter, currentTag) => (tab, i) => {
|
|
9
9
|
const isActive = currentTag === tab.tag;
|
|
10
10
|
const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
|
|
11
11
|
const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
|
|
12
12
|
const counterBlockStyle = `${badgeStyle}
|
|
13
|
-
${isActive ? 'bg-white/30 text-white' : 'bg-secondary-
|
|
14
|
-
return (_jsx("div", { className: `flex h-full w-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: _jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? _jsx("h3", { className: `mr-8 ${tabText}`, children: tab?.title }) : null, isShowCounter ? (_jsx("div", { className: `flex items-center justify-center ${counterBlockStyle}`, children: _jsx("span", { children: tab.count }) })) : null] }) }, String(i)));
|
|
13
|
+
${isActive ? 'bg-white/30 text-white' : 'bg-secondary-light text-secondary-text'}`;
|
|
14
|
+
return (_jsx("div", { className: `flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: _jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? _jsx("h3", { className: `mr-8 ${tabText}`, children: tab?.title }) : null, isShowCounter ? (_jsx("div", { className: `flex items-center justify-center ${counterBlockStyle}`, children: _jsx("span", { children: tab.count }) })) : null] }) }, String(i)));
|
|
15
15
|
};
|
|
16
16
|
//# sourceMappingURL=GroupBlockTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupBlockTabs.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlockTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAaxC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAsB,CAAC,KAAK,EAAE,EAAE;IAC/D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAErF,OAAO,CACL,cAAK,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"GroupBlockTabs.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlockTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAaxC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAsB,CAAC,KAAK,EAAE,EAAE;IAC/D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAErF,OAAO,CACL,cAAK,SAAS,EAAE,gCAAgC,SAAS,EAAE,EAAE,IAAI,EAAC,SAAS,YACxE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GACxD,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,uDAAuD,CAAC;AAE3E,MAAM,SAAS,GACb,CAAC,UAA2B,EAAE,aAAsB,EAAE,UAAmB,EAAE,EAAE,CAC7E,CAAC,GAAkB,EAAE,CAAS,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mDAAmD,CAAC;IAC9F,MAAM,iBAAiB,GAAG,GAAG,UAAU;QACnC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,wCAAwC,EAAE,CAAC;IAErF,OAAO,CACL,cAEE,SAAS,EAAE,4EAA4E,KAAK,EAAE,EAC9F,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,mBACnB,MAAM,CAAC,QAAQ,CAAC,EAC/B,GAAG,EAAE,GAAG,EAAE,GAAG,YAEb,eAAK,SAAS,EAAC,yCAAyC,aACrD,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,aAAI,SAAS,EAAE,QAAQ,OAAO,EAAE,YAAG,GAAG,EAAE,KAAK,GAAM,CAAC,CAAC,CAAC,IAAI,EACvE,aAAa,CAAC,CAAC,CAAC,CACf,cAAK,SAAS,EAAE,oCAAoC,iBAAiB,EAAE,YACrE,yBAAO,GAAG,CAAC,KAAK,GAAQ,GACpB,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,IAdD,MAAM,CAAC,CAAC,CAAC,CAeV,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -21,6 +21,15 @@ export interface DispositionItem extends LinkProps {
|
|
|
21
21
|
* @required ["defaultLocation", "topItems"]
|
|
22
22
|
*/
|
|
23
23
|
export interface HeaderContent extends SitemapProps {
|
|
24
|
+
/** @title Логотип */
|
|
25
|
+
logo?: {
|
|
26
|
+
/** @title Иконка логотипа */
|
|
27
|
+
image?: Picture;
|
|
28
|
+
/**
|
|
29
|
+
* @title Текст логотипа
|
|
30
|
+
*/
|
|
31
|
+
title?: string;
|
|
32
|
+
};
|
|
24
33
|
/**
|
|
25
34
|
* @title Город по-умолчанию
|
|
26
35
|
* @default Москва
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { UniBlockProps } from '../../types';
|
|
2
|
+
import type { InsuranceContent } from './InsuranceContent';
|
|
3
|
+
export interface InsuranceProps extends InsuranceContent, UniBlockProps {
|
|
4
|
+
}
|
|
5
|
+
export declare const Insurance: (props: import("@redneckz/uni-jsx").PropsWithChildren<InsuranceProps, any>, context?: any) => any;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { Heading } from '../../ui-kit/Heading/Heading.js';
|
|
4
|
+
import { Img } from '../../ui-kit/Img/Img.js';
|
|
5
|
+
import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers.js';
|
|
6
|
+
export const Insurance = JSX(({ className = '', title, description, image, benefits, insuranceSum, monthLimit }) => {
|
|
7
|
+
return (_jsxs("section", { className: `px-[100px] py-[50px] bg-white text-primary-text ${className}`, children: [title ? _jsx(Heading, { headingType: "h3", title: title, className: "text-center" }) : null, description ? _jsx("div", { className: "text-center text-md mt-3", children: description }) : null, _jsx("div", { children: _jsxs("div", { className: "mt-5 mx-auto flex justify-center gap-[120px] mt-[30px]", children: [image?.src ? _jsx(Img, { image: image }) : null, _jsxs("div", { className: "w-[558px] m-auto", children: [benefits ? (_jsx("div", { className: "flex flex-col gap-4", children: benefits.map(renderBenefit) })) : null, _jsxs("div", { className: "bg-secondary-light h-15 flex mt-7 gap-6 px-5 py-4", children: [insuranceSum
|
|
8
|
+
? renderValueBlock('Страховая сумма:', insuranceSum, Boolean(monthLimit))
|
|
9
|
+
: null, monthLimit
|
|
10
|
+
? renderValueBlock('Ежемесячный лимит:', monthLimit, Boolean(insuranceSum))
|
|
11
|
+
: null] })] })] }) })] }));
|
|
12
|
+
});
|
|
13
|
+
function renderBenefit(benefit, i) {
|
|
14
|
+
return (_jsxs("div", { className: "flex items-center gap-5", children: [benefit?.icon ? (_jsx(Img, { className: "w-[50px] h-[50px] min-w-[50px] p-3 rounded-full bg-secondary-light", image: benefit.icon, width: "24", height: "24", asSVG: true })) : null, _jsx("div", { className: "flex", children: _jsx("div", { className: "text-title-2xs", children: benefit.label }) })] }, String(i)));
|
|
15
|
+
}
|
|
16
|
+
function renderValueBlock(title, sum, isAnotherBlock) {
|
|
17
|
+
const widthStyle = isAnotherBlock ? 'w-fit' : 'w-full';
|
|
18
|
+
return (_jsxs("div", { className: `flex justify-between items-center gap-2 w-full ${widthStyle}`, children: [_jsx("span", { className: "text-secondary-text text-base", children: title }), _jsxs("span", { className: "text-primary-main text-title-2xs", children: [addSpacesBetweenNumbers(sum), " \u20BD"] })] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Insurance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Insurance.js","sourceRoot":"","sources":["../../../src/components/Insurance/Insurance.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIxC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAC1B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE;IACpF,OAAO,CACL,mBAAS,SAAS,EAAE,mDAAmD,SAAS,EAAE,aAC/E,KAAK,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,WAAW,EAAC,IAAI,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,EACjF,WAAW,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,0BAA0B,YAAE,WAAW,GAAO,CAAC,CAAC,CAAC,IAAI,EACnF,wBACE,eAAK,SAAS,EAAC,wDAAwD,aACpE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC1C,eAAK,SAAS,EAAC,kBAAkB,aAC9B,QAAQ,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAC,qBAAqB,YAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,GAAO,CACzE,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,mDAAmD,aAC/D,YAAY;4CACX,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;4CACzE,CAAC,CAAC,IAAI,EACP,UAAU;4CACT,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;4CAC3E,CAAC,CAAC,IAAI,IACJ,IACF,IACF,GACF,IACE,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,aAAa,CAAC,OAAgB,EAAE,CAAS;IAChD,OAAO,CACL,eAAqB,SAAS,EAAC,yBAAyB,aACrD,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CACf,KAAC,GAAG,IACF,SAAS,EAAC,oEAAoE,EAC9E,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,KAAK,SACL,CACH,CAAC,CAAC,CAAC,IAAI,EACR,cAAK,SAAS,EAAC,MAAM,YACnB,cAAK,SAAS,EAAC,gBAAgB,YAAE,OAAO,CAAC,KAAK,GAAO,GACjD,KAZE,MAAM,CAAC,CAAC,CAAC,CAab,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc;IAClD,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvD,OAAO,CACL,eAAK,SAAS,EAAE,kDAAkD,UAAU,EAAE,aAC5E,eAAM,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAQ,EAC9D,gBAAM,SAAS,EAAC,kCAAkC,aAAE,uBAAuB,CAAC,GAAG,CAAC,eAAU,IACtF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Picture } from '../../model/Picture';
|
|
2
|
+
import type { BenefitsBlockContent } from '../BenefitsBlock/BenefitsBlockContent';
|
|
3
|
+
export declare type InsuranceContent = BenefitsBlockContent & {
|
|
4
|
+
/** @title Заголовок */
|
|
5
|
+
title?: string;
|
|
6
|
+
/** @title Описание */
|
|
7
|
+
description?: string;
|
|
8
|
+
/** @title Ежемесячный лимит */
|
|
9
|
+
monthLimit?: number;
|
|
10
|
+
/** @title Страховая сумма */
|
|
11
|
+
insuranceSum?: number;
|
|
12
|
+
image?: Picture;
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsuranceContent.js","sourceRoot":"","sources":["../../../src/components/Insurance/InsuranceContent.ts"],"names":[],"mappings":""}
|
|
@@ -4,7 +4,7 @@ import { IconTitleMap } from '../../icons/IconName.js';
|
|
|
4
4
|
import { projectSettings } from '../../ProjectSettings.js';
|
|
5
5
|
export const Icon = JSX(({ className = '', name = '', alt = `Иконка ${IconTitleMap[name] || name}`, title = alt, iconVersion, asSVG, ...imgProps }) => {
|
|
6
6
|
const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
|
|
7
|
-
const svgUseStyle = iconVersion === 'white' ? 'text-black invert' : '';
|
|
7
|
+
const svgUseStyle = iconVersion === 'white' ? 'text-black invert' : 'text-primary-main';
|
|
8
8
|
if (asSVG) {
|
|
9
9
|
return (_jsxs("svg", { className: className, ...imgProps, "aria-hidden": "true", children: [title ? _jsx("title", { children: title }) : null, alt ? _jsx("desc", { children: alt }) : null, _jsx("use", { className: svgUseStyle, href: `${href}#icon`, xlinkHref: `${href}#icon` })] }));
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/ui-kit/Icon/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EACC,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,EAAE,EACT,GAAG,GAAG,UAAU,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAC5C,KAAK,GAAG,GAAG,EACX,WAAW,EACX,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC;IAC7D,MAAM,WAAW,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/ui-kit/Icon/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EACC,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,EAAE,EACT,GAAG,GAAG,UAAU,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAC5C,KAAK,GAAG,GAAG,EACX,WAAW,EACX,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC;IAC7D,MAAM,WAAW,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAExF,IAAI,KAAK,EAAE;QACT,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,KAAM,QAAQ,iBAAc,MAAM,aACxD,KAAK,CAAC,CAAC,CAAC,0BAAQ,KAAK,GAAS,CAAC,CAAC,CAAC,IAAI,EACrC,GAAG,CAAC,CAAC,CAAC,yBAAO,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChC,cAAK,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,OAAO,GAAI,IAC5E,CACP,CAAC;KACH;IAED,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,KACR,QAAQ,iBACA,MAAM,GAClB,CACH,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -2149,6 +2149,45 @@
|
|
|
2149
2149
|
]
|
|
2150
2150
|
}
|
|
2151
2151
|
},
|
|
2152
|
+
{
|
|
2153
|
+
"type": "Insurance",
|
|
2154
|
+
"style": ["col-span-12"],
|
|
2155
|
+
"content": {
|
|
2156
|
+
"title": "Страховые риски и продукты",
|
|
2157
|
+
"description": "Описание",
|
|
2158
|
+
"insuranceSum": 500000,
|
|
2159
|
+
"image": {
|
|
2160
|
+
"src": "insurance.png",
|
|
2161
|
+
"title": "страхование",
|
|
2162
|
+
"format": "webp",
|
|
2163
|
+
"alt": "Страховые риски и продукты",
|
|
2164
|
+
"size": {
|
|
2165
|
+
"width": 400,
|
|
2166
|
+
"height": 300
|
|
2167
|
+
},
|
|
2168
|
+
"sources": [
|
|
2169
|
+
{
|
|
2170
|
+
"src": "insurance.png 1x, insurance-2x.png 2x",
|
|
2171
|
+
"format": "png"
|
|
2172
|
+
}
|
|
2173
|
+
]
|
|
2174
|
+
},
|
|
2175
|
+
"benefits": [
|
|
2176
|
+
{
|
|
2177
|
+
"label": "Ликвидация организации",
|
|
2178
|
+
"icon": {
|
|
2179
|
+
"icon": "ShieldTickIcon"
|
|
2180
|
+
}
|
|
2181
|
+
},
|
|
2182
|
+
{
|
|
2183
|
+
"label": "Сокращение численности работников организации",
|
|
2184
|
+
"icon": {
|
|
2185
|
+
"icon": "ShieldTickIcon"
|
|
2186
|
+
}
|
|
2187
|
+
}
|
|
2188
|
+
]
|
|
2189
|
+
}
|
|
2190
|
+
},
|
|
2152
2191
|
{
|
|
2153
2192
|
"type": "Footer",
|
|
2154
2193
|
"style": ["col-span-12"],
|
|
@@ -33,9 +33,7 @@ export const GroupBlock = JSX<GroupBlockProps>(
|
|
|
33
33
|
<GroupBlockTabs currentTag={currentTag} onTabClick={setCurrentTag} tabs={tabsNewMap} />
|
|
34
34
|
) : null}
|
|
35
35
|
{groupBlocks.length ? (
|
|
36
|
-
<
|
|
37
|
-
<GroupBlocksItem context={context} groupBlocks={filteredBlocks} />
|
|
38
|
-
</div>
|
|
36
|
+
<GroupBlocksItem context={context} groupBlocks={filteredBlocks} />
|
|
39
37
|
) : null}
|
|
40
38
|
</section>
|
|
41
39
|
);
|
|
@@ -15,13 +15,13 @@ export const GroupBlockTabs = JSX<GroupBlockTabsProps>((props) => {
|
|
|
15
15
|
const { tabs, currentTag, onTabClick, className = '', isShowCounter = true } = props;
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
|
-
<div className={`mb-2 box-border flex gap-x-1
|
|
18
|
+
<div className={`mb-2 box-border flex gap-x-1 ${className}`} role="tablist">
|
|
19
19
|
{tabs?.map(renderTab(onTabClick, isShowCounter, currentTag))}
|
|
20
20
|
</div>
|
|
21
21
|
);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
const badgeStyle = 'w-[22px] h-[22px] rounded-full text-m-sm';
|
|
24
|
+
const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-m-sm';
|
|
25
25
|
|
|
26
26
|
const renderTab =
|
|
27
27
|
(onTabClick: TabClickHandler, isShowCounter: boolean, currentTag?: string) =>
|
|
@@ -30,12 +30,12 @@ const renderTab =
|
|
|
30
30
|
const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
|
|
31
31
|
const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
|
|
32
32
|
const counterBlockStyle = `${badgeStyle}
|
|
33
|
-
${isActive ? 'bg-white/30 text-white' : 'bg-secondary-
|
|
33
|
+
${isActive ? 'bg-white/30 text-white' : 'bg-secondary-light text-secondary-text'}`;
|
|
34
34
|
|
|
35
35
|
return (
|
|
36
36
|
<div
|
|
37
37
|
key={String(i)}
|
|
38
|
-
className={`flex h-full w-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`}
|
|
38
|
+
className={`flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`}
|
|
39
39
|
role="tab"
|
|
40
40
|
onClick={() => onTabClick(tab.tag)}
|
|
41
41
|
aria-selected={String(isActive)}
|
|
@@ -24,6 +24,15 @@ export interface DispositionItem extends LinkProps {
|
|
|
24
24
|
* @required ["defaultLocation", "topItems"]
|
|
25
25
|
*/
|
|
26
26
|
export interface HeaderContent extends SitemapProps {
|
|
27
|
+
/** @title Логотип */
|
|
28
|
+
logo?: {
|
|
29
|
+
/** @title Иконка логотипа */
|
|
30
|
+
image?: Picture;
|
|
31
|
+
/**
|
|
32
|
+
* @title Текст логотипа
|
|
33
|
+
*/
|
|
34
|
+
title?: string;
|
|
35
|
+
};
|
|
27
36
|
/**
|
|
28
37
|
* @title Город по-умолчанию
|
|
29
38
|
* @default Москва
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { UniBlockProps } from '../../types';
|
|
3
|
+
import type { InsuranceContent } from './InsuranceContent';
|
|
4
|
+
import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
5
|
+
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
6
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
7
|
+
import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers';
|
|
8
|
+
|
|
9
|
+
export interface InsuranceProps extends InsuranceContent, UniBlockProps {}
|
|
10
|
+
|
|
11
|
+
export const Insurance = JSX<InsuranceProps>(
|
|
12
|
+
({ className = '', title, description, image, benefits, insuranceSum, monthLimit }) => {
|
|
13
|
+
return (
|
|
14
|
+
<section className={`px-[100px] py-[50px] bg-white text-primary-text ${className}`}>
|
|
15
|
+
{title ? <Heading headingType="h3" title={title} className="text-center" /> : null}
|
|
16
|
+
{description ? <div className="text-center text-md mt-3">{description}</div> : null}
|
|
17
|
+
<div>
|
|
18
|
+
<div className="mt-5 mx-auto flex justify-center gap-[120px] mt-[30px]">
|
|
19
|
+
{image?.src ? <Img image={image} /> : null}
|
|
20
|
+
<div className="w-[558px] m-auto">
|
|
21
|
+
{benefits ? (
|
|
22
|
+
<div className="flex flex-col gap-4">{benefits.map(renderBenefit)}</div>
|
|
23
|
+
) : null}
|
|
24
|
+
|
|
25
|
+
<div className="bg-secondary-light h-15 flex mt-7 gap-6 px-5 py-4">
|
|
26
|
+
{insuranceSum
|
|
27
|
+
? renderValueBlock('Страховая сумма:', insuranceSum, Boolean(monthLimit))
|
|
28
|
+
: null}
|
|
29
|
+
{monthLimit
|
|
30
|
+
? renderValueBlock('Ежемесячный лимит:', monthLimit, Boolean(insuranceSum))
|
|
31
|
+
: null}
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</section>
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
function renderBenefit(benefit: Benefit, i: number) {
|
|
42
|
+
return (
|
|
43
|
+
<div key={String(i)} className="flex items-center gap-5">
|
|
44
|
+
{benefit?.icon ? (
|
|
45
|
+
<Img
|
|
46
|
+
className="w-[50px] h-[50px] min-w-[50px] p-3 rounded-full bg-secondary-light"
|
|
47
|
+
image={benefit.icon}
|
|
48
|
+
width="24"
|
|
49
|
+
height="24"
|
|
50
|
+
asSVG
|
|
51
|
+
/>
|
|
52
|
+
) : null}
|
|
53
|
+
<div className="flex">
|
|
54
|
+
<div className="text-title-2xs">{benefit.label}</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function renderValueBlock(title, sum, isAnotherBlock) {
|
|
61
|
+
const widthStyle = isAnotherBlock ? 'w-fit' : 'w-full';
|
|
62
|
+
return (
|
|
63
|
+
<div className={`flex justify-between items-center gap-2 w-full ${widthStyle}`}>
|
|
64
|
+
<span className="text-secondary-text text-base">{title}</span>
|
|
65
|
+
<span className="text-primary-main text-title-2xs">{addSpacesBetweenNumbers(sum)} ₽</span>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Picture } from '../../model/Picture';
|
|
2
|
+
import type { BenefitsBlockContent } from '../BenefitsBlock/BenefitsBlockContent';
|
|
3
|
+
|
|
4
|
+
export type InsuranceContent = BenefitsBlockContent & {
|
|
5
|
+
/** @title Заголовок */
|
|
6
|
+
title?: string;
|
|
7
|
+
/** @title Описание */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** @title Ежемесячный лимит */
|
|
10
|
+
monthLimit?: number;
|
|
11
|
+
/** @title Страховая сумма */
|
|
12
|
+
insuranceSum?: number;
|
|
13
|
+
image?: Picture;
|
|
14
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Страховые риски и продукты",
|
|
3
|
+
"description": "Описание",
|
|
4
|
+
"insurance": 500000,
|
|
5
|
+
"limit": null,
|
|
6
|
+
"image": {
|
|
7
|
+
"src": "insurance.png",
|
|
8
|
+
"title": "страхование",
|
|
9
|
+
"format": "webp",
|
|
10
|
+
"alt": "страхование",
|
|
11
|
+
"size": {
|
|
12
|
+
"width": 400,
|
|
13
|
+
"height": 300
|
|
14
|
+
},
|
|
15
|
+
"sources": [
|
|
16
|
+
{
|
|
17
|
+
"src": "insurance.png 1x, insurance-2x.png 2x",
|
|
18
|
+
"format": "png"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"benefits": [
|
|
23
|
+
{
|
|
24
|
+
"label": "Пункт 1",
|
|
25
|
+
"icon": {
|
|
26
|
+
"icon": "ShieldTickIcon"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"label": "Пункт 2",
|
|
31
|
+
"icon": {
|
|
32
|
+
"icon": "ShieldTickIcon"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -14,7 +14,7 @@ export const Icon = JSX<IconProps>(
|
|
|
14
14
|
...imgProps
|
|
15
15
|
}) => {
|
|
16
16
|
const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
|
|
17
|
-
const svgUseStyle = iconVersion === 'white' ? 'text-black invert' : '';
|
|
17
|
+
const svgUseStyle = iconVersion === 'white' ? 'text-black invert' : 'text-primary-main';
|
|
18
18
|
|
|
19
19
|
if (asSVG) {
|
|
20
20
|
return (
|
package/package.json
CHANGED
package/src/components/Blocks.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { Gallery } from './Gallery/Gallery';
|
|
|
10
10
|
import { GracePeriod } from './GracePeriod/GracePeriod';
|
|
11
11
|
import { Header } from './Header/Header';
|
|
12
12
|
import { Headline } from './Headline/Headline';
|
|
13
|
+
import { Insurance } from './Insurance/Insurance';
|
|
13
14
|
import { LinkDocs } from './LinkDocs/LinkDocs';
|
|
14
15
|
import { MiniGallery } from './MiniGallery/MiniGallery';
|
|
15
16
|
import { MobileAppTile } from './MobileAppTile/MobileAppTile';
|
|
@@ -42,6 +43,7 @@ export const Blocks = {
|
|
|
42
43
|
GracePeriod,
|
|
43
44
|
Header,
|
|
44
45
|
Headline,
|
|
46
|
+
Insurance,
|
|
45
47
|
LinkDocs,
|
|
46
48
|
MiniGallery,
|
|
47
49
|
MobileAppTile,
|
|
@@ -2149,6 +2149,45 @@
|
|
|
2149
2149
|
]
|
|
2150
2150
|
}
|
|
2151
2151
|
},
|
|
2152
|
+
{
|
|
2153
|
+
"type": "Insurance",
|
|
2154
|
+
"style": ["col-span-12"],
|
|
2155
|
+
"content": {
|
|
2156
|
+
"title": "Страховые риски и продукты",
|
|
2157
|
+
"description": "Описание",
|
|
2158
|
+
"insuranceSum": 500000,
|
|
2159
|
+
"image": {
|
|
2160
|
+
"src": "insurance.png",
|
|
2161
|
+
"title": "страхование",
|
|
2162
|
+
"format": "webp",
|
|
2163
|
+
"alt": "Страховые риски и продукты",
|
|
2164
|
+
"size": {
|
|
2165
|
+
"width": 400,
|
|
2166
|
+
"height": 300
|
|
2167
|
+
},
|
|
2168
|
+
"sources": [
|
|
2169
|
+
{
|
|
2170
|
+
"src": "insurance.png 1x, insurance-2x.png 2x",
|
|
2171
|
+
"format": "png"
|
|
2172
|
+
}
|
|
2173
|
+
]
|
|
2174
|
+
},
|
|
2175
|
+
"benefits": [
|
|
2176
|
+
{
|
|
2177
|
+
"label": "Ликвидация организации",
|
|
2178
|
+
"icon": {
|
|
2179
|
+
"icon": "ShieldTickIcon"
|
|
2180
|
+
}
|
|
2181
|
+
},
|
|
2182
|
+
{
|
|
2183
|
+
"label": "Сокращение численности работников организации",
|
|
2184
|
+
"icon": {
|
|
2185
|
+
"icon": "ShieldTickIcon"
|
|
2186
|
+
}
|
|
2187
|
+
}
|
|
2188
|
+
]
|
|
2189
|
+
}
|
|
2190
|
+
},
|
|
2152
2191
|
{
|
|
2153
2192
|
"type": "Footer",
|
|
2154
2193
|
"style": ["col-span-12"],
|
|
@@ -33,9 +33,7 @@ export const GroupBlock = JSX<GroupBlockProps>(
|
|
|
33
33
|
<GroupBlockTabs currentTag={currentTag} onTabClick={setCurrentTag} tabs={tabsNewMap} />
|
|
34
34
|
) : null}
|
|
35
35
|
{groupBlocks.length ? (
|
|
36
|
-
<
|
|
37
|
-
<GroupBlocksItem context={context} groupBlocks={filteredBlocks} />
|
|
38
|
-
</div>
|
|
36
|
+
<GroupBlocksItem context={context} groupBlocks={filteredBlocks} />
|
|
39
37
|
) : null}
|
|
40
38
|
</section>
|
|
41
39
|
);
|
|
@@ -15,13 +15,13 @@ export const GroupBlockTabs = JSX<GroupBlockTabsProps>((props) => {
|
|
|
15
15
|
const { tabs, currentTag, onTabClick, className = '', isShowCounter = true } = props;
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
|
-
<div className={`mb-2 box-border flex gap-x-1
|
|
18
|
+
<div className={`mb-2 box-border flex gap-x-1 ${className}`} role="tablist">
|
|
19
19
|
{tabs?.map(renderTab(onTabClick, isShowCounter, currentTag))}
|
|
20
20
|
</div>
|
|
21
21
|
);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
const badgeStyle = 'w-[22px] h-[22px] rounded-full text-m-sm';
|
|
24
|
+
const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-m-sm';
|
|
25
25
|
|
|
26
26
|
const renderTab =
|
|
27
27
|
(onTabClick: TabClickHandler, isShowCounter: boolean, currentTag?: string) =>
|
|
@@ -30,12 +30,12 @@ const renderTab =
|
|
|
30
30
|
const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
|
|
31
31
|
const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
|
|
32
32
|
const counterBlockStyle = `${badgeStyle}
|
|
33
|
-
${isActive ? 'bg-white/30 text-white' : 'bg-secondary-
|
|
33
|
+
${isActive ? 'bg-white/30 text-white' : 'bg-secondary-light text-secondary-text'}`;
|
|
34
34
|
|
|
35
35
|
return (
|
|
36
36
|
<div
|
|
37
37
|
key={String(i)}
|
|
38
|
-
className={`flex h-full w-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`}
|
|
38
|
+
className={`flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`}
|
|
39
39
|
role="tab"
|
|
40
40
|
onClick={() => onTabClick(tab.tag)}
|
|
41
41
|
aria-selected={String(isActive)}
|
|
@@ -27,6 +27,7 @@ export const Header = JSX<HeaderProps>(
|
|
|
27
27
|
context,
|
|
28
28
|
topItems,
|
|
29
29
|
anchor = null,
|
|
30
|
+
logo,
|
|
30
31
|
}) => {
|
|
31
32
|
const router = context.useRouter();
|
|
32
33
|
const sitemap = useSitemap(context.useAsyncData);
|
|
@@ -49,7 +50,7 @@ export const Header = JSX<HeaderProps>(
|
|
|
49
50
|
<header className={`pt-6 pb-8 px-20 ${bgColor} ${className}`} id={anchor}>
|
|
50
51
|
<div className="container">
|
|
51
52
|
<div className="flex items-center">
|
|
52
|
-
<Logo className="mr-8" bgColor={bgColor} />
|
|
53
|
+
<Logo className="mr-8" bgColor={bgColor} logo={logo} />
|
|
53
54
|
{topMenu}
|
|
54
55
|
<HeaderSecondaryMenu
|
|
55
56
|
context={context}
|
|
@@ -24,6 +24,15 @@ export interface DispositionItem extends LinkProps {
|
|
|
24
24
|
* @required ["defaultLocation", "topItems"]
|
|
25
25
|
*/
|
|
26
26
|
export interface HeaderContent extends SitemapProps {
|
|
27
|
+
/** @title Логотип */
|
|
28
|
+
logo?: {
|
|
29
|
+
/** @title Иконка логотипа */
|
|
30
|
+
image?: Picture;
|
|
31
|
+
/**
|
|
32
|
+
* @title Текст логотипа
|
|
33
|
+
*/
|
|
34
|
+
title?: string;
|
|
35
|
+
};
|
|
27
36
|
/**
|
|
28
37
|
* @title Город по-умолчанию
|
|
29
38
|
* @default Москва
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Insurance } from './Insurance';
|
|
2
|
+
import { context } from '../../setup-fixture';
|
|
3
|
+
import { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
4
|
+
import { Picture } from '../../model/Picture';
|
|
5
|
+
|
|
6
|
+
const benefits: Benefit[] = [
|
|
7
|
+
{
|
|
8
|
+
label: 'Телесное повреждение',
|
|
9
|
+
icon: { icon: 'ShieldTickIcon' },
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
label: 'Госпитализация застрахованного',
|
|
13
|
+
icon: { icon: 'ShieldTickIcon' },
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
label: 'Сокращение численности работников организации',
|
|
17
|
+
icon: { icon: 'ShieldTickIcon' },
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
label: 'Смерть застрахованного',
|
|
21
|
+
icon: { icon: 'ShieldTickIcon' },
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
const image: Picture = {
|
|
26
|
+
src: 'insurance.png',
|
|
27
|
+
format: 'webp',
|
|
28
|
+
alt: 'Страховые риски и продукты',
|
|
29
|
+
size: {
|
|
30
|
+
width: 400,
|
|
31
|
+
height: 300,
|
|
32
|
+
},
|
|
33
|
+
sources: [
|
|
34
|
+
{
|
|
35
|
+
src: 'insurance.png 1x, insurance-2x.png 2x',
|
|
36
|
+
format: 'png',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default {
|
|
42
|
+
default: (
|
|
43
|
+
<div className="container grid grid-cols-12">
|
|
44
|
+
<Insurance
|
|
45
|
+
context={context}
|
|
46
|
+
className="col-span-12"
|
|
47
|
+
title="Страховые риски и продукты"
|
|
48
|
+
description="Покрываемые риски программы «Защита вас и ваших близких»"
|
|
49
|
+
benefits={benefits}
|
|
50
|
+
image={image}
|
|
51
|
+
insuranceSum={500000}
|
|
52
|
+
/>
|
|
53
|
+
<Insurance
|
|
54
|
+
context={context}
|
|
55
|
+
className="col-span-12"
|
|
56
|
+
title="Страховые риски и продукты"
|
|
57
|
+
description="Покрываемые риски программы «Защита вас и ваших близких»"
|
|
58
|
+
benefits={benefits}
|
|
59
|
+
image={image}
|
|
60
|
+
insuranceSum={500000}
|
|
61
|
+
monthLimit={25000}
|
|
62
|
+
/>
|
|
63
|
+
</div>
|
|
64
|
+
),
|
|
65
|
+
};
|