@redneckz/wildless-cms-uni-blocks 0.3.41 → 0.3.42
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 +67 -56
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/components/BlockContent.d.ts +2 -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/Bonus/Bonus.d.ts +5 -0
- package/dist/components/Bonus/Bonus.js +14 -0
- package/dist/components/Bonus/Bonus.js.map +1 -0
- package/dist/components/Bonus/BonusContent.d.ts +20 -0
- package/dist/components/Bonus/BonusContent.js +2 -0
- package/dist/components/Bonus/BonusContent.js.map +1 -0
- package/dist/components/Footer/MediaButton.d.ts +2 -0
- package/dist/components/Footer/MediaButton.js +5 -2
- package/dist/components/Footer/MediaButton.js.map +1 -1
- package/dist/components/Footer/SocialMedia.d.ts +2 -0
- package/dist/components/Footer/SocialMedia.js +2 -2
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Footer/SocialMedia.mobile.d.ts +2 -0
- package/dist/components/Footer/SocialMedia.mobile.js +2 -2
- package/dist/components/Footer/SocialMedia.mobile.js.map +1 -1
- package/dist/components/Header/Header.mobile.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/Header/HeaderSubMenuObserver.js +11 -8
- package/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
- package/dist/components/Header/HeaderTop.js +1 -1
- package/dist/components/Header/HeaderTop.js.map +1 -1
- package/dist/components/ProductBlock/renderBackwardButton.js +2 -2
- package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/dist/components/ProductBlock/renderBenefit.mobile.js +1 -1
- package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
- package/dist/components/Recommendation/RecommendationCard.js +2 -2
- package/dist/components/Recommendation/RecommendationCard.js.map +1 -1
- package/dist/ui-kit/Icon/Icon.js +3 -8
- package/dist/ui-kit/Icon/Icon.js.map +1 -1
- package/dist/ui-kit/Icon/IconProps.d.ts +0 -7
- package/dist/ui-kit/List/List.js +1 -1
- package/dist/ui-kit/List/List.js.map +1 -1
- package/dist/ui-kit/Logo/Logo.js +1 -1
- package/dist/ui-kit/Logo/Logo.js.map +1 -1
- package/dist/ui-kit/Tabs/Tabs.js +1 -1
- package/dist/ui-kit/Tabs/Tabs.js.map +1 -1
- package/fonts/mohave/Mohave-Regular.ttf +0 -0
- package/fonts/mohave/mohave.css +7 -0
- package/lib/common.css +1 -1
- package/lib/components/BlockContent.d.ts +2 -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/Bonus/Bonus.d.ts +5 -0
- package/lib/components/Bonus/Bonus.fixture.d.ts +6 -0
- package/lib/components/Bonus/Bonus.js +12 -0
- package/lib/components/Bonus/Bonus.js.map +1 -0
- package/lib/components/Bonus/BonusContent.d.ts +20 -0
- package/lib/components/Bonus/BonusContent.js +2 -0
- package/lib/components/Bonus/BonusContent.js.map +1 -0
- package/lib/components/Footer/MediaButton.d.ts +2 -0
- package/lib/components/Footer/MediaButton.js +5 -2
- package/lib/components/Footer/MediaButton.js.map +1 -1
- package/lib/components/Footer/SocialMedia.d.ts +2 -0
- package/lib/components/Footer/SocialMedia.js +2 -2
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Footer/SocialMedia.mobile.d.ts +2 -0
- package/lib/components/Footer/SocialMedia.mobile.js +2 -2
- package/lib/components/Footer/SocialMedia.mobile.js.map +1 -1
- package/lib/components/Header/Header.mobile.js.map +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/Header/HeaderSubMenuObserver.js +11 -8
- package/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
- package/lib/components/Header/HeaderTop.js +1 -1
- package/lib/components/Header/HeaderTop.js.map +1 -1
- package/lib/components/ProductBlock/renderBackwardButton.js +2 -2
- package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/lib/components/ProductBlock/renderBenefit.mobile.js +1 -1
- package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
- package/lib/components/Recommendation/RecommendationCard.js +2 -2
- package/lib/components/Recommendation/RecommendationCard.js.map +1 -1
- package/lib/ui-kit/Icon/Icon.js +3 -8
- package/lib/ui-kit/Icon/Icon.js.map +1 -1
- package/lib/ui-kit/Icon/IconProps.d.ts +0 -7
- package/lib/ui-kit/List/List.js +2 -2
- package/lib/ui-kit/List/List.js.map +1 -1
- package/lib/ui-kit/Logo/Logo.js +1 -1
- package/lib/ui-kit/Logo/Logo.js.map +1 -1
- package/lib/ui-kit/Tabs/Tabs.js +1 -1
- package/lib/ui-kit/Tabs/Tabs.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +43 -45
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/BlockContent.d.ts +2 -1
- package/mobile/dist/components/Bonus/Bonus.d.ts +5 -0
- package/mobile/dist/components/Bonus/Bonus.js +14 -0
- package/mobile/dist/components/Bonus/Bonus.js.map +1 -0
- package/mobile/dist/components/Bonus/BonusContent.d.ts +20 -0
- package/mobile/dist/components/Bonus/BonusContent.js +2 -0
- package/mobile/dist/components/Bonus/BonusContent.js.map +1 -0
- package/mobile/dist/components/Footer/MediaButton.d.ts +2 -0
- package/mobile/dist/components/Footer/MediaButton.js +5 -2
- package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
- package/mobile/dist/components/Footer/SocialMedia.d.ts +2 -0
- package/mobile/dist/components/Footer/SocialMedia.js +2 -2
- package/mobile/dist/components/Footer/SocialMedia.js.map +1 -1
- package/mobile/dist/components/Header/Header.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSubMenuObserver.js +11 -8
- package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
- package/mobile/dist/components/Header/HeaderTop.js +1 -1
- package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js +2 -2
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -1
- package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
- package/mobile/dist/components/Recommendation/RecommendationCard.js +2 -2
- package/mobile/dist/components/Recommendation/RecommendationCard.js.map +1 -1
- package/mobile/dist/ui-kit/Icon/Icon.js +3 -8
- package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
- package/mobile/dist/ui-kit/Icon/IconProps.d.ts +0 -7
- package/mobile/dist/ui-kit/List/List.js +1 -1
- package/mobile/dist/ui-kit/List/List.js.map +1 -1
- package/mobile/dist/ui-kit/Tabs/Tabs.js +1 -1
- package/mobile/dist/ui-kit/Tabs/Tabs.js.map +1 -1
- package/mobile/lib/components/BlockContent.d.ts +2 -1
- package/mobile/lib/components/Bonus/Bonus.d.ts +5 -0
- package/mobile/lib/components/Bonus/Bonus.js +12 -0
- package/mobile/lib/components/Bonus/Bonus.js.map +1 -0
- package/mobile/lib/components/Bonus/BonusContent.d.ts +20 -0
- package/mobile/lib/components/Bonus/BonusContent.js +2 -0
- package/mobile/lib/components/Bonus/BonusContent.js.map +1 -0
- package/mobile/lib/components/Footer/MediaButton.d.ts +2 -0
- package/mobile/lib/components/Footer/MediaButton.js +5 -2
- package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
- package/mobile/lib/components/Footer/SocialMedia.d.ts +2 -0
- package/mobile/lib/components/Footer/SocialMedia.js +2 -2
- package/mobile/lib/components/Footer/SocialMedia.js.map +1 -1
- package/mobile/lib/components/Header/Header.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSubMenuObserver.js +11 -8
- package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
- package/mobile/lib/components/Header/HeaderTop.js +1 -1
- package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js +2 -2
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -1
- package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
- package/mobile/lib/components/Recommendation/RecommendationCard.js +2 -2
- package/mobile/lib/components/Recommendation/RecommendationCard.js.map +1 -1
- package/mobile/lib/ui-kit/Icon/Icon.js +3 -8
- package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
- package/mobile/lib/ui-kit/Icon/IconProps.d.ts +0 -7
- package/mobile/lib/ui-kit/List/List.js +2 -2
- package/mobile/lib/ui-kit/List/List.js.map +1 -1
- package/mobile/lib/ui-kit/Tabs/Tabs.js +1 -1
- package/mobile/lib/ui-kit/Tabs/Tabs.js.map +1 -1
- package/mobile/src/common.css +5 -0
- package/mobile/src/components/BlockContent.ts +2 -0
- package/mobile/src/components/Bonus/Bonus.example.json +12 -0
- package/mobile/src/components/Bonus/Bonus.tsx +50 -0
- package/mobile/src/components/Bonus/BonusContent.ts +22 -0
- package/mobile/src/components/ContentPage/ContentPage.page.json +33 -10
- package/mobile/src/components/Footer/MediaButton.tsx +11 -6
- package/mobile/src/components/Footer/SocialMedia.tsx +8 -2
- package/mobile/src/components/Header/Header.tsx +1 -1
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
- package/mobile/src/components/Header/HeaderSubMenuObserver.ts +14 -12
- package/mobile/src/components/Header/HeaderTop.tsx +1 -1
- package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +2 -3
- package/mobile/src/components/ProductBlock/renderBenefit.tsx +0 -1
- package/mobile/src/components/Recommendation/RecommendationCard.tsx +8 -3
- package/mobile/src/ui-kit/Icon/Icon.tsx +3 -15
- package/mobile/src/ui-kit/Icon/IconProps.ts +0 -8
- package/mobile/src/ui-kit/List/List.tsx +2 -2
- package/mobile/src/ui-kit/Tabs/Tabs.tsx +6 -2
- package/package.json +1 -1
- package/src/common.css +5 -0
- package/src/components/BlockContent.ts +2 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/Bonus/Bonus.example.json +12 -0
- package/src/components/Bonus/Bonus.fixture.tsx +39 -0
- package/src/components/Bonus/Bonus.tsx +50 -0
- package/src/components/Bonus/BonusContent.ts +22 -0
- package/src/components/ContentPage/ContentPage.page.json +33 -10
- package/src/components/Footer/MediaButton.tsx +11 -6
- package/src/components/Footer/SocialMedia.mobile.tsx +8 -2
- package/src/components/Footer/SocialMedia.tsx +21 -13
- package/src/components/Header/Header.mobile.tsx +1 -1
- package/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
- package/src/components/Header/HeaderSubMenuObserver.ts +14 -12
- package/src/components/Header/HeaderTop.tsx +1 -1
- package/src/components/ProductBlock/renderBackwardButton.tsx +2 -3
- package/src/components/ProductBlock/renderBenefit.mobile.tsx +0 -1
- package/src/components/Recommendation/RecommendationCard.tsx +8 -3
- package/src/ui-kit/Icon/Icon.tsx +3 -15
- package/src/ui-kit/Icon/IconProps.ts +0 -8
- package/src/ui-kit/List/List.tsx +2 -2
- package/src/ui-kit/Logo/Logo.tsx +1 -1
- package/src/ui-kit/Tabs/Tabs.tsx +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderBenefit.js","sourceRoot":"","sources":["../../../src/components/ProductBlock/renderBenefit.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAG3C,MAAM,oBAAoB,GAAiC;IACzD,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,YAAY;CACxB,CAAC;AACF,MAAM,mBAAmB,GAAiC;IACxD,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,YAAY;CACxB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,CAAS,EAAE,OAAqB;IAC9E,OAAO,CACL,eAAqB,SAAS,EAAC,0CAA0C,aACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACd,KAAC,GAAG,IACF,SAAS,EAAC,iCAAiC,EAC3C,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,KAAK,
|
|
1
|
+
{"version":3,"file":"renderBenefit.js","sourceRoot":"","sources":["../../../src/components/ProductBlock/renderBenefit.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAG3C,MAAM,oBAAoB,GAAiC;IACzD,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,YAAY;CACxB,CAAC;AACF,MAAM,mBAAmB,GAAiC;IACxD,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,YAAY;CACxB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,CAAS,EAAE,OAAqB;IAC9E,OAAO,CACL,eAAqB,SAAS,EAAC,0CAA0C,aACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACd,KAAC,GAAG,IACF,SAAS,EAAC,iCAAiC,EAC3C,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,KAAK,SACL,CACH,CAAC,CAAC,CAAC,IAAI,EACR,cAAK,SAAS,EAAE,mCAAmC,oBAAoB,CAAC,OAAO,CAAC,EAAE,YAC/E,OAAO,CAAC,KAAK,GACV,EACL,OAAO,CAAC,WAAW,IAAI,CACtB,cAAK,SAAS,EAAE,yBAAyB,mBAAmB,CAAC,OAAO,CAAC,EAAE,YACpE,OAAO,CAAC,WAAW,GAChB,CACP,KAjBO,MAAM,CAAC,CAAC,CAAC,CAkBb,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
import { Description } from '../../ui-kit/Description/Description.js';
|
|
4
|
+
import { Heading } from '../../ui-kit/Heading/Heading.js';
|
|
4
5
|
import { Img } from '../../ui-kit/Img/Img.js';
|
|
5
6
|
import { List } from '../../ui-kit/List/List.js';
|
|
6
7
|
import { BaseTile } from '../BaseTile/BaseTile.js';
|
|
7
8
|
import { SocialMedia } from '../Footer/SocialMedia.js';
|
|
8
|
-
import { Heading } from '../../ui-kit/Heading/Heading.js';
|
|
9
9
|
export const RecommendationCard = JSX(({ context, className = '', title, description, items, image, version, socialMedia }) => {
|
|
10
|
-
return (_jsx("section", { className: `border border-solid box-border py-[30px] px-9 min-w-[515px] max-w-[515px] ${className}`, role: "listitem", children: _jsxs(BaseTile, { context: context, className: "flex justify-between", title: title ? (_jsx(Heading, { headingType: "h4", as: "h3", className: "font-normal mb-3.5", title: title })) : null, image: image?.src && _jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? _jsx(Description, { className: "text-left", description: description }) : null, items?.length ? (_jsx(List, { className: "text-md font-light flex flex-col gap-2", items: items, version: version })) : null, _jsx(SocialMedia, { className: "pt-[42px] pb-0", media: socialMedia, context: context })] }) }));
|
|
10
|
+
return (_jsx("section", { className: `border border-solid box-border py-[30px] px-9 min-w-[515px] max-w-[515px] ${className}`, role: "listitem", children: _jsxs(BaseTile, { context: context, className: "flex justify-between", title: title ? (_jsx(Heading, { headingType: "h4", as: "h3", className: "font-normal mb-3.5", title: title })) : null, image: image?.src && _jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? _jsx(Description, { className: "text-left", description: description }) : null, items?.length ? (_jsx(List, { className: "text-md font-light flex flex-col gap-2", items: items, version: version })) : null, _jsx(SocialMedia, { className: "pt-[42px] pb-0", media: socialMedia, version: version, context: context })] }) }));
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=RecommendationCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationCard.js","sourceRoot":"","sources":["../../../src/components/Recommendation/RecommendationCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"RecommendationCard.js","sourceRoot":"","sources":["../../../src/components/Recommendation/RecommendationCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CACnC,CAAC,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IACtF,OAAO,CACL,kBACE,SAAS,EAAE,6EAA6E,SAAS,EAAE,EACnG,IAAI,EAAC,UAAU,YAEf,MAAC,QAAQ,IACP,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,sBAAsB,EAChC,KAAK,EACH,KAAK,CAAC,CAAC,CAAC,CACN,KAAC,OAAO,IAAC,WAAW,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,KAAK,GAAI,CAClF,CAAC,CAAC,CAAC,IAAI,EAEV,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,KAAC,GAAG,IAAC,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,KAAK,GAAI,aAElE,WAAW,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,SAAS,EAAC,WAAW,EAAC,WAAW,EAAE,WAAW,GAAI,CAAC,CAAC,CAAC,IAAI,EACpF,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CACf,KAAC,IAAI,IACH,SAAS,EAAC,wCAAwC,EAClD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,WAAW,IACV,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GAChB,IACO,GACH,CACX,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
-
import { projectSettings } from '../../ProjectSettings.js';
|
|
4
3
|
import { IconTitleMap } from '../../icons/IconName.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
primary: 'text-white',
|
|
8
|
-
secondary: 'text-white',
|
|
9
|
-
};
|
|
10
|
-
export const Icon = JSX(({ className = '', name = '', alt = `Иконка ${IconTitleMap[name] || name}`, title = alt, asSVG, color = 'primary', ...imgProps }) => {
|
|
4
|
+
import { projectSettings } from '../../ProjectSettings.js';
|
|
5
|
+
export const Icon = JSX(({ className = '', name = '', alt = `Иконка ${IconTitleMap[name] || name}`, title = alt, asSVG, ...imgProps }) => {
|
|
11
6
|
const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
|
|
12
7
|
if (asSVG) {
|
|
13
|
-
return (_jsxs("svg", { className:
|
|
8
|
+
return (_jsxs("svg", { className: className, ...imgProps, "aria-hidden": "true", children: [title ? _jsx("title", { children: title }) : null, alt ? _jsx("desc", { children: alt }) : null, _jsx("use", { href: `${href}#icon`, xlinkHref: `${href}#icon` })] }));
|
|
14
9
|
}
|
|
15
10
|
return (_jsx("img", { className: className, src: href, alt: alt, title: title, ...imgProps, "aria-hidden": "true" }));
|
|
16
11
|
});
|
|
@@ -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,
|
|
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,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC;IAE7D,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,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,OAAO,GAAI,IACpD,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"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import type { IconName } from '../../icons/IconName';
|
|
2
2
|
export type { IconName };
|
|
3
|
-
/**
|
|
4
|
-
* @title Цвет иконки (svg)
|
|
5
|
-
* @enumNames ["Нет", "Основной", "Второстепенный"]
|
|
6
|
-
*/
|
|
7
|
-
export declare type IconColor = 'none' | 'primary' | 'secondary';
|
|
8
3
|
export interface IconCompatibilityFields {
|
|
9
4
|
/** @title Альтернативный текст (alt) */
|
|
10
5
|
alt?: string;
|
|
@@ -16,8 +11,6 @@ export interface IconCompatibilityFields {
|
|
|
16
11
|
height?: string;
|
|
17
12
|
/** @hidden */
|
|
18
13
|
asSVG?: boolean;
|
|
19
|
-
/** @hidden */
|
|
20
|
-
color?: IconColor;
|
|
21
14
|
}
|
|
22
15
|
export declare type IconProps = IconCompatibilityFields & {
|
|
23
16
|
className?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
import { ListItem } from './ListItem.js';
|
|
4
4
|
const TEXT_STYLE_MAP = {
|
|
@@ -11,7 +11,7 @@ const TEXT_STYLE_MAP = {
|
|
|
11
11
|
export const List = JSX((props) => {
|
|
12
12
|
const { className = '', itemClassName, isDotted, items, version = 'primary' } = props;
|
|
13
13
|
return (_jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${className}`, role: "list", children: items?.length
|
|
14
|
-
? items.map((_, i) => (
|
|
14
|
+
? items.map((_, i) => (_jsxs(ListItem, { className: itemClassName, isDotted: isDotted, version: version, children: [_, "12"] }, String(i))))
|
|
15
15
|
: null }));
|
|
16
16
|
});
|
|
17
17
|
//# sourceMappingURL=List.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/ui-kit/List/List.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,cAAc,GAAoC;IACtD,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE,YAAY;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,KAAK,EAAE,EAAE;IAC3C,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAEtF,OAAO,CACL,kBAAS,SAAS,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,EAAE,IAAI,EAAC,MAAM,YACvE,KAAK,EAAE,MAAM;YACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClB,
|
|
1
|
+
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/ui-kit/List/List.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,cAAc,GAAoC;IACtD,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE,YAAY;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,KAAK,EAAE,EAAE;IAC3C,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAEtF,OAAO,CACL,kBAAS,SAAS,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,EAAE,IAAI,EAAC,MAAM,YACvE,KAAK,EAAE,MAAM;YACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClB,MAAC,QAAQ,IAEP,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,aAEf,CAAC,WALG,MAAM,CAAC,CAAC,CAAC,CAML,CACZ,CAAC;YACJ,CAAC,CAAC,IAAI,GACA,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -10,5 +10,5 @@ const renderTab = (currentTabIndex, onTabClick) => (tab, index) => {
|
|
|
10
10
|
const isActive = currentTabIndex === index;
|
|
11
11
|
return (_jsxs("div", { className: `flex h-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${isActive ? ACTIVE_TAB_STYLE : TAB_STYLE}`, role: "tab", onClick: () => onTabClick(index), "aria-selected": String(isActive), children: [tab?.icon ? renderIcon(tab, isActive) : null, _jsxs("div", { children: [tab?.title ? _jsx("h3", { className: "font-medium m-0 text-base", children: tab?.title }) : null, tab?.description ? (_jsx("span", { className: `font-light text-xs ${isActive ? '' : 'text-secondary-text'}`, children: tab?.description })) : null] })] }, String(index)));
|
|
12
12
|
};
|
|
13
|
-
const renderIcon = (tab, isActive) => (_jsx("div", { className: "h-full mt-1",
|
|
13
|
+
const renderIcon = (tab, isActive) => (_jsx("div", { className: "h-full mt-1", children: _jsx(Img, { className: `w-5 h-5 mr-3 ${isActive ? 'invert-full' : ''}`, image: tab?.icon || 'CardIcon', asSVG: !isActive }) }));
|
|
14
14
|
//# sourceMappingURL=Tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/ui-kit/Tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGjC,MAAM,SAAS,GAAG,0DAA0D,CAAC;AAC7E,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAE1E,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE;IAC3E,OAAO,CACL,cAAK,SAAS,EAAC,4CAA4C,EAAC,IAAI,EAAC,SAAS,YACvE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,GAC9C,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GACb,CAAC,eAAuB,EAAE,UAA2B,EAAE,EAAE,CAAC,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;IACpF,MAAM,QAAQ,GAAG,eAAe,KAAK,KAAK,CAAC;IAC3C,OAAO,CACL,eAEE,SAAS,EAAE,gEACT,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAChC,EAAE,EACF,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,mBACjB,MAAM,CAAC,QAAQ,CAAC,aAE9B,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAC7C,0BACG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,aAAI,SAAS,EAAC,2BAA2B,YAAE,GAAG,EAAE,KAAK,GAAM,CAAC,CAAC,CAAC,IAAI,EAC/E,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAClB,eAAM,SAAS,EAAE,sBAAsB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,YAC3E,GAAG,EAAE,WAAW,GACZ,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,KAhBD,MAAM,CAAC,KAAK,CAAC,CAiBd,CACP,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,QAAiB,EAAE,EAAE,CAAC,CAClD,cAAK,SAAS,EAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/ui-kit/Tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGjC,MAAM,SAAS,GAAG,0DAA0D,CAAC;AAC7E,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAE1E,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE;IAC3E,OAAO,CACL,cAAK,SAAS,EAAC,4CAA4C,EAAC,IAAI,EAAC,SAAS,YACvE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,GAC9C,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GACb,CAAC,eAAuB,EAAE,UAA2B,EAAE,EAAE,CAAC,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;IACpF,MAAM,QAAQ,GAAG,eAAe,KAAK,KAAK,CAAC;IAC3C,OAAO,CACL,eAEE,SAAS,EAAE,gEACT,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAChC,EAAE,EACF,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,mBACjB,MAAM,CAAC,QAAQ,CAAC,aAE9B,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAC7C,0BACG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,aAAI,SAAS,EAAC,2BAA2B,YAAE,GAAG,EAAE,KAAK,GAAM,CAAC,CAAC,CAAC,IAAI,EAC/E,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAClB,eAAM,SAAS,EAAE,sBAAsB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,YAC3E,GAAG,EAAE,WAAW,GACZ,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,KAhBD,MAAM,CAAC,KAAK,CAAC,CAiBd,CACP,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,QAAiB,EAAE,EAAE,CAAC,CAClD,cAAK,SAAS,EAAC,aAAa,YAC1B,KAAC,GAAG,IACF,SAAS,EAAE,gBAAgB,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAC1D,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,UAAU,EAC9B,KAAK,EAAE,CAAC,QAAQ,GAChB,GACE,CACP,CAAC"}
|
package/mobile/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
|
|
@@ -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"],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import {
|
|
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=
|
|
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
|
|
19
|
+
<MediaButton
|
|
20
|
+
key={String(index)}
|
|
21
|
+
version={version}
|
|
22
|
+
{...useLink({ router, handlerDecorator }, _)}
|
|
23
|
+
/>
|
|
18
24
|
))}
|
|
19
25
|
</div>
|
|
20
26
|
);
|
|
@@ -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
|
|
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
|
|
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 =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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((
|
|
19
|
-
visibilityList[
|
|
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((
|
|
41
|
-
const key =
|
|
42
|
+
return items.some((_) => {
|
|
43
|
+
const key = _.toString();
|
|
42
44
|
const option = isReversed ? !visibilityList[key] : visibilityList[key];
|
|
43
|
-
key in visibilityList ?
|
|
44
|
-
return isReversed ?
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Img } from '../../ui-kit/Img/Img';
|
|
2
|
-
import { Button } from '../../ui-kit/Button/Button';
|
|
3
1
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
2
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
3
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
4
4
|
|
|
5
5
|
const backwardBgStyleMap: Record<BlockVersion, string> = {
|
|
6
6
|
primary: 'bg-primary-main',
|
|
@@ -23,7 +23,6 @@ export function renderBackwardButton(text: string, version: BlockVersion, classN
|
|
|
23
23
|
<Img
|
|
24
24
|
className={`w-4 h-4 min-w-4 min-h-4 rounded-full box-border ${backwardIconStyleMap[version]}`}
|
|
25
25
|
image={{ icon: 'ArrowLeftIcon' }}
|
|
26
|
-
color="none"
|
|
27
26
|
width="24"
|
|
28
27
|
height="24"
|
|
29
28
|
asSVG
|
|
@@ -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
|
|
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
|
);
|
|
@@ -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
|
-
|
|
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 {
|
|
3
|
+
import type { ListItemVersion, ListProps } from './ListProps';
|
|
4
4
|
|
|
5
5
|
const TEXT_STYLE_MAP: Record<ListItemVersion, string> = {
|
|
6
6
|
primary: 'text-primary-text',
|
|
@@ -23,7 +23,7 @@ export const List = JSX<ListProps>((props) => {
|
|
|
23
23
|
isDotted={isDotted}
|
|
24
24
|
version={version}
|
|
25
25
|
>
|
|
26
|
-
{_}
|
|
26
|
+
{_}12
|
|
27
27
|
</ListItem>
|
|
28
28
|
))
|
|
29
29
|
: null}
|