@redneckz/wildless-cms-uni-blocks 0.2.58 → 0.2.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/dist/BaseTile.d.ts +4 -2
- package/dist/BaseTile.js +11 -11
- package/dist/BaseTile.js.map +1 -1
- package/dist/Blocks.d.ts +5 -1
- package/dist/Blocks.js +4 -0
- package/dist/Blocks.js.map +1 -1
- package/dist/ContentPage.js +1 -1
- package/dist/ContentPage.js.map +1 -1
- package/dist/Icons/AppleIcon.d.ts +1 -0
- package/dist/Icons/AppleIcon.js +6 -0
- package/dist/Icons/AppleIcon.js.map +1 -0
- package/dist/Icons/PlayMarket.d.ts +1 -0
- package/dist/Icons/PlayMarket.js +6 -0
- package/dist/Icons/PlayMarket.js.map +1 -0
- package/dist/Icons/index.d.ts +2 -0
- package/dist/Icons/index.js +5 -1
- package/dist/Icons/index.js.map +1 -1
- package/dist/MobileAppTile.d.ts +2 -1
- package/dist/MobileAppTile.js +2 -2
- package/dist/MobileAppTile.js.map +1 -1
- package/dist/MobileBlocks.d.ts +1 -0
- package/dist/MobileBlocks.js +2 -0
- package/dist/MobileBlocks.js.map +1 -1
- package/dist/ProductBlock.js +1 -1
- package/dist/ProductBlock.js.map +1 -1
- package/dist/ProductBlockInner.js +2 -1
- package/dist/ProductBlockInner.js.map +1 -1
- package/dist/ProductGallery.js +1 -1
- package/dist/ProductGallery.js.map +1 -1
- package/dist/ProductTile.js +3 -3
- package/dist/ProductTile.js.map +1 -1
- package/dist/PromoTile.d.ts +8 -0
- package/dist/PromoTile.js +18 -0
- package/dist/PromoTile.js.map +1 -0
- package/dist/StepsBlock.js +2 -1
- package/dist/StepsBlock.js.map +1 -1
- package/dist/TextBlock.d.ts +14 -0
- package/dist/TextBlock.js +36 -0
- package/dist/TextBlock.js.map +1 -0
- package/dist/Tile.js +14 -1
- package/dist/Tile.js.map +1 -1
- package/dist/api/DaDataAPI.js +2 -2
- package/dist/api/DaDataAPI.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/ui-kit/Button.d.ts +1 -3
- package/dist/ui-kit/Button.js +3 -3
- package/dist/ui-kit/Button.js.map +1 -1
- package/dist/ui-kit/IconButton.d.ts +6 -0
- package/dist/ui-kit/IconButton.js +11 -0
- package/dist/ui-kit/IconButton.js.map +1 -0
- package/dist/ui-kit/Title.d.ts +11 -0
- package/dist/ui-kit/Title.js +17 -0
- package/dist/ui-kit/Title.js.map +1 -0
- package/dist/utils/getColSpan.d.ts +1 -0
- package/dist/utils/getColSpan.js +9 -0
- package/dist/utils/getColSpan.js.map +1 -0
- package/dist/utils/getGeolocation.d.ts +1 -0
- package/dist/utils/getGeolocation.js +5 -0
- package/dist/utils/getGeolocation.js.map +1 -0
- package/lib/BaseTile.d.ts +4 -2
- package/lib/BaseTile.js +11 -11
- package/lib/BaseTile.js.map +1 -1
- package/lib/Blocks.d.ts +5 -1
- package/lib/Blocks.js +4 -0
- package/lib/Blocks.js.map +1 -1
- package/lib/ContentPage.js +1 -1
- package/lib/ContentPage.js.map +1 -1
- package/lib/Icons/AppleIcon.d.ts +1 -0
- package/lib/Icons/AppleIcon.js +3 -0
- package/lib/Icons/AppleIcon.js.map +1 -0
- package/lib/Icons/PlayMarket.d.ts +1 -0
- package/lib/Icons/PlayMarket.js +3 -0
- package/lib/Icons/PlayMarket.js.map +1 -0
- package/lib/Icons/index.d.ts +2 -0
- package/lib/Icons/index.js +2 -0
- package/lib/Icons/index.js.map +1 -1
- package/lib/MobileAppTile.d.ts +2 -1
- package/lib/MobileAppTile.js +2 -2
- package/lib/MobileAppTile.js.map +1 -1
- package/lib/MobileBlocks.d.ts +1 -0
- package/lib/MobileBlocks.js +2 -0
- package/lib/MobileBlocks.js.map +1 -1
- package/lib/ProductBlock.js +1 -1
- package/lib/ProductBlock.js.map +1 -1
- package/lib/ProductBlockInner.js +2 -1
- package/lib/ProductBlockInner.js.map +1 -1
- package/lib/ProductGallery.js +1 -1
- package/lib/ProductGallery.js.map +1 -1
- package/lib/ProductTile.js +3 -3
- package/lib/ProductTile.js.map +1 -1
- package/lib/PromoTile.d.ts +8 -0
- package/lib/PromoTile.js +16 -0
- package/lib/PromoTile.js.map +1 -0
- package/lib/StepsBlock.js +2 -1
- package/lib/StepsBlock.js.map +1 -1
- package/lib/TextBlock.d.ts +14 -0
- package/lib/TextBlock.js +34 -0
- package/lib/TextBlock.js.map +1 -0
- package/lib/Tile.js +14 -1
- package/lib/Tile.js.map +1 -1
- package/lib/api/DaDataAPI.js +2 -2
- package/lib/api/DaDataAPI.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/types.d.ts +1 -0
- package/lib/ui-kit/Button.d.ts +1 -3
- package/lib/ui-kit/Button.js +3 -3
- package/lib/ui-kit/Button.js.map +1 -1
- package/lib/ui-kit/IconButton.d.ts +6 -0
- package/lib/ui-kit/IconButton.js +9 -0
- package/lib/ui-kit/IconButton.js.map +1 -0
- package/lib/ui-kit/Title.d.ts +11 -0
- package/lib/ui-kit/Title.js +15 -0
- package/lib/ui-kit/Title.js.map +1 -0
- package/lib/utils/getColSpan.d.ts +1 -0
- package/lib/utils/getColSpan.js +6 -0
- package/lib/utils/getColSpan.js.map +1 -0
- package/lib/utils/getGeolocation.d.ts +1 -0
- package/lib/utils/getGeolocation.js +2 -0
- package/lib/utils/getGeolocation.js.map +1 -0
- package/package.json +1 -1
- package/src/BaseTile.tsx +24 -17
- package/src/Blocks.ts +6 -0
- package/src/ContentPage.fixture.tsx +1 -1
- package/src/ContentPage.page.json +47 -22
- package/src/ContentPage.tsx +1 -1
- package/src/Icons/AppleIcon.tsx +15 -0
- package/src/Icons/PlayMarket.tsx +8 -0
- package/src/Icons/index.ts +2 -0
- package/src/MobileAppTile.tsx +4 -3
- package/src/MobileBlocks.ts +2 -0
- package/src/ProductBlock.tsx +3 -1
- package/src/ProductBlockInner.tsx +5 -4
- package/src/ProductGallery.tsx +7 -3
- package/src/ProductTile.tsx +3 -3
- package/src/PromoTile.tsx +47 -0
- package/src/StepsBlock.tsx +2 -1
- package/src/TextBlock.fixture.tsx +116 -0
- package/src/TextBlock.tsx +72 -0
- package/src/Tile.tsx +19 -2
- package/src/api/DaDataAPI.ts +2 -2
- package/src/common.css +15 -15
- package/src/setup-fixture.ts +6 -2
- package/src/types.ts +1 -1
- package/src/ui-kit/Button.fixture.tsx +22 -0
- package/src/ui-kit/Button.tsx +13 -6
- package/src/ui-kit/IconButton.tsx +27 -0
- package/src/ui-kit/Title.tsx +25 -0
- package/src/utils/getColSpan.ts +5 -0
- package/src/utils/{getCurrentPosition.ts → getGeolocation.ts} +1 -1
- package/dist/utils/getCurrentPosition.d.ts +0 -1
- package/dist/utils/getCurrentPosition.js +0 -5
- package/dist/utils/getCurrentPosition.js.map +0 -1
- package/lib/utils/getCurrentPosition.d.ts +0 -1
- package/lib/utils/getCurrentPosition.js +0 -2
- package/lib/utils/getCurrentPosition.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { UniBlockProps, Picture } from './types';
|
|
2
|
+
declare type TextBlockVersion = 'primary' | 'secondary' | 'secondary-light';
|
|
3
|
+
declare type TextBlockIconVersion = 'none' | 'small' | 'big';
|
|
4
|
+
export interface TextBlockContent {
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
blockVersion?: TextBlockVersion;
|
|
8
|
+
iconVersion?: TextBlockIconVersion;
|
|
9
|
+
image?: Picture;
|
|
10
|
+
}
|
|
11
|
+
export interface TextBlockProps extends TextBlockContent, UniBlockProps {
|
|
12
|
+
}
|
|
13
|
+
export declare const TextBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<TextBlockProps, any>, context?: any) => any;
|
|
14
|
+
export {};
|
package/lib/TextBlock.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { Img } from './Img.js';
|
|
4
|
+
const textBlockStyleMaps = {
|
|
5
|
+
primary: {
|
|
6
|
+
background: 'bg-white',
|
|
7
|
+
icon: 'bg-primary-main text-white',
|
|
8
|
+
title: 'text-base',
|
|
9
|
+
description: 'text-secondary-text',
|
|
10
|
+
},
|
|
11
|
+
secondary: {
|
|
12
|
+
background: 'bg-primary-main',
|
|
13
|
+
icon: 'bg-white text-primary-main',
|
|
14
|
+
title: 'text-white',
|
|
15
|
+
description: 'text-white',
|
|
16
|
+
},
|
|
17
|
+
'secondary-light': {
|
|
18
|
+
background: 'bg-primary-main/10',
|
|
19
|
+
icon: 'bg-primary-main text-white',
|
|
20
|
+
title: 'text-base',
|
|
21
|
+
description: 'text-secondary-text',
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
export const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className }) => {
|
|
25
|
+
const textBlockStyleMap = textBlockStyleMaps[blockVersion];
|
|
26
|
+
return (_jsxs("section", { className: `font-sans px-9 py-4 flex ${textBlockStyleMap.background} ${className || ''}`, children: [iconVersion && iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion && iconVersion === 'big' ? renderImage(image) : null, _jsxs("div", { className: "py-0.5", children: [title && _jsx("div", { className: `font-medium mb-1 ${textBlockStyleMap.title}`, children: title }), description && (_jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description }))] })] }));
|
|
27
|
+
});
|
|
28
|
+
function renderIcon(className) {
|
|
29
|
+
return (_jsx("div", { className: `pt-1.5 pr-4`, children: _jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs ${className}`, children: "i" }) }));
|
|
30
|
+
}
|
|
31
|
+
function renderImage(image) {
|
|
32
|
+
return image?.src ? _jsx(Img, { className: "pt-0.5 pr-3", image: image }) : null;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=TextBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextBlock.js","sourceRoot":"","sources":["../src/TextBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAe5B,MAAM,kBAAkB,GAGpB;IACF,OAAO,EAAE;QACP,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,qBAAqB;KACnC;IACD,SAAS,EAAE;QACT,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,YAAY;KAC1B;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,oBAAoB;QAChC,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,qBAAqB;KACnC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAC1B,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,GAAG,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;IAClF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3D,OAAO,CACL,mBACE,SAAS,EAAE,4BAA4B,iBAAiB,CAAC,UAAU,IAAI,SAAS,IAAI,EAAE,EAAE,aAEvF,WAAW,IAAI,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAClF,WAAW,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACjE,eAAK,SAAS,EAAC,QAAQ,aACpB,KAAK,IAAI,cAAK,SAAS,EAAE,oBAAoB,iBAAiB,CAAC,KAAK,EAAE,YAAG,KAAK,GAAO,EACrF,WAAW,IAAI,CACd,cAAK,SAAS,EAAE,WAAW,iBAAiB,CAAC,WAAW,EAAE,YAAG,WAAW,GAAO,CAChF,IACG,IACE,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,UAAU,CAAC,SAAiB;IACnC,OAAO,CACL,cAAK,SAAS,EAAE,aAAa,YAC3B,cAAK,SAAS,EAAE,4CAA4C,SAAS,EAAE,kBAAS,GAC5E,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAe;IAClC,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC"}
|
package/lib/Tile.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
import { BaseTile } from './BaseTile.js';
|
|
4
|
+
import { getColSpan } from './utils/getColSpan.js';
|
|
4
5
|
const tileStyleMap = {
|
|
5
6
|
primary: 'bg-white text-primary-text',
|
|
6
7
|
secondary: 'bg-primary-main text-white',
|
|
7
8
|
};
|
|
8
9
|
export const Tile = JSX((props) => {
|
|
9
10
|
const { children, className, version = 'primary' } = props;
|
|
10
|
-
return (_jsx("section", { className: `font-sans p-9 ${className || ''} ${tileStyleMap[version]}`, children: _jsx(BaseTile, { ...props, children: children }) }));
|
|
11
|
+
return (_jsx("section", { className: `font-sans p-9 min-h-[320px] box-border ${className || ''} ${tileStyleMap[version]} ${getContainerPaddingRight(className)} `, children: _jsx(BaseTile, { ...props, children: children }) }));
|
|
11
12
|
});
|
|
13
|
+
function getContainerPaddingRight(className = '') {
|
|
14
|
+
const colSpan = getColSpan(className);
|
|
15
|
+
if (colSpan <= 6) {
|
|
16
|
+
return 'pr-9';
|
|
17
|
+
}
|
|
18
|
+
else if (colSpan <= 8) {
|
|
19
|
+
return 'pr-[4.75rem]';
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return 'pr-[9.4rem]';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
12
25
|
//# sourceMappingURL=Tile.js.map
|
package/lib/Tile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tile.js","sourceRoot":"","sources":["../src/Tile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Tile.js","sourceRoot":"","sources":["../src/Tile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,MAAM,YAAY,GAAiC;IACjD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,KAAK,EAAE,EAAE;IAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE3D,OAAO,CACL,kBACE,SAAS,EAAE,0CAA0C,SAAS,IAAI,EAAE,IAClE,YAAY,CAAC,OAAO,CACtB,IAAI,wBAAwB,CAAC,SAAS,CAAC,GAAG,YAE1C,KAAC,QAAQ,OAAK,KAAK,YAAG,QAAQ,GAAY,GAClC,CACX,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAAC,YAAoB,EAAE;IACtD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,CAAC,EAAE;QAChB,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,OAAO,IAAI,CAAC,EAAE;QACvB,OAAO,cAAc,CAAC;KACvB;SAAM;QACL,OAAO,aAAa,CAAC;KACtB;AACH,CAAC"}
|
package/lib/api/DaDataAPI.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getGeolocation } from '../utils/getGeolocation.js';
|
|
2
2
|
export function DaDataAPI(baseURL = '') {
|
|
3
3
|
async function getFetcherAddress() {
|
|
4
4
|
if (!('geolocation' in navigator)) {
|
|
5
5
|
return null;
|
|
6
6
|
}
|
|
7
7
|
try {
|
|
8
|
-
const coords = await
|
|
8
|
+
const coords = await getGeolocation();
|
|
9
9
|
const response = await fetch(`${baseURL}/geolocate`, {
|
|
10
10
|
method: 'POST',
|
|
11
11
|
mode: 'cors',
|
package/lib/api/DaDataAPI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaDataAPI.js","sourceRoot":"","sources":["../../src/api/DaDataAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DaDataAPI.js","sourceRoot":"","sources":["../../src/api/DaDataAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIzD,MAAM,UAAU,SAAS,CAAC,OAAO,GAAG,EAAE;IACpC,KAAK,UAAU,iBAAiB;QAC9B,IAAI,CAAC,CAAC,aAAa,IAAI,SAAS,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;QAED,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,YAAY,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,GAAG,EAAE,MAAM,CAAC,QAAQ;oBACpB,GAAG,EAAE,MAAM,CAAC,SAAS;oBACrB,KAAK,EAAE,CAAC;iBACT,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;YACrD,OAAO,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,OAAO;QACL,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
package/lib/common.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "../fonts/ubuntu/ubuntu.css";[data-theme=pc]{--color-primary-main:#42ab44;--color-primary-hover:#248341;--color-primary-active:#245f34;--color-secondary-hover:#c5e2c6;--color-secondary-active:#d8f2d9}[data-theme=bc]{--color-primary-main:#83b83e;--color-primary-hover:#5c921d;--color-primary-active:#3c5e10;--color-secondary-hover:#e8f4d9;--color-secondary-active:#d8e3ca}[data-theme=eo]{--color-primary-main:#ddb63d;--color-primary-hover:#bb9727;--color-primary-active:#7e630c;--color-secondary-hover:#f1ecdd;--color-secondary-active:#e5dec7}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.top-4{top:1rem}.right-4{right:1rem}.bottom-0{bottom:0}.right-0{right:0}.left-0{left:0}.-bottom-2{bottom:-.5rem}.top-0{top:0}.z-10{z-index:10}.col-span-12{grid-column:span 12/span 12}.col-span-8{grid-column:span 8/span 8}.col-span-4{grid-column:span 4/span 4}.col-span-6{grid-column:span 6/span 6}.m-0{margin:0}.-mx-20{margin-left:-5rem;margin-right:-5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.mb-6{margin-bottom:1.5rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.mt-2\.5{margin-top:.625rem}.mt-2{margin-top:.5rem}.mt-9{margin-top:2.25rem}.mb-5{margin-bottom:1.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mb-12{margin-bottom:3rem}.mt-5{margin-top:1.25rem}.mb-10{margin-bottom:2.5rem}.mr-8{margin-right:2rem}.mb-2\.5{margin-bottom:.625rem}.mb-2{margin-bottom:.5rem}.ml-auto{margin-left:auto}.mr-5{margin-right:1.25rem}.mr-7{margin-right:1.75rem}.ml-2\.5{margin-left:.625rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.h-\[70px\]{height:70px}.h-8{height:2rem}.h-\[90px\]{height:90px}.h-4{height:1rem}.h-\[50px\]{height:50px}.h-\[3px\]{height:3px}.h-0\.5{height:.125rem}.h-0{height:0}.h-\[100px\]{height:100px}.h-\[1px\]{height:1px}.h-\[8px\]{height:8px}.h-\[2px\]{height:2px}.h-\[24px\]{height:24px}.min-h-\[70px\]{min-height:70px}.min-h-\[90px\]{min-height:90px}.min-h-\[50px\]{min-height:50px}.min-h-\[100px\]{min-height:100px}.min-h-\[32px\]{min-height:32px}.min-h-\[8px\]{min-height:8px}.w-\[70px\]{width:70px}.w-full{width:100%}.w-8{width:2rem}.w-\[125px\]{width:125px}.w-\[90px\]{width:90px}.w-\[50px\]{width:50px}.w-\[100px\]{width:100px}.w-\[276px\]{width:276px}.w-\[280px\]{width:280px}.w-\[235px\]{width:235px}.w-\[24px\]{width:24px}.w-\[8px\]{width:8px}.w-\[36px\]{width:36px}.w-10{width:2.5rem}.min-w-\[70px\]{min-width:70px}.min-w-\[90px\]{min-width:90px}.min-w-\[600px\]{min-width:600px}.min-w-\[50px\]{min-width:50px}.min-w-\[100px\]{min-width:100px}.min-w-\[32px\]{min-width:32px}.min-w-\[8px\]{min-width:8px}.max-w-\[600px\]{max-width:600px}.max-w-\[47rem\]{max-width:47rem}.max-w-\[580px\]{max-width:580px}.max-w-min{max-width:-webkit-min-content;max-width:-moz-min-content;max-width:min-content}.max-w-\[292px\]{max-width:292px}.max-w-\[170px\]{max-width:170px}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.basis-0{flex-basis:0px}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes progress{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes progress{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.animate-slide{-webkit-animation:progress linear;animation:progress linear}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.gap-32{gap:8rem}.gap-11{gap:2.75rem}.gap-\[14px\]{gap:14px}.gap-2{gap:.5rem}.gap-3\.5{gap:.875rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-l-full{border-bottom-left-radius:9999px;border-top-left-radius:9999px}.rounded-r-full{border-bottom-right-radius:9999px;border-top-right-radius:9999px}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-bl-3xl{border-bottom-left-radius:1.5rem}.rounded-br-3xl{border-bottom-right-radius:1.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-0{border-width:0}.border-x-0{border-left-width:0;border-right-width:0}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-solid{border-style:solid}.border-none{border-style:none}.border-main{--tw-border-opacity:1;border-color:rgb(240 244 240/var(--tw-border-opacity))}.border-main-divider{--tw-border-opacity:1;border-color:rgb(235 237 240/var(--tw-border-opacity))}.border-primary-main{border-color:var(--color-primary-main)}.border-transparent{border-color:transparent}.border-y-main-divider{--tw-border-opacity:1;border-bottom-color:rgb(235 237 240/var(--tw-border-opacity));border-top-color:rgb(235 237 240/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-main{--tw-bg-opacity:1;background-color:rgb(240 244 240/var(--tw-bg-opacity))}.bg-secondary-text{--tw-bg-opacity:1;background-color:rgb(125 126 127/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-secondary-light{--tw-bg-opacity:1;background-color:rgb(245 247 249/var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-primary-main{background-color:var(--color-primary-main)}.bg-main-divider{--tw-bg-opacity:1;background-color:rgb(235 237 240/var(--tw-bg-opacity))}.bg-secondary-dark{--tw-bg-opacity:1;background-color:rgb(226 228 229/var(--tw-bg-opacity))}.p-12{padding:3rem}.p-10{padding:2.5rem}.p-20{padding:5rem}.p-2{padding:.5rem}.p-\[10px\]{padding:10px}.p-11{padding:2.75rem}.p-\[26px\]{padding:26px}.p-9{padding:2.25rem}.p-0{padding:0}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.px-0{padding-left:0;padding-right:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-12{padding-left:3rem;padding-right:3rem}.py-12{padding-bottom:3rem;padding-top:3rem}.px-\[88px\]{padding-left:88px;padding-right:88px}.px-3{padding-left:.75rem;padding-right:.75rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-\[5px\]{padding-bottom:5px;padding-top:5px}.px-20{padding-left:5rem;padding-right:5rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-4{padding-left:1rem;padding-right:1rem}.pb-2{padding-bottom:.5rem}.pt-0{padding-top:0}.pl-11{padding-left:2.75rem}.pt-4{padding-top:1rem}.pl-12{padding-left:3rem}.pr-\[7\.5rem\]{padding-right:7.5rem}.pt-1{padding-top:.25rem}.pr-28{padding-right:7rem}.pt-\[3px\]{padding-top:3px}.pt-\[5px\]{padding-top:5px}.pt-5{padding-top:1.25rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pl-\[170px\]{padding-left:170px}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Ubuntu,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-base{font-size:1rem;line-height:1.5rem}.text-title-xs{font-size:1.5rem;line-height:1.875rem}.text-title-sm{font-size:1.75rem;line-height:2.5rem}.text-title{font-size:2rem;line-height:2.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.375rem}.text-xs{font-size:.75rem;line-height:1.125rem}.text-title-lg{font-size:2.5rem;line-height:3rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-primary-text{--tw-text-opacity:1;color:rgb(28 28 28/var(--tw-text-opacity))}.text-secondary-text{--tw-text-opacity:1;color:rgb(125 126 127/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-secondary-light{--tw-text-opacity:1;color:rgb(245 247 249/var(--tw-text-opacity))}.text-primary-main{color:var(--color-primary-main)}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.shadow-\[0_8px_32px_0px_\#00000014\]{--tw-shadow:0 8px 32px 0px #00000014;--tw-shadow-colored:0 8px 32px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.duration-1000{transition-duration:1s}.rotate-180{transform:rotate(180deg)}.-translate-x-full{transform:translateX(-100%)}.visited\:text-secondary-text:visited{color:#7d7e7f}.hover\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\:bg-secondary-hover:hover{background-color:var(--color-secondary-hover)}.hover\:text-primary-text:hover{--tw-text-opacity:1;color:rgb(28 28 28/var(--tw-text-opacity))}.hover\:text-primary-main:hover{color:var(--color-primary-main)}.hover\:text-secondary-active:hover{color:var(--color-secondary-active)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.active\:bg-primary-active:active{background-color:var(--color-primary-active)}.active\:bg-secondary-active:active{background-color:var(--color-secondary-active)}.group:hover .group-hover\:text-primary-text{--tw-text-opacity:1;color:rgb(28 28 28/var(--tw-text-opacity))}@media (min-width:1280px) and (max-width:1535px){.xl\:w-\[220px\]{width:220px}.xl\:gap-8{gap:2rem}.xl\:gap-5{gap:1.25rem}}
|
|
1
|
+
@import "../fonts/ubuntu/ubuntu.css";[data-theme=pc]{--color-primary-main:66,171,68;--color-primary-hover:36,131,65;--color-primary-active:36,95,52;--color-secondary-hover:216,242,217;--color-secondary-active:197,226,198}[data-theme=bc]{--color-primary-main:131,184,62;--color-primary-hover:92,146,29;--color-primary-active:60,94,16;--color-secondary-hover:232,244,217;--color-secondary-active:216,227,202}[data-theme=eo]{--color-primary-main:221,182,61;--color-primary-hover:187,151,39;--color-primary-active:126,99,12;--color-secondary-hover:241,236,221;--color-secondary-active:229,222,199}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.top-4{top:1rem}.right-4{right:1rem}.bottom-0{bottom:0}.right-0{right:0}.left-0{left:0}.-bottom-2{bottom:-.5rem}.top-0{top:0}.z-10{z-index:10}.col-span-12{grid-column:span 12/span 12}.col-span-8{grid-column:span 8/span 8}.col-span-4{grid-column:span 4/span 4}.col-span-6{grid-column:span 6/span 6}.m-0{margin:0}.-mx-20{margin-left:-5rem;margin-right:-5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mt-9{margin-top:2.25rem}.mt-auto{margin-top:auto}.ml-7{margin-left:1.75rem}.mt-2\.5{margin-top:.625rem}.mt-2{margin-top:.5rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mb-6{margin-bottom:1.5rem}.mt-6{margin-top:1.5rem}.mb-3\.5{margin-bottom:.875rem}.mb-3{margin-bottom:.75rem}.mt-5{margin-top:1.25rem}.mb-1{margin-bottom:.25rem}.mr-8{margin-right:2rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.ml-auto{margin-left:auto}.mr-5{margin-right:1.25rem}.mr-7{margin-right:1.75rem}.mr-2{margin-right:.5rem}.ml-2\.5{margin-left:.625rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.h-\[70px\]{height:70px}.h-8{height:2rem}.h-\[90px\]{height:90px}.h-4{height:1rem}.h-\[50px\]{height:50px}.h-\[3px\]{height:3px}.h-0\.5{height:.125rem}.h-0{height:0}.h-\[100px\]{height:100px}.h-\[1px\]{height:1px}.h-\[8px\]{height:8px}.h-\[2px\]{height:2px}.h-\[24px\]{height:24px}.min-h-\[70px\]{min-height:70px}.min-h-\[90px\]{min-height:90px}.min-h-\[50px\]{min-height:50px}.min-h-\[100px\]{min-height:100px}.min-h-\[320px\]{min-height:320px}.min-h-\[32px\]{min-height:32px}.min-h-\[8px\]{min-height:8px}.w-\[70px\]{width:70px}.w-full{width:100%}.w-8{width:2rem}.w-\[125px\]{width:125px}.w-\[90px\]{width:90px}.w-\[50px\]{width:50px}.w-\[100px\]{width:100px}.w-\[276px\]{width:276px}.w-4{width:1rem}.w-\[280px\]{width:280px}.w-\[235px\]{width:235px}.w-\[24px\]{width:24px}.w-\[8px\]{width:8px}.w-\[36px\]{width:36px}.w-10{width:2.5rem}.min-w-\[70px\]{min-width:70px}.min-w-\[90px\]{min-width:90px}.min-w-\[600px\]{min-width:600px}.min-w-\[50px\]{min-width:50px}.min-w-\[100px\]{min-width:100px}.min-w-\[32px\]{min-width:32px}.min-w-\[8px\]{min-width:8px}.max-w-\[600px\]{max-width:600px}.max-w-\[47rem\]{max-width:47rem}.max-w-\[580px\]{max-width:580px}.max-w-min{max-width:-webkit-min-content;max-width:-moz-min-content;max-width:min-content}.max-w-\[292px\]{max-width:292px}.max-w-\[170px\]{max-width:170px}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.basis-0{flex-basis:0px}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes progress{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes progress{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.animate-slide{-webkit-animation:progress linear;animation:progress linear}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-1{gap:.25rem}.gap-6{gap:1.5rem}.gap-4{gap:1rem}.gap-32{gap:8rem}.gap-11{gap:2.75rem}.gap-\[14px\]{gap:14px}.gap-2{gap:.5rem}.gap-3\.5{gap:.875rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-l-full{border-bottom-left-radius:9999px;border-top-left-radius:9999px}.rounded-r-full{border-bottom-right-radius:9999px;border-top-right-radius:9999px}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-bl-3xl{border-bottom-left-radius:1.5rem}.rounded-br-3xl{border-bottom-right-radius:1.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-0{border-width:0}.border-x-0{border-left-width:0;border-right-width:0}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-solid{border-style:solid}.border-none{border-style:none}.border-main{--tw-border-opacity:1;border-color:rgba(240,244,240,var(--tw-border-opacity))}.border-main-divider{--tw-border-opacity:1;border-color:rgba(235,237,240,var(--tw-border-opacity))}.border-primary-main{--tw-border-opacity:1;border-color:rgba(var(--color-primary-main),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-y-main-divider{--tw-border-opacity:1;border-bottom-color:rgba(235,237,240,var(--tw-border-opacity));border-top-color:rgba(235,237,240,var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-main{--tw-bg-opacity:1;background-color:rgba(240,244,240,var(--tw-bg-opacity))}.bg-secondary-text{--tw-bg-opacity:1;background-color:rgba(125,126,127,var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-secondary-light{--tw-bg-opacity:1;background-color:rgba(245,247,249,var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-primary-main{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-main),var(--tw-bg-opacity))}.bg-primary-main\/10{background-color:rgba(var(--color-primary-main),.1)}.bg-main-divider{--tw-bg-opacity:1;background-color:rgba(235,237,240,var(--tw-bg-opacity))}.bg-secondary-dark{--tw-bg-opacity:1;background-color:rgba(226,228,229,var(--tw-bg-opacity))}.p-12{padding:3rem}.p-10{padding:2.5rem}.p-20{padding:5rem}.p-2{padding:.5rem}.p-\[10px\]{padding:10px}.p-\[26px\]{padding:26px}.p-9{padding:2.25rem}.p-0{padding:0}.px-0{padding-left:0;padding-right:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-12{padding-left:3rem;padding-right:3rem}.py-12{padding-bottom:3rem;padding-top:3rem}.px-\[88px\]{padding-left:88px;padding-right:88px}.px-3{padding-left:.75rem;padding-right:.75rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-\[5px\]{padding-bottom:5px;padding-top:5px}.px-20{padding-left:5rem;padding-right:5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-4{padding-left:1rem;padding-right:1rem}.pb-2{padding-bottom:.5rem}.pt-0{padding-top:0}.pl-11{padding-left:2.75rem}.pt-4{padding-top:1rem}.pt-10{padding-top:2.5rem}.pl-\[50px\]{padding-left:50px}.pb-\[50px\]{padding-bottom:50px}.pr-\[7\.5rem\]{padding-right:7.5rem}.pl-2\.5{padding-left:.625rem}.pt-2\.5{padding-top:.625rem}.pb-1\.5{padding-bottom:.375rem}.pr-\[6\.25rem\]{padding-right:6.25rem}.pl-2{padding-left:.5rem}.pt-2{padding-top:.5rem}.pb-1{padding-bottom:.25rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pr-4{padding-right:1rem}.pt-0\.5{padding-top:.125rem}.pr-3{padding-right:.75rem}.pr-28{padding-right:7rem}.pr-9{padding-right:2.25rem}.pr-\[4\.75rem\]{padding-right:4.75rem}.pr-\[9\.4rem\]{padding-right:9.4rem}.pt-\[3px\]{padding-top:3px}.pt-\[5px\]{padding-top:5px}.pt-5{padding-top:1.25rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pl-\[170px\]{padding-left:170px}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Ubuntu,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-base{font-size:1rem;line-height:1.5rem}.text-title{font-size:2rem;line-height:2.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.375rem}.text-xs{font-size:.75rem;line-height:1.125rem}.text-title-sm{font-size:1.75rem;line-height:2.5rem}.text-xxs{font-size:.625rem;line-height:.625rem}.text-title-lg{font-size:2.5rem;line-height:3rem}.text-title-xs{font-size:1.5rem;line-height:1.875rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-primary-text{--tw-text-opacity:1;color:rgba(28,28,28,var(--tw-text-opacity))}.text-secondary-text{--tw-text-opacity:1;color:rgba(125,126,127,var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-primary-main{--tw-text-opacity:1;color:rgba(var(--color-primary-main),var(--tw-text-opacity))}.text-secondary-light{--tw-text-opacity:1;color:rgba(245,247,249,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.shadow-\[0_8px_32px_0px_\#00000014\]{--tw-shadow:0 8px 32px 0px #00000014;--tw-shadow-colored:0 8px 32px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.duration-1000{transition-duration:1s}.rotate-180{transform:rotate(180deg)}.-translate-x-full{transform:translateX(-100%)}.visited\:text-secondary-text:visited{color:rgba(125,126,127,var(--tw-text-opacity))}.hover\:bg-primary-hover:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-hover),var(--tw-bg-opacity))}.hover\:bg-secondary-hover:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-hover),var(--tw-bg-opacity))}.hover\:text-primary-text:hover{--tw-text-opacity:1;color:rgba(28,28,28,var(--tw-text-opacity))}.hover\:text-primary-main:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-main),var(--tw-text-opacity))}.hover\:text-secondary-active:hover{--tw-text-opacity:1;color:rgba(var(--color-secondary-active),var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.active\:bg-primary-active:active{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-active),var(--tw-bg-opacity))}.active\:bg-secondary-active:active{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-active),var(--tw-bg-opacity))}.group:hover .group-hover\:text-primary-text{--tw-text-opacity:1;color:rgba(28,28,28,var(--tw-text-opacity))}@media (min-width:1280px) and (max-width:1535px){.xl\:w-\[220px\]{width:220px}.xl\:gap-8{gap:2rem}.xl\:gap-5{gap:1.25rem}}
|
package/lib/types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { BlockContent } from './Blocks';
|
|
|
3
3
|
import type { ContentPageContext } from './ContentPageContext';
|
|
4
4
|
export declare type ColorPalette = 'pc' | 'bc' | 'eo';
|
|
5
5
|
export declare type BlockVersion = 'primary' | 'secondary';
|
|
6
|
+
export declare type ButtonVersion = 'primary' | 'secondary';
|
|
6
7
|
export interface BlockDef {
|
|
7
8
|
type: string;
|
|
8
9
|
style?: string[];
|
package/lib/ui-kit/Button.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { LinkContent } from '../types';
|
|
2
|
-
declare type ButtonVersion = 'primary' | 'secondary';
|
|
1
|
+
import type { ButtonVersion, LinkContent } from '../types';
|
|
3
2
|
export interface ButtonProps extends LinkContent {
|
|
4
3
|
className?: string;
|
|
5
4
|
onClick?: (ev: MouseEvent) => any;
|
|
@@ -8,4 +7,3 @@ export interface ButtonProps extends LinkContent {
|
|
|
8
7
|
disabled?: Boolean;
|
|
9
8
|
}
|
|
10
9
|
export declare const Button: (props: import("@redneckz/uni-jsx").PropsWithChildren<ButtonProps, any>, context?: any) => any;
|
|
11
|
-
export {};
|
package/lib/ui-kit/Button.js
CHANGED
|
@@ -8,11 +8,11 @@ const buttonDisabledStyleMap = {
|
|
|
8
8
|
primary: 'bg-secondary-dark text-secondary-text',
|
|
9
9
|
secondary: 'bg-secondary-light text-secondary-text',
|
|
10
10
|
};
|
|
11
|
-
const styleButton = 'inline-block rounded-md px-
|
|
11
|
+
const styleButton = 'inline-block rounded-md px-8 py-2 text-center font-sans';
|
|
12
12
|
export const Button = JSX(({ className, text, href, target, onClick, children, disabled, version = 'primary', ariaLabel, }) => {
|
|
13
13
|
if (disabled) {
|
|
14
|
-
return (_jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel,
|
|
14
|
+
return (_jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `${styleButton} select-none ${buttonDisabledStyleMap[version]} ${className || ''}`, children: children ? (_jsx("div", { children: children })) : (_jsx("div", { className: "text-sm font-medium py-1.5", children: text })) }));
|
|
15
15
|
}
|
|
16
|
-
return (_jsx("a", { className: `${styleButton} no-underline ${buttonStyleMap[version]} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, children: _jsx("
|
|
16
|
+
return (_jsx("a", { className: `${styleButton} no-underline ${buttonStyleMap[version]} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, children: children ? (_jsx("div", { children: children })) : (_jsx("div", { className: "text-sm font-medium py-1.5", children: text })) }));
|
|
17
17
|
});
|
|
18
18
|
//# sourceMappingURL=Button.js.map
|
package/lib/ui-kit/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/ui-kit/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/ui-kit/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAWxC,MAAM,cAAc,GAAkC;IACpD,OAAO,EAAE,4EAA4E;IACrF,SAAS,EACP,0FAA0F;CAC7F,CAAC;AAEF,MAAM,sBAAsB,GAAkC;IAC5D,OAAO,EAAE,uCAAuC;IAChD,SAAS,EAAE,wCAAwC;CACpD,CAAC;AAEF,MAAM,WAAW,GAAG,yDAAyD,CAAC;AAE9E,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CACvB,CAAC,EACC,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,SAAS,GACV,EAAE,EAAE;IACH,IAAI,QAAQ,EAAE;QACZ,OAAO,CACL,cACE,IAAI,EAAC,QAAQ,mBACC,MAAM,gBACR,SAAS,EACrB,QAAQ,EAAC,IAAI,EACb,SAAS,EAAE,GAAG,WAAW,gBAAgB,sBAAsB,CAAC,OAAO,CAAC,IACtE,SAAS,IAAI,EACf,EAAE,YAED,QAAQ,CAAC,CAAC,CAAC,CACV,wBAAM,QAAQ,GAAO,CACtB,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,4BAA4B,YAAE,IAAI,GAAO,CACzD,GACG,CACP,CAAC;KACH;IAED,OAAO,CACL,YACE,SAAS,EAAE,GAAG,WAAW,iBAAiB,cAAc,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,EACtF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,gBACJ,SAAS,YAEpB,QAAQ,CAAC,CAAC,CAAC,CACV,wBAAM,QAAQ,GAAO,CACtB,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,4BAA4B,YAAE,IAAI,GAAO,CACzD,GACC,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ButtonProps } from './Button';
|
|
2
|
+
export interface IconButtonProps extends ButtonProps {
|
|
3
|
+
icon?: string;
|
|
4
|
+
aboveText?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const IconButton: (props: import("@redneckz/uni-jsx").PropsWithChildren<IconButtonProps, any>, context?: any) => any;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { AppleIcon, PlayMarket } from '../Icons/index.js';
|
|
4
|
+
import { Button } from './Button.js';
|
|
5
|
+
const ICONS = { AppleIcon, PlayMarket };
|
|
6
|
+
export const IconButton = JSX((props) => {
|
|
7
|
+
return (_jsx(Button, { ...props, children: props.icon ? (_jsxs("div", { className: "flex items-center", children: [_jsx("div", { className: "mr-2", children: ICONS[props.icon]?.() }), _jsxs("div", { children: [_jsx("div", { className: "text-xxs text-left", children: props.aboveText }), _jsx("div", { className: "text-sm font-medium text-left", children: props.text })] })] })) : null }));
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=IconButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../../src/ui-kit/IconButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAOxC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAkB,CAAC,KAAK,EAAE,EAAE;IACvD,OAAO,CACL,KAAC,MAAM,OAAK,KAAK,YACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACZ,eAAK,SAAS,EAAC,mBAAmB,aAChC,cAAK,SAAS,EAAC,MAAM,YAAE,KAAK,CAAC,KAAK,CAAC,IAA0B,CAAC,EAAE,EAAE,GAAO,EACzE,0BACE,cAAK,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,SAAS,GAAO,EAC3D,cAAK,SAAS,EAAC,+BAA+B,YAAE,KAAK,CAAC,IAAI,GAAO,IAC7D,IACF,CACP,CAAC,CAAC,CAAC,IAAI,GACD,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum SizeTableClass {
|
|
2
|
+
'XL' = "text-title-lg",
|
|
3
|
+
'L' = "text-title",
|
|
4
|
+
'M' = "text-title-sm",
|
|
5
|
+
'S' = "text-title-xs"
|
|
6
|
+
}
|
|
7
|
+
export declare type TitleSize = keyof typeof SizeTableClass;
|
|
8
|
+
export interface TitleProps extends Partial<HTMLHeadingElement> {
|
|
9
|
+
size?: TitleSize;
|
|
10
|
+
}
|
|
11
|
+
export declare const Title: (props: import("@redneckz/uni-jsx").PropsWithChildren<TitleProps, any>, context?: any) => any;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
export var SizeTableClass;
|
|
4
|
+
(function (SizeTableClass) {
|
|
5
|
+
SizeTableClass["XL"] = "text-title-lg";
|
|
6
|
+
SizeTableClass["L"] = "text-title";
|
|
7
|
+
SizeTableClass["M"] = "text-title-sm";
|
|
8
|
+
SizeTableClass["S"] = "text-title-xs";
|
|
9
|
+
})(SizeTableClass || (SizeTableClass = {}));
|
|
10
|
+
export const Title = JSX(({ size = 'L', className, children, ...rest }) => {
|
|
11
|
+
const Tag = size === 'XL' ? 'h1' : 'h2';
|
|
12
|
+
return (_jsx(Tag, { className: getClasses(SizeTableClass[size], className), ...rest, children: children }));
|
|
13
|
+
});
|
|
14
|
+
const getClasses = (...classes) => classes.filter(Boolean).join(' ');
|
|
15
|
+
//# sourceMappingURL=Title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Title.js","sourceRoot":"","sources":["../../src/ui-kit/Title.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,sCAAsB,CAAA;IACtB,kCAAkB,CAAA;IAClB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;AACvB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAQD,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAa,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACpF,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAM,IAAI,YAClE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,GAAG,OAA+B,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getColSpan: (className: string) => number;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const getColSpan = (className) => {
|
|
2
|
+
const colSpanPrefix = 'col-span-';
|
|
3
|
+
const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
|
|
4
|
+
return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=getColSpan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getColSpan.js","sourceRoot":"","sources":["../../src/utils/getColSpan.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC9C,MAAM,aAAa,GAAG,WAAW,CAAC;IAClC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IACnF,OAAO,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getGeolocation: () => Promise<GeolocationCoordinates>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGeolocation.js","sourceRoot":"","sources":["../../src/utils/getGeolocation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CACvC,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,EAAE,CAC9C,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAC1E,CAAC"}
|
package/package.json
CHANGED
package/src/BaseTile.tsx
CHANGED
|
@@ -2,16 +2,20 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
2
2
|
import { Img } from './Img';
|
|
3
3
|
import type { BlockVersion, Picture, UniBlockProps } from './types';
|
|
4
4
|
import { BlockItem } from './ui-kit/BlockItem';
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
5
|
+
import type { IconButtonProps } from './ui-kit/IconButton';
|
|
6
|
+
import { IconButton } from './ui-kit/IconButton';
|
|
7
|
+
import { Title } from './ui-kit/Title';
|
|
8
|
+
import type { TitleSize } from './ui-kit/Title';
|
|
7
9
|
import { useLink } from './useLink';
|
|
10
|
+
import { getColSpan } from './utils/getColSpan';
|
|
8
11
|
|
|
9
12
|
export interface BaseTileContent {
|
|
10
13
|
title?: string;
|
|
14
|
+
titleSize?: TitleSize;
|
|
11
15
|
description?: string;
|
|
12
16
|
image?: Picture;
|
|
13
17
|
items?: string[];
|
|
14
|
-
buttons?:
|
|
18
|
+
buttons?: IconButtonProps[];
|
|
15
19
|
version?: BlockVersion;
|
|
16
20
|
}
|
|
17
21
|
|
|
@@ -23,6 +27,7 @@ export const BaseTile = JSX<BaseTileProps>(
|
|
|
23
27
|
className,
|
|
24
28
|
context,
|
|
25
29
|
title,
|
|
30
|
+
titleSize,
|
|
26
31
|
description,
|
|
27
32
|
children,
|
|
28
33
|
buttons,
|
|
@@ -34,41 +39,43 @@ export const BaseTile = JSX<BaseTileProps>(
|
|
|
34
39
|
const { handlerDecorator } = context;
|
|
35
40
|
return (
|
|
36
41
|
<div className={`font-sans flex flex-col grow h-full`}>
|
|
37
|
-
{title &&
|
|
38
|
-
|
|
42
|
+
{title && (
|
|
43
|
+
<Title size={titleSize || getTitleSizeByClassName(className)} className={TITLE_CLASSES}>
|
|
44
|
+
{title}
|
|
45
|
+
</Title>
|
|
46
|
+
)}
|
|
47
|
+
<div className="flex grow justify-between">
|
|
39
48
|
<div className="flex flex-col justify-between items-start">
|
|
40
49
|
<div>
|
|
41
50
|
{description ? (
|
|
42
|
-
<div className="font-normal text-base max-w-[600px] mb-
|
|
51
|
+
<div className="font-normal text-base max-w-[600px] mb-5">{description}</div>
|
|
43
52
|
) : null}
|
|
44
53
|
{children}
|
|
45
54
|
{items?.length ? renderItems(items, version) : null}
|
|
46
55
|
</div>
|
|
47
56
|
{buttons?.length ? (
|
|
48
|
-
<div className="flex mt-
|
|
57
|
+
<div className="flex mt-9 gap-3">
|
|
49
58
|
{buttons.map((button, index) =>
|
|
50
59
|
renderButton(useLink({ router, handlerDecorator }, button), index),
|
|
51
60
|
)}
|
|
52
61
|
</div>
|
|
53
62
|
) : null}
|
|
54
63
|
</div>
|
|
55
|
-
{image?.src && <Img className="mt-auto" image={image} />}
|
|
64
|
+
{image?.src && <Img className="mt-auto ml-7" image={image} />}
|
|
56
65
|
</div>
|
|
57
66
|
</div>
|
|
58
67
|
);
|
|
59
68
|
},
|
|
60
69
|
);
|
|
61
70
|
|
|
62
|
-
function
|
|
63
|
-
const
|
|
64
|
-
const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
|
|
65
|
-
const colSpan = colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
|
|
71
|
+
function getTitleSizeByClassName(className: string = '') {
|
|
72
|
+
const colSpan = getColSpan(className);
|
|
66
73
|
if (colSpan <= 4) {
|
|
67
|
-
return
|
|
74
|
+
return 'S';
|
|
68
75
|
} else if (colSpan <= 8) {
|
|
69
|
-
return
|
|
76
|
+
return 'M';
|
|
70
77
|
} else {
|
|
71
|
-
return
|
|
78
|
+
return 'L';
|
|
72
79
|
}
|
|
73
80
|
}
|
|
74
81
|
|
|
@@ -82,6 +89,6 @@ function renderItems(items: string[] = [], version?: BlockVersion) {
|
|
|
82
89
|
);
|
|
83
90
|
}
|
|
84
91
|
|
|
85
|
-
function renderButton(button:
|
|
86
|
-
return button?.text ? <
|
|
92
|
+
function renderButton(button: IconButtonProps, i: number) {
|
|
93
|
+
return button?.text ? <IconButton key={String(i)} {...button} /> : null;
|
|
87
94
|
}
|
package/src/Blocks.ts
CHANGED
|
@@ -10,13 +10,17 @@ import { ProductGallery, ProductGalleryContent } from './ProductGallery';
|
|
|
10
10
|
import { StepsBlock, StepsBlockContent } from './StepsBlock';
|
|
11
11
|
import { ProductTile, ProductTileContent } from './ProductTile';
|
|
12
12
|
import { BaseTileContent } from './BaseTile';
|
|
13
|
+
import { PromoTile, PromoTileContent } from './PromoTile';
|
|
13
14
|
import { Tile } from './Tile';
|
|
15
|
+
import { TextBlock, TextBlockContent } from './TextBlock';
|
|
14
16
|
|
|
15
17
|
export const Blocks = {
|
|
16
18
|
Header,
|
|
17
19
|
Footer,
|
|
18
20
|
Placeholder,
|
|
19
21
|
Tile,
|
|
22
|
+
PromoTile,
|
|
23
|
+
TextBlock,
|
|
20
24
|
ProductTile,
|
|
21
25
|
ProductBlock,
|
|
22
26
|
StepsBlock,
|
|
@@ -31,7 +35,9 @@ export type BlockContent =
|
|
|
31
35
|
| FooterContent
|
|
32
36
|
| PlaceholderContent
|
|
33
37
|
| BaseTileContent
|
|
38
|
+
| TextBlockContent
|
|
34
39
|
| ProductTileContent
|
|
40
|
+
| PromoTileContent
|
|
35
41
|
| ProductBlockInnerContent
|
|
36
42
|
| StepsBlockContent
|
|
37
43
|
| BenefitsBlockContent
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { context } from './setup-fixture';
|
|
2
2
|
|
|
3
3
|
import { Blocks } from './Blocks';
|
|
4
|
-
import { toMobilePage } from './content-page-repository/toMobilePage';
|
|
5
4
|
import { BlockDecorator, ContentPage } from './ContentPage';
|
|
6
5
|
import { MobileBlocks } from './MobileBlocks';
|
|
6
|
+
import { toMobilePage } from './toMobilePage';
|
|
7
7
|
import type { ContentPageDef } from './types';
|
|
8
8
|
|
|
9
9
|
const data = require('./ContentPage.page.json');
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"type": "Header",
|
|
17
17
|
"style": ["col-span-12", "-mx-20", "mb-5", "shadow-[0_8px_32px_0px_#00000014]"],
|
|
18
18
|
"content": {
|
|
19
|
+
"defaultLocation": "Москва",
|
|
19
20
|
"topItems": [
|
|
20
21
|
{
|
|
21
22
|
"href": "https://rshb.ru/",
|
|
@@ -74,7 +75,6 @@
|
|
|
74
75
|
},
|
|
75
76
|
"productBlock": {
|
|
76
77
|
"title": "Ставка от 12,5% годовых на срок до 3 лет!»",
|
|
77
|
-
"description": "Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.",
|
|
78
78
|
"items": [
|
|
79
79
|
"Потребительский кредит по специальной процентной ставке",
|
|
80
80
|
"Получите деньги без залога и поручительства",
|
|
@@ -107,11 +107,6 @@
|
|
|
107
107
|
"productBlock": {
|
|
108
108
|
"title": "Дополнительные бонусные баллы за покупки!»",
|
|
109
109
|
"description": "Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.",
|
|
110
|
-
"items": [
|
|
111
|
-
"Потребительский кредит по специальной процентной ставке",
|
|
112
|
-
"Получите деньги без залога и поручительства",
|
|
113
|
-
"Кредитный лимит до 5 млн рублей"
|
|
114
|
-
],
|
|
115
110
|
"buttons": [
|
|
116
111
|
{
|
|
117
112
|
"href": "https://rshb.ru",
|
|
@@ -188,8 +183,8 @@
|
|
|
188
183
|
"title": "деньги",
|
|
189
184
|
"format": "webp",
|
|
190
185
|
"size": {
|
|
191
|
-
"width":
|
|
192
|
-
"height":
|
|
186
|
+
"width": 180,
|
|
187
|
+
"height": 180
|
|
193
188
|
}
|
|
194
189
|
}
|
|
195
190
|
},
|
|
@@ -203,6 +198,7 @@
|
|
|
203
198
|
"style": ["col-span-4"],
|
|
204
199
|
"content": {
|
|
205
200
|
"title": "Ипотека",
|
|
201
|
+
"titleSize": "M",
|
|
206
202
|
"description": "Широкий выбор ипотечных программ с государственной поддержкой. Специальный предложения от 12,2 %",
|
|
207
203
|
"buttons": [
|
|
208
204
|
{
|
|
@@ -235,8 +231,8 @@
|
|
|
235
231
|
"title": "Кредитка",
|
|
236
232
|
"format": "webp",
|
|
237
233
|
"size": {
|
|
238
|
-
"width":
|
|
239
|
-
"height":
|
|
234
|
+
"width": 180,
|
|
235
|
+
"height": 180
|
|
240
236
|
}
|
|
241
237
|
}
|
|
242
238
|
},
|
|
@@ -262,8 +258,8 @@
|
|
|
262
258
|
"alt": "Column",
|
|
263
259
|
"format": "webp",
|
|
264
260
|
"size": {
|
|
265
|
-
"width":
|
|
266
|
-
"height":
|
|
261
|
+
"width": 180,
|
|
262
|
+
"height": 180
|
|
267
263
|
}
|
|
268
264
|
}
|
|
269
265
|
},
|
|
@@ -294,8 +290,8 @@
|
|
|
294
290
|
"title": "Глобус",
|
|
295
291
|
"format": "webp",
|
|
296
292
|
"size": {
|
|
297
|
-
"width":
|
|
298
|
-
"height":
|
|
293
|
+
"width": 200,
|
|
294
|
+
"height": 200
|
|
299
295
|
}
|
|
300
296
|
}
|
|
301
297
|
}
|
|
@@ -359,11 +355,12 @@
|
|
|
359
355
|
}
|
|
360
356
|
},
|
|
361
357
|
{
|
|
362
|
-
"type": "
|
|
358
|
+
"type": "PromoTile",
|
|
363
359
|
"style": ["col-span-4"],
|
|
364
360
|
"content": {
|
|
365
361
|
"title": "Акции и спецпредложения",
|
|
366
362
|
"version": "secondary",
|
|
363
|
+
"date": "2022-04-16",
|
|
367
364
|
"description": "Пенсионный кредит по специальной процентной ставке",
|
|
368
365
|
"buttons": [
|
|
369
366
|
{
|
|
@@ -395,7 +392,23 @@
|
|
|
395
392
|
},
|
|
396
393
|
"mobile": {
|
|
397
394
|
"style": ["col-span-12"]
|
|
398
|
-
}
|
|
395
|
+
},
|
|
396
|
+
"buttons": [
|
|
397
|
+
{
|
|
398
|
+
"aboveText": "Загрузите в",
|
|
399
|
+
"text": "App Store",
|
|
400
|
+
"icon": "AppleIcon",
|
|
401
|
+
"href": "/credits",
|
|
402
|
+
"version": "secondary"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"aboveText": "Доступно в",
|
|
406
|
+
"text": "Google Play",
|
|
407
|
+
"icon": "PlayMarket",
|
|
408
|
+
"href": "/credits",
|
|
409
|
+
"version": "secondary"
|
|
410
|
+
}
|
|
411
|
+
]
|
|
399
412
|
},
|
|
400
413
|
{
|
|
401
414
|
"type": "Unknown",
|
|
@@ -497,8 +510,8 @@
|
|
|
497
510
|
"alt": "Кредиты в РСХБ",
|
|
498
511
|
"format": "webp",
|
|
499
512
|
"size": {
|
|
500
|
-
"width":
|
|
501
|
-
"height":
|
|
513
|
+
"width": 180,
|
|
514
|
+
"height": 180
|
|
502
515
|
}
|
|
503
516
|
}
|
|
504
517
|
},
|
|
@@ -539,8 +552,8 @@
|
|
|
539
552
|
"alt": "Пенсионный кредит в РСХБ",
|
|
540
553
|
"format": "webp",
|
|
541
554
|
"size": {
|
|
542
|
-
"width":
|
|
543
|
-
"height":
|
|
555
|
+
"width": 180,
|
|
556
|
+
"height": 180
|
|
544
557
|
}
|
|
545
558
|
}
|
|
546
559
|
},
|
|
@@ -581,8 +594,8 @@
|
|
|
581
594
|
"alt": "Кредит под залог недвижимости в РСХБ",
|
|
582
595
|
"format": "webp",
|
|
583
596
|
"size": {
|
|
584
|
-
"width":
|
|
585
|
-
"height":
|
|
597
|
+
"width": 180,
|
|
598
|
+
"height": 180
|
|
586
599
|
}
|
|
587
600
|
}
|
|
588
601
|
},
|
|
@@ -596,6 +609,7 @@
|
|
|
596
609
|
"version": "secondary",
|
|
597
610
|
"content": {
|
|
598
611
|
"title": "Кредит пенсионный",
|
|
612
|
+
"titleSize": "M",
|
|
599
613
|
"description": "Для людей в возрасте до 75 лет",
|
|
600
614
|
"benefits": [
|
|
601
615
|
{
|
|
@@ -674,6 +688,17 @@
|
|
|
674
688
|
]
|
|
675
689
|
}
|
|
676
690
|
},
|
|
691
|
+
{
|
|
692
|
+
"type": "TextBlock",
|
|
693
|
+
"style": ["col-span-12"],
|
|
694
|
+
"content": {
|
|
695
|
+
"title": "Все карты Россельхозбанка работают",
|
|
696
|
+
"description": "Если не планируете поездку за границу, продолжайте пользоваться картой Своя. Для поездок за границу можно заказать карту 'Кредитная карта Своя Union Pay' на сайте и в приложении Россельхозбанка",
|
|
697
|
+
"blockVersion": "primary",
|
|
698
|
+
"iconVersion": "small"
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
|
|
677
702
|
{
|
|
678
703
|
"type": "Footer",
|
|
679
704
|
"style": ["col-span-12"],
|
package/src/ContentPage.tsx
CHANGED
|
@@ -37,7 +37,7 @@ export const ContentPage = JSX<ContentPageProps>(
|
|
|
37
37
|
}) => {
|
|
38
38
|
return (
|
|
39
39
|
<section className="relative" data-theme={colorPalette}>
|
|
40
|
-
<div className={`grid grid-cols-12 gap-1 ${style2className(pageStyle)} ${className}`}>
|
|
40
|
+
<div className={`grid grid-cols-12 gap-1 ${style2className(pageStyle)} ${className || ''}`}>
|
|
41
41
|
{blocks?.length ? blocks.map(renderBlock) : null}
|
|
42
42
|
</div>
|
|
43
43
|
{likeControl && (
|