@redneckz/wildless-cms-uni-blocks 0.3.3 → 0.3.6
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 +51 -36
- package/bundle/bundle.umd.min.js +1 -1
- package/cosmos-static/icons/ActualBalanceIcon.svg +1 -0
- package/cosmos-static/icons/AppleIcon.svg +1 -0
- package/cosmos-static/icons/AtmIcon.svg +1 -0
- package/cosmos-static/icons/BankIcon.svg +1 -0
- package/cosmos-static/icons/BurgerIcon.svg +1 -0
- package/cosmos-static/icons/BurgerIconWhite.svg +1 -0
- package/cosmos-static/icons/Calendar2Icon.svg +1 -0
- package/cosmos-static/icons/CalendarCircleIcon.svg +1 -0
- package/cosmos-static/icons/CalendarIcon.svg +1 -0
- package/cosmos-static/icons/CalendarTickIcon.svg +1 -0
- package/cosmos-static/icons/CalendarWhiteIcon.svg +1 -0
- package/cosmos-static/icons/CardIcon.svg +1 -0
- package/cosmos-static/icons/CardPosIcon.svg +1 -0
- package/cosmos-static/icons/CardTickIcon.svg +1 -0
- package/cosmos-static/icons/CardWithGemIcon.svg +1 -0
- package/cosmos-static/icons/ChartSquareIcon.svg +1 -0
- package/cosmos-static/icons/ClockIcon.svg +1 -0
- package/cosmos-static/icons/CloseIcon.svg +1 -0
- package/cosmos-static/icons/ComfortableCompIcon.svg +1 -0
- package/cosmos-static/icons/CreditCardsIcon.svg +1 -0
- package/cosmos-static/icons/DiscountShapeIcon.svg +1 -0
- package/cosmos-static/icons/DocIcon.svg +1 -0
- package/cosmos-static/icons/DocIconMonoColor.svg +1 -0
- package/cosmos-static/icons/DocumentTextIcon.svg +1 -0
- package/cosmos-static/icons/DollarIcon.svg +1 -0
- package/cosmos-static/icons/EarthIcon.svg +1 -0
- package/cosmos-static/icons/EmptyWalletChangeIcon.svg +1 -0
- package/cosmos-static/icons/EmptyWalletIcon.svg +1 -0
- package/cosmos-static/icons/EmptyWalletWhiteIcon.svg +1 -0
- package/cosmos-static/icons/EuroIcon.svg +1 -0
- package/cosmos-static/icons/GeolocationIcon.svg +1 -0
- package/cosmos-static/icons/GlassIcon.svg +1 -0
- package/cosmos-static/icons/GlobalIcon.svg +1 -0
- package/cosmos-static/icons/GridIcon.svg +1 -0
- package/cosmos-static/icons/GridIconWhite.svg +1 -0
- package/cosmos-static/icons/InterestGrowthIcon.svg +1 -0
- package/cosmos-static/icons/InterestIcon.svg +1 -0
- package/cosmos-static/icons/JCBIcon.svg +1 -0
- package/cosmos-static/icons/LoupeIcon.svg +1 -0
- package/cosmos-static/icons/MasterCardIcon.svg +1 -0
- package/cosmos-static/icons/MinusIcon.svg +1 -0
- package/cosmos-static/icons/MirIcon.svg +1 -0
- package/cosmos-static/icons/MoneyIcon.svg +1 -0
- package/cosmos-static/icons/MoneyInsuranceIcon.svg +1 -0
- package/cosmos-static/icons/MonitorMobileIcon.svg +1 -0
- package/cosmos-static/icons/NewDocIcon.svg +1 -0
- package/cosmos-static/icons/OfficeIcon.svg +1 -0
- package/cosmos-static/icons/OkIcon.svg +1 -0
- package/cosmos-static/icons/PassSendIcon.svg +1 -0
- package/cosmos-static/icons/PercentageRoundIcon.svg +1 -0
- package/cosmos-static/icons/PercentageSquareIcon.svg +1 -0
- package/cosmos-static/icons/PercentageSquareWhiteIcon.svg +1 -0
- package/cosmos-static/icons/PersonalCardIcon.svg +1 -0
- package/cosmos-static/icons/PlayMarketIcon.svg +1 -0
- package/cosmos-static/icons/PlusIcon.svg +1 -0
- package/cosmos-static/icons/Profile2UserIcon.svg +1 -0
- package/cosmos-static/icons/ProfileIcon.svg +1 -0
- package/cosmos-static/icons/RoundRubleIcon.svg +1 -0
- package/cosmos-static/icons/SafeIcon.svg +1 -0
- package/cosmos-static/icons/ShieldTickIcon.svg +1 -0
- package/cosmos-static/icons/SignDocsIcon.svg +1 -0
- package/cosmos-static/icons/SmallClockIcon.svg +1 -0
- package/cosmos-static/icons/TelegramIcon.svg +1 -0
- package/cosmos-static/icons/UnionPayIcon.svg +1 -0
- package/cosmos-static/icons/UserTickIcon.svg +1 -0
- package/cosmos-static/icons/VKIcon.svg +1 -0
- package/cosmos-static/icons/VisaIcon.svg +1 -0
- package/cosmos-static/icons/WalletAdd2Icon.svg +1 -0
- package/cosmos-static/icons/WalletAddIcon.svg +1 -0
- package/cosmos-static/icons/WalletIcon.svg +1 -0
- package/cosmos-static/icons/WalletWithMoneyIcon.svg +1 -0
- package/dist/components/Accordion/utils/isActiveHandler.js +1 -1
- package/dist/components/Accordion/utils/isActiveHandler.js.map +1 -1
- package/dist/components/BaseTile/BaseTile.js +1 -1
- package/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/dist/components/Blocks.d.ts +0 -1
- package/dist/components/Blocks.js +0 -2
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/Blocks.mobile.d.ts +4 -2
- package/dist/components/Blocks.mobile.js +7 -3
- package/dist/components/Blocks.mobile.js.map +1 -1
- package/dist/components/ContentPage/ContentPage.js +2 -2
- package/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/dist/components/ContentPage/ContentPageHead.js +4 -2
- package/dist/components/ContentPage/ContentPageHead.js.map +1 -1
- package/dist/components/ContentPage/isBlockInRegistry.d.ts +1 -2
- package/dist/components/ContentPage/isBlockInRegistry.js +2 -2
- package/dist/components/ContentPage/isBlockInRegistry.js.map +1 -1
- package/dist/components/ContentPage/normalizeBlock.d.ts +1 -1
- package/dist/components/ContentPage/normalizePage.js +1 -1
- package/dist/components/ContentPage/normalizePage.js.map +1 -1
- package/dist/components/ContentPage/normalizePage.mobile.js +1 -1
- package/dist/components/ContentPage/normalizePage.mobile.js.map +1 -1
- package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
- package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/dist/components/Gallery/GalleryCardInner.js +15 -5
- package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
- package/dist/components/Header/Header.mobile.js +1 -1
- package/dist/components/Header/Header.mobile.js.map +1 -1
- package/dist/components/Header/HeaderBurger.js +1 -1
- package/dist/components/Header/HeaderBurger.js.map +1 -1
- package/dist/components/Header/HeaderTop.js +1 -1
- package/dist/components/Header/HeaderTop.js.map +1 -1
- package/dist/components/Headline/HeadlineContent.d.ts +1 -1
- package/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
- package/dist/components/LinkDocs/LinkDocsListItem.js.map +1 -1
- package/dist/components/LinkDocs/LinkDocsListItem.mobile.js +1 -1
- package/dist/components/LinkDocs/LinkDocsListItem.mobile.js.map +1 -1
- package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
- package/dist/components/Placeholder/Placeholder.js +8 -3
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/Placeholder/PlaceholderContent.d.ts +2 -1
- package/dist/components/ProductBlock/ProductBlockContent.d.ts +1 -1
- package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
- package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlockInner.mobile.js +4 -1
- package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
- package/dist/components/ProductBlock/renderBenefit.mobile.js +1 -1
- package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
- package/dist/components/ProductGallery/ProductGallery.mobile.js +3 -14
- package/dist/components/ProductGallery/ProductGallery.mobile.js.map +1 -1
- package/dist/components/ProductGallery/ProductGalleryBlock.mobile.js +1 -1
- package/dist/components/ProductTile/ProductTileContent.d.ts +1 -1
- package/dist/components/PromoTile/PromoTileContent.d.ts +1 -1
- package/dist/components/StepsBlock/StepsBlock.mobile.js +1 -1
- package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
- package/dist/components/Tile/Tile.js +5 -1
- package/dist/components/Tile/Tile.js.map +1 -1
- package/dist/components/Tile/TileContent.d.ts +1 -1
- package/dist/types.d.ts +8 -2
- package/dist/ui-kit/BlockItem/BlockItem.js +3 -3
- package/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/dist/ui-kit/Description/Description.d.ts +4 -1
- package/dist/ui-kit/Description/Description.js +1 -1
- package/dist/ui-kit/Description/Description.js.map +1 -1
- package/{lib/ui-kit/Description/DescriptionProps.d.ts → dist/ui-kit/Description/DescriptionContent.d.ts} +0 -3
- package/dist/ui-kit/Description/{DescriptionProps.js → DescriptionContent.js} +1 -1
- package/dist/ui-kit/Description/DescriptionContent.js.map +1 -0
- package/dist/ui-kit/Heading/Heading.js +1 -1
- package/dist/ui-kit/Heading/Heading.js.map +1 -1
- package/dist/ui-kit/Heading/Heading.mobile.js +1 -1
- package/dist/ui-kit/Heading/Heading.mobile.js.map +1 -1
- package/dist/ui-kit/List/ListItem.js +2 -2
- package/dist/ui-kit/List/ListItem.js.map +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Accordion/utils/isActiveHandler.js +1 -1
- package/lib/components/Accordion/utils/isActiveHandler.js.map +1 -1
- package/lib/components/BaseTile/BaseTile.js +1 -1
- package/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/lib/components/Blocks.d.ts +0 -1
- package/lib/components/Blocks.js +0 -2
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/Blocks.mobile.d.ts +4 -2
- package/lib/components/Blocks.mobile.js +7 -3
- package/lib/components/Blocks.mobile.js.map +1 -1
- package/lib/components/ContentPage/ContentPage.js +2 -2
- package/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/lib/components/ContentPage/ContentPageHead.js +4 -2
- package/lib/components/ContentPage/ContentPageHead.js.map +1 -1
- package/lib/components/ContentPage/isBlockInRegistry.d.ts +1 -2
- package/lib/components/ContentPage/isBlockInRegistry.js +2 -2
- package/lib/components/ContentPage/isBlockInRegistry.js.map +1 -1
- package/lib/components/ContentPage/normalizeBlock.d.ts +1 -1
- package/lib/components/ContentPage/normalizePage.js +1 -1
- package/lib/components/ContentPage/normalizePage.js.map +1 -1
- package/lib/components/ContentPage/normalizePage.mobile.js +1 -1
- package/lib/components/ContentPage/normalizePage.mobile.js.map +1 -1
- package/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
- package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/lib/components/Gallery/GalleryCardInner.js +15 -5
- package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
- package/lib/components/Header/Header.mobile.js +1 -1
- package/lib/components/Header/Header.mobile.js.map +1 -1
- package/lib/components/Header/HeaderBurger.js +1 -1
- package/lib/components/Header/HeaderBurger.js.map +1 -1
- package/lib/components/Header/HeaderTop.js +1 -1
- package/lib/components/Header/HeaderTop.js.map +1 -1
- package/lib/components/Headline/HeadlineContent.d.ts +1 -1
- package/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
- package/lib/components/LinkDocs/LinkDocsListItem.js.map +1 -1
- package/lib/components/LinkDocs/LinkDocsListItem.mobile.js +1 -1
- package/lib/components/LinkDocs/LinkDocsListItem.mobile.js.map +1 -1
- package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
- package/lib/components/Placeholder/Placeholder.fixture.mobile.d.ts +2 -0
- package/lib/components/Placeholder/Placeholder.js +9 -4
- package/lib/components/Placeholder/Placeholder.js.map +1 -1
- package/lib/components/Placeholder/PlaceholderContent.d.ts +2 -1
- package/lib/components/ProductBlock/ProductBlockContent.d.ts +1 -1
- package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
- package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlockInner.mobile.js +4 -1
- package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
- package/lib/components/ProductBlock/renderBenefit.mobile.js +1 -1
- package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
- package/lib/components/ProductGallery/ProductGallery.fixture.mobile.d.ts +1 -0
- package/lib/components/ProductGallery/ProductGallery.mobile.js +4 -15
- package/lib/components/ProductGallery/ProductGallery.mobile.js.map +1 -1
- package/lib/components/ProductGallery/ProductGalleryBlock.mobile.js +1 -1
- package/lib/components/ProductTile/ProductTileContent.d.ts +1 -1
- package/lib/components/PromoTile/PromoTileContent.d.ts +1 -1
- package/lib/components/StepsBlock/StepsBlock.mobile.js +1 -1
- package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
- package/lib/components/Tile/Tile.js +5 -1
- package/lib/components/Tile/Tile.js.map +1 -1
- package/lib/components/Tile/TileContent.d.ts +1 -1
- package/lib/types.d.ts +8 -2
- package/lib/ui-kit/BlockItem/BlockItem.js +3 -3
- package/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/lib/ui-kit/Description/Description.d.ts +4 -1
- package/lib/ui-kit/Description/Description.js +1 -1
- package/lib/ui-kit/Description/Description.js.map +1 -1
- package/{mobile/dist/ui-kit/Description/DescriptionProps.d.ts → lib/ui-kit/Description/DescriptionContent.d.ts} +0 -3
- package/lib/ui-kit/Description/DescriptionContent.js +2 -0
- package/lib/ui-kit/Description/DescriptionContent.js.map +1 -0
- package/lib/ui-kit/Heading/Heading.js +1 -1
- package/lib/ui-kit/Heading/Heading.js.map +1 -1
- package/lib/ui-kit/Heading/Heading.mobile.js +1 -1
- package/lib/ui-kit/Heading/Heading.mobile.js.map +1 -1
- package/lib/ui-kit/List/ListItem.js +2 -2
- package/lib/ui-kit/List/ListItem.js.map +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +261 -252
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/Accordion/utils/isActiveHandler.js +1 -1
- package/mobile/dist/components/Accordion/utils/isActiveHandler.js.map +1 -1
- package/mobile/dist/components/BaseTile/BaseTile.js +1 -1
- package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/mobile/dist/components/Blocks.d.ts +4 -2
- package/mobile/dist/components/Blocks.js +7 -3
- package/mobile/dist/components/Blocks.js.map +1 -1
- package/mobile/dist/components/ContentPage/ContentPage.js +2 -2
- package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/mobile/dist/components/ContentPage/ContentPageHead.js +4 -2
- package/mobile/dist/components/ContentPage/ContentPageHead.js.map +1 -1
- package/mobile/dist/components/ContentPage/isBlockInRegistry.d.ts +1 -2
- package/mobile/dist/components/ContentPage/isBlockInRegistry.js +2 -2
- package/mobile/dist/components/ContentPage/isBlockInRegistry.js.map +1 -1
- package/mobile/dist/components/ContentPage/normalizePage.js +1 -1
- package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
- package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
- package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/mobile/dist/components/Gallery/GalleryCardInner.js +15 -5
- package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
- package/mobile/dist/components/Header/Header.js +1 -1
- package/mobile/dist/components/Header/Header.js.map +1 -1
- package/mobile/dist/components/Header/HeaderBurger.js +1 -1
- package/mobile/dist/components/Header/HeaderBurger.js.map +1 -1
- package/mobile/dist/components/Header/HeaderTop.js +1 -1
- package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
- package/mobile/dist/components/Headline/HeadlineContent.d.ts +1 -1
- package/mobile/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
- package/mobile/dist/components/LinkDocs/LinkDocsListItem.js.map +1 -1
- package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
- package/mobile/dist/components/Placeholder/Placeholder.d.ts +1 -1
- package/mobile/dist/components/Placeholder/Placeholder.js +8 -3
- package/mobile/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/mobile/dist/components/Placeholder/PlaceholderContent.d.ts +2 -1
- package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +1 -1
- package/mobile/dist/components/ProductBlock/ProductBlockInner.js +4 -1
- package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -1
- package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
- package/mobile/dist/components/ProductGallery/ProductGallery.js +3 -14
- package/mobile/dist/components/ProductGallery/ProductGallery.js.map +1 -1
- package/mobile/dist/components/ProductGallery/ProductGalleryBlock.js +1 -1
- package/mobile/dist/components/ProductTile/ProductTileContent.d.ts +1 -1
- package/mobile/dist/components/PromoTile/PromoTileContent.d.ts +1 -1
- package/mobile/dist/components/StepsBlock/StepsBlock.js +1 -1
- package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
- package/mobile/dist/components/Tile/Tile.js +5 -1
- package/mobile/dist/components/Tile/Tile.js.map +1 -1
- package/mobile/dist/components/Tile/TileContent.d.ts +1 -1
- package/mobile/dist/types.d.ts +8 -2
- package/mobile/dist/ui-kit/BlockItem/BlockItem.js +3 -3
- package/mobile/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/mobile/dist/ui-kit/Description/Description.d.ts +4 -1
- package/mobile/dist/ui-kit/Description/Description.js +1 -1
- package/mobile/dist/ui-kit/Description/Description.js.map +1 -1
- package/mobile/{lib/ui-kit/Description/DescriptionProps.d.ts → dist/ui-kit/Description/DescriptionContent.d.ts} +0 -3
- package/mobile/dist/ui-kit/Description/{DescriptionProps.js → DescriptionContent.js} +1 -1
- package/mobile/dist/ui-kit/Description/DescriptionContent.js.map +1 -0
- package/mobile/dist/ui-kit/Heading/Heading.js +1 -1
- package/mobile/dist/ui-kit/Heading/Heading.js.map +1 -1
- package/mobile/dist/ui-kit/List/ListItem.js +2 -2
- package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
- package/mobile/lib/components/Accordion/utils/isActiveHandler.js +1 -1
- package/mobile/lib/components/Accordion/utils/isActiveHandler.js.map +1 -1
- package/mobile/lib/components/BaseTile/BaseTile.js +1 -1
- package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/mobile/lib/components/Blocks.d.ts +4 -2
- package/mobile/lib/components/Blocks.js +7 -3
- package/mobile/lib/components/Blocks.js.map +1 -1
- package/mobile/lib/components/ContentPage/ContentPage.js +2 -2
- package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/mobile/lib/components/ContentPage/ContentPageHead.js +4 -2
- package/mobile/lib/components/ContentPage/ContentPageHead.js.map +1 -1
- package/mobile/lib/components/ContentPage/isBlockInRegistry.d.ts +1 -2
- package/mobile/lib/components/ContentPage/isBlockInRegistry.js +2 -2
- package/mobile/lib/components/ContentPage/isBlockInRegistry.js.map +1 -1
- package/mobile/lib/components/ContentPage/normalizePage.js +1 -1
- package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
- package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
- package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/mobile/lib/components/Gallery/GalleryCardInner.js +15 -5
- package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
- package/mobile/lib/components/Header/Header.js +1 -1
- package/mobile/lib/components/Header/Header.js.map +1 -1
- package/mobile/lib/components/Header/HeaderBurger.js +1 -1
- package/mobile/lib/components/Header/HeaderBurger.js.map +1 -1
- package/mobile/lib/components/Header/HeaderTop.js +1 -1
- package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
- package/mobile/lib/components/Headline/HeadlineContent.d.ts +1 -1
- package/mobile/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
- package/mobile/lib/components/LinkDocs/LinkDocsListItem.js.map +1 -1
- package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
- package/mobile/lib/components/Placeholder/Placeholder.d.ts +1 -1
- package/mobile/lib/components/Placeholder/Placeholder.js +9 -4
- package/mobile/lib/components/Placeholder/Placeholder.js.map +1 -1
- package/mobile/lib/components/Placeholder/PlaceholderContent.d.ts +2 -1
- package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +1 -1
- package/mobile/lib/components/ProductBlock/ProductBlockInner.js +4 -1
- package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -1
- package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
- package/mobile/lib/components/ProductGallery/ProductGallery.js +4 -15
- package/mobile/lib/components/ProductGallery/ProductGallery.js.map +1 -1
- package/mobile/lib/components/ProductGallery/ProductGalleryBlock.js +1 -1
- package/mobile/lib/components/ProductTile/ProductTileContent.d.ts +1 -1
- package/mobile/lib/components/PromoTile/PromoTileContent.d.ts +1 -1
- package/mobile/lib/components/StepsBlock/StepsBlock.js +1 -1
- package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
- package/mobile/lib/components/Tile/Tile.js +5 -1
- package/mobile/lib/components/Tile/Tile.js.map +1 -1
- package/mobile/lib/components/Tile/TileContent.d.ts +1 -1
- package/mobile/lib/types.d.ts +8 -2
- package/mobile/lib/ui-kit/BlockItem/BlockItem.js +3 -3
- package/mobile/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/mobile/lib/ui-kit/Description/Description.d.ts +4 -1
- package/mobile/lib/ui-kit/Description/Description.js +1 -1
- package/mobile/lib/ui-kit/Description/Description.js.map +1 -1
- package/{dist/ui-kit/Description/DescriptionProps.d.ts → mobile/lib/ui-kit/Description/DescriptionContent.d.ts} +0 -3
- package/mobile/lib/ui-kit/Description/DescriptionContent.js +2 -0
- package/mobile/lib/ui-kit/Description/DescriptionContent.js.map +1 -0
- package/mobile/lib/ui-kit/Heading/Heading.js +1 -1
- package/mobile/lib/ui-kit/Heading/Heading.js.map +1 -1
- package/mobile/lib/ui-kit/List/ListItem.js +2 -2
- package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
- package/mobile/src/components/Accordion/utils/isActiveHandler.ts +1 -2
- package/mobile/src/components/BaseTile/BaseTile.tsx +2 -2
- package/mobile/src/components/Blocks.ts +7 -3
- package/mobile/src/components/ContentPage/ContentPage.page.json +54 -47
- package/mobile/src/components/ContentPage/ContentPage.tsx +2 -2
- package/mobile/src/components/ContentPage/ContentPageHead.tsx +14 -1
- package/mobile/src/components/ContentPage/isBlockInRegistry.ts +2 -4
- package/mobile/src/components/ContentPage/normalizePage.ts +4 -1
- package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
- package/mobile/src/components/Gallery/GalleryCardInner.tsx +23 -15
- package/mobile/src/components/Header/Header.tsx +1 -1
- package/mobile/src/components/Header/HeaderBurger.tsx +2 -2
- package/mobile/src/components/Header/HeaderTop.tsx +6 -2
- package/mobile/src/components/Headline/HeadlineContent.ts +1 -1
- package/mobile/src/components/LinkDocs/LinkDocsListItem.tsx +1 -1
- package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +1 -1
- package/mobile/src/components/Placeholder/Placeholder.tsx +36 -14
- package/mobile/src/components/Placeholder/PlaceholderContent.ts +2 -1
- package/mobile/src/components/ProductBlock/ProductBlockContent.ts +1 -1
- package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +17 -11
- package/mobile/src/components/ProductBlock/renderBenefit.tsx +2 -2
- package/mobile/src/components/ProductGallery/ProductGallery.tsx +12 -49
- package/mobile/src/components/ProductGallery/ProductGalleryBlock.tsx +1 -1
- package/mobile/src/components/ProductTile/ProductTileContent.ts +1 -1
- package/mobile/src/components/PromoTile/PromoTileContent.ts +1 -1
- package/mobile/src/components/StepsBlock/StepsBlock.tsx +1 -1
- package/mobile/src/components/Tile/Tile.tsx +7 -4
- package/mobile/src/components/Tile/TileContent.ts +1 -1
- package/mobile/src/types.ts +9 -2
- package/mobile/src/ui-kit/BlockItem/BlockItem.tsx +4 -4
- package/mobile/src/ui-kit/Description/Description.tsx +6 -2
- package/mobile/src/ui-kit/Description/{DescriptionProps.ts → DescriptionContent.ts} +0 -4
- package/mobile/src/ui-kit/Heading/Heading.tsx +1 -1
- package/mobile/src/ui-kit/List/ListItem.tsx +3 -3
- package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
- package/mobile/src/ui-kit/SwipeListControl/SwipeListControlItem.tsx +5 -1
- package/package.json +4 -5
- package/src/components/Accordion/utils/isActiveHandler.ts +1 -2
- package/src/components/BaseTile/BaseTile.tsx +2 -2
- package/src/components/Blocks.mobile.ts +7 -3
- package/src/components/Blocks.ts +0 -2
- package/src/components/ComparisonTable/ComparisonTable.fixture.tsx +0 -1
- package/src/components/ContentPage/ContentPage.page.json +54 -47
- package/src/components/ContentPage/ContentPage.tsx +2 -2
- package/src/components/ContentPage/ContentPageHead.tsx +14 -1
- package/src/components/ContentPage/isBlockInRegistry.ts +2 -4
- package/src/components/ContentPage/normalizePage.mobile.ts +4 -1
- package/src/components/ContentPage/normalizePage.ts +1 -1
- package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
- package/src/components/Gallery/Gallery.fixture.mobile.tsx +1 -1
- package/src/components/Gallery/GalleryCardInner.tsx +23 -15
- package/src/components/Header/Header.mobile.tsx +1 -1
- package/src/components/Header/HeaderBurger.tsx +2 -2
- package/src/components/Header/HeaderTop.tsx +6 -2
- package/src/components/Headline/HeadlineContent.ts +1 -1
- package/src/components/LinkDocs/LinkDocsListItem.mobile.tsx +1 -1
- package/src/components/LinkDocs/LinkDocsListItem.tsx +1 -1
- package/src/components/MobileAppTile/MobileAppTileContent.ts +1 -1
- package/src/components/Placeholder/Placeholder.fixture.mobile.tsx +9 -0
- package/src/components/Placeholder/Placeholder.tsx +35 -8
- package/src/components/Placeholder/PlaceholderContent.ts +2 -1
- package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +8 -2
- package/src/components/ProductBlock/ProductBlockContent.ts +1 -1
- package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +17 -11
- package/src/components/ProductBlock/ProductBlockInner.tsx +2 -2
- package/src/components/ProductBlock/renderBenefit.mobile.tsx +2 -2
- package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +106 -0
- package/src/components/ProductGallery/ProductGallery.fixture.tsx +2 -2
- package/src/components/ProductGallery/ProductGallery.mobile.tsx +12 -49
- package/src/components/ProductGallery/ProductGalleryBlock.mobile.tsx +1 -1
- package/src/components/ProductTile/ProductTileContent.ts +1 -1
- package/src/components/PromoTile/PromoTileContent.ts +1 -1
- package/src/components/StepsBlock/StepsBlock.mobile.tsx +1 -1
- package/src/components/Tile/Tile.tsx +7 -4
- package/src/components/Tile/TileContent.ts +1 -1
- package/src/types.ts +9 -2
- package/src/ui-kit/BlockItem/BlockItem.tsx +4 -4
- package/src/ui-kit/Description/Description.tsx +6 -2
- package/src/ui-kit/Description/{DescriptionProps.ts → DescriptionContent.ts} +0 -4
- package/src/ui-kit/Heading/Heading.fixture.mobile.tsx +0 -1
- package/src/ui-kit/Heading/Heading.mobile.tsx +1 -1
- package/src/ui-kit/Heading/Heading.tsx +3 -1
- package/src/ui-kit/List/ListItem.tsx +3 -3
- package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
- package/src/ui-kit/SwipeListControl/SwipeListControlItem.tsx +5 -1
- package/dist/components/Placeholder/Placeholder.mobile.d.ts +0 -6
- package/dist/components/Placeholder/Placeholder.mobile.js +0 -15
- package/dist/components/Placeholder/Placeholder.mobile.js.map +0 -1
- package/dist/ui-kit/Description/DescriptionProps.js.map +0 -1
- package/lib/components/Placeholder/Placeholder.mobile.d.ts +0 -6
- package/lib/components/Placeholder/Placeholder.mobile.js +0 -13
- package/lib/components/Placeholder/Placeholder.mobile.js.map +0 -1
- package/lib/ui-kit/Description/DescriptionProps.js +0 -2
- package/lib/ui-kit/Description/DescriptionProps.js.map +0 -1
- package/mobile/dist/ui-kit/Description/DescriptionProps.js.map +0 -1
- package/mobile/lib/ui-kit/Description/DescriptionProps.js +0 -2
- package/mobile/lib/ui-kit/Description/DescriptionProps.js.map +0 -1
- package/src/components/Placeholder/Placeholder.mobile.tsx +0 -35
|
@@ -186,62 +186,22 @@
|
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const protoSeparator = '//';
|
|
197
|
-
const endOfProto = url.indexOf(protoSeparator);
|
|
198
|
-
const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
|
|
199
|
-
return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
var url = /*#__PURE__*/Object.freeze({
|
|
203
|
-
__proto__: null,
|
|
204
|
-
isURL: isURL,
|
|
205
|
-
withoutQuery: withoutQuery,
|
|
206
|
-
getOrigin: getOrigin
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
const MOBILE_URL_PATH = '/mobile';
|
|
210
|
-
const withoutMobilePath = (href) => (href || '').replace(MOBILE_URL_PATH, '');
|
|
211
|
-
|
|
212
|
-
const adjustHref = (href, router) => {
|
|
213
|
-
if (!href) {
|
|
214
|
-
return href;
|
|
215
|
-
}
|
|
216
|
-
const relativeHref = toRelativeHref(href, router) || '';
|
|
217
|
-
const isMobilePage = router?.pathname.startsWith(MOBILE_URL_PATH);
|
|
218
|
-
return isMobilePage && !isURL(relativeHref) ? `${MOBILE_URL_PATH}${relativeHref}` : relativeHref;
|
|
189
|
+
const HeadingClass = {
|
|
190
|
+
h1: 'text-m-title',
|
|
191
|
+
h2: 'text-m-title',
|
|
192
|
+
h3: 'text-m-title-md',
|
|
193
|
+
h4: 'text-m-title-xs',
|
|
194
|
+
h5: 'text-m-title-xs',
|
|
195
|
+
h6: 'text-m-title-xs',
|
|
219
196
|
};
|
|
220
|
-
const
|
|
221
|
-
|
|
222
|
-
|
|
197
|
+
const Heading = JSX((props) => {
|
|
198
|
+
const { className, headingType, title } = props;
|
|
199
|
+
if (!headingType) {
|
|
200
|
+
return;
|
|
223
201
|
}
|
|
224
|
-
const
|
|
225
|
-
return
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
const defaultHandlerDecorator = (handler) => handler;
|
|
229
|
-
function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
|
|
230
|
-
const href = adjustHref(link.href, router);
|
|
231
|
-
return {
|
|
232
|
-
...link,
|
|
233
|
-
href,
|
|
234
|
-
ariaLabel: link.text,
|
|
235
|
-
onClick: handlerDecorator((ev) => {
|
|
236
|
-
const isLocalHref = href && !isURL(href);
|
|
237
|
-
const isLocalTarget = !link.target || link.target === '_self';
|
|
238
|
-
if (isLocalHref && isLocalTarget) {
|
|
239
|
-
ev.preventDefault();
|
|
240
|
-
router.push(href);
|
|
241
|
-
}
|
|
242
|
-
}, link),
|
|
243
|
-
};
|
|
244
|
-
}
|
|
202
|
+
const Tag = headingType;
|
|
203
|
+
return (jsx(Tag, { className: `font-sans font-medium m-0 ${HeadingClass[headingType]} ${className || ''}`, children: title }));
|
|
204
|
+
});
|
|
245
205
|
|
|
246
206
|
const projectSettings = new (class {
|
|
247
207
|
_ = {
|
|
@@ -286,144 +246,6 @@
|
|
|
286
246
|
return (jsx("img", { className: className, src: href, alt: alt, title: title, ...imgProps, "aria-hidden": "true" }));
|
|
287
247
|
});
|
|
288
248
|
|
|
289
|
-
const ButtonInner = JSX(({ text, aboveText, appendLeft, rounded, version }) => {
|
|
290
|
-
const withoutText = !text && !aboveText && Boolean(appendLeft);
|
|
291
|
-
const buttonInnerClasses = version !== 'link'
|
|
292
|
-
? `flex items-center justify-center
|
|
293
|
-
${withoutText ? 'h-12 w-12' : `px-8 gap-2 ${aboveText ? 'py-2' : 'py-3.5'}`} ${rounded ? 'rounded-full' : ''}`
|
|
294
|
-
: null;
|
|
295
|
-
return renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text });
|
|
296
|
-
});
|
|
297
|
-
function renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text }) {
|
|
298
|
-
return (jsxs("div", { className: buttonInnerClasses, children: [appendLeft ? appendLeft : null, withoutText ? null : (jsxs("div", { children: [jsx("div", { className: "text-m-2xs text-left", children: aboveText }), jsx("div", { className: "text-m-button font-medium text-left", children: text })] }))] }));
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
const buttonStyleMap = {
|
|
302
|
-
primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
|
|
303
|
-
secondary: 'text-primary-main bg-secondary-light hover:bg-secondary-hover active:bg-secondary-active',
|
|
304
|
-
link: 'text-primary-main',
|
|
305
|
-
};
|
|
306
|
-
const buttonDisabledStyleMap = {
|
|
307
|
-
primary: 'bg-secondary-dark text-secondary-text',
|
|
308
|
-
secondary: 'bg-secondary-light text-secondary-text',
|
|
309
|
-
link: '',
|
|
310
|
-
};
|
|
311
|
-
const styleButton = 'w-full text-center font-sans select-none';
|
|
312
|
-
const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'primary', ariaLabel, ...rest }) => {
|
|
313
|
-
const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded, version: version }));
|
|
314
|
-
if (disabled) {
|
|
315
|
-
return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `inline-block ${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
|
|
316
|
-
}
|
|
317
|
-
return (jsx("a", { className: `${styleButton} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
|
|
318
|
-
});
|
|
319
|
-
|
|
320
|
-
const ButtonSection = JSX(({ context, className = '', buttons }) => {
|
|
321
|
-
const { handlerDecorator } = context;
|
|
322
|
-
const router = context.useRouter();
|
|
323
|
-
return buttons?.length ? (jsx("div", { className: `${className}`, children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null;
|
|
324
|
-
});
|
|
325
|
-
function renderButton({ icon, ...button }, i) {
|
|
326
|
-
if (!button?.text)
|
|
327
|
-
return;
|
|
328
|
-
return icon ? (jsx(Button, { appendLeft: jsx(Icon, { name: icon, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
const HeadingClass = {
|
|
332
|
-
h1: 'text-m-title',
|
|
333
|
-
h2: 'text-m-title',
|
|
334
|
-
h3: 'text-m-title-md',
|
|
335
|
-
h4: 'text-m-title-xs',
|
|
336
|
-
h5: 'text-m-title-xs',
|
|
337
|
-
h6: 'text-m-title-xs',
|
|
338
|
-
};
|
|
339
|
-
const Heading = JSX((props) => {
|
|
340
|
-
const { className, headingType, title } = props;
|
|
341
|
-
if (!headingType) {
|
|
342
|
-
return;
|
|
343
|
-
}
|
|
344
|
-
const Tag = headingType;
|
|
345
|
-
return (jsx(Tag, { className: `font-sans font-medium ${HeadingClass[headingType]} ${className || ''}`, children: title }));
|
|
346
|
-
});
|
|
347
|
-
|
|
348
|
-
const BaseTile = JSX(({ className = '', title, children, buttons, image }) => {
|
|
349
|
-
return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: `flex grow w-full justify-between`, children: [jsxs("div", { className: `flex flex-col justify-between`, children: [jsx("div", { children: children }), jsx("div", { children: buttons })] }), image] })] }));
|
|
350
|
-
});
|
|
351
|
-
|
|
352
|
-
const getColSpan = (className) => {
|
|
353
|
-
const colSpanPrefix = 'col-span-';
|
|
354
|
-
const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
|
|
355
|
-
return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
|
|
356
|
-
};
|
|
357
|
-
|
|
358
|
-
function getTileHeadingType(className = '') {
|
|
359
|
-
const colSpan = getColSpan(className);
|
|
360
|
-
if (colSpan <= 4) {
|
|
361
|
-
return 'h4';
|
|
362
|
-
}
|
|
363
|
-
else if (colSpan <= 8) {
|
|
364
|
-
return 'h3';
|
|
365
|
-
}
|
|
366
|
-
else {
|
|
367
|
-
return 'h2';
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
function getTileMinHeight(className = '') {
|
|
372
|
-
const colSpan = getColSpan(className);
|
|
373
|
-
if (colSpan <= 6) {
|
|
374
|
-
return 'min-h-[300px]';
|
|
375
|
-
}
|
|
376
|
-
else if (colSpan <= 8) {
|
|
377
|
-
return 'min-h-[320px]';
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
return 'min-h-[360px]';
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
function getTileRightPadding(className = '') {
|
|
385
|
-
const colSpan = getColSpan(className);
|
|
386
|
-
if (colSpan <= 6) {
|
|
387
|
-
return 'pr-9';
|
|
388
|
-
}
|
|
389
|
-
else if (colSpan <= 8) {
|
|
390
|
-
return 'pr-[4.75rem]';
|
|
391
|
-
}
|
|
392
|
-
else {
|
|
393
|
-
return 'pr-[9.4rem]';
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
const CBR_EXCHANGE_RATE_URL = 'https://www.cbr-xml-daily.ru/daily_json.js';
|
|
398
|
-
const CURRENCY_CODES = ['USD', 'EUR'];
|
|
399
|
-
const CURRENCY_ICONS_MAP = {
|
|
400
|
-
USD: 'DollarIcon',
|
|
401
|
-
EUR: 'EuroIcon',
|
|
402
|
-
};
|
|
403
|
-
const buttons = [
|
|
404
|
-
{
|
|
405
|
-
text: 'Все показатели',
|
|
406
|
-
href: 'https://cbr.ru/currency_base/daily/',
|
|
407
|
-
version: 'secondary',
|
|
408
|
-
},
|
|
409
|
-
];
|
|
410
|
-
const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют' }) => {
|
|
411
|
-
const { data } = context.useAsyncData(CBR_EXCHANGE_RATE_URL, fetchExchangeRate);
|
|
412
|
-
return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsx(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px]` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, children: jsxs("table", { children: [jsx("thead", { children: jsxs("tr", { children: [jsx(CurrencyTH, { children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx(CurrencyTH, { className: "pl-11", children: "\u041A\u0443\u0440\u0441" })] }) }), jsx("tbody", { children: CURRENCY_CODES.map(renderCurrencyRow(data)) })] }) }) }));
|
|
413
|
-
});
|
|
414
|
-
const CurrencyTH = JSX(({ className = '', children }) => (jsx("th", { className: `text-left font-normal text-sm text-secondary-text ${className}`, children: children })));
|
|
415
|
-
const CurrencyTD = JSX(({ className = '', children }) => (jsx("td", { className: `text-left font-normal text-base text-primary-text ${className}`, children: children })));
|
|
416
|
-
async function fetchExchangeRate() {
|
|
417
|
-
const response = await fetch(CBR_EXCHANGE_RATE_URL);
|
|
418
|
-
return await response.json();
|
|
419
|
-
}
|
|
420
|
-
const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
|
|
421
|
-
const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
|
|
422
|
-
const renderCurrencyRow = (data) => (code) => {
|
|
423
|
-
const value = (data?.Valute || {})[code]?.Value;
|
|
424
|
-
return (jsxs("tr", { children: [jsx(CurrencyTD, { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [jsx(Icon, { name: CURRENCY_ICONS_MAP[code], width: "24", height: "24" }), jsx("span", { className: "ml-2", children: code })] }) }), jsx(CurrencyTD, { className: "pt-4 pl-11", children: formatCurrency(value) })] }, code));
|
|
425
|
-
};
|
|
426
|
-
|
|
427
249
|
const Img = JSX(({ className = '', image }) => {
|
|
428
250
|
if (!image) {
|
|
429
251
|
return null;
|
|
@@ -484,7 +306,7 @@
|
|
|
484
306
|
};
|
|
485
307
|
|
|
486
308
|
const SwipeListControlItem = JSX(({ className = '', children, ...rest }) => {
|
|
487
|
-
return (jsx("div", { className: `snap-center snap-always min-w-full ${className}`, role: "listitem", ...rest, children: children }));
|
|
309
|
+
return (jsx("div", { className: `snap-center snap-always min-w-full box-border ${className}`, role: "listitem", ...rest, children: children }));
|
|
488
310
|
});
|
|
489
311
|
|
|
490
312
|
// styles used to compensate outer container padding to get rid of clipping effect
|
|
@@ -517,7 +339,7 @@
|
|
|
517
339
|
const BASE_DOT_OPACITY = 0.3;
|
|
518
340
|
const ACTIVE_DOT_OPACITY_CHANGE = 0.7;
|
|
519
341
|
const SwipeListControlDots = JSX(({ children, activeIndex, indexFraction, showDots }) => {
|
|
520
|
-
return showDots && children?.length ? (jsx("div", { className: "flex gap-2 mx-auto mt-
|
|
342
|
+
return showDots && children?.length ? (jsx("div", { className: "flex gap-2 mx-auto mt-5 w-fit", children: children?.map((_, idx) => (jsx("div", { className: `${DOT_STYLES}`, style: getDotStyles(idx, activeIndex, indexFraction), "aria-hidden": true }, String(idx)))) })) : null;
|
|
521
343
|
});
|
|
522
344
|
const getDotStyles = (currentIdx, activeIndex, indexFraction) => {
|
|
523
345
|
if (currentIdx < activeIndex || currentIdx > activeIndex + 1)
|
|
@@ -575,7 +397,7 @@
|
|
|
575
397
|
return index !== -1 ? href.substring(index + 1) : '';
|
|
576
398
|
};
|
|
577
399
|
|
|
578
|
-
const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full ${className}`, iconClassName: "mr-3 min-w-6 min-h-6", doc: doc, icon: icon })));
|
|
400
|
+
const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full box-border ${className}`, iconClassName: "mr-3 min-w-6 min-h-6", doc: doc, icon: icon })));
|
|
579
401
|
|
|
580
402
|
const LinkDocsHorizontalList = JSX(({ context, hasBorder = true, documents, icon }) => {
|
|
581
403
|
return (jsx(SwipeListControl, { context: context, className: "text-m-sm text-primary-main", children: documents?.length
|
|
@@ -600,7 +422,7 @@
|
|
|
600
422
|
return (jsxs("div", { className: "flex flex-row mb-8", children: [benefit.icon && (jsx(Icon, { className: "w-[48px] h-[48px] bg-main rounded-full box-border p-[12px]", name: benefit.icon, width: "48", height: "48", asSVG: true })), jsxs("div", { className: "flex gap-1 flex-col h-full ml-5 max-w-[490px]", children: [benefit.label && (jsx("div", { className: "font-medium text-primary-text text-xl m-0", children: benefit.label })), benefit.description && (jsx("div", { className: "font-normal text-sm text-secondary-text", children: benefit.description }))] })] }, String(i)));
|
|
601
423
|
}
|
|
602
424
|
|
|
603
|
-
const LIST_STYLE_CLASSES$1 = 'rounded-full inline-block mr-3';
|
|
425
|
+
const LIST_STYLE_CLASSES$1 = 'rounded-full inline-block mr-3 mt-2';
|
|
604
426
|
const TEXT_STYLE_MAP$1 = {
|
|
605
427
|
primary: 'text-primary-text',
|
|
606
428
|
secondary: 'text-white',
|
|
@@ -612,7 +434,7 @@
|
|
|
612
434
|
gray: 'bg-secondary-text',
|
|
613
435
|
};
|
|
614
436
|
const ListItem = JSX(({ className = '', isDotted = true, children, version = 'primary' }) => {
|
|
615
|
-
return (jsxs("div", { className: `font-sans flex items-
|
|
437
|
+
return (jsxs("div", { className: `font-sans flex items-start ${className}`, role: "listitem", children: [isDotted && jsx("div", { className: getListStyle$1(version) }), jsx("span", { className: `text-m-md ${TEXT_STYLE_MAP$1[version]}`, children: children })] }));
|
|
616
438
|
});
|
|
617
439
|
const getListStyle$1 = (version) => {
|
|
618
440
|
const size = version === 'gray' ? 'w-[6px] h-[6px] min-w-[6px] min-h-[6px]' : 'w-2 h-2 min-w-2 min-h-2';
|
|
@@ -648,28 +470,180 @@
|
|
|
648
470
|
};
|
|
649
471
|
const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className = '', items, isDotted = true, }) => {
|
|
650
472
|
const textBlockStyleMap = textBlockStyleMaps[blockVersion];
|
|
651
|
-
return (jsxs("section", { className: `font-sans px-4 py-[18px] flex flex-col ${textBlockStyleMap.background} ${className}`, children: [iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "py-0.5", children: [title ? (jsx("div", { className: `font-medium text-base mb-1 ${textBlockStyleMap.title}`, children: title })) : null, description ? (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description })) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, version: "gray", className: "mt-1 text-m-sm text-secondary-text" })) : null] })] }));
|
|
473
|
+
return (jsxs("section", { className: `font-sans px-4 py-[18px] flex flex-col ${textBlockStyleMap.background} ${className}`, children: [iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion === 'big' ? renderImage$1(image) : null, jsxs("div", { className: "py-0.5", children: [title ? (jsx("div", { className: `font-medium text-base mb-1 ${textBlockStyleMap.title}`, children: title })) : null, description ? (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description })) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, version: "gray", className: "mt-1 text-m-sm text-secondary-text" })) : null] })] }));
|
|
652
474
|
});
|
|
653
475
|
function renderIcon(className) {
|
|
654
476
|
return (jsx("div", { className: "mb-3", children: jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs ${className}`, children: "i" }) }));
|
|
655
477
|
}
|
|
656
|
-
function renderImage(image) {
|
|
478
|
+
function renderImage$1(image) {
|
|
657
479
|
return image?.src ? jsx(Img, { className: "pb-3 mr-auto", image: image }) : null;
|
|
658
480
|
}
|
|
659
481
|
|
|
482
|
+
const isURL = (href) => href?.includes('//');
|
|
483
|
+
const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
|
|
484
|
+
const getOrigin = (href) => {
|
|
485
|
+
if (!href || !isURL(href)) {
|
|
486
|
+
return undefined;
|
|
487
|
+
}
|
|
488
|
+
const url = href;
|
|
489
|
+
const protoSeparator = '//';
|
|
490
|
+
const endOfProto = url.indexOf(protoSeparator);
|
|
491
|
+
const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
|
|
492
|
+
return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
var url = /*#__PURE__*/Object.freeze({
|
|
496
|
+
__proto__: null,
|
|
497
|
+
isURL: isURL,
|
|
498
|
+
withoutQuery: withoutQuery,
|
|
499
|
+
getOrigin: getOrigin
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
const MOBILE_URL_PATH = '/mobile';
|
|
503
|
+
const withoutMobilePath = (href) => (href || '').replace(MOBILE_URL_PATH, '');
|
|
504
|
+
|
|
505
|
+
const adjustHref = (href, router) => {
|
|
506
|
+
if (!href) {
|
|
507
|
+
return href;
|
|
508
|
+
}
|
|
509
|
+
const relativeHref = toRelativeHref(href, router) || '';
|
|
510
|
+
const isMobilePage = router?.pathname.startsWith(MOBILE_URL_PATH);
|
|
511
|
+
return isMobilePage && !isURL(relativeHref) ? `${MOBILE_URL_PATH}${relativeHref}` : relativeHref;
|
|
512
|
+
};
|
|
513
|
+
const toRelativeHref = (href, router) => {
|
|
514
|
+
if (!href) {
|
|
515
|
+
return href;
|
|
516
|
+
}
|
|
517
|
+
const origin = getOrigin(router?.href);
|
|
518
|
+
return origin ? href.replace(origin, '') || '/' : href;
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
const defaultHandlerDecorator = (handler) => handler;
|
|
522
|
+
function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
|
|
523
|
+
const href = adjustHref(link.href, router);
|
|
524
|
+
return {
|
|
525
|
+
...link,
|
|
526
|
+
href,
|
|
527
|
+
ariaLabel: link.text,
|
|
528
|
+
onClick: handlerDecorator((ev) => {
|
|
529
|
+
const isLocalHref = href && !isURL(href);
|
|
530
|
+
const isLocalTarget = !link.target || link.target === '_self';
|
|
531
|
+
if (isLocalHref && isLocalTarget) {
|
|
532
|
+
ev.preventDefault();
|
|
533
|
+
router.push(href);
|
|
534
|
+
}
|
|
535
|
+
}, link),
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
const ButtonInner = JSX(({ text, aboveText, appendLeft, rounded, version }) => {
|
|
540
|
+
const withoutText = !text && !aboveText && Boolean(appendLeft);
|
|
541
|
+
const buttonInnerClasses = version !== 'link'
|
|
542
|
+
? `flex items-center justify-center
|
|
543
|
+
${withoutText ? 'h-12 w-12' : `px-8 gap-2 ${aboveText ? 'py-2' : 'py-3.5'}`} ${rounded ? 'rounded-full' : ''}`
|
|
544
|
+
: null;
|
|
545
|
+
return renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text });
|
|
546
|
+
});
|
|
547
|
+
function renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text }) {
|
|
548
|
+
return (jsxs("div", { className: buttonInnerClasses, children: [appendLeft ? appendLeft : null, withoutText ? null : (jsxs("div", { children: [jsx("div", { className: "text-m-2xs text-left", children: aboveText }), jsx("div", { className: "text-m-button font-medium text-left", children: text })] }))] }));
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
const buttonStyleMap = {
|
|
552
|
+
primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
|
|
553
|
+
secondary: 'text-primary-main bg-secondary-light hover:bg-secondary-hover active:bg-secondary-active',
|
|
554
|
+
link: 'text-primary-main',
|
|
555
|
+
};
|
|
556
|
+
const buttonDisabledStyleMap = {
|
|
557
|
+
primary: 'bg-secondary-dark text-secondary-text',
|
|
558
|
+
secondary: 'bg-secondary-light text-secondary-text',
|
|
559
|
+
link: '',
|
|
560
|
+
};
|
|
561
|
+
const styleButton = 'w-full text-center font-sans select-none';
|
|
562
|
+
const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'primary', ariaLabel, ...rest }) => {
|
|
563
|
+
const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded, version: version }));
|
|
564
|
+
if (disabled) {
|
|
565
|
+
return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `inline-block ${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
|
|
566
|
+
}
|
|
567
|
+
return (jsx("a", { className: `${styleButton} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
|
|
568
|
+
});
|
|
569
|
+
|
|
570
|
+
const ButtonSection = JSX(({ context, className = '', buttons }) => {
|
|
571
|
+
const { handlerDecorator } = context;
|
|
572
|
+
const router = context.useRouter();
|
|
573
|
+
return buttons?.length ? (jsx("div", { className: `${className}`, children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null;
|
|
574
|
+
});
|
|
575
|
+
function renderButton({ icon, ...button }, i) {
|
|
576
|
+
if (!button?.text)
|
|
577
|
+
return;
|
|
578
|
+
return icon ? (jsx(Button, { appendLeft: jsx(Icon, { name: icon, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
|
|
579
|
+
}
|
|
580
|
+
|
|
660
581
|
const Description = JSX((props) => {
|
|
661
582
|
const { className, description } = props;
|
|
662
|
-
return jsx("div", { className: `font-normal text-
|
|
583
|
+
return jsx("div", { className: `font-normal text-m-md ${className || ''}`, children: description });
|
|
584
|
+
});
|
|
585
|
+
|
|
586
|
+
const BaseTile = JSX(({ className = '', title, children, buttons, image }) => {
|
|
587
|
+
return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: "flex grow w-full justify-between", children: [jsxs("div", { className: "flex flex-col justify-between w-full", children: [jsx("div", { children: children }), jsx("div", { children: buttons })] }), image] })] }));
|
|
663
588
|
});
|
|
664
589
|
|
|
590
|
+
const getColSpan = (className) => {
|
|
591
|
+
const colSpanPrefix = 'col-span-';
|
|
592
|
+
const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
|
|
593
|
+
return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
function getTileHeadingType(className = '') {
|
|
597
|
+
const colSpan = getColSpan(className);
|
|
598
|
+
if (colSpan <= 4) {
|
|
599
|
+
return 'h4';
|
|
600
|
+
}
|
|
601
|
+
else if (colSpan <= 8) {
|
|
602
|
+
return 'h3';
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
return 'h2';
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
function getTileMinHeight(className = '') {
|
|
610
|
+
const colSpan = getColSpan(className);
|
|
611
|
+
if (colSpan <= 6) {
|
|
612
|
+
return 'min-h-[300px]';
|
|
613
|
+
}
|
|
614
|
+
else if (colSpan <= 8) {
|
|
615
|
+
return 'min-h-[320px]';
|
|
616
|
+
}
|
|
617
|
+
else {
|
|
618
|
+
return 'min-h-[360px]';
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
function getTileRightPadding(className = '') {
|
|
623
|
+
const colSpan = getColSpan(className);
|
|
624
|
+
if (colSpan <= 6) {
|
|
625
|
+
return 'pr-9';
|
|
626
|
+
}
|
|
627
|
+
else if (colSpan <= 8) {
|
|
628
|
+
return 'pr-[4.75rem]';
|
|
629
|
+
}
|
|
630
|
+
else {
|
|
631
|
+
return 'pr-[9.4rem]';
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
|
|
665
635
|
const tileStyleMap = {
|
|
666
636
|
primary: 'bg-white text-primary-text',
|
|
667
637
|
secondary: 'bg-primary-main text-white',
|
|
668
638
|
};
|
|
669
639
|
const Tile = JSX((props) => {
|
|
670
640
|
const { context, title, description, items, children, buttons, image, className = '', version = 'primary', role, } = props;
|
|
671
|
-
return (jsx("section", { className: `font-sans p-9 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, role: role, children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${
|
|
641
|
+
return (jsx("section", { className: `font-sans p-9 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, role: role, children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
|
|
642
|
+
${version === 'primary' ? 'text-primary-text' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description && jsx(Description, { className: "mt-4 max-w-[600px]", description: description }), children, renderList(items, version)] }) }));
|
|
672
643
|
});
|
|
644
|
+
function renderList(items, version) {
|
|
645
|
+
return items?.length ? jsx(List, { items: items, version: version }) : null;
|
|
646
|
+
}
|
|
673
647
|
|
|
674
648
|
const productTileStyleMap = {
|
|
675
649
|
primary: 'bg-white text-primary-text',
|
|
@@ -701,12 +675,12 @@
|
|
|
701
675
|
}
|
|
702
676
|
function renderCard$1(card, key) {
|
|
703
677
|
return (jsxs("div", { className: `box-border horizontal-list-item border-solid border rounded-md border-main-stroke p-4 flex flex-col
|
|
704
|
-
${blockStyle[card.version ?? 'primary']}`, role: "listitem", children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: card.image }) })) : null, card.title ? jsx("h4", { className: `font-medium text-m-title-xs m-0`, children: card.title }) : null, card.description ? renderDescription(card) : null, card.items?.length ? renderItems(card.items) : null] }), card?.button?.href ? jsx(Button, { className: "mt-3", ...card.button }) : null] }, key));
|
|
678
|
+
${blockStyle[card.version ?? 'primary']}`, role: "listitem", children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: card.image }) })) : null, card.title ? jsx("h4", { className: `font-medium text-m-title-xs m-0`, children: card.title }) : null, card.description ? renderDescription(card) : null, card.items?.length ? renderItems$1(card.items) : null] }), card?.button?.href ? jsx(Button, { className: "mt-3", ...card.button }) : null] }, key));
|
|
705
679
|
}
|
|
706
680
|
function renderDescription(card) {
|
|
707
681
|
return (jsx("div", { className: `text-secondary-text mt-2 ${card.version === 'secondary' ? 'text-white opacity-80' : ''}`, children: card.description }));
|
|
708
682
|
}
|
|
709
|
-
function renderItems(items) {
|
|
683
|
+
function renderItems$1(items) {
|
|
710
684
|
return (jsx("section", { className: "mt-3", children: items.map((item) => (jsxs("div", { children: [jsx("span", { className: "text-m-md font-medium", children: item.title }), jsx("span", { className: "text-m-sm text-secondary-text pl-2", children: item.text })] }))) }));
|
|
711
685
|
}
|
|
712
686
|
|
|
@@ -747,9 +721,9 @@
|
|
|
747
721
|
mini: 276,
|
|
748
722
|
};
|
|
749
723
|
|
|
750
|
-
const LIST_STYLE_CLASSES = 'rounded-full inline-block mr-3';
|
|
724
|
+
const LIST_STYLE_CLASSES = 'rounded-full inline-block mr-3 mt-2';
|
|
751
725
|
const TEXT_STYLE_MAP = {
|
|
752
|
-
primary: 'text-
|
|
726
|
+
primary: 'text-secondary-text',
|
|
753
727
|
secondary: 'text-white',
|
|
754
728
|
gray: 'text-secondary-text',
|
|
755
729
|
};
|
|
@@ -759,7 +733,7 @@
|
|
|
759
733
|
gray: 'bg-secondary-text',
|
|
760
734
|
};
|
|
761
735
|
const BlockItem = JSX(({ className = '', isDotted = true, text, children, version = 'primary' }) => {
|
|
762
|
-
return (jsxs("div", { className: `font-sans flex items-
|
|
736
|
+
return (jsxs("div", { className: `font-sans flex items-start ${className}`, role: "listitem", children: [isDotted && jsx("div", { className: getListStyle(version) }), "!!!!!", jsx("span", { className: TEXT_STYLE_MAP[version], children: text || children })] }));
|
|
763
737
|
});
|
|
764
738
|
const getListStyle = (version) => {
|
|
765
739
|
const size = version === 'gray' ? 'w-[6px] h-[6px] min-w-[6px] min-h-[6px]' : 'w-2 h-2 min-w-2 min-h-2';
|
|
@@ -767,16 +741,26 @@
|
|
|
767
741
|
};
|
|
768
742
|
|
|
769
743
|
const GalleryCardInner = JSX(({ title, description, image, items, button, version }) => {
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
.map((item, i) => renderItem(item.text, i, version)) })) : null] }), button?.text && jsx(Button, { className: "mt-6", ...button })] }));
|
|
744
|
+
const titleStyleClasses = getTitleStyle(version, description, items);
|
|
745
|
+
return (jsxs("div", { children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title ? renderCardTitle(title, titleStyleClasses) : null, description ? (jsx("div", { className: `font-normal text-sm ${title ? 'mt-2' : ''}`, children: description })) : null, items?.length ? renderItems(items, version) : null] }), button?.text && jsx(Button, { className: "mt-6", ...button })] }));
|
|
773
746
|
});
|
|
774
|
-
function renderCardTitle(title,
|
|
775
|
-
return
|
|
747
|
+
function renderCardTitle(title, className) {
|
|
748
|
+
return jsx("div", { className: `font-medium text-xl m-0 ${className}`, children: title });
|
|
749
|
+
}
|
|
750
|
+
function renderItems(items, version) {
|
|
751
|
+
return (jsx("section", { className: `max-w-[308px] mt-2`, role: "list", children: items
|
|
752
|
+
.filter((item) => item?.text)
|
|
753
|
+
.map((item, i) => renderItem(item.text, i, version)) }));
|
|
776
754
|
}
|
|
777
755
|
function renderItem(item, i, version) {
|
|
778
756
|
return (jsx(BlockItem, { version: version ?? 'primary', children: jsx("span", { className: "text-sm", children: item }) }, String(i)));
|
|
779
757
|
}
|
|
758
|
+
function getTitleStyle(version, description, items) {
|
|
759
|
+
return `font-medium text-xl m-0
|
|
760
|
+
${version !== 'secondary' ? 'text-primary-text' : ''}
|
|
761
|
+
${!description && !items?.length ? 'text-center' : ''}
|
|
762
|
+
`;
|
|
763
|
+
}
|
|
780
764
|
|
|
781
765
|
const GalleryContainer = JSX(({ context, title, description, cards = [], version = 'normal', activeCardIndex }) => {
|
|
782
766
|
return (jsxs("div", { children: [jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-gradient-to-r from-white to-transparent" }), jsxs("div", { className: "flex flex-col items-center mb-8", children: [title ? jsx(Heading, { headingType: "h2", className: "text-center", title: title }) : null, description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mt-2.5", children: description })) : null] }), jsx("div", { className: `flex ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`, style: { transform: `translateX(-${activeCardIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard({ card, version, context }, i)) })] }));
|
|
@@ -826,7 +810,7 @@
|
|
|
826
810
|
const [isActive, setIsActive] = context.useState(false);
|
|
827
811
|
const hasContent = blocks?.length;
|
|
828
812
|
const icon = isActive ? 'MinusIcon' : 'PlusIcon';
|
|
829
|
-
const getContentBlock = ({
|
|
813
|
+
const getContentBlock = ({ currentTarget }) => currentTarget.nextSibling;
|
|
830
814
|
const handleToggle = (e) => {
|
|
831
815
|
if (!hasContent) {
|
|
832
816
|
return;
|
|
@@ -853,6 +837,36 @@
|
|
|
853
837
|
return (jsxs("section", { className: `py-6 font-sans bg-white text-primary-text ${bordered ? 'px-4' : ''} ${className}`, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-2 text-center", title: title }) : null, description ? jsx("div", { className: "mb-5 text-m-md text-center", children: description }) : null, accordionItems?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: accordionItems.map((item, i) => (jsx(AccordionItem, { ...item, context: context, bordered: bordered }, `AccordionItem${i}`))) })) : null] }));
|
|
854
838
|
});
|
|
855
839
|
|
|
840
|
+
const CBR_EXCHANGE_RATE_URL = 'https://www.cbr-xml-daily.ru/daily_json.js';
|
|
841
|
+
const CURRENCY_CODES = ['USD', 'EUR'];
|
|
842
|
+
const CURRENCY_ICONS_MAP = {
|
|
843
|
+
USD: 'DollarIcon',
|
|
844
|
+
EUR: 'EuroIcon',
|
|
845
|
+
};
|
|
846
|
+
const buttons = [
|
|
847
|
+
{
|
|
848
|
+
text: 'Все показатели',
|
|
849
|
+
href: 'https://cbr.ru/currency_base/daily/',
|
|
850
|
+
version: 'secondary',
|
|
851
|
+
},
|
|
852
|
+
];
|
|
853
|
+
const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют' }) => {
|
|
854
|
+
const { data } = context.useAsyncData(CBR_EXCHANGE_RATE_URL, fetchExchangeRate);
|
|
855
|
+
return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsx(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, children: jsxs("table", { children: [jsx("thead", { children: jsxs("tr", { children: [jsx(CurrencyTH, { children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx(CurrencyTH, { className: "pl-11", children: "\u041A\u0443\u0440\u0441" })] }) }), jsx("tbody", { children: CURRENCY_CODES.map(renderCurrencyRow(data)) })] }) }) }));
|
|
856
|
+
});
|
|
857
|
+
const CurrencyTH = JSX(({ className = '', children }) => (jsx("th", { className: `text-left font-normal text-sm text-secondary-text ${className}`, children: children })));
|
|
858
|
+
const CurrencyTD = JSX(({ className = '', children }) => (jsx("td", { className: `text-left font-normal text-base text-primary-text ${className}`, children: children })));
|
|
859
|
+
async function fetchExchangeRate() {
|
|
860
|
+
const response = await fetch(CBR_EXCHANGE_RATE_URL);
|
|
861
|
+
return await response.json();
|
|
862
|
+
}
|
|
863
|
+
const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
|
|
864
|
+
const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
|
|
865
|
+
const renderCurrencyRow = (data) => (code) => {
|
|
866
|
+
const value = (data?.Valute || {})[code]?.Value;
|
|
867
|
+
return (jsxs("tr", { children: [jsx(CurrencyTD, { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [jsx(Icon, { name: CURRENCY_ICONS_MAP[code], width: "24", height: "24" }), jsx("span", { className: "ml-2", children: code })] }) }), jsx(CurrencyTD, { className: "pt-4 pl-11", children: formatCurrency(value) })] }, code));
|
|
868
|
+
};
|
|
869
|
+
|
|
856
870
|
const LOGO_PATHS = [
|
|
857
871
|
'm13.72 25.51 4.42-4.33v-2.95l-4.42 4.32v2.96Zm0-10.98 4.42-4.35V7.41l-4.42 4.31v2.8Zm0 3.63 4.42-4.33v-2.78l-4.42 4.32v2.8ZM12.46 7.44l-.6-.56V0h-.66v6.22l-.58-.57V0h-.67v5l-.59-.58V0H8.7v6.56l4.44 4.33V0h-.67v7.44Zm1.26 14.35 4.42-4.33v-2.78L13.72 19v2.8Zm-5.03-.61 4.44 4.33v-2.96l-4.44-4.32v2.95Zm8.79-16.76-.59.58V0h-.66v5.66l-.6.56V0h-.66v6.87l-.58.57V0h-.67v10.9l4.42-4.34V0h-.66v4.42Zm-8.79 5.76 4.44 4.35v-2.8L8.69 7.4v2.77Zm0 3.65 4.44 4.33v-2.8l-4.44-4.3v2.77Zm0 3.63 4.44 4.33V19l-4.44-4.31v2.78Zm26.37 2.29H24.3a2.25 2.25 0 0 0 .36-1.22 2.32 2.32 0 0 0-2.33-2.31 2.32 2.32 0 0 0-2.31 2.31c0 .5.16.96.43 1.34a.74.74 0 0 0-.33.61c0 .26.14.49.33.62a2.32 2.32 0 0 0-.43 1.34 2.31 2.31 0 0 0 2.31 2.31 2.32 2.32 0 0 0 2.33-2.31c0-.45-.13-.87-.36-1.22h8.01v.49h-.8v.68h.8v.7h-.8v1.3h.8v-.58h1.17v.58h.79v-1.3h-.79v-.7h.79v-.68h-.79v-.5h1.58a.56.56 0 0 0 .56-.56v-.34a.57.57 0 0 0-.56-.56Zm-11.53 2.7a1.2 1.2 0 0 1-2.4 0c0-.24.08-.47.2-.66l.34-.56a.97.97 0 0 1-.34-.75c0-.3.13-.56.33-.74l-.32-.56a1.13 1.13 0 0 1-.2-.66 1.2 1.2 0 0 1 2.4 0c0 .49-.56 1.65-.56 1.65v.62c-.01.01.55 1.17.55 1.66ZM4.67 18.34v2.89c0 2.75 1.2 4.53 1.9 5.21l4.58 4.5c1.28 1.25 1.5 1.66 1.79 2.37v-3.2c0-2.84-1.44-3.94-2.19-4.67-1.73-1.68-2.89-2.8-3.82-3.73a8.98 8.98 0 0 1-2.26-3.37Zm6.08 14.24c-1.73-1.7-2.89-2.8-3.82-3.73a10 10 0 0 1-2.25-2.98v2.49a7.87 7.87 0 0 0 1.89 5.24l4.58 4.47c1.28 1.25 1.5 1.85 1.79 2.55v-3.37c0-2.85-1.45-3.95-2.19-4.67Z',
|
|
858
872
|
'M19.88 5.34c-.32 0-.64 0-.96.02V6.7a18.5 18.5 0 1 1 .95 36.94A18.5 18.5 0 0 1 1.35 25.17c0-5.67 2.55-10.73 6.58-14.13V9.32A19.78 19.78 0 0 0 0 25.17C0 36.12 8.9 45 19.88 45a19.85 19.85 0 0 0 19.86-19.83c0-10.95-8.9-19.83-19.87-19.83Z',
|
|
@@ -1029,14 +1043,14 @@
|
|
|
1029
1043
|
|
|
1030
1044
|
const HeaderBurger = JSX(({ context, burgerSubMenu, onClick, defaultLocation = '', children }) => {
|
|
1031
1045
|
const [city, getCity] = context.useGeolocation(defaultLocation);
|
|
1032
|
-
return (jsxs("div", { className: "absolute top-0 left-0 w-full h-full bg-white p-4", children: [jsx("button", { className: "absolute top-4 right-4", onClick: onClick, children: jsx(Icon, { name: "CloseIcon", width: "24", height: "24", asSVG: true }) }), jsxs(Button, { onClick: getCity, className: "flex items-center text-sm text-secondary-text mb-4", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24", className: "box-border mr-2", asSVG: true }), city] }), children, jsx("div", { className: "mb-7", children: burgerSubMenu?.map(renderBurgerSubMenuItem) }), jsx(SearchBar, { context: context, className: "grow" })] }));
|
|
1046
|
+
return (jsxs("div", { className: "absolute top-0 left-0 w-full h-full bg-white p-4 box-border z-20", children: [jsx("button", { className: "absolute top-4 right-4 border-none bg-transparent", onClick: onClick, children: jsx(Icon, { name: "CloseIcon", width: "24", height: "24", asSVG: true }) }), jsxs(Button, { onClick: getCity, className: "flex items-center text-sm text-secondary-text mb-4", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24", className: "box-border mr-2", asSVG: true }), city] }), children, jsx("div", { className: "mb-7", children: burgerSubMenu?.map(renderBurgerSubMenuItem) }), jsx(SearchBar, { context: context, className: "grow" })] }));
|
|
1033
1047
|
});
|
|
1034
1048
|
const renderBurgerSubMenuItem = (menu, i) => {
|
|
1035
1049
|
const { icon, href, text } = menu;
|
|
1036
1050
|
return (jsxs(Button, { href: href, className: "flex text-sm mb-4", children: [icon ? jsx(Icon, { className: "pr-1", name: icon, width: "24", height: "24", asSVG: true }) : null, jsx("span", { className: "pl-0.5 font-medium", children: text })] }, `headerSubMenu-${i}`));
|
|
1037
1051
|
};
|
|
1038
1052
|
|
|
1039
|
-
const HeaderTop = JSX(({ onClick, bgColor }) => (jsxs("div", { className: "flex items-center justify-between border-0 border-b border-main-divider h-[50px]", children: [jsxs("div", { className: "flex items-center", children: [jsx("button", { className: "pr-4", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Icon, { name: bgColor === 'bg-white' ? 'BurgerIcon' : 'BurgerIconWhite', width: "24", height: "24", asSVG: true }) }), jsx(Logo, { bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-sm`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
|
|
1053
|
+
const HeaderTop = JSX(({ onClick, bgColor }) => (jsxs("div", { className: "flex items-center justify-between border-0 border-b border-main-divider h-[50px]", children: [jsxs("div", { className: "flex items-center", children: [jsx("button", { className: "pr-4 border-0 bg-transparent", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Icon, { name: bgColor === 'bg-white' ? 'BurgerIcon' : 'BurgerIconWhite', width: "24", height: "24", asSVG: true }) }), jsx(Logo, { bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-sm border-0 bg-transparent`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
|
|
1040
1054
|
|
|
1041
1055
|
const Header = JSX(({ className = '', defaultLocation, bgColor = 'bg-white', context, topItems, burgerSubMenu }) => {
|
|
1042
1056
|
const router = context.useRouter();
|
|
@@ -1048,7 +1062,7 @@
|
|
|
1048
1062
|
const activeSubItem = findActiveSubItem(router)(subItems);
|
|
1049
1063
|
const [burgerMenuShow, setBurgerMenuShow] = context.useState(false);
|
|
1050
1064
|
const toggleBurgerMenu = () => setBurgerMenuShow(!burgerMenuShow);
|
|
1051
|
-
return (jsxs("header", { className: `${bgColor} ${className}`, children: [jsxs("div", { className: "container px-4 py-0", children: [jsx(HeaderTop, { onClick: toggleBurgerMenu, bgColor: bgColor }), jsx("nav", { className: "flex items-center m-0 p-0 overflow-y-hidden w-full h-[50px]", children: jsx("div", { className: "flex", children: subItems?.map((_, i) => renderSubItem({
|
|
1065
|
+
return (jsxs("header", { className: `${bgColor} ${className}`, children: [jsxs("div", { className: "container px-4 py-0 box-border", children: [jsx(HeaderTop, { onClick: toggleBurgerMenu, bgColor: bgColor }), jsx("nav", { className: "flex items-center m-0 p-0 overflow-y-hidden w-full h-[50px]", children: jsx("div", { className: "flex", children: subItems?.map((_, i) => renderSubItem({
|
|
1052
1066
|
...useLink({ router, handlerDecorator }, _),
|
|
1053
1067
|
active: _ === activeSubItem,
|
|
1054
1068
|
bgColor,
|
|
@@ -1056,16 +1070,6 @@
|
|
|
1056
1070
|
});
|
|
1057
1071
|
const renderSubItem = (item, i) => (jsx(HeaderItem, { className: "mr-8 whitespace-nowrap text-sm", ...item }, String(i)));
|
|
1058
1072
|
|
|
1059
|
-
const GOLDEN_RATIO = 1.618;
|
|
1060
|
-
const Placeholder = JSX(({ className = '', context, title }) => {
|
|
1061
|
-
return (jsx(Tile, { className: `pr-0 min-h-0 ${className}`, context: context, title: title, description: "\u0411\u043B\u043E\u043A \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u043A\u0435...", children: jsx("figure", { className: "m-0", children: renderShimmer() }) }));
|
|
1062
|
-
});
|
|
1063
|
-
const renderShimmer = (size = 3) => goldenSequence(100, size)
|
|
1064
|
-
.map((_) => Math.floor(_))
|
|
1065
|
-
.map(renderShimmerItem);
|
|
1066
|
-
const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
|
|
1067
|
-
const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
|
|
1068
|
-
|
|
1069
1073
|
const benefitTitleStyleMap = {
|
|
1070
1074
|
primary: 'text-primary-text',
|
|
1071
1075
|
secondary: 'text-white',
|
|
@@ -1075,12 +1079,15 @@
|
|
|
1075
1079
|
secondary: 'text-white',
|
|
1076
1080
|
};
|
|
1077
1081
|
function renderBenefit(benefit, i, version) {
|
|
1078
|
-
return (jsxs("div", { className: "flex gap-3 items-center mb-2.5 last:mb-0", children: [benefit.icon && (jsx(Icon, { className: "w-
|
|
1082
|
+
return (jsxs("div", { className: "flex gap-3 items-center mb-2.5 last:mb-0", children: [benefit.icon && (jsx(Icon, { className: "w-6 h-6 rounded-full box-border", name: benefit.icon, width: "24", height: "24", asSVG: true })), jsx("div", { className: `font-medium text-m-title-xs m-0 ${benefitTitleStyleMap[version]}`, children: benefit.label }), benefit.description && (jsx("div", { className: `font-normal text-m-sm ${benefitDescStyleMap[version]}`, children: benefit.description }))] }, String(i)));
|
|
1079
1083
|
}
|
|
1080
1084
|
|
|
1081
1085
|
const ProductBlockInner = JSX(({ className = '', context, title, headingType = 'h2', description, benefits, buttons, image, items, version = 'primary', }) => {
|
|
1082
|
-
return (jsxs("div", { className:
|
|
1086
|
+
return (jsxs("div", { className: `w-full text-primary-text ${className}`, children: [jsx("div", { children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: headingType, title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex flex-col mt-5 gap-2.5" })) : null, children: [description && jsx(Description, { description: description }), benefits?.length ? (jsx("div", { className: "mt-5", children: benefits.map((_, i) => renderBenefit(_, i, version)) })) : null, items?.length ? jsx(List, { items: items }) : null] }) }), renderImage(image)] }));
|
|
1083
1087
|
});
|
|
1088
|
+
function renderImage(image) {
|
|
1089
|
+
return image?.src ? (jsx("div", { className: "mt-5", children: jsx(Img, { image: { className: 'block', ...image } }) })) : null;
|
|
1090
|
+
}
|
|
1084
1091
|
|
|
1085
1092
|
const ProductBlock = JSX(
|
|
1086
1093
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -1090,25 +1097,13 @@
|
|
|
1090
1097
|
});
|
|
1091
1098
|
|
|
1092
1099
|
const ProductGalleryBlock = JSX(({ block, headingType, context }) => {
|
|
1093
|
-
return (jsx("section", { className: "flex grow-0 shrink-0 basis-full px-4
|
|
1100
|
+
return (jsx("section", { className: "flex grow-0 shrink-0 basis-full px-4 pt-6", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { context: context, headingType: headingType || 'h2', ...block }) }) }));
|
|
1094
1101
|
});
|
|
1095
1102
|
|
|
1096
|
-
const ProductGallery = JSX(({ className, context,
|
|
1103
|
+
const ProductGallery = JSX(({ className, context, slides = [] }) => {
|
|
1097
1104
|
const galleryBlocks = slides.map((s) => s.productBlock);
|
|
1098
|
-
|
|
1099
|
-
return (jsxs("section", { className: `font-sans bg-white overflow-hidden w-100 ${className || ''}`, children: [jsx("div", { className: `flex duration-1000`, style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((block, i) => (jsx(ProductGalleryBlock, { block: block, context: context }, String(i)))) }), jsx("div", { className: "flex px-4 py-6", children: slides.map((_, i) => renderNavButton({
|
|
1100
|
-
slide: _.productBlock,
|
|
1101
|
-
i,
|
|
1102
|
-
activeSlideIndex,
|
|
1103
|
-
onClick: () => setActiveSlideIndex(i),
|
|
1104
|
-
duration,
|
|
1105
|
-
})) })] }));
|
|
1105
|
+
return (jsx("section", { className: `font-sans bg-white overflow-hidden w-100 pb-6 ${className || ''}`, children: jsx(SwipeListControl, { context: context, children: galleryBlocks.map((block, i) => (jsx(ProductGalleryBlock, { block: block, context: context }, String(i)))) }) }));
|
|
1106
1106
|
});
|
|
1107
|
-
function renderNavButton({ slide, i, activeSlideIndex, onClick, duration }) {
|
|
1108
|
-
const isActiveBtn = i === activeSlideIndex;
|
|
1109
|
-
const progressBarClassName = isActiveBtn ? 'animate-slide bg-primary-main' : 'bg-main-divider';
|
|
1110
|
-
return (jsx("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `relative overflow-hidden border-0 bg-inherit cursor-pointer pl-0 mr-1.5 pt-4 pb-5 last:mr-0 grow basis-0`, children: jsx("div", { className: `absolute bottom-0 left-0 w-full h-[3px] ${progressBarClassName}`, style: { animationDuration: `${duration}s`, animationFillMode: 'forwards' } }) }, String(i)));
|
|
1111
|
-
}
|
|
1112
1107
|
|
|
1113
1108
|
const StepsBlock = JSX(({ className, title, description, steps, size = 'normal' }) => {
|
|
1114
1109
|
return (jsxs("section", { className: `box-border font-sans text-primary-text bg-white px-4 py-6 flex flex-col ${className || ''}`, children: [title && jsx(Heading, { headingType: "h3", className: "text-center", title: title }), description && jsx("p", { className: `text-m-md text-center ${title && 'mt-2'}`, children: description }), steps?.length ? (jsx("div", { className: `box-border py-0.5 mb-0.5 mt-5`, children: jsx("div", { className: "flex flex-col justify-between gap-x-[101px]", children: steps.map((step, i) => renderStepTitle({ step, size, i, length: steps.length })) }) })) : null] }));
|
|
@@ -1117,7 +1112,7 @@
|
|
|
1117
1112
|
const { step, size, i, length } = params;
|
|
1118
1113
|
const isLastStep = length - 1 === i;
|
|
1119
1114
|
const margin = size === 'normal' ? 'ml-[34px]' : 'ml-[24px]';
|
|
1120
|
-
return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { children: [renderIconArea(step, size, i), !isLastStep && jsx("div", { className: `min-h-8 h-full w-[2px] bg-secondary-light ${margin}` })] }), jsxs("div", { className: "flex flex-col justify-
|
|
1115
|
+
return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { children: [renderIconArea(step, size, i), !isLastStep && jsx("div", { className: `min-h-8 h-full w-[2px] bg-secondary-light ${margin}` })] }), jsxs("div", { className: "flex flex-col justify-start relative", children: [step.label && (jsx("div", { className: "font-medium text-m-title-xs m-0 text-left", children: step.label })), step.description && (jsx("div", { className: `font-normal text-sm text-secondary-text text-left ${step.label ? 'mt-1' : ''}`, children: step.description }))] })] }, String(i)) }, String(i)));
|
|
1121
1116
|
};
|
|
1122
1117
|
const renderIconArea = (step, size, i) => {
|
|
1123
1118
|
const iconAreaSize = size === 'normal'
|
|
@@ -1129,16 +1124,18 @@
|
|
|
1129
1124
|
};
|
|
1130
1125
|
|
|
1131
1126
|
const Blocks = {
|
|
1127
|
+
Accordion,
|
|
1132
1128
|
ExchangeRateTile,
|
|
1133
1129
|
Footer,
|
|
1130
|
+
Gallery,
|
|
1134
1131
|
Header,
|
|
1135
1132
|
Headline,
|
|
1136
1133
|
LinkDocs,
|
|
1137
|
-
|
|
1134
|
+
MobileAppTile,
|
|
1138
1135
|
ProductBlock,
|
|
1139
1136
|
ProductGallery,
|
|
1140
|
-
TextBlock,
|
|
1141
1137
|
StepsBlock,
|
|
1138
|
+
TextBlock,
|
|
1142
1139
|
};
|
|
1143
1140
|
|
|
1144
1141
|
const LikeButton = JSX(({ className, onClick, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 w-[36px] bg-inherit cursor-pointer ${className || ''}`, onClick: onClick, "aria-label": ariaLabel, children: renderLikeIcon() })));
|
|
@@ -1157,6 +1154,16 @@
|
|
|
1157
1154
|
return (jsxs("div", { className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className || ''}`, children: [jsx(LikeButton, { onClick: likeService.like, ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: likeService.dislike, className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
|
|
1158
1155
|
});
|
|
1159
1156
|
|
|
1157
|
+
const GOLDEN_RATIO = 1.618;
|
|
1158
|
+
const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...' }) => {
|
|
1159
|
+
return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px]` })) : null, children: [description ? (jsx(Description, { className: "mt-4 max-w-[600px]", description: description })) : null, jsx("figure", { className: "m-0 min-w-[600px]", children: renderShimmer() })] }) }));
|
|
1160
|
+
});
|
|
1161
|
+
const renderShimmer = (size = 3) => goldenSequence(100, size)
|
|
1162
|
+
.map((_) => Math.floor(_))
|
|
1163
|
+
.map(renderShimmerItem);
|
|
1164
|
+
const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
|
|
1165
|
+
const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
|
|
1166
|
+
|
|
1160
1167
|
const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
|
|
1161
1168
|
const ContentPage = JSX(({ className, context, blocksRegistry, data: { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' }, blockDecorator = defaultBlockDecorator, }) => {
|
|
1162
1169
|
const { header } = slots;
|
|
@@ -1164,10 +1171,10 @@
|
|
|
1164
1171
|
});
|
|
1165
1172
|
function renderBlock({ block, blockDecorator, blocksRegistry, context }, i) {
|
|
1166
1173
|
const { type } = block;
|
|
1167
|
-
if (!(type in blocksRegistry)) {
|
|
1174
|
+
if (!(type && type in blocksRegistry)) {
|
|
1168
1175
|
console.warn(`No block with "${type}" is registered`);
|
|
1169
1176
|
}
|
|
1170
|
-
const BlockComponent = blocksRegistry[type] || Placeholder;
|
|
1177
|
+
const BlockComponent = blocksRegistry[type || 'Placeholder'] || Placeholder;
|
|
1171
1178
|
return blockDecorator({
|
|
1172
1179
|
blockClassName: style2className(block.style),
|
|
1173
1180
|
block,
|
|
@@ -1182,14 +1189,16 @@
|
|
|
1182
1189
|
}
|
|
1183
1190
|
|
|
1184
1191
|
const ContentPageHead = JSX(({ HeadComponent, data, children }) => {
|
|
1185
|
-
const { title, description, keywords, robots, og } = data;
|
|
1192
|
+
const { title, main: { description, keywords, canonical, robots }, og, twitter, jsonLd, } = data;
|
|
1186
1193
|
return (jsxs(HeadComponent, { children: [jsx("title", { children: title }), jsx("meta", { name: "viewport", content: "width=device-width, initial-scale=1" }), description && jsx("meta", { name: "description", content: description }), keywords && jsx("meta", { name: "keywords", content: keywords.join(',') }), robots && jsx("meta", { name: "robots", content: robots.join(',') }), og
|
|
1187
1194
|
? Object.entries(og).map(([key, value]) => (jsx("meta", { name: `og:${key}`, content: value }, key)))
|
|
1188
|
-
: null,
|
|
1195
|
+
: null, twitter
|
|
1196
|
+
? Object.entries(twitter).map(([key, value]) => (jsx("meta", { name: `twitter:${key}`, content: value }, key)))
|
|
1197
|
+
: null, canonical && jsx("link", { rel: "canonical", href: canonical }), jsonLd && jsx("script", { type: "application/ld+json", children: jsonLd }), children] }));
|
|
1189
1198
|
});
|
|
1190
1199
|
|
|
1191
|
-
function isBlockInRegistry(
|
|
1192
|
-
return
|
|
1200
|
+
function isBlockInRegistry(blockType, registry) {
|
|
1201
|
+
return (blockType || '') in registry;
|
|
1193
1202
|
}
|
|
1194
1203
|
|
|
1195
1204
|
function normalizeBlock(block) {
|
|
@@ -1217,7 +1226,7 @@
|
|
|
1217
1226
|
}
|
|
1218
1227
|
function getMobileBlocks(blocks) {
|
|
1219
1228
|
return blocks
|
|
1220
|
-
?.filter((block) => isBlockInRegistry(block, Blocks) && !block.mobile?.hidden)
|
|
1229
|
+
?.filter((block) => isBlockInRegistry(block?.type || block?.mobile?.type, Blocks) && !block.mobile?.hidden)
|
|
1221
1230
|
.map(normalizeBlock);
|
|
1222
1231
|
}
|
|
1223
1232
|
|