@redneckz/wildless-cms-uni-blocks 0.2.91 → 0.2.94
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 +156 -80
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/api/LikeAPI.js +1 -0
- package/dist/api/LikeAPI.js.map +1 -1
- package/dist/components/Accordion/AccordionContent.d.ts +38 -14
- package/dist/components/Accordion/AccordionItem.js +8 -6
- package/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/components/BaseTile/BaseTile.js +1 -1
- package/dist/components/BaseTile/BaseTile.js.map +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/ComparisonTable/ComparisonTable.js +12 -10
- package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +0 -18
- package/dist/components/ComparisonTable/HeaderCell.js +1 -1
- package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
- package/dist/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
- package/dist/components/ComparisonTable/TableCarouselContainer.js +5 -2
- package/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
- package/dist/components/ComparisonTable/TableRow.js +1 -1
- package/dist/components/ComparisonTable/TableRow.js.map +1 -1
- package/dist/components/ContentPage/ContentPage.d.ts +9 -1
- package/dist/components/ContentPage/ContentPage.js +20 -17
- package/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/dist/components/ContentPage/ContentPageHead.d.ts +1 -1
- package/dist/components/ContentPage/toMobilePage.js +13 -2
- package/dist/components/ContentPage/toMobilePage.js.map +1 -1
- package/dist/components/CreditCalculator/CreditCalculator.js +1 -1
- package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/dist/components/Footer/Contacts.js +1 -1
- package/dist/components/Footer/Contacts.js.map +1 -1
- package/dist/components/Footer/FooterContent.d.ts +1 -2
- package/dist/components/Footer/HorizontalNavigation.js +1 -1
- package/dist/components/Footer/SocialMedia.js +1 -2
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Gallery/GalleryInner.js +2 -2
- package/dist/components/Gallery/GalleryInner.js.map +1 -1
- package/dist/components/Header/Header.js +3 -3
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/LinkDocs/LinkDocs.js +5 -5
- package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
- package/dist/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
- package/dist/components/MobileBlocks.js +0 -3
- package/dist/components/MobileBlocks.js.map +1 -1
- package/dist/components/PictureText/PictureTextContent.d.ts +1 -3
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlock.js +1 -1
- package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlock.mobile.js +3 -1
- package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlockInner.js +2 -5
- package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/dist/components/ProductGallery/ProductGallery.js +2 -2
- package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
- package/dist/components/PromoTile/PromoTile.d.ts +1 -1
- package/dist/components/PromoTile/PromoTile.js +1 -1
- package/dist/components/PromoTile/PromoTile.js.map +1 -1
- package/dist/components/TariffsTable/TariffsTable.d.ts +5 -0
- package/dist/components/TariffsTable/TariffsTable.js +25 -0
- package/dist/components/TariffsTable/TariffsTable.js.map +1 -0
- package/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -0
- package/dist/components/TariffsTable/TariffsTableCell.js +18 -0
- package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -0
- package/dist/components/TariffsTable/TariffsTableContent.d.ts +55 -0
- package/dist/components/TariffsTable/TariffsTableContent.js +2 -0
- package/dist/components/TariffsTable/TariffsTableContent.js.map +1 -0
- package/dist/components/TariffsTable/TariffsTableRow.d.ts +8 -0
- package/dist/components/TariffsTable/TariffsTableRow.js +13 -0
- package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -0
- package/dist/components/TariffsTable/constants.d.ts +4 -0
- package/dist/components/TariffsTable/constants.js +7 -0
- package/dist/components/TariffsTable/constants.js.map +1 -0
- package/dist/components/TextBlock/TextBlock.d.ts +1 -1
- package/dist/components/TextBlock/TextBlock.js +1 -1
- package/dist/components/TextBlock/TextBlock.js.map +1 -1
- package/dist/components/TextBlock/TextBlockContent.d.ts +1 -2
- package/dist/components/Tile/Tile.d.ts +1 -1
- package/dist/components/Tile/Tile.js +14 -2
- package/dist/components/Tile/Tile.js.map +1 -1
- package/dist/content-page-repository/ContentPageRepository.js +1 -0
- package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/dist/hooks/useComparisonTableScroll.d.ts +12 -0
- package/dist/hooks/useComparisonTableScroll.js +12 -0
- package/dist/hooks/useComparisonTableScroll.js.map +1 -0
- package/dist/hooks/useLink.js +1 -1
- package/dist/hooks/useLink.js.map +1 -1
- package/dist/model/TableVersion.d.ts +1 -0
- package/dist/model/TableVersion.js +2 -0
- package/dist/model/TableVersion.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/ui-kit/BlockItem/BlockItem.d.ts +1 -9
- package/dist/ui-kit/BlockItem/BlockItem.js +5 -5
- package/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/dist/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
- package/dist/ui-kit/BlockItem/BlockItemProps.js +2 -0
- package/dist/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
- package/dist/ui-kit/Icon/IconProps.d.ts +57 -25
- package/dist/ui-kit/Icon/IconProps.js +39 -23
- package/dist/ui-kit/Icon/IconProps.js.map +1 -1
- package/dist/ui-kit/InputRange/InputRange.js +1 -1
- package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
- package/dist/ui-kit/SearchBar.js +2 -1
- package/dist/ui-kit/SearchBar.js.map +1 -1
- package/lib/api/LikeAPI.js +1 -0
- package/lib/api/LikeAPI.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Accordion/Accordion.fixture.d.ts +1 -4
- package/lib/components/Accordion/AccordionContent.d.ts +38 -14
- package/lib/components/Accordion/AccordionItem.js +8 -6
- package/lib/components/Accordion/AccordionItem.js.map +1 -1
- package/lib/components/BaseTile/BaseTile.js +1 -1
- package/lib/components/BaseTile/BaseTile.js.map +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/ComparisonTable/ComparisonTable.js +12 -10
- package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +0 -18
- package/lib/components/ComparisonTable/HeaderCell.js +1 -1
- package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
- package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
- package/lib/components/ComparisonTable/TableCarouselContainer.js +5 -2
- package/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
- package/lib/components/ComparisonTable/TableRow.js +2 -2
- package/lib/components/ComparisonTable/TableRow.js.map +1 -1
- package/lib/components/ContentPage/ContentPage.d.ts +9 -1
- package/lib/components/ContentPage/ContentPage.js +20 -17
- package/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/lib/components/ContentPage/ContentPageHead.d.ts +1 -1
- package/lib/components/ContentPage/toMobilePage.js +13 -2
- package/lib/components/ContentPage/toMobilePage.js.map +1 -1
- package/lib/components/CreditCalculator/CreditCalculator.js +1 -1
- package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/lib/components/Footer/Contacts.js +1 -1
- package/lib/components/Footer/Contacts.js.map +1 -1
- package/lib/components/Footer/FooterContent.d.ts +1 -2
- package/lib/components/Footer/HorizontalNavigation.js +1 -1
- package/lib/components/Footer/SocialMedia.js +1 -2
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Gallery/GalleryInner.js +2 -2
- package/lib/components/Gallery/GalleryInner.js.map +1 -1
- package/lib/components/Header/Header.js +3 -3
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Headline/Headline.fixture.d.ts +3 -2
- package/lib/components/LinkDocs/LinkDocs.fixture.d.ts +7 -7
- package/lib/components/LinkDocs/LinkDocs.js +5 -5
- package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
- package/lib/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
- package/lib/components/MobileBlocks.js +0 -3
- package/lib/components/MobileBlocks.js.map +1 -1
- package/lib/components/PictureText/PictureText.fixture.d.ts +2 -0
- package/lib/components/PictureText/PictureTextContent.d.ts +1 -3
- package/lib/components/Placeholder/Placeholder.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlock.js +1 -1
- package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlock.mobile.js +3 -1
- package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlockInner.js +2 -5
- package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/lib/components/ProductGallery/ProductGallery.js +2 -2
- package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
- package/lib/components/PromoTile/PromoTile.d.ts +1 -1
- package/lib/components/PromoTile/PromoTile.js +1 -1
- package/lib/components/PromoTile/PromoTile.js.map +1 -1
- package/lib/components/TariffsTable/TariffsTable.d.ts +5 -0
- package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +7 -0
- package/lib/components/TariffsTable/TariffsTable.js +23 -0
- package/lib/components/TariffsTable/TariffsTable.js.map +1 -0
- package/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -0
- package/lib/components/TariffsTable/TariffsTableCell.js +16 -0
- package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -0
- package/lib/components/TariffsTable/TariffsTableContent.d.ts +55 -0
- package/lib/components/TariffsTable/TariffsTableContent.js +2 -0
- package/lib/components/TariffsTable/TariffsTableContent.js.map +1 -0
- package/lib/components/TariffsTable/TariffsTableRow.d.ts +8 -0
- package/lib/components/TariffsTable/TariffsTableRow.js +11 -0
- package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -0
- package/lib/components/TariffsTable/constants.d.ts +4 -0
- package/lib/components/TariffsTable/constants.js +5 -0
- package/lib/components/TariffsTable/constants.js.map +1 -0
- package/lib/components/TextBlock/TextBlock.d.ts +1 -1
- package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
- package/lib/components/TextBlock/TextBlock.js +1 -1
- package/lib/components/TextBlock/TextBlock.js.map +1 -1
- package/lib/components/TextBlock/TextBlockContent.d.ts +1 -2
- package/lib/components/Tile/Tile.d.ts +1 -1
- package/lib/components/Tile/Tile.js +14 -2
- package/lib/components/Tile/Tile.js.map +1 -1
- package/lib/content-page-repository/ContentPageRepository.js +1 -0
- package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/lib/hooks/useComparisonTableScroll.d.ts +12 -0
- package/lib/hooks/useComparisonTableScroll.js +9 -0
- package/lib/hooks/useComparisonTableScroll.js.map +1 -0
- package/lib/hooks/useLink.js +1 -1
- package/lib/hooks/useLink.js.map +1 -1
- package/lib/model/TableVersion.d.ts +1 -0
- package/lib/model/TableVersion.js +2 -0
- package/lib/model/TableVersion.js.map +1 -0
- package/lib/types.d.ts +8 -0
- package/lib/ui-kit/BlockItem/BlockItem.d.ts +1 -9
- package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +6 -1
- package/lib/ui-kit/BlockItem/BlockItem.js +5 -5
- package/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/lib/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
- package/lib/ui-kit/BlockItem/BlockItemProps.js +2 -0
- package/lib/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
- package/lib/ui-kit/Icon/IconProps.d.ts +57 -25
- package/lib/ui-kit/Icon/IconProps.js +39 -23
- package/lib/ui-kit/Icon/IconProps.js.map +1 -1
- package/lib/ui-kit/InputRange/InputRange.js +1 -1
- package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
- package/lib/ui-kit/SearchBar.js +2 -1
- package/lib/ui-kit/SearchBar.js.map +1 -1
- package/package.json +19 -9
- package/src/api/LikeAPI.ts +1 -0
- package/src/components/Accordion/Accordion.example.json +18 -42
- package/src/components/Accordion/Accordion.fixture.tsx +29 -119
- package/src/components/Accordion/AccordionContent.ts +47 -18
- package/src/components/Accordion/AccordionItem.tsx +13 -9
- package/src/components/BaseTile/BaseTile.tsx +6 -3
- package/src/components/BlockContent.ts +2 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/ComparisonTable/ComparisonTable.tsx +17 -14
- package/src/components/ComparisonTable/ComparisonTableContent.ts +0 -19
- package/src/components/ComparisonTable/HeaderCell.tsx +3 -3
- package/src/components/ComparisonTable/TableCarouselContainer.tsx +11 -4
- package/src/components/ComparisonTable/TableRow.tsx +2 -2
- package/src/components/ContentPage/ContentPage.fixture.tsx +3 -3
- package/src/components/ContentPage/ContentPage.page.json +426 -22
- package/src/components/ContentPage/ContentPage.tsx +71 -36
- package/src/components/ContentPage/ContentPageHead.tsx +1 -1
- package/src/components/ContentPage/toMobilePage.ts +19 -2
- package/src/components/CreditCalculator/CreditCalculator.tsx +1 -1
- package/src/components/Footer/Contacts.tsx +1 -1
- package/src/components/Footer/FooterContent.ts +1 -1
- package/src/components/Footer/HorizontalNavigation.tsx +1 -1
- package/src/components/Footer/SocialMedia.tsx +5 -6
- package/src/components/Gallery/GalleryInner.tsx +2 -1
- package/src/components/Header/Header.tsx +14 -12
- package/src/components/Headline/Headline.fixture.tsx +11 -34
- package/src/components/LinkDocs/LinkDocs.example.json +26 -0
- package/src/components/LinkDocs/LinkDocs.fixture.tsx +13 -13
- package/src/components/LinkDocs/LinkDocs.tsx +9 -8
- package/src/components/MiniGallery/MiniGalleryContent.ts +1 -1
- package/src/components/MobileBlocks.ts +0 -3
- package/src/components/PictureText/PictureText.fixture.tsx +20 -20
- package/src/components/PictureText/PictureTextContent.ts +1 -3
- package/src/components/Placeholder/Placeholder.tsx +2 -2
- package/src/components/ProductBlock/ProductBlock.fixture.tsx +1 -0
- package/src/components/ProductBlock/ProductBlock.mobile.tsx +1 -0
- package/src/components/ProductBlock/ProductBlock.tsx +3 -1
- package/src/components/ProductBlock/ProductBlockInner.tsx +9 -12
- package/src/components/ProductGallery/ProductGallery.example.json +1 -1
- package/src/components/ProductGallery/ProductGallery.fixture.tsx +7 -13
- package/src/components/ProductGallery/ProductGallery.tsx +7 -5
- package/src/components/PromoTile/PromoTile.tsx +3 -3
- package/src/components/TariffsTable/TariffsTable.example.json +87 -0
- package/src/components/TariffsTable/TariffsTable.fixture.tsx +195 -0
- package/src/components/TariffsTable/TariffsTable.tsx +74 -0
- package/src/components/TariffsTable/TariffsTableCell.tsx +64 -0
- package/src/components/TariffsTable/TariffsTableContent.ts +61 -0
- package/src/components/TariffsTable/TariffsTableRow.tsx +46 -0
- package/src/components/TariffsTable/constants.ts +4 -0
- package/src/components/TextBlock/TextBlock.example.json +9 -2
- package/src/components/TextBlock/TextBlock.fixture.tsx +20 -64
- package/src/components/TextBlock/TextBlock.tsx +2 -2
- package/src/components/TextBlock/TextBlockContent.ts +1 -2
- package/src/components/Tile/Tile.example.json +5 -2
- package/src/components/Tile/Tile.tsx +16 -5
- package/src/content-page-repository/ContentPageRepository.ts +1 -0
- package/src/hooks/useComparisonTableScroll.ts +21 -0
- package/src/hooks/useLink.ts +1 -1
- package/src/model/TableVersion.ts +1 -0
- package/src/types.ts +11 -1
- package/src/ui-kit/BlockItem/BlockItem.fixture.tsx +8 -1
- package/src/ui-kit/BlockItem/BlockItem.tsx +7 -18
- package/src/ui-kit/BlockItem/BlockItemProps.ts +22 -0
- package/src/ui-kit/Icon/IconProps.ts +34 -2
- package/src/ui-kit/InputRange/InputRange.tsx +2 -2
- package/src/ui-kit/SearchBar.tsx +16 -6
|
@@ -33,7 +33,7 @@ interface HorizontalNavigationLinkProps extends LinkProps {
|
|
|
33
33
|
const HorizontalNavigationLink = JSX<Partial<HorizontalNavigationLinkProps>>(
|
|
34
34
|
({ className, index, text, href, target, onClick }) => (
|
|
35
35
|
<a
|
|
36
|
-
className={`font-sans font-normal text-sm text-secondary-text hover:text-primary-
|
|
36
|
+
className={`font-sans font-normal text-sm text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${
|
|
37
37
|
className || ''
|
|
38
38
|
}`}
|
|
39
39
|
href={href}
|
|
@@ -51,14 +51,13 @@ const MediaButton = JSX<MediaButtonProps>(({ href }) => {
|
|
|
51
51
|
if (!icon) return null;
|
|
52
52
|
|
|
53
53
|
return (
|
|
54
|
-
<
|
|
55
|
-
rounded
|
|
54
|
+
<a
|
|
55
|
+
className="flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[38px] h-[38px] hover:fill-primary-main"
|
|
56
56
|
href={href}
|
|
57
57
|
target="_blank"
|
|
58
58
|
rel="noopener noreferrer"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/>
|
|
59
|
+
>
|
|
60
|
+
{Icon && <Icon name={icon} width={width} height={height} asSVG className="block" />}
|
|
61
|
+
</a>
|
|
63
62
|
);
|
|
64
63
|
});
|
|
@@ -49,7 +49,7 @@ export const GalleryInner = JSX<GalleryInnerProps>(
|
|
|
49
49
|
|
|
50
50
|
return (
|
|
51
51
|
<section
|
|
52
|
-
className={`relative font-sans text-primary-text bg-white p-12 overflow-hidden ${className}`}
|
|
52
|
+
className={`relative font-sans text-primary-text bg-white p-12 py-[50px] overflow-hidden ${className}`}
|
|
53
53
|
>
|
|
54
54
|
<div className="flex flex-col items-center mb-8">
|
|
55
55
|
{title ? <Title className="font-medium m-0 text-center">{title}</Title> : null}
|
|
@@ -68,6 +68,7 @@ export const GalleryInner = JSX<GalleryInnerProps>(
|
|
|
68
68
|
>
|
|
69
69
|
{cards?.map((card, i) => renderCard(card, i, version))}
|
|
70
70
|
</div>
|
|
71
|
+
<div className="absolute top-0 left-0 bottom-0 w-[84px] bg-gradient-to-r from-white to-transparent"></div>
|
|
71
72
|
{showPrevButton && (
|
|
72
73
|
<ArrowButton
|
|
73
74
|
className="absolute top-1/2 left-8 rotate-180"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useLink } from '../../hooks/useLink';
|
|
3
|
+
import { useSitemap } from '../../hooks/useSitemap';
|
|
2
4
|
import { mergeTopItems } from '../../mergeTopItems';
|
|
3
5
|
import type { UniBlockProps } from '../../types';
|
|
4
6
|
import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
|
|
5
7
|
import { Logo } from '../../ui-kit/Logo/Logo';
|
|
6
8
|
import { TopItem } from '../../ui-kit/TopItem/TopItem';
|
|
7
|
-
import { useLink } from '../../hooks/useLink';
|
|
8
|
-
import { useSitemap } from '../../hooks/useSitemap';
|
|
9
9
|
import type { HeaderContent } from './HeaderContent';
|
|
10
10
|
import { HeaderSecondaryMenu } from './HeaderSecondaryMenu';
|
|
11
11
|
import { isSubItemActive } from './isSubItemActive';
|
|
@@ -43,17 +43,19 @@ export const Header = JSX<HeaderProps>(({ className, defaultLocation, context, t
|
|
|
43
43
|
|
|
44
44
|
return (
|
|
45
45
|
<header className={`pt-5 pb-8 px-20 bg-white ${className || ''}`}>
|
|
46
|
-
<div className="
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
<div className="container">
|
|
47
|
+
<div className="flex items-center">
|
|
48
|
+
<Logo className="mr-8" />
|
|
49
|
+
{topMenu}
|
|
50
|
+
<HeaderSecondaryMenu
|
|
51
|
+
context={context}
|
|
52
|
+
className="ml-auto"
|
|
53
|
+
defaultLocation={defaultLocation}
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
<div className="mt-5 h-[1px] bg-main-divider" />
|
|
57
|
+
<nav className="mt-5">{subMenu}</nav>
|
|
54
58
|
</div>
|
|
55
|
-
<div className="mt-5 h-[1px] bg-main-divider" />
|
|
56
|
-
<nav className="mt-5">{subMenu}</nav>
|
|
57
59
|
</header>
|
|
58
60
|
);
|
|
59
61
|
});
|
|
@@ -1,42 +1,19 @@
|
|
|
1
1
|
import { context } from '../../setup-fixture';
|
|
2
2
|
|
|
3
3
|
import { Headline } from './Headline';
|
|
4
|
+
import { HeadlineContent } from './HeadlineContent';
|
|
5
|
+
|
|
6
|
+
export const HEADLINE: HeadlineContent = {
|
|
7
|
+
title: 'Своя кредитная карта',
|
|
8
|
+
description: 'Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах.',
|
|
9
|
+
align: 'center',
|
|
10
|
+
bgColor: 'transparent',
|
|
11
|
+
};
|
|
4
12
|
|
|
5
13
|
export default {
|
|
6
|
-
default:
|
|
7
|
-
|
|
8
|
-
title="Своя кредитная карта"
|
|
9
|
-
description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
|
|
10
|
-
align="left"
|
|
11
|
-
bgColor="bg-white"
|
|
12
|
-
context={context}
|
|
13
|
-
/>
|
|
14
|
-
),
|
|
15
|
-
'center transparent': (
|
|
16
|
-
<Headline
|
|
17
|
-
title="Своя кредитная карта"
|
|
18
|
-
description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
|
|
19
|
-
align="center"
|
|
20
|
-
bgColor="transparent"
|
|
21
|
-
context={context}
|
|
22
|
-
/>
|
|
23
|
-
),
|
|
14
|
+
default: <Headline context={context} {...HEADLINE} />,
|
|
15
|
+
'left white': <Headline context={context} {...HEADLINE} align="left" bgColor="bg-white" />,
|
|
24
16
|
'right transparent': (
|
|
25
|
-
<Headline
|
|
26
|
-
title="Своя кредитная карта"
|
|
27
|
-
description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
|
|
28
|
-
align="right"
|
|
29
|
-
bgColor="transparent"
|
|
30
|
-
context={context}
|
|
31
|
-
/>
|
|
32
|
-
),
|
|
33
|
-
'right white': (
|
|
34
|
-
<Headline
|
|
35
|
-
title="Своя кредитная карта"
|
|
36
|
-
description="Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах."
|
|
37
|
-
align="right"
|
|
38
|
-
bgColor="bg-white"
|
|
39
|
-
context={context}
|
|
40
|
-
/>
|
|
17
|
+
<Headline context={context} {...HEADLINE} align="right" bgColor="transparent" />
|
|
41
18
|
),
|
|
42
19
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Дополнительные документы",
|
|
3
|
+
"icon": "DocIcon",
|
|
4
|
+
"documents": [
|
|
5
|
+
{
|
|
6
|
+
"text": "Документ №1",
|
|
7
|
+
"href": "/documents/document1.doc",
|
|
8
|
+
"fileSize": "123КБ"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"text": "Документ №2",
|
|
12
|
+
"href": "/documents/document2.rtf",
|
|
13
|
+
"target": "_blank"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"text": "Документ №3",
|
|
17
|
+
"href": "/abc3/map.jpeg",
|
|
18
|
+
"fileSize": "2МБ"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"text": "Документ №4",
|
|
22
|
+
"href": "/abc/map.rar"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"columnsMode": "double"
|
|
26
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { LinkDocs } from './LinkDocs';
|
|
2
1
|
import { context } from '../../setup-fixture';
|
|
2
|
+
import { LinkDocs } from './LinkDocs';
|
|
3
3
|
import type { LinkDocsContent } from './LinkDocsContent';
|
|
4
4
|
|
|
5
|
-
export const
|
|
5
|
+
export const LINK_DOCS: LinkDocsContent = {
|
|
6
6
|
title: 'Дополнительные документы',
|
|
7
7
|
icon: 'DocIcon',
|
|
8
8
|
documents: [
|
|
@@ -14,7 +14,7 @@ export const LinkDocsFixtureSetOne: LinkDocsContent = {
|
|
|
14
14
|
{ text: 'документ 6', href: '/abc6/abc.pdf' },
|
|
15
15
|
{ text: 'Text text text', href: '/abc7/yolo.png' },
|
|
16
16
|
{
|
|
17
|
-
text: 'Some more generic text, and even more, more text',
|
|
17
|
+
text: 'Some more generic text to stretch item, and even more, more text, and more generic text, and even more, more text, and even more',
|
|
18
18
|
href: '/abc8/archive.zip',
|
|
19
19
|
fileSize: '2.3МБ',
|
|
20
20
|
},
|
|
@@ -27,25 +27,25 @@ export const LinkDocsFixtureSetOne: LinkDocsContent = {
|
|
|
27
27
|
],
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export const
|
|
31
|
-
...
|
|
30
|
+
export const LINK_DOCS_ONE_COLUMN: LinkDocsContent = {
|
|
31
|
+
...LINK_DOCS,
|
|
32
32
|
columnsMode: 'single',
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
export const
|
|
36
|
-
...
|
|
35
|
+
export const LINK_DOCS_ANOTHER_ICON: LinkDocsContent = {
|
|
36
|
+
...LINK_DOCS,
|
|
37
37
|
icon: 'GlassIcon',
|
|
38
38
|
title: '',
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
export const
|
|
42
|
-
...
|
|
41
|
+
export const LINK_DOCS_NO_ICON: LinkDocsContent = {
|
|
42
|
+
...LINK_DOCS,
|
|
43
43
|
icon: undefined,
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
export default {
|
|
47
|
-
'
|
|
48
|
-
'one column': <LinkDocs context={context} {...
|
|
49
|
-
'another icon
|
|
50
|
-
'no icon': <LinkDocs context={context} {...
|
|
47
|
+
'two columns (default)': <LinkDocs context={context} {...LINK_DOCS} />,
|
|
48
|
+
'one column': <LinkDocs context={context} {...LINK_DOCS_ONE_COLUMN} />,
|
|
49
|
+
'another icon': <LinkDocs context={context} {...LINK_DOCS_ANOTHER_ICON} />,
|
|
50
|
+
'no icon and title': <LinkDocs context={context} {...LINK_DOCS_NO_ICON} />,
|
|
51
51
|
};
|
|
@@ -13,7 +13,7 @@ const titleAlignStyleMap: Record<AlignType, string> = {
|
|
|
13
13
|
|
|
14
14
|
const titleMarginsStyleMap: Record<LinkColumnsMode, string> = {
|
|
15
15
|
double: 'mb-8',
|
|
16
|
-
single: '',
|
|
16
|
+
single: 'mb-[26px]',
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
const linkColumnsModeStyleMap: Record<LinkColumnsMode, string> = {
|
|
@@ -31,7 +31,7 @@ export const LinkDocs = JSX<LinkDocsProps>(
|
|
|
31
31
|
<section className={`font-sans p-[50px] bg-white ${className}`}>
|
|
32
32
|
{title && (
|
|
33
33
|
<Title
|
|
34
|
-
className={`font-medium
|
|
34
|
+
className={`font-medium mt-0 ${titleMarginsStyleMap[columnsMode]} ${
|
|
35
35
|
titleAlignStyleMap[align ?? 'center']
|
|
36
36
|
}`}
|
|
37
37
|
>
|
|
@@ -40,16 +40,17 @@ export const LinkDocs = JSX<LinkDocsProps>(
|
|
|
40
40
|
)}
|
|
41
41
|
<div className={`flex ${containerClasses}`} role="list">
|
|
42
42
|
{documents?.length
|
|
43
|
-
? documents.map(({ text, fileSize, ...linkProps }) => (
|
|
43
|
+
? documents.map(({ text, fileSize, ...linkProps }, i) => (
|
|
44
44
|
<a
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
key={String(i)}
|
|
46
|
+
className={`group flex text-sm align-middle h-fit
|
|
47
|
+
text-primary-text no-underline hover:text-primary-main
|
|
48
|
+
${columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : ''}`}
|
|
48
49
|
role="listitem"
|
|
49
50
|
{...linkProps}
|
|
50
51
|
>
|
|
51
|
-
{icon && <Icon className="mr-
|
|
52
|
-
<span>
|
|
52
|
+
{icon && <Icon className="mr-2.5" name={icon} width="24px" height="24px" />}
|
|
53
|
+
<span className="self-center">
|
|
53
54
|
{text}
|
|
54
55
|
<span className="text-secondary-text group-hover:text-primary-main">
|
|
55
56
|
{linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize)}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { context } from '../../setup-fixture';
|
|
2
2
|
|
|
3
|
-
import { PictureText } from './PictureText';
|
|
4
3
|
import type { Picture } from '../../model/Picture';
|
|
4
|
+
import { PictureText } from './PictureText';
|
|
5
|
+
import type { PictureTextContent } from './PictureTextContent';
|
|
5
6
|
|
|
6
7
|
const image: Picture = {
|
|
7
8
|
src: 'legal-support-business.png',
|
|
@@ -13,24 +14,23 @@ const image: Picture = {
|
|
|
13
14
|
alt: 'Варианты потребительского кредита',
|
|
14
15
|
};
|
|
15
16
|
|
|
17
|
+
export const PICTURE_TEXT: PictureTextContent = {
|
|
18
|
+
title: 'Варианты потребительского кредита',
|
|
19
|
+
benefits: [
|
|
20
|
+
{
|
|
21
|
+
label: 'Кредит по одному документу',
|
|
22
|
+
description: 'До 300 тыс ₽ по упрощённой процедуре получения кредита',
|
|
23
|
+
icon: 'DocumentText',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: 'Кредит на общих условиях',
|
|
27
|
+
description: 'До 5 млн ₽ на общих условиях получения кредита',
|
|
28
|
+
icon: 'DiscountShape',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
image,
|
|
32
|
+
};
|
|
33
|
+
|
|
16
34
|
export default {
|
|
17
|
-
default:
|
|
18
|
-
<PictureText
|
|
19
|
-
context={context}
|
|
20
|
-
title={'Варианты потребительского кредита'}
|
|
21
|
-
benefits={[
|
|
22
|
-
{
|
|
23
|
-
label: 'Кредит по одному документу',
|
|
24
|
-
description: 'До 300 тыс ₽ по упрощённой процедуре получения кредита',
|
|
25
|
-
icon: 'DocumentText',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
label: 'Кредит на общих условиях',
|
|
29
|
-
description: 'До 5 млн ₽ на общих условиях получения кредита',
|
|
30
|
-
icon: 'DiscountShape',
|
|
31
|
-
},
|
|
32
|
-
]}
|
|
33
|
-
image={image}
|
|
34
|
-
/>
|
|
35
|
-
),
|
|
35
|
+
default: <PictureText context={context} {...PICTURE_TEXT} />,
|
|
36
36
|
};
|
|
@@ -5,8 +5,6 @@ import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
|
5
5
|
* @title Картинка с текстом
|
|
6
6
|
*/
|
|
7
7
|
export interface PictureTextContent extends Pick<BaseTileCommonProps, 'title' | 'image'> {
|
|
8
|
-
/**
|
|
9
|
-
* @title Список преимуществ
|
|
10
|
-
*/
|
|
8
|
+
/** @title Список преимуществ */
|
|
11
9
|
benefits?: Benefit[];
|
|
12
10
|
}
|
|
@@ -17,12 +17,12 @@ export const Placeholder = JSX<PlaceholderProps>(({ className, context, title })
|
|
|
17
17
|
);
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
-
const renderShimmer = (size
|
|
20
|
+
const renderShimmer = (size = 3) =>
|
|
21
21
|
goldenSequence(100, size)
|
|
22
22
|
.map((_) => Math.floor(_))
|
|
23
23
|
.map(renderShimmerItem);
|
|
24
24
|
|
|
25
|
-
const renderShimmerItem = (width
|
|
25
|
+
const renderShimmerItem = (width = 100, index: number) => (
|
|
26
26
|
<div key={String(index)} style={{ width: `${width}%` }} className="h-4 mt-2 bg-secondary-light" />
|
|
27
27
|
);
|
|
28
28
|
|
|
@@ -6,6 +6,7 @@ import { ProductBlockInner } from './ProductBlockInner';
|
|
|
6
6
|
export interface ProductBlockProps extends ProductBlockInnerCommonProps, UniBlockProps {}
|
|
7
7
|
|
|
8
8
|
export const ProductBlock = JSX<ProductBlockProps>(
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
9
10
|
({ titleSize, image, benefits, ...props } /* Get rid of image and benefits */) => {
|
|
10
11
|
const { className } = props;
|
|
11
12
|
return (
|
|
@@ -14,7 +14,9 @@ export const ProductBlock = JSX<ProductBlockProps>((props) => {
|
|
|
14
14
|
const { handlerDecorator } = context;
|
|
15
15
|
return (
|
|
16
16
|
<section
|
|
17
|
-
className={`font-sans bg-white pt-10 pl-[50px] pb-[50px] pr-[7.5rem] ${
|
|
17
|
+
className={`font-sans bg-white pt-10 pl-[50px] pb-[50px] pr-[7.5rem] box-border min-h-[420px] ${
|
|
18
|
+
className || ''
|
|
19
|
+
}`}
|
|
18
20
|
>
|
|
19
21
|
{breadcrumbs?.length ? (
|
|
20
22
|
<div className="text-xs mb-6">
|
|
@@ -2,7 +2,6 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
2
2
|
import type { UniBlockProps } from '../../types';
|
|
3
3
|
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
4
4
|
import { Img } from '../../ui-kit/Img';
|
|
5
|
-
import { Title } from '../../ui-kit/Title/Title';
|
|
6
5
|
import { BaseTile } from '../BaseTile/BaseTile';
|
|
7
6
|
import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
8
7
|
import type { ProductBlockInnerCommonProps } from './ProductBlockContent';
|
|
@@ -14,16 +13,14 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
|
|
|
14
13
|
return (
|
|
15
14
|
<div className={`flex grow justify-between items-stretch ${className || ''}`}>
|
|
16
15
|
<div className={'flex flex-col'}>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
)}
|
|
26
|
-
<BaseTile context={context} description={description} items={items} buttons={buttons}>
|
|
16
|
+
<BaseTile
|
|
17
|
+
context={context}
|
|
18
|
+
title={title}
|
|
19
|
+
titleSize={titleSize || 'XL'}
|
|
20
|
+
description={description}
|
|
21
|
+
items={items}
|
|
22
|
+
buttons={buttons}
|
|
23
|
+
>
|
|
27
24
|
{benefits?.length ? (
|
|
28
25
|
<div className="flex gap-6 mt-6 mb-3.5">{benefits.map(renderBenefit)}</div>
|
|
29
26
|
) : null}
|
|
@@ -46,7 +43,7 @@ function renderBenefit(benefit: Benefit, i: number) {
|
|
|
46
43
|
height="24"
|
|
47
44
|
/>
|
|
48
45
|
)}
|
|
49
|
-
<div className="flex gap-1 flex-col h-full">
|
|
46
|
+
<div className="flex gap-1 flex-col h-full max-w-[149px]">
|
|
50
47
|
<h4 className="font-medium text-primary-text text-xl m-0">{benefit.label}</h4>
|
|
51
48
|
{benefit.description && (
|
|
52
49
|
<div className="font-normal text-sm text-secondary-text">{benefit.description}</div>
|
|
@@ -7,17 +7,18 @@ const moneyImage: Picture = {
|
|
|
7
7
|
src: 'money-1.png',
|
|
8
8
|
format: 'webp',
|
|
9
9
|
size: {
|
|
10
|
-
width:
|
|
11
|
-
height:
|
|
10
|
+
width: 280,
|
|
11
|
+
height: 280,
|
|
12
12
|
},
|
|
13
|
+
alt: 'Варианты потребительского кредита',
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
const worker: Picture = {
|
|
16
17
|
src: 'worker.png',
|
|
17
18
|
format: 'webp',
|
|
18
19
|
size: {
|
|
19
|
-
width:
|
|
20
|
-
height:
|
|
20
|
+
width: 280,
|
|
21
|
+
height: 280,
|
|
21
22
|
},
|
|
22
23
|
};
|
|
23
24
|
|
|
@@ -25,8 +26,8 @@ const creditCard: Picture = {
|
|
|
25
26
|
src: 'credit-card-1.png',
|
|
26
27
|
format: 'webp',
|
|
27
28
|
size: {
|
|
28
|
-
width:
|
|
29
|
-
height:
|
|
29
|
+
width: 280,
|
|
30
|
+
height: 280,
|
|
30
31
|
},
|
|
31
32
|
};
|
|
32
33
|
|
|
@@ -41,8 +42,6 @@ export default (
|
|
|
41
42
|
},
|
|
42
43
|
productBlock: {
|
|
43
44
|
title: 'Ставка от 12,5% годовых на срок до 5 лет!»',
|
|
44
|
-
description:
|
|
45
|
-
'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
|
|
46
45
|
items: [
|
|
47
46
|
'Потребительский кредит по специальной процентной ставке',
|
|
48
47
|
'Получите деньги без залога и поручительства',
|
|
@@ -66,8 +65,6 @@ export default (
|
|
|
66
65
|
},
|
|
67
66
|
productBlock: {
|
|
68
67
|
title: 'Ставка от 12,5% годовых на срок до 3 лет!»',
|
|
69
|
-
description:
|
|
70
|
-
'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
|
|
71
68
|
items: [
|
|
72
69
|
'Потребительский кредит по специальной процентной ставке',
|
|
73
70
|
'Получите деньги без залога и поручительства',
|
|
@@ -91,8 +88,6 @@ export default (
|
|
|
91
88
|
},
|
|
92
89
|
productBlock: {
|
|
93
90
|
title: 'Дополнительные бонусные баллы за покупки!»',
|
|
94
|
-
description:
|
|
95
|
-
'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
|
|
96
91
|
items: [
|
|
97
92
|
'Потребительский кредит по специальной процентной ставке',
|
|
98
93
|
'Получите деньги без залога и поручительства',
|
|
@@ -116,7 +111,6 @@ export default (
|
|
|
116
111
|
},
|
|
117
112
|
productBlock: {
|
|
118
113
|
title: 'Карты Unionpay»',
|
|
119
|
-
description: 'Кэшбэк до 20% у партнеров',
|
|
120
114
|
items: [
|
|
121
115
|
'Потребительский кредит по специальной процентной ставке',
|
|
122
116
|
'Получите деньги без залога и поручительства',
|
|
@@ -22,7 +22,7 @@ export const ProductGallery = JSX<ProductGalleryProps>(
|
|
|
22
22
|
{galleryBlocks.map((_, i) => renderProductBlock(_, i, context))}
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
|
-
<div className=
|
|
25
|
+
<div className="flex">
|
|
26
26
|
{galleryNav.map((slide, i) =>
|
|
27
27
|
renderNavButton({
|
|
28
28
|
slide,
|
|
@@ -61,17 +61,19 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick, duration }) {
|
|
|
61
61
|
type="button"
|
|
62
62
|
key={String(i)}
|
|
63
63
|
onClick={onClick}
|
|
64
|
-
className={`group relative overflow-hidden border-0 bg-inherit cursor-pointer text-left px-0
|
|
64
|
+
className={`font-sans group relative overflow-hidden border-0 bg-inherit cursor-pointer text-left px-0 pt-4 pb-5 grow basis-0`}
|
|
65
65
|
>
|
|
66
66
|
<div className="border-0 border-r border-solid border-main-divider px-6">
|
|
67
|
-
<div
|
|
67
|
+
<div
|
|
68
|
+
className={`text-sm font-medium pb-1 group-hover:text-primary-text ${btnTitleClassName}`}
|
|
69
|
+
>
|
|
68
70
|
{slide?.title}
|
|
69
71
|
</div>
|
|
70
|
-
<div className="text-xs text-secondary-text">{slide.desc}</div>
|
|
72
|
+
<div className="text-xs text-secondary-text pb-[2px]">{slide.desc}</div>
|
|
71
73
|
</div>
|
|
72
74
|
<div
|
|
73
75
|
className={`absolute bottom-0 left-0 w-full h-[3px] bg-primary-main -translate-x-full ${progressBarClassName}`}
|
|
74
|
-
style={{ animationDuration: `${duration}s
|
|
76
|
+
style={{ animationDuration: `${duration}s`, animationFillMode: 'forwards' }}
|
|
75
77
|
></div>
|
|
76
78
|
</button>
|
|
77
79
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { PromoTileContent } from './PromoTileContent';
|
|
3
|
-
import { Tile } from '../Tile/Tile';
|
|
4
2
|
import type { UniBlockProps } from '../../types';
|
|
3
|
+
import { Tile } from '../Tile/Tile';
|
|
4
|
+
import type { PromoTileContent } from './PromoTileContent';
|
|
5
5
|
|
|
6
6
|
export interface PromoTileProps extends PromoTileContent, UniBlockProps {}
|
|
7
7
|
|
|
@@ -23,7 +23,7 @@ export const PromoTile = JSX<PromoTileProps>(
|
|
|
23
23
|
buttons={buttons}
|
|
24
24
|
version={version}
|
|
25
25
|
>
|
|
26
|
-
<div>
|
|
26
|
+
<div className="mt-1.5">
|
|
27
27
|
{date && <div className="text-sm mb-2">{formatDate(date)}</div>}
|
|
28
28
|
<div className="text-base">{description}</div>
|
|
29
29
|
</div>
|