@redneckz/wildless-cms-uni-blocks 0.3.34 → 0.3.35
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 +180 -84
- package/bundle/bundle.umd.min.js +1 -1
- package/cosmos-static/icons/ArrowLeftIcon.svg +1 -0
- package/cosmos-static/icons/BurgerIcon.svg +1 -1
- package/cosmos-static/icons/Calendar2Icon.svg +1 -1
- package/cosmos-static/icons/CalendarCircleIcon.svg +1 -1
- package/cosmos-static/icons/CalendarIcon.svg +1 -1
- package/cosmos-static/icons/CalendarTickIcon.svg +1 -1
- package/cosmos-static/icons/CalendarWhiteIcon.svg +1 -1
- package/cosmos-static/icons/CardIcon.svg +1 -1
- package/cosmos-static/icons/CardPosIcon.svg +1 -1
- package/cosmos-static/icons/CardTickIcon.svg +1 -1
- package/cosmos-static/icons/ChartSquareIcon.svg +1 -1
- package/cosmos-static/icons/CloseIcon.svg +1 -1
- package/cosmos-static/icons/DiscountShapeIcon.svg +1 -1
- package/cosmos-static/icons/DocIcon.svg +1 -1
- package/cosmos-static/icons/DocumentTextIcon.svg +1 -1
- package/cosmos-static/icons/EmptyWalletChangeIcon.svg +1 -1
- package/cosmos-static/icons/EmptyWalletIcon.svg +1 -1
- package/cosmos-static/icons/GlobalIcon.svg +1 -1
- package/cosmos-static/icons/GpsIcon.svg +1 -1
- package/cosmos-static/icons/InterestIcon.svg +1 -1
- package/cosmos-static/icons/MoneyIcon.svg +1 -1
- package/cosmos-static/icons/MonitorMobileIcon.svg +1 -1
- package/cosmos-static/icons/PercentageRoundIcon.svg +1 -1
- package/cosmos-static/icons/PercentageSquareIcon.svg +1 -1
- package/cosmos-static/icons/PersonalCardIcon.svg +1 -1
- package/cosmos-static/icons/Profile2UserIcon.svg +1 -1
- package/cosmos-static/icons/RoundRubleIcon.svg +1 -1
- package/cosmos-static/icons/SafeIcon.svg +1 -1
- package/cosmos-static/icons/ShieldTickIcon.svg +1 -1
- package/cosmos-static/icons/SmallClockIcon.svg +1 -1
- package/cosmos-static/icons/UserTickIcon.svg +1 -1
- package/cosmos-static/icons/WalletAdd2Icon.svg +1 -1
- package/cosmos-static/icons/WalletAddIcon.svg +1 -1
- package/cosmos-static/icons/WalletIcon.svg +1 -1
- package/cosmos-static/icons/WalletWithMoneyIcon.svg +1 -1
- package/dist/components/Footer/Contacts.js +5 -5
- package/dist/components/Footer/Contacts.js.map +1 -1
- package/dist/components/Footer/Footer.js +3 -4
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Footer/FooterContent.d.ts +2 -0
- package/dist/components/Footer/HorizontalNavigation.js +1 -1
- package/dist/components/Footer/HorizontalNavigation.js.map +1 -1
- package/dist/components/Footer/MediaButton.js +15 -1
- package/dist/components/Footer/MediaButton.js.map +1 -1
- package/dist/components/Footer/Sitemap.js +4 -4
- package/dist/components/Footer/Sitemap.js.map +1 -1
- package/dist/components/Footer/SocialMedia.js +2 -2
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Footer/TextInformation.js +2 -2
- package/dist/components/Footer/TextInformation.js.map +1 -1
- package/dist/components/Header/Header.js +3 -7
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js +3 -3
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/Header/HeaderSubMenu.d.ts +9 -0
- package/dist/components/Header/HeaderSubMenu.js +34 -0
- package/dist/components/Header/HeaderSubMenu.js.map +1 -0
- package/dist/components/Header/HeaderSubMenuObserver.d.ts +1 -0
- package/dist/components/Header/HeaderSubMenuObserver.js +32 -0
- package/dist/components/Header/HeaderSubMenuObserver.js.map +1 -0
- package/dist/components/ProductBlock/ProductBlock.js +2 -1
- package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlockContent.d.ts +3 -1
- package/dist/components/ProductBlock/ProductBlockInner.js +5 -5
- package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -0
- package/dist/components/ProductBlock/renderBackwardButton.js +18 -0
- package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -0
- package/dist/components/ProductBlock/renderBenefit.js +2 -2
- package/dist/components/ProductBlock/renderBenefit.js.map +1 -1
- package/dist/components/Tile/Tile.js +3 -3
- package/dist/components/Tile/Tile.js.map +1 -1
- package/dist/icons/IconName.d.ts +5 -3
- package/dist/icons/IconName.js +3 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/ui-kit/Button/ButtonInner.js +2 -2
- package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
- package/dist/ui-kit/HeaderItem/HeaderItem.js +2 -2
- package/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
- package/dist/ui-kit/Heading/Heading.js +2 -2
- package/dist/ui-kit/Heading/Heading.js.map +1 -1
- package/dist/ui-kit/Icon/Icon.js +2 -2
- package/dist/ui-kit/Icon/Icon.js.map +1 -1
- package/dist/ui-kit/List/List.js +2 -0
- package/dist/ui-kit/List/List.js.map +1 -1
- package/dist/ui-kit/List/ListItem.js +19 -5
- package/dist/ui-kit/List/ListItem.js.map +1 -1
- package/dist/ui-kit/List/ListProps.d.ts +1 -1
- package/dist/ui-kit/Logo/Logo.js +1 -1
- package/dist/ui-kit/Logo/Logo.js.map +1 -1
- package/dist/ui-kit/SearchBar/SearchBar.js +1 -1
- package/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
- package/dist/ui-kit/TopItem/TopItem.d.ts +1 -0
- package/dist/ui-kit/TopItem/TopItem.js +1 -1
- package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
- package/dist/utils/isSSR.d.ts +1 -0
- package/dist/utils/isSSR.js +5 -0
- package/dist/utils/isSSR.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/Footer/Contacts.js +5 -5
- package/lib/components/Footer/Contacts.js.map +1 -1
- package/lib/components/Footer/Footer.js +3 -4
- package/lib/components/Footer/Footer.js.map +1 -1
- package/lib/components/Footer/FooterContent.d.ts +2 -0
- package/lib/components/Footer/HorizontalNavigation.js +1 -1
- package/lib/components/Footer/HorizontalNavigation.js.map +1 -1
- package/lib/components/Footer/MediaButton.js +15 -1
- package/lib/components/Footer/MediaButton.js.map +1 -1
- package/lib/components/Footer/Sitemap.js +4 -4
- package/lib/components/Footer/Sitemap.js.map +1 -1
- package/lib/components/Footer/SocialMedia.js +3 -3
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Footer/TextInformation.js +2 -2
- package/lib/components/Footer/TextInformation.js.map +1 -1
- package/lib/components/Header/Header.js +3 -7
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js +3 -3
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/Header/HeaderSubMenu.d.ts +9 -0
- package/lib/components/Header/HeaderSubMenu.js +32 -0
- package/lib/components/Header/HeaderSubMenu.js.map +1 -0
- package/lib/components/Header/HeaderSubMenuObserver.d.ts +1 -0
- package/lib/components/Header/HeaderSubMenuObserver.js +30 -0
- package/lib/components/Header/HeaderSubMenuObserver.js.map +1 -0
- package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +1 -0
- package/lib/components/ProductBlock/ProductBlock.js +2 -1
- package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlockContent.d.ts +3 -1
- package/lib/components/ProductBlock/ProductBlockInner.js +5 -5
- package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -0
- package/lib/components/ProductBlock/renderBackwardButton.js +15 -0
- package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -0
- package/lib/components/ProductBlock/renderBenefit.js +2 -2
- package/lib/components/ProductBlock/renderBenefit.js.map +1 -1
- package/lib/components/Tile/Tile.js +3 -3
- package/lib/components/Tile/Tile.js.map +1 -1
- package/lib/icons/IconName.d.ts +5 -3
- package/lib/icons/IconName.js +3 -1
- package/lib/icons/IconName.js.map +1 -1
- package/lib/ui-kit/Button/ButtonInner.js +2 -2
- package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
- package/lib/ui-kit/HeaderItem/HeaderItem.js +2 -2
- package/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
- package/lib/ui-kit/Heading/Heading.js +2 -2
- package/lib/ui-kit/Heading/Heading.js.map +1 -1
- package/lib/ui-kit/Icon/Icon.js +2 -2
- package/lib/ui-kit/Icon/Icon.js.map +1 -1
- package/lib/ui-kit/List/List.js +2 -0
- package/lib/ui-kit/List/List.js.map +1 -1
- package/lib/ui-kit/List/ListItem.js +19 -5
- package/lib/ui-kit/List/ListItem.js.map +1 -1
- package/lib/ui-kit/List/ListProps.d.ts +1 -1
- package/lib/ui-kit/Logo/Logo.js +1 -1
- package/lib/ui-kit/Logo/Logo.js.map +1 -1
- package/lib/ui-kit/SearchBar/SearchBar.js +1 -1
- package/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
- package/lib/ui-kit/TopItem/TopItem.d.ts +1 -0
- package/lib/ui-kit/TopItem/TopItem.js +1 -1
- package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
- package/lib/utils/isSSR.d.ts +1 -0
- package/lib/utils/isSSR.js +2 -0
- package/lib/utils/isSSR.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +48 -16
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/Footer/Contacts.js +5 -5
- package/mobile/dist/components/Footer/Contacts.js.map +1 -1
- package/mobile/dist/components/Footer/FooterContent.d.ts +2 -0
- package/mobile/dist/components/Footer/MediaButton.js +15 -1
- package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
- package/mobile/dist/components/Footer/Sitemap.js +4 -4
- package/mobile/dist/components/Footer/Sitemap.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +3 -3
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSubMenu.d.ts +9 -0
- package/mobile/dist/components/Header/HeaderSubMenu.js +34 -0
- package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -0
- package/mobile/dist/components/Header/HeaderSubMenuObserver.d.ts +1 -0
- package/mobile/dist/components/Header/HeaderSubMenuObserver.js +32 -0
- package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +1 -0
- package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +3 -1
- package/mobile/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -0
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js +18 -0
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -0
- package/mobile/dist/components/Tile/Tile.js +3 -3
- package/mobile/dist/components/Tile/Tile.js.map +1 -1
- package/mobile/dist/icons/IconName.d.ts +5 -3
- package/mobile/dist/icons/IconName.js +3 -1
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/ui-kit/Button/ButtonInner.js +2 -2
- package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
- package/mobile/dist/ui-kit/Icon/Icon.js +2 -2
- package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
- package/mobile/dist/ui-kit/List/List.js +2 -0
- package/mobile/dist/ui-kit/List/List.js.map +1 -1
- package/mobile/dist/ui-kit/List/ListItem.js +19 -5
- package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
- package/mobile/dist/ui-kit/List/ListProps.d.ts +1 -1
- package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -0
- package/mobile/dist/ui-kit/TopItem/TopItem.js +1 -1
- package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
- package/mobile/dist/utils/isSSR.d.ts +1 -0
- package/mobile/dist/utils/isSSR.js +5 -0
- package/mobile/dist/utils/isSSR.js.map +1 -0
- package/mobile/lib/components/Footer/Contacts.js +5 -5
- package/mobile/lib/components/Footer/Contacts.js.map +1 -1
- package/mobile/lib/components/Footer/FooterContent.d.ts +2 -0
- package/mobile/lib/components/Footer/MediaButton.js +15 -1
- package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
- package/mobile/lib/components/Footer/Sitemap.js +4 -4
- package/mobile/lib/components/Footer/Sitemap.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +3 -3
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSubMenu.d.ts +9 -0
- package/mobile/lib/components/Header/HeaderSubMenu.js +32 -0
- package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -0
- package/mobile/lib/components/Header/HeaderSubMenuObserver.d.ts +1 -0
- package/mobile/lib/components/Header/HeaderSubMenuObserver.js +30 -0
- package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +1 -0
- package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +3 -1
- package/mobile/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -0
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js +15 -0
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -0
- package/mobile/lib/components/Tile/Tile.js +3 -3
- package/mobile/lib/components/Tile/Tile.js.map +1 -1
- package/mobile/lib/icons/IconName.d.ts +5 -3
- package/mobile/lib/icons/IconName.js +3 -1
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/ui-kit/Button/ButtonInner.js +2 -2
- package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
- package/mobile/lib/ui-kit/Icon/Icon.js +2 -2
- package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
- package/mobile/lib/ui-kit/List/List.js +2 -0
- package/mobile/lib/ui-kit/List/List.js.map +1 -1
- package/mobile/lib/ui-kit/List/ListItem.js +19 -5
- package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
- package/mobile/lib/ui-kit/List/ListProps.d.ts +1 -1
- package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -0
- package/mobile/lib/ui-kit/TopItem/TopItem.js +1 -1
- package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
- package/mobile/lib/utils/isSSR.d.ts +1 -0
- package/mobile/lib/utils/isSSR.js +2 -0
- package/mobile/lib/utils/isSSR.js.map +1 -0
- package/mobile/src/components/ContentPage/ContentPage.page.json +4 -4
- package/mobile/src/components/Footer/Contacts.tsx +7 -10
- package/mobile/src/components/Footer/FooterContent.ts +3 -0
- package/mobile/src/components/Footer/MediaButton.tsx +15 -1
- package/mobile/src/components/Footer/Sitemap.tsx +5 -5
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +4 -7
- package/mobile/src/components/Header/HeaderSubMenu.tsx +93 -0
- package/mobile/src/components/Header/HeaderSubMenuObserver.ts +44 -0
- package/mobile/src/components/ProductBlock/ProductBlockContent.ts +3 -1
- package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +34 -0
- package/mobile/src/components/Tile/Tile.example.json +1 -1
- package/mobile/src/components/Tile/Tile.tsx +12 -3
- package/mobile/src/icons/ArrowDownIcon.svg +1 -1
- package/mobile/src/icons/ArrowLeftIcon.svg +4 -0
- package/mobile/src/icons/BurgerIcon.svg +4 -4
- package/mobile/src/icons/Calendar2Icon.svg +1 -1
- package/mobile/src/icons/CalendarCircleIcon.svg +4 -1
- package/mobile/src/icons/CalendarIcon.svg +1 -1
- package/mobile/src/icons/CalendarTickIcon.svg +6 -1
- package/mobile/src/icons/CalendarWhiteIcon.svg +2 -2
- package/mobile/src/icons/CardIcon.svg +5 -1
- package/mobile/src/icons/CardPosIcon.svg +5 -1
- package/mobile/src/icons/CardTickIcon.svg +5 -1
- package/mobile/src/icons/ChartSquareIcon.svg +6 -1
- package/mobile/src/icons/CloseIcon.svg +4 -4
- package/mobile/src/icons/DiscountShapeIcon.svg +4 -1
- package/mobile/src/icons/DocIcon.svg +1 -1
- package/mobile/src/icons/DocumentTextIcon.svg +2 -2
- package/mobile/src/icons/EmptyWalletChangeIcon.svg +8 -1
- package/mobile/src/icons/EmptyWalletIcon.svg +2 -2
- package/mobile/src/icons/GlobalIcon.svg +5 -1
- package/mobile/src/icons/GpsIcon.svg +6 -6
- package/mobile/src/icons/IconName.ts +4 -4
- package/mobile/src/icons/InterestIcon.svg +6 -1
- package/mobile/src/icons/MasterCardIcon.svg +5 -1
- package/mobile/src/icons/MinusIcon.svg +3 -1
- package/mobile/src/icons/MoneyIcon.svg +5 -1
- package/mobile/src/icons/MonitorMobileIcon.svg +4 -1
- package/mobile/src/icons/PercentageRoundIcon.svg +4 -1
- package/mobile/src/icons/PercentageSquareIcon.svg +1 -1
- package/mobile/src/icons/PersonalCardIcon.svg +4 -1
- package/mobile/src/icons/PlayMarketIcon.svg +3 -1
- package/mobile/src/icons/PlusIcon.svg +3 -1
- package/mobile/src/icons/Profile2UserIcon.svg +6 -1
- package/mobile/src/icons/RoundRubleIcon.svg +5 -1
- package/mobile/src/icons/SafeIcon.svg +7 -1
- package/mobile/src/icons/ShieldTickIcon.svg +4 -1
- package/mobile/src/icons/SmallClockIcon.svg +4 -1
- package/mobile/src/icons/UserTickIcon.svg +5 -1
- package/mobile/src/icons/WalletAdd2Icon.svg +6 -1
- package/mobile/src/icons/WalletAddIcon.svg +7 -1
- package/mobile/src/icons/WalletIcon.svg +7 -1
- package/mobile/src/icons/WalletWithMoneyIcon.svg +5 -1
- package/mobile/src/ui-kit/Button/ButtonInner.tsx +2 -2
- package/mobile/src/ui-kit/Icon/Icon.tsx +2 -2
- package/mobile/src/ui-kit/List/List.tsx +2 -0
- package/mobile/src/ui-kit/List/ListItem.tsx +19 -5
- package/mobile/src/ui-kit/List/ListProps.ts +1 -1
- package/mobile/src/ui-kit/TopItem/TopItem.tsx +2 -1
- package/mobile/src/utils/isSSR.ts +2 -0
- package/package.json +1 -1
- package/src/components/ContentPage/ContentPage.page.json +4 -4
- package/src/components/Footer/Contacts.tsx +7 -10
- package/src/components/Footer/Footer.fixture.mobile.tsx +3 -3
- package/src/components/Footer/Footer.fixture.tsx +4 -3
- package/src/components/Footer/Footer.tsx +15 -13
- package/src/components/Footer/FooterContent.ts +3 -0
- package/src/components/Footer/HorizontalNavigation.tsx +1 -1
- package/src/components/Footer/MediaButton.tsx +15 -1
- package/src/components/Footer/Sitemap.tsx +5 -5
- package/src/components/Footer/SocialMedia.tsx +8 -5
- package/src/components/Footer/TextInformation.tsx +2 -2
- package/src/components/Header/Header.tsx +5 -18
- package/src/components/Header/HeaderSecondaryMenu.tsx +4 -7
- package/src/components/Header/HeaderSubMenu.tsx +93 -0
- package/src/components/Header/HeaderSubMenuObserver.ts +44 -0
- package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +2 -2
- package/src/components/ProductBlock/ProductBlock.fixture.tsx +35 -34
- package/src/components/ProductBlock/ProductBlock.tsx +2 -0
- package/src/components/ProductBlock/ProductBlockContent.ts +3 -1
- package/src/components/ProductBlock/ProductBlockInner.tsx +14 -8
- package/src/components/ProductBlock/renderBackwardButton.tsx +34 -0
- package/src/components/ProductBlock/renderBenefit.tsx +4 -4
- package/src/components/Tile/Tile.example.json +1 -1
- package/src/components/Tile/Tile.fixture.tsx +6 -6
- package/src/components/Tile/Tile.tsx +12 -3
- package/src/icons/ArrowDownIcon.svg +1 -1
- package/src/icons/ArrowLeftIcon.svg +4 -0
- package/src/icons/BurgerIcon.svg +4 -4
- package/src/icons/Calendar2Icon.svg +1 -1
- package/src/icons/CalendarCircleIcon.svg +4 -1
- package/src/icons/CalendarIcon.svg +1 -1
- package/src/icons/CalendarTickIcon.svg +6 -1
- package/src/icons/CalendarWhiteIcon.svg +2 -2
- package/src/icons/CardIcon.svg +5 -1
- package/src/icons/CardPosIcon.svg +5 -1
- package/src/icons/CardTickIcon.svg +5 -1
- package/src/icons/ChartSquareIcon.svg +6 -1
- package/src/icons/CloseIcon.svg +4 -4
- package/src/icons/DiscountShapeIcon.svg +4 -1
- package/src/icons/DocIcon.svg +1 -1
- package/src/icons/DocumentTextIcon.svg +2 -2
- package/src/icons/EmptyWalletChangeIcon.svg +8 -1
- package/src/icons/EmptyWalletIcon.svg +2 -2
- package/src/icons/GlobalIcon.svg +5 -1
- package/src/icons/GpsIcon.svg +6 -6
- package/src/icons/IconName.ts +5 -2
- package/src/icons/InterestIcon.svg +6 -1
- package/src/icons/MasterCardIcon.svg +5 -1
- package/src/icons/MinusIcon.svg +3 -1
- package/src/icons/MoneyIcon.svg +5 -1
- package/src/icons/MonitorMobileIcon.svg +4 -1
- package/src/icons/PercentageRoundIcon.svg +4 -1
- package/src/icons/PercentageSquareIcon.svg +1 -1
- package/src/icons/PersonalCardIcon.svg +4 -1
- package/src/icons/PlayMarketIcon.svg +3 -1
- package/src/icons/PlusIcon.svg +3 -1
- package/src/icons/Profile2UserIcon.svg +6 -1
- package/src/icons/RoundRubleIcon.svg +5 -1
- package/src/icons/SafeIcon.svg +7 -1
- package/src/icons/ShieldTickIcon.svg +4 -1
- package/src/icons/SmallClockIcon.svg +4 -1
- package/src/icons/UserTickIcon.svg +5 -1
- package/src/icons/WalletAdd2Icon.svg +6 -1
- package/src/icons/WalletAddIcon.svg +7 -1
- package/src/icons/WalletIcon.svg +7 -1
- package/src/icons/WalletWithMoneyIcon.svg +5 -1
- package/src/ui-kit/Button/ButtonInner.tsx +2 -2
- package/src/ui-kit/HeaderItem/HeaderItem.tsx +14 -3
- package/src/ui-kit/Heading/Heading.tsx +2 -2
- package/src/ui-kit/Icon/Icon.tsx +2 -2
- package/src/ui-kit/List/List.tsx +2 -0
- package/src/ui-kit/List/ListItem.tsx +19 -5
- package/src/ui-kit/List/ListProps.ts +1 -1
- package/src/ui-kit/Logo/Logo.tsx +1 -1
- package/src/ui-kit/SearchBar/SearchBar.tsx +2 -2
- package/src/ui-kit/TopItem/TopItem.tsx +2 -1
- package/src/utils/isSSR.ts +2 -0
|
@@ -30,6 +30,20 @@ const ICONS_MAP: Array<{
|
|
|
30
30
|
width: '12px',
|
|
31
31
|
height: '20px',
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
origins: ['apps.apple.com'],
|
|
35
|
+
icon: { icon: 'AppleIcon' },
|
|
36
|
+
label: 'App Store',
|
|
37
|
+
width: '20px',
|
|
38
|
+
height: '22px',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
origins: ['play.google.com'],
|
|
42
|
+
icon: { icon: 'PlayMarketIcon' },
|
|
43
|
+
label: 'Google Play',
|
|
44
|
+
width: '21px',
|
|
45
|
+
height: '21px',
|
|
46
|
+
},
|
|
33
47
|
];
|
|
34
48
|
|
|
35
49
|
interface MediaButtonProps {
|
|
@@ -44,7 +58,7 @@ export const MediaButton = JSX<MediaButtonProps>(({ href }) => {
|
|
|
44
58
|
|
|
45
59
|
return (
|
|
46
60
|
<a
|
|
47
|
-
className="flex items-center justify-center border border-solid border-main-divider
|
|
61
|
+
className="flex items-center justify-center border border-solid rounded-md border-main-divider no-underline outline-none w-14 h-14 box-border text-primary-main hover:text-white hover:bg-primary-main hover:border-primary-main"
|
|
48
62
|
href={href}
|
|
49
63
|
aria-label={label}
|
|
50
64
|
target="_blank"
|
|
@@ -10,7 +10,7 @@ export interface SitemapProps extends UniBlockProps {
|
|
|
10
10
|
items?: TopMenuItem[];
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const Sitemap = JSX<SitemapProps>(({ className, items, context }) => {
|
|
13
|
+
export const Sitemap = JSX<SitemapProps>(({ className = '', items, context }) => {
|
|
14
14
|
const sitemap = useSitemap(context.useAsyncData);
|
|
15
15
|
const mergedItems = mergeTopItems(sitemap.topItems, items);
|
|
16
16
|
const linkParams = {
|
|
@@ -19,7 +19,7 @@ export const Sitemap = JSX<SitemapProps>(({ className, items, context }) => {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
<div className={`flex items-start justify-
|
|
22
|
+
<div className={`flex items-start justify-between gap-11 xl:gap-5 ${className}`}>
|
|
23
23
|
{mergedItems?.map((_, i) => renderColumn(_, i, linkParams))}
|
|
24
24
|
</div>
|
|
25
25
|
);
|
|
@@ -29,9 +29,9 @@ const renderColumn = (c: TopMenuItem, index: number, { router, handlerDecorator
|
|
|
29
29
|
const { text, href, items, target } = c;
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
|
-
<div key={String(index)} className="flex flex-col gap-[14px]">
|
|
32
|
+
<div key={String(index)} className="flex flex-col w-1/5 last:w-1/4 gap-[14px]">
|
|
33
33
|
<a
|
|
34
|
-
className="block font-sans
|
|
34
|
+
className="block font-sans leading-5 text-base text-primary-text no-underline"
|
|
35
35
|
href={href}
|
|
36
36
|
target={target || '_self'}
|
|
37
37
|
>
|
|
@@ -50,7 +50,7 @@ interface ColumnItemProps extends LinkProps {
|
|
|
50
50
|
|
|
51
51
|
const ColumnItem = JSX<ColumnItemProps>(({ text, href, target, index }) => (
|
|
52
52
|
<a
|
|
53
|
-
className="block font-sans font-
|
|
53
|
+
className="block font-sans font-light text-base text-secondary-text hover:text-primary-main no-underline"
|
|
54
54
|
href={href}
|
|
55
55
|
target={target || '_self'}
|
|
56
56
|
>
|
|
@@ -8,14 +8,17 @@ export interface SocialMediaProps extends UniBlockProps {
|
|
|
8
8
|
media?: Omit<LinkProps, 'text'>[];
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export const SocialMedia = JSX<SocialMediaProps>(({ className, media, context }) => {
|
|
11
|
+
export const SocialMedia = JSX<SocialMediaProps>(({ className = '', media, context, children }) => {
|
|
12
12
|
const router = context.useRouter();
|
|
13
13
|
const { handlerDecorator } = context;
|
|
14
14
|
return (
|
|
15
|
-
<div
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
<div>
|
|
16
|
+
<div className={`flex gap-2.5 mb-1.5 ${className}`}>
|
|
17
|
+
{media?.map((_, index) => (
|
|
18
|
+
<MediaButton key={String(index)} {...useLink({ router, handlerDecorator }, _)} />
|
|
19
|
+
))}
|
|
20
|
+
</div>
|
|
21
|
+
<span className="font-light text-sm text-secondary-text">{children}</span>
|
|
19
22
|
</div>
|
|
20
23
|
);
|
|
21
24
|
});
|
|
@@ -9,7 +9,7 @@ export const TextInformation = JSX<FooterLink>(({ className, links, context }) =
|
|
|
9
9
|
return (
|
|
10
10
|
<div className={`${className || ''}`}>
|
|
11
11
|
<div className="pt-5 pb-[5px]">
|
|
12
|
-
<span className="font-sans font-
|
|
12
|
+
<span className="font-sans font-light text-xs text-secondary-text">
|
|
13
13
|
{`\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.`}
|
|
14
14
|
</span>
|
|
15
15
|
</div>
|
|
@@ -37,7 +37,7 @@ interface TextInformationLinkProps extends LinkProps {
|
|
|
37
37
|
const TextInformationLink = JSX<Partial<TextInformationLinkProps>>(
|
|
38
38
|
({ className, index, text, href, target, onClick }) => (
|
|
39
39
|
<a
|
|
40
|
-
className={`font-sans font-
|
|
40
|
+
className={`font-sans font-light text-xs text-secondary-text visited:text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${
|
|
41
41
|
className || ''
|
|
42
42
|
}`}
|
|
43
43
|
href={href}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useLink } from '../../hooks/useLink';
|
|
3
3
|
import type { BgColorVersion } from '../../model/BgColorVersion';
|
|
4
|
-
import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
|
|
5
4
|
import { isTopItemActive } from '../../services/sitemap/isTopItemActive';
|
|
6
5
|
import { mergeTopItems } from '../../services/sitemap/mergeTopItems';
|
|
7
6
|
import { useSitemap } from '../../services/sitemap/useSitemap';
|
|
8
7
|
import type { UniBlockProps } from '../../types';
|
|
9
|
-
import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
|
|
10
8
|
import { Logo } from '../../ui-kit/Logo/Logo';
|
|
11
9
|
import { TopItem } from '../../ui-kit/TopItem/TopItem';
|
|
12
10
|
import type { HeaderContent } from './HeaderContent';
|
|
13
11
|
import { HeaderSecondaryMenu } from './HeaderSecondaryMenu';
|
|
12
|
+
import { HeaderSubMenu } from './HeaderSubMenu';
|
|
14
13
|
|
|
15
14
|
const BORDER_COLORS: Record<BgColorVersion, string> = {
|
|
16
15
|
'bg-white': 'bg-main-divider',
|
|
@@ -21,7 +20,7 @@ export interface HeaderProps extends HeaderContent, UniBlockProps {}
|
|
|
21
20
|
|
|
22
21
|
export const Header = JSX<HeaderProps>(
|
|
23
22
|
({
|
|
24
|
-
className,
|
|
23
|
+
className = '',
|
|
25
24
|
defaultLocation = 'Москва',
|
|
26
25
|
bgColor = 'bg-white',
|
|
27
26
|
context,
|
|
@@ -34,8 +33,6 @@ export const Header = JSX<HeaderProps>(
|
|
|
34
33
|
|
|
35
34
|
const mergedItems = mergeTopItems(sitemap.topItems, topItems);
|
|
36
35
|
const activeTopItem = mergedItems.find(isTopItemActive(router));
|
|
37
|
-
const subItems = activeTopItem?.items;
|
|
38
|
-
const activeSubItem = findActiveSubItem(router)(subItems);
|
|
39
36
|
|
|
40
37
|
const topMenu = mergedItems.map((_, i) => (
|
|
41
38
|
<TopItem
|
|
@@ -47,18 +44,8 @@ export const Header = JSX<HeaderProps>(
|
|
|
47
44
|
/>
|
|
48
45
|
));
|
|
49
46
|
|
|
50
|
-
const subMenu = subItems?.map((_) => (
|
|
51
|
-
<HeaderItem
|
|
52
|
-
key={_.href}
|
|
53
|
-
className="mr-8"
|
|
54
|
-
active={_ === activeSubItem}
|
|
55
|
-
{...useLink({ router, handlerDecorator }, _)}
|
|
56
|
-
bgColor={bgColor}
|
|
57
|
-
/>
|
|
58
|
-
));
|
|
59
|
-
|
|
60
47
|
return (
|
|
61
|
-
<header className={`pt-
|
|
48
|
+
<header className={`pt-6 pb-8 px-20 ${bgColor} ${className}`} id={anchor}>
|
|
62
49
|
<div className="container">
|
|
63
50
|
<div className="flex items-center">
|
|
64
51
|
<Logo className="mr-8" bgColor={bgColor} />
|
|
@@ -70,8 +57,8 @@ export const Header = JSX<HeaderProps>(
|
|
|
70
57
|
bgColor={bgColor}
|
|
71
58
|
/>
|
|
72
59
|
</div>
|
|
73
|
-
<div className={`mt-
|
|
74
|
-
<
|
|
60
|
+
<div className={`mt-6 h-[1px] ${BORDER_COLORS[bgColor]}`} />
|
|
61
|
+
<HeaderSubMenu context={context} subItems={activeTopItem?.items} bgColor={bgColor} />
|
|
75
62
|
</div>
|
|
76
63
|
</header>
|
|
77
64
|
);
|
|
@@ -17,11 +17,11 @@ const COLORS_MAP: Record<BgColorVersion, string> = {
|
|
|
17
17
|
'bg-white': 'text-primary-text hover:text-primary-main',
|
|
18
18
|
transparent: 'text-white',
|
|
19
19
|
};
|
|
20
|
-
const
|
|
20
|
+
const LINKS_COLORS_MAP: Record<BgColorVersion, string> = {
|
|
21
21
|
'bg-white': 'text-secondary-light hover:text-secondary-hover',
|
|
22
22
|
transparent: 'text-white',
|
|
23
23
|
};
|
|
24
|
-
const
|
|
24
|
+
const LINKS_ICON_NAME_MAP: Record<BgColorVersion, IconName> = {
|
|
25
25
|
'bg-white': 'GridIcon',
|
|
26
26
|
transparent: 'GridIconWhite',
|
|
27
27
|
};
|
|
@@ -54,14 +54,11 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
|
|
|
54
54
|
>
|
|
55
55
|
<Img image="LoupeIcon" className="h-full" asSVG color="none" />
|
|
56
56
|
</HeaderSecondaryMenuButton>
|
|
57
|
-
<HeaderSecondaryMenuButton className={`mr-5 ${COLORS_MAP[bgColor]}`} ariaLabel="Профиль">
|
|
58
|
-
<Img image="ProfileIcon" className="h-full" asSVG color="none" />
|
|
59
|
-
</HeaderSecondaryMenuButton>
|
|
60
57
|
<HeaderSecondaryMenuButton
|
|
61
|
-
className={`${
|
|
58
|
+
className={`${LINKS_COLORS_MAP[bgColor]} min-w-[32px] min-h-[32px]`}
|
|
62
59
|
ariaLabel="Дополнительные ссылки"
|
|
63
60
|
>
|
|
64
|
-
<Img image={
|
|
61
|
+
<Img image={LINKS_ICON_NAME_MAP[bgColor]} className="h-full" asSVG color="none" />
|
|
65
62
|
</HeaderSecondaryMenuButton>
|
|
66
63
|
</div>
|
|
67
64
|
);
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useLink } from '../../hooks/useLink';
|
|
3
|
+
import type { BgColorVersion } from '../../model/BgColorVersion';
|
|
4
|
+
import type { LinkProps } from '../../model/LinkProps';
|
|
5
|
+
import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
|
|
6
|
+
import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
|
|
7
|
+
import type { ContentPageContext } from '../ContentPage/ContentPageContext';
|
|
8
|
+
import { headerSubMenuObserver } from './HeaderSubMenuObserver';
|
|
9
|
+
|
|
10
|
+
export interface HeaderSubMenuProps {
|
|
11
|
+
context: ContentPageContext;
|
|
12
|
+
subItems?: LinkProps[];
|
|
13
|
+
bgColor?: BgColorVersion;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const HeaderSubMenu = JSX<HeaderSubMenuProps>(({ context, subItems, bgColor }) => {
|
|
17
|
+
const [subMenuIsShow, setHiddenMenuIsShow] = context.useState(false);
|
|
18
|
+
const router = context.useRouter();
|
|
19
|
+
const { handlerDecorator } = context;
|
|
20
|
+
|
|
21
|
+
setTimeout(() => {
|
|
22
|
+
const headerSubMenu = globalThis.document.querySelectorAll('[data-item-name=header-submenu]');
|
|
23
|
+
headerSubMenu.forEach((_) => {
|
|
24
|
+
headerSubMenuObserver?.observe(_);
|
|
25
|
+
});
|
|
26
|
+
}, 200);
|
|
27
|
+
|
|
28
|
+
const activeSubItem = findActiveSubItem(router)(subItems);
|
|
29
|
+
const toggleSubMenu = () => setHiddenMenuIsShow(!subMenuIsShow);
|
|
30
|
+
|
|
31
|
+
const subMenu = subItems?.map((_) => (
|
|
32
|
+
<HeaderItem
|
|
33
|
+
key={_.href}
|
|
34
|
+
className="mr-8"
|
|
35
|
+
active={_ === activeSubItem}
|
|
36
|
+
{...useLink({ router, handlerDecorator }, _)}
|
|
37
|
+
dataItemName="header-submenu"
|
|
38
|
+
bgColor={bgColor}
|
|
39
|
+
/>
|
|
40
|
+
));
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<nav className="relative mt-5">
|
|
44
|
+
<div className="overflow-hidden whitespace-nowrap mr-52">{subMenu}</div>
|
|
45
|
+
{renderDotsSubMenu({
|
|
46
|
+
subMenuIsShow,
|
|
47
|
+
toggleSubMenu,
|
|
48
|
+
subItems,
|
|
49
|
+
router,
|
|
50
|
+
handlerDecorator,
|
|
51
|
+
})}
|
|
52
|
+
</nav>
|
|
53
|
+
);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// TODO: add types
|
|
57
|
+
const renderDotsSubMenu = ({
|
|
58
|
+
subMenuIsShow,
|
|
59
|
+
toggleSubMenu,
|
|
60
|
+
subItems,
|
|
61
|
+
router,
|
|
62
|
+
handlerDecorator,
|
|
63
|
+
}) => (
|
|
64
|
+
<div
|
|
65
|
+
className={`absolute w-52 -top-4 right-0 pt-4 z-40 ${
|
|
66
|
+
subMenuIsShow ? 'bg-white rounded-md shadow-blue-gray/24' : ''
|
|
67
|
+
}`}
|
|
68
|
+
data-header-submenu-visible="toggled"
|
|
69
|
+
>
|
|
70
|
+
<button
|
|
71
|
+
className="flex justify-between items-center cursor-pointer h-6 ml-6"
|
|
72
|
+
onClick={toggleSubMenu}
|
|
73
|
+
>
|
|
74
|
+
{Array(3).fill(<div className="w-[3px] h-[3px] rounded bg-black mr-1" />)}
|
|
75
|
+
</button>
|
|
76
|
+
<div className={`flex flex-col rounded-md bg-white p-6 pb-2 ${subMenuIsShow ? '' : 'hidden'}`}>
|
|
77
|
+
{renderDotsSubMenuItems(subItems, router, handlerDecorator)}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
// TODO: add types
|
|
83
|
+
const renderDotsSubMenuItems = (subItems, router, handlerDecorator) =>
|
|
84
|
+
subItems?.map((_) => (
|
|
85
|
+
<a
|
|
86
|
+
key={_.href}
|
|
87
|
+
{...useLink({ router, handlerDecorator }, _)}
|
|
88
|
+
data-item-name="dots-header-submenu"
|
|
89
|
+
className="text-base font-light pb-4 hover:text-primary-main"
|
|
90
|
+
>
|
|
91
|
+
{_.text}
|
|
92
|
+
</a>
|
|
93
|
+
));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { isSSR } from '../../utils/isSSR';
|
|
2
|
+
|
|
3
|
+
export const headerSubMenuObserver = isSSR()
|
|
4
|
+
? undefined
|
|
5
|
+
: new IntersectionObserver(
|
|
6
|
+
(entries) => {
|
|
7
|
+
const headerSubMenuButtonElement = window.document.querySelector(
|
|
8
|
+
'[data-header-submenu-visible=toggled]',
|
|
9
|
+
);
|
|
10
|
+
const headerSubMenuItems = Array.from(
|
|
11
|
+
window.document.querySelectorAll('[data-item-name=header-submenu]'),
|
|
12
|
+
);
|
|
13
|
+
const dotsHeaderSubMenuItems = Array.from(
|
|
14
|
+
window.document.querySelectorAll('[data-item-name=dots-header-submenu]'),
|
|
15
|
+
);
|
|
16
|
+
const visibilityList = {};
|
|
17
|
+
entries.forEach((j) => {
|
|
18
|
+
visibilityList[String(j.target.toString())] = j.isIntersecting;
|
|
19
|
+
});
|
|
20
|
+
const isHeaderSubMenuButtonShow = toggleVisibilityInItems(
|
|
21
|
+
visibilityList,
|
|
22
|
+
dotsHeaderSubMenuItems,
|
|
23
|
+
'hidden',
|
|
24
|
+
);
|
|
25
|
+
toggleVisibilityInItems(visibilityList, headerSubMenuItems, 'invisible');
|
|
26
|
+
if (headerSubMenuButtonElement) {
|
|
27
|
+
isHeaderSubMenuButtonShow
|
|
28
|
+
? headerSubMenuButtonElement.classList.remove('hidden')
|
|
29
|
+
: headerSubMenuButtonElement.classList.add('hidden');
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{ root: window.document, threshold: 1.0 },
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// TODO: add types
|
|
36
|
+
const toggleVisibilityInItems = (visibilityList, items, className) => {
|
|
37
|
+
const isReversed = className !== 'hidden';
|
|
38
|
+
return items.some((item) => {
|
|
39
|
+
const key = item.toString();
|
|
40
|
+
const option = isReversed ? !visibilityList[key] : visibilityList[key];
|
|
41
|
+
key in visibilityList ? item.classList.toggle(className, option) : null;
|
|
42
|
+
return isReversed ? item.classList.contains('hidden') : !item.classList.contains('hidden');
|
|
43
|
+
});
|
|
44
|
+
};
|
|
@@ -17,7 +17,7 @@ export default {
|
|
|
17
17
|
aboveText: 'Загрузите в',
|
|
18
18
|
text: 'App Store',
|
|
19
19
|
icon: { icon: 'AppleIcon' },
|
|
20
|
-
href: '
|
|
20
|
+
href: 'apps.apple.com',
|
|
21
21
|
asSVG: true,
|
|
22
22
|
version: 'secondary',
|
|
23
23
|
},
|
|
@@ -25,7 +25,7 @@ export default {
|
|
|
25
25
|
aboveText: 'Доступно в',
|
|
26
26
|
text: 'Google Play',
|
|
27
27
|
icon: { icon: 'PlayMarketIcon' },
|
|
28
|
-
href: '
|
|
28
|
+
href: 'play.google.com',
|
|
29
29
|
asSVG: true,
|
|
30
30
|
version: 'secondary',
|
|
31
31
|
},
|
|
@@ -2,7 +2,7 @@ import type { Picture } from '../../model/Picture';
|
|
|
2
2
|
import { context } from '../../setup-fixture';
|
|
3
3
|
import { ProductBlock } from './ProductBlock';
|
|
4
4
|
import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
5
|
-
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
5
|
+
import type { ButtonWithIconProps, ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
6
6
|
import type { ProductBlockContent } from './ProductBlockContent';
|
|
7
7
|
|
|
8
8
|
const image: Picture = {
|
|
@@ -15,20 +15,6 @@ const image: Picture = {
|
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
const breadcrumbs = [
|
|
19
|
-
{
|
|
20
|
-
text: 'Главная',
|
|
21
|
-
href: '/',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
text: 'Кредитные карты',
|
|
25
|
-
href: '/credit',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
text: 'Кредитная карта Своя Union Pay',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
18
|
const benefits: Benefit[] = [
|
|
33
19
|
{
|
|
34
20
|
label: 'До 5 млн ₽',
|
|
@@ -62,16 +48,21 @@ const buttons: ButtonWithIconProps[] = [
|
|
|
62
48
|
},
|
|
63
49
|
];
|
|
64
50
|
|
|
51
|
+
const items = [
|
|
52
|
+
'Совершайте любые личные покупки',
|
|
53
|
+
'Используйте корпоративную карту как обычную дебетовую, если вы ИП',
|
|
54
|
+
'Расходы для бизнеса на УСН 15% позволят снизить налоговую базу',
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const backwardButton: ButtonProps = {
|
|
58
|
+
href: 'https://rshb.ru',
|
|
59
|
+
text: 'Все кредитные карты',
|
|
60
|
+
};
|
|
61
|
+
|
|
65
62
|
export const PRODUCT_BLOCK: ProductBlockContent = {
|
|
66
63
|
title: 'Оплата проходит в 180 странах мира',
|
|
67
64
|
headingType: 'h2',
|
|
68
|
-
|
|
69
|
-
'Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт.',
|
|
70
|
-
items: [
|
|
71
|
-
'Совершайте любые личные покупки',
|
|
72
|
-
'Используйте корпоративную карту как обычную дебетовую, если вы ИП',
|
|
73
|
-
'Расходы для бизнеса на УСН 15% позволят снизить налоговую базу',
|
|
74
|
-
],
|
|
65
|
+
items,
|
|
75
66
|
buttons: buttons,
|
|
76
67
|
};
|
|
77
68
|
|
|
@@ -84,7 +75,6 @@ export default {
|
|
|
84
75
|
title={'Потребительский кредит наличными'}
|
|
85
76
|
headingType="h2"
|
|
86
77
|
description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
|
|
87
|
-
breadcrumbs={breadcrumbs}
|
|
88
78
|
benefits={benefits}
|
|
89
79
|
buttons={buttons}
|
|
90
80
|
image={image}
|
|
@@ -100,31 +90,42 @@ export default {
|
|
|
100
90
|
headingType="h2"
|
|
101
91
|
version={'secondary'}
|
|
102
92
|
description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
|
|
103
|
-
breadcrumbs={breadcrumbs}
|
|
104
93
|
benefits={benefits}
|
|
105
|
-
buttons={
|
|
94
|
+
buttons={[
|
|
95
|
+
{
|
|
96
|
+
href: 'https://rshb.ru',
|
|
97
|
+
text: 'Подробнее',
|
|
98
|
+
target: '_blank',
|
|
99
|
+
version: 'secondary',
|
|
100
|
+
},
|
|
101
|
+
]}
|
|
102
|
+
items={items}
|
|
106
103
|
image={image}
|
|
107
104
|
/>
|
|
108
105
|
</div>
|
|
109
106
|
),
|
|
110
107
|
'with items': (
|
|
111
108
|
<div className="container grid grid-cols-12">
|
|
112
|
-
<ProductBlock
|
|
113
|
-
className="col-span-12"
|
|
114
|
-
context={context}
|
|
115
|
-
breadcrumbs={breadcrumbs}
|
|
116
|
-
{...PRODUCT_BLOCK}
|
|
117
|
-
image={image}
|
|
118
|
-
/>
|
|
109
|
+
<ProductBlock className="col-span-12" context={context} {...PRODUCT_BLOCK} image={image} />
|
|
119
110
|
</div>
|
|
120
111
|
),
|
|
121
112
|
'without image': (
|
|
113
|
+
<div className="container grid grid-cols-12">
|
|
114
|
+
<ProductBlock className="col-span-12" context={context} {...PRODUCT_BLOCK} />
|
|
115
|
+
</div>
|
|
116
|
+
),
|
|
117
|
+
'default-h1': (
|
|
122
118
|
<div className="container grid grid-cols-12">
|
|
123
119
|
<ProductBlock
|
|
124
120
|
className="col-span-12"
|
|
125
121
|
context={context}
|
|
126
|
-
|
|
127
|
-
|
|
122
|
+
title={'Потребительский кредит наличными'}
|
|
123
|
+
headingType="h1"
|
|
124
|
+
description="Кредит наличными без залога и поручительства. Потребительский кредит на любые цели. Нужен только паспорт."
|
|
125
|
+
benefits={benefits}
|
|
126
|
+
buttons={buttons}
|
|
127
|
+
image={image}
|
|
128
|
+
backwardButton={backwardButton}
|
|
128
129
|
/>
|
|
129
130
|
</div>
|
|
130
131
|
),
|
|
@@ -6,6 +6,7 @@ import { Breadcrumb } from '../../ui-kit/Breadcrumb';
|
|
|
6
6
|
import { joinList } from '../../utils/joinList';
|
|
7
7
|
import type { ProductBlockContent } from './ProductBlockContent';
|
|
8
8
|
import { ProductBlockInner } from './ProductBlockInner';
|
|
9
|
+
import { renderBackwardButton } from './renderBackwardButton';
|
|
9
10
|
|
|
10
11
|
export interface ProductBlockProps extends ProductBlockContent, UniBlockProps {}
|
|
11
12
|
|
|
@@ -36,6 +37,7 @@ export const ProductBlock = JSX<ProductBlockProps>((props) => {
|
|
|
36
37
|
className={`font-sans pt-10 pl-[50px] pb-[50px] pr-[7.5rem] box-border min-h-[420px] ${productBlockStyleMap[version]} ${className}`}
|
|
37
38
|
id={anchor}
|
|
38
39
|
>
|
|
40
|
+
{renderBackwardButton('Все дебетовые карты', version, 'mb-10')}
|
|
39
41
|
{breadcrumbs?.length ? (
|
|
40
42
|
<div className="text-xs mb-6">
|
|
41
43
|
{joinList(<span className={`mx-2 ${breadcrumbsStyleMap[version]}`}>/</span>)(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
2
2
|
import type { LinkProps } from '../../model/LinkProps';
|
|
3
|
-
import type { ButtonContent } from '../../ui-kit/Button/ButtonProps';
|
|
3
|
+
import type { ButtonContent, ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
4
|
import type { DescriptionContent } from '../../ui-kit/Description/DescriptionContent';
|
|
5
5
|
import type { HeadingContent, HeadingTypeContent } from '../../ui-kit/Heading/HeadingContent';
|
|
6
6
|
import type { ImageContent } from '../../ui-kit/Img/ImgProps';
|
|
@@ -32,6 +32,8 @@ export type ProductBlockInnerContent = HeadingContent &
|
|
|
32
32
|
* @hidden
|
|
33
33
|
*/
|
|
34
34
|
textBlockClassName?: string;
|
|
35
|
+
/** @title Текст кнопки возврата */
|
|
36
|
+
backwardButton?: ButtonProps;
|
|
35
37
|
};
|
|
36
38
|
|
|
37
39
|
/**
|
|
@@ -4,6 +4,7 @@ import { ButtonSection } from '../../ui-kit/Button/ButtonSection';
|
|
|
4
4
|
import { Description } from '../../ui-kit/Description/Description';
|
|
5
5
|
import { Img } from '../../ui-kit/Img/Img';
|
|
6
6
|
import { List } from '../../ui-kit/List/List';
|
|
7
|
+
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
7
8
|
import { BaseTile } from '../BaseTile/BaseTile';
|
|
8
9
|
import type { ProductBlockInnerContent } from './ProductBlockContent';
|
|
9
10
|
import { renderBenefit } from './renderBenefit';
|
|
@@ -31,12 +32,12 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
|
|
|
31
32
|
<div className={`flex flex-col ${textBlockClassName}`}>
|
|
32
33
|
<BaseTile
|
|
33
34
|
context={context}
|
|
34
|
-
title={getTitle(title, headingType
|
|
35
|
+
title={getTitle(title, headingType)}
|
|
35
36
|
buttons={getButtons(context, buttons)}
|
|
36
37
|
>
|
|
37
38
|
{description && (
|
|
38
39
|
<Description
|
|
39
|
-
className={`mt-
|
|
40
|
+
className={`mt-4 max-w-[600px] text-md font-light ${textColor}`}
|
|
40
41
|
description={description}
|
|
41
42
|
/>
|
|
42
43
|
)}
|
|
@@ -47,9 +48,9 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
|
|
|
47
48
|
) : null}
|
|
48
49
|
{items?.length ? (
|
|
49
50
|
<List
|
|
50
|
-
className="mt-5 text-title-
|
|
51
|
+
className="mt-5 text-title-2xs font-light"
|
|
51
52
|
items={items}
|
|
52
|
-
itemClassName="mb-[
|
|
53
|
+
itemClassName="mb-[7px]"
|
|
53
54
|
version={version}
|
|
54
55
|
isDotted={isDotted}
|
|
55
56
|
/>
|
|
@@ -62,15 +63,20 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
|
|
|
62
63
|
},
|
|
63
64
|
);
|
|
64
65
|
|
|
65
|
-
const getTitle = (title, headingType
|
|
66
|
-
const Tag = headingType;
|
|
66
|
+
const getTitle = (title, headingType) => {
|
|
67
67
|
return (
|
|
68
|
-
title &&
|
|
68
|
+
title && (
|
|
69
|
+
<Heading
|
|
70
|
+
headingType={headingType}
|
|
71
|
+
title={title}
|
|
72
|
+
className="whitespace-pre-wrap max-w-[600px]"
|
|
73
|
+
/>
|
|
74
|
+
)
|
|
69
75
|
);
|
|
70
76
|
};
|
|
71
77
|
|
|
72
78
|
const getButtons = (context, buttons) => {
|
|
73
79
|
return buttons?.length ? (
|
|
74
|
-
<ButtonSection context={context} buttons={buttons} className="flex mt-9 gap-
|
|
80
|
+
<ButtonSection context={context} buttons={buttons} className="flex mt-9 gap-4" />
|
|
75
81
|
) : null;
|
|
76
82
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
2
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
3
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
4
|
+
|
|
5
|
+
const backwardBgStyleMap: Record<BlockVersion, string> = {
|
|
6
|
+
primary: 'bg-primary-main',
|
|
7
|
+
secondary: 'bg-white',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const backwardIconStyleMap: Record<BlockVersion, string> = {
|
|
11
|
+
primary: 'text-white',
|
|
12
|
+
secondary: 'text-primary-text',
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export function renderBackwardButton(text: string, version: BlockVersion, className: string) {
|
|
16
|
+
return (
|
|
17
|
+
<div className={`flex items-center ${className}`}>
|
|
18
|
+
<Button
|
|
19
|
+
rounded
|
|
20
|
+
className={`w-12 h-12 min-h-12 max-h-12 flex items-center justify-center mr-3 ${backwardBgStyleMap[version]}`}
|
|
21
|
+
>
|
|
22
|
+
<Img
|
|
23
|
+
className={`w-4 h-4 min-w-4 min-h-4 rounded-full box-border ${backwardIconStyleMap[version]}`}
|
|
24
|
+
image={{ icon: 'ArrowLeftIcon' }}
|
|
25
|
+
color="none"
|
|
26
|
+
width="24"
|
|
27
|
+
height="24"
|
|
28
|
+
asSVG
|
|
29
|
+
/>
|
|
30
|
+
</Button>
|
|
31
|
+
{text ? <span className="text-m-md">{text}</span> : null}
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -3,7 +3,7 @@ import { Img } from '../../ui-kit/Img/Img';
|
|
|
3
3
|
import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
4
4
|
|
|
5
5
|
const benefitIconBgStyleMap: Record<BlockVersion, string> = {
|
|
6
|
-
primary: 'bg-main',
|
|
6
|
+
primary: 'bg-primary-main',
|
|
7
7
|
secondary: 'bg-white/30',
|
|
8
8
|
};
|
|
9
9
|
const benefitTitleStyleMap: Record<BlockVersion, string> = {
|
|
@@ -20,19 +20,19 @@ export function renderBenefit(benefit: Benefit, i: number, version: string) {
|
|
|
20
20
|
<div key={String(i)} className="flex gap-4 items-center">
|
|
21
21
|
{benefit.icon ? (
|
|
22
22
|
<Img
|
|
23
|
-
className={`w-[50px] h-[50px] min-w-[50px] min-h-[50px] rounded-full p-[10px] box-border ${benefitIconBgStyleMap[version]}`}
|
|
23
|
+
className={`w-[50px] h-[50px] min-w-[50px] min-h-[50px] rounded-full p-[10px] box-border text-white ${benefitIconBgStyleMap[version]}`}
|
|
24
24
|
image={benefit.icon}
|
|
25
25
|
width="24"
|
|
26
26
|
height="24"
|
|
27
27
|
asSVG
|
|
28
28
|
/>
|
|
29
29
|
) : null}
|
|
30
|
-
<div className="flex gap-
|
|
30
|
+
<div className="flex gap-0.5 flex-col h-full max-w-[149px]">
|
|
31
31
|
<div className={`font-medium text-xl m-0 ${benefitTitleStyleMap[version]}`}>
|
|
32
32
|
{benefit.label}
|
|
33
33
|
</div>
|
|
34
34
|
{benefit.description && (
|
|
35
|
-
<div className={`font-normal text-
|
|
35
|
+
<div className={`font-normal text-m-md ${benefitDescStyleMap[version]}`}>
|
|
36
36
|
{benefit.description}
|
|
37
37
|
</div>
|
|
38
38
|
)}
|